Documentation ¶
Index ¶
- Constants
- func EgressKey(destChain string, index int64) []byte
- func EgressLengthKey(destChain string) []byte
- func ErrIdenticalChains(codespace sdk.CodespaceType) sdk.Error
- func ErrInvalidSequence(codespace sdk.CodespaceType) sdk.Error
- func IngressSequenceKey(srcChain string) []byte
- func NewHandler(ibcm Mapper, ck bank.Keeper) sdk.Handler
- func RegisterCodec(cdc *codec.Codec)
- type IBCPacket
- type IBCReceiveMsg
- type IBCTransferMsg
- type Mapper
- func (ibcm Mapper) GetIngressSequence(ctx sdk.Context, srcChain string) int64
- func (ibcm Mapper) PostIBCPacket(ctx sdk.Context, packet IBCPacket) sdk.Error
- func (ibcm Mapper) ReceiveIBCPacket(ctx sdk.Context, packet IBCPacket) sdk.Error
- func (ibcm Mapper) SetIngressSequence(ctx sdk.Context, srcChain string, sequence int64)
Constants ¶
const ( DefaultCodespace sdk.CodespaceType = 3 // IBC errors reserve 200 - 299. CodeInvalidSequence sdk.CodeType = 200 CodeIdenticalChains sdk.CodeType = 201 CodeUnknownRequest sdk.CodeType = sdk.CodeUnknownRequest )
IBC errors reserve 200 ~ 299.
Variables ¶
This section is empty.
Functions ¶
func EgressLengthKey ¶
Stores the number of outgoing IBC packets under "egress/index".
func ErrIdenticalChains ¶
func ErrIdenticalChains(codespace sdk.CodespaceType) sdk.Error
func IngressSequenceKey ¶
Stores the sequence number of incoming IBC packet under "ingress/index".
Types ¶
type IBCPacket ¶
type IBCPacket struct { SrcAddr sdk.AccAddress `json:"src_addr"` DestAddr sdk.AccAddress `json:"dest_addr"` Coins sdk.Coins `json:"coins"` SrcChain string `json:"src_chain"` DestChain string `json:"dest_chain"` }
nolint - TODO rename to Packet as IBCPacket stutters (golint) IBCPacket defines a piece of data that can be send between two separate blockchains.
func NewIBCPacket ¶
func NewIBCPacket(srcAddr sdk.AccAddress, destAddr sdk.AccAddress, coins sdk.Coins, srcChain string, destChain string) IBCPacket
func (IBCPacket) ValidateBasic ¶
validator the ibc packey
type IBCReceiveMsg ¶
type IBCReceiveMsg struct { IBCPacket Relayer sdk.AccAddress Sequence int64 }
nolint - TODO rename to ReceiveMsg as folks will reference with ibc.ReceiveMsg IBCReceiveMsg defines the message that a relayer uses to post an IBCPacket to the destination chain.
func (IBCReceiveMsg) GetSignBytes ¶
func (msg IBCReceiveMsg) GetSignBytes() []byte
get the sign bytes for ibc receive message
func (IBCReceiveMsg) GetSigners ¶
func (msg IBCReceiveMsg) GetSigners() []sdk.AccAddress
x/bank/tx.go MsgSend.GetSigners()
func (IBCReceiveMsg) Type ¶
func (msg IBCReceiveMsg) Type() string
func (IBCReceiveMsg) ValidateBasic ¶
func (msg IBCReceiveMsg) ValidateBasic() sdk.Error
type IBCTransferMsg ¶
type IBCTransferMsg struct {
IBCPacket
}
nolint - TODO rename to TransferMsg as folks will reference with ibc.TransferMsg IBCTransferMsg defines how another module can send an IBCPacket.
func (IBCTransferMsg) GetSignBytes ¶
func (msg IBCTransferMsg) GetSignBytes() []byte
get the sign bytes for ibc transfer message
func (IBCTransferMsg) GetSigners ¶
func (msg IBCTransferMsg) GetSigners() []sdk.AccAddress
x/bank/tx.go MsgSend.GetSigners()
func (IBCTransferMsg) Type ¶
func (msg IBCTransferMsg) Type() string
func (IBCTransferMsg) ValidateBasic ¶
func (msg IBCTransferMsg) ValidateBasic() sdk.Error
validate ibc transfer message
type Mapper ¶
type Mapper struct {
// contains filtered or unexported fields
}
IBC Mapper
func NewMapper ¶
XXX: The Mapper should not take a CoinKeeper. Rather have the CoinKeeper take an Mapper.
func (Mapper) GetIngressSequence ¶
TODO add description
func (Mapper) PostIBCPacket ¶
XXX: This is not the public API. This will change in MVP2 and will henceforth only be invoked from another module directly and not through a user transaction. TODO: Handle invalid IBC packets and return errors.
func (Mapper) ReceiveIBCPacket ¶
XXX: In the future every module is able to register it's own handler for handling it's own IBC packets. The "ibc" handler will only route the packets to the appropriate callbacks. XXX: For now this handles all interactions with the CoinKeeper. XXX: This needs to do some authentication checking.