Documentation
¶
Index ¶
- Constants
- Variables
- func GetCodeKey(codeID uint64) []byte
- func GetContractAddressKey(addr sdk.AccAddress) []byte
- func GetContractStorePrefixKey(addr sdk.AccAddress) []byte
- func NewEnv(ctx sdk.Context, creator sdk.AccAddress, deposit sdk.Coins, ...) wasmTypes.Env
- func NewWasmCoins(cosmosCoins sdk.Coins) (wasmCoins []wasmTypes.Coin)
- func OnlyGenesisFields(info *ContractInfo)
- func ParamKeyTable() params.KeyTable
- func ParseEvents(logs []wasmTypes.LogAttribute, contractAddr sdk.AccAddress) sdk.Events
- func RegisterCodec(cdc *codec.Codec)
- func ValidateGenesis(data GenesisState) error
- func WithSHA256CodeHash(wasmCode []byte) func(info *CodeInfo)
- type AbsoluteTxPosition
- type AccessConfig
- type AccessType
- type ClearAdminProposal
- type Code
- type CodeInfo
- type Contract
- type ContractCodeHistoryEntry
- type ContractCodeHistoryOperationType
- type ContractInfo
- func (c *ContractInfo) AddMigration(ctx sdk.Context, codeID uint64, msg []byte) ContractCodeHistoryEntry
- func (c ContractInfo) InitialHistory(initMsg []byte) ContractCodeHistoryEntry
- func (c *ContractInfo) ResetFromGenesis(ctx sdk.Context) ContractCodeHistoryEntry
- func (c *ContractInfo) ValidateBasic() error
- type GenesisState
- type InstantiateContractProposal
- type MigrateContractProposal
- type Model
- type MsgClearAdmin
- type MsgExecuteContract
- type MsgInstantiateContract
- type MsgMigrateContract
- type MsgStoreCode
- type MsgUpdateAdmin
- type Params
- type ProposalType
- type Sequence
- type StoreCodeProposal
- type UpdateAdminProposal
- type WasmConfig
- type WasmProposal
Constants ¶
const ( // ModuleName is the name of the contract module ModuleName = "wasm" // StoreKey is the string store representation StoreKey = ModuleName // TStoreKey is the string transient store representation TStoreKey = "transient_" + ModuleName // QuerierRoute is the querier route for the staking module QuerierRoute = ModuleName // RouterKey is the msg router key for the staking module RouterKey = ModuleName )
const ( AttributeKeyContract = "contract_address" AttributeKeyCodeID = "code_id" AttributeKeySigner = "signer" )
const ( MaxWasmSize = 500 * 1024 // MaxLabelSize is the longest label that can be used when Instantiating a contract MaxLabelSize = 128 // BuildTagRegexp is a docker image regexp. // We only support max 128 characters, with at least one organization name (subset of all legal names). // // Details from https://docs.docker.com/engine/reference/commandline/tag/#extended-description : // // An image name is made up of slash-separated name components (optionally prefixed by a registry hostname). // Name components may contain lowercase characters, digits and separators. // A separator is defined as a period, one or two underscores, or one or more dashes. A name component may not start or end with a separator. // // A tag name must be valid ASCII and may contain lowercase and uppercase letters, digits, underscores, periods and dashes. // A tag name may not start with a period or a dash and may contain a maximum of 128 characters. BuildTagRegexp = "^[a-z0-9][a-z0-9._-]*[a-z0-9](/[a-z0-9][a-z0-9._-]*[a-z0-9])+:[a-zA-Z0-9_][a-zA-Z0-9_.-]*$" MaxBuildTagSize = 128 )
const AttributeKeyContractAddr = "contract_address"
const CustomEventType = "wasm"
const ( // DefaultParamspace for params keeper DefaultParamspace = ModuleName )
Variables ¶
var ( DefaultCodespace = ModuleName // ErrCreateFailed error for wasm code that has already been uploaded or failed ErrCreateFailed = sdkErrors.Register(DefaultCodespace, 1, "create wasm contract failed") // ErrAccountExists error for a contract account that already exists ErrAccountExists = sdkErrors.Register(DefaultCodespace, 2, "contract account already exists") // ErrInstantiateFailed error for rust instantiate contract failure ErrInstantiateFailed = sdkErrors.Register(DefaultCodespace, 3, "instantiate wasm contract failed") // ErrExecuteFailed error for rust execution contract failure ErrExecuteFailed = sdkErrors.Register(DefaultCodespace, 4, "execute wasm contract failed") // ErrGasLimit error for out of gas ErrGasLimit = sdkErrors.Register(DefaultCodespace, 5, "insufficient gas") // ErrInvalidGenesis error for invalid genesis file syntax ErrInvalidGenesis = sdkErrors.Register(DefaultCodespace, 6, "invalid genesis") // ErrNotFound error for an entry not found in the store ErrNotFound = sdkErrors.Register(DefaultCodespace, 7, "not found") // ErrQueryFailed error for rust smart query contract failure ErrQueryFailed = sdkErrors.Register(DefaultCodespace, 8, "query wasm contract failed") // ErrInvalidMsg error when we cannot process the error returned from the contract ErrInvalidMsg = sdkErrors.Register(DefaultCodespace, 9, "invalid CosmosMsg from the contract") // ErrMigrationFailed error for rust execution contract failure ErrMigrationFailed = sdkErrors.Register(DefaultCodespace, 10, "migrate wasm contract failed") // ErrEmpty error for empty content ErrEmpty = sdkErrors.Register(DefaultCodespace, 11, "empty") // ErrLimit error for content that exceeds a limit ErrLimit = sdkErrors.Register(DefaultCodespace, 12, "exceeds limit") // ErrInvalid error for content that is invalid in this context ErrInvalid = sdkErrors.Register(DefaultCodespace, 13, "invalid") // ErrDuplicate error for content that exsists ErrDuplicate = sdkErrors.Register(DefaultCodespace, 14, "duplicate") )
Codes for wasm contract errors
var ( CodeKeyPrefix = []byte{0x01} ContractKeyPrefix = []byte{0x02} ContractStorePrefix = []byte{0x03} SequenceKeyPrefix = []byte{0x04} ContractHistoryStorePrefix = []byte{0x05} KeyLastCodeID = append(SequenceKeyPrefix, []byte("lastCodeId")...) KeyLastInstanceID = append(SequenceKeyPrefix, []byte("lastContractId")...) )
nolint
var ( DefaultUploadAccess = AllowEverybody AllowEverybody = AccessConfig{Type: Everybody} AllowNobody = AccessConfig{Type: Nobody} )
var AllAccessTypes = map[AccessType]struct{}{ Nobody: {}, OnlyAddress: {}, Everybody: {}, }
var AllCodeHistoryTypes = []ContractCodeHistoryOperationType{InitContractCodeHistoryType, MigrateContractCodeHistoryType}
var DisableAllProposals []ProposalType
DisableAllProposals contains no wasm gov types.
var EnableAllProposals = []ProposalType{ ProposalTypeStoreCode, ProposalTypeInstantiateContract, ProposalTypeMigrateContract, ProposalTypeUpdateAdmin, ProposalTypeClearAdmin, }
EnableAllProposals contains all wasm gov types as keys.
var ModuleCdc *codec.Codec
ModuleCdc generic sealed codec to be used throughout module
var ParamStoreKeyInstantiateAccess = []byte("instantiateAccess")
var ParamStoreKeyUploadAccess = []byte("uploadAccess")
Functions ¶
func GetCodeKey ¶
GetCodeKey constructs the key for retreiving the ID for the WASM code
func GetContractAddressKey ¶
func GetContractAddressKey(addr sdk.AccAddress) []byte
GetContractAddressKey returns the key for the WASM contract instance
func GetContractStorePrefixKey ¶
func GetContractStorePrefixKey(addr sdk.AccAddress) []byte
GetContractStorePrefixKey returns the store prefix for the WASM contract instance
func NewEnv ¶
func NewEnv(ctx sdk.Context, creator sdk.AccAddress, deposit sdk.Coins, contractAddr sdk.AccAddress) wasmTypes.Env
NewEnv initializes the environment for a contract instance
func NewWasmCoins ¶
NewWasmCoins translates between Cosmos SDK coins and Wasm coins
func OnlyGenesisFields ¶
func OnlyGenesisFields(info *ContractInfo)
func ParamKeyTable ¶
ParamKeyTable returns the parameter key table.
func ParseEvents ¶
func ParseEvents(logs []wasmTypes.LogAttribute, contractAddr sdk.AccAddress) sdk.Events
ParseEvents converts wasm LogAttributes into an sdk.Events (with 0 or 1 elements)
func RegisterCodec ¶
RegisterCodec registers the account types and interface
func ValidateGenesis ¶
func ValidateGenesis(data GenesisState) error
ValidateGenesis performs basic validation of supply genesis data returning an error for any failed validation criteria.
func WithSHA256CodeHash ¶
Types ¶
type AbsoluteTxPosition ¶
type AbsoluteTxPosition struct {
// BlockHeight is the block the contract was created at
BlockHeight int64
// TxIndex is a monotonic counter within the block (actual transaction index, or gas consumed)
TxIndex uint64
}
AbsoluteTxPosition can be used to sort contracts
func NewAbsoluteTxPosition ¶
func NewAbsoluteTxPosition(ctx sdk.Context) *AbsoluteTxPosition
NewAbsoluteTxPosition gets a timestamp from the context
func (*AbsoluteTxPosition) LessThan ¶
func (a *AbsoluteTxPosition) LessThan(b *AbsoluteTxPosition) bool
LessThan can be used to sort
type AccessConfig ¶
type AccessConfig struct {
Type AccessType `json:"permission" yaml:"permission"`
Address sdk.AccAddress `json:"address,omitempty" yaml:"address"`
}
func (AccessConfig) Allowed ¶
func (v AccessConfig) Allowed(actor sdk.AccAddress) bool
func (AccessConfig) Equals ¶
func (a AccessConfig) Equals(o AccessConfig) bool
func (AccessConfig) ValidateBasic ¶
func (v AccessConfig) ValidateBasic() error
type AccessType ¶
type AccessType string
const ( Undefined AccessType = "Undefined" Nobody AccessType = "Nobody" OnlyAddress AccessType = "OnlyAddress" Everybody AccessType = "Everybody" )
func (AccessType) MarshalText ¶
func (a AccessType) MarshalText() ([]byte, error)
func (*AccessType) UnmarshalText ¶
func (a *AccessType) UnmarshalText(text []byte) error
func (AccessType) With ¶
func (a AccessType) With(addr sdk.AccAddress) AccessConfig
type ClearAdminProposal ¶
type ClearAdminProposal struct {
WasmProposal `yaml:",inline"`
Contract sdk.AccAddress `json:"contract" yaml:"contract"`
}
ClearAdminProposal gov proposal content type to clear the admin of a contract.
func ClearAdminProposalFixture ¶
func ClearAdminProposalFixture(mutators ...func(p *ClearAdminProposal)) ClearAdminProposal
func (ClearAdminProposal) ProposalType ¶
func (p ClearAdminProposal) ProposalType() string
ProposalType returns the type
func (ClearAdminProposal) String ¶
func (p ClearAdminProposal) String() string
String implements the Stringer interface.
func (ClearAdminProposal) ValidateBasic ¶
func (p ClearAdminProposal) ValidateBasic() error
ValidateBasic validates the proposal
type Code ¶
type Code struct {
CodeID uint64 `json:"code_id"`
CodeInfo CodeInfo `json:"code_info"`
CodesBytes []byte `json:"code_bytes"`
}
Code struct encompasses CodeInfo and CodeBytes
func CodeFixture ¶
func (Code) ValidateBasic ¶
type CodeInfo ¶
type CodeInfo struct {
CodeHash []byte `json:"code_hash"`
Creator sdk.AccAddress `json:"creator"`
Source string `json:"source"`
Builder string `json:"builder"`
InstantiateConfig AccessConfig `json:"instantiate_config"`
}
CodeInfo is data for the uploaded contract WASM code
func CodeInfoFixture ¶
func NewCodeInfo ¶
func NewCodeInfo(codeHash []byte, creator sdk.AccAddress, source string, builder string, instantiatePermission AccessConfig) CodeInfo
NewCodeInfo fills a new Contract struct
func (CodeInfo) ValidateBasic ¶
type Contract ¶
type Contract struct {
ContractAddress sdk.AccAddress `json:"contract_address"`
ContractInfo ContractInfo `json:"contract_info"`
ContractState []Model `json:"contract_state"`
}
Contract struct encompasses ContractAddress, ContractInfo, and ContractState
func ContractFixture ¶
func (Contract) ValidateBasic ¶
type ContractCodeHistoryEntry ¶
type ContractCodeHistoryEntry struct {
Operation ContractCodeHistoryOperationType `json:"operation"`
CodeID uint64 `json:"code_id"`
Updated *AbsoluteTxPosition `json:"updated,omitempty"`
Msg json.RawMessage `json:"msg,omitempty"`
}
ContractCodeHistoryEntry stores code updates to a contract.
type ContractCodeHistoryOperationType ¶
type ContractCodeHistoryOperationType string
const ( InitContractCodeHistoryType ContractCodeHistoryOperationType = "Init" MigrateContractCodeHistoryType ContractCodeHistoryOperationType = "Migrate" GenesisContractCodeHistoryType ContractCodeHistoryOperationType = "Genesis" )
type ContractInfo ¶
type ContractInfo struct {
CodeID uint64 `json:"code_id"`
Creator sdk.AccAddress `json:"creator"`
Admin sdk.AccAddress `json:"admin,omitempty"`
Label string `json:"label"`
// never show this in query results, just use for sorting
// (Note: when using json tag "-" amino refused to serialize it...)
Created *AbsoluteTxPosition `json:"created,omitempty"`
}
ContractInfo stores a WASM contract instance
func ContractInfoFixture ¶
func ContractInfoFixture(mutators ...func(*ContractInfo)) ContractInfo
func NewContractInfo ¶
func NewContractInfo(codeID uint64, creator, admin sdk.AccAddress, label string, createdAt *AbsoluteTxPosition) ContractInfo
NewContractInfo creates a new instance of a given WASM contract info
func (*ContractInfo) AddMigration ¶
func (c *ContractInfo) AddMigration(ctx sdk.Context, codeID uint64, msg []byte) ContractCodeHistoryEntry
func (ContractInfo) InitialHistory ¶
func (c ContractInfo) InitialHistory(initMsg []byte) ContractCodeHistoryEntry
func (*ContractInfo) ResetFromGenesis ¶
func (c *ContractInfo) ResetFromGenesis(ctx sdk.Context) ContractCodeHistoryEntry
ResetFromGenesis resets contracts timestamp and history.
func (*ContractInfo) ValidateBasic ¶
func (c *ContractInfo) ValidateBasic() error
type GenesisState ¶
type GenesisState struct {
Params Params `json:"params"`
Codes []Code `json:"codes,omitempty"`
Contracts []Contract `json:"contracts,omitempty"`
Sequences []Sequence `json:"sequences,omitempty"`
}
GenesisState is the struct representation of the export genesis
func GenesisFixture ¶
func GenesisFixture(mutators ...func(*GenesisState)) GenesisState
func (GenesisState) ValidateBasic ¶
func (s GenesisState) ValidateBasic() error
type InstantiateContractProposal ¶
type InstantiateContractProposal struct {
WasmProposal
// RunAs is the address that pays the init funds
RunAs sdk.AccAddress `json:"run_as"`
// Admin is an optional address that can execute migrations
Admin sdk.AccAddress `json:"admin,omitempty"`
CodeID uint64 `json:"code_id"`
Label string `json:"label"`
InitMsg json.RawMessage `json:"init_msg"`
InitFunds sdk.Coins `json:"init_funds"`
}
InstantiateContractProposal gov proposal content type to instantiate a contract.
func InstantiateContractProposalFixture ¶
func InstantiateContractProposalFixture(mutators ...func(p *InstantiateContractProposal)) InstantiateContractProposal
func (InstantiateContractProposal) MarshalYAML ¶
func (p InstantiateContractProposal) MarshalYAML() (interface{}, error)
func (InstantiateContractProposal) ProposalType ¶
func (p InstantiateContractProposal) ProposalType() string
ProposalType returns the type
func (InstantiateContractProposal) String ¶
func (p InstantiateContractProposal) String() string
String implements the Stringer interface.
func (InstantiateContractProposal) ValidateBasic ¶
func (p InstantiateContractProposal) ValidateBasic() error
ValidateBasic validates the proposal
type MigrateContractProposal ¶
type MigrateContractProposal struct {
WasmProposal `yaml:",inline"`
Contract sdk.AccAddress `json:"contract"`
CodeID uint64 `json:"code_id"`
MigrateMsg json.RawMessage `json:"msg"`
// RunAs is the address that is passed to the contract's environment as sender
RunAs sdk.AccAddress `json:"run_as"`
}
MigrateContractProposal gov proposal content type to migrate a contract.
func MigrateContractProposalFixture ¶
func MigrateContractProposalFixture(mutators ...func(p *MigrateContractProposal)) MigrateContractProposal
func (MigrateContractProposal) MarshalYAML ¶
func (p MigrateContractProposal) MarshalYAML() (interface{}, error)
func (MigrateContractProposal) ProposalType ¶
func (p MigrateContractProposal) ProposalType() string
ProposalType returns the type
func (MigrateContractProposal) String ¶
func (p MigrateContractProposal) String() string
String implements the Stringer interface.
func (MigrateContractProposal) ValidateBasic ¶
func (p MigrateContractProposal) ValidateBasic() error
ValidateBasic validates the proposal
type Model ¶
type Model struct {
// hex-encode key to read it better (this is often ascii)
Key tmBytes.HexBytes `json:"key"`
// base64-encode raw value
Value []byte `json:"val"`
}
Model is a struct that holds a KV pair
func (Model) ValidateBasic ¶
type MsgClearAdmin ¶
type MsgClearAdmin struct {
Sender sdk.AccAddress `json:"sender" yaml:"sender"`
Contract sdk.AccAddress `json:"contract" yaml:"contract"`
}
func (MsgClearAdmin) GetSignBytes ¶
func (msg MsgClearAdmin) GetSignBytes() []byte
func (MsgClearAdmin) GetSigners ¶
func (msg MsgClearAdmin) GetSigners() []sdk.AccAddress
func (MsgClearAdmin) Route ¶
func (msg MsgClearAdmin) Route() string
func (MsgClearAdmin) Type ¶
func (msg MsgClearAdmin) Type() string
func (MsgClearAdmin) ValidateBasic ¶
func (msg MsgClearAdmin) ValidateBasic() error
type MsgExecuteContract ¶
type MsgExecuteContract struct {
Sender sdk.AccAddress `json:"sender" yaml:"sender"`
Contract sdk.AccAddress `json:"contract" yaml:"contract"`
Msg json.RawMessage `json:"msg" yaml:"msg"`
SentFunds sdk.Coins `json:"sent_funds" yaml:"sent_funds"`
}
func (MsgExecuteContract) GetSignBytes ¶
func (msg MsgExecuteContract) GetSignBytes() []byte
func (MsgExecuteContract) GetSigners ¶
func (msg MsgExecuteContract) GetSigners() []sdk.AccAddress
func (MsgExecuteContract) Route ¶
func (msg MsgExecuteContract) Route() string
func (MsgExecuteContract) Type ¶
func (msg MsgExecuteContract) Type() string
func (MsgExecuteContract) ValidateBasic ¶
func (msg MsgExecuteContract) ValidateBasic() error
type MsgInstantiateContract ¶
type MsgInstantiateContract struct {
Sender sdk.AccAddress `json:"sender" yaml:"sender"`
// Admin is an optional address that can execute migrations
Admin sdk.AccAddress `json:"admin,omitempty" yaml:"admin"`
CodeID uint64 `json:"code_id" yaml:"code_id"`
Label string `json:"label" yaml:"label"`
InitMsg json.RawMessage `json:"init_msg" yaml:"init_msg"`
InitFunds sdk.Coins `json:"init_funds" yaml:"init_funds"`
}
func (MsgInstantiateContract) GetSignBytes ¶
func (msg MsgInstantiateContract) GetSignBytes() []byte
func (MsgInstantiateContract) GetSigners ¶
func (msg MsgInstantiateContract) GetSigners() []sdk.AccAddress
func (MsgInstantiateContract) Route ¶
func (msg MsgInstantiateContract) Route() string
func (MsgInstantiateContract) Type ¶
func (msg MsgInstantiateContract) Type() string
func (MsgInstantiateContract) ValidateBasic ¶
func (msg MsgInstantiateContract) ValidateBasic() error
type MsgMigrateContract ¶
type MsgMigrateContract struct {
Sender sdk.AccAddress `json:"sender" yaml:"sender"`
Contract sdk.AccAddress `json:"contract" yaml:"contract"`
CodeID uint64 `json:"code_id" yaml:"code_id"`
MigrateMsg json.RawMessage `json:"msg" yaml:"msg"`
}
func (MsgMigrateContract) GetSignBytes ¶
func (msg MsgMigrateContract) GetSignBytes() []byte
func (MsgMigrateContract) GetSigners ¶
func (msg MsgMigrateContract) GetSigners() []sdk.AccAddress
func (MsgMigrateContract) Route ¶
func (msg MsgMigrateContract) Route() string
func (MsgMigrateContract) Type ¶
func (msg MsgMigrateContract) Type() string
func (MsgMigrateContract) ValidateBasic ¶
func (msg MsgMigrateContract) ValidateBasic() error
type MsgStoreCode ¶
type MsgStoreCode struct {
Sender sdk.AccAddress `json:"sender" yaml:"sender"`
// WASMByteCode can be raw or gzip compressed
WASMByteCode []byte `json:"wasm_byte_code" yaml:"wasm_byte_code"`
// Source is a valid absolute HTTPS URI to the contract's source code, optional
Source string `json:"source" yaml:"source"`
// Builder is a valid docker image name with tag, optional
Builder string `json:"builder" yaml:"builder"`
// InstantiatePermission to apply on contract creation, optional
InstantiatePermission *AccessConfig `json:"instantiate_permission,omitempty" yaml:"instantiate_permission"`
}
func (MsgStoreCode) GetSignBytes ¶
func (msg MsgStoreCode) GetSignBytes() []byte
func (MsgStoreCode) GetSigners ¶
func (msg MsgStoreCode) GetSigners() []sdk.AccAddress
func (MsgStoreCode) Route ¶
func (msg MsgStoreCode) Route() string
func (MsgStoreCode) Type ¶
func (msg MsgStoreCode) Type() string
func (MsgStoreCode) ValidateBasic ¶
func (msg MsgStoreCode) ValidateBasic() error
type MsgUpdateAdmin ¶
type MsgUpdateAdmin struct {
Sender sdk.AccAddress `json:"sender" yaml:"sender"`
NewAdmin sdk.AccAddress `json:"new_admin" yaml:"new_admin"`
Contract sdk.AccAddress `json:"contract" yaml:"contract"`
}
func (MsgUpdateAdmin) GetSignBytes ¶
func (msg MsgUpdateAdmin) GetSignBytes() []byte
func (MsgUpdateAdmin) GetSigners ¶
func (msg MsgUpdateAdmin) GetSigners() []sdk.AccAddress
func (MsgUpdateAdmin) Route ¶
func (msg MsgUpdateAdmin) Route() string
func (MsgUpdateAdmin) Type ¶
func (msg MsgUpdateAdmin) Type() string
func (MsgUpdateAdmin) ValidateBasic ¶
func (msg MsgUpdateAdmin) ValidateBasic() error
type Params ¶
type Params struct {
UploadAccess AccessConfig `json:"code_upload_access" yaml:"code_upload_access"`
DefaultInstantiatePermission AccessType `json:"instantiate_default_permission" yaml:"instantiate_default_permission"`
}
Params defines the set of wasm parameters.
func (*Params) ParamSetPairs ¶
func (p *Params) ParamSetPairs() params.ParamSetPairs
ParamSetPairs returns the parameter set pairs.
func (Params) ValidateBasic ¶
ValidateBasic performs basic validation on wasm parameters
type ProposalType ¶
type ProposalType string
const ( ProposalTypeStoreCode ProposalType = "StoreCode" ProposalTypeInstantiateContract ProposalType = "InstantiateContract" ProposalTypeMigrateContract ProposalType = "MigrateContract" ProposalTypeUpdateAdmin ProposalType = "UpdateAdmin" ProposalTypeClearAdmin ProposalType = "ClearAdmin" )
func ConvertToProposals ¶
func ConvertToProposals(keys []string) ([]ProposalType, error)
ConvertToProposals maps each key to a ProposalType and returns a typed list. If any string is not a valid type (in this file), then return an error
type Sequence ¶
func (Sequence) ValidateBasic ¶
type StoreCodeProposal ¶
type StoreCodeProposal struct {
WasmProposal
// RunAs is the address that "owns" the code object
RunAs sdk.AccAddress `json:"run_as"`
// WASMByteCode can be raw or gzip compressed
WASMByteCode []byte `json:"wasm_byte_code"`
// Source is a valid absolute HTTPS URI to the contract's source code, optional
Source string `json:"source"`
// Builder is a valid docker image name with tag, optional
Builder string `json:"builder"`
// InstantiatePermission to apply on contract creation, optional
InstantiatePermission *AccessConfig `json:"instantiate_permission"`
}
StoreCodeProposal gov proposal content type to store wasm code.
func StoreCodeProposalFixture ¶
func StoreCodeProposalFixture(mutators ...func(*StoreCodeProposal)) StoreCodeProposal
func (StoreCodeProposal) MarshalYAML ¶
func (p StoreCodeProposal) MarshalYAML() (interface{}, error)
func (StoreCodeProposal) ProposalType ¶
func (p StoreCodeProposal) ProposalType() string
ProposalType returns the type
func (StoreCodeProposal) String ¶
func (p StoreCodeProposal) String() string
String implements the Stringer interface.
func (StoreCodeProposal) ValidateBasic ¶
func (p StoreCodeProposal) ValidateBasic() error
ValidateBasic validates the proposal
type UpdateAdminProposal ¶
type UpdateAdminProposal struct {
WasmProposal `yaml:",inline"`
NewAdmin sdk.AccAddress `json:"new_admin" yaml:"new_admin"`
Contract sdk.AccAddress `json:"contract" yaml:"contract"`
}
UpdateAdminProposal gov proposal content type to set an admin for a contract.
func UpdateAdminProposalFixture ¶
func UpdateAdminProposalFixture(mutators ...func(p *UpdateAdminProposal)) UpdateAdminProposal
func (UpdateAdminProposal) ProposalType ¶
func (p UpdateAdminProposal) ProposalType() string
ProposalType returns the type
func (UpdateAdminProposal) String ¶
func (p UpdateAdminProposal) String() string
String implements the Stringer interface.
func (UpdateAdminProposal) ValidateBasic ¶
func (p UpdateAdminProposal) ValidateBasic() error
ValidateBasic validates the proposal
type WasmConfig ¶
type WasmConfig struct {
SmartQueryGasLimit uint64 `mapstructure:"query_gas_limit"`
CacheSize uint64 `mapstructure:"lru_size"`
}
WasmConfig is the extra config required for wasm
func DefaultWasmConfig ¶
func DefaultWasmConfig() WasmConfig
DefaultWasmConfig returns the default settings for WasmConfig
type WasmProposal ¶
type WasmProposal struct {
Title string `json:"title" yaml:"title"`
Description string `json:"description" yaml:"description"`
}
WasmProposal contains common proposal data.
func (WasmProposal) GetDescription ¶
func (p WasmProposal) GetDescription() string
GetDescription returns the description of a parameter change proposal.
func (WasmProposal) GetTitle ¶
func (p WasmProposal) GetTitle() string
GetTitle returns the title of a parameter change proposal.
func (WasmProposal) ProposalRoute ¶
func (p WasmProposal) ProposalRoute() string
ProposalRoute returns the routing key of a parameter change proposal.
func (WasmProposal) ValidateBasic ¶
func (p WasmProposal) ValidateBasic() error
ValidateBasic validates the proposal