Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions crates/cheatcodes/src/evm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use crate::{
Error, Result, Vm::*, inspector::RecordDebugStepInfo,
};
use alloy_consensus::TxEnvelope;
use alloy_evm::FromRecoveredTx;
use alloy_evm::{EvmEnv, FromRecoveredTx};
use alloy_genesis::{Genesis, GenesisAccount};
use alloy_network::eip2718::EIP4844_TX_TYPE_ID;
use alloy_primitives::{
Expand Down Expand Up @@ -1425,9 +1425,10 @@ pub(super) fn get_nonce<CTX: ContextTr<Db: DatabaseExt>>(
fn inner_snapshot_state<CTX: FoundryContextExt<Journal: FoundryJournalExt>>(
ccx: &mut CheatsCtxt<'_, CTX>,
) -> Result {
let (evm_env, tx_env) = Env::clone_evm_and_tx(ccx.ecx);
let evm_env =
EvmEnv { cfg_env: ccx.ecx.cfg_mut().clone(), block_env: ccx.ecx.block_mut().clone() };
let (db, inner) = ccx.ecx.journal_mut().as_db_and_inner();
let id = db.snapshot_state(inner, &evm_env, &tx_env);
let id = db.snapshot_state(inner, &evm_env);
Ok(id.abi_encode())
}

Expand Down
3 changes: 1 addition & 2 deletions crates/evm/core/src/backend/cow.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,8 @@ impl DatabaseExt for CowBackend<'_> {
&mut self,
journaled_state: &JournaledState,
evm_env: &EvmEnv,
tx_env: &TxEnv,
) -> U256 {
self.backend_mut(evm_env, tx_env).snapshot_state(journaled_state, evm_env, tx_env)
self.backend.to_mut().snapshot_state(journaled_state, evm_env)
}

fn revert_state(
Expand Down
6 changes: 1 addition & 5 deletions crates/evm/core/src/backend/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ pub trait DatabaseExt: Database<Error = DatabaseError> + DatabaseCommit + Debug
&mut self,
journaled_state: &JournaledState,
evm_env: &EvmEnv,
tx_env: &TxEnv,
) -> U256;

/// Reverts the snapshot if it exists
Expand Down Expand Up @@ -969,14 +968,12 @@ impl DatabaseExt for Backend {
&mut self,
journaled_state: &JournaledState,
evm_env: &EvmEnv,
tx_env: &TxEnv,
) -> U256 {
trace!("create snapshot");
let id = self.inner.state_snapshots.insert(BackendStateSnapshot::new(
self.create_db_snapshot(),
journaled_state.clone(),
evm_env.clone(),
tx_env.clone(),
));
trace!(target: "backend", "Created new snapshot {}", id);
id
Expand Down Expand Up @@ -1010,8 +1007,7 @@ impl DatabaseExt for Backend {

// merge additional logs
snapshot.merge(current_state);
let BackendStateSnapshot { db, mut journaled_state, snap_evm_env, snap_tx_env: _ } =
snapshot;
let BackendStateSnapshot { db, mut journaled_state, snap_evm_env } = snapshot;
match db {
BackendDatabaseSnapshot::InMemory(mem_db) => {
self.mem_db = mem_db;
Expand Down
8 changes: 3 additions & 5 deletions crates/evm/core/src/backend/snapshot.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use alloy_primitives::{
B256, U256,
map::{AddressHashMap, HashMap},
};
use revm::{context::TxEnv, state::AccountInfo};
use revm::state::AccountInfo;
use serde::{Deserialize, Serialize};

/// A minimal abstraction of a state at a certain point in time
Expand All @@ -23,14 +23,12 @@ pub struct BackendStateSnapshot<T> {
pub journaled_state: JournaledState,
/// Contains the evm env at the time of the snapshot
pub snap_evm_env: EvmEnv,
/// Contains the tx env at the time of the snapshot
pub snap_tx_env: TxEnv,
}

impl<T> BackendStateSnapshot<T> {
/// Takes a new state snapshot.
pub fn new(db: T, journaled_state: JournaledState, evm_env: EvmEnv, tx_env: TxEnv) -> Self {
Self { db, journaled_state, snap_evm_env: evm_env, snap_tx_env: tx_env }
pub fn new(db: T, journaled_state: JournaledState, evm_env: EvmEnv) -> Self {
Self { db, journaled_state, snap_evm_env: evm_env }
}

/// Called when this state snapshot is reverted.
Expand Down
Loading