diff --git a/Cargo.lock b/Cargo.lock
index c15f5a48..a397443a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2596,6 +2596,33 @@ dependencies = [
"thiserror 1.0.69",
]
+[[package]]
+name = "color-eyre"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5920befb47832a6d61ee3a3a846565cfa39b331331e68a3b1d1116630f2f26d"
+dependencies = [
+ "backtrace",
+ "color-spantrace",
+ "eyre",
+ "indenter",
+ "once_cell",
+ "owo-colors",
+ "tracing-error",
+]
+
+[[package]]
+name = "color-spantrace"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8b88ea9df13354b55bc7234ebcce36e6ef896aca2e42a15de9e10edce01b427"
+dependencies = [
+ "once_cell",
+ "owo-colors",
+ "tracing-core",
+ "tracing-error",
+]
+
[[package]]
name = "colorchoice"
version = "1.0.4"
@@ -6106,6 +6133,12 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+[[package]]
+name = "owo-colors"
+version = "4.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48dd4f4a2c8405440fd0462561f0e5806bd0f77e86f51c761481bdd4018b545e"
+
[[package]]
name = "p256"
version = "0.13.2"
@@ -10337,6 +10370,7 @@ dependencies = [
"alloy-provider",
"alloy-rpc-client",
"alloy-rpc-types-engine 1.0.24",
+ "alloy-rpc-types-eth",
"alloy-signer",
"alloy-signer-aws",
"alloy-signer-local",
@@ -10345,6 +10379,7 @@ dependencies = [
"aws-config",
"aws-sdk-kms",
"clap",
+ "color-eyre",
"eyre",
"futures",
"reqwest",
@@ -10392,6 +10427,7 @@ dependencies = [
"scroll-alloy-hardforks",
"scroll-alloy-network",
"scroll-alloy-provider",
+ "scroll-alloy-rpc-types",
"scroll-alloy-rpc-types-engine",
"scroll-db",
"scroll-derivation-pipeline",
@@ -12731,6 +12767,16 @@ dependencies = [
"valuable",
]
+[[package]]
+name = "tracing-error"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db"
+dependencies = [
+ "tracing",
+ "tracing-subscriber 0.3.19",
+]
+
[[package]]
name = "tracing-futures"
version = "0.2.5"
diff --git a/crates/database/db/src/operations.rs b/crates/database/db/src/operations.rs
index 1e1fbf56..55ccf0f5 100644
--- a/crates/database/db/src/operations.rs
+++ b/crates/database/db/src/operations.rs
@@ -586,7 +586,7 @@ pub trait DatabaseOperations: DatabaseConnectionProvider {
///
/// It can either be an index, which is the queue index of the first message to return, or a hash,
/// which is the hash of the first message to return.
-#[derive(Debug, Clone)]
+#[derive(Debug, Clone, PartialEq, Eq)]
pub enum L1MessageStart {
/// Start from the provided queue index.
Index(u64),
diff --git a/crates/derivation-pipeline/src/lib.rs b/crates/derivation-pipeline/src/lib.rs
index 6372ef04..0ebf6f59 100644
--- a/crates/derivation-pipeline/src/lib.rs
+++ b/crates/derivation-pipeline/src/lib.rs
@@ -24,8 +24,8 @@ use core::{
};
use futures::{FutureExt, Stream};
use rollup_node_primitives::{
- BatchCommitData, BatchInfo, ScrollPayloadAttributesWithBatchInfo, WithFinalizedBatchInfo,
- WithFinalizedBlockNumber,
+ BatchCommitData, BatchInfo, ScrollPayloadAttributesWithBatchInfo, WithBlockNumber,
+ WithFinalizedBatchInfo, WithFinalizedBlockNumber,
};
use rollup_node_providers::{BlockDataProvider, L1Provider};
use scroll_alloy_rpc_types_engine::{BlockDataHint, ScrollPayloadAttributes};
@@ -186,7 +186,7 @@ impl
Stream for DerivationPipeline
where
P: L1Provider + Clone + Unpin + Send + Sync + 'static,
{
- type Item = ScrollPayloadAttributesWithBatchInfo;
+ type Item = WithBlockNumber;
fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll