diff --git a/crates/engine/tree/Cargo.toml b/crates/engine/tree/Cargo.toml index 2f9e80723e..83b3b6330b 100644 --- a/crates/engine/tree/Cargo.toml +++ b/crates/engine/tree/Cargo.toml @@ -27,7 +27,7 @@ reth-primitives-traits = { workspace = true, features = ["rayon", "dashmap"] } reth-ethereum-primitives.workspace = true reth-provider.workspace = true reth-prune.workspace = true -reth-revm.workspace = true +reth-revm = { workspace = true, features = ["optional-balance-check"] } reth-stages-api.workspace = true reth-tasks.workspace = true reth-trie-parallel.workspace = true diff --git a/crates/engine/tree/src/tree/payload_processor/prewarm.rs b/crates/engine/tree/src/tree/payload_processor/prewarm.rs index dad00c57db..89f3ec83e0 100644 --- a/crates/engine/tree/src/tree/payload_processor/prewarm.rs +++ b/crates/engine/tree/src/tree/payload_processor/prewarm.rs @@ -490,6 +490,10 @@ where // doesn't match what's on chain. evm_env.cfg_env.disable_nonce_check = true; + // disable the balance check so that transactions from senders who were funded by earlier + // transactions in the block can still be prewarmed + evm_env.cfg_env.disable_balance_check = true; + // create a new executor and disable nonce checks in the env let spec_id = *evm_env.spec_id(); let mut evm = evm_config.evm_with_env(state_provider, evm_env);