From 65720c9fc12139f7fdff30d86f3471c74227e9c0 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Tue, 30 Jul 2024 18:00:33 +0200 Subject: [PATCH] fix: ensure we can handle pending target for feeHistory (#9904) --- crates/rpc/rpc-eth-api/src/helpers/fee.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/crates/rpc/rpc-eth-api/src/helpers/fee.rs b/crates/rpc/rpc-eth-api/src/helpers/fee.rs index 290833eeca..bbd397134c 100644 --- a/crates/rpc/rpc-eth-api/src/helpers/fee.rs +++ b/crates/rpc/rpc-eth-api/src/helpers/fee.rs @@ -50,7 +50,7 @@ pub trait EthFees: LoadFee { fn fee_history( &self, mut block_count: u64, - newest_block: BlockNumberOrTag, + mut newest_block: BlockNumberOrTag, reward_percentiles: Option>, ) -> impl Future> + Send { async move { @@ -74,6 +74,13 @@ pub trait EthFees: LoadFee { block_count = max_fee_history } + if newest_block.is_pending() { + // cap the target block since we don't have fee history for the pending block + newest_block = BlockNumberOrTag::Latest; + // account for missing pending block + block_count = block_count.saturating_sub(1); + } + let Some(end_block) = LoadFee::provider(self) .block_number_for_id(newest_block.into()) .map_err(Self::Error::from_eth_err)?