diff --git a/bins/revme/src/cmd/evmrunner.rs b/bins/revme/src/cmd/evmrunner.rs index 8f1d6affbf..ce1c67a903 100644 --- a/bins/revme/src/cmd/evmrunner.rs +++ b/bins/revme/src/cmd/evmrunner.rs @@ -5,7 +5,7 @@ use revm::{ bytecode::{Bytecode, BytecodeDecodeError}, handler::EthHandler, primitives::{address, hex, Address, TxKind}, - Context, Database, MainEvm, + Context, Database, EvmExec, MainEvm, }; use std::io::Error as IoError; use std::path::PathBuf; @@ -108,7 +108,7 @@ impl Cmd { inspector_handler(), ); - evm.transact().map_err(|_| Errors::EVMError)? + evm.exec().map_err(|_| Errors::EVMError)? } else { let out = evm.transact().map_err(|_| Errors::EVMError)?; println!("Result: {:#?}", out.result); diff --git a/crates/context/interface/src/journaled_state.rs b/crates/context/interface/src/journaled_state.rs index ce805dac76..69dd4eb742 100644 --- a/crates/context/interface/src/journaled_state.rs +++ b/crates/context/interface/src/journaled_state.rs @@ -1,9 +1,9 @@ -use auto_impl::auto_impl; use core::ops::{Deref, DerefMut}; -use database_interface::Database; +use database_interface::{Database, DatabaseGetter}; use primitives::{Address, B256, U256}; use specification::hardfork::SpecId; use state::{Account, Bytecode}; +use std::boxed::Box; pub trait JournaledState { type Database: Database; @@ -240,9 +240,24 @@ impl Eip7702CodeLoad { pub type JournalStateGetterDBError = <<::Journal as JournaledState>::Database as Database>::Error; -#[auto_impl(&mut, Box)] -pub trait JournalStateGetter { - type Journal: JournaledState; +pub trait JournalStateGetter: DatabaseGetter { + type Journal: JournaledState::Database>; fn journal(&mut self) -> &mut Self::Journal; } + +impl JournalStateGetter for &mut T { + type Journal = T::Journal; + + fn journal(&mut self) -> &mut Self::Journal { + T::journal(*self) + } +} + +impl JournalStateGetter for Box { + type Journal = T::Journal; + + fn journal(&mut self) -> &mut Self::Journal { + T::journal(self.as_mut()) + } +} diff --git a/crates/context/src/context.rs b/crates/context/src/context.rs index 3d8647b32e..cbcc7d7792 100644 --- a/crates/context/src/context.rs +++ b/crates/context/src/context.rs @@ -62,6 +62,7 @@ impl Context where BLOCK: Block,