192 lines
7.3 KiB
Protocol Buffer
192 lines
7.3 KiB
Protocol Buffer
syntax = "proto3";
|
|
package cosmwasm.wasm.v1;
|
|
|
|
import "cosmos/base/v1beta1/coin.proto";
|
|
import "gogoproto/gogo.proto";
|
|
import "wasm/v1/types.proto";
|
|
|
|
option go_package = "github.com/cerc-io/laconicd/x/wasm/types";
|
|
option (gogoproto.goproto_getters_all) = false;
|
|
|
|
// Msg defines the wasm Msg service.
|
|
service Msg {
|
|
// StoreCode to submit Wasm code to the system
|
|
rpc StoreCode(MsgStoreCode) returns (MsgStoreCodeResponse);
|
|
// InstantiateContract creates a new smart contract instance for the given
|
|
// code id.
|
|
rpc InstantiateContract(MsgInstantiateContract)
|
|
returns (MsgInstantiateContractResponse);
|
|
// InstantiateContract2 creates a new smart contract instance for the given
|
|
// code id with a predictable address
|
|
rpc InstantiateContract2(MsgInstantiateContract2)
|
|
returns (MsgInstantiateContract2Response);
|
|
// Execute submits the given message data to a smart contract
|
|
rpc ExecuteContract(MsgExecuteContract) returns (MsgExecuteContractResponse);
|
|
// Migrate runs a code upgrade/ downgrade for a smart contract
|
|
rpc MigrateContract(MsgMigrateContract) returns (MsgMigrateContractResponse);
|
|
// UpdateAdmin sets a new admin for a smart contract
|
|
rpc UpdateAdmin(MsgUpdateAdmin) returns (MsgUpdateAdminResponse);
|
|
// ClearAdmin removes any admin stored for a smart contract
|
|
rpc ClearAdmin(MsgClearAdmin) returns (MsgClearAdminResponse);
|
|
// UpdateInstantiateConfig updates instantiate config for a smart contract
|
|
rpc UpdateInstantiateConfig(MsgUpdateInstantiateConfig)
|
|
returns (MsgUpdateInstantiateConfigResponse);
|
|
}
|
|
|
|
// MsgStoreCode submit Wasm code to the system
|
|
message MsgStoreCode {
|
|
// Sender is the that actor that signed the messages
|
|
string sender = 1;
|
|
// WASMByteCode can be raw or gzip compressed
|
|
bytes wasm_byte_code = 2 [ (gogoproto.customname) = "WASMByteCode" ];
|
|
// Used in v1beta1
|
|
reserved 3, 4;
|
|
// InstantiatePermission access control to apply on contract creation,
|
|
// optional
|
|
AccessConfig instantiate_permission = 5;
|
|
}
|
|
// MsgStoreCodeResponse returns store result data.
|
|
message MsgStoreCodeResponse {
|
|
// CodeID is the reference to the stored WASM code
|
|
uint64 code_id = 1 [ (gogoproto.customname) = "CodeID" ];
|
|
// Checksum is the sha256 hash of the stored code
|
|
bytes checksum = 2;
|
|
}
|
|
|
|
// MsgInstantiateContract create a new smart contract instance for the given
|
|
// code id.
|
|
message MsgInstantiateContract {
|
|
// Sender is the that actor that signed the messages
|
|
string sender = 1;
|
|
// Admin is an optional address that can execute migrations
|
|
string admin = 2;
|
|
// CodeID is the reference to the stored WASM code
|
|
uint64 code_id = 3 [ (gogoproto.customname) = "CodeID" ];
|
|
// Label is optional metadata to be stored with a contract instance.
|
|
string label = 4;
|
|
// Msg json encoded message to be passed to the contract on instantiation
|
|
bytes msg = 5 [ (gogoproto.casttype) = "RawContractMessage" ];
|
|
// Funds coins that are transferred to the contract on instantiation
|
|
repeated cosmos.base.v1beta1.Coin funds = 6 [
|
|
(gogoproto.nullable) = false,
|
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"
|
|
];
|
|
}
|
|
|
|
// MsgInstantiateContract2 create a new smart contract instance for the given
|
|
// code id with a predicable address.
|
|
message MsgInstantiateContract2 {
|
|
// Sender is the that actor that signed the messages
|
|
string sender = 1;
|
|
// Admin is an optional address that can execute migrations
|
|
string admin = 2;
|
|
// CodeID is the reference to the stored WASM code
|
|
uint64 code_id = 3 [ (gogoproto.customname) = "CodeID" ];
|
|
// Label is optional metadata to be stored with a contract instance.
|
|
string label = 4;
|
|
// Msg json encoded message to be passed to the contract on instantiation
|
|
bytes msg = 5 [ (gogoproto.casttype) = "RawContractMessage" ];
|
|
// Funds coins that are transferred to the contract on instantiation
|
|
repeated cosmos.base.v1beta1.Coin funds = 6 [
|
|
(gogoproto.nullable) = false,
|
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"
|
|
];
|
|
// Salt is an arbitrary value provided by the sender. Size can be 1 to 64.
|
|
bytes salt = 7;
|
|
// FixMsg include the msg value into the hash for the predictable address.
|
|
// Default is false
|
|
bool fix_msg = 8;
|
|
}
|
|
|
|
// MsgInstantiateContractResponse return instantiation result data
|
|
message MsgInstantiateContractResponse {
|
|
// Address is the bech32 address of the new contract instance.
|
|
string address = 1;
|
|
// Data contains bytes to returned from the contract
|
|
bytes data = 2;
|
|
}
|
|
|
|
// MsgInstantiateContract2Response return instantiation result data
|
|
message MsgInstantiateContract2Response {
|
|
// Address is the bech32 address of the new contract instance.
|
|
string address = 1;
|
|
// Data contains bytes to returned from the contract
|
|
bytes data = 2;
|
|
}
|
|
|
|
// MsgExecuteContract submits the given message data to a smart contract
|
|
message MsgExecuteContract {
|
|
// Sender is the that actor that signed the messages
|
|
string sender = 1;
|
|
// Contract is the address of the smart contract
|
|
string contract = 2;
|
|
// Msg json encoded message to be passed to the contract
|
|
bytes msg = 3 [ (gogoproto.casttype) = "RawContractMessage" ];
|
|
// Funds coins that are transferred to the contract on execution
|
|
repeated cosmos.base.v1beta1.Coin funds = 5 [
|
|
(gogoproto.nullable) = false,
|
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"
|
|
];
|
|
}
|
|
|
|
// MsgExecuteContractResponse returns execution result data.
|
|
message MsgExecuteContractResponse {
|
|
// Data contains bytes to returned from the contract
|
|
bytes data = 1;
|
|
}
|
|
|
|
// MsgMigrateContract runs a code upgrade/ downgrade for a smart contract
|
|
message MsgMigrateContract {
|
|
// Sender is the that actor that signed the messages
|
|
string sender = 1;
|
|
// Contract is the address of the smart contract
|
|
string contract = 2;
|
|
// CodeID references the new WASM code
|
|
uint64 code_id = 3 [ (gogoproto.customname) = "CodeID" ];
|
|
// Msg json encoded message to be passed to the contract on migration
|
|
bytes msg = 4 [ (gogoproto.casttype) = "RawContractMessage" ];
|
|
}
|
|
|
|
// MsgMigrateContractResponse returns contract migration result data.
|
|
message MsgMigrateContractResponse {
|
|
// Data contains same raw bytes returned as data from the wasm contract.
|
|
// (May be empty)
|
|
bytes data = 1;
|
|
}
|
|
|
|
// MsgUpdateAdmin sets a new admin for a smart contract
|
|
message MsgUpdateAdmin {
|
|
// Sender is the that actor that signed the messages
|
|
string sender = 1;
|
|
// NewAdmin address to be set
|
|
string new_admin = 2;
|
|
// Contract is the address of the smart contract
|
|
string contract = 3;
|
|
}
|
|
|
|
// MsgUpdateAdminResponse returns empty data
|
|
message MsgUpdateAdminResponse {}
|
|
|
|
// MsgClearAdmin removes any admin stored for a smart contract
|
|
message MsgClearAdmin {
|
|
// Sender is the actor that signed the messages
|
|
string sender = 1;
|
|
// Contract is the address of the smart contract
|
|
string contract = 3;
|
|
}
|
|
|
|
// MsgClearAdminResponse returns empty data
|
|
message MsgClearAdminResponse {}
|
|
|
|
// MsgUpdateInstantiateConfig updates instantiate config for a smart contract
|
|
message MsgUpdateInstantiateConfig {
|
|
// Sender is the that actor that signed the messages
|
|
string sender = 1;
|
|
// CodeID references the stored WASM code
|
|
uint64 code_id = 2 [ (gogoproto.customname) = "CodeID" ];
|
|
// NewInstantiatePermission is the new access control
|
|
AccessConfig new_instantiate_permission = 3;
|
|
}
|
|
|
|
// MsgUpdateInstantiateConfigResponse returns empty data
|
|
message MsgUpdateInstantiateConfigResponse {} |