From 7aa0f5123ee115cf9e3262f51232f32ecea9cea9 Mon Sep 17 00:00:00 2001 From: Morty Date: Thu, 30 Oct 2025 04:00:09 +0800 Subject: [PATCH 1/3] fix: L1 message L1MessageKey::BlockNumber lookup edge case --- crates/database/db/src/operations.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crates/database/db/src/operations.rs b/crates/database/db/src/operations.rs index 8363a22f..7620195b 100644 --- a/crates/database/db/src/operations.rs +++ b/crates/database/db/src/operations.rs @@ -855,11 +855,13 @@ impl DatabaseReadOperations for T { .await? { // Yield n messages starting from the found queue index + 1. + // Only return messages that haven't been skipped (skipped = false). Ok(models::l1_message::Entity::find() .filter( // We add 1 to the queue index to constrain across block boundaries models::l1_message::Column::QueueIndex.gte(record.queue_index + 1), ) + .filter(models::l1_message::Column::Skipped.eq(false)) .order_by_asc(models::l1_message::Column::QueueIndex) .limit(Some(n as u64)) .all(self.get_connection()) From 21746e79680eb5eb06eb63c6048d112b7282cafb Mon Sep 17 00:00:00 2001 From: Morty Date: Sun, 2 Nov 2025 00:38:27 +0800 Subject: [PATCH 2/3] fix: purge_l1_message_to_l2_block_mappings purge skipped field --- crates/database/db/src/operations.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/database/db/src/operations.rs b/crates/database/db/src/operations.rs index 7620195b..354e15a2 100644 --- a/crates/database/db/src/operations.rs +++ b/crates/database/db/src/operations.rs @@ -543,6 +543,7 @@ impl DatabaseWriteOperations for T { models::l1_message::Entity::update_many() .col_expr(models::l1_message::Column::L2BlockNumber, Expr::value(None::)) + .col_expr(models::l1_message::Column::Skipped, Expr::value(false)) .filter(filter) .exec(self.get_connection()) .await?; From 1f8cea14517533768ddd2dd96e7bb9b8119e6250 Mon Sep 17 00:00:00 2001 From: Morty Date: Sun, 2 Nov 2025 00:39:11 +0800 Subject: [PATCH 3/3] Revert "fix: L1 message L1MessageKey::BlockNumber lookup edge case" This reverts commit 7aa0f5123ee115cf9e3262f51232f32ecea9cea9. --- crates/database/db/src/operations.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/crates/database/db/src/operations.rs b/crates/database/db/src/operations.rs index 354e15a2..c2ebe9eb 100644 --- a/crates/database/db/src/operations.rs +++ b/crates/database/db/src/operations.rs @@ -856,13 +856,11 @@ impl DatabaseReadOperations for T { .await? { // Yield n messages starting from the found queue index + 1. - // Only return messages that haven't been skipped (skipped = false). Ok(models::l1_message::Entity::find() .filter( // We add 1 to the queue index to constrain across block boundaries models::l1_message::Column::QueueIndex.gte(record.queue_index + 1), ) - .filter(models::l1_message::Column::Skipped.eq(false)) .order_by_asc(models::l1_message::Column::QueueIndex) .limit(Some(n as u64)) .all(self.get_connection())