laconicd/proto/ethermint/evm/v1alpha1/tx.proto
Federico Kunze ed313c9482
stargate: proto files (#679)
* stargate: proto files

* third party proto files

* third party proto files

* add annotations

* rm proto-gen-any

* rm script any
2021-01-07 18:45:32 -03:00

106 lines
3.5 KiB
Protocol Buffer

syntax = "proto3";
package ethermint.evm.v1alpha1;
import "gogoproto/gogo.proto";
import "ethermint/evm/v1alpha1/evm.proto";
option go_package = "github.com/cosmos/ethermint/x/evm/types";
// Msg defines the evm Msg service.
service Msg {
// EthereumTx defines a method submitting Ethereum transactions.
rpc EthereumTx(MsgEthereumTx) returns (MsgEthereumTxResponse);
}
// MsgEthereumTx encapsulates an Ethereum transaction as an SDK message.
message MsgEthereumTx {
option (gogoproto.goproto_getters) = false;
TxData data = 1;
// caches
double size = 2 [ (gogoproto.jsontag) = "-" ];
SigCache from = 3 [ (gogoproto.jsontag) = "-" ];
}
// MsgEthereumTxResponse defines the Msg/EthereumTx response type.
message MsgEthereumTxResponse {
option (gogoproto.goproto_getters) = false;
// contract_address contains the ethereum address of the created contract (if
// any). If the state transition is an evm.Call, the contract address will be
// empty.
string contract_address = 1 [(gogoproto.moretags) = "yaml:\"contract_address\""];
// bloom represents the bloom filter bytes
bytes bloom = 2;
// tx_logs contains the transaction hash and the proto-compatible ethereum
// logs.
TransactionLogs tx_logs = 3 [
(gogoproto.moretags) = "yaml:\"tx_logs\"",
(gogoproto.nullable) = false
];
// ret defines the bytes from the execution.
bytes ret = 4;
}
// TxData implements the Ethereum transaction data structure. It is used
// solely as intended in Ethereum abiding by the protocol.
message TxData {
option (gogoproto.goproto_getters) = false;
// nonce corresponds to the account nonce (transaction sequence).
uint64 nonce = 1 [(gogoproto.customname) = "AccountNonce"];
// price defines the unsigned integer value of the gas price in bytes.
string price = 2 [
(gogoproto.jsontag) = "gasPrice",
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.nullable) = false
];
// gas defines the gas limit defined for the transaction.
uint64 gas = 3 [(gogoproto.customname) = "GasLimit"];
Recipient to = 4 [
(gogoproto.customname) = "Recipient",
(gogoproto.moretags) = "rlp:\"nil\""
];
// value defines the unsigned integer value of the transaction amount.
string value = 5 [
(gogoproto.customname) = "Amount",
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
(gogoproto.nullable) = false
];
// input defines the data payload bytes of the transaction.
bytes input = 6 [(gogoproto.customname) = "Payload"];
// v defines the signature value
bytes v = 7;
// r defines the signature value
bytes r = 8;
// s define the signature value
bytes s = 9;
// hash defines the tx data hash, which is only used when marshaling to JSON.
string hash = 10 [ (gogoproto.moretags) = "rlp:\"-\"" ];
}
// Recipient defines a protobuf-compatible wrapper for an Ethereum address
// pointer. It is required for RLP encoding.
message Recipient {
option (gogoproto.goproto_getters) = false;
// address defines the hex-formated ethereum address of the recipient
string address = 1;
}
// SigCache is used to cache the derived sender and contains the signer used
// to derive it.
message SigCache {
option (gogoproto.goproto_getters) = false;
EIP155Signer signer = 1;
string address = 2;
}
// EIP155Transaction implements Signer using the EIP155 rules.
message EIP155Signer {
option (gogoproto.goproto_getters) = false;
bytes chain_id = 1 [(gogoproto.customname) = "chainId"];
bytes chain_id_mul = 2 [(gogoproto.customname) = "chainIdMul"];
}