diff --git a/crates/optimism/evm/src/execute.rs b/crates/optimism/evm/src/execute.rs index 77f6706685..10ac5c5250 100644 --- a/crates/optimism/evm/src/execute.rs +++ b/crates/optimism/evm/src/execute.rs @@ -14,7 +14,7 @@ use reth_evm::{ }, state_change::post_block_balance_increments, system_calls::{OnStateHook, SystemCaller}, - ConfigureEvm, ConfigureEvmEnv, + ConfigureEvm, }; use reth_optimism_chainspec::OpChainSpec; use reth_optimism_consensus::validate_block_post_execution; @@ -52,8 +52,13 @@ impl OpExecutionStrategyFactory { } } -impl BlockExecutionStrategyFactory for OpExecutionStrategyFactory { - type Strategy + Display>> = OpExecutionStrategy; +impl BlockExecutionStrategyFactory for OpExecutionStrategyFactory +where + EvmConfig: + Clone + Unpin + Sync + Send + 'static + ConfigureEvm
, +{ + type Strategy + Display>> = + OpExecutionStrategy; fn create_strategy(&self, db: DB) -> Self::Strategy where @@ -67,7 +72,10 @@ impl BlockExecutionStrategyFactory for OpExecutionStrategyFactory { /// Block execution strategy for Optimism. #[allow(missing_debug_implementations)] -pub struct OpExecutionStrategy { +pub struct OpExecutionStrategy +where + EvmConfig: Clone, +{ /// The chainspec chain_spec: Arc, /// How to create an EVM. @@ -78,19 +86,22 @@ pub struct OpExecutionStrategy { system_caller: SystemCaller, } -impl OpExecutionStrategy { +impl OpExecutionStrategy +where + EvmConfig: Clone, +{ /// Creates a new [`OpExecutionStrategy`] - pub fn new( - state: State, - chain_spec: Arc, - evm_config: OptimismEvmConfig, - ) -> Self { + pub fn new(state: State, chain_spec: Arc, evm_config: EvmConfig) -> Self { let system_caller = SystemCaller::new(evm_config.clone(), (*chain_spec).clone()); Self { state, chain_spec, evm_config, system_caller } } } -impl OpExecutionStrategy { +impl OpExecutionStrategy +where + DB: Database + Display>, + EvmConfig: ConfigureEvm
, +{ /// Configures a new evm configuration and block environment for the given block. /// /// Caution: this does not initialize the tx environment. @@ -103,9 +114,10 @@ impl OpExecutionStrategy { } } -impl BlockExecutionStrategy for OpExecutionStrategy +impl BlockExecutionStrategy for OpExecutionStrategy where DB: Database + Display>, + EvmConfig: ConfigureEvm
, { type Error = BlockExecutionError;