From 89b6ad24069fa5679a441b500c5111118b30f20e Mon Sep 17 00:00:00 2001 From: Dan Cline <6798349+Rjected@users.noreply.github.com> Date: Mon, 23 Sep 2024 15:08:49 -0400 Subject: [PATCH] fix: increment post block balances in invalid block hook (#11139) --- crates/engine/invalid-block-hooks/src/witness.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/crates/engine/invalid-block-hooks/src/witness.rs b/crates/engine/invalid-block-hooks/src/witness.rs index 9d6f861281ef..7a9c6e0f96d9 100644 --- a/crates/engine/invalid-block-hooks/src/witness.rs +++ b/crates/engine/invalid-block-hooks/src/witness.rs @@ -16,6 +16,7 @@ use reth_revm::{ database::StateProviderDatabase, db::states::bundle_state::BundleRetention, primitives::{BlockEnv, CfgEnvWithHandlerCfg, EnvWithHandlerCfg}, + state_change::post_block_balance_increments, DatabaseCommit, StateBuilder, }; use reth_rpc_api::DebugApiClient; @@ -114,6 +115,17 @@ where drop(evm); + // use U256::MAX here for difficulty, because fetching it is annoying + // NOTE: This is not mut because we are not doing the DAO irregular state change here + let balance_increments = post_block_balance_increments( + self.provider.chain_spec().as_ref(), + &block.block.clone().unseal(), + U256::MAX, + ); + + // increment balances + db.increment_balances(balance_increments)?; + // Merge all state transitions db.merge_transitions(BundleRetention::Reverts);