ConfigureEngineEvm

Trait ConfigureEngineEvm 

pub trait ConfigureEngineEvm<ExecutionData>: ConfigureEvm {
    // Required methods
    fn evm_env_for_payload(
        &self,
        payload: &ExecutionData,
    ) -> EvmEnv<<<Self::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::Spec>;
    fn context_for_payload<'a>(
        &self,
        payload: &'a ExecutionData,
    ) -> <Self::BlockExecutorFactory as BlockExecutorFactory>::ExecutionCtx<'a>;
    fn tx_iterator_for_payload(
        &self,
        payload: &ExecutionData,
    ) -> impl ExecutableTxIterator<Self>;
}
Available on crate feature evm only.
Expand description

ConfigureEvm extension providing methods for executing payloads.

Required Methods§

fn evm_env_for_payload( &self, payload: &ExecutionData, ) -> EvmEnv<<<Self::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::Spec>

Returns an EvmEnvFor for the given payload.

fn context_for_payload<'a>( &self, payload: &'a ExecutionData, ) -> <Self::BlockExecutorFactory as BlockExecutorFactory>::ExecutionCtx<'a>

Returns an ExecutionCtxFor for the given payload.

fn tx_iterator_for_payload( &self, payload: &ExecutionData, ) -> impl ExecutableTxIterator<Self>

Returns an ExecutableTxIterator for the given payload.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

§

impl ConfigureEngineEvm<ExecutionData> for MockEvmConfig

§

impl<ChainSpec, EvmF> ConfigureEngineEvm<ExecutionData> for EthEvmConfig<ChainSpec, EvmF>
where ChainSpec: EthChainSpec<Header = Header> + Hardforks + 'static + EthExecutorSpec, EvmF: EvmFactory<Spec = SpecId, Precompiles = PrecompilesMap> + Clone + Debug + Send + Sync + Unpin + 'static, <EvmF as EvmFactory>::Tx: TransactionEnv + FromRecoveredTx<EthereumTxEnvelope<TxEip4844>> + FromTxWithEncoded<EthereumTxEnvelope<TxEip4844>>,