From 830ac90cfe0fc08172c5a761a1c85092ef4bbef5 Mon Sep 17 00:00:00 2001 From: Thomas Coratger Date: Thu, 27 Jun 2024 19:42:15 +0200 Subject: [PATCH 1/5] refactor: reduce number of args for post_block_balance_increments --- crates/ethereum/evm/src/execute.rs | 16 +++------------- crates/optimism/evm/src/execute.rs | 12 ++---------- crates/revm/src/state_change.rs | 24 +++++++++--------------- 3 files changed, 14 insertions(+), 38 deletions(-) diff --git a/crates/ethereum/evm/src/execute.rs b/crates/ethereum/evm/src/execute.rs index e4c89dd778dd..4d0656689f3d 100644 --- a/crates/ethereum/evm/src/execute.rs +++ b/crates/ethereum/evm/src/execute.rs @@ -16,9 +16,7 @@ use reth_evm::{ ConfigureEvm, }; use reth_execution_types::ExecutionOutcome; -use reth_primitives::{ - BlockNumber, BlockWithSenders, Hardfork, Header, Receipt, Request, Withdrawals, U256, -}; +use reth_primitives::{BlockNumber, BlockWithSenders, Hardfork, Header, Receipt, Request, U256}; use reth_prune_types::PruneModes; use reth_revm::{ batch::{BlockBatchRecord, BlockExecutorStats}, @@ -330,16 +328,8 @@ where block: &BlockWithSenders, total_difficulty: U256, ) -> Result<(), BlockExecutionError> { - let mut balance_increments = post_block_balance_increments( - self.chain_spec(), - block.number, - block.difficulty, - block.beneficiary, - block.timestamp, - total_difficulty, - &block.ommers, - block.withdrawals.as_ref().map(Withdrawals::as_ref), - ); + let mut balance_increments = + post_block_balance_increments(self.chain_spec(), block, total_difficulty); // Irregular state change at Ethereum DAO hardfork if self.chain_spec().fork(Hardfork::Dao).transitions_at_block(block.number) { diff --git a/crates/optimism/evm/src/execute.rs b/crates/optimism/evm/src/execute.rs index 12edb225fe43..695d272be1a5 100644 --- a/crates/optimism/evm/src/execute.rs +++ b/crates/optimism/evm/src/execute.rs @@ -324,16 +324,8 @@ where block: &BlockWithSenders, total_difficulty: U256, ) -> Result<(), BlockExecutionError> { - let balance_increments = post_block_balance_increments( - self.chain_spec(), - block.number, - block.difficulty, - block.beneficiary, - block.timestamp, - total_difficulty, - &block.ommers, - block.withdrawals.as_ref().map(Withdrawals::as_ref), - ); + let balance_increments = + post_block_balance_increments(self.chain_spec(), block, total_difficulty); // increment balances self.state .increment_balances(balance_increments) diff --git a/crates/revm/src/state_change.rs b/crates/revm/src/state_change.rs index 4505d2ee9761..3d2aed0249a1 100644 --- a/crates/revm/src/state_change.rs +++ b/crates/revm/src/state_change.rs @@ -11,7 +11,7 @@ use reth_primitives::{ fill_tx_env_with_beacon_root_contract_call, fill_tx_env_with_withdrawal_requests_contract_call, }, - Address, Header, Request, Withdrawal, B256, U256, + Address, BlockWithSenders, Request, Withdrawal, Withdrawals, B256, U256, }; use reth_storage_errors::provider::ProviderError; use revm::{ @@ -36,40 +36,34 @@ use std::collections::HashMap; /// /// Balance changes might include the block reward, uncle rewards, withdrawals, or irregular /// state changes (DAO fork). -#[allow(clippy::too_many_arguments)] #[inline] pub fn post_block_balance_increments( chain_spec: &ChainSpec, - block_number: u64, - block_difficulty: U256, - beneficiary: Address, - block_timestamp: u64, + block: &BlockWithSenders, total_difficulty: U256, - ommers: &[Header], - withdrawals: Option<&[Withdrawal]>, ) -> HashMap { let mut balance_increments = HashMap::new(); // Add block rewards if they are enabled. if let Some(base_block_reward) = - calc::base_block_reward(chain_spec, block_number, block_difficulty, total_difficulty) + calc::base_block_reward(chain_spec, block.number, block.difficulty, total_difficulty) { // Ommer rewards - for ommer in ommers { + for ommer in &block.ommers { *balance_increments.entry(ommer.beneficiary).or_default() += - calc::ommer_reward(base_block_reward, block_number, ommer.number); + calc::ommer_reward(base_block_reward, block.number, ommer.number); } // Full block reward - *balance_increments.entry(beneficiary).or_default() += - calc::block_reward(base_block_reward, ommers.len()); + *balance_increments.entry(block.beneficiary).or_default() += + calc::block_reward(base_block_reward, block.ommers.len()); } // process withdrawals insert_post_block_withdrawals_balance_increments( chain_spec, - block_timestamp, - withdrawals, + block.timestamp, + block.withdrawals.as_ref().map(Withdrawals::as_ref), &mut balance_increments, ); From 362063b249e31db840bda187a7670f8670092da8 Mon Sep 17 00:00:00 2001 From: Thomas Coratger Date: Thu, 27 Jun 2024 19:45:23 +0200 Subject: [PATCH 2/5] fix fmt --- crates/optimism/evm/src/execute.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/crates/optimism/evm/src/execute.rs b/crates/optimism/evm/src/execute.rs index 695d272be1a5..0b0d9eedb195 100644 --- a/crates/optimism/evm/src/execute.rs +++ b/crates/optimism/evm/src/execute.rs @@ -11,9 +11,7 @@ use reth_evm::{ }; use reth_execution_types::ExecutionOutcome; use reth_optimism_consensus::validate_block_post_execution; -use reth_primitives::{ - BlockNumber, BlockWithSenders, Header, Receipt, Receipts, TxType, Withdrawals, U256, -}; +use reth_primitives::{BlockNumber, BlockWithSenders, Header, Receipt, Receipts, TxType, U256}; use reth_prune_types::PruneModes; use reth_revm::{ batch::{BlockBatchRecord, BlockExecutorStats}, From 1db4157b29b01b9f8ecb769b45a7ffc1237747a1 Mon Sep 17 00:00:00 2001 From: Thomas Coratger Date: Thu, 27 Jun 2024 20:09:15 +0200 Subject: [PATCH 3/5] fmt --- crates/ethereum/evm/src/execute.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/ethereum/evm/src/execute.rs b/crates/ethereum/evm/src/execute.rs index 1ff8065c09de..76ec292396df 100644 --- a/crates/ethereum/evm/src/execute.rs +++ b/crates/ethereum/evm/src/execute.rs @@ -15,7 +15,7 @@ use reth_evm::{ }; use reth_execution_types::ExecutionOutcome; use reth_primitives::{ - BlockNumber, BlockWithSenders, EthereumHardfork, Header, Receipt, Request, Withdrawals, U256, + BlockNumber, BlockWithSenders, EthereumHardfork, Header, Receipt, Request, U256, }; use reth_prune_types::PruneModes; use reth_revm::{ From 25711ca4c5cbc1086083a095d835815f1856f12f Mon Sep 17 00:00:00 2001 From: Thomas Coratger Date: Thu, 27 Jun 2024 23:07:34 +0200 Subject: [PATCH 4/5] from BlockWithSenders to Block --- crates/revm/src/state_change.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/revm/src/state_change.rs b/crates/revm/src/state_change.rs index 5894fa1ee50f..8771869e2d57 100644 --- a/crates/revm/src/state_change.rs +++ b/crates/revm/src/state_change.rs @@ -11,7 +11,7 @@ use reth_primitives::{ fill_tx_env_with_beacon_root_contract_call, fill_tx_env_with_withdrawal_requests_contract_call, }, - Address, BlockWithSenders, Request, Withdrawal, Withdrawals, B256, U256, + Address, Block, Request, Withdrawal, Withdrawals, B256, U256, }; use reth_storage_errors::provider::ProviderError; use revm::{ @@ -39,7 +39,7 @@ use std::collections::HashMap; #[inline] pub fn post_block_balance_increments( chain_spec: &ChainSpec, - block: &BlockWithSenders, + block: &Block, total_difficulty: U256, ) -> HashMap { let mut balance_increments = HashMap::new(); From b8c1e7b4f5bea86d07699ccb08e16d5fc33ef6e9 Mon Sep 17 00:00:00 2001 From: Thomas Coratger Date: Thu, 27 Jun 2024 23:09:16 +0200 Subject: [PATCH 5/5] fmt --- crates/revm/src/state_change.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/revm/src/state_change.rs b/crates/revm/src/state_change.rs index 8771869e2d57..5fad6ae42563 100644 --- a/crates/revm/src/state_change.rs +++ b/crates/revm/src/state_change.rs @@ -11,7 +11,7 @@ use reth_primitives::{ fill_tx_env_with_beacon_root_contract_call, fill_tx_env_with_withdrawal_requests_contract_call, }, - Address, Block, Request, Withdrawal, Withdrawals, B256, U256, + Address, Block, Request, Withdrawal, Withdrawals, B256, U256, }; use reth_storage_errors::provider::ProviderError; use revm::{