Skip to main content

IntoNestedEvm

Trait IntoNestedEvm 

Source
pub trait IntoNestedEvm<SPEC, BLOCK, TX> {
    type Inner: NestedEvm<Spec = SPEC, Block = BLOCK, Tx = TX>;

    // Required method
    fn into_nested_evm(self) -> Self::Inner;
}
Expand description

Trait for converting a Foundry EVM wrapper into its inner NestedEvm implementation.

Both EthFoundryEvm and TempoFoundryEvm wrap an inner revm EVM that implements NestedEvm. This trait provides a uniform way to unwrap them.

Required Associated Types§

Source

type Inner: NestedEvm<Spec = SPEC, Block = BLOCK, Tx = TX>

The inner type that implements NestedEvm.

Required Methods§

Source

fn into_nested_evm(self) -> Self::Inner

Consumes the wrapper, returning the inner revm EVM.

Implementors§

Source§

impl<'db, I: FoundryInspectorExt<EthEvmContext<&'db mut dyn DatabaseExt<EthEvmFactory>>>> IntoNestedEvm<SpecId, BlockEnv, TxEnv> for EthFoundryEvm<'db, I>

Source§

type Inner = Evm<Context<BlockEnv, TxEnv, CfgEnv, &'db mut dyn DatabaseExt<EthEvmFactory, Error = DatabaseError>>, I, EthInstructions<EthInterpreter, Context<BlockEnv, TxEnv, CfgEnv, &'db mut dyn DatabaseExt<EthEvmFactory, Error = DatabaseError>>>, PrecompilesMap, EthFrame>

Source§

impl<'db, I: FoundryInspectorExt<OpContext<&'db mut dyn DatabaseExt<OpEvmFactory>>>> IntoNestedEvm<OpSpecId, BlockEnv, OpTransaction<TxEnv>> for OpFoundryEvm<'db, I>

Source§

type Inner = OpEvm<Context<BlockEnv, OpTransaction<TxEnv>, CfgEnv<OpSpecId>, &'db mut dyn DatabaseExt<OpEvmFactory, Error = DatabaseError>, Journal<&'db mut dyn DatabaseExt<OpEvmFactory, Error = DatabaseError>>, L1BlockInfo>, I, EthInstructions<EthInterpreter, Context<BlockEnv, OpTransaction<TxEnv>, CfgEnv<OpSpecId>, &'db mut dyn DatabaseExt<OpEvmFactory, Error = DatabaseError>, Journal<&'db mut dyn DatabaseExt<OpEvmFactory, Error = DatabaseError>>, L1BlockInfo>>, PrecompilesMap>

Source§

impl<'db, I: FoundryInspectorExt<TempoContext<&'db mut dyn DatabaseExt<TempoEvmFactory>>>> IntoNestedEvm<TempoHardfork, TempoBlockEnv, TempoTxEnv> for TempoFoundryEvm<'db, I>

Source§

type Inner = TempoEvm<&'db mut dyn DatabaseExt<TempoEvmFactory, Error = DatabaseError>, I>