laconicd/docs/core/proto-docs.md
Federico Kunze 5a3d514ba0
conflicts
2021-04-17 12:00:07 +02:00

25 KiB
Raw Blame History

Protobuf Documentation

Table of Contents

Top

ethermint/crypto/v1alpha1/ethsecp256k1/keys.proto

PrivKey

PrivKey defines a type alias for an ecdsa.PrivateKey that implements Tendermint's PrivateKey interface.

Field Type Label Description
key bytes

PubKey

PubKey defines a type alias for an ecdsa.PublicKey that implements Tendermint's PubKey interface. It represents the 33-byte compressed public key format.

Field Type Label Description
key bytes

Top

ethermint/evm/v1alpha1/evm.proto

ChainConfig

ChainConfig defines the Ethereum ChainConfig parameters using sdk.Int values instead of big.Int.

NOTE 1: Since empty/uninitialized Ints (i.e with a nil big.Int value) are parsed to zero, we need to manually specify that negative Int values will be considered as nil. See getBlockValue for reference.

NOTE 2: This type is not a configurable Param since the SDK does not allow for validation against a previous stored parameter values or the current block height (retrieved from context). If you want to update the config values, use an software upgrade procedure.

Field Type Label Description
homestead_block string Homestead switch block (< 0 no fork, 0 = already homestead)
dao_fork_block string TheDAO hard-fork switch block (< 0 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 (< 0 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 (< 0 no fork, 0 = already on byzantium)
constantinople_block string Constantinople switch block (< 0 no fork, 0 = already activated)
petersburg_block string Petersburg switch block (< 0 same as Constantinople)
istanbul_block string Istanbul switch block (< 0 no fork, 0 = already on istanbul)
muir_glacier_block string Eip-2384 (bomb delay) switch block (< 0 no fork, 0 = already activated)
yolo_v2_block string YOLO v2: https://github.com/ethereum/EIPs/pull/2657 (Ephemeral testnet)
ewasm_block string EWASM switch block (< 0 no fork, 0 = already activated)

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.

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

State

State represents a single Storage key value pair item.

Field Type Label Description
key string
value string

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

Top

ethermint/evm/v1alpha1/genesis.proto

GenesisAccount

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.
chain_config ChainConfig chain_config defines the Ethereum chain configuration.
params Params params defines all the paramaters of the module.
txs_logs TransactionLogs repeated

Top

ethermint/evm/v1alpha1/query.proto

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 bytes code_hash is the 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.

QueryBlockBloomRequest

QueryBlockBloomRequest is the request type for the Query/BlockBloom RPC method.

QueryBlockBloomResponse

QueryBlockBloomResponse is the response type for the Query/BlockBloom RPC method.

Field Type Label Description
bloom bytes bloom represents bloom filter for the given block hash.

QueryBlockLogsRequest

QueryBlockLogsRequest is the request type for the Query/BlockLogs RPC method.

Field Type Label Description
hash string hash is the block hash to query the logs for.

QueryBlockLogsResponse

QueryTxLogs is the response type for the Query/BlockLogs RPC method.

Field Type Label Description
tx_logs TransactionLogs repeated logs represents the ethereum logs generated at the given block hash.

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.

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.

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.

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.

Query

Query defines the gRPC querier service.

Method Name Request Type Response Type Description HTTP Verb Endpoint
Account QueryAccountRequest QueryAccountResponse Account queries an Ethereum account. GET /ethermint/evm/v1alpha1/account/{address}
Balance QueryBalanceRequest QueryBalanceResponse Balance queries the balance of a the EVM denomination for a single EthAccount. GET /ethermint/evm/v1alpha1/balances/{address}
Storage QueryStorageRequest QueryStorageResponse Storage queries the balance of all coins for a single account. GET /ethermint/evm/v1alpha1/storage/{address}/{key}
Code QueryCodeRequest QueryCodeResponse Code queries the balance of all coins for a single account. GET /ethermint/evm/v1alpha1/codes/{address}
TxLogs QueryTxLogsRequest QueryTxLogsResponse TxLogs queries ethereum logs from a transaction. GET /ethermint/evm/v1alpha1/tx_logs/{hash}
BlockLogs QueryBlockLogsRequest QueryBlockLogsResponse BlockLogs queries all the ethereum logs for a given block hash. GET /ethermint/evm/v1alpha1/block_logs/{hash}
BlockBloom QueryBlockBloomRequest QueryBlockBloomResponse BlockBloom queries the block bloom filter bytes at a given height. GET /ethermint/evm/v1alpha1/block_bloom
Params QueryParamsRequest QueryParamsResponse Params queries the parameters of x/evm module. GET /ethermint/evm/v1alpha1/params

Top

ethermint/evm/v1alpha1/tx.proto

EIP155Signer

EIP155Transaction implements Signer using the EIP155 rules.

Field Type Label Description
chain_id bytes
chain_id_mul bytes

MsgEthereumTx

MsgEthereumTx encapsulates an Ethereum transaction as an SDK message.

Field Type Label Description
data TxData
size double caches
from SigCache

MsgEthereumTxResponse

MsgEthereumTxResponse defines the Msg/EthereumTx response type.

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.

Recipient

Recipient defines a protobuf-compatible wrapper for an Ethereum address pointer. It is required for RLP encoding.

Field Type Label Description
address string address defines the hex-formated ethereum address of the recipient

SigCache

SigCache is used to cache the derived sender and contains the signer used to derive it.

Field Type Label Description
signer EIP155Signer
address string

TxData

TxData implements the Ethereum transaction data structure. It is used solely as intended in Ethereum abiding by the protocol.

Field Type Label Description
nonce uint64 nonce corresponds to the account nonce (transaction sequence).
price string price defines the unsigned integer value of the gas price in bytes.
gas uint64 gas defines the gas limit defined for the transaction.
to Recipient
value string value defines the unsigned integer value of the transaction amount.
input 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
hash string hash defines the tx data hash, which is only used when marshaling to JSON.

Msg

Msg defines the evm Msg service.

Method Name Request Type Response Type Description HTTP Verb Endpoint
EthereumTx MsgEthereumTx MsgEthereumTxResponse EthereumTx defines a method submitting Ethereum transactions.

Top

ethermint/types/v1alpha1/account.proto

EthAccount

EthAccount implements the authtypes.AccountI interface and embeds an authtypes.BaseAccount type. It is compatible with the auth AccountKeeper.

Field Type Label Description
base_account cosmos.auth.v1beta1.BaseAccount
code_hash bytes

Scalar Value Types

.proto Type Notes C++ Java Python Go C# PHP Ruby
double double double float float64 double float Float
float float float float float32 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. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)