diff --git a/crates/rpc/rpc-eth-api/src/helpers/block.rs b/crates/rpc/rpc-eth-api/src/helpers/block.rs index 300118548d..a43da37dfc 100644 --- a/crates/rpc/rpc-eth-api/src/helpers/block.rs +++ b/crates/rpc/rpc-eth-api/src/helpers/block.rs @@ -74,8 +74,12 @@ pub trait EthBlocks: LoadBlock impl Future, Self::Error>> + Send { async move { - // If no pending block from provider, build the pending block locally. if block_id.is_pending() { + if self.pending_block_kind().is_none() { + return Ok(None); + } + + // If no pending block from provider, build the pending block locally. if let Some(pending) = self.local_pending_block().await? { return Ok(Some(pending.block.body().transaction_count())); } @@ -180,6 +184,10 @@ pub trait EthBlocks: LoadBlock + Send { async move { if block_id.is_pending() { + if self.pending_block_kind().is_none() { + return Ok(None); + } + // Pending block can be fetched directly without need for caching if let Some(pending_block) = self.provider().pending_block().map_err(Self::Error::from_eth_err)?