syntax = "proto3"; package cosmos; import "gogoproto/gogo.proto"; import "tendermint/abci/types/types.proto"; import "google/protobuf/any.proto"; option go_package = "github.com/cosmos/cosmos-sdk/types"; option (gogoproto.goproto_stringer_all) = false; option (gogoproto.stringer_all) = false; // Coin defines a token with a denomination and an amount. // // NOTE: The amount field is an Int which implements the custom method // signatures required by gogoproto. message Coin { option (gogoproto.equal) = true; string denom = 1; string amount = 2 [(gogoproto.customtype) = "Int", (gogoproto.nullable) = false]; } // DecCoin defines a token with a denomination and a decimal amount. // // NOTE: The amount field is an Dec which implements the custom method // signatures required by gogoproto. message DecCoin { option (gogoproto.equal) = true; string denom = 1; string amount = 2 [(gogoproto.customtype) = "Dec", (gogoproto.nullable) = false]; } // IntProto defines a Protobuf wrapper around an Int object. message IntProto { string int = 1 [(gogoproto.customtype) = "Int", (gogoproto.nullable) = false]; } // DecProto defines a Protobuf wrapper around a Dec object. message DecProto { string dec = 1 [(gogoproto.customtype) = "Dec", (gogoproto.nullable) = false]; } // ValAddresses defines a repeated set of validator addresses. message ValAddresses { option (gogoproto.stringer) = true; repeated bytes addresses = 1 [(gogoproto.casttype) = "ValAddress"]; } // GasInfo defines tx execution gas context. message GasInfo { // GasWanted is the maximum units of work we allow this tx to perform. uint64 gas_wanted = 1 [(gogoproto.moretags) = "yaml:\"gas_wanted\""]; // GasUsed is the amount of gas actually consumed. uint64 gas_used = 2 [(gogoproto.moretags) = "yaml:\"gas_used\""]; } // Result is the union of ResponseFormat and ResponseCheckTx. message Result { option (gogoproto.goproto_getters) = false; // Data is any data returned from message or handler execution. It MUST be length // prefixed in order to separate data from multiple message executions. bytes data = 1; // Log contains the log information from message or handler execution. string log = 2; // Events contains a slice of Event objects that were emitted during message or // handler execution. repeated tendermint.abci.types.Event events = 3 [(gogoproto.nullable) = false]; } // SimulationResponse defines the response generated when a transaction is // successfully simulated. message SimulationResponse { GasInfo gas_info = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; Result result = 2; } // MsgData defines the data returned in a Result object during message execution. message MsgData { option (gogoproto.stringer) = true; string msg_type = 1; bytes data = 2; } // TxData defines a list of MsgData. A transaction will have a MsgData object for // each message. message TxData { option (gogoproto.stringer) = true; repeated MsgData data = 1; } // TxResponse defines a structure containing relevant tx data and metadata. The // tags are stringified and the log is JSON decoded. message TxResponse { option (gogoproto.goproto_getters) = false; int64 height = 1; string txhash = 2 [(gogoproto.customname) = "TxHash"]; string codespace = 3; uint32 code = 4; string data = 5; string raw_log = 6; repeated ABCIMessageLog logs = 7 [(gogoproto.castrepeated) = "ABCIMessageLogs", (gogoproto.nullable) = false]; string info = 8; int64 gas_wanted = 9; int64 gas_used = 10; google.protobuf.Any tx = 11; string timestamp = 12; } // ABCIMessageLog defines a structure containing an indexed tx ABCI message log. message ABCIMessageLog { option (gogoproto.stringer) = true; uint32 msg_index = 1; string log = 2; // Events contains a slice of Event objects that were emitted during some // execution. repeated StringEvent events = 3 [(gogoproto.castrepeated) = "StringEvents", (gogoproto.nullable) = false]; } // StringAttribute defines en Event object wrapper where all the attributes // contain key/value pairs that are strings instead of raw bytes. message StringEvent { option (gogoproto.stringer) = true; string type = 1; repeated Attribute attributes = 2 [(gogoproto.nullable) = false]; } // Attribute defines an attribute wrapper where the key and value are // strings instead of raw bytes. message Attribute { string key = 1; string value = 2; }