diff --git a/bin/withdrawal-finalizer/src/main.rs b/bin/withdrawal-finalizer/src/main.rs index e39429fb..780f8bb6 100644 --- a/bin/withdrawal-finalizer/src/main.rs +++ b/bin/withdrawal-finalizer/src/main.rs @@ -269,7 +269,7 @@ async fn main() -> Result<()> { we_tx_wrapped, )); - let watcher_handle = tokio::spawn(watcher.run(blocks_rx, we_rx, from_l2_block)); + let watcher_handle = tokio::spawn(watcher.run(blocks_rx, we_rx, from_l2_block, sl_chain_id)); let block_events_handle = tokio::spawn(event_mux.run_with_reconnects( config.diamond_proxy_addr, diff --git a/chain-events/src/block_events.rs b/chain-events/src/block_events.rs index f48dfccb..9e22e6a7 100644 --- a/chain-events/src/block_events.rs +++ b/chain-events/src/block_events.rs @@ -156,7 +156,7 @@ impl BlockEvents { let past_filter = Filter::new() .from_block(from_block) - .to_block(latest_block) + .to_block(latest_block - 1) .address(diamond_proxy_addr) .topic0(vec![ BlockCommitFilter::signature(), diff --git a/watcher/src/lib.rs b/watcher/src/lib.rs index 61462031..51034c8d 100644 --- a/watcher/src/lib.rs +++ b/watcher/src/lib.rs @@ -60,6 +60,7 @@ where block_events: BE, withdrawal_events: WE, from_l2_block: u64, + sl_chain_id: u32, ) -> Result<()> where BE: Stream + Send + 'static, @@ -90,6 +91,7 @@ where pgpool.clone(), block_events, l2_provider, + sl_chain_id, )); let l2_loop_handler = tokio::spawn(async move { run_l2_events_loop( @@ -346,7 +348,12 @@ async fn process_withdrawals_in_block( Ok(()) } -async fn run_l1_events_loop(pool: PgPool, be: BE, l2_middleware: M2) -> Result<()> +async fn run_l1_events_loop( + pool: PgPool, + be: BE, + l2_middleware: M2, + chain_id: u32, +) -> Result<()> where BE: Stream, M2: ZksyncMiddleware, @@ -357,7 +364,6 @@ where let mut batch_begin = Instant::now(); let batch_backoff = Duration::from_secs(5); let batch_size = 1024; - let chain_id = l2_middleware.get_chain_id().await?; while let Some(event) = be.next().await { tracing::debug!("block event {event}"); block_event_batch.push(event);