reth_evm/aliases.rs
1//! Helper aliases when working with [`ConfigureEvm`] and the traits in this crate.
2
3use crate::{execute::BlockExecutorFactory, ConfigureEvm};
4use alloy_consensus::transaction::Recovered;
5
6/// Helper to access the configured EVM factory state.
7pub type EvmFactoryFor<Evm> =
8 <<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory;
9
10/// Type alias for the configured EVM environment.
11pub type EvmEnvFor<Evm> =
12 <<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv;
13
14/// Type alias for the configured EVM instance.
15#[cfg(feature = "std")]
16pub type EvmFor<'a, Evm> =
17 <<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::Evm<'a>;
18
19/// Type alias for the configured runtime EVM type family.
20pub type EvmTypesFor<Evm> =
21 <<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmTypes;
22
23/// Type alias for the configured runtime specification identifier.
24pub type SpecFor<Evm> = <EvmTypesFor<Evm> as evm2::EvmTypesHost>::SpecId;
25
26/// Type alias for a configured EVM transaction result with detached state changes.
27pub type TxResultWithStateFor<Evm> = evm2::TxResultWithState<EvmTypesFor<Evm>>;
28
29/// Type alias for the configured transaction environment.
30pub type TxEnvFor<Evm> = Recovered<<EvmTypesFor<Evm> as evm2::EvmTypesHost>::Tx>;
31
32/// Helper to access the configured execution context.
33pub type ExecutionCtxFor<'a, Evm> =
34 <<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::ExecutionCtx<'a>;
35
36/// Helper to access the configured block executor.
37#[cfg(feature = "std")]
38pub type BlockExecutorFor<'a, Evm> =
39 <<Evm as ConfigureEvm>::BlockExecutorFactory as crate::execute::BlockExecutorFactory>::Executor<
40 'a,
41 >;
42
43/// Detached transaction result accepted by the configured block executor.
44#[cfg(feature = "std")]
45pub type TxExecutionResultFor<'a, Evm> =
46 <BlockExecutorFor<'a, Evm> as crate::BlockExecutor>::TransactionResultWithState;