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 |