Documentation ¶
Index ¶
- Constants
- Variables
- func GetDenomPrefix(portID, channelID string) string
- func GetEscrowAddress(portID, channelID string) sdk.AccAddress
- func RegisterCodec(cdc *codec.Codec)
- func RegisterInterfaces(registry cdctypes.InterfaceRegistry)
- type AccountKeeper
- type BankKeeper
- type ChannelKeeper
- type ClientKeeper
- type ConnectionKeeper
- type FungibleTokenPacketAcknowledgement
- func (*FungibleTokenPacketAcknowledgement) Descriptor() ([]byte, []int)
- func (ack FungibleTokenPacketAcknowledgement) GetBytes() []byte
- func (m *FungibleTokenPacketAcknowledgement) GetError() string
- func (m *FungibleTokenPacketAcknowledgement) GetSuccess() bool
- func (m *FungibleTokenPacketAcknowledgement) Marshal() (dAtA []byte, err error)
- func (m *FungibleTokenPacketAcknowledgement) MarshalTo(dAtA []byte) (int, error)
- func (m *FungibleTokenPacketAcknowledgement) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*FungibleTokenPacketAcknowledgement) ProtoMessage()
- func (m *FungibleTokenPacketAcknowledgement) Reset()
- func (m *FungibleTokenPacketAcknowledgement) Size() (n int)
- func (m *FungibleTokenPacketAcknowledgement) String() string
- func (m *FungibleTokenPacketAcknowledgement) Unmarshal(dAtA []byte) error
- func (m *FungibleTokenPacketAcknowledgement) XXX_DiscardUnknown()
- func (m *FungibleTokenPacketAcknowledgement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *FungibleTokenPacketAcknowledgement) XXX_Merge(src proto.Message)
- func (m *FungibleTokenPacketAcknowledgement) XXX_Size() int
- func (m *FungibleTokenPacketAcknowledgement) XXX_Unmarshal(b []byte) error
- type FungibleTokenPacketData
- func (*FungibleTokenPacketData) Descriptor() ([]byte, []int)
- func (m *FungibleTokenPacketData) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins
- func (ftpd FungibleTokenPacketData) GetBytes() []byte
- func (m *FungibleTokenPacketData) GetReceiver() string
- func (m *FungibleTokenPacketData) GetSender() string
- func (m *FungibleTokenPacketData) Marshal() (dAtA []byte, err error)
- func (m *FungibleTokenPacketData) MarshalTo(dAtA []byte) (int, error)
- func (m *FungibleTokenPacketData) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*FungibleTokenPacketData) ProtoMessage()
- func (m *FungibleTokenPacketData) Reset()
- func (m *FungibleTokenPacketData) Size() (n int)
- func (m *FungibleTokenPacketData) String() string
- func (m *FungibleTokenPacketData) Unmarshal(dAtA []byte) error
- func (ftpd FungibleTokenPacketData) ValidateBasic() error
- func (m *FungibleTokenPacketData) XXX_DiscardUnknown()
- func (m *FungibleTokenPacketData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *FungibleTokenPacketData) XXX_Merge(src proto.Message)
- func (m *FungibleTokenPacketData) XXX_Size() int
- func (m *FungibleTokenPacketData) XXX_Unmarshal(b []byte) error
- type GenesisState
- type MsgTransfer
- func (*MsgTransfer) Descriptor() ([]byte, []int)
- func (m *MsgTransfer) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins
- func (m *MsgTransfer) GetReceiver() string
- func (m *MsgTransfer) GetSender() github_com_cosmos_cosmos_sdk_types.AccAddress
- func (msg MsgTransfer) GetSignBytes() []byte
- func (msg MsgTransfer) GetSigners() []sdk.AccAddress
- func (m *MsgTransfer) GetSourceChannel() string
- func (m *MsgTransfer) GetSourcePort() string
- func (m *MsgTransfer) GetTimeoutHeight() uint64
- func (m *MsgTransfer) GetTimeoutTimestamp() uint64
- func (m *MsgTransfer) Marshal() (dAtA []byte, err error)
- func (m *MsgTransfer) MarshalTo(dAtA []byte) (int, error)
- func (m *MsgTransfer) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*MsgTransfer) ProtoMessage()
- func (m *MsgTransfer) Reset()
- func (MsgTransfer) Route() string
- func (m *MsgTransfer) Size() (n int)
- func (m *MsgTransfer) String() string
- func (MsgTransfer) Type() string
- func (m *MsgTransfer) Unmarshal(dAtA []byte) error
- func (msg MsgTransfer) ValidateBasic() error
- func (m *MsgTransfer) XXX_DiscardUnknown()
- func (m *MsgTransfer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *MsgTransfer) XXX_Merge(src proto.Message)
- func (m *MsgTransfer) XXX_Size() int
- func (m *MsgTransfer) XXX_Unmarshal(b []byte) error
- type PortKeeper
Constants ¶
const ( EventTypeTimeout = "timeout" EventTypePacket = "fungible_token_packet" EventTypeTransfer = "ibc_transfer" EventTypeChannelClose = "channel_closed" AttributeKeyReceiver = "receiver" AttributeKeyValue = "value" AttributeKeyRefundReceiver = "refund_receiver" AttributeKeyRefundValue = "refund_value" AttributeKeyAckSuccess = "success" AttributeKeyAckError = "error" )
IBC transfer events
const ( // ModuleName defines the IBC transfer name ModuleName = "transfer" // Version defines the current version the IBC tranfer // module supports Version = "ics20-1" // PortID is the default port id that transfer module binds to PortID = "transfer" // StoreKey is the store key string for IBC transfer StoreKey = ModuleName // RouterKey is the message route for IBC transfer RouterKey = ModuleName // QuerierRoute is the querier route for IBC transfer QuerierRoute = ModuleName )
const (
TypeMsgTransfer = "transfer"
)
msg types
Variables ¶
var ( ErrInvalidPacketTimeout = sdkerrors.Register(ModuleName, 2, "invalid packet timeout") ErrOnlyOneDenomAllowed = sdkerrors.Register(ModuleName, 3, "only one denom allowed") ErrInvalidDenomForTransfer = sdkerrors.Register(ModuleName, 4, "invalid denomination for cross-chain transfer") ErrInvalidVersion = sdkerrors.Register(ModuleName, 5, "invalid ICS20 version") )
IBC channel sentinel errors
var ( // DefaultRelativePacketTimeoutHeight is the default packet timeout height (in blocks) relative // to the current block height of the counterparty chain provided by the client state. The // timeout is disabled when set to 0. DefaultRelativePacketTimeoutHeight = uint64(1000) // DefaultRelativePacketTimeoutTimestamp is the default packet timeout timestamp (in nanoseconds) // relative to the current block timestamp of the counterparty chain provided by the client // state. The timeout is disabled when set to 0. The default is currently set to a 10 minute // timeout. DefaultRelativePacketTimeoutTimestamp = uint64((time.Duration(10) * time.Minute).Nanoseconds()) )
var ( ErrInvalidLengthTransfer = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowTransfer = fmt.Errorf("proto: integer overflow") ErrUnexpectedEndOfGroupTransfer = fmt.Errorf("proto: unexpected end of group") )
var ( // ModuleCdc references the global x/ibc-transfer module codec. Note, the codec // should ONLY be used in certain instances of tests and for JSON encoding as Amino // is still used for that purpose. // // The actual codec used for serialization should be provided to x/ibc-transfer and // defined at the application level. ModuleCdc = codec.NewHybridCodec(amino, cdctypes.NewInterfaceRegistry()) )
var PortKey = []byte{0x01}
PortKey defines the key to store the port ID in store
Functions ¶
func GetDenomPrefix ¶
GetDenomPrefix returns the receiving denomination prefix
func GetEscrowAddress ¶
func GetEscrowAddress(portID, channelID string) sdk.AccAddress
GetEscrowAddress returns the escrow address for the specified channel
CONTRACT: this assumes that there's only one bank bridge module that owns the port associated with the channel ID so that the address created is actually unique.
func RegisterCodec ¶
RegisterCodec registers the IBC transfer types
func RegisterInterfaces ¶
func RegisterInterfaces(registry cdctypes.InterfaceRegistry)
RegisterInterfaces register the ibc transfer module interfaces to protobuf Any.
Types ¶
type AccountKeeper ¶
type AccountKeeper interface { GetModuleAddress(name string) sdk.AccAddress GetModuleAccount(ctx sdk.Context, name string) types.ModuleAccountI }
AccountKeeper defines the contract required for account APIs.
type BankKeeper ¶
type BankKeeper interface { SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error MintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error }
BankKeeper defines the expected bank keeper
type ChannelKeeper ¶
type ChannelKeeper interface { GetChannel(ctx sdk.Context, srcPort, srcChan string) (channel channeltypes.Channel, found bool) GetNextSequenceSend(ctx sdk.Context, portID, channelID string) (uint64, bool) SendPacket(ctx sdk.Context, channelCap *capabilitytypes.Capability, packet channelexported.PacketI) error PacketExecuted(ctx sdk.Context, chanCap *capabilitytypes.Capability, packet channelexported.PacketI, acknowledgement []byte) error ChanCloseInit(ctx sdk.Context, portID, channelID string, chanCap *capabilitytypes.Capability) error }
ChannelKeeper defines the expected IBC channel keeper
type ClientKeeper ¶
type ClientKeeper interface {
GetClientConsensusState(ctx sdk.Context, clientID string) (connection clientexported.ConsensusState, found bool)
}
ClientKeeper defines the expected IBC client keeper
type ConnectionKeeper ¶
type ConnectionKeeper interface {
GetConnection(ctx sdk.Context, connectionID string) (connection connectiontypes.ConnectionEnd, found bool)
}
ConnectionKeeper defines the expected IBC connection keeper
type FungibleTokenPacketAcknowledgement ¶
type FungibleTokenPacketAcknowledgement struct { Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` }
FungibleTokenPacketAcknowledgement contains a boolean success flag and an optional error msg error msg is empty string on success See spec for onAcknowledgePacket: https://github.com/cosmos/ics/tree/master/spec/ics-020-fungible-token-transfer#packet-relay
func (*FungibleTokenPacketAcknowledgement) Descriptor ¶
func (*FungibleTokenPacketAcknowledgement) Descriptor() ([]byte, []int)
func (FungibleTokenPacketAcknowledgement) GetBytes ¶
func (ack FungibleTokenPacketAcknowledgement) GetBytes() []byte
GetBytes is a helper for serialising
func (*FungibleTokenPacketAcknowledgement) GetError ¶
func (m *FungibleTokenPacketAcknowledgement) GetError() string
func (*FungibleTokenPacketAcknowledgement) GetSuccess ¶
func (m *FungibleTokenPacketAcknowledgement) GetSuccess() bool
func (*FungibleTokenPacketAcknowledgement) Marshal ¶
func (m *FungibleTokenPacketAcknowledgement) Marshal() (dAtA []byte, err error)
func (*FungibleTokenPacketAcknowledgement) MarshalTo ¶
func (m *FungibleTokenPacketAcknowledgement) MarshalTo(dAtA []byte) (int, error)
func (*FungibleTokenPacketAcknowledgement) MarshalToSizedBuffer ¶
func (m *FungibleTokenPacketAcknowledgement) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*FungibleTokenPacketAcknowledgement) ProtoMessage ¶
func (*FungibleTokenPacketAcknowledgement) ProtoMessage()
func (*FungibleTokenPacketAcknowledgement) Reset ¶
func (m *FungibleTokenPacketAcknowledgement) Reset()
func (*FungibleTokenPacketAcknowledgement) Size ¶
func (m *FungibleTokenPacketAcknowledgement) Size() (n int)
func (*FungibleTokenPacketAcknowledgement) String ¶
func (m *FungibleTokenPacketAcknowledgement) String() string
func (*FungibleTokenPacketAcknowledgement) Unmarshal ¶
func (m *FungibleTokenPacketAcknowledgement) Unmarshal(dAtA []byte) error
func (*FungibleTokenPacketAcknowledgement) XXX_DiscardUnknown ¶
func (m *FungibleTokenPacketAcknowledgement) XXX_DiscardUnknown()
func (*FungibleTokenPacketAcknowledgement) XXX_Marshal ¶
func (m *FungibleTokenPacketAcknowledgement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*FungibleTokenPacketAcknowledgement) XXX_Merge ¶
func (m *FungibleTokenPacketAcknowledgement) XXX_Merge(src proto.Message)
func (*FungibleTokenPacketAcknowledgement) XXX_Size ¶
func (m *FungibleTokenPacketAcknowledgement) XXX_Size() int
func (*FungibleTokenPacketAcknowledgement) XXX_Unmarshal ¶
func (m *FungibleTokenPacketAcknowledgement) XXX_Unmarshal(b []byte) error
type FungibleTokenPacketData ¶
type FungibleTokenPacketData struct { // the tokens to be transferred Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"` // the sender address Sender string `protobuf:"bytes,2,opt,name=sender,proto3" json:"sender,omitempty"` // the recipient address on the destination chain Receiver string `protobuf:"bytes,3,opt,name=receiver,proto3" json:"receiver,omitempty"` }
FungibleTokenPacketData defines a struct for the packet payload See FungibleTokenPacketData spec: https://github.com/cosmos/ics/tree/master/spec/ics-020-fungible-token-transfer#data-structures
func NewFungibleTokenPacketData ¶
func NewFungibleTokenPacketData( amount sdk.Coins, sender, receiver string) FungibleTokenPacketData
NewFungibleTokenPacketData contructs a new FungibleTokenPacketData instance
func (*FungibleTokenPacketData) Descriptor ¶
func (*FungibleTokenPacketData) Descriptor() ([]byte, []int)
func (*FungibleTokenPacketData) GetAmount ¶
func (m *FungibleTokenPacketData) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins
func (FungibleTokenPacketData) GetBytes ¶
func (ftpd FungibleTokenPacketData) GetBytes() []byte
GetBytes is a helper for serialising
func (*FungibleTokenPacketData) GetReceiver ¶
func (m *FungibleTokenPacketData) GetReceiver() string
func (*FungibleTokenPacketData) GetSender ¶
func (m *FungibleTokenPacketData) GetSender() string
func (*FungibleTokenPacketData) Marshal ¶
func (m *FungibleTokenPacketData) Marshal() (dAtA []byte, err error)
func (*FungibleTokenPacketData) MarshalTo ¶
func (m *FungibleTokenPacketData) MarshalTo(dAtA []byte) (int, error)
func (*FungibleTokenPacketData) MarshalToSizedBuffer ¶
func (m *FungibleTokenPacketData) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*FungibleTokenPacketData) ProtoMessage ¶
func (*FungibleTokenPacketData) ProtoMessage()
func (*FungibleTokenPacketData) Reset ¶
func (m *FungibleTokenPacketData) Reset()
func (*FungibleTokenPacketData) Size ¶
func (m *FungibleTokenPacketData) Size() (n int)
func (*FungibleTokenPacketData) String ¶
func (m *FungibleTokenPacketData) String() string
func (*FungibleTokenPacketData) Unmarshal ¶
func (m *FungibleTokenPacketData) Unmarshal(dAtA []byte) error
func (FungibleTokenPacketData) ValidateBasic ¶
func (ftpd FungibleTokenPacketData) ValidateBasic() error
ValidateBasic is used for validating the token transfer
func (*FungibleTokenPacketData) XXX_DiscardUnknown ¶
func (m *FungibleTokenPacketData) XXX_DiscardUnknown()
func (*FungibleTokenPacketData) XXX_Marshal ¶
func (m *FungibleTokenPacketData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*FungibleTokenPacketData) XXX_Merge ¶
func (m *FungibleTokenPacketData) XXX_Merge(src proto.Message)
func (*FungibleTokenPacketData) XXX_Size ¶
func (m *FungibleTokenPacketData) XXX_Size() int
func (*FungibleTokenPacketData) XXX_Unmarshal ¶
func (m *FungibleTokenPacketData) XXX_Unmarshal(b []byte) error
type GenesisState ¶
type GenesisState struct {
PortID string `json:"port_id" yaml:"port_id"`
}
GenesisState is currently only used to ensure that the InitGenesis gets run by the module manager
func DefaultGenesisState ¶
func DefaultGenesisState() GenesisState
DefaultGenesisState returns a GenesisState with "transfer" as the default PortID.
func (GenesisState) Validate ¶
func (gs GenesisState) Validate() error
Validate performs basic genesis state validation returning an error upon any failure.
type MsgTransfer ¶
type MsgTransfer struct { // the port on which the packet will be sent SourcePort string `protobuf:"bytes,1,opt,name=source_port,json=sourcePort,proto3" json:"source_port,omitempty" yaml:"source_port"` // the channel by which the packet will be sent SourceChannel string `protobuf:"bytes,2,opt,name=source_channel,json=sourceChannel,proto3" json:"source_channel,omitempty" yaml:"source_channel"` // the tokens to be transferred Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,3,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"` // the sender address Sender github_com_cosmos_cosmos_sdk_types.AccAddress `protobuf:"bytes,4,opt,name=sender,proto3,casttype=github.com/cosmos/cosmos-sdk/types.AccAddress" json:"sender,omitempty"` // the recipient address on the destination chain Receiver string `protobuf:"bytes,5,opt,name=receiver,proto3" json:"receiver,omitempty"` // Timeout height relative to the current block height. // The timeout is disabled when set to 0. TimeoutHeight uint64 `protobuf:"varint,6,opt,name=timeout_height,json=timeoutHeight,proto3" json:"timeout_height,omitempty" yaml:"timeout_height"` // Timeout timestamp (in nanoseconds) relative to the current block timestamp. // The timeout is disabled when set to 0. TimeoutTimestamp uint64 `` /* 135-byte string literal not displayed */ }
MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between ICS20 enabled chains. See ICS Spec here: https://github.com/cosmos/ics/tree/master/spec/ics-020-fungible-token-transfer#data-structures
func NewMsgTransfer ¶
func NewMsgTransfer( sourcePort, sourceChannel string, amount sdk.Coins, sender sdk.AccAddress, receiver string, timeoutHeight, timeoutTimestamp uint64, ) *MsgTransfer
NewMsgTransfer creates a new MsgTransfer instance
func (*MsgTransfer) Descriptor ¶
func (*MsgTransfer) Descriptor() ([]byte, []int)
func (*MsgTransfer) GetAmount ¶
func (m *MsgTransfer) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins
func (*MsgTransfer) GetReceiver ¶
func (m *MsgTransfer) GetReceiver() string
func (*MsgTransfer) GetSender ¶
func (m *MsgTransfer) GetSender() github_com_cosmos_cosmos_sdk_types.AccAddress
func (MsgTransfer) GetSignBytes ¶
func (msg MsgTransfer) GetSignBytes() []byte
GetSignBytes implements sdk.Msg
func (MsgTransfer) GetSigners ¶
func (msg MsgTransfer) GetSigners() []sdk.AccAddress
GetSigners implements sdk.Msg
func (*MsgTransfer) GetSourceChannel ¶
func (m *MsgTransfer) GetSourceChannel() string
func (*MsgTransfer) GetSourcePort ¶
func (m *MsgTransfer) GetSourcePort() string
func (*MsgTransfer) GetTimeoutHeight ¶
func (m *MsgTransfer) GetTimeoutHeight() uint64
func (*MsgTransfer) GetTimeoutTimestamp ¶
func (m *MsgTransfer) GetTimeoutTimestamp() uint64
func (*MsgTransfer) Marshal ¶
func (m *MsgTransfer) Marshal() (dAtA []byte, err error)
func (*MsgTransfer) MarshalToSizedBuffer ¶
func (m *MsgTransfer) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*MsgTransfer) ProtoMessage ¶
func (*MsgTransfer) ProtoMessage()
func (*MsgTransfer) Reset ¶
func (m *MsgTransfer) Reset()
func (*MsgTransfer) Size ¶
func (m *MsgTransfer) Size() (n int)
func (*MsgTransfer) String ¶
func (m *MsgTransfer) String() string
func (*MsgTransfer) Unmarshal ¶
func (m *MsgTransfer) Unmarshal(dAtA []byte) error
func (MsgTransfer) ValidateBasic ¶
func (msg MsgTransfer) ValidateBasic() error
ValidateBasic performs a basic check of the MsgTransfer fields. NOTE: timeout height and timestamp values can be 0 to disable the timeout.
func (*MsgTransfer) XXX_DiscardUnknown ¶
func (m *MsgTransfer) XXX_DiscardUnknown()
func (*MsgTransfer) XXX_Marshal ¶
func (m *MsgTransfer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*MsgTransfer) XXX_Merge ¶
func (m *MsgTransfer) XXX_Merge(src proto.Message)
func (*MsgTransfer) XXX_Size ¶
func (m *MsgTransfer) XXX_Size() int
func (*MsgTransfer) XXX_Unmarshal ¶
func (m *MsgTransfer) XXX_Unmarshal(b []byte) error
type PortKeeper ¶
type PortKeeper interface {
BindPort(ctx sdk.Context, portID string) *capabilitytypes.Capability
}
PortKeeper defines the expected IBC port keeper