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§
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>>>>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".