Skip to main content

ExecutionNode

Trait ExecutionNode 

Source
pub(crate) trait ExecutionNode {
    // Required methods
    fn header(&self, block_hash: B256) -> Result<TempoHeader>;
    fn state_by_block_hash(&self, block_hash: B256) -> Result<StateProviderBox>;
    fn evm_for_block(
        &self,
        db: State<StateProviderDatabase<StateProviderBox>>,
        header: &TempoHeader,
    ) -> Result<TempoEvm<State<StateProviderDatabase<StateProviderBox>>>>;
}
Expand description

Minimal execution-node interface needed to read validator config state.

Production code uses TempoFullNode. This trait exists so unit tests can use a mock that only provides a historical state provider and an EVM configured for the corresponding block, while still exercising the same validator config reader used in production.

Required Methods§

Source

fn header(&self, block_hash: B256) -> Result<TempoHeader>

Source

fn state_by_block_hash(&self, block_hash: B256) -> Result<StateProviderBox>

Source

fn evm_for_block( &self, db: State<StateProviderDatabase<StateProviderBox>>, header: &TempoHeader, ) -> Result<TempoEvm<State<StateProviderDatabase<StateProviderBox>>>>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl ExecutionNode for TempoFullNode

Source§

fn header(&self, block_hash: B256) -> Result<TempoHeader>

Source§

fn state_by_block_hash(&self, block_hash: B256) -> Result<StateProviderBox>

Source§

fn evm_for_block( &self, db: State<StateProviderDatabase<StateProviderBox>>, header: &TempoHeader, ) -> Result<TempoEvm<State<StateProviderDatabase<StateProviderBox>>>>

Source§

impl<N> ExecutionNode for &N
where N: ExecutionNode,

Source§

fn header(&self, block_hash: B256) -> Result<TempoHeader>

Source§

fn state_by_block_hash(&self, block_hash: B256) -> Result<StateProviderBox>

Source§

fn evm_for_block( &self, db: State<StateProviderDatabase<StateProviderBox>>, header: &TempoHeader, ) -> Result<TempoEvm<State<StateProviderDatabase<StateProviderBox>>>>

Implementors§