From a6f3abf483f0f77201eb292b28044656d4b4b782 Mon Sep 17 00:00:00 2001 From: stevencartavia <112043913+stevencartavia@users.noreply.github.com> Date: Tue, 3 Mar 2026 23:42:39 -0600 Subject: [PATCH] perf(rpc): use pending_block_and_receipts (#22760) --- crates/rpc/rpc-eth-api/src/helpers/pending_block.rs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/crates/rpc/rpc-eth-api/src/helpers/pending_block.rs b/crates/rpc/rpc-eth-api/src/helpers/pending_block.rs index dc6222f9df..a000183216 100644 --- a/crates/rpc/rpc-eth-api/src/helpers/pending_block.rs +++ b/crates/rpc/rpc-eth-api/src/helpers/pending_block.rs @@ -23,7 +23,7 @@ use reth_rpc_eth_types::{ PendingBlockEnv, PendingBlockEnvOrigin, }; use reth_storage_api::{ - noop::NoopProvider, BlockReader, BlockReaderIdExt, ProviderHeader, ProviderTx, ReceiptProvider, + noop::NoopProvider, BlockReader, BlockReaderIdExt, ProviderHeader, ProviderTx, StateProviderBox, StateProviderFactory, }; use reth_transaction_pool::{ @@ -62,11 +62,8 @@ pub trait LoadPendingBlock: /// /// If no pending block is available, this will derive it from the `latest` block fn pending_block_env_and_cfg(&self) -> Result, Self::Error> { - if let Some(block) = self.provider().pending_block().map_err(Self::Error::from_eth_err)? && - let Some(receipts) = self - .provider() - .receipts_by_block(block.hash().into()) - .map_err(Self::Error::from_eth_err)? + if let Some((block, receipts)) = + self.provider().pending_block_and_receipts().map_err(Self::Error::from_eth_err)? { // Note: for the PENDING block we assume it is past the known merge block and // thus this will not fail when looking up the total