Documentation ¶
Index ¶
- Constants
- type AllBalancesQuery
- type AllBalancesResponse
- type AllDelegationsQuery
- type AllDelegationsResponse
- type AnalysisReport
- type BalanceQuery
- type BalanceResponse
- type BankMsg
- type BankQuery
- type BlockInfo
- type BondedDenomResponse
- type CanonicalAddress
- type ChannelQuery
- type ChannelResponse
- type CloseChannelMsg
- type Coin
- type Coins
- type ContractInfo
- type ContractResult
- type CosmosMsg
- type DelegateMsg
- type Delegation
- type DelegationQuery
- type DelegationResponse
- type Delegations
- type Env
- type Event
- type EventAttribute
- type EventAttributes
- type Events
- type ExecuteMsg
- type FullDelegation
- type HumanAddress
- type IBCAcknowledgement
- type IBCBasicResponse
- type IBCBasicResult
- type IBCChannel
- type IBCChannelOpenResult
- type IBCEndpoint
- type IBCEndpoints
- type IBCMsg
- type IBCOrder
- type IBCPacket
- type IBCQuery
- type IBCReceiveResponse
- type IBCReceiveResult
- type IBCTimeoutBlock
- type InstantiateMsg
- type InvalidRequest
- type InvalidResponse
- type ListChannelsQuery
- type ListChannelsResponse
- type MessageInfo
- type MigrateMsg
- type NoSuchContract
- type OutOfGasError
- type PortIDQuery
- type PortIDResponse
- type Querier
- type QuerierResult
- type QueryRequest
- type QueryResponse
- type RawQuery
- type RedelegateMsg
- type Reply
- type Response
- type SendMsg
- type SendPacketMsg
- type SmartQuery
- type StakingMsg
- type StakingQuery
- type StargateMsg
- type StargateQuery
- type StargateResponse
- type SubMsg
- type SubcallResponse
- type SubcallResult
- type SystemError
- type TransferMsg
- type UndelegateMsg
- type Unknown
- type UnsupportedRequest
- type Validator
- type Validators
- type ValidatorsQuery
- type ValidatorsResponse
- type WasmMsg
- type WasmQuery
- type WithdrawMsg
Constants ¶
const Ordered = "ORDER_ORDERED"
const Unordered = "ORDER_UNORDERED"
These are the only two valid values for IbcOrder
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AllBalancesQuery ¶
type AllBalancesQuery struct {
Address string `json:"address"`
}
type AllBalancesResponse ¶
type AllBalancesResponse struct {
Amount Coins `json:"amount"`
}
AllBalancesResponse is the expected response to AllBalancesQuery
type AllDelegationsQuery ¶
type AllDelegationsQuery struct {
Delegator string `json:"delegator"`
}
type AllDelegationsResponse ¶
type AllDelegationsResponse struct {
Delegations Delegations `json:"delegations"`
}
AllDelegationsResponse is the expected response to AllDelegationsQuery
type AnalysisReport ¶ added in v0.14.0
type AnalysisReport struct {
HasIBCEntryPoints bool
}
Returns info on the contract
type BalanceQuery ¶
type BalanceResponse ¶
type BalanceResponse struct {
Amount Coin `json:"amount"`
}
BalanceResponse is the expected response to BalanceQuery
type BankQuery ¶
type BankQuery struct { Balance *BalanceQuery `json:"balance,omitempty"` AllBalances *AllBalancesQuery `json:"all_balances,omitempty"` }
type BlockInfo ¶
type BlockInfo struct { // block height this transaction is executed Height uint64 `json:"height"` // time in seconds since unix epoch (since CosmWasm 0.3) Time uint64 `json:"time"` // Nanoseconds of the block time (since CosmWasm 0.11) TimeNanos uint64 `json:"time_nanos"` ChainID string `json:"chain_id"` }
type BondedDenomResponse ¶
type BondedDenomResponse struct {
Denom string `json:"denom"`
}
type CanonicalAddress ¶
type CanonicalAddress = []byte
CanonicalAddress uses standard base64 encoding, just use it as a label for developers
type ChannelQuery ¶ added in v0.14.0
type ChannelResponse ¶ added in v0.14.0
type ChannelResponse struct { // may be empty if there is no matching channel Channel *IBCChannel `json:"channel,omitempty"` }
type CloseChannelMsg ¶ added in v0.14.0
type CloseChannelMsg struct {
ChannelID string `json:"channel_id"`
}
type Coin ¶
type Coin struct { Denom string `json:"denom"` // type, eg. "ATOM" Amount string `json:"amount"` // string encoing of decimal value, eg. "12.3456" }
Coin is a string representation of the sdk.Coin type (more portable than sdk.Int)
type Coins ¶
type Coins []Coin
Coins handles properly serializing empty amounts
func (Coins) MarshalJSON ¶
MarshalJSON ensures that we get [] for empty arrays
func (*Coins) UnmarshalJSON ¶
UnmarshalJSON ensures that we get [] for empty arrays
type ContractInfo ¶
type ContractInfo struct { // binary encoding of sdk.AccAddress of the contract, to be used when sending messages Address HumanAddress `json:"address"` }
type ContractResult ¶ added in v0.14.0
type ContractResult struct { Ok *Response `json:"ok,omitempty"` Err string `json:"error,omitempty"` }
ContractResult is the raw response from the init/handle/migrate calls. This is mirrors Rust's ContractResult<Response>.
type CosmosMsg ¶
type CosmosMsg struct { Bank *BankMsg `json:"bank,omitempty"` Custom json.RawMessage `json:"custom,omitempty"` IBC *IBCMsg `json:"ibc,omitempty"` Staking *StakingMsg `json:"staking,omitempty"` Stargate *StargateMsg `json:"stargate,omitempty"` Wasm *WasmMsg `json:"wasm,omitempty"` }
CosmosMsg is an rust enum and only (exactly) one of the fields should be set Should we do a cleaner approach in Go? (type/data?)
type DelegateMsg ¶
type Delegation ¶
type DelegationQuery ¶
type DelegationResponse ¶
type DelegationResponse struct {
Delegation *FullDelegation `json:"delegation,omitempty"`
}
DelegationResponse is the expected response to DelegationsQuery
type Delegations ¶
type Delegations []Delegation
func (Delegations) MarshalJSON ¶
func (d Delegations) MarshalJSON() ([]byte, error)
MarshalJSON ensures that we get [] for empty arrays
func (*Delegations) UnmarshalJSON ¶
func (d *Delegations) UnmarshalJSON(data []byte) error
UnmarshalJSON ensures that we get [] for empty arrays
type Env ¶
type Env struct { Block BlockInfo `json:"block"` Contract ContractInfo `json:"contract"` }
Env defines the state of the blockchain environment this contract is running in. This must contain only trusted data - nothing from the Tx itself that has not been verfied (like Signer).
Env are json encoded to a byte slice before passing to the wasm contract.
type Event ¶ added in v0.14.0
type Event struct { Type string `json:"type"` Attributes EventAttributes `json:"attributes"` }
type EventAttribute ¶
EventAttribute
type EventAttributes ¶ added in v0.14.0
type EventAttributes []EventAttribute
EventAttributes must encode empty array as []
func (EventAttributes) MarshalJSON ¶ added in v0.14.0
func (a EventAttributes) MarshalJSON() ([]byte, error)
MarshalJSON ensures that we get [] for empty arrays
func (*EventAttributes) UnmarshalJSON ¶ added in v0.14.0
func (a *EventAttributes) UnmarshalJSON(data []byte) error
UnmarshalJSON ensures that we get [] for empty arrays
type Events ¶ added in v0.14.0
type Events []Event
Events must encode empty array as []
func (Events) MarshalJSON ¶ added in v0.14.0
MarshalJSON ensures that we get [] for empty arrays
func (*Events) UnmarshalJSON ¶ added in v0.14.0
UnmarshalJSON ensures that we get [] for empty arrays
type ExecuteMsg ¶
type ExecuteMsg struct { // ContractAddr is the sdk.AccAddress of the contract, which uniquely defines // the contract ID and instance ID. The sdk module should maintain a reverse lookup table. ContractAddr string `json:"contract_addr"` // Msg is assumed to be a json-encoded message, which will be passed directly // as `userMsg` when calling `Handle` on the above-defined contract Msg []byte `json:"msg"` // Send is an optional amount of coins this contract sends to the called contract Send Coins `json:"send"` }
ExecuteMsg is used to call another defined contract on this chain. The calling contract requires the callee to be defined beforehand, and the address should have been defined in initialization. And we assume the developer tested the ABIs and coded them together.
Since a contract is immutable once it is deployed, we don't need to transform this. If it was properly coded and worked once, it will continue to work throughout upgrades.
type FullDelegation ¶
type HumanAddress ¶
type HumanAddress = string
HumanAddress is a printable (typically bech32 encoded) address string. Just use it as a label for developers.
type IBCAcknowledgement ¶ added in v0.14.0
type IBCBasicResponse ¶ added in v0.14.0
type IBCBasicResponse struct { // Messages comes directly from the contract and is it's request for action Messages []CosmosMsg `json:"messages"` // attributes for a log event to return over abci interface Attributes []EventAttribute `json:"attributes"` }
IBCBasicResponse defines the return value on a successful processing
type IBCBasicResult ¶ added in v0.14.0
type IBCBasicResult struct { Ok *IBCBasicResponse `json:"ok,omitempty"` Err string `json:"error,omitempty"` }
This is the return value for the majority of the ibc handlers. That are able to dispatch messages / events on their own, but have no meaningful return value to the calling code.
Callbacks that have return values (like ibc_receive_packet) or that cannot redispatch messages (like ibc_channel_open) will use other Response types
type IBCChannel ¶ added in v0.14.0
type IBCChannel struct { Endpoint IBCEndpoint `json:"endpoint"` CounterpartyEndpoint IBCEndpoint `json:"counterparty_endpoint"` Order IBCOrder `json:"order"` Version string `json:"version"` // optional CounterpartyVersion string `json:"counterparty_version,omitempty"` ConnectionID string `json:"connection_id"` }
type IBCChannelOpenResult ¶ added in v0.14.0
type IBCChannelOpenResult struct { Ok *struct{} `json:"ok,omitempty"` Err string `json:"error,omitempty"` }
IBCChannelOpenResult is the raw response from the ibc_channel_open call. This is mirrors Rust's ContractResult<()>. We just check if Err == "" to see if this is success (no other data on success)
type IBCEndpoint ¶ added in v0.14.0
type IBCEndpoints ¶ added in v0.14.0
type IBCEndpoints []IBCEndpoint
IBCEndpoints must JSON encode empty array as [] (not null) for consistency with Rust parser
func (IBCEndpoints) MarshalJSON ¶ added in v0.14.0
func (e IBCEndpoints) MarshalJSON() ([]byte, error)
MarshalJSON ensures that we get [] for empty arrays
func (*IBCEndpoints) UnmarshalJSON ¶ added in v0.14.0
func (e *IBCEndpoints) UnmarshalJSON(data []byte) error
UnmarshalJSON ensures that we get [] for empty arrays
type IBCMsg ¶ added in v0.14.0
type IBCMsg struct { Transfer *TransferMsg `json:"transfer,omitempty"` SendPacket *SendPacketMsg `json:"send_packet,omitempty"` CloseChannel *CloseChannelMsg `json:"close_channel,omitempty"` }
type IBCOrder ¶ added in v0.14.0
type IBCOrder = string
TODO: test what the sdk Order.String() represents and how to parse back Proto files: https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/ibc/core/channel/v1/channel.proto#L69-L80 Auto-gen code: https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/x/ibc/core/04-channel/types/channel.pb.go#L70-L101
type IBCPacket ¶ added in v0.14.0
type IBCPacket struct { Data []byte `json:"data"` Src IBCEndpoint `json:"src"` Dest IBCEndpoint `json:"dest"` Sequence uint64 `json:"sequence"` // block after which the packet times out. // at least one of timeout_block, timeout_timestamp is required TimeoutBlock *IBCTimeoutBlock `json:"timeout_block,omitempty"` // Nanoseconds since UNIX epoch // See https://golang.org/pkg/time/#Time.UnixNano // at least one of timeout_block, timeout_timestamp is required TimeoutTimestamp *uint64 `json:"timeout_timestamp,omitempty"` }
type IBCQuery ¶ added in v0.14.0
type IBCQuery struct { PortID *PortIDQuery `json:"port_id,omitempty"` ListChannels *ListChannelsQuery `json:"list_channels,omitempty"` Channel *ChannelQuery `json:"channel,omitempty"` }
type IBCReceiveResponse ¶ added in v0.14.0
type IBCReceiveResponse struct { // Messages comes directly from the contract and is it's request for action Messages []CosmosMsg `json:"messages"` // binary encoded data to be returned to calling chain as the acknowledgement Acknowledgement []byte `json:"acknowledgement"` // attributes for a log event to return over abci interface Attributes []EventAttribute `json:"attributes"` }
IBCReceiveResponse defines the return value on packet response processing. This "success" case should be returned even in application-level errors, Where the Acknowledgement bytes contain an encoded error message to be returned to the calling chain. (Returning IBCReceiveResult::Err will abort processing of this packet and not inform the calling chain).
type IBCReceiveResult ¶ added in v0.14.0
type IBCReceiveResult struct { Ok *IBCReceiveResponse `json:"ok,omitempty"` Err string `json:"error,omitempty"` }
This is the return value for the majority of the ibc handlers. That are able to dispatch messages / events on their own, but have no meaningful return value to the calling code.
Callbacks that have return values (like receive_packet) or that cannot redispatch messages (like the handshake callbacks) will use other Response types
type IBCTimeoutBlock ¶ added in v0.14.0
type IBCTimeoutBlock struct { // the version that the client is currently on // (eg. after reseting the chain this could increment 1 as height drops to 0) Revision uint64 `json:"revision"` // block height after which the packet times out. // the height within the given revision Height uint64 `json:"height"` }
IBCTimeoutBlock Height is a monotonically increasing data type that can be compared against another Height for the purposes of updating and freezing clients. Ordering is (revision_number, timeout_height)
func (IBCTimeoutBlock) IsZero ¶ added in v0.14.0
func (t IBCTimeoutBlock) IsZero() bool
type InstantiateMsg ¶
type InstantiateMsg struct { // CodeID is the reference to the wasm byte code as used by the Cosmos-SDK CodeID uint64 `json:"code_id"` // Msg is assumed to be a json-encoded message, which will be passed directly // as `userMsg` when calling `Init` on a new contract with the above-defined CodeID Msg []byte `json:"msg"` // Send is an optional amount of coins this contract sends to the called contract Send Coins `json:"send"` // Label is optional metadata to be stored with a contract instance. Label string `json:"label"` }
InstantiateMsg will create a new contract instance from a previously uploaded CodeID. This allows one contract to spawn "sub-contracts".
type InvalidRequest ¶
func (InvalidRequest) Error ¶
func (e InvalidRequest) Error() string
type InvalidResponse ¶
func (InvalidResponse) Error ¶
func (e InvalidResponse) Error() string
type ListChannelsQuery ¶ added in v0.14.0
type ListChannelsQuery struct { // optional argument PortID string `json:"port_id,omitempty"` }
type ListChannelsResponse ¶ added in v0.14.0
type ListChannelsResponse struct {
Channels IBCEndpoints `json:"channels"`
}
type MessageInfo ¶
type MessageInfo struct { // binary encoding of sdk.AccAddress executing the contract Sender HumanAddress `json:"sender"` // amount of funds send to the contract along with this message Funds Coins `json:"funds"` }
type MigrateMsg ¶ added in v0.14.0
type MigrateMsg struct { // ContractAddr is the sdk.AccAddress of the target contract, to migrate. ContractAddr string `json:"contract_addr"` // NewCodeID is the reference to the wasm byte code for the new logic to migrate to NewCodeID uint64 `json:"new_code_id"` // Msg is assumed to be a json-encoded message, which will be passed directly // as `userMsg` when calling `Migrate` on the above-defined contract Msg []byte `json:"msg"` }
MigrateMsg will migrate an existing contract from it's current wasm code (logic) to another previously uploaded wasm code. It requires the calling contract to be listed as "admin" of the contract to be migrated.
type NoSuchContract ¶
type NoSuchContract struct {
Addr string `json:"addr,omitempty"`
}
func (NoSuchContract) Error ¶
func (e NoSuchContract) Error() string
type OutOfGasError ¶
type OutOfGasError struct{}
func (OutOfGasError) Error ¶
func (o OutOfGasError) Error() string
type PortIDQuery ¶ added in v0.14.0
type PortIDQuery struct{}
type PortIDResponse ¶ added in v0.14.0
type PortIDResponse struct {
PortID string `json:"port_id"`
}
type Querier ¶
type Querier interface { Query(request QueryRequest, gasLimit uint64) ([]byte, error) GasConsumed() uint64 }
type QuerierResult ¶
type QuerierResult struct { Ok *QueryResponse `json:"ok,omitempty"` Err *SystemError `json:"error,omitempty"` }
This is a 2-level result
func RustQuery ¶
func RustQuery(querier Querier, binRequest []byte, gasLimit uint64) QuerierResult
this is a thin wrapper around the desired Go API to give us types closer to Rust FFI
func ToQuerierResult ¶
func ToQuerierResult(response []byte, err error) QuerierResult
type QueryRequest ¶
type QueryRequest struct { Bank *BankQuery `json:"bank,omitempty"` Custom json.RawMessage `json:"custom,omitempty"` IBC *IBCQuery `json:"ibc,omitempty"` Staking *StakingQuery `json:"staking,omitempty"` Stargate *StargateQuery `json:"stargate,omitempty"` Wasm *WasmQuery `json:"wasm,omitempty"` }
QueryRequest is an rust enum and only (exactly) one of the fields should be set Should we do a cleaner approach in Go? (type/data?)
type QueryResponse ¶
type QueryResponse queryResponseImpl
QueryResponse is the Go counterpart of `ContractResult<Binary>`. The JSON annotations are used for deserializing directly. There is a custom serializer below.
func (QueryResponse) MarshalJSON ¶
func (q QueryResponse) MarshalJSON() ([]byte, error)
A custom serializer that allows us to map QueryResponse instances to the Rust enum `ContractResult<Binary>`
type RedelegateMsg ¶
type Reply ¶ added in v0.14.0
type Reply struct { ID uint64 `json:"id"` Result SubcallResult `json:"result"` }
type Response ¶ added in v0.14.0
type Response struct { // Messages comes directly from the contract and is it's request for action Messages []CosmosMsg `json:"messages"` // Submessages are like Messages, but they guarantee a reply to the calling contract // after their execution, and return both success and error rather than auto-failing on error Submessages []SubMsg `json:"submessages"` // base64-encoded bytes to return as ABCI.Data field Data []byte `json:"data"` // attributes for a log event to return over abci interface Attributes []EventAttribute `json:"attributes"` }
Response defines the return value on a successful init/handle/migrate
type SendMsg ¶
SendMsg contains instructions for a Cosmos-SDK/SendMsg It has a fixed interface here and should be converted into the proper SDK format before dispatching
type SendPacketMsg ¶ added in v0.14.0
type SendPacketMsg struct { ChannelID string `json:"channel_id"` Data []byte `json:"data"` // block after which the packet times out. // at least one of timeout_block, timeout_timestamp is required TimeoutBlock *IBCTimeoutBlock `json:"timeout_block,omitempty"` // Nanoseconds since UNIX epoch // See https://golang.org/pkg/time/#Time.UnixNano // at least one of timeout_block, timeout_timestamp is required TimeoutTimestamp *uint64 `json:"timeout_timestamp,omitempty"` }
type SmartQuery ¶
SmartQuery respone is raw bytes ([]byte)
type StakingMsg ¶
type StakingMsg struct { Delegate *DelegateMsg `json:"delegate,omitempty"` Undelegate *UndelegateMsg `json:"undelegate,omitempty"` Redelegate *RedelegateMsg `json:"redelegate,omitempty"` Withdraw *WithdrawMsg `json:"withdraw,omitempty"` }
type StakingQuery ¶
type StakingQuery struct { Validators *ValidatorsQuery `json:"validators,omitempty"` AllDelegations *AllDelegationsQuery `json:"all_delegations,omitempty"` Delegation *DelegationQuery `json:"delegation,omitempty"` BondedDenom *struct{} `json:"bonded_denom,omitempty"` }
type StargateMsg ¶ added in v0.14.0
StargateMsg is encoded the same way as a protobof [Any](https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/any.proto). This is the same structure as messages in `TxBody` from [ADR-020](https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-020-protobuf-transaction-encoding.md)
type StargateQuery ¶ added in v0.14.0
type StargateQuery struct { // this is the fully qualified service path used for routing, // eg. custom/cosmos_sdk.x.bank.v1.Query/QueryBalance Path string `json:"path"` // this is the expected protobuf message type (not any), binary encoded Data []byte `json:"data"` }
A Stargate query encoded the same way as abci_query, with path and protobuf encoded Data. The format is defined in [ADR-21](https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-021-protobuf-query-encoding.md) The response is also protobuf encoded. The caller is responsible for compiling the proper protobuf definitions
type StargateResponse ¶ added in v0.14.0
type StargateResponse struct {
Response []byte `json:"response"`
}
This is the protobuf response, binary encoded. The caller is responsible for knowing how to parse.
type SubMsg ¶ added in v0.14.0
type SubMsg struct { ID uint64 `json:"id"` Msg CosmosMsg `json:"msg"` GasLimit *uint64 `json:"gas_limit,omitempty"` }
SubMsg wraps a CosmosMsg with some metadata for handling replies (ID) and optionally limiting the gas usage (GasLimit)
type SubcallResponse ¶ added in v0.14.0
type SubcallResult ¶ added in v0.14.0
type SubcallResult struct { Ok *SubcallResponse `json:"ok,omitempty"` Err string `json:"error,omitempty"` }
SubcallResult is the raw response we return from the sdk -> reply after executing a SubMsg. This is mirrors Rust's ContractResult<SubcallResponse>.
type SystemError ¶
type SystemError struct { InvalidRequest *InvalidRequest `json:"invalid_request,omitempty"` InvalidResponse *InvalidResponse `json:"invalid_response,omitempty"` NoSuchContract *NoSuchContract `json:"no_such_contract,omitempty"` Unknown *Unknown `json:"unknown,omitempty"` UnsupportedRequest *UnsupportedRequest `json:"unsupported_request,omitempty"` }
SystemError captures all errors returned from the Rust code as SystemError. Exactly one of the fields should be set.
func ToSystemError ¶
func ToSystemError(err error) *SystemError
ToSystemError will try to convert the given error to an SystemError. This is important to returning any Go error back to Rust.
If it is already StdError, return self. If it is an error, which could be a sub-field of StdError, embed it. If it is anything else, **return nil**
This may return nil on an unknown error, whereas ToStdError will always create a valid error type.
func (SystemError) Error ¶
func (a SystemError) Error() string
type TransferMsg ¶ added in v0.14.0
type TransferMsg struct { ChannelID string `json:"channel_id"` ToAddress string `json:"to_address"` Amount Coin `json:"amount"` // block after which the packet times out. // at least one of timeout_block, timeout_timestamp is required TimeoutBlock *IBCTimeoutBlock `json:"timeout_block,omitempty"` // Nanoseconds since UNIX epoch // See https://golang.org/pkg/time/#Time.UnixNano // at least one of timeout_block, timeout_timestamp is required TimeoutTimestamp *uint64 `json:"timeout_timestamp,omitempty"` }
type UndelegateMsg ¶
type UnsupportedRequest ¶
type UnsupportedRequest struct {
Kind string `json:"kind,omitempty"`
}
func (UnsupportedRequest) Error ¶
func (e UnsupportedRequest) Error() string
type Validators ¶
type Validators []Validator
Validators must JSON encode empty array as []
func (Validators) MarshalJSON ¶
func (v Validators) MarshalJSON() ([]byte, error)
MarshalJSON ensures that we get [] for empty arrays
func (*Validators) UnmarshalJSON ¶
func (v *Validators) UnmarshalJSON(data []byte) error
UnmarshalJSON ensures that we get [] for empty arrays
type ValidatorsQuery ¶
type ValidatorsQuery struct{}
type ValidatorsResponse ¶
type ValidatorsResponse struct {
Validators Validators `json:"validators"`
}
ValidatorsResponse is the expected response to ValidatorsQuery
type WasmMsg ¶
type WasmMsg struct { Execute *ExecuteMsg `json:"execute,omitempty"` Instantiate *InstantiateMsg `json:"instantiate,omitempty"` Migrate *MigrateMsg `json:"migrate,omitempty"` }
type WasmQuery ¶
type WasmQuery struct { Smart *SmartQuery `json:"smart,omitempty"` Raw *RawQuery `json:"raw,omitempty"` }