use super::HlEvmInner; use crate::evm::{spec::HlSpecId, transaction::HlTxTr}; use reth_revm::context::ContextTr; use revm::{ Context, Database, context::Cfg, context_interface::Block, handler::instructions::EthInstructions, interpreter::interpreter::EthInterpreter, }; /// Trait that allows for hl HlEvm to be built. pub trait HlBuilder: Sized { /// Type of the context. type Context: ContextTr; /// Build the hl with an inspector. fn build_hl_with_inspector( self, inspector: INSP, ) -> HlEvmInner>; } impl HlBuilder for Context where BLOCK: Block, TX: HlTxTr, CFG: Cfg, DB: Database, { type Context = Self; fn build_hl_with_inspector( self, inspector: INSP, ) -> HlEvmInner> { HlEvmInner::new(self, inspector) } }