From 01b44448cb9f06a30185ab541d8fd10b563a28a3 Mon Sep 17 00:00:00 2001 From: Dan Cline <6798349+Rjected@users.noreply.github.com> Date: Thu, 23 Mar 2023 17:43:47 -0400 Subject: [PATCH] fix: always return withdrawals post shanghai (#1945) --- crates/storage/provider/src/providers/mod.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/crates/storage/provider/src/providers/mod.rs b/crates/storage/provider/src/providers/mod.rs index fdec66c96b..e34d2456a0 100644 --- a/crates/storage/provider/src/providers/mod.rs +++ b/crates/storage/provider/src/providers/mod.rs @@ -322,10 +322,14 @@ impl WithdrawalsProvider for ShareableDatabase { fn withdrawals_by_block(&self, id: BlockId, timestamp: u64) -> Result>> { if self.chain_spec.fork(Hardfork::Shanghai).active_at_timestamp(timestamp) { if let Some(number) = self.block_number_for_id(id)? { - return Ok(self - .db - .view(|tx| tx.get::(number))?? - .map(|w| w.withdrawals)) + // If we are past shanghai, then all blocks should have a withdrawal list, even if + // empty + return Ok(Some( + self.db + .view(|tx| tx.get::(number))?? + .map(|w| w.withdrawals) + .unwrap_or_default(), + )) } } Ok(None)