diff --git a/chain-events/src/block_events.rs b/chain-events/src/block_events.rs index fc57f140..a2044765 100644 --- a/chain-events/src/block_events.rs +++ b/chain-events/src/block_events.rs @@ -153,6 +153,16 @@ impl BlockEvents { .number .expect("last block always has a number; qed"); + vlog::info!( + "Filtering logs from {} to {}", + from_block + .into() + .as_number() + .expect("always starting from a numbered block; qed") + .as_u64(), + latest_block.as_u64(), + ); + let past_filter = Filter::new() .from_block(from_block) .to_block(latest_block) diff --git a/finalizer/src/lib.rs b/finalizer/src/lib.rs index 930535cc..672ba057 100644 --- a/finalizer/src/lib.rs +++ b/finalizer/src/lib.rs @@ -280,10 +280,12 @@ where // * erc20 has denied a tx for some internal reasons. async fn process_unsuccessful(&mut self) -> Result<()> { if self.unsuccessful.is_empty() { + vlog::debug!("no unsuccessful withdrawals"); return Ok(()); } let predicted = std::mem::take(&mut self.unsuccessful); + vlog::debug!("requesting finalization status of withdrawals"); let are_finalized = self.get_finalized_withdrawals(&predicted).await?; let mut already_finalized = vec![]; @@ -299,10 +301,20 @@ where } } + vlog::debug!( + "setting unsuccessful finalization attempts to {} withdrawals", + unsuccessful.len() + ); + // Either finalization tx has failed for these, or they were // predicted to fail. storage::inc_unsuccessful_finalization_attempts(&self.pgpool, &unsuccessful).await?; + vlog::debug!( + "setting already finalized status to {} withdrawals", + already_finalized.len() + ); + // if the withdrawal has already been finalized set its // finalization transaction to zero which is signals exactly this // it is known that withdrawal has been fianlized but not known diff --git a/storage/.sqlx/query-3b26a07ba90200fcfa45b0107f5a9a1d125792b6d9ded054112f170e69c93c88.json b/storage/.sqlx/query-9eaf47ff3b4f8057721a4fdab239bfb400571510d661a3feb7b9fd3eaed94ef6.json similarity index 78% rename from storage/.sqlx/query-3b26a07ba90200fcfa45b0107f5a9a1d125792b6d9ded054112f170e69c93c88.json rename to storage/.sqlx/query-9eaf47ff3b4f8057721a4fdab239bfb400571510d661a3feb7b9fd3eaed94ef6.json index 2b489fc5..4b0a84fc 100644 --- a/storage/.sqlx/query-3b26a07ba90200fcfa45b0107f5a9a1d125792b6d9ded054112f170e69c93c88.json +++ b/storage/.sqlx/query-9eaf47ff3b4f8057721a4fdab239bfb400571510d661a3feb7b9fd3eaed94ef6.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n WITH max_committed AS (\n SELECT\n max(l2_block_number)\n FROM\n l2_blocks\n WHERE\n commit_l1_block_number IS NOT NULL\n ),\n max_seen AS (\n SELECT\n max(withdrawal_id)\n FROM\n finalization_data\n )\n SELECT\n tx_hash,\n event_index_in_tx,\n id,\n l2_block_number\n FROM\n withdrawals,\n max_committed,\n max_seen\n WHERE\n id >= coalesce(max_seen.max, 1)\n AND l2_block_number <= max_committed.max\n ORDER BY\n l2_block_number\n LIMIT\n $1\n ", + "query": "\n WITH max_committed AS (\n SELECT\n max(l2_block_number)\n FROM\n l2_blocks\n WHERE\n commit_l1_block_number IS NOT NULL\n ),\n max_seen AS (\n SELECT\n max(withdrawal_id)\n FROM\n finalization_data\n )\n SELECT\n tx_hash,\n event_index_in_tx,\n id,\n l2_block_number\n FROM\n withdrawals,\n max_committed,\n max_seen\n WHERE\n id > coalesce(max_seen.max, 1)\n AND l2_block_number <= max_committed.max\n ORDER BY\n l2_block_number\n LIMIT\n $1\n ", "describe": { "columns": [ { @@ -36,5 +36,5 @@ false ] }, - "hash": "3b26a07ba90200fcfa45b0107f5a9a1d125792b6d9ded054112f170e69c93c88" + "hash": "9eaf47ff3b4f8057721a4fdab239bfb400571510d661a3feb7b9fd3eaed94ef6" } diff --git a/storage/src/lib.rs b/storage/src/lib.rs index 212fec65..384ad43f 100644 --- a/storage/src/lib.rs +++ b/storage/src/lib.rs @@ -658,7 +658,7 @@ pub async fn get_withdrawals_with_no_data( max_committed, max_seen WHERE - id >= coalesce(max_seen.max, 1) + id > coalesce(max_seen.max, 1) AND l2_block_number <= max_committed.max ORDER BY l2_block_number