ethermint/evm
Table of Contents
- ethermint/evm/v1/evm.proto
-
ethermint/evm/v1/query.proto
- MEstimateGasResponse
- MEthCallRequest
- MQueryAccountRequest
- MQueryAccountResponse
- MQueryBalanceRequest
- MQueryBalanceResponse
- MQueryBaseFeeRequest
- MQueryBaseFeeResponse
- MQueryCodeRequest
- MQueryCodeResponse
- MQueryCosmosAccountRequest
- MQueryCosmosAccountResponse
- MQueryParamsRequest
- MQueryParamsResponse
- MQueryStorageRequest
- MQueryStorageResponse
- MQueryTraceBlockRequest
- MQueryTraceBlockResponse
- MQueryTraceTxRequest
- MQueryTraceTxResponse
- MQueryTxLogsRequest
- MQueryTxLogsResponse
- MQueryValidatorAccountRequest
- MQueryValidatorAccountResponse
- SQuery
- ethermint/evm/v1/genesis.proto
- ethermint/evm/v1/tx.proto
- Scalar Value Types
ethermint/evm/v1/evm.proto
TopAccessTuple
AccessTuple is the element type of an access list.
Field | Type | Label | Description |
address | string | hex formatted ethereum address |
|
storage_keys | string | repeated | hex formatted hashes of the storage keys |
ChainConfig
ChainConfig defines the Ethereum ChainConfig parameters using *sdk.Int values
instead of *big.Int.
Field | Type | Label | Description |
homestead_block | string | Homestead switch block (nil no fork, 0 = already homestead) |
|
dao_fork_block | string | TheDAO hard-fork switch block (nil no fork) |
|
dao_fork_support | bool | Whether the nodes supports or opposes the DAO hard-fork |
|
eip150_block | string | EIP150 implements the Gas price changes (https://github.com/ethereum/EIPs/issues/150) EIP150 HF block (nil no fork) |
|
eip150_hash | string | EIP150 HF hash (needed for header only clients as only gas pricing changed) |
|
eip155_block | string | EIP155Block HF block |
|
eip158_block | string | EIP158 HF block |
|
byzantium_block | string | Byzantium switch block (nil no fork, 0 = already on byzantium) |
|
constantinople_block | string | Constantinople switch block (nil no fork, 0 = already activated) |
|
petersburg_block | string | Petersburg switch block (nil same as Constantinople) |
|
istanbul_block | string | Istanbul switch block (nil no fork, 0 = already on istanbul) |
|
muir_glacier_block | string | Eip-2384 (bomb delay) switch block (nil no fork, 0 = already activated) |
|
berlin_block | string | Berlin switch block (nil = no fork, 0 = already on berlin) |
|
london_block | string | London switch block (nil = no fork, 0 = already on london) |
|
arrow_glacier_block | string | Eip-4345 (bomb delay) switch block (nil = no fork, 0 = already activated) |
|
merge_fork_block | string | EIP-3675 (TheMerge) switch block (nil = no fork, 0 = already in merge proceedings) |
Log
Log represents an protobuf compatible Ethereum Log that defines a contract
log event. These events are generated by the LOG opcode and stored/indexed by
the node.
Consensus fields:
Field | Type | Label | Description |
address | string | address of the contract that generated the event |
|
topics | string | repeated | list of topics provided by the contract. |
data | bytes | supplied by the contract, usually ABI-encoded |
|
block_number | uint64 | block in which the transaction was included |
|
tx_hash | string | hash of the transaction |
|
tx_index | uint64 | index of the transaction in the block |
|
block_hash | string | hash of the block in which the transaction was included |
|
index | uint64 | index of the log in the block |
|
removed | bool | The Removed field is true if this log was reverted due to a chain reorganisation. You must pay attention to this field if you receive logs through a filter query. |
Params
Params defines the EVM module parameters
Field | Type | Label | Description |
evm_denom | string | evm denom represents the token denomination used to run the EVM state transitions. |
|
enable_create | bool | enable create toggles state transitions that use the vm.Create function |
|
enable_call | bool | enable call toggles state transitions that use the vm.Call function |
|
extra_eips | int64 | repeated | extra eips defines the additional EIPs for the vm.Config |
chain_config | ChainConfig | chain config defines the EVM chain configuration parameters |
|
allow_unprotected_txs | bool | Allow unprotected transactions defines if replay-protected (i.e non EIP155 signed) transactions can be executed on the state machine. |
State
State represents a single Storage key value pair item.
Field | Type | Label | Description |
key | string |
|
|
value | string |
|
TraceConfig
TraceConfig holds extra parameters to trace functions.
Field | Type | Label | Description |
tracer | string | custom javascript tracer |
|
timeout | string | overrides the default timeout of 5 seconds for JavaScript-based tracing calls |
|
reexec | uint64 | number of blocks the tracer is willing to go back |
|
disable_stack | bool | disable stack capture |
|
disable_storage | bool | disable storage capture |
|
debug | bool | print output during capture end |
|
limit | int32 | maximum length of output, but zero means unlimited |
|
overrides | ChainConfig | Chain overrides, can be used to execute a trace using future fork rules |
|
enable_memory | bool | enable memory capture |
|
enable_return_data | bool | enable return data capture |
TransactionLogs
TransactionLogs define the logs generated from a transaction execution
with a given hash. It it used for import/export data as transactions are not
persisted on blockchain state after an upgrade.
Field | Type | Label | Description |
hash | string |
|
|
logs | Log | repeated |
|
TxResult
TxResult stores results of Tx execution.
Field | Type | Label | Description |
contract_address | string | 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. |
|
bloom | bytes | bloom represents the bloom filter bytes |
|
tx_logs | TransactionLogs | tx_logs contains the transaction hash and the proto-compatible ethereum logs. |
|
ret | bytes | ret defines the bytes from the execution. |
|
reverted | bool | reverted flag is set to true when the call has been reverted |
|
gas_used | uint64 | gas_used notes the amount of gas consumed while execution |
ethermint/evm/v1/query.proto
TopEstimateGasResponse
EstimateGasResponse defines EstimateGas response
Field | Type | Label | Description |
gas | uint64 | the estimated gas |
EthCallRequest
EthCallRequest defines EthCall request
Field | Type | Label | Description |
args | bytes | same json format as the json rpc api. |
|
gas_cap | uint64 | the default gas cap to be used |
QueryAccountRequest
QueryAccountRequest is the request type for the Query/Account RPC method.
Field | Type | Label | Description |
address | string | address is the ethereum hex address to query the account for. |
QueryAccountResponse
QueryAccountResponse is the response type for the Query/Account RPC method.
Field | Type | Label | Description |
balance | string | balance is the balance of the EVM denomination. |
|
code_hash | string | code hash is the hex-formatted code bytes from the EOA. |
|
nonce | uint64 | nonce is the account's sequence number. |
QueryBalanceRequest
QueryBalanceRequest is the request type for the Query/Balance RPC method.
Field | Type | Label | Description |
address | string | address is the ethereum hex address to query the balance for. |
QueryBalanceResponse
QueryBalanceResponse is the response type for the Query/Balance RPC method.
Field | Type | Label | Description |
balance | string | balance is the balance of the EVM denomination. |
QueryBaseFeeRequest
QueryBaseFeeRequest defines the request type for querying the EIP1559 base
fee.
QueryBaseFeeResponse
BaseFeeResponse returns the EIP1559 base fee.
Field | Type | Label | Description |
base_fee | string |
|
QueryCodeRequest
QueryCodeRequest is the request type for the Query/Code RPC method.
Field | Type | Label | Description |
address | string | address is the ethereum hex address to query the code for. |
QueryCodeResponse
QueryCodeResponse is the response type for the Query/Code RPC
method.
Field | Type | Label | Description |
code | bytes | code represents the code bytes from an ethereum address. |
QueryCosmosAccountRequest
QueryCosmosAccountRequest is the request type for the Query/CosmosAccount RPC
method.
Field | Type | Label | Description |
address | string | address is the ethereum hex address to query the account for. |
QueryCosmosAccountResponse
QueryCosmosAccountResponse is the response type for the Query/CosmosAccount
RPC method.
Field | Type | Label | Description |
cosmos_address | string | cosmos_address is the cosmos address of the account. |
|
sequence | uint64 | sequence is the account's sequence number. |
|
account_number | uint64 | account_number is the account numbert |
QueryParamsRequest
QueryParamsRequest defines the request type for querying x/evm parameters.
QueryParamsResponse
QueryParamsResponse defines the response type for querying x/evm parameters.
Field | Type | Label | Description |
params | Params | params define the evm module parameters. |
QueryStorageRequest
QueryStorageRequest is the request type for the Query/Storage RPC method.
Field | Type | Label | Description |
address | string | address is the ethereum hex address to query the storage state for. |
|
key | string | key defines the key of the storage state |
QueryStorageResponse
QueryStorageResponse is the response type for the Query/Storage RPC
method.
Field | Type | Label | Description |
value | string | key defines the storage state value hash associated with the given key. |
QueryTraceBlockRequest
QueryTraceBlockRequest defines TraceTx request
Field | Type | Label | Description |
txs | MsgEthereumTx | repeated | txs messages in the block |
trace_config | TraceConfig | TraceConfig holds extra parameters to trace functions. |
|
block_number | int64 | block number |
|
block_hash | string | block hex hash |
|
block_time | google.protobuf.Timestamp | block time |
QueryTraceBlockResponse
QueryTraceBlockResponse defines TraceBlock response
Field | Type | Label | Description |
data | bytes |
|
QueryTraceTxRequest
QueryTraceTxRequest defines TraceTx request
Field | Type | Label | Description |
msg | MsgEthereumTx | msgEthereumTx for the requested transaction |
|
trace_config | TraceConfig | TraceConfig holds extra parameters to trace functions. |
|
predecessors | MsgEthereumTx | repeated | the predecessor transactions included in the same block need to be replayed first to get correct context for tracing. |
block_number | int64 | block number of requested transaction |
|
block_hash | string | block hex hash of requested transaction |
|
block_time | google.protobuf.Timestamp | block time of requested transaction |
QueryTraceTxResponse
QueryTraceTxResponse defines TraceTx response
Field | Type | Label | Description |
data | bytes | response serialized in bytes |
QueryTxLogsRequest
QueryTxLogsRequest is the request type for the Query/TxLogs RPC method.
Field | Type | Label | Description |
hash | string | hash is the ethereum transaction hex hash to query the logs for. |
|
pagination | cosmos.base.query.v1beta1.PageRequest | pagination defines an optional pagination for the request. |
QueryTxLogsResponse
QueryTxLogs is the response type for the Query/TxLogs RPC method.
Field | Type | Label | Description |
logs | Log | repeated | logs represents the ethereum logs generated from the given transaction. |
pagination | cosmos.base.query.v1beta1.PageResponse | pagination defines the pagination in the response. |
QueryValidatorAccountRequest
QueryValidatorAccountRequest is the request type for the
Query/ValidatorAccount RPC method.
Field | Type | Label | Description |
cons_address | string | cons_address is the validator cons address to query the account for. |
QueryValidatorAccountResponse
QueryValidatorAccountResponse is the response type for the
Query/ValidatorAccount RPC method.
Field | Type | Label | Description |
account_address | string | account_address is the cosmos address of the account in bech32 format. |
|
sequence | uint64 | sequence is the account's sequence number. |
|
account_number | uint64 | account_number is the account number |
Query
Query defines the gRPC querier service.
Method Name | Request Type | Response Type | Description |
Account | QueryAccountRequest | QueryAccountResponse | Account queries an Ethereum account. |
CosmosAccount | QueryCosmosAccountRequest | QueryCosmosAccountResponse | CosmosAccount queries an Ethereum account's Cosmos Address. |
ValidatorAccount | QueryValidatorAccountRequest | QueryValidatorAccountResponse | ValidatorAccount queries an Ethereum account's from a validator consensus Address. |
Balance | QueryBalanceRequest | QueryBalanceResponse | Balance queries the balance of a the EVM denomination for a single EthAccount. |
Storage | QueryStorageRequest | QueryStorageResponse | Storage queries the balance of all coins for a single account. |
Code | QueryCodeRequest | QueryCodeResponse | Code queries the balance of all coins for a single account. |
Params | QueryParamsRequest | QueryParamsResponse | Params queries the parameters of x/evm module. |
EthCall | EthCallRequest | MsgEthereumTxResponse | EthCall implements the `eth_call` rpc api |
EstimateGas | EthCallRequest | EstimateGasResponse | EstimateGas implements the `eth_estimateGas` rpc api |
TraceTx | QueryTraceTxRequest | QueryTraceTxResponse | TraceTx implements the `debug_traceTransaction` rpc api |
TraceBlock | QueryTraceBlockRequest | QueryTraceBlockResponse | TraceBlock implements the `debug_traceBlockByNumber` and `debug_traceBlockByHash` rpc api |
BaseFee | QueryBaseFeeRequest | QueryBaseFeeResponse | BaseFee queries the base fee of the parent block of the current block, it's similar to feemarket module's method, but also checks london hardfork status. |
Methods with HTTP bindings
Method Name | Method | Pattern | Body |
Account | GET | /ethermint/evm/v1/account/{address} | |
CosmosAccount | GET | /ethermint/evm/v1/cosmos_account/{address} | |
ValidatorAccount | GET | /ethermint/evm/v1/validator_account/{cons_address} | |
Balance | GET | /ethermint/evm/v1/balances/{address} | |
Storage | GET | /ethermint/evm/v1/storage/{address}/{key} | |
Code | GET | /ethermint/evm/v1/codes/{address} | |
Params | GET | /ethermint/evm/v1/params | |
EthCall | GET | /ethermint/evm/v1/eth_call | |
EstimateGas | GET | /ethermint/evm/v1/estimate_gas | |
TraceTx | GET | /ethermint/evm/v1/trace_tx | |
TraceBlock | GET | /ethermint/evm/v1/trace_block | |
BaseFee | GET | /ethermint/evm/v1/base_fee |
ethermint/evm/v1/genesis.proto
TopGenesisAccount
GenesisAccount defines an account to be initialized in the genesis state.
Its main difference between with Geth's GenesisAccount is that it uses a
custom storage type and that it doesn't contain the private key field.
Field | Type | Label | Description |
address | string | address defines an ethereum hex formated address of an account |
|
code | string | code defines the hex bytes of the account code. |
|
storage | State | repeated | storage defines the set of state key values for the account. |
GenesisState
GenesisState defines the evm module's genesis state.
Field | Type | Label | Description |
accounts | GenesisAccount | repeated | accounts is an array containing the ethereum genesis accounts. |
params | Params | params defines all the parameters of the module. |
ethermint/evm/v1/tx.proto
TopAccessListTx
AccessListTx is the data of EIP-2930 access list transactions.
Field | Type | Label | Description |
chain_id | string | destination EVM chain ID |
|
nonce | uint64 | nonce corresponds to the account nonce (transaction sequence). |
|
gas_price | string | gas price defines the value for each gas unit |
|
gas | uint64 | gas defines the gas limit defined for the transaction. |
|
to | string | hex formatted address of the recipient |
|
value | string | value defines the unsigned integer value of the transaction amount. |
|
data | bytes | input defines the data payload bytes of the transaction. |
|
accesses | AccessTuple | repeated |
|
v | bytes | v defines the signature value |
|
r | bytes | r defines the signature value |
|
s | bytes | s define the signature value |
DynamicFeeTx
DynamicFeeTx is the data of EIP-1559 dinamic fee transactions.
Field | Type | Label | Description |
chain_id | string | destination EVM chain ID |
|
nonce | uint64 | nonce corresponds to the account nonce (transaction sequence). |
|
gas_tip_cap | string | gas tip cap defines the max value for the gas tip |
|
gas_fee_cap | string | gas fee cap defines the max value for the gas fee |
|
gas | uint64 | gas defines the gas limit defined for the transaction. |
|
to | string | hex formatted address of the recipient |
|
value | string | value defines the the transaction amount. |
|
data | bytes | input defines the data payload bytes of the transaction. |
|
accesses | AccessTuple | repeated |
|
v | bytes | v defines the signature value |
|
r | bytes | r defines the signature value |
|
s | bytes | s define the signature value |
ExtensionOptionsEthereumTx
LegacyTx
LegacyTx is the transaction data of regular Ethereum transactions.
NOTE: All non-protected transactions (i.e non EIP155 signed) will fail if the
AllowUnprotectedTxs parameter is disabled.
Field | Type | Label | Description |
nonce | uint64 | nonce corresponds to the account nonce (transaction sequence). |
|
gas_price | string | gas price defines the value for each gas unit |
|
gas | uint64 | gas defines the gas limit defined for the transaction. |
|
to | string | hex formatted address of the recipient |
|
value | string | value defines the unsigned integer value of the transaction amount. |
|
data | bytes | input defines the data payload bytes of the transaction. |
|
v | bytes | v defines the signature value |
|
r | bytes | r defines the signature value |
|
s | bytes | s define the signature value |
MsgEthereumTx
MsgEthereumTx encapsulates an Ethereum transaction as an SDK message.
Field | Type | Label | Description |
data | google.protobuf.Any | inner transaction data caches |
|
size | double | encoded storage size of the transaction |
|
hash | string | transaction hash in hex format |
|
from | string | ethereum signer address in hex format. This address value is checked against the address derived from the signature (V, R, S) using the secp256k1 elliptic curve |
MsgEthereumTxResponse
MsgEthereumTxResponse defines the Msg/EthereumTx response type.
Field | Type | Label | Description |
hash | string | ethereum transaction hash in hex format. This hash differs from the Tendermint sha256 hash of the transaction bytes. See https://github.com/tendermint/tendermint/issues/6539 for reference |
|
logs | Log | repeated | logs contains the transaction hash and the proto-compatible ethereum logs. |
ret | bytes | returned data from evm function (result or data supplied with revert opcode) |
|
vm_error | string | vm error is the error returned by vm execution |
|
gas_used | uint64 | gas consumed by the transaction |
Msg
Msg defines the evm Msg service.
Method Name | Request Type | Response Type | Description |
EthereumTx | MsgEthereumTx | MsgEthereumTxResponse | EthereumTx defines a method submitting Ethereum transactions. |
Methods with HTTP bindings
Method Name | Method | Pattern | Body |
EthereumTx | POST | /ethermint/evm/v1/ethereum_tx |
Scalar Value Types
.proto Type | Notes | Python Type |
double | float | |
float | float | |
int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int |
int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int/long |
uint32 | Uses variable-length encoding. | int/long |
uint64 | Uses variable-length encoding. | int/long |
sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int |
sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int/long |
fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | int |
fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | int/long |
sfixed32 | Always four bytes. | int |
sfixed64 | Always eight bytes. | int/long |
bool | boolean | |
string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | str/unicode |
bytes | May contain any arbitrary sequence of bytes. | str |