diff --git a/crates/revm/src/evm.rs b/crates/revm/src/evm.rs index 984baeb5ba..0076b9ef31 100644 --- a/crates/revm/src/evm.rs +++ b/crates/revm/src/evm.rs @@ -432,6 +432,8 @@ impl Evm<'_, EXT, DB> { )); }; + let token_address = token_info.token_address; + let ctx: &Context = &self.context; let Some(rlp_bytes) = &ctx.evm.inner.env.tx.morph.rlp_bytes else { return Err(EVMError::Custom( @@ -484,6 +486,16 @@ impl Evm<'_, EXT, DB> { } caller_account.mark_touch(); + let mut token_account = ctx + .evm + .inner + .journaled_state + .load_account(token_address, &mut ctx.evm.inner.db)?; + token_account.mark_cold(); + token_account.data.storage.iter_mut().for_each(|(_, slot)| { + slot.mark_cold(); + }); + Ok(()) }