syntax = "proto3"; package injective.wasmx.v1; import "gogoproto/gogo.proto"; import "google/protobuf/any.proto"; import "cosmos_proto/cosmos.proto"; import "cosmos/msg/v1/msg.proto"; import "injective/wasmx/v1/wasmx.proto"; import "injective/wasmx/v1/proposal.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/wasmx/types"; // Msg defines the wasmx Msg service. service Msg { rpc UpdateRegistryContractParams(MsgUpdateContract) returns (MsgUpdateContractResponse); rpc ActivateRegistryContract(MsgActivateContract) returns (MsgActivateContractResponse); rpc DeactivateRegistryContract(MsgDeactivateContract) returns (MsgDeactivateContractResponse); rpc ExecuteContractCompat(MsgExecuteContractCompat) returns (MsgExecuteContractCompatResponse); rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); rpc RegisterContract(MsgRegisterContract) returns (MsgRegisterContractResponse); } // MsgExecuteContractCompat submits the given message data to a smart contract, // compatible with EIP712 message MsgExecuteContractCompat { option (cosmos.msg.v1.signer) = "sender"; // 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 string msg = 3; // Funds coins that are transferred to the contract on execution string funds = 4; } // MsgExecuteContractCompatResponse returns execution result data. message MsgExecuteContractCompatResponse { // Data contains bytes to returned from the contract bytes data = 1; } message MsgUpdateContract { option (cosmos.msg.v1.signer) = "sender"; string sender = 1; // Unique Identifier for contract instance to be registered. string contract_address = 2; // Maximum gas to be used for the smart contract execution. uint64 gas_limit = 3; // gas price to be used for the smart contract execution. uint64 gas_price = 4; // optional - admin account that will be allowed to perform any changes string admin_address = 5 [ (gogoproto.nullable) = true ]; } message MsgUpdateContractResponse {} message MsgActivateContract { option (cosmos.msg.v1.signer) = "sender"; string sender = 1; // Unique Identifier for contract instance to be activated. string contract_address = 2; } message MsgActivateContractResponse {} message MsgDeactivateContract { option (cosmos.msg.v1.signer) = "sender"; string sender = 1; // Unique Identifier for contract instance to be deactivated. string contract_address = 2; } message MsgDeactivateContractResponse {} message MsgUpdateParams { option (cosmos.msg.v1.signer) = "authority"; // authority is the address of the governance account. string authority = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; // params defines the wasmx parameters to update. // // NOTE: All parameters must be supplied. Params params = 2 [ (gogoproto.nullable) = false ]; } message MsgUpdateParamsResponse {} message MsgRegisterContract { option (cosmos.msg.v1.signer) = "sender"; string sender = 1; ContractRegistrationRequest contract_registration_request = 2 [ (gogoproto.nullable) = false ]; } message MsgRegisterContractResponse {}