Skip to main content

Tunnel Messages

Activate Tunnel

If a tunnel runs out of funds to pay for data delivery fees, it will be deactivated and stop checking for delivery conditions. To re-enable the tunnel, the creator can send BAND to the tunnel’s deposit address and broadcast MsgActivateTunnel to BandChain.

message MsgActivateTunnel {
option (cosmos.msg.v1.signer) = "creator";
option (amino.name) = "tunnel/MsgActivateTunnel";

// tunnel_id is the ID of the tunnel to activate.
uint64 tunnel_id = 1 [(gogoproto.customname) = "TunnelID"];
// creator is the address of the creator.
string creator = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
}

Manual Trigger Tunnel

While a tunnel triggers automatically based on its interval and price deviation specification, the tunnel's creator may manually trigger the tunnel's data delivery by broadcasting MsgManualTriggerTunnel.

message MsgManualTriggerTunnel {
option (cosmos.msg.v1.signer) = "creator";
option (amino.name) = "tunnel/MsgManualTriggerTunnel";

// tunnel_id is the ID of the tunnel to manually trigger.
uint64 id = 1 [(gogoproto.customname) = "TunnelID"];
// creator is the address of the creator.
string creator = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
}

Remove Tunnel

The creator can broadcast MsgRemoveTunnel to sunset the tunnel. Doing so will stop further data deliveries and return the remaining balance in the tunnel’s deposit address to the creator.

message MsgManualRemoveTunnel {
option (cosmos.msg.v1.signer) = "creator";
option (amino.name) = "tunnel/MsgRemoveTunnel";

// tunnel_id is the ID of the tunnel to manually trigger.
uint64 id = 1 [(gogoproto.customname) = "TunnelID"];
// creator is the address of the creator.
string creator = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
}