Documentation ¶
Index ¶
- Constants
- Variables
- func DeserializeCosmosTx(cdc codec.Codec, data []byte, encoding string) ([]sdk.Msg, error)
- func GenerateAddress(ctx sdk.Context, connectionID, portID string) sdk.AccAddress
- func IsPreviousMetadataEqual(previousVersion string, metadata Metadata) bool
- func KeyActiveChannel(portID, connectionID string) []byte
- func KeyIsMiddlewareEnabled(portID, connectionID string) []byte
- func KeyOwnerAccount(portID, connectionID string) []byte
- func KeyPort(portID string) []byte
- func NewControllerPortID(owner string) (string, error)
- func NewDefaultMetadataString(controllerConnectionID, hostConnectionID string) string
- func RegisterInterfaces(registry codectypes.InterfaceRegistry)
- func SerializeCosmosTx(cdc codec.Codec, msgs []proto.Message, encoding string) ([]byte, error)
- func ValidateAccountAddress(addr string) error
- func ValidateControllerMetadata(ctx sdk.Context, channelKeeper ChannelKeeper, connectionHops []string, ...) error
- func ValidateHostMetadata(ctx sdk.Context, channelKeeper ChannelKeeper, connectionHops []string, ...) error
- type AccountKeeper
- type ChannelKeeper
- type CosmosTx
- func (*CosmosTx) Descriptor() ([]byte, []int)
- func (m *CosmosTx) GetMessages() []*types.Any
- func (m *CosmosTx) Marshal() (dAtA []byte, err error)
- func (m *CosmosTx) MarshalTo(dAtA []byte) (int, error)
- func (m *CosmosTx) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*CosmosTx) ProtoMessage()
- func (m *CosmosTx) Reset()
- func (m *CosmosTx) Size() (n int)
- func (m *CosmosTx) String() string
- func (m *CosmosTx) Unmarshal(dAtA []byte) error
- func (ct CosmosTx) UnpackInterfaces(unpacker codectypes.AnyUnpacker) error
- func (m *CosmosTx) XXX_DiscardUnknown()
- func (m *CosmosTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *CosmosTx) XXX_Merge(src proto.Message)
- func (m *CosmosTx) XXX_Size() int
- func (m *CosmosTx) XXX_Unmarshal(b []byte) error
- type InterchainAccount
- func (*InterchainAccount) Descriptor() ([]byte, []int)
- func (m *InterchainAccount) Marshal() (dAtA []byte, err error)
- func (ia InterchainAccount) MarshalJSON() ([]byte, error)
- func (m *InterchainAccount) MarshalTo(dAtA []byte) (int, error)
- func (m *InterchainAccount) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (ia InterchainAccount) MarshalYAML() ([]byte, error)
- func (*InterchainAccount) ProtoMessage()
- func (m *InterchainAccount) Reset()
- func (InterchainAccount) SetPubKey(pubkey crypto.PubKey) error
- func (InterchainAccount) SetSequence(seq uint64) error
- func (m *InterchainAccount) Size() (n int)
- func (ia InterchainAccount) String() string
- func (m *InterchainAccount) Unmarshal(dAtA []byte) error
- func (ia *InterchainAccount) UnmarshalJSON(bz []byte) error
- func (ia InterchainAccount) Validate() error
- func (m *InterchainAccount) XXX_DiscardUnknown()
- func (m *InterchainAccount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *InterchainAccount) XXX_Merge(src proto.Message)
- func (m *InterchainAccount) XXX_Size() int
- func (m *InterchainAccount) XXX_Unmarshal(b []byte) error
- type InterchainAccountI
- type InterchainAccountPacketData
- func (*InterchainAccountPacketData) Descriptor() ([]byte, []int)
- func (iapd InterchainAccountPacketData) GetBytes() []byte
- func (iapd InterchainAccountPacketData) GetCustomPacketData(key string) interface{}
- func (m *InterchainAccountPacketData) GetData() []byte
- func (m *InterchainAccountPacketData) GetMemo() string
- func (InterchainAccountPacketData) GetPacketSender(sourcePortID string) string
- func (m *InterchainAccountPacketData) GetType() Type
- func (m *InterchainAccountPacketData) Marshal() (dAtA []byte, err error)
- func (m *InterchainAccountPacketData) MarshalTo(dAtA []byte) (int, error)
- func (m *InterchainAccountPacketData) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*InterchainAccountPacketData) ProtoMessage()
- func (m *InterchainAccountPacketData) Reset()
- func (m *InterchainAccountPacketData) Size() (n int)
- func (m *InterchainAccountPacketData) String() string
- func (m *InterchainAccountPacketData) Unmarshal(dAtA []byte) error
- func (iapd *InterchainAccountPacketData) UnmarshalJSON(bz []byte) error
- func (iapd InterchainAccountPacketData) ValidateBasic() error
- func (m *InterchainAccountPacketData) XXX_DiscardUnknown()
- func (m *InterchainAccountPacketData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *InterchainAccountPacketData) XXX_Merge(src proto.Message)
- func (m *InterchainAccountPacketData) XXX_Size() int
- func (m *InterchainAccountPacketData) XXX_Unmarshal(b []byte) error
- type MessageRouter
- type Metadata
- func (*Metadata) Descriptor() ([]byte, []int)
- func (m *Metadata) GetAddress() string
- func (m *Metadata) GetControllerConnectionId() string
- func (m *Metadata) GetEncoding() string
- func (m *Metadata) GetHostConnectionId() string
- func (m *Metadata) GetTxType() string
- func (m *Metadata) GetVersion() string
- func (m *Metadata) Marshal() (dAtA []byte, err error)
- func (m *Metadata) MarshalTo(dAtA []byte) (int, error)
- func (m *Metadata) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*Metadata) ProtoMessage()
- func (m *Metadata) Reset()
- func (m *Metadata) Size() (n int)
- func (m *Metadata) String() string
- func (m *Metadata) Unmarshal(dAtA []byte) error
- func (m *Metadata) XXX_DiscardUnknown()
- func (m *Metadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Metadata) XXX_Merge(src proto.Message)
- func (m *Metadata) XXX_Size() int
- func (m *Metadata) XXX_Unmarshal(b []byte) error
- type ParamSubspace
- type PortKeeper
- type QueryRouter
- type Type
Constants ¶
const ( EventTypePacket = "ics27_packet" AttributeKeyAckError = "error" AttributeKeyHostChannelID = "host_channel_id" AttributeKeyControllerChannelID = "controller_channel_id" AttributeKeyAckSuccess = "success" )
ICS27 Interchain Accounts events
const ( // ModuleName defines the interchain accounts module name ModuleName = "interchainaccounts" // HostPortID is the default port id that the interchain accounts host submodule binds to HostPortID = "icahost" // ControllerPortPrefix is the default port prefix that the interchain accounts controller submodule binds to ControllerPortPrefix = "icacontroller-" // Version defines the current version for interchain accounts Version = "ics27-1" // RouterKey is the message route for interchain accounts RouterKey = ModuleName // QuerierRoute is the querier route for interchain accounts QuerierRoute = ModuleName )
const ( // EncodingProtobuf defines the protocol buffers proto3 encoding format EncodingProtobuf = "proto3" // EncodingProto3JSON defines the proto3 JSON encoding format EncodingProto3JSON = "proto3json" // TxTypeSDKMultiMsg defines the multi message transaction type supported by the Cosmos SDK TxTypeSDKMultiMsg = "sdk_multi_msg" )
const MaxMemoCharLength = 32768
MaxMemoCharLength defines the maximum length for the InterchainAccountPacketData memo field
Variables ¶
var ( ErrInvalidLengthAccount = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowAccount = fmt.Errorf("proto: integer overflow") ErrUnexpectedEndOfGroupAccount = fmt.Errorf("proto: unexpected end of group") )
var ( ErrUnknownDataType = errorsmod.Register(ModuleName, 2, "unknown data type") ErrAccountAlreadyExist = errorsmod.Register(ModuleName, 3, "account already exist") ErrPortAlreadyBound = errorsmod.Register(ModuleName, 4, "port is already bound") ErrInvalidChannelFlow = errorsmod.Register(ModuleName, 5, "invalid message sent to channel end") ErrInvalidOutgoingData = errorsmod.Register(ModuleName, 6, "invalid outgoing data") ErrInvalidRoute = errorsmod.Register(ModuleName, 7, "invalid route") ErrInterchainAccountNotFound = errorsmod.Register(ModuleName, 8, "interchain account not found") ErrInterchainAccountAlreadySet = errorsmod.Register(ModuleName, 9, "interchain account is already set") ErrActiveChannelAlreadySet = errorsmod.Register(ModuleName, 10, "active channel already set for this owner") ErrActiveChannelNotFound = errorsmod.Register(ModuleName, 11, "no active channel for this owner") ErrInvalidVersion = errorsmod.Register(ModuleName, 12, "invalid interchain accounts version") ErrInvalidAccountAddress = errorsmod.Register(ModuleName, 13, "invalid account address") ErrUnsupported = errorsmod.Register(ModuleName, 14, "interchain account does not support this action") ErrInvalidControllerPort = errorsmod.Register(ModuleName, 15, "invalid controller port") ErrInvalidHostPort = errorsmod.Register(ModuleName, 16, "invalid host port") ErrInvalidTimeoutTimestamp = errorsmod.Register(ModuleName, 17, "timeout timestamp must be in the future") ErrInvalidCodec = errorsmod.Register(ModuleName, 18, "codec is not supported") ErrInvalidAccountReopening = errorsmod.Register(ModuleName, 19, "invalid account reopening") )
var ( // ActiveChannelKeyPrefix defines the key prefix used to store active channels ActiveChannelKeyPrefix = "activeChannel" // OwnerKeyPrefix defines the key prefix used to store interchain accounts OwnerKeyPrefix = "owner" // PortKeyPrefix defines the key prefix used to store ports PortKeyPrefix = "port" // IsMiddlewareEnabledPrefix defines the key prefix used to store a flag for legacy API callback routing via ibc middleware IsMiddlewareEnabledPrefix = "isMiddlewareEnabled" // MiddlewareEnabled is the value used to signal that controller middleware is enabled MiddlewareEnabled = []byte{0x01} // MiddlewareDisabled is the value used to signal that controller midleware is disabled MiddlewareDisabled = []byte{0x02} )
var ( ErrInvalidLengthMetadata = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowMetadata = fmt.Errorf("proto: integer overflow") ErrUnexpectedEndOfGroupMetadata = fmt.Errorf("proto: unexpected end of group") )
var ( ErrInvalidLengthPacket = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowPacket = fmt.Errorf("proto: integer overflow") ErrUnexpectedEndOfGroupPacket = fmt.Errorf("proto: unexpected end of group") )
var DefaultMaxAddrLength = 128
DefaultMaxAddrLength defines the default maximum character length used in validation of addresses
var ModuleCdc = codec.NewProtoCodec(codectypes.NewInterfaceRegistry())
ModuleCdc references the global interchain accounts module codec. Note, the codec should ONLY be used in certain instances of tests and for JSON encoding.
The actual codec used for serialization should be provided to interchain accounts and defined at the application level.
var Type_name = map[int32]string{
0: "TYPE_UNSPECIFIED",
1: "TYPE_EXECUTE_TX",
}
var Type_value = map[string]int32{
"TYPE_UNSPECIFIED": 0,
"TYPE_EXECUTE_TX": 1,
}
Functions ¶
func DeserializeCosmosTx ¶
DeserializeCosmosTx unmarshals and unpacks a slice of transaction bytes into a slice of sdk.Msg's. The transaction bytes are unmarshaled depending on the encoding type passed in. The sdk.Msg's are unpacked from Any's and returned. Only the ProtoCodec is supported for serializing messages. Both protobuf and proto3 JSON are supported.
func GenerateAddress ¶
func GenerateAddress(ctx sdk.Context, connectionID, portID string) sdk.AccAddress
GenerateAddress returns an sdk.AccAddress derived using a host module account address, host connection ID, the controller portID, the current block app hash, and the current block data hash. The sdk.AccAddress returned is a sub-address of the host module account.
func IsPreviousMetadataEqual ¶
IsPreviousMetadataEqual compares a metadata to a previous version string set in a channel struct. It ensures all fields are equal except the Address string
func KeyActiveChannel ¶
KeyActiveChannel creates and returns a new key used for active channels store operations
func KeyIsMiddlewareEnabled ¶
KeyIsMiddlewareEnabled creates and returns a new key used for signaling legacy API callback routing via ibc middleware
func KeyOwnerAccount ¶
KeyOwnerAccount creates and returns a new key used for interchain account store operations
func NewControllerPortID ¶
NewControllerPortID creates and returns a new prefixed controller port identifier using the provided owner string
func NewDefaultMetadataString ¶
NewDefaultMetadataString creates and returns a new JSON encoded version string containing the default ICS27 Metadata values with the provided controller and host connection identifiers. The host connection identifier may be an empty string.
func RegisterInterfaces ¶
func RegisterInterfaces(registry codectypes.InterfaceRegistry)
RegisterInterfaces registers the interchain accounts controller types and the concrete InterchainAccount implementation against the associated x/auth AccountI and GenesisAccount interfaces.
func SerializeCosmosTx ¶
SerializeCosmosTx serializes a slice of sdk.Msg's using the CosmosTx type. The sdk.Msg's are packed into Any's and inserted into the Messages field of a CosmosTx. The CosmosTx is marshaled depending on the encoding type passed in. The marshaled bytes are returned. Only the ProtoCodec is supported for serializing messages. Both protobuf and proto3 JSON are supported.
func ValidateAccountAddress ¶
ValidateAccountAddress performs basic validation of interchain account addresses, enforcing constraints on address length and character set
func ValidateControllerMetadata ¶
func ValidateControllerMetadata(ctx sdk.Context, channelKeeper ChannelKeeper, connectionHops []string, metadata Metadata) error
ValidateControllerMetadata performs validation of the provided ICS27 controller metadata parameters as well as the connection params against the provided metadata
func ValidateHostMetadata ¶
func ValidateHostMetadata(ctx sdk.Context, channelKeeper ChannelKeeper, connectionHops []string, metadata Metadata) error
ValidateHostMetadata performs validation of the provided ICS27 host metadata parameters
Types ¶
type AccountKeeper ¶
type AccountKeeper interface { NewAccount(ctx context.Context, acc sdk.AccountI) sdk.AccountI GetAccount(ctx context.Context, addr sdk.AccAddress) sdk.AccountI SetAccount(ctx context.Context, acc sdk.AccountI) GetModuleAccount(ctx context.Context, name string) sdk.ModuleAccountI GetModuleAddress(name string) sdk.AccAddress }
AccountKeeper defines the expected account 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) GetConnection(ctx sdk.Context, connectionID string) (connectiontypes.ConnectionEnd, error) GetAllChannelsWithPortPrefix(ctx sdk.Context, portPrefix string) []channeltypes.IdentifiedChannel }
ChannelKeeper defines the expected IBC channel keeper
type CosmosTx ¶
type CosmosTx struct {
Messages []*types.Any `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"`
}
CosmosTx contains a list of sdk.Msg's. It should be used when sending transactions to an SDK host chain.
func (*CosmosTx) Descriptor ¶
func (*CosmosTx) GetMessages ¶
func (*CosmosTx) MarshalToSizedBuffer ¶
func (*CosmosTx) ProtoMessage ¶
func (*CosmosTx) ProtoMessage()
func (CosmosTx) UnpackInterfaces ¶
func (ct CosmosTx) UnpackInterfaces(unpacker codectypes.AnyUnpacker) error
UnpackInterfaces implements UnpackInterfacesMessage.UnpackInterfaces
func (*CosmosTx) XXX_DiscardUnknown ¶
func (m *CosmosTx) XXX_DiscardUnknown()
func (*CosmosTx) XXX_Marshal ¶
func (*CosmosTx) XXX_Unmarshal ¶
type InterchainAccount ¶
type InterchainAccount struct { *types.BaseAccount `protobuf:"bytes,1,opt,name=base_account,json=baseAccount,proto3,embedded=base_account" json:"base_account,omitempty"` AccountOwner string `protobuf:"bytes,2,opt,name=account_owner,json=accountOwner,proto3" json:"account_owner,omitempty"` }
An InterchainAccount is defined as a BaseAccount & the address of the account owner on the controller chain
func NewInterchainAccount ¶
func NewInterchainAccount(ba *authtypes.BaseAccount, accountOwner string) *InterchainAccount
NewInterchainAccount creates and returns a new InterchainAccount type
func (*InterchainAccount) Descriptor ¶
func (*InterchainAccount) Descriptor() ([]byte, []int)
func (*InterchainAccount) Marshal ¶
func (m *InterchainAccount) Marshal() (dAtA []byte, err error)
func (InterchainAccount) MarshalJSON ¶
func (ia InterchainAccount) MarshalJSON() ([]byte, error)
MarshalJSON returns the JSON representation of the InterchainAccount
func (*InterchainAccount) MarshalTo ¶
func (m *InterchainAccount) MarshalTo(dAtA []byte) (int, error)
func (*InterchainAccount) MarshalToSizedBuffer ¶
func (m *InterchainAccount) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (InterchainAccount) MarshalYAML ¶
func (ia InterchainAccount) MarshalYAML() ([]byte, error)
MarshalYAML returns the YAML representation of the InterchainAccount
func (*InterchainAccount) ProtoMessage ¶
func (*InterchainAccount) ProtoMessage()
func (*InterchainAccount) Reset ¶
func (m *InterchainAccount) Reset()
func (InterchainAccount) SetPubKey ¶
func (InterchainAccount) SetPubKey(pubkey crypto.PubKey) error
SetPubKey implements the authtypes.AccountI interface
func (InterchainAccount) SetSequence ¶
func (InterchainAccount) SetSequence(seq uint64) error
SetSequence implements the authtypes.AccountI interface
func (*InterchainAccount) Size ¶
func (m *InterchainAccount) Size() (n int)
func (InterchainAccount) String ¶
func (ia InterchainAccount) String() string
String returns a string representation of the InterchainAccount
func (*InterchainAccount) Unmarshal ¶
func (m *InterchainAccount) Unmarshal(dAtA []byte) error
func (*InterchainAccount) UnmarshalJSON ¶
func (ia *InterchainAccount) UnmarshalJSON(bz []byte) error
UnmarshalJSON unmarshals raw JSON bytes into the InterchainAccount
func (InterchainAccount) Validate ¶
func (ia InterchainAccount) Validate() error
Validate implements basic validation of the InterchainAccount
func (*InterchainAccount) XXX_DiscardUnknown ¶
func (m *InterchainAccount) XXX_DiscardUnknown()
func (*InterchainAccount) XXX_Marshal ¶
func (m *InterchainAccount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*InterchainAccount) XXX_Merge ¶
func (m *InterchainAccount) XXX_Merge(src proto.Message)
func (*InterchainAccount) XXX_Size ¶
func (m *InterchainAccount) XXX_Size() int
func (*InterchainAccount) XXX_Unmarshal ¶
func (m *InterchainAccount) XXX_Unmarshal(b []byte) error
type InterchainAccountI ¶
InterchainAccountI wraps the sdk.AccountI interface
type InterchainAccountPacketData ¶
type InterchainAccountPacketData struct { Type Type `protobuf:"varint,1,opt,name=type,proto3,enum=ibc.applications.interchain_accounts.v1.Type" json:"type,omitempty"` Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` Memo string `protobuf:"bytes,3,opt,name=memo,proto3" json:"memo,omitempty"` }
InterchainAccountPacketData is comprised of a raw transaction, type of transaction and optional memo field.
func (*InterchainAccountPacketData) Descriptor ¶
func (*InterchainAccountPacketData) Descriptor() ([]byte, []int)
func (InterchainAccountPacketData) GetBytes ¶
func (iapd InterchainAccountPacketData) GetBytes() []byte
GetBytes returns the JSON marshalled interchain account packet data.
func (InterchainAccountPacketData) GetCustomPacketData ¶
func (iapd InterchainAccountPacketData) GetCustomPacketData(key string) interface{}
GetCustomPacketData interprets the memo field of the packet data as a JSON object and returns the value associated with the given key. If the key is missing or the memo is not properly formatted, then nil is returned.
func (*InterchainAccountPacketData) GetData ¶
func (m *InterchainAccountPacketData) GetData() []byte
func (*InterchainAccountPacketData) GetMemo ¶
func (m *InterchainAccountPacketData) GetMemo() string
func (InterchainAccountPacketData) GetPacketSender ¶
func (InterchainAccountPacketData) GetPacketSender(sourcePortID string) string
GetPacketSender returns the sender address of the interchain accounts packet data. It is obtained from the source port ID by cutting off the ControllerPortPrefix. If the source port ID does not have the ControllerPortPrefix, then an empty string is returned.
NOTE:
- The sender address is set by the packet sender and may not have been validated a signature check if the packet sender isn't the interchain accounts module.
- The sender address must only be used by modules on the sending chain.
func (*InterchainAccountPacketData) GetType ¶
func (m *InterchainAccountPacketData) GetType() Type
func (*InterchainAccountPacketData) Marshal ¶
func (m *InterchainAccountPacketData) Marshal() (dAtA []byte, err error)
func (*InterchainAccountPacketData) MarshalTo ¶
func (m *InterchainAccountPacketData) MarshalTo(dAtA []byte) (int, error)
func (*InterchainAccountPacketData) MarshalToSizedBuffer ¶
func (m *InterchainAccountPacketData) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*InterchainAccountPacketData) ProtoMessage ¶
func (*InterchainAccountPacketData) ProtoMessage()
func (*InterchainAccountPacketData) Reset ¶
func (m *InterchainAccountPacketData) Reset()
func (*InterchainAccountPacketData) Size ¶
func (m *InterchainAccountPacketData) Size() (n int)
func (*InterchainAccountPacketData) String ¶
func (m *InterchainAccountPacketData) String() string
func (*InterchainAccountPacketData) Unmarshal ¶
func (m *InterchainAccountPacketData) Unmarshal(dAtA []byte) error
func (*InterchainAccountPacketData) UnmarshalJSON ¶
func (iapd *InterchainAccountPacketData) UnmarshalJSON(bz []byte) error
UnmarshalJSON unmarshals raw JSON bytes into an InterchainAccountPacketData.
func (InterchainAccountPacketData) ValidateBasic ¶
func (iapd InterchainAccountPacketData) ValidateBasic() error
ValidateBasic performs basic validation of the interchain account packet data. The memo may be empty.
func (*InterchainAccountPacketData) XXX_DiscardUnknown ¶
func (m *InterchainAccountPacketData) XXX_DiscardUnknown()
func (*InterchainAccountPacketData) XXX_Marshal ¶
func (m *InterchainAccountPacketData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*InterchainAccountPacketData) XXX_Merge ¶
func (m *InterchainAccountPacketData) XXX_Merge(src proto.Message)
func (*InterchainAccountPacketData) XXX_Size ¶
func (m *InterchainAccountPacketData) XXX_Size() int
func (*InterchainAccountPacketData) XXX_Unmarshal ¶
func (m *InterchainAccountPacketData) XXX_Unmarshal(b []byte) error
type MessageRouter ¶
type MessageRouter interface {
Handler(msg sdk.Msg) baseapp.MsgServiceHandler
}
MessageRouter ADR 031 request type routing https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-031-msg-service.md
type Metadata ¶
type Metadata struct { // version defines the ICS27 protocol version Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // controller_connection_id is the connection identifier associated with the controller chain ControllerConnectionId string `` /* 129-byte string literal not displayed */ // host_connection_id is the connection identifier associated with the host chain HostConnectionId string `protobuf:"bytes,3,opt,name=host_connection_id,json=hostConnectionId,proto3" json:"host_connection_id,omitempty"` // address defines the interchain account address to be fulfilled upon the OnChanOpenTry handshake step // NOTE: the address field is empty on the OnChanOpenInit handshake step Address string `protobuf:"bytes,4,opt,name=address,proto3" json:"address,omitempty"` // encoding defines the supported codec format Encoding string `protobuf:"bytes,5,opt,name=encoding,proto3" json:"encoding,omitempty"` // tx_type defines the type of transactions the interchain account can execute TxType string `protobuf:"bytes,6,opt,name=tx_type,json=txType,proto3" json:"tx_type,omitempty"` }
Metadata defines a set of protocol specific data encoded into the ICS27 channel version bytestring See ICS004: https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#Versioning
func MetadataFromVersion ¶
MetadataFromVersion parses Metadata from a json encoded version string.
func NewDefaultMetadata ¶
NewDefaultMetadata creates and returns a new ICS27 Metadata instance containing the default ICS27 Metadata values with the provided controller and host connection identifiers. The host connection identifier may be an empty string.
func NewMetadata ¶
func NewMetadata(version, controllerConnectionID, hostConnectionID, accAddress, encoding, txType string) Metadata
NewMetadata creates and returns a new ICS27 Metadata instance
func (*Metadata) Descriptor ¶
func (*Metadata) GetAddress ¶
func (*Metadata) GetControllerConnectionId ¶
func (*Metadata) GetEncoding ¶
func (*Metadata) GetHostConnectionId ¶
func (*Metadata) GetVersion ¶
func (*Metadata) MarshalToSizedBuffer ¶
func (*Metadata) ProtoMessage ¶
func (*Metadata) ProtoMessage()
func (*Metadata) XXX_DiscardUnknown ¶
func (m *Metadata) XXX_DiscardUnknown()
func (*Metadata) XXX_Marshal ¶
func (*Metadata) XXX_Unmarshal ¶
type ParamSubspace ¶
type ParamSubspace interface { GetParamSet(ctx sdk.Context, ps paramtypes.ParamSet) GetParamSetIfExists(ctx sdk.Context, ps paramtypes.ParamSet) }
ParamSubspace defines the expected Subspace interface for module parameters.
type PortKeeper ¶
type PortKeeper interface { BindPort(ctx sdk.Context, portID string) *capabilitytypes.Capability IsBound(ctx sdk.Context, portID string) bool }
PortKeeper defines the expected IBC port keeper
type QueryRouter ¶
type QueryRouter interface { // Route returns the GRPCQueryHandler for a given query route path or nil // if not found Route(path string) baseapp.GRPCQueryHandler }
QueryRouter ADR 021 query type routing https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-021-protobuf-query-encoding.md
type Type ¶
type Type int32
Type defines a classification of message issued from a controller chain to its associated interchain accounts host