wasm

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2024 License: Apache-2.0 Imports: 32 Imported by: 8

README

Wasm Module

This should be a brief overview of the functionality

Configuration

You can add the following section to config/app.toml:

[wasm]
# This is the maximum sdk gas (wasm and storage) that we allow for any x/wasm "smart" queries
query_gas_limit = 300000
# This defines the memory size for Wasm modules that we can keep cached to speed-up instantiation
# The value is in MiB not bytes
memory_cache_size = 300

The values can also be set via CLI flags on with the start command:

--wasm.memory_cache_size uint32     Sets the size in MiB (NOT bytes) of an in-memory cache for wasm modules. Set to 0 to disable. (default 100)
--wasm.query_gas_limit uint         Set the max gas that can be spent on executing a query with a Wasm contract (default 3000000)

Events

Overview

A number of events are returned to allow good indexing of the transactions from smart contracts.

Every call to Instantiate or Execute will be tagged with the info on the contract that was executed and who executed it. It should look something like this (with different addresses). The module is always wasm, and code_id is only present when Instantiating a contract, so you can subscribe to new instances, it is omitted on Execute. There is also an action tag which is auto-added by the Cosmos SDK and has a value of either store-code, instantiate or execute depending on which message was sent:

{
    "Type": "message",
    "Attr": [
        {
            "key": "module",
            "value": "wasm"
        },
        {
            "key": "action",
            "value": "instantiate"
        },
        {
            "key": "signer",
            "value": "cosmos1vx8knpllrj7n963p9ttd80w47kpacrhuts497x"
        },
        {
            "key": "code_id",
            "value": "1"
        },
        {
            "key": "_contract_address",
            "value": "cosmos14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s4hmalr"
        }
    ]
}

If any funds were transferred to the contract as part of the message, or if the contract released funds as part of it's executions, it will receive the typical events associated with sending tokens from bank. In this case, we instantiate the contract and provide a initial balance in the same MsgInstantiateContract. We see the following events in addition to the above one:

[
    {
        "Type": "transfer",
        "Attr": [
            {
                "key": "recipient",
                "value": "cosmos14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s4hmalr"
            },
            {
                "key": "sender",
                "value": "cosmos1ffnqn02ft2psvyv4dyr56nnv6plllf9pm2kpmv"
            },
            {
                "key": "amount",
                "value": "100000denom"
            }
        ]
    }
]

Finally, the contract itself can emit a "custom event" on Execute only (not on Init). There is one event per contract, so if one contract calls a second contract, you may receive one event for the original contract and one for the re-invoked contract. All attributes from the contract are passed through verbatim, and we add a _contract_address attribute that contains the actual contract that emitted that event. Here is an example from the escrow contract successfully releasing funds to the destination address:

{
    "Type": "wasm",
    "Attr": [
        {
            "key": "_contract_address",
            "value": "cosmos14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s4hmalr"
        },
        {
            "key": "action",
            "value": "release"
        },
        {
            "key": "destination",
            "value": "cosmos14k7v7ms4jxkk2etmg9gljxjm4ru3qjdugfsflq"
        }
    ]
}
Pulling this all together

We will invoke an escrow contract to release to the designated beneficiary. The escrow was previously loaded with 100000denom (from the above example). In this transaction, we send 5000denom along with the MsgExecuteContract and the contract releases the entire funds (105000denom) to the beneficiary.

We will see all the following events, where you should be able to reconstruct the actions (remember there are two events for each transfer). We see (1) the initial transfer of funds to the contract, (2) the contract custom event that it released funds (3) the transfer of funds from the contract to the beneficiary and (4) the generic x/wasm event stating that the contract was executed (which always appears, while 2 is optional and has information as reliable as the contract):

[
    {
        "Type": "transfer",
        "Attr": [
            {
                "key": "recipient",
                "value": "cosmos14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s4hmalr"
            },
            {
                "key": "sender",
                "value": "cosmos1zm074khx32hqy20hlshlsd423n07pwlu9cpt37"
            },
            {
                "key": "amount",
                "value": "5000denom"
            }
        ]
    },
    {
        "Type": "wasm",
        "Attr": [
            {
                "key": "_contract_address",
                "value": "cosmos14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s4hmalr"
            },
            {
                "key": "action",
                "value": "release"
            },
            {
                "key": "destination",
                "value": "cosmos14k7v7ms4jxkk2etmg9gljxjm4ru3qjdugfsflq"
            }
        ]
    },
    {
        "Type": "transfer",
        "Attr": [
            {
                "key": "recipient",
                "value": "cosmos14k7v7ms4jxkk2etmg9gljxjm4ru3qjdugfsflq"
            },
            {
                "key": "sender",
                "value": "cosmos14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s4hmalr"
            },
            {
                "key": "amount",
                "value": "105000denom"
            }
        ]
    },
    {
        "Type": "message",
        "Attr": [
            {
                "key": "module",
                "value": "wasm"
            },
            {
                "key": "action",
                "value": "execute"
            },
            {
                "key": "signer",
                "value": "cosmos1zm074khx32hqy20hlshlsd423n07pwlu9cpt37"
            },
            {
                "key": "_contract_address",
                "value": "cosmos14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s4hmalr"
            }
        ]
    }
]

A note on this format. This is what we return from our module. However, it seems to me that many events with the same Type get merged together somewhere along the stack, so in this case, you may end up with one "transfer" event with the info for both transfers. Double check when evaluating the event logs, I will document better with more experience, especially when I find out the entire path for the events.

Message Events
MsgStoreCode
Type Attribute Key Attribute Value Note
message module wasm
message sender {senderAddress}
store_code code_id {contractCodeID}
store_code feature {WasmvmRequiredFeature}
MsgInstantiateContract
Type Attribute Key Attribute Value Note
message module wasm
message sender {senderAddress}
instantiate code_id {contractCodeID}
instantiate _contract_address {contractAddress}
transfer recipient {recipientAddress} Only when the fund exists
transfer sender {senderAddress} Only when the fund exists
transfer amount {amount} Only when the fund exists
wasm {customContractAttributeKey} {customContractAttributeValue} (optional) Defined by wasm contract developer
wasm-{customEventType} {customContractAttributeKey} {customContractAttributeKey} (optional) Defined by wasm contract developer
MsgStoreCodeAndInstantiateContract
Type Attribute Key Attribute Value Note
message module wasm
message sender {senderAddress}
store_code code_id {contractCodeID}
store_code feature {WasmvmRequiredFeature}
instantiate code_id {contractCodeID}
instantiate _contract_address {contractAddress}
transfer recipient {recipientAddress} Only when the fund exists
transfer sender {senderAddress} Only when the fund exists
transfer amount {amount} Only when the fund exists
wasm {customContractAttributeKey} {customContractAttributeValue} (optional) Defined by wasm contract developer
wasm-{customEventType} {customContractAttributeKey} {customContractAttributeKey} (optional) Defined by wasm contract developer
MsgExecuteContract
Type Attribute Key Attribute Value Note
message module wasm
message sender {senderAddress}
execute _contract_address {contractAddress}
transfer recipient {recipientAddress} Only when the fund exists
transfer sender {senderAddress} Only when the fund exists
transfer amount {amount} Only when the fund exists
wasm {customContractAttributeKey} {customContractAttributeValue} (optional) Defined by wasm contract developer
wasm-{customEventType} {customContractAttributeKey} {customContractAttributeKey} (optional) Defined by wasm contract developer
MsgMigrateContract
Type Attribute Key Attribute Value Note
message module wasm
message sender {senderAddress}
migrate code_id {newCodeID}
migrate _contract_address {contractAddress}
wasm {customContractAttributeKey} {customContractAttributeValue} (optional) Defined by wasm contract developer
wasm-{customEventType} {customContractAttributeKey} {customContractAttributeKey} (optional) Defined by wasm contract developer
MsgUpdateAdmin
Type Attribute Key Attribute Value Note
message module wasm
message sender {senderAddress}
update_contract_admin _contract_address {contract_address}
update_contract_admin new_admin_address {adminAddress}
MsgClearAdmin
Type Attribute Key Attribute Value Note
message module wasm
message sender {senderAddress}
update_contract_admin _contract_address {contract_address}
update_contract_admin new_admin_address "" empty string
Keeper Events

In addition to message events, the wasm keeper will produce events when the following methods are called (or any method which ends up calling them)

Reply

reply is only called from keeper after processing the submessage

Type Attribute Key Attribute Value Note
reply _contract_address {contractAddress}
Sudo

Sudo allows priviledged access to a contract. This can never be called by an external tx, but only by another native Go module directly.

Type Attribute Key Attribute Value Note
sudo _contract_address {contractAddress}
PinCode

PinCode pins the wasm contract in wasmvm cache.

Type Attribute Key Attribute Value Note
pin_code code_id {codeID}
UnpinCode
Type Attribute Key Attribute Value Note
unpin_code code_id {codeID}
SetContractAdmin
Type Attribute Key Attribute Value Note
update_contract_admin _contract_address {contract_address}
update_contract_admin new_admin_address {adminAddress}
SetAccessConfig

By governance

Type Attribute Key Attribute Value Note
update_code_access_config code_permission {String}
update_code_access_config code_id {String}
Proposal Events

If you use wasm proposal, it makes common event like below.

Type Attribute Key Attribute Value Note
gov_contract_result result {resultOfProposal}

Messages

TODO

Errors

Error Name Codespace Code Description
ErrCreateFailed wasm 2 Error for wasm code that has already been uploaded or failed
ErrAccountExists wasm 3 Error for a contract account that already exists
ErrInstantiateFailed wasm 4 Error for rust instantiate contract failure
ErrExecuteFailed wasm 5 Error for rust execution contract failure
ErrGasLimit wasm 6 Error for out of gas
ErrInvalidGenesis wasm 7 Error for invalid genesis file syntax
ErrNotFound wasm 8 Error for an entry not found in the store
ErrQueryFailed wasm 9 Error for rust smart query contract failure
ErrInvalidMsg wasm 10 Error when we cannot process the error returned from the contract
ErrMigrationFailed wasm 11 Error for rust execution contract failure
ErrEmpty wasm 12 Error for empty content
ErrLimit wasm 13 Error for content that exceeds a limit
ErrInvalid wasm 14 Error for content that is invalid in this context
ErrDuplicate wasm 15 Error for content that exists
ErrMaxIBCChannels wasm 16 Error for maximum number of ibc channels reached
ErrUnsupportedForContract wasm 17 Error when a capability is used that is not supported for/ by this contract
ErrPinContractFailed wasm 18 Error for pinning contract failures
ErrUnpinContractFailed wasm 19 Error for unpinning contract failures
ErrUnknownMsg wasm 20 Error by a message handler to show that it is not responsible for this message type
ErrInvalidEvent wasm 21 Error if an attribute/event from the contract is invalid
_ wasm 22 Error if an address does not belong to a contract (just for registration)
ErrNotAJSONObject wasm 23 Error if given data is not a JSON object
ErrNoTopLevelKey wasm 24 Error if a JSON object has no top-level key
ErrMultipleTopLevelKeys wasm 25 Error if a JSON object has more than one top-level key
ErrTopKevelKeyNotAllowed wasm 26 Error if a JSON object has a top-level key that is not allowed
ErrExceedMaxQueryStackSize wasm 27 Error if max query stack size is exceeded

CLI

TODO - working, but not the nicest interface (json + bash = bleh). Use to upload, but I suggest to focus on frontend / js tooling

Rest

TODO - main supported interface, under rapid change

Documentation

Overview

Package wasm nolint autogenerated code using github.com/rigelrozanski/multitool aliases generated for the following subdirectories: ALIASGEN: github.com/Cosmwasm/wasmd/x/wasm/types ALIASGEN: github.com/CosmWasm/wasmd/x/wasm/keeper

Index

Constants

View Source
const (
	ModuleName                      = types.ModuleName
	StoreKey                        = types.StoreKey
	TStoreKey                       = types.TStoreKey
	QuerierRoute                    = types.QuerierRoute
	RouterKey                       = types.RouterKey
	WasmModuleEventType             = types.WasmModuleEventType
	AttributeKeyContractAddr        = types.AttributeKeyContractAddr
	ProposalTypeStoreCode           = types.ProposalTypeStoreCode
	ProposalTypeInstantiateContract = types.ProposalTypeInstantiateContract
	ProposalTypeMigrateContract     = types.ProposalTypeMigrateContract
	ProposalTypeUpdateAdmin         = types.ProposalTypeUpdateAdmin
	ProposalTypeClearAdmin          = types.ProposalTypeClearAdmin
	QueryListContractByCode         = keeper.QueryListContractByCode
	QueryGetContract                = keeper.QueryGetContract
	QueryGetContractState           = keeper.QueryGetContractState
	QueryGetCode                    = keeper.QueryGetCode
	QueryListCode                   = keeper.QueryListCode
	QueryMethodContractStateSmart   = keeper.QueryMethodContractStateSmart
	QueryMethodContractStateAll     = keeper.QueryMethodContractStateAll
	QueryMethodContractStateRaw     = keeper.QueryMethodContractStateRaw
)

Variables

View Source
var (
	// functions aliases
	RegisterCodec             = types.RegisterLegacyAminoCodec
	RegisterInterfaces        = types.RegisterInterfaces
	ValidateGenesis           = types.ValidateGenesis
	ConvertToProposals        = types.ConvertToProposals
	GetCodeKey                = types.GetCodeKey
	GetContractAddressKey     = types.GetContractAddressKey
	GetContractStorePrefixKey = types.GetContractStorePrefix
	NewCodeInfo               = types.NewCodeInfo
	NewAbsoluteTxPosition     = types.NewAbsoluteTxPosition
	NewContractInfo           = types.NewContractInfo
	NewEnv                    = types.NewEnv
	NewWasmCoins              = types.NewWasmCoins
	DefaultWasmConfig         = types.DefaultWasmConfig
	DefaultParams             = types.DefaultParams
	InitGenesis               = keeper.InitGenesis
	ExportGenesis             = keeper.ExportGenesis
	NewMessageHandler         = keeper.NewDefaultMessageHandler
	DefaultEncoders           = keeper.DefaultEncoders
	EncodeBankMsg             = keeper.EncodeBankMsg
	NoCustomMsg               = keeper.NoCustomMsg
	EncodeStakingMsg          = keeper.EncodeStakingMsg
	EncodeWasmMsg             = keeper.EncodeWasmMsg
	NewKeeper                 = keeper.NewKeeper
	NewLegacyQuerier          = keeper.NewLegacyQuerier
	DefaultQueryPlugins       = keeper.DefaultQueryPlugins
	BankQuerier               = keeper.BankQuerier
	NoCustomQuerier           = keeper.NoCustomQuerier
	StakingQuerier            = keeper.StakingQuerier
	WasmQuerier               = keeper.WasmQuerier
	CreateTestInput           = keeper.CreateTestInput
	TestHandler               = keeper.TestHandler
	NewWasmProposalHandler    = keeper.NewWasmProposalHandler
	NewQuerier                = keeper.Querier
	ContractFromPortID        = keeper.ContractFromPortID
	WithWasmEngine            = keeper.WithWasmEngine
	NewCountTXDecorator       = keeper.NewCountTXDecorator

	// variable aliases
	DefaultCodespace     = types.DefaultCodespace
	ErrCreateFailed      = types.ErrCreateFailed
	ErrAccountExists     = types.ErrAccountExists
	ErrInstantiateFailed = types.ErrInstantiateFailed
	ErrExecuteFailed     = types.ErrExecuteFailed
	ErrGasLimit          = types.ErrGasLimit
	ErrInvalidGenesis    = types.ErrInvalidGenesis
	ErrNotFound          = types.ErrNotFound
	ErrQueryFailed       = types.ErrQueryFailed
	ErrInvalidMsg        = types.ErrInvalidMsg
	KeyLastCodeID        = types.KeyLastCodeID
	KeyLastInstanceID    = types.KeyLastInstanceID
	CodeKeyPrefix        = types.CodeKeyPrefix
	ContractKeyPrefix    = types.ContractKeyPrefix
	ContractStorePrefix  = types.ContractStorePrefix
	EnableAllProposals   = types.EnableAllProposals
	DisableAllProposals  = types.DisableAllProposals
)

Functions

func AddModuleInitFlags

func AddModuleInitFlags(startCmd *cobra.Command)

AddModuleInitFlags implements servertypes.ModuleInitFlags interface.

func NewHandler

func NewHandler(k types.ContractOpsKeeper) sdk.Handler

NewHandler returns a handler for "wasm" type messages.

func ReadWasmConfig

func ReadWasmConfig(opts servertypes.AppOptions) (types.WasmConfig, error)

ReadWasmConfig reads the wasm specifig configuration

func ValidateChannelParams

func ValidateChannelParams(channelID string) error

Types

type AppModule

type AppModule struct {
	AppModuleBasic
	// contains filtered or unexported fields
}

AppModule implements an application module for the wasm module.

func NewAppModule

func NewAppModule(
	cdc codec.Codec,
	keeper *Keeper,
	validatorSetSource keeper.ValidatorSetSource,
	ak types.AccountKeeper,
	bk simulation.BankKeeper,
) AppModule

NewAppModule creates a new AppModule object

func (AppModule) BeginBlock

func (am AppModule) BeginBlock(_ sdk.Context, _ abci.RequestBeginBlock)

BeginBlock returns the begin blocker for the wasm module.

func (AppModule) ConsensusVersion

func (AppModule) ConsensusVersion() uint64

ConsensusVersion is a sequence number for state-breaking change of the module. It should be incremented on each consensus-breaking change introduced by the module. To avoid wrong/empty versions, the initial version should be set to 1.

func (AppModule) EndBlock

EndBlock returns the end blocker for the wasm module. It returns no validator updates.

func (AppModule) ExportGenesis

func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage

ExportGenesis returns the exported genesis state as raw bytes for the wasm module.

func (AppModule) GenerateGenesisState

func (AppModule) GenerateGenesisState(simState *module.SimulationState)

GenerateGenesisState creates a randomized GenState of the bank module.

func (AppModule) InitGenesis

func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, data json.RawMessage) []abci.ValidatorUpdate

InitGenesis performs genesis initialization for the wasm module. It returns no validator updates.

func (AppModule) LegacyQuerierHandler

func (am AppModule) LegacyQuerierHandler(amino *codec.LegacyAmino) sdk.Querier

func (AppModule) ProposalContents

func (AppModule) ProposalContents(simState module.SimulationState) []simtypes.WeightedProposalContent

ProposalContents doesn't return any content functions for governance proposals.

func (AppModule) QuerierRoute

func (AppModule) QuerierRoute() string

QuerierRoute returns the wasm module's querier route name.

func (AppModule) RandomizedParams

func (am AppModule) RandomizedParams(r *rand.Rand) []simtypes.ParamChange

RandomizedParams creates randomized bank param changes for the simulator.

func (AppModule) RegisterInvariants

func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry)

RegisterInvariants registers the wasm module invariants.

func (AppModule) RegisterServices

func (am AppModule) RegisterServices(cfg module.Configurator)

func (AppModule) RegisterStoreDecoder

func (am AppModule) RegisterStoreDecoder(sdr sdk.StoreDecoderRegistry)

RegisterStoreDecoder registers a decoder for supply module's types

func (AppModule) Route

func (am AppModule) Route() sdk.Route

Route returns the message routing key for the wasm module.

func (AppModule) WeightedOperations

func (am AppModule) WeightedOperations(simState module.SimulationState) []simtypes.WeightedOperation

WeightedOperations returns the all the gov module operations with their respective weights.

type AppModuleBasic

type AppModuleBasic struct{}

AppModuleBasic defines the basic application module used by the wasm module.

func (AppModuleBasic) DefaultGenesis

func (AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage

DefaultGenesis returns default genesis state as raw bytes for the wasm module.

func (AppModuleBasic) GetQueryCmd

func (b AppModuleBasic) GetQueryCmd() *cobra.Command

GetQueryCmd returns no root query command for the wasm module.

func (AppModuleBasic) GetTxCmd

func (b AppModuleBasic) GetTxCmd() *cobra.Command

GetTxCmd returns the root tx command for the wasm module.

func (AppModuleBasic) Name

func (AppModuleBasic) Name() string

Name returns the wasm module's name.

func (AppModuleBasic) RegisterGRPCGatewayRoutes

func (b AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, serveMux *runtime.ServeMux)

func (AppModuleBasic) RegisterInterfaces

func (b AppModuleBasic) RegisterInterfaces(registry cdctypes.InterfaceRegistry)

RegisterInterfaces implements InterfaceModule

func (AppModuleBasic) RegisterLegacyAminoCodec

func (b AppModuleBasic) RegisterLegacyAminoCodec(amino *codec.LegacyAmino)

func (AppModuleBasic) ValidateGenesis

func (b AppModuleBasic) ValidateGenesis(marshaler codec.JSONCodec, config client.TxEncodingConfig, message json.RawMessage) error

ValidateGenesis performs genesis state validation for the wasm module.

type BankEncoder

type BankEncoder = keeper.BankEncoder

type Code

type Code = types.Code

type CodeInfo

type CodeInfo = types.CodeInfo

type CodeInfoResponse

type CodeInfoResponse = types.CodeInfoResponse

type Config

type Config = types.WasmConfig

type Contract

type Contract = types.Contract

type ContractConfirmStateAck

type ContractConfirmStateAck []byte

func (ContractConfirmStateAck) Acknowledgement

func (w ContractConfirmStateAck) Acknowledgement() []byte

func (ContractConfirmStateAck) Success

func (w ContractConfirmStateAck) Success() bool

type ContractInfo

type ContractInfo = types.ContractInfo

type CreatedAt

type CreatedAt = types.AbsoluteTxPosition

type CustomEncoder

type CustomEncoder = keeper.CustomEncoder

type CustomQuerier

type CustomQuerier = keeper.CustomQuerier

type GenesisState

type GenesisState = types.GenesisState

type IBCHandler

type IBCHandler struct {
	// contains filtered or unexported fields
}

func NewIBCHandler

func NewIBCHandler(k types.IBCContractKeeper, ck types.ChannelKeeper, vg appVersionGetter) IBCHandler

func (IBCHandler) OnAcknowledgementPacket

func (i IBCHandler) OnAcknowledgementPacket(
	ctx sdk.Context,
	packet channeltypes.Packet,
	acknowledgement []byte,
	relayer sdk.AccAddress,
) error

OnAcknowledgementPacket implements the IBCModule interface

func (IBCHandler) OnChanCloseConfirm

func (i IBCHandler) OnChanCloseConfirm(ctx sdk.Context, portID, channelID string) error

OnChanCloseConfirm implements the IBCModule interface

func (IBCHandler) OnChanCloseInit

func (i IBCHandler) OnChanCloseInit(ctx sdk.Context, portID, channelID string) error

OnChanCloseInit implements the IBCModule interface

func (IBCHandler) OnChanOpenAck

func (i IBCHandler) OnChanOpenAck(
	ctx sdk.Context,
	portID, channelID string,
	counterpartyChannelID string,
	counterpartyVersion string,
) error

OnChanOpenAck implements the IBCModule interface

func (IBCHandler) OnChanOpenConfirm

func (i IBCHandler) OnChanOpenConfirm(ctx sdk.Context, portID, channelID string) error

OnChanOpenConfirm implements the IBCModule interface

func (IBCHandler) OnChanOpenInit

func (i IBCHandler) OnChanOpenInit(
	ctx sdk.Context,
	order channeltypes.Order,
	connectionHops []string,
	portID string,
	channelID string,
	chanCap *capabilitytypes.Capability,
	counterParty channeltypes.Counterparty,
	version string,
) (string, error)

OnChanOpenInit implements the IBCModule interface

func (IBCHandler) OnChanOpenTry

func (i IBCHandler) OnChanOpenTry(
	ctx sdk.Context,
	order channeltypes.Order,
	connectionHops []string,
	portID, channelID string,
	chanCap *capabilitytypes.Capability,
	counterParty channeltypes.Counterparty,
	counterpartyVersion string,
) (string, error)

OnChanOpenTry implements the IBCModule interface

func (IBCHandler) OnRecvPacket

func (i IBCHandler) OnRecvPacket(
	ctx sdk.Context,
	packet channeltypes.Packet,
	relayer sdk.AccAddress,
) ibcexported.Acknowledgement

OnRecvPacket implements the IBCModule interface

func (IBCHandler) OnTimeoutPacket

func (i IBCHandler) OnTimeoutPacket(ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress) error

OnTimeoutPacket implements the IBCModule interface

type Keeper

type Keeper = keeper.Keeper

type MessageEncoders

type MessageEncoders = keeper.MessageEncoders

type MessageHandler

type MessageHandler = keeper.SDKMessageHandler

type Model

type Model = types.Model

type MsgClearAdmin

type MsgClearAdmin = types.MsgClearAdmin

type MsgClearAdminResponse

type MsgClearAdminResponse = types.MsgClearAdminResponse

type MsgExecuteContract

type MsgExecuteContract = types.MsgExecuteContract

type MsgExecuteContractResponse

type MsgExecuteContractResponse = types.MsgExecuteContractResponse

type MsgInstantiateContract

type MsgInstantiateContract = types.MsgInstantiateContract

type MsgInstantiateContract2

type MsgInstantiateContract2 = types.MsgInstantiateContract2

type MsgInstantiateContractResponse

type MsgInstantiateContractResponse = types.MsgInstantiateContractResponse

type MsgMigrateContract

type MsgMigrateContract = types.MsgMigrateContract

type MsgMigrateContractResponse

type MsgMigrateContractResponse = types.MsgMigrateContractResponse

type MsgServer

type MsgServer = types.MsgServer

type MsgStoreCode

type MsgStoreCode = types.MsgStoreCode

type MsgStoreCodeResponse

type MsgStoreCodeResponse = types.MsgStoreCodeResponse

type MsgUpdateAdmin

type MsgUpdateAdmin = types.MsgUpdateAdmin

type MsgUpdateAdminResponse

type MsgUpdateAdminResponse = types.MsgUpdateAdminResponse

type MsgWasmIBCCall

type MsgWasmIBCCall = types.MsgIBCSend

type Option

type Option = keeper.Option

type ProposalType

type ProposalType = types.ProposalType

type QueryHandler

type QueryHandler = keeper.QueryHandler

type QueryPlugins

type QueryPlugins = keeper.QueryPlugins

type StakingEncoder

type StakingEncoder = keeper.StakingEncoder

type WasmEncoder

type WasmEncoder = keeper.WasmEncoder //nolint:revive

Directories

Path Synopsis
cli
Package types is a reverse proxy.
Package types is a reverse proxy.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL