Documentation ¶
Index ¶
- func EmitAcknowledgePacketEvent(ctx sdk.Context, packet exported.PacketI, channel types.Channel)
- func EmitRecvPacketEvent(ctx sdk.Context, packet exported.PacketI, channel types.Channel)
- func EmitTimeoutPacketEvent(ctx sdk.Context, packet exported.PacketI, channel types.Channel)
- type Keeper
- func (k Keeper) AcknowledgePacket(ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI, ...) error
- func (k Keeper) ChanCloseConfirm(ctx sdk.Context, portID, channelID string, chanCap *capabilitytypes.Capability, ...) error
- func (k Keeper) ChanCloseInit(ctx sdk.Context, portID, channelID string, chanCap *capabilitytypes.Capability) error
- func (k Keeper) ChanOpenAck(ctx sdk.Context, portID, channelID string, chanCap *capabilitytypes.Capability, ...) error
- func (k Keeper) ChanOpenConfirm(ctx sdk.Context, portID, channelID string, chanCap *capabilitytypes.Capability, ...) error
- func (k Keeper) ChanOpenInit(ctx sdk.Context, order types.Order, connectionHops []string, portID string, ...) (string, *capabilitytypes.Capability, error)
- func (k Keeper) ChanOpenTry(ctx sdk.Context, order types.Order, connectionHops []string, ...) (string, *capabilitytypes.Capability, error)
- func (q Keeper) Channel(c context.Context, req *types.QueryChannelRequest) (*types.QueryChannelResponse, error)
- func (q Keeper) ChannelClientState(c context.Context, req *types.QueryChannelClientStateRequest) (*types.QueryChannelClientStateResponse, error)
- func (q Keeper) ChannelConsensusState(c context.Context, req *types.QueryChannelConsensusStateRequest) (*types.QueryChannelConsensusStateResponse, error)
- func (q Keeper) Channels(c context.Context, req *types.QueryChannelsRequest) (*types.QueryChannelsResponse, error)
- func (q Keeper) ConnectionChannels(c context.Context, req *types.QueryConnectionChannelsRequest) (*types.QueryConnectionChannelsResponse, error)
- func (k Keeper) CounterpartyHops(ctx sdk.Context, ch types.Channel) ([]string, bool)
- func (k Keeper) GenerateChannelIdentifier(ctx sdk.Context) string
- func (k Keeper) GetAllChannels(ctx sdk.Context) (channels []types.IdentifiedChannel)
- func (k Keeper) GetAllPacketAckSeqs(ctx sdk.Context) (seqs []types.PacketSequence)
- func (k Keeper) GetAllPacketAcks(ctx sdk.Context) (acks []types.PacketState)
- func (k Keeper) GetAllPacketCommitments(ctx sdk.Context) (commitments []types.PacketState)
- func (k Keeper) GetAllPacketCommitmentsAtChannel(ctx sdk.Context, portID, channelID string) (commitments []types.PacketState)
- func (k Keeper) GetAllPacketReceipts(ctx sdk.Context) (receipts []types.PacketState)
- func (k Keeper) GetAllPacketRecvSeqs(ctx sdk.Context) (seqs []types.PacketSequence)
- func (k Keeper) GetAllPacketSendSeqs(ctx sdk.Context) (seqs []types.PacketSequence)
- func (k Keeper) GetChannel(ctx sdk.Context, portID, channelID string) (types.Channel, bool)
- func (k Keeper) GetChannelClientState(ctx sdk.Context, portID, channelID string) (string, exported.ClientState, error)
- func (k Keeper) GetNextChannelSequence(ctx sdk.Context) uint64
- func (k Keeper) GetNextSequenceAck(ctx sdk.Context, portID, channelID string) (uint64, bool)
- func (k Keeper) GetNextSequenceRecv(ctx sdk.Context, portID, channelID string) (uint64, bool)
- func (k Keeper) GetNextSequenceSend(ctx sdk.Context, portID, channelID string) (uint64, bool)
- func (k Keeper) GetPacketAcknowledgement(ctx sdk.Context, portID, channelID string, sequence uint64) ([]byte, bool)
- func (k Keeper) GetPacketCommitment(ctx sdk.Context, portID, channelID string, sequence uint64) []byte
- func (k Keeper) GetPacketReceipt(ctx sdk.Context, portID, channelID string, sequence uint64) (string, bool)
- func (k Keeper) HasPacketAcknowledgement(ctx sdk.Context, portID, channelID string, sequence uint64) bool
- func (k Keeper) HasPacketCommitment(ctx sdk.Context, portID, channelID string, sequence uint64) bool
- func (k Keeper) IterateChannels(ctx sdk.Context, cb func(types.IdentifiedChannel) bool)
- func (k Keeper) IteratePacketAcknowledgement(ctx sdk.Context, ...)
- func (k Keeper) IteratePacketCommitment(ctx sdk.Context, ...)
- func (k Keeper) IteratePacketCommitmentAtChannel(ctx sdk.Context, portID, channelID string, ...)
- func (k Keeper) IteratePacketReceipt(ctx sdk.Context, ...)
- func (k Keeper) IteratePacketSequence(ctx sdk.Context, iterator db.Iterator, ...)
- func (k Keeper) Logger(ctx sdk.Context) log.Logger
- func (k Keeper) LookupModuleByChannel(ctx sdk.Context, portID, channelID string) (string, *capabilitytypes.Capability, error)
- func (q Keeper) NextSequenceReceive(c context.Context, req *types.QueryNextSequenceReceiveRequest) (*types.QueryNextSequenceReceiveResponse, error)
- func (q Keeper) PacketAcknowledgement(c context.Context, req *types.QueryPacketAcknowledgementRequest) (*types.QueryPacketAcknowledgementResponse, error)
- func (q Keeper) PacketAcknowledgements(c context.Context, req *types.QueryPacketAcknowledgementsRequest) (*types.QueryPacketAcknowledgementsResponse, error)
- func (q Keeper) PacketCommitment(c context.Context, req *types.QueryPacketCommitmentRequest) (*types.QueryPacketCommitmentResponse, error)
- func (q Keeper) PacketCommitments(c context.Context, req *types.QueryPacketCommitmentsRequest) (*types.QueryPacketCommitmentsResponse, error)
- func (q Keeper) PacketReceipt(c context.Context, req *types.QueryPacketReceiptRequest) (*types.QueryPacketReceiptResponse, error)
- func (k Keeper) RecvPacket(ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI, ...) error
- func (k Keeper) SendPacket(ctx sdk.Context, channelCap *capabilitytypes.Capability, ...) error
- func (k Keeper) SetChannel(ctx sdk.Context, portID, channelID string, channel types.Channel)
- func (k Keeper) SetNextChannelSequence(ctx sdk.Context, sequence uint64)
- func (k Keeper) SetNextSequenceAck(ctx sdk.Context, portID, channelID string, sequence uint64)
- func (k Keeper) SetNextSequenceRecv(ctx sdk.Context, portID, channelID string, sequence uint64)
- func (k Keeper) SetNextSequenceSend(ctx sdk.Context, portID, channelID string, sequence uint64)
- func (k Keeper) SetPacketAcknowledgement(ctx sdk.Context, portID, channelID string, sequence uint64, ackHash []byte)
- func (k Keeper) SetPacketCommitment(ctx sdk.Context, portID, channelID string, sequence uint64, ...)
- func (k Keeper) SetPacketReceipt(ctx sdk.Context, portID, channelID string, sequence uint64)
- func (k Keeper) TimeoutExecuted(ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI) error
- func (k Keeper) TimeoutOnClose(ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI, ...) error
- func (k Keeper) TimeoutPacket(ctx sdk.Context, packet exported.PacketI, proof []byte, ...) error
- func (q Keeper) UnreceivedAcks(c context.Context, req *types.QueryUnreceivedAcksRequest) (*types.QueryUnreceivedAcksResponse, error)
- func (q Keeper) UnreceivedPackets(c context.Context, req *types.QueryUnreceivedPacketsRequest) (*types.QueryUnreceivedPacketsResponse, error)
- func (k Keeper) WriteAcknowledgement(ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI, ...) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EmitAcknowledgePacketEvent ¶
EmitAcknowledgePacketEvent emits an acknowledge packet event. It will be emitted both the first time a packet is acknowledged for a certain sequence and for all duplicate acknowledgements.
func EmitRecvPacketEvent ¶
EmitRecvPacketEvent emits a receive packet event. It will be emitted both the first time a packet is received for a certain sequence and for all duplicate receives.
Types ¶
type Keeper ¶
type Keeper struct { // implements gRPC QueryServer interface types.QueryServer // contains filtered or unexported fields }
Keeper defines the IBC channel keeper
func NewKeeper ¶
func NewKeeper( cdc codec.BinaryCodec, key sdk.StoreKey, clientKeeper types.ClientKeeper, connectionKeeper types.ConnectionKeeper, portKeeper types.PortKeeper, scopedKeeper capabilitykeeper.ScopedKeeper, ) Keeper
NewKeeper creates a new IBC channel Keeper instance
func (Keeper) AcknowledgePacket ¶
func (k Keeper) AcknowledgePacket( ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI, acknowledgement []byte, proof []byte, proofHeight exported.Height, ) error
AcknowledgePacket is called by a module to process the acknowledgement of a packet previously sent by the calling module on a channel to a counterparty module on the counterparty chain. Its intended usage is within the ante handler. AcknowledgePacket will clean up the packet commitment, which is no longer necessary since the packet has been received and acted upon. It will also increment NextSequenceAck in case of ORDERED channels.
func (Keeper) ChanCloseConfirm ¶
func (k Keeper) ChanCloseConfirm( ctx sdk.Context, portID, channelID string, chanCap *capabilitytypes.Capability, proofInit []byte, proofHeight exported.Height, ) error
ChanCloseConfirm is called by the counterparty module to close their end of the channel, since the other end has been closed.
func (Keeper) ChanCloseInit ¶
func (k Keeper) ChanCloseInit( ctx sdk.Context, portID, channelID string, chanCap *capabilitytypes.Capability, ) error
Closing Handshake
This section defines the set of functions required to close a channel handshake as defined in https://github.com/cosmos/ics/tree/master/spec/ics-004-channel-and-packet-semantics#closing-handshake
ChanCloseInit is called by either module to close their end of the channel. Once closed, channels cannot be reopened.
func (Keeper) ChanOpenAck ¶
func (k Keeper) ChanOpenAck( ctx sdk.Context, portID, channelID string, chanCap *capabilitytypes.Capability, counterpartyVersion, counterpartyChannelID string, proofTry []byte, proofHeight exported.Height, ) error
ChanOpenAck is called by the handshake-originating module to acknowledge the acceptance of the initial request by the counterparty module on the other chain.
func (Keeper) ChanOpenConfirm ¶
func (k Keeper) ChanOpenConfirm( ctx sdk.Context, portID, channelID string, chanCap *capabilitytypes.Capability, proofAck []byte, proofHeight exported.Height, ) error
ChanOpenConfirm is called by the counterparty module to close their end of the
channel, since the other end has been closed.
func (Keeper) ChanOpenInit ¶
func (k Keeper) ChanOpenInit( ctx sdk.Context, order types.Order, connectionHops []string, portID string, portCap *capabilitytypes.Capability, counterparty types.Counterparty, version string, ) (string, *capabilitytypes.Capability, error)
ChanOpenInit is called by a module to initiate a channel opening handshake with a module on another chain. The counterparty channel identifier is validated to be empty in msg validation.
func (Keeper) ChanOpenTry ¶
func (k Keeper) ChanOpenTry( ctx sdk.Context, order types.Order, connectionHops []string, portID, previousChannelID string, portCap *capabilitytypes.Capability, counterparty types.Counterparty, version, counterpartyVersion string, proofInit []byte, proofHeight exported.Height, ) (string, *capabilitytypes.Capability, error)
ChanOpenTry is called by a module to accept the first step of a channel opening handshake initiated by a module on another chain.
func (Keeper) Channel ¶
func (q Keeper) Channel(c context.Context, req *types.QueryChannelRequest) (*types.QueryChannelResponse, error)
Channel implements the Query/Channel gRPC method
func (Keeper) ChannelClientState ¶
func (q Keeper) ChannelClientState(c context.Context, req *types.QueryChannelClientStateRequest) (*types.QueryChannelClientStateResponse, error)
ChannelClientState implements the Query/ChannelClientState gRPC method
func (Keeper) ChannelConsensusState ¶
func (q Keeper) ChannelConsensusState(c context.Context, req *types.QueryChannelConsensusStateRequest) (*types.QueryChannelConsensusStateResponse, error)
ChannelConsensusState implements the Query/ChannelConsensusState gRPC method
func (Keeper) Channels ¶
func (q Keeper) Channels(c context.Context, req *types.QueryChannelsRequest) (*types.QueryChannelsResponse, error)
Channels implements the Query/Channels gRPC method
func (Keeper) ConnectionChannels ¶
func (q Keeper) ConnectionChannels(c context.Context, req *types.QueryConnectionChannelsRequest) (*types.QueryConnectionChannelsResponse, error)
ConnectionChannels implements the Query/ConnectionChannels gRPC method
func (Keeper) CounterpartyHops ¶
CounterpartyHops returns the connection hops of the counterparty channel. The counterparty hops are stored in the inverse order as the channel's. NOTE: Since connectionHops only supports single connection channels for now, this function requires that connection hops only contain a single connection id
func (Keeper) GenerateChannelIdentifier ¶
GenerateChannelIdentifier returns the next channel identifier.
func (Keeper) GetAllChannels ¶
func (k Keeper) GetAllChannels(ctx sdk.Context) (channels []types.IdentifiedChannel)
GetAllChannels returns all stored Channel objects.
func (Keeper) GetAllPacketAckSeqs ¶
func (k Keeper) GetAllPacketAckSeqs(ctx sdk.Context) (seqs []types.PacketSequence)
GetAllPacketAckSeqs returns all stored next acknowledgements sequences.
func (Keeper) GetAllPacketAcks ¶
func (k Keeper) GetAllPacketAcks(ctx sdk.Context) (acks []types.PacketState)
GetAllPacketAcks returns all stored PacketAcknowledgements objects.
func (Keeper) GetAllPacketCommitments ¶
func (k Keeper) GetAllPacketCommitments(ctx sdk.Context) (commitments []types.PacketState)
GetAllPacketCommitments returns all stored PacketCommitments objects.
func (Keeper) GetAllPacketCommitmentsAtChannel ¶
func (k Keeper) GetAllPacketCommitmentsAtChannel(ctx sdk.Context, portID, channelID string) (commitments []types.PacketState)
GetAllPacketCommitmentsAtChannel returns all stored PacketCommitments objects for a specified port ID and channel ID.
func (Keeper) GetAllPacketReceipts ¶
func (k Keeper) GetAllPacketReceipts(ctx sdk.Context) (receipts []types.PacketState)
GetAllPacketReceipts returns all stored PacketReceipt objects.
func (Keeper) GetAllPacketRecvSeqs ¶
func (k Keeper) GetAllPacketRecvSeqs(ctx sdk.Context) (seqs []types.PacketSequence)
GetAllPacketRecvSeqs returns all stored next recv sequences.
func (Keeper) GetAllPacketSendSeqs ¶
func (k Keeper) GetAllPacketSendSeqs(ctx sdk.Context) (seqs []types.PacketSequence)
GetAllPacketSendSeqs returns all stored next send sequences.
func (Keeper) GetChannel ¶
GetChannel returns a channel with a particular identifier binded to a specific port
func (Keeper) GetChannelClientState ¶
func (k Keeper) GetChannelClientState(ctx sdk.Context, portID, channelID string) (string, exported.ClientState, error)
GetChannelClientState returns the associated client state with its ID, from a port and channel identifier.
func (Keeper) GetNextChannelSequence ¶
GetNextChannelSequence gets the next channel sequence from the store.
func (Keeper) GetNextSequenceAck ¶
GetNextSequenceAck gets a channel's next ack sequence from the store
func (Keeper) GetNextSequenceRecv ¶
GetNextSequenceRecv gets a channel's next receive sequence from the store
func (Keeper) GetNextSequenceSend ¶
GetNextSequenceSend gets a channel's next send sequence from the store
func (Keeper) GetPacketAcknowledgement ¶
func (k Keeper) GetPacketAcknowledgement(ctx sdk.Context, portID, channelID string, sequence uint64) ([]byte, bool)
GetPacketAcknowledgement gets the packet ack hash from the store
func (Keeper) GetPacketCommitment ¶
func (k Keeper) GetPacketCommitment(ctx sdk.Context, portID, channelID string, sequence uint64) []byte
GetPacketCommitment gets the packet commitment hash from the store
func (Keeper) GetPacketReceipt ¶
func (k Keeper) GetPacketReceipt(ctx sdk.Context, portID, channelID string, sequence uint64) (string, bool)
GetPacketReceipt gets a packet receipt from the store
func (Keeper) HasPacketAcknowledgement ¶
func (k Keeper) HasPacketAcknowledgement(ctx sdk.Context, portID, channelID string, sequence uint64) bool
HasPacketAcknowledgement check if the packet ack hash is already on the store
func (Keeper) HasPacketCommitment ¶
func (k Keeper) HasPacketCommitment(ctx sdk.Context, portID, channelID string, sequence uint64) bool
HasPacketCommitment returns true if the packet commitment exists
func (Keeper) IterateChannels ¶
IterateChannels provides an iterator over all Channel objects. For each Channel, cb will be called. If the cb returns true, the iterator will close and stop.
func (Keeper) IteratePacketAcknowledgement ¶
func (k Keeper) IteratePacketAcknowledgement(ctx sdk.Context, cb func(portID, channelID string, sequence uint64, hash []byte) bool)
IteratePacketAcknowledgement provides an iterator over all PacketAcknowledgement objects. For each aknowledgement, cb will be called. If the cb returns true, the iterator will close and stop.
func (Keeper) IteratePacketCommitment ¶
func (k Keeper) IteratePacketCommitment(ctx sdk.Context, cb func(portID, channelID string, sequence uint64, hash []byte) bool)
IteratePacketCommitment provides an iterator over all PacketCommitment objects. For each packet commitment, cb will be called. If the cb returns true, the iterator will close and stop.
func (Keeper) IteratePacketCommitmentAtChannel ¶
func (k Keeper) IteratePacketCommitmentAtChannel(ctx sdk.Context, portID, channelID string, cb func(_, _ string, sequence uint64, hash []byte) bool)
IteratePacketCommitmentAtChannel provides an iterator over all PacketCommmitment objects at a specified channel. For each packet commitment, cb will be called. If the cb returns true, the iterator will close and stop.
func (Keeper) IteratePacketReceipt ¶
func (k Keeper) IteratePacketReceipt(ctx sdk.Context, cb func(portID, channelID string, sequence uint64, receipt []byte) bool)
IteratePacketReceipt provides an iterator over all PacketReceipt objects. For each receipt, cb will be called. If the cb returns true, the iterator will close and stop.
func (Keeper) IteratePacketSequence ¶
func (k Keeper) IteratePacketSequence(ctx sdk.Context, iterator db.Iterator, cb func(portID, channelID string, sequence uint64) bool)
IteratePacketSequence provides an iterator over all send, receive or ack sequences. For each sequence, cb will be called. If the cb returns true, the iterator will close and stop.
func (Keeper) LookupModuleByChannel ¶
func (k Keeper) LookupModuleByChannel(ctx sdk.Context, portID, channelID string) (string, *capabilitytypes.Capability, error)
LookupModuleByChannel will return the IBCModule along with the capability associated with a given channel defined by its portID and channelID
func (Keeper) NextSequenceReceive ¶
func (q Keeper) NextSequenceReceive(c context.Context, req *types.QueryNextSequenceReceiveRequest) (*types.QueryNextSequenceReceiveResponse, error)
NextSequenceReceive implements the Query/NextSequenceReceive gRPC method
func (Keeper) PacketAcknowledgement ¶
func (q Keeper) PacketAcknowledgement(c context.Context, req *types.QueryPacketAcknowledgementRequest) (*types.QueryPacketAcknowledgementResponse, error)
PacketAcknowledgement implements the Query/PacketAcknowledgement gRPC method
func (Keeper) PacketAcknowledgements ¶
func (q Keeper) PacketAcknowledgements(c context.Context, req *types.QueryPacketAcknowledgementsRequest) (*types.QueryPacketAcknowledgementsResponse, error)
PacketAcknowledgements implements the Query/PacketAcknowledgements gRPC method
func (Keeper) PacketCommitment ¶
func (q Keeper) PacketCommitment(c context.Context, req *types.QueryPacketCommitmentRequest) (*types.QueryPacketCommitmentResponse, error)
PacketCommitment implements the Query/PacketCommitment gRPC method
func (Keeper) PacketCommitments ¶
func (q Keeper) PacketCommitments(c context.Context, req *types.QueryPacketCommitmentsRequest) (*types.QueryPacketCommitmentsResponse, error)
PacketCommitments implements the Query/PacketCommitments gRPC method
func (Keeper) PacketReceipt ¶
func (q Keeper) PacketReceipt(c context.Context, req *types.QueryPacketReceiptRequest) (*types.QueryPacketReceiptResponse, error)
PacketReceipt implements the Query/PacketReceipt gRPC method
func (Keeper) RecvPacket ¶
func (k Keeper) RecvPacket( ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI, proof []byte, proofHeight exported.Height, ) error
RecvPacket is called by a module in order to receive & process an IBC packet sent on the corresponding channel end on the counterparty chain.
func (Keeper) SendPacket ¶
func (k Keeper) SendPacket( ctx sdk.Context, channelCap *capabilitytypes.Capability, packet exported.PacketI, ) error
SendPacket is called by a module in order to send an IBC packet on a channel end owned by the calling module to the corresponding module on the counterparty chain.
func (Keeper) SetChannel ¶
SetChannel sets a channel to the store
func (Keeper) SetNextChannelSequence ¶
SetNextChannelSequence sets the next channel sequence to the store.
func (Keeper) SetNextSequenceAck ¶
SetNextSequenceAck sets a channel's next ack sequence to the store
func (Keeper) SetNextSequenceRecv ¶
SetNextSequenceRecv sets a channel's next receive sequence to the store
func (Keeper) SetNextSequenceSend ¶
SetNextSequenceSend sets a channel's next send sequence to the store
func (Keeper) SetPacketAcknowledgement ¶
func (k Keeper) SetPacketAcknowledgement(ctx sdk.Context, portID, channelID string, sequence uint64, ackHash []byte)
SetPacketAcknowledgement sets the packet ack hash to the store
func (Keeper) SetPacketCommitment ¶
func (k Keeper) SetPacketCommitment(ctx sdk.Context, portID, channelID string, sequence uint64, commitmentHash []byte)
SetPacketCommitment sets the packet commitment hash to the store
func (Keeper) SetPacketReceipt ¶
SetPacketReceipt sets an empty packet receipt to the store
func (Keeper) TimeoutExecuted ¶
func (k Keeper) TimeoutExecuted( ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI, ) error
TimeoutExecuted deletes the commitment send from this chain after it verifies timeout. If the timed-out packet came from an ORDERED channel then this channel will be closed.
CONTRACT: this function must be called in the IBC handler
func (Keeper) TimeoutOnClose ¶
func (k Keeper) TimeoutOnClose( ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI, proof, proofClosed []byte, proofHeight exported.Height, nextSequenceRecv uint64, ) error
TimeoutOnClose is called by a module in order to prove that the channel to which an unreceived packet was addressed has been closed, so the packet will never be received (even if the timeoutHeight has not yet been reached).
func (Keeper) TimeoutPacket ¶
func (k Keeper) TimeoutPacket( ctx sdk.Context, packet exported.PacketI, proof []byte, proofHeight exported.Height, nextSequenceRecv uint64, ) error
TimeoutPacket is called by a module which originally attempted to send a packet to a counterparty module, where the timeout height has passed on the counterparty chain without the packet being committed, to prove that the packet can no longer be executed and to allow the calling module to safely perform appropriate state transitions. Its intended usage is within the ante handler.
func (Keeper) UnreceivedAcks ¶
func (q Keeper) UnreceivedAcks(c context.Context, req *types.QueryUnreceivedAcksRequest) (*types.QueryUnreceivedAcksResponse, error)
UnreceivedAcks implements the Query/UnreceivedAcks gRPC method. Given a list of counterparty packet acknowledgements, the querier checks if the packet has already been received by checking if the packet commitment still exists on this chain (original sender) for the packet sequence. All acknowledgmeents that haven't been received yet are returned in the response. Usage: To use this method correctly, first query all packet acknowledgements on the original receiving chain (ie the chain that wrote the acks) using the Query/PacketAcknowledgements gRPC method. Then input the returned sequences into the QueryUnreceivedAcksRequest and send the request to this Query/UnreceivedAcks on the **original sending** chain. This gRPC method will then return the list of packet sequences whose acknowledgements are already written on the receiving chain but haven't yet been received back to the sending chain.
NOTE: The querier makes the assumption that the provided list of packet acknowledgements is correct and will not function properly if the list is not up to date. Ideally the query height should equal the latest height on the counterparty's client which represents this chain.
func (Keeper) UnreceivedPackets ¶
func (q Keeper) UnreceivedPackets(c context.Context, req *types.QueryUnreceivedPacketsRequest) (*types.QueryUnreceivedPacketsResponse, error)
UnreceivedPackets implements the Query/UnreceivedPackets gRPC method. Given a list of counterparty packet commitments, the querier checks if the packet has already been received by checking if a receipt exists on this chain for the packet sequence. All packets that haven't been received yet are returned in the response Usage: To use this method correctly, first query all packet commitments on the sending chain using the Query/PacketCommitments gRPC method. Then input the returned sequences into the QueryUnreceivedPacketsRequest and send the request to this Query/UnreceivedPackets on the **receiving** chain. This gRPC method will then return the list of packet sequences that are yet to be received on the receiving chain.
NOTE: The querier makes the assumption that the provided list of packet commitments is correct and will not function properly if the list is not up to date. Ideally the query height should equal the latest height on the counterparty's client which represents this chain.
func (Keeper) WriteAcknowledgement ¶
func (k Keeper) WriteAcknowledgement( ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI, acknowledgement []byte, ) error
WriteAcknowledgement writes the packet execution acknowledgement to the state, which will be verified by the counterparty chain using AcknowledgePacket.
CONTRACT:
1) For synchronous execution, this function is be called in the IBC handler . For async handling, it needs to be called directly by the module which originally processed the packet.
2) Assumes that packet receipt has been written (unordered), or nextSeqRecv was incremented (ordered) previously by RecvPacket.