Skip to content

Commit 6f282c4

Browse files
committed
handling null return in getL1message
1 parent 0b511d2 commit 6f282c4

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

crates/l2geth/src/rpc_client.rs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,10 +175,22 @@ impl<T: Provider<Network>> ChunkInterpreter for RpcClient<'_, T> {
175175
block_number: u64,
176176
) -> Result<Vec<TxL1Message>> {
177177
let block_number_hex = format!("0x{:x}", block_number);
178-
Ok(provider
178+
179+
#[derive(Deserialize, Debug)]
180+
#[serde(untagged)]
181+
enum NullOrVec {
182+
Null, // matches JSON `null`
183+
Vec(Vec<TxL1Message>), // matches JSON array
184+
}
185+
186+
Ok(match provider
179187
.client()
180-
.request::<_, Vec<TxL1Message>>("scroll_getL1MessagesInBlock", (block_number_hex, "synced"))
181-
.await?)
188+
.request::<_, NullOrVec>("scroll_getL1MessagesInBlock", (block_number_hex, "synced"))
189+
.await? {
190+
NullOrVec::Null => Vec::new(),
191+
NullOrVec::Vec(r) => r,
192+
}
193+
)
182194
}
183195

184196
tracing::debug!("fetch L1 msgs for {block_number}");

0 commit comments

Comments
 (0)