diff --git a/crates/optimism/src/api/exec.rs b/crates/optimism/src/api/exec.rs index 47b4d7e207..35e8664a4c 100644 --- a/crates/optimism/src/api/exec.rs +++ b/crates/optimism/src/api/exec.rs @@ -9,18 +9,21 @@ use revm::{ result::{EVMError, ExecutionResult, ResultAndState}, Block, Cfg, ContextTr, Database, Journal, }, - handler::{handler::EvmTr, instructions::EthInstructions, EthFrame, Handler}, - interpreter::interpreter::EthInterpreter, + handler::{ + handler::EvmTr, instructions::EthInstructions, EthFrame, Handler, PrecompileProvider, + }, + interpreter::{interpreter::EthInterpreter, InterpreterResult}, state::EvmState, Context, DatabaseCommit, ExecuteCommitEvm, ExecuteEvm, }; use std::vec::Vec; -impl ExecuteEvm +impl ExecuteEvm for OpEvm< Context, INSP, EthInstructions>, + PRECOMPILE, > where BLOCK: Block, @@ -28,6 +31,10 @@ where CFG: Cfg, DB: Database, JOURNAL: Journal)>, + PRECOMPILE: PrecompileProvider< + Context = Context, + Output = InterpreterResult, + >, { type Output = Result, EVMError<::Error, OpTransactionError>>; @@ -38,11 +45,12 @@ where } } -impl ExecuteCommitEvm +impl ExecuteCommitEvm for OpEvm< Context, INSP, EthInstructions>, + PRECOMPILE, > where BLOCK: Block, @@ -50,6 +58,10 @@ where CFG: Cfg, DB: Database + DatabaseCommit, JOURNAL: Journal)> + JournalExt, + PRECOMPILE: PrecompileProvider< + Context = Context, + Output = InterpreterResult, + >, { type CommitOutput = Result< ExecutionResult, @@ -64,11 +76,12 @@ where } } -impl InspectEvm +impl InspectEvm for OpEvm< Context, INSP, EthInstructions>, + PRECOMPILE, > where BLOCK: Block, @@ -77,6 +90,10 @@ where DB: Database, JOURNAL: Journal)> + JournalExt, INSP: Inspector, EthInterpreter>, + PRECOMPILE: PrecompileProvider< + Context = Context, + Output = InterpreterResult, + >, { type Inspector = INSP; @@ -90,11 +107,12 @@ where } } -impl InspectCommitEvm +impl InspectCommitEvm for OpEvm< Context, INSP, EthInstructions>, + PRECOMPILE, > where BLOCK: Block, @@ -103,6 +121,10 @@ where DB: Database + DatabaseCommit, JOURNAL: Journal)> + JournalExt, INSP: Inspector, EthInterpreter>, + PRECOMPILE: PrecompileProvider< + Context = Context, + Output = InterpreterResult, + >, { fn inspect_commit_previous(&mut self) -> Self::CommitOutput { self.inspect_previous().map(|r| {