Module helpers

Expand description

Behaviour needed to serve eth_ RPC requests, divided into general database reads and specific database access.

Traits with Load prefix, read atomic data from database, e.g. a block or transaction. Any database read done in more than one default Eth trait implementation, is defined in a Load trait.

Traits with Eth prefix, compose specific data needed to serve RPC requests in the eth namespace. They use Load traits as building blocks. EthTransactions also writes data (submits transactions). Based on the eth_ request method semantics, request methods are divided into: EthTransactions, EthBlocks, EthFees, EthState and EthCall. Default implementation of the Eth traits, is done w.r.t. L1.

EthApiServer, is implemented for any type that implements all the Eth traits, e.g. reth_rpc::EthApi.

Modules§

block
Database access for eth_ block RPC methods. Loads block and receipt data w.r.t. network.
blocking_task
Spawns a blocking task. CPU heavy tasks are executed with the rayon library. IO heavy tasks are executed on the tokio runtime.
call
Loads a pending block from database. Helper trait for eth_ transaction, call and trace RPC methods.
estimate
Estimate gas needed implementation
fee
Loads fee history from database. Helper trait for eth_ fee and transaction RPC methods.
pending_block
Loads a pending block from database. Helper trait for eth_ block, transaction, call and trace RPC methods.
receipt
Loads a receipt from database. Helper trait for eth_ block and transaction RPC methods, that loads receipt data w.r.t. network.
signer
An abstraction over ethereum signers.
spec
Loads chain metadata.
state
Loads a pending block from database. Helper trait for eth_ block, transaction, call and trace RPC methods.
trace
Loads a pending block from database. Helper trait for eth_ call and trace RPC methods.
transaction
Database access for eth_ transaction RPC methods. Loads transaction and receipt data w.r.t. network.

Traits§

AddDevSigners
Adds 20 random dev signers for access via the API. Used in dev mode.
Call
Executes code on state.
EthApiSpec
Eth API trait.
EthBlocks
Block related functions for the EthApiServer trait in the eth_ namespace.
EthCall
Execution related functions for the EthApiServer trait in the eth_ namespace.
EthFees
Fee related functions for the EthApiServer trait in the eth_ namespace.
EthSigner
An Ethereum Signer used via RPC.
EthState
Helper methods for eth_ methods relating to state (accounts).
EthTransactions
Transaction related functions for the EthApiServer trait in the eth_ namespace.
FullEthApi
Helper trait to unify all eth rpc server building block traits, for simplicity.
LoadBlock
Loads a block from database.
LoadFee
Loads fee from database.
LoadPendingBlock
Loads a pending block from database.
LoadReceipt
Assembles transaction receipt data w.r.t to network.
LoadState
Loads state from database.
LoadTransaction
Loads a transaction from database.
SpawnBlocking
Executes code on a blocking thread.
Trace
Executes CPU heavy tasks.
TraceExt
Extension trait that bundles traits needed for tracing transactions.