From 283d426cb31cf06dce76152d3be69bd75b46b79c Mon Sep 17 00:00:00 2001 From: Morty Date: Tue, 26 Aug 2025 14:50:45 +0800 Subject: [PATCH 01/10] feat: support multiple blob provider --- crates/node/src/args.rs | 2 +- crates/providers/src/l1/blob/mod.rs | 169 +++++++++++++++++++++++----- 2 files changed, 142 insertions(+), 29 deletions(-) diff --git a/crates/node/src/args.rs b/crates/node/src/args.rs index f239eb81..8375051d 100644 --- a/crates/node/src/args.rs +++ b/crates/node/src/args.rs @@ -268,7 +268,7 @@ impl ScrollRollupNodeConfig { let blob_provider = self .beacon_provider_args .blob_source - .provider(self.beacon_provider_args.url) + .provider(self.beacon_provider_args) .await .expect("failed to construct L1 blob provider"); let l1_provider = FullL1Provider::new(blob_provider, l1_messages_provider.clone()).await; diff --git a/crates/providers/src/l1/blob/mod.rs b/crates/providers/src/l1/blob/mod.rs index 2cb19f65..9493eadb 100644 --- a/crates/providers/src/l1/blob/mod.rs +++ b/crates/providers/src/l1/blob/mod.rs @@ -12,12 +12,12 @@ pub use mock::MockBeaconProvider; mod s3; pub use s3::S3BlobProvider; + use crate::L1ProviderError; -use std::sync::Arc; +use std::sync::{Arc, atomic::{AtomicUsize, Ordering}}; use alloy_eips::eip4844::Blob; use alloy_primitives::B256; -use eyre::OptionExt; /// An instance of the trait can be used to fetch L1 blob data. #[async_trait::async_trait] #[auto_impl::auto_impl(Arc, &)] @@ -31,37 +31,119 @@ pub trait BlobProvider: Sync + Send { } /// The blob source for the beacon provider. -#[derive(Debug, clap::ValueEnum, Default, Clone)] -pub enum BlobSource { +#[derive(Debug, Clone)] +pub struct BlobSource { /// Beacon client blob source. - #[default] - Beacon, - /// Mocked source. - Mock, - /// AWS S3 blob source. - S3, + pub beacon: Option, + /// AWS S3 blob source. + pub s3: Option, /// Anvil sequencer blob source. - Anvil, + pub anvil: Option, + /// Mocked source. + pub mock: bool, } impl BlobSource { - /// Returns an [`Arc`] for the provided URL. - pub async fn provider(&self, url: Option) -> eyre::Result> { - Ok(match self { - Self::Beacon => Arc::new( - BeaconClientProvider::new_http( - url.ok_or_eyre("missing url for consensus client provider")?, - ) - .await, - ), - Self::Mock => Arc::new(MockBeaconProvider::default()), - Self::S3 => Arc::new(S3BlobProvider::new_http( - url.ok_or_eyre("missing url for s3 blob provider")?, - )), - Self::Anvil => Arc::new(AnvilBlobProvider::new_http( - url.ok_or_eyre("missing url for anvil blob provider")?, - )), - }) + /// Returns an [`BlobProviders`]. + pub async fn provider(&self) -> eyre::Result { + if self.mock { + return Ok(BlobProviders::new(None, vec![Arc::new(MockBeaconProvider::default()) as Arc])); + } + + let mut beacon_provider = None; + if let Some(beacon) = &self.beacon { + beacon_provider = Some(Arc::new(BeaconClientProvider::new_http(beacon.clone()).await) as Arc); + } + + let mut backup_providers: Vec> = vec![]; + if let Some(s3) = &self.s3 { + backup_providers.push(Arc::new(S3BlobProvider::new_http(s3.clone())) as Arc); + } + if let Some(anvil) = &self.anvil { + backup_providers.push(Arc::new(AnvilBlobProvider::new_http(anvil.clone())) as Arc); + } + + if beacon_provider.is_none() && backup_providers.is_empty() { + return Err(eyre::eyre!("No blob providers available")); + } + + Ok(BlobProviders::new(beacon_provider, backup_providers)) + } +} + +/// A blob provider that implements round-robin load balancing across multiple providers. +pub struct BlobProviders { + /// beacon provider + beacon_provider: Option>, + /// The list of underlying blob providers. + backup_providers: Vec>, + /// Atomic counter for round-robin selection. + counter: AtomicUsize, +} + +impl std::fmt::Debug for BlobProviders { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("BlobProviders") + .field("has_beacon_provider", &self.beacon_provider.is_some()) + .field("backup_providers_count", &self.backup_providers.len()) + .field("counter", &self.counter.load(Ordering::Relaxed)) + .finish() + } +} + +impl BlobProviders { + /// Creates a new round-robin blob provider. + pub fn new(beacon_provider: Option>, backup_providers: Vec>) -> Self { + Self { + beacon_provider, + backup_providers, + counter: AtomicUsize::new(0), + } + } +} + +#[async_trait::async_trait] +impl BlobProvider for BlobProviders { + async fn blob( + &self, + block_timestamp: u64, + hash: B256, + ) -> Result>, L1ProviderError> { + // Always try the beacon provider first + if let Some(beacon_provider) = &self.beacon_provider { + match beacon_provider.blob(block_timestamp, hash).await { + Ok(blob) => return Ok(blob), + Err(_err) => { + tracing::warn!("Beacon provider failed, trying backup providers, hash: {:?}, block_timestamp: {:?}", hash, block_timestamp); + } + } + } + + // Try each provider in round-robin order, starting from the next provider + let start_index = self.counter.load(Ordering::Relaxed) % self.backup_providers.len(); + + for i in 0..self.backup_providers.len() { + let provider_index = (start_index + i) % self.backup_providers.len(); + let provider = &self.backup_providers[provider_index]; + + match provider.blob(block_timestamp, hash).await { + Ok(blob) => { + // Update counter to start from this provider next time if we found the blob + if blob.is_some() { + self.counter.store(provider_index + 1, Ordering::Relaxed); + } + return Ok(blob); + } + Err(_err) => { + // Continue to next provider on error + continue; + } + } + } + + // All providers failed + tracing::warn!("All beacon providers failed to fetch blob, hash: {:?}, block_timestamp: {:?}", hash, block_timestamp); + Err(L1ProviderError::Other("All blob providers failed")) } } @@ -89,4 +171,35 @@ mod tests { assert!(blob.is_some()); } + + #[tokio::test] + async fn test_blob_providers() { + let source = BlobSource { + beacon: None, + s3: None, + anvil: None, + mock: true, + }; + + let provider = source.provider().await.unwrap(); + let result = provider.blob(0, B256::ZERO).await.unwrap(); + assert!(result.is_none()); // MockBeaconProvider returns None + } + + #[tokio::test] + async fn test_blob_providers_with_backup() { + let providers = BlobProviders::new( + None, + vec![ + Arc::new(MockBeaconProvider::default()) as Arc, + Arc::new(MockBeaconProvider::default()) as Arc, + ] + ); + + // Test multiple calls to ensure round-robin behavior + for _ in 0..5 { + let result = providers.blob(0, B256::ZERO).await.unwrap(); + assert!(result.is_none()); + } + } } From 3984ce9bc35b0c34b074656964bb3fbccc7b3309 Mon Sep 17 00:00:00 2001 From: Morty Date: Mon, 8 Sep 2025 13:31:07 +0800 Subject: [PATCH 02/10] feat: support config multiple blob providers --- Cargo.lock | 1963 ++++++++++++++------------- crates/node/src/args.rs | 49 +- crates/node/src/test_utils.rs | 11 +- crates/node/tests/e2e.rs | 18 +- crates/node/tests/sync.rs | 20 +- crates/providers/Cargo.toml | 1 + crates/providers/src/l1/blob/mod.rs | 186 ++- crates/providers/src/lib.rs | 4 +- crates/sequencer/src/lib.rs | 9 +- crates/sequencer/tests/e2e.rs | 12 +- 10 files changed, 1211 insertions(+), 1062 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5872d2dd..353ec075 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -114,9 +114,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.2.6" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4195a29a4b87137b2bb02105e746102873bc03561805cf45c0e510c961f160e6" +checksum = "ef8ff73a143281cb77c32006b04af9c047a6b8fe5860e85a88ad325328965355" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -146,20 +146,20 @@ dependencies = [ "once_cell", "rand 0.8.5", "serde", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "alloy-consensus" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda689f7287f15bd3582daba6be8d1545bad3740fd1fb778f629a1fe866bb43b" +checksum = "d213580c17d239ae83c0d897ac3315db7cda83d2d4936a9823cc3517552f2e24" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.0.24", - "alloy-trie 0.9.0", + "alloy-serde 1.0.30", + "alloy-trie 0.9.1", "alloy-tx-macros", "arbitrary", "auto_impl", @@ -172,29 +172,29 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "alloy-consensus-any" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b5659581e41e8fe350ecc3593cb5c9dcffddfd550896390f2b78a07af67b0fa" +checksum = "81443e3b8dccfeac7cd511aced15928c97ff253f4177acbb97de97178e543f6c" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "arbitrary", "serde", ] [[package]] name = "alloy-dyn-abi" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9e8a436f0aad7df8bb47f144095fba61202265d9f5f09a70b0e3227881a668e" +checksum = "a3f56873f3cac7a2c63d8e98a4314b8311aa96adb1a0f82ae923eb2119809d2c" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -219,7 +219,7 @@ dependencies = [ "crc", "rand 0.8.5", "serde", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] @@ -248,7 +248,7 @@ dependencies = [ "rand 0.8.5", "serde", "serde_with", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] @@ -273,16 +273,16 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f35887da30b5fc50267109a3c61cd63e6ca1f45967983641053a40ee83468c1" +checksum = "2a15b4b0f6bab47aae017d52bb5a739bda381553c09fb9918b7172721ef5f5de" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "arbitrary", "auto_impl", "c-kzg", @@ -291,7 +291,9 @@ dependencies = [ "ethereum_ssz", "ethereum_ssz_derive", "serde", + "serde_with", "sha2 0.10.9", + "thiserror 2.0.16", ] [[package]] @@ -300,8 +302,8 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2211ccd0f05e2fea4f767242957f5e8cfb08b127ea2e6a3c0d9e5b10e6bf67d9" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-hardforks", "alloy-primitives", "alloy-rpc-types-eth", @@ -311,19 +313,19 @@ dependencies = [ "op-alloy-consensus", "op-revm", "revm", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "alloy-genesis" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d4009efea6f403b3a80531f9c6f70fc242399498ff71196a1688cc1c901f44" +checksum = "33ba1cbc25a07e0142e8875fcbe80e1fdb02be8160ae186b90f4b9a69a72ed2b" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", - "alloy-serde 1.0.24", - "alloy-trie 0.9.0", + "alloy-serde 1.0.30", + "alloy-trie 0.9.1", "serde", "serde_with", ] @@ -344,9 +346,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "459f98c6843f208856f338bfb25e65325467f7aff35dfeb0484d0a76e059134b" +checksum = "125a1c373261b252e53e04d6e92c37d881833afc1315fceab53fd46045695640" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -356,34 +358,34 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "883dee3b4020fcb5667ee627b4f401e899dad82bf37b246620339dd980720ed9" +checksum = "f8882ec8e4542cfd02aadc6dccbe90caa73038f60016d936734eb6ced53d2167" dependencies = [ "alloy-primitives", "alloy-sol-types", "http 1.3.1", "serde", "serde_json", - "thiserror 2.0.14", + "thiserror 2.0.16", "tracing", ] [[package]] name = "alloy-network" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd6e5b8ac1654a05c224390008e43634a2bdc74e181e02cf8ed591d8b3d4ad08" +checksum = "51d6d87d588bda509881a7a66ae77c86514bd1193ac30fbff0e0f24db95eb5a5" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-consensus-any", - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-json-rpc", "alloy-network-primitives", "alloy-primitives", "alloy-rpc-types-any", "alloy-rpc-types-eth", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "alloy-signer", "alloy-sol-types", "async-trait", @@ -392,39 +394,38 @@ dependencies = [ "futures-utils-wasm", "serde", "serde_json", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "alloy-network-primitives" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d7980333dd9391719756ac28bc2afa9baa705fc70ffd11dc86ab078dd64477" +checksum = "5b14fa9ba5774e0b30ae6a04176d998211d516c8af69c9c530af7c6c42a8c508" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "serde", ] [[package]] name = "alloy-primitives" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cfebde8c581a5d37b678d0a48a32decb51efd7a63a08ce2517ddec26db705c8" +checksum = "bc9485c56de23438127a731a6b4c87803d49faf1a7068dcd1d8768aca3a9edb9" dependencies = [ "alloy-rlp", "arbitrary", "bytes", "cfg-if", "const-hex", - "derive_arbitrary", "derive_more", "foldhash", "getrandom 0.3.3", "hashbrown 0.15.5", - "indexmap 2.10.0", + "indexmap 2.11.0", "itoa", "k256", "keccak-asm", @@ -441,13 +442,13 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478a42fe167057b7b919cd8b0c2844f0247f667473340dad100eaf969de5754e" +checksum = "475a5141313c3665b75d818be97d5fa3eb5e0abb7e832e9767edd94746db28e3" dependencies = [ "alloy-chains", - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-json-rpc", "alloy-network", "alloy-network-primitives", @@ -474,7 +475,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", "url", @@ -483,9 +484,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0a99b17987f40a066b29b6b56d75e84cd193b866cac27cae17b59f40338de95" +checksum = "f97c18795ce1ce8151c5539ce1e4200940389674173f677c7455f79bfb00e5df" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -522,14 +523,14 @@ checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "alloy-rpc-client" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0c6d723fbdf4a87454e2e3a275e161be27edcfbf46e2e3255dd66c138634b6" +checksum = "25289674cd8c58fcca2568b5350423cb0dd7bca8c596c5e2869bfe4c5c57ed14" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -553,22 +554,22 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41492dac39365b86a954de86c47ec23dcc7452cdb2fde591caadc194b3e34c6" +checksum = "39676beaa50db545cf15447fc94ec5513b64e85a48357a0625b9a04aef08a910" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "alloy-rpc-types-eth", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "serde", ] [[package]] name = "alloy-rpc-types-admin" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c0f415ad97cc68d2f49eb08214f45c6827a6932a69773594f4ce178f8a41dc0" +checksum = "65acc9264342069decb617aa344847f55180ba3aeab1c8d1db062d0619881029" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -578,25 +579,25 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10493fa300a2757d8134f584800fef545c15905c95122bed1f6dde0b0d9dae27" +checksum = "a9c8cad42fa936000be72ab80fcd97386a6a226c35c2989212756da9e76c1521" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "serde", ] [[package]] name = "alloy-rpc-types-any" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f7eb22670a972ad6c222a6c6dac3eef905579acffe9d63ab42be24c7d158535" +checksum = "01bac57c987c93773787619e20f89167db74d460a2d1d40f591d94fb7c22c379" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", ] [[package]] @@ -610,36 +611,38 @@ dependencies = [ "alloy-rpc-types-engine 0.14.0", "serde", "serde_with", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "alloy-rpc-types-beacon" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53381ffba0110a8aed4c9f108ef34a382ed21aeefb5f50f91c73451ae68b89aa" +checksum = "8d3c0e6cc87a8be5582d08f929f96db25843f44cb636a0985a4a6bf02609c02f" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "ethereum_ssz", "ethereum_ssz_derive", "serde", + "serde_json", "serde_with", - "thiserror 2.0.14", + "thiserror 2.0.16", "tree_hash", "tree_hash_derive", ] [[package]] name = "alloy-rpc-types-debug" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9b6f0482c82310366ec3dcf4e5212242f256a69fcf1a26e5017e6704091ee95" +checksum = "c2fe118e6c152d54cb4549b9835fb87d38b12754bb121375183ee3ec84bd0849" dependencies = [ "alloy-primitives", "derive_more", "serde", + "serde_with", ] [[package]] @@ -661,15 +664,15 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e24c171377c0684e3860385f6d93fbfcc8ecc74f6cce8304c822bf1a50bacce0" +checksum = "72a41624eb84bc743e414198bf10eb48b611a5554d6a9fd6205f7384d57dfd7f" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "arbitrary", "derive_more", "ethereum_ssz", @@ -682,64 +685,64 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b777b98526bbe5b7892ca22a7fd5f18ed624ff664a79f40d0f9f2bf94ba79a84" +checksum = "1cd1e1b4dcdf13eaa96343e5c0dafc2d2e8ce5d20b90347169d46a1df0dec210" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-consensus-any", - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-network-primitives", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "alloy-sol-types", "arbitrary", "itertools 0.14.0", "serde", "serde_json", "serde_with", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "alloy-rpc-types-mev" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c15e8ccb6c16e196fcc968e16a71cd8ce4160f3ec5871d2ea196b75bf569ac02" +checksum = "01620baa48d3f49fc908c781eb91ded71f3226e719bb6404697c2851cac4e098" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "serde", "serde_json", ] [[package]] name = "alloy-rpc-types-trace" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6a854af3fe8fce1cfe319fcf84ee8ba8cda352b14d3dd4221405b5fc6cce9e1" +checksum = "1bc33d9d0e0b3cfe9c2e82a1a427c9ed516fcfebe764f0adf7ceb8107f702dd1" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "serde", "serde_json", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "alloy-rpc-types-txpool" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cc803e9b8d16154c856a738c376e002abe4b388e5fef91c8aebc8373e99fd45" +checksum = "d4fa9e9b3e613425d2a2ee1a322bdad5f1cedf835406fd4b59538822500b44bc" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "serde", ] @@ -767,9 +770,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee8d2c52adebf3e6494976c8542fbdf12f10123b26e11ad56f77274c16a2a039" +checksum = "f1b3b1078b8775077525bc9fe9f6577e815ceaecd6c412a4f3b4d8aa2836e8f6" dependencies = [ "alloy-primitives", "arbitrary", @@ -779,9 +782,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c0494d1e0f802716480aabbe25549c7f6bc2a25ff33b08fd332bbb4b7d06894" +checksum = "10ab1b8d4649bf7d0db8ab04e31658a6cc20364d920795484d886c35bed3bab4" dependencies = [ "alloy-primitives", "async-trait", @@ -789,34 +792,35 @@ dependencies = [ "either", "elliptic-curve", "k256", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "alloy-signer-aws" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0559495d87c099f7dbd0804145032e6a16ee675d1d2a15e98dc2658d64265cde" +checksum = "a46118173eb381b2911202a83dc4f39267027b0fe7d3533449f5e4ebc0eadcab" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-network", "alloy-primitives", "alloy-signer", "async-trait", + "aws-config", "aws-sdk-kms", "k256", "spki", - "thiserror 2.0.14", + "thiserror 2.0.16", "tracing", ] [[package]] name = "alloy-signer-local" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59c2435eb8979a020763ced3fb478932071c56e5f75ea86db41f320915d325ba" +checksum = "7bdeec36c8d9823102b571b3eab8b323e053dc19c12da14a9687bd474129bf2a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-network", "alloy-primitives", "alloy-signer", @@ -825,46 +829,47 @@ dependencies = [ "coins-bip39", "k256", "rand 0.8.5", - "thiserror 2.0.14", + "thiserror 2.0.16", + "zeroize", ] [[package]] name = "alloy-sol-macro" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedac07a10d4c2027817a43cc1f038313fc53c7ac866f7363239971fd01f9f18" +checksum = "d20d867dcf42019d4779519a1ceb55eba8d7f3d0e4f0a89bcba82b8f9eb01e48" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f9a598f010f048d8b8226492b6401104f5a5c1273c2869b72af29b48bb4ba9" +checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.10.0", + "indexmap 2.11.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f494adf9d60e49aa6ce26dfd42c7417aa6d4343cf2ae621f20e4d92a5ad07d85" +checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" dependencies = [ "const-hex", "dunce", @@ -872,15 +877,15 @@ dependencies = [ "macro-string", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52db32fbd35a9c0c0e538b58b81ebbae08a51be029e7ad60e08b60481c2ec6c3" +checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" dependencies = [ "serde", "winnow", @@ -888,9 +893,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a285b46e3e0c177887028278f04cc8262b76fd3b8e0e20e93cea0a58c35f5ac5" +checksum = "f5383d34ea00079e6dd89c652bcbdb764db160cef84e6250926961a0b2295d04" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -900,9 +905,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c0107675e10c7f248bf7273c1e7fdb02409a717269cc744012e6f3c39959bfb" +checksum = "dce5129146a76ca6139a19832c75ad408857a56bcd18cd2c684183b8eacd78d8" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -914,7 +919,7 @@ dependencies = [ "parking_lot 0.12.4", "serde", "serde_json", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tower", "tracing", @@ -924,15 +929,15 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78e3736701b5433afd06eecff08f0688a71a10e0e1352e0bbf0bed72f0dd4e35" +checksum = "e2379d998f46d422ec8ef2b61603bc28cda931e5e267aea1ebe71f62da61d101" dependencies = [ "alloy-json-rpc", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "alloy-transport", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-tls", "hyper-util", "jsonwebtoken", @@ -945,9 +950,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c79064b5a08259581cb5614580010007c2df6deab1e8f3e8c7af8d7e9227008f" +checksum = "041aa5db2e907692a9a93a0a908057665c03e59364e1fbbeed613511a0159289" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -965,9 +970,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77fd607158cb9bc54cbcfcaab4c5f36c5b26994c7dc58b6f095ce27a54f270f3" +checksum = "c6d44395e6793566e9c89bd82297cc4b0566655c1e78a1d69362640814784cc6" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -999,9 +1004,9 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bada1fc392a33665de0dc50d401a3701b62583c655e3522a323490a5da016962" +checksum = "e3412d52bb97c6c6cc27ccc28d4e6e8cf605469101193b50b0bd5813b1f990b5" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -1009,7 +1014,7 @@ dependencies = [ "arrayvec", "derive_arbitrary", "derive_more", - "nybbles 0.4.2", + "nybbles 0.4.3", "proptest", "proptest-derive", "serde", @@ -1019,15 +1024,15 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6acb36318dfa50817154064fea7932adf2eec3f51c86680e2b37d7e8906c66bb" +checksum = "3b5becb9c269a7d05a2f28d549f86df5a5dbc923e2667eff84fdecac8cda534c" dependencies = [ "alloy-primitives", - "darling", + "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1118,14 +1123,14 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "arbitrary" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" dependencies = [ "derive_arbitrary", ] @@ -1260,7 +1265,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1298,7 +1303,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1387,7 +1392,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1443,18 +1448,15 @@ checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "async-compression" -version = "0.4.27" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddb939d66e4ae03cee6091612804ba446b12878410cfa17f785f4dd67d4014e8" +checksum = "977eb15ea9efd848bb8a4a1a2500347ed7f0bf794edf0dc3ddcf439f43d36b23" dependencies = [ - "brotli", - "flate2", + "compression-codecs", + "compression-core", "futures-core", - "memchr", "pin-project-lite", "tokio", - "zstd", - "zstd-safe", ] [[package]] @@ -1476,18 +1478,18 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1534,7 +1536,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1545,9 +1547,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-config" -version = "1.8.4" +version = "1.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483020b893cdef3d89637e428d588650c71cfae7ea2e6ecbaee4de4ff99fb2dd" +checksum = "8bc1b40fb26027769f16960d2f4a6bc20c4bb755d403e552c8c1a73af433c246" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1575,9 +1577,9 @@ dependencies = [ [[package]] name = "aws-credential-types" -version = "1.2.5" +version = "1.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1541072f81945fa1251f8795ef6c92c4282d74d59f88498ae7d4bf00f0ebdad9" +checksum = "d025db5d9f52cbc413b167136afb3d8aeea708c0d8884783cf6253be5e22f6f2" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", @@ -1634,9 +1636,9 @@ dependencies = [ [[package]] name = "aws-sdk-kms" -version = "1.82.0" +version = "1.86.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5296e1ff23bcb95f58a8250e2d00525daf23888ed2021c05bdfdbf79e1531784" +checksum = "15e7ef7189e532a6d7654befd668b535d31f261c61342397da47ccfa3fb0505a" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1656,9 +1658,9 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "1.79.0" +version = "1.83.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a847168f15b46329fa32c7aca4e4f1a2e072f9b422f0adb19756f2e1457f111" +checksum = "643cd43af212d2a1c4dedff6f044d7e1961e5d9e7cfe773d70f31d9842413886" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1678,9 +1680,9 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "1.80.0" +version = "1.84.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b654dd24d65568738593e8239aef279a86a15374ec926ae8714e2d7245f34149" +checksum = "20ec4a95bd48e0db7a424356a161f8d87bd6a4f0af37204775f0da03d9e39fc3" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1700,9 +1702,9 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "1.81.0" +version = "1.85.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92ea8a7602321c83615c82b408820ad54280fb026e92de0eeea937342fafa24" +checksum = "410309ad0df4606bc721aff0d89c3407682845453247213a0ccc5ff8801ee107" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1776,9 +1778,9 @@ dependencies = [ [[package]] name = "aws-smithy-http-client" -version = "1.0.6" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f108f1ca850f3feef3009bdcc977be201bca9a91058864d9de0684e64514bee0" +checksum = "147e8eea63a40315d704b97bf9bc9b8c1402ae94f89d5ad6f7550d963309da1b" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", @@ -1789,7 +1791,7 @@ dependencies = [ "http 1.3.1", "http-body 0.4.6", "hyper 0.14.32", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-rustls 0.24.2", "hyper-rustls 0.27.7", "hyper-util", @@ -1799,15 +1801,16 @@ dependencies = [ "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", + "tokio-rustls 0.26.2", "tower", "tracing", ] [[package]] name = "aws-smithy-json" -version = "0.61.4" +version = "0.61.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a16e040799d29c17412943bdbf488fd75db04112d0c0d4b9290bacf5ae0014b9" +checksum = "eaa31b350998e703e9826b2104dd6f63be0508666e1aba88137af060e8944047" dependencies = [ "aws-smithy-types", ] @@ -1833,9 +1836,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.8.6" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e107ce0783019dbff59b3a244aa0c114e4a8c9d93498af9162608cd5474e796" +checksum = "d3946acbe1ead1301ba6862e712c7903ca9bb230bdf1fbd1b5ac54158ef2ab1f" dependencies = [ "aws-smithy-async", "aws-smithy-http", @@ -1857,9 +1860,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" -version = "1.8.7" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75d52251ed4b9776a3e8487b2a01ac915f73b2da3af8fc1e77e0fce697a550d4" +checksum = "07f5e0fc8a6b3f2303f331b94504bbf754d85488f402d6f1dd7a6080f99afe56" dependencies = [ "aws-smithy-async", "aws-smithy-types", @@ -2033,7 +2036,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "cexpr", "clang-sys", "itertools 0.12.1", @@ -2046,7 +2049,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.104", + "syn 2.0.106", "which", ] @@ -2056,7 +2059,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "cexpr", "clang-sys", "itertools 0.13.0", @@ -2065,7 +2068,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2107,9 +2110,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" dependencies = [ "serde", ] @@ -2199,7 +2202,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2213,9 +2216,9 @@ dependencies = [ [[package]] name = "brotli" -version = "8.0.1" +version = "8.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9991eea70ea4f293524138648e41ee89b0b2b12ddef3b255effa43c8056e0e0d" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -2331,9 +2334,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.11" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d07aa9a93b00c76f71bc35d598bed923f6d4f3a9ca5c24b7737ae1a292841c0" +checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5" dependencies = [ "serde", ] @@ -2371,7 +2374,7 @@ dependencies = [ "semver 1.0.26", "serde", "serde_json", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] @@ -2423,9 +2426,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "cfg_aliases" @@ -2445,7 +2448,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -2498,9 +2501,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.45" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" +checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" dependencies = [ "clap_builder", "clap_derive", @@ -2508,9 +2511,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.44" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" +checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" dependencies = [ "anstream", "anstyle", @@ -2520,14 +2523,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.45" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6" +checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2641,11 +2644,11 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.1.4" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a65ebfec4fb190b6f90e944a817d60499ee0744e582530e2c9900a22e591d9a" +checksum = "3f8e18d0dca9578507f13f9803add0df13362b02c501c1c17734f0dbb52eaf0b" dependencies = [ - "crossterm", + "crossterm 0.29.0", "unicode-segmentation", "unicode-width 0.2.0", ] @@ -2664,6 +2667,26 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "compression-codecs" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "485abf41ac0c8047c07c87c72c8fb3eb5197f6e9d7ded615dfd1a00ae00a0f64" +dependencies = [ + "brotli", + "compression-core", + "flate2", + "memchr", + "zstd", + "zstd-safe", +] + +[[package]] +name = "compression-core" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" + [[package]] name = "concat-kdf" version = "0.1.0" @@ -2697,9 +2720,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.14.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e22e0ed40b96a48d3db274f72fd365bd78f67af39b6bbd47e8a15e1c6207ff" +checksum = "dccd746bf9b1038c0507b7cec21eb2b11222db96a2902c96e8c185d6d20fb9c4" dependencies = [ "cfg-if", "cpufeatures", @@ -2906,7 +2929,7 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "crossterm_winapi", "mio", "parking_lot 0.12.4", @@ -2916,6 +2939,20 @@ dependencies = [ "winapi", ] +[[package]] +name = "crossterm" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" +dependencies = [ + "bitflags 2.9.4", + "crossterm_winapi", + "document-features", + "parking_lot 0.12.4", + "rustix 1.0.8", + "winapi", +] + [[package]] name = "crossterm_winapi" version = "0.9.1" @@ -2987,7 +3024,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2996,8 +3033,18 @@ version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.20.11", + "darling_macro 0.20.11", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core 0.21.3", + "darling_macro 0.21.3", ] [[package]] @@ -3011,7 +3058,22 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.104", + "syn 2.0.106", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "serde", + "strsim", + "syn 2.0.106", ] [[package]] @@ -3020,9 +3082,20 @@ version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ - "darling_core", + "darling_core 0.20.11", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core 0.21.3", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3075,7 +3148,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3108,9 +3181,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" dependencies = [ "powerfmt", "serde", @@ -3135,18 +3208,18 @@ checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "derive_arbitrary" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" +checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3164,10 +3237,10 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" dependencies = [ - "darling", + "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3177,7 +3250,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3198,7 +3271,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "unicode-xid", ] @@ -3257,7 +3330,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -3312,7 +3385,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3321,6 +3394,15 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" +[[package]] +name = "document-features" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" +dependencies = [ + "litrs", +] + [[package]] name = "dotenvy" version = "0.15.7" @@ -3388,7 +3470,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3429,7 +3511,7 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoder-standard" version = "0.1.0" -source = "git+https://github.com/scroll-tech/da-codec#2cfec8c99547b68dc64e2b020fa2b83cfb9c0e99" +source = "git+https://github.com/scroll-tech/da-codec#b4cce5c5d17845fc6f4f6ec422d559470a09dca9" dependencies = [ "zstd", ] @@ -3472,7 +3554,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3492,7 +3574,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3503,7 +3585,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3587,10 +3669,10 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd55d08012b4e0dfcc92b8d6081234df65f2986ad34cc76eeed69c5e2ce7506" dependencies = [ - "darling", + "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3670,14 +3752,14 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3742,9 +3824,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -3837,7 +3919,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3888,9 +3970,9 @@ checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" [[package]] name = "generator" -version = "0.8.5" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d18470a76cb7f8ff746cf1f7470914f900252ec36bbc40b569d74b1258446827" +checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2" dependencies = [ "cc", "cfg-if", @@ -3935,7 +4017,7 @@ dependencies = [ "js-sys", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasi 0.14.4+wasi-0.2.4", "wasm-bindgen", ] @@ -3961,7 +4043,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "libc", "libgit2-sys", "log", @@ -4022,12 +4104,12 @@ dependencies = [ [[package]] name = "gmp-mpfr-sys" -version = "1.6.5" +version = "1.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66d61197a68f6323b9afa616cf83d55d69191e1bf364d4eb7d35ae18defe776" +checksum = "60f8970a75c006bb2f8ae79c6768a116dd215fa8346a87aed99bf9d82ca43394" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -4053,7 +4135,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.10.0", + "indexmap 2.11.0", "slab", "tokio", "tokio-util", @@ -4072,7 +4154,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.3.1", - "indexmap 2.10.0", + "indexmap 2.11.0", "slab", "tokio", "tokio-util", @@ -4214,7 +4296,7 @@ dependencies = [ "rand 0.9.2", "ring", "serde", - "thiserror 2.0.14", + "thiserror 2.0.16", "tinyvec", "tokio", "tracing", @@ -4238,7 +4320,7 @@ dependencies = [ "resolv-conf", "serde", "smallvec", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -4392,13 +4474,14 @@ dependencies = [ [[package]] name = "hyper" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", "h2 0.4.12", "http 1.3.1", "http-body 1.0.1", @@ -4406,6 +4489,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -4434,7 +4518,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ "http 1.3.1", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-util", "log", "rustls 0.23.31", @@ -4454,7 +4538,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-util", "native-tls", "tokio", @@ -4475,7 +4559,7 @@ dependencies = [ "futures-util", "http 1.3.1", "http-body 1.0.1", - "hyper 1.6.0", + "hyper 1.7.0", "ipnet", "libc", "percent-encoding", @@ -4606,9 +4690,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -4652,7 +4736,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4693,9 +4777,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" dependencies = [ "arbitrary", "equivalent", @@ -4730,7 +4814,7 @@ checksum = "6c38228f24186d9cc68c729accb4d413be9eaed6ad07ff79e0270d9e56f3de13" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4739,7 +4823,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "inotify-sys", "libc", ] @@ -4769,11 +4853,11 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "435d80800b936787d62688c927b6490e887c7ef5ff9ce922c6c6050fca75eb9a" dependencies = [ - "darling", + "darling 0.20.11", "indoc", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4805,11 +4889,11 @@ dependencies = [ [[package]] name = "io-uring" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "cfg-if", "libc", ] @@ -4914,9 +4998,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ "getrandom 0.3.3", "libc", @@ -4924,9 +5008,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" dependencies = [ "once_cell", "wasm-bindgen", @@ -4967,7 +5051,7 @@ dependencies = [ "rustls-pki-types", "rustls-platform-verifier", "soketto", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-rustls 0.26.2", "tokio-util", @@ -4995,7 +5079,7 @@ dependencies = [ "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tower", @@ -5011,7 +5095,7 @@ checksum = "6962d2bd295f75e97dd328891e58fce166894b974c1f7ce2e7597f02eeceb791" dependencies = [ "base64 0.22.1", "http-body 1.0.1", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-rustls 0.27.7", "hyper-util", "jsonrpsee-core", @@ -5020,7 +5104,7 @@ dependencies = [ "rustls-platform-verifier", "serde", "serde_json", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tower", "url", @@ -5036,7 +5120,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -5049,7 +5133,7 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-util", "jsonrpsee-core", "jsonrpsee-types", @@ -5058,7 +5142,7 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -5075,7 +5159,7 @@ dependencies = [ "http 1.3.1", "serde", "serde_json", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] @@ -5236,7 +5320,7 @@ dependencies = [ "multihash", "quick-protobuf", "sha2 0.10.9", - "thiserror 2.0.14", + "thiserror 2.0.16", "tracing", "zeroize", ] @@ -5258,7 +5342,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "libc", "redox_syscall 0.5.17", ] @@ -5366,6 +5450,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +[[package]] +name = "litrs" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" + [[package]] name = "lock_api" version = "0.4.13" @@ -5379,9 +5469,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "loom" @@ -5393,7 +5483,7 @@ dependencies = [ "generator", "scoped-tls", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -5462,16 +5552,16 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] @@ -5492,9 +5582,9 @@ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memmap2" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28" +checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" dependencies = [ "libc", ] @@ -5518,7 +5608,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -5528,7 +5618,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd7399781913e5393588a8d8c6a2867bf85fb38eaf2502fdce465aad2dc6f034" dependencies = [ "base64 0.22.1", - "indexmap 2.10.0", + "indexmap 2.11.0", "metrics", "metrics-util", "quanta", @@ -5744,7 +5834,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "fsevent-sys", "inotify", "kqueue", @@ -5773,12 +5863,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" dependencies = [ - "overload", - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -5907,7 +5996,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -5938,9 +6027,9 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ff79de40513a478a9e374a480f897c2df829d48dcc64a83e4792a57fe231c64" +checksum = "63cb50036b1ad148038105af40aaa70ff24d8a14fbc44ae5c914e1348533d12e" dependencies = [ "alloy-rlp", "arbitrary", @@ -5988,16 +6077,16 @@ version = "0.18.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c88d2940558fd69f8f07b3cbd7bb3c02fc7d31159c1a7ba9deede50e7881024" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "arbitrary", "derive_more", "serde", "serde_with", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] @@ -6006,19 +6095,19 @@ version = "0.18.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2b4f977b51e9e177e69a4d241ab7c4b439df9a3a5a998c000ae01be724de271" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine 1.0.24", - "alloy-serde 1.0.24", + "alloy-rpc-types-engine 1.0.30", + "alloy-serde 1.0.30", "derive_more", "ethereum_ssz", "ethereum_ssz_derive", "op-alloy-consensus", "serde", "snap", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] @@ -6044,7 +6133,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "cfg-if", "foreign-types", "libc", @@ -6061,7 +6150,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6118,7 +6207,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6127,12 +6216,6 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "owo-colors" version = "4.2.2" @@ -6188,7 +6271,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6282,9 +6365,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" @@ -6293,7 +6376,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" dependencies = [ "memchr", - "thiserror 2.0.14", + "thiserror 2.0.16", "ucd-trie", ] @@ -6347,7 +6430,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6376,7 +6459,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6475,9 +6558,9 @@ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec", ] @@ -6509,12 +6592,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.36" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff24dfcda44452b9816fff4cd4227e1bb73ff5a2f1bc1105aa92fb8565ce44d2" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6565,14 +6648,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "proc-macro2" -version = "1.0.97" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61789d7719defeb74ea5fe81f2fdfdbd28a803847077cecce2ff14e1472f6f1" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -6585,7 +6668,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "version_check", "yansi", ] @@ -6596,7 +6679,7 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "chrono", "flate2", "hex", @@ -6610,7 +6693,7 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "chrono", "hex", ] @@ -6623,13 +6706,13 @@ checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.9.1", + "bitflags 2.9.4", "lazy_static", "num-traits", "rand 0.9.2", "rand_chacha 0.9.0", "rand_xorshift", - "regex-syntax 0.8.5", + "regex-syntax", "rusty-fork", "tempfile", "unarray", @@ -6653,7 +6736,7 @@ checksum = "4ee1c9ac207483d5e7db4940700de86a9aae46ef90c48b57f99fe7edb8345e49" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6682,7 +6765,7 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "memchr", "unicase", ] @@ -6719,9 +6802,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", "cfg_aliases", @@ -6730,8 +6813,8 @@ dependencies = [ "quinn-udp", "rustc-hash 2.1.1", "rustls 0.23.31", - "socket2 0.5.10", - "thiserror 2.0.14", + "socket2 0.6.0", + "thiserror 2.0.16", "tokio", "tracing", "web-time", @@ -6739,9 +6822,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.12" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", "getrandom 0.3.3", @@ -6752,7 +6835,7 @@ dependencies = [ "rustls 0.23.31", "rustls-pki-types", "slab", - "thiserror 2.0.14", + "thiserror 2.0.16", "tinyvec", "tracing", "web-time", @@ -6760,16 +6843,16 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.5.10", + "socket2 0.6.0", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -6879,10 +6962,10 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "cassowary", "compact_str", - "crossterm", + "crossterm 0.28.1", "indoc", "instability", "itertools 0.13.0", @@ -6896,18 +6979,18 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "11.5.0" +version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" +checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", ] [[package]] name = "rayon" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -6915,9 +6998,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -6944,7 +7027,7 @@ version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", ] [[package]] @@ -6966,7 +7049,7 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.16", "libredox", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] @@ -6986,58 +7069,43 @@ checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "regex" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", + "regex-automata", + "regex-syntax", ] [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax", ] [[package]] name = "regex-lite" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" - -[[package]] -name = "regex-syntax" -version = "0.6.29" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +checksum = "943f41321c63ef1c92fd763bfe054d2668f7f225a5c29f0105903dc2fc04ba30" [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "rend" @@ -7064,7 +7132,7 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-rustls 0.27.7", "hyper-tls", "hyper-util", @@ -7123,7 +7191,7 @@ dependencies = [ "futures", "getrandom 0.2.16", "http 1.3.1", - "hyper 1.6.0", + "hyper 1.7.0", "parking_lot 0.11.2", "reqwest", "reqwest-middleware", @@ -7143,10 +7211,10 @@ checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" [[package]] name = "reth-basic-payload-builder" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "futures-core", "futures-util", @@ -7167,10 +7235,10 @@ dependencies = [ [[package]] name = "reth-chain-state" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-signer", "alloy-signer-local", @@ -7198,15 +7266,15 @@ dependencies = [ [[package]] name = "reth-chainspec" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-chains", - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-evm", "alloy-genesis", "alloy-primitives", - "alloy-trie 0.9.0", + "alloy-trie 0.9.1", "auto_impl", "derive_more", "reth-ethereum-forks", @@ -7218,7 +7286,7 @@ dependencies = [ [[package]] name = "reth-cli" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-genesis", "clap", @@ -7232,18 +7300,18 @@ dependencies = [ [[package]] name = "reth-cli-commands" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "ahash 0.8.12", "alloy-chains", - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", "backon", "clap", "comfy-table", - "crossterm", + "crossterm 0.28.1", "eyre", "fdlimit", "futures", @@ -7305,7 +7373,7 @@ dependencies = [ [[package]] name = "reth-cli-runner" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "reth-tasks", "tokio", @@ -7315,9 +7383,9 @@ dependencies = [ [[package]] name = "reth-cli-util" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", "cfg-if", "eyre", @@ -7326,19 +7394,19 @@ dependencies = [ "reth-fs-util", "secp256k1 0.30.0", "serde", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "reth-codecs" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-genesis", "alloy-primitives", - "alloy-trie 0.9.0", + "alloy-trie 0.9.1", "arbitrary", "bytes", "modular-bitfield", @@ -7352,18 +7420,18 @@ dependencies = [ [[package]] name = "reth-codecs-derive" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "reth-config" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "eyre", "humantime-serde", @@ -7378,23 +7446,23 @@ dependencies = [ [[package]] name = "reth-consensus" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-primitives", "auto_impl", "reth-execution-types", "reth-primitives-traits", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "reth-consensus-common" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "reth-chainspec", "reth-consensus", "reth-primitives-traits", @@ -7403,14 +7471,14 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-json-rpc", "alloy-primitives", "alloy-provider", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "auto_impl", "derive_more", "eyre", @@ -7428,7 +7496,7 @@ dependencies = [ [[package]] name = "reth-db" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "derive_more", @@ -7448,15 +7516,15 @@ dependencies = [ "strum 0.27.2", "sysinfo", "tempfile", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "reth-db-api" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-genesis", "alloy-primitives", "arbitrary", @@ -7483,9 +7551,9 @@ dependencies = [ [[package]] name = "reth-db-common" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-genesis", "alloy-primitives", "boyer-moore-magiclen", @@ -7506,16 +7574,16 @@ dependencies = [ "reth-trie-db", "serde", "serde_json", - "thiserror 2.0.14", + "thiserror 2.0.16", "tracing", ] [[package]] name = "reth-db-models" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", "arbitrary", "bytes", @@ -7528,7 +7596,7 @@ dependencies = [ [[package]] name = "reth-discv4" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7545,7 +7613,7 @@ dependencies = [ "schnellru", "secp256k1 0.30.0", "serde", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -7554,7 +7622,7 @@ dependencies = [ [[package]] name = "reth-discv5" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7570,7 +7638,7 @@ dependencies = [ "reth-metrics", "reth-network-peers", "secp256k1 0.30.0", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -7578,7 +7646,7 @@ dependencies = [ [[package]] name = "reth-dns-discovery" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "data-encoding", @@ -7593,7 +7661,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -7602,10 +7670,10 @@ dependencies = [ [[package]] name = "reth-downloaders" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", "futures", @@ -7627,7 +7695,7 @@ dependencies = [ "reth-tasks", "reth-testing-utils", "tempfile", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -7637,16 +7705,16 @@ dependencies = [ [[package]] name = "reth-e2e-test-utils" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-genesis", "alloy-network", "alloy-primitives", "alloy-provider", "alloy-rlp", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "alloy-rpc-types-eth", "alloy-signer", "alloy-signer-local", @@ -7700,7 +7768,7 @@ dependencies = [ [[package]] name = "reth-ecies" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "aes", "alloy-primitives", @@ -7720,7 +7788,7 @@ dependencies = [ "secp256k1 0.30.0", "sha2 0.10.9", "sha3", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -7731,11 +7799,11 @@ dependencies = [ [[package]] name = "reth-engine-local" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "eyre", "futures-util", "reth-chainspec", @@ -7754,12 +7822,12 @@ dependencies = [ [[package]] name = "reth-engine-primitives" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "auto_impl", "futures", "reth-chain-state", @@ -7772,14 +7840,14 @@ dependencies = [ "reth-primitives-traits", "reth-trie-common", "serde", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", ] [[package]] name = "reth-engine-service" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "futures", "pin-project", @@ -7796,20 +7864,20 @@ dependencies = [ "reth-prune", "reth-stages-api", "reth-tasks", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "reth-engine-tree" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-evm", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "derive_more", "futures", "metrics", @@ -7846,7 +7914,7 @@ dependencies = [ "revm", "revm-primitives", "schnellru", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -7854,10 +7922,10 @@ dependencies = [ [[package]] name = "reth-engine-util" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-rpc-types-engine 1.0.24", + "alloy-consensus 1.0.30", + "alloy-rpc-types-engine 1.0.30", "eyre", "futures", "itertools 0.14.0", @@ -7882,23 +7950,23 @@ dependencies = [ [[package]] name = "reth-era" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", "ethereum_ssz", "ethereum_ssz_derive", "reth-ethereum-primitives", "snap", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "reth-era-downloader" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "bytes", @@ -7913,9 +7981,9 @@ dependencies = [ [[package]] name = "reth-era-utils" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-primitives", "alloy-rlp", "eyre", @@ -7937,18 +8005,18 @@ dependencies = [ [[package]] name = "reth-errors" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "reth-consensus", "reth-execution-errors", "reth-storage-errors", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "reth-eth-wire" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-chains", "alloy-primitives", @@ -7966,7 +8034,7 @@ dependencies = [ "reth-primitives-traits", "serde", "snap", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -7976,11 +8044,11 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-chains", - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-hardforks", "alloy-primitives", "alloy-rlp", @@ -7991,16 +8059,16 @@ dependencies = [ "reth-ethereum-primitives", "reth-primitives-traits", "serde", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "reth-ethereum-consensus" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "reth-chainspec", "reth-consensus", @@ -8013,25 +8081,25 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "reth-engine-primitives", "reth-ethereum-primitives", "reth-payload-primitives", "reth-primitives-traits", "serde", "sha2 0.10.9", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "reth-ethereum-forks" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -8045,12 +8113,12 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "reth-basic-payload-builder", "reth-chainspec", "reth-errors", @@ -8072,10 +8140,10 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", "arbitrary", @@ -8090,7 +8158,7 @@ dependencies = [ [[package]] name = "reth-etl" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "rayon", "reth-db-api", @@ -8100,10 +8168,10 @@ dependencies = [ [[package]] name = "reth-evm" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-evm", "alloy-primitives", "auto_impl", @@ -8124,13 +8192,13 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-evm", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "reth-chainspec", "reth-ethereum-forks", "reth-ethereum-primitives", @@ -8144,23 +8212,23 @@ dependencies = [ [[package]] name = "reth-execution-errors" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-evm", "alloy-primitives", "alloy-rlp", - "nybbles 0.4.2", + "nybbles 0.4.3", "reth-storage-errors", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "reth-execution-types" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-evm", "alloy-primitives", "derive_more", @@ -8175,10 +8243,10 @@ dependencies = [ [[package]] name = "reth-exex" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "eyre", "futures", @@ -8204,7 +8272,7 @@ dependencies = [ "reth-tasks", "reth-tracing", "rmp-serde", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-util", "tracing", @@ -8213,9 +8281,9 @@ dependencies = [ [[package]] name = "reth-exex-types" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", "reth-chain-state", "reth-execution-types", @@ -8227,19 +8295,19 @@ dependencies = [ [[package]] name = "reth-fs-util" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "serde", "serde_json", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "reth-invalid-block-hooks" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-debug", @@ -8265,7 +8333,7 @@ dependencies = [ [[package]] name = "reth-ipc" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "bytes", "futures", @@ -8274,7 +8342,7 @@ dependencies = [ "jsonrpsee", "pin-project", "serde_json", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -8285,24 +8353,24 @@ dependencies = [ [[package]] name = "reth-libmdbx" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "byteorder", "dashmap 6.1.0", "derive_more", - "indexmap 2.10.0", + "indexmap 2.11.0", "parking_lot 0.12.4", "reth-mdbx-sys", "smallvec", - "thiserror 2.0.14", + "thiserror 2.0.16", "tracing", ] [[package]] name = "reth-mdbx-sys" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "bindgen 0.70.1", "cc", @@ -8311,7 +8379,7 @@ dependencies = [ [[package]] name = "reth-metrics" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "futures", "metrics", @@ -8323,7 +8391,7 @@ dependencies = [ [[package]] name = "reth-net-banlist" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", ] @@ -8331,13 +8399,13 @@ dependencies = [ [[package]] name = "reth-net-nat" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "futures-util", "if-addrs", "reqwest", "serde_with", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -8345,10 +8413,10 @@ dependencies = [ [[package]] name = "reth-network" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", "aquamarine", @@ -8390,7 +8458,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "smallvec", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -8400,9 +8468,9 @@ dependencies = [ [[package]] name = "reth-network-api" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-primitives", "alloy-rpc-types-admin", "alloy-rpc-types-eth", @@ -8418,7 +8486,7 @@ dependencies = [ "reth-primitives-traits", "reth-tokio-util", "serde", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", ] @@ -8426,10 +8494,10 @@ dependencies = [ [[package]] name = "reth-network-p2p" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "auto_impl", "derive_more", @@ -8449,14 +8517,14 @@ dependencies = [ [[package]] name = "reth-network-peers" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "alloy-rlp", "enr", "secp256k1 0.30.0", "serde_with", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "url", ] @@ -8464,7 +8532,7 @@ dependencies = [ [[package]] name = "reth-network-types" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -8478,7 +8546,7 @@ dependencies = [ [[package]] name = "reth-nippy-jar" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "anyhow", "bincode", @@ -8487,7 +8555,7 @@ dependencies = [ "memmap2", "reth-fs-util", "serde", - "thiserror 2.0.14", + "thiserror 2.0.16", "tracing", "zstd", ] @@ -8495,9 +8563,9 @@ dependencies = [ [[package]] name = "reth-node-api" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "eyre", "reth-basic-payload-builder", "reth-consensus", @@ -8519,14 +8587,14 @@ dependencies = [ [[package]] name = "reth-node-builder" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-provider", "alloy-rpc-types", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "aquamarine", "eyre", "fdlimit", @@ -8587,12 +8655,12 @@ dependencies = [ [[package]] name = "reth-node-core" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "clap", "derive_more", "dirs-next", @@ -8628,7 +8696,7 @@ dependencies = [ "serde", "shellexpand", "strum 0.27.2", - "thiserror 2.0.14", + "thiserror 2.0.16", "toml", "tracing", "url", @@ -8639,11 +8707,11 @@ dependencies = [ [[package]] name = "reth-node-ethereum" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-network", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "alloy-rpc-types-eth", "eyre", "reth-chainspec", @@ -8677,9 +8745,9 @@ dependencies = [ [[package]] name = "reth-node-ethstats" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-primitives", "chrono", "futures-util", @@ -8690,7 +8758,7 @@ dependencies = [ "reth-transaction-pool", "serde", "serde_json", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-tungstenite", @@ -8701,12 +8769,12 @@ dependencies = [ [[package]] name = "reth-node-events" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "derive_more", "futures", "humantime", @@ -8725,7 +8793,7 @@ dependencies = [ [[package]] name = "reth-node-metrics" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "eyre", "http 1.3.1", @@ -8745,7 +8813,7 @@ dependencies = [ [[package]] name = "reth-node-types" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "reth-chainspec", "reth-db-api", @@ -8758,10 +8826,10 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", "arbitrary", @@ -8777,9 +8845,9 @@ dependencies = [ [[package]] name = "reth-payload-builder" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-primitives", "alloy-rpc-types", "futures-util", @@ -8798,7 +8866,7 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "pin-project", "reth-payload-primitives", @@ -8810,11 +8878,11 @@ dependencies = [ [[package]] name = "reth-payload-primitives" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "auto_impl", "op-alloy-rpc-types-engine", "reth-chain-state", @@ -8823,16 +8891,16 @@ dependencies = [ "reth-primitives-traits", "scroll-alloy-rpc-types-engine", "serde", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", ] [[package]] name = "reth-payload-util" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-primitives", "reth-transaction-pool", ] @@ -8840,19 +8908,19 @@ dependencies = [ [[package]] name = "reth-payload-validator" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-rpc-types-engine 1.0.24", + "alloy-consensus 1.0.30", + "alloy-rpc-types-engine 1.0.30", "reth-primitives-traits", ] [[package]] name = "reth-primitives" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "c-kzg", "once_cell", "reth-ethereum-forks", @@ -8864,15 +8932,15 @@ dependencies = [ [[package]] name = "reth-primitives-traits" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-genesis", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", - "alloy-trie 0.9.0", + "alloy-trie 0.9.1", "arbitrary", "auto_impl", "byteorder", @@ -8892,18 +8960,18 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "reth-provider" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "dashmap 6.1.0", "eyre", "itertools 0.14.0", @@ -8943,10 +9011,10 @@ dependencies = [ [[package]] name = "reth-prune" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "itertools 0.14.0", "metrics", @@ -8963,7 +9031,7 @@ dependencies = [ "reth-static-file-types", "reth-tokio-util", "rustc-hash 2.1.1", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -8971,7 +9039,7 @@ dependencies = [ [[package]] name = "reth-prune-types" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "arbitrary", @@ -8979,13 +9047,13 @@ dependencies = [ "modular-bitfield", "reth-codecs", "serde", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "reth-revm" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -8998,11 +9066,11 @@ dependencies = [ [[package]] name = "reth-rpc" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-dyn-abi", - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-evm", "alloy-genesis", "alloy-network", @@ -9010,14 +9078,14 @@ dependencies = [ "alloy-rlp", "alloy-rpc-types", "alloy-rpc-types-admin", - "alloy-rpc-types-beacon 1.0.24", + "alloy-rpc-types-beacon 1.0.30", "alloy-rpc-types-debug", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "alloy-rpc-types-eth", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "alloy-signer", "alloy-signer-local", "async-trait", @@ -9025,7 +9093,7 @@ dependencies = [ "futures", "http 1.3.1", "http-body 1.0.1", - "hyper 1.6.0", + "hyper 1.7.0", "itertools 0.14.0", "jsonrpsee", "jsonrpsee-types", @@ -9064,7 +9132,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.9", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tower", @@ -9075,23 +9143,23 @@ dependencies = [ [[package]] name = "reth-rpc-api" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-genesis", "alloy-json-rpc", "alloy-primitives", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-anvil", - "alloy-rpc-types-beacon 1.0.24", + "alloy-rpc-types-beacon 1.0.30", "alloy-rpc-types-debug", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "alloy-rpc-types-eth", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "jsonrpsee", "reth-chain-state", "reth-engine-primitives", @@ -9103,7 +9171,7 @@ dependencies = [ [[package]] name = "reth-rpc-builder" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-network", "alloy-provider", @@ -9130,7 +9198,7 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "serde", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-util", "tower", @@ -9141,9 +9209,9 @@ dependencies = [ [[package]] name = "reth-rpc-convert" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-json-rpc", "alloy-network", "alloy-primitives", @@ -9160,17 +9228,17 @@ dependencies = [ "scroll-alloy-consensus", "scroll-alloy-evm", "scroll-alloy-rpc-types", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "reth-rpc-engine-api" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "async-trait", "jsonrpsee-core", "jsonrpsee-types", @@ -9188,7 +9256,7 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "serde", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -9196,11 +9264,11 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-dyn-abi", - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-evm", "alloy-json-rpc", "alloy-network", @@ -9208,7 +9276,7 @@ dependencies = [ "alloy-rlp", "alloy-rpc-types-eth", "alloy-rpc-types-mev", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "async-trait", "auto_impl", "dyn-clone", @@ -9241,10 +9309,10 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-evm", "alloy-network", "alloy-primitives", @@ -9276,7 +9344,7 @@ dependencies = [ "revm-inspectors", "schnellru", "serde", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -9285,9 +9353,9 @@ dependencies = [ [[package]] name = "reth-rpc-layer" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "http 1.3.1", "jsonrpsee-http-client", "pin-project", @@ -9299,11 +9367,11 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "jsonrpsee-core", "jsonrpsee-types", "reth-errors", @@ -9315,14 +9383,14 @@ dependencies = [ [[package]] name = "reth-scroll-chainspec" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-chains", - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-genesis", "alloy-primitives", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "auto_impl", "derive_more", "once_cell", @@ -9340,7 +9408,7 @@ dependencies = [ [[package]] name = "reth-scroll-cli" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "clap", "eyre", @@ -9364,9 +9432,9 @@ dependencies = [ [[package]] name = "reth-scroll-consensus" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-primitives", "reth-chainspec", "reth-consensus", @@ -9377,20 +9445,20 @@ dependencies = [ "reth-scroll-primitives", "scroll-alloy-consensus", "scroll-alloy-hardforks", - "thiserror 2.0.14", + "thiserror 2.0.16", "tracing", ] [[package]] name = "reth-scroll-engine-primitives" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "reth-chain-state", "reth-chainspec", "reth-engine-primitives", @@ -9409,13 +9477,13 @@ dependencies = [ [[package]] name = "reth-scroll-evm" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-evm", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "derive_more", "reth-chainspec", "reth-evm", @@ -9432,14 +9500,14 @@ dependencies = [ "scroll-alloy-consensus", "scroll-alloy-evm", "scroll-alloy-hardforks", - "thiserror 2.0.14", + "thiserror 2.0.16", "tracing", ] [[package]] name = "reth-scroll-forks" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-chains", "alloy-primitives", @@ -9453,12 +9521,12 @@ dependencies = [ [[package]] name = "reth-scroll-node" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-genesis", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "alloy-rpc-types-eth", "clap", "eyre", @@ -9505,9 +9573,9 @@ dependencies = [ [[package]] name = "reth-scroll-payload" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-primitives", "alloy-rlp", "futures-util", @@ -9529,17 +9597,17 @@ dependencies = [ "reth-transaction-pool", "revm", "scroll-alloy-hardforks", - "thiserror 2.0.14", + "thiserror 2.0.16", "tracing", ] [[package]] name = "reth-scroll-primitives" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", "arbitrary", @@ -9556,10 +9624,10 @@ dependencies = [ [[package]] name = "reth-scroll-rpc" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-json-rpc", "alloy-primitives", "alloy-rpc-client", @@ -9589,7 +9657,7 @@ dependencies = [ "scroll-alloy-hardforks", "scroll-alloy-network", "scroll-alloy-rpc-types", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -9597,10 +9665,10 @@ dependencies = [ [[package]] name = "reth-scroll-txpool" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "c-kzg", "derive_more", @@ -9621,10 +9689,10 @@ dependencies = [ [[package]] name = "reth-stages" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "bincode", "blake3", @@ -9663,7 +9731,7 @@ dependencies = [ "reth-trie-db", "serde", "tempfile", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -9671,9 +9739,9 @@ dependencies = [ [[package]] name = "reth-stages-api" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", "aquamarine", "auto_impl", @@ -9690,7 +9758,7 @@ dependencies = [ "reth-static-file", "reth-static-file-types", "reth-tokio-util", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -9698,7 +9766,7 @@ dependencies = [ [[package]] name = "reth-stages-types" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "arbitrary", @@ -9712,7 +9780,7 @@ dependencies = [ [[package]] name = "reth-static-file" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "parking_lot 0.12.4", @@ -9732,7 +9800,7 @@ dependencies = [ [[package]] name = "reth-static-file-types" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "clap", @@ -9744,12 +9812,12 @@ dependencies = [ [[package]] name = "reth-storage-api" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "auto_impl", "reth-chainspec", "reth-db-api", @@ -9768,9 +9836,9 @@ dependencies = [ [[package]] name = "reth-storage-errors" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", "derive_more", @@ -9778,13 +9846,13 @@ dependencies = [ "reth-prune-types", "reth-static-file-types", "revm-database-interface", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] name = "reth-tasks" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "auto_impl", "dyn-clone", @@ -9793,7 +9861,7 @@ dependencies = [ "pin-project", "rayon", "reth-metrics", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", "tracing-futures", @@ -9802,10 +9870,10 @@ dependencies = [ [[package]] name = "reth-testing-utils" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-genesis", "alloy-primitives", "rand 0.8.5", @@ -9818,7 +9886,7 @@ dependencies = [ [[package]] name = "reth-tokio-util" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "tokio", "tokio-stream", @@ -9828,7 +9896,7 @@ dependencies = [ [[package]] name = "reth-tracing" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "clap", "eyre", @@ -9837,21 +9905,21 @@ dependencies = [ "tracing-appender", "tracing-journald", "tracing-logfmt", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] name = "reth-transaction-pool" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", "aquamarine", "auto_impl", - "bitflags 2.9.1", + "bitflags 2.9.4", "futures-util", "metrics", "parking_lot 0.12.4", @@ -9874,7 +9942,7 @@ dependencies = [ "serde", "serde_json", "smallvec", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -9883,13 +9951,13 @@ dependencies = [ [[package]] name = "reth-trie" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", - "alloy-trie 0.9.0", + "alloy-trie 0.9.1", "auto_impl", "itertools 0.14.0", "metrics", @@ -9908,20 +9976,20 @@ dependencies = [ [[package]] name = "reth-trie-common" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", - "alloy-serde 1.0.24", - "alloy-trie 0.9.0", + "alloy-serde 1.0.30", + "alloy-trie 0.9.1", "arbitrary", "bytes", "derive_more", "hash-db", "itertools 0.14.0", - "nybbles 0.4.2", + "nybbles 0.4.3", "plain_hasher", "reth-codecs", "reth-primitives-traits", @@ -9933,7 +10001,7 @@ dependencies = [ [[package]] name = "reth-trie-db" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "reth-db-api", @@ -9946,7 +10014,7 @@ dependencies = [ [[package]] name = "reth-trie-parallel" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -9963,7 +10031,7 @@ dependencies = [ "reth-trie-common", "reth-trie-db", "reth-trie-sparse", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -9971,11 +10039,11 @@ dependencies = [ [[package]] name = "reth-trie-sparse" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "alloy-rlp", - "alloy-trie 0.9.0", + "alloy-trie 0.9.1", "auto_impl", "metrics", "rayon", @@ -9990,11 +10058,11 @@ dependencies = [ [[package]] name = "reth-trie-sparse-parallel" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "alloy-rlp", - "alloy-trie 0.9.0", + "alloy-trie 0.9.1", "metrics", "rayon", "reth-execution-errors", @@ -10008,7 +10076,7 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "zstd", ] @@ -10087,7 +10155,7 @@ name = "revm-database" version = "7.0.2" source = "git+https://github.com/scroll-tech/revm#9cd9896c06a5bf6d4212906260d8789579873ba4" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "revm-bytecode", "revm-database-interface", "revm-primitives", @@ -10144,9 +10212,9 @@ dependencies = [ [[package]] name = "revm-inspectors" -version = "0.27.1" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aad27cab355b0aa905d0744f3222e716b40ad48b32276ac4b0a615f2c3364c97" +checksum = "0dc2c1ee7db275fd7176cd1d873fa033e5a16e029c5c793661c5a13381e80534" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -10157,7 +10225,7 @@ dependencies = [ "revm", "serde", "serde_json", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] @@ -10210,7 +10278,7 @@ dependencies = [ [[package]] name = "revm-scroll" version = "0.1.0" -source = "git+https://github.com/scroll-tech/scroll-revm#720ee7802e5ad695ac1f8699bbab9c9f2424417f" +source = "git+https://github.com/scroll-tech/scroll-revm#59d400f1a0b616d7b97a24da1cb5b8dcb8006f4b" dependencies = [ "auto_impl", "enumn", @@ -10226,7 +10294,7 @@ name = "revm-state" version = "7.0.2" source = "git+https://github.com/scroll-tech/revm#9cd9896c06a5bf6d4212906260d8789579873ba4" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "revm-bytecode", "revm-primitives", "serde", @@ -10365,11 +10433,11 @@ name = "rollup-node" version = "0.0.1" dependencies = [ "alloy-chains", - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-provider", "alloy-rpc-client", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "alloy-rpc-types-eth", "alloy-signer", "alloy-signer-aws", @@ -10446,8 +10514,8 @@ dependencies = [ name = "rollup-node-chain-orchestrator" version = "0.0.1" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-json-rpc", "alloy-primitives", "alloy-provider", @@ -10478,7 +10546,7 @@ dependencies = [ "scroll-network", "serde_json", "strum 0.27.2", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -10489,11 +10557,11 @@ name = "rollup-node-manager" version = "0.0.1" dependencies = [ "alloy-chains", - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-provider", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "futures", "reth-chainspec", "reth-network", @@ -10529,10 +10597,10 @@ name = "rollup-node-primitives" version = "0.0.1" dependencies = [ "alloy-chains", - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "arbitrary", "derive_more", "eyre", @@ -10550,7 +10618,7 @@ dependencies = [ name = "rollup-node-providers" version = "0.0.1" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-provider", "alloy-rpc-client", @@ -10569,18 +10637,19 @@ dependencies = [ "scroll-alloy-rpc-types-engine", "scroll-db", "serde", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", + "tracing", ] [[package]] name = "rollup-node-sequencer" version = "0.0.1" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "alloy-signer-local", "eyre", "futures", @@ -10603,7 +10672,7 @@ dependencies = [ "scroll-db", "scroll-engine", "tempfile", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -10621,7 +10690,7 @@ dependencies = [ "reth-scroll-primitives", "reth-tracing", "rollup-node-primitives", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -10631,8 +10700,8 @@ dependencies = [ name = "rollup-node-watcher" version = "0.0.1" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-json-rpc", "alloy-network", "alloy-primitives", @@ -10653,7 +10722,7 @@ dependencies = [ "rollup-node-providers", "scroll-alloy-consensus", "scroll-l1", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -10686,9 +10755,9 @@ dependencies = [ [[package]] name = "rug" -version = "1.27.0" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4207e8d668e5b8eb574bda8322088ccd0d7782d3d03c7e8d562e82ed82bdcbc3" +checksum = "58ad2e973fe3c3214251a840a621812a4f40468da814b1a3d6947d433c2af11f" dependencies = [ "az", "gmp-mpfr-sys", @@ -10797,7 +10866,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "errno", "libc", "linux-raw-sys 0.4.15", @@ -10810,7 +10879,7 @@ version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "errno", "libc", "linux-raw-sys 0.9.4", @@ -10866,7 +10935,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.3.0", + "security-framework 3.4.0", ] [[package]] @@ -10903,7 +10972,7 @@ dependencies = [ "rustls-native-certs 0.8.1", "rustls-platform-verifier-android", "rustls-webpki 0.103.4", - "security-framework 3.3.0", + "security-framework 3.4.0", "security-framework-sys", "webpki-root-certs 0.26.11", "windows-sys 0.59.0", @@ -11029,13 +11098,13 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll-alloy-consensus" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "arbitrary", "derive_more", "modular-bitfield", @@ -11048,10 +11117,10 @@ dependencies = [ [[package]] name = "scroll-alloy-evm" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-evm", "alloy-primitives", "auto_impl", @@ -11066,7 +11135,7 @@ dependencies = [ [[package]] name = "scroll-alloy-hardforks" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-hardforks", "auto_impl", @@ -11076,9 +11145,9 @@ dependencies = [ [[package]] name = "scroll-alloy-network" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", + "alloy-consensus 1.0.30", "alloy-network", "alloy-primitives", "alloy-provider", @@ -11091,12 +11160,12 @@ dependencies = [ [[package]] name = "scroll-alloy-provider" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", "alloy-provider", "alloy-rpc-client", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "alloy-transport", "alloy-transport-http", "async-trait", @@ -11109,21 +11178,21 @@ dependencies = [ "reth-scroll-engine-primitives", "scroll-alloy-network", "scroll-alloy-rpc-types-engine", - "thiserror 2.0.14", + "thiserror 2.0.16", "tower", ] [[package]] name = "scroll-alloy-rpc-types" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-network-primitives", "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde 1.0.24", + "alloy-serde 1.0.30", "derive_more", "scroll-alloy-consensus", "serde", @@ -11133,10 +11202,10 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types-engine" version = "1.6.0" -source = "git+https://github.com/scroll-tech/reth.git#d485f4718a0c93f3fc1ec453b8ddde6ce1ebe397" +source = "git+https://github.com/scroll-tech/reth.git#260f87ec9a24a3d5a6fc849837353d85f1784c5a" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "arbitrary", "serde", ] @@ -11145,7 +11214,7 @@ dependencies = [ name = "scroll-codec" version = "0.1.0" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-rlp", "alloy-sol-types", @@ -11155,7 +11224,7 @@ dependencies = [ "scroll-alloy-consensus", "scroll-l1", "serde_json", - "thiserror 2.0.14", + "thiserror 2.0.16", "zstd", ] @@ -11163,7 +11232,7 @@ dependencies = [ name = "scroll-db" version = "0.0.1" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", "arbitrary", "async-trait", @@ -11175,7 +11244,7 @@ dependencies = [ "scroll-alloy-rpc-types-engine", "scroll-migration", "sea-orm", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -11184,9 +11253,9 @@ dependencies = [ name = "scroll-derivation-pipeline" version = "0.0.1" dependencies = [ - "alloy-eips 1.0.24", + "alloy-eips 1.0.30", "alloy-primitives", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "async-trait", "criterion", "eyre", @@ -11199,7 +11268,7 @@ dependencies = [ "scroll-alloy-rpc-types-engine", "scroll-codec", "scroll-db", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -11209,11 +11278,11 @@ name = "scroll-engine" version = "0.0.1" dependencies = [ "alloy-chains", - "alloy-consensus 1.0.24", - "alloy-eips 1.0.24", + "alloy-consensus 1.0.30", + "alloy-eips 1.0.30", "alloy-primitives", "alloy-provider", - "alloy-rpc-types-engine 1.0.24", + "alloy-rpc-types-engine 1.0.30", "arbitrary", "async-trait", "eyre", @@ -11237,7 +11306,7 @@ dependencies = [ "scroll-alloy-rpc-types-engine", "scroll-engine", "scroll-network", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -11252,7 +11321,7 @@ dependencies = [ "bitvec", "derive_more", "scroll-alloy-consensus", - "thiserror 2.0.14", + "thiserror 2.0.16", ] [[package]] @@ -11295,7 +11364,7 @@ dependencies = [ "reth-tokio-util", "scroll-alloy-hardforks", "scroll-wire", - "thiserror 2.0.14", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -11337,14 +11406,14 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "sea-orm" -version = "1.1.14" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34963b2d68331ef5fbc8aa28a53781471c15f90ba1ad4f2689d21ce8b9a9d1f1" +checksum = "458d38dfa73e8ab64260f9fd96d61e1ca96a312d06e94b71615a417ef29efcac" dependencies = [ "async-stream", "async-trait", @@ -11362,7 +11431,7 @@ dependencies = [ "serde_json", "sqlx", "strum 0.26.3", - "thiserror 2.0.14", + "thiserror 2.0.16", "time", "tracing", "url", @@ -11371,9 +11440,9 @@ dependencies = [ [[package]] name = "sea-orm-cli" -version = "1.1.14" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc17cb2b24e93fc1d56de7751a12222f2303c06e83ed4d7a1e929e39f30c7d7" +checksum = "529b598e847338b7ff863a2abc8c693f515edd075f3f8e92f1b4aca2665f98dd" dependencies = [ "chrono", "clap", @@ -11383,29 +11452,29 @@ dependencies = [ "sea-schema", "sqlx", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", "url", ] [[package]] name = "sea-orm-macros" -version = "1.1.14" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a489127c872766445b4e28f846825f89a076ac3af2591d1365503a68f93e974c" +checksum = "af976292446b09dd51d7b1784d6195dec76844e9e9e980b5fb12634ef417d6ea" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", "sea-bae", - "syn 2.0.104", + "syn 2.0.106", "unicode-ident", ] [[package]] name = "sea-orm-migration" -version = "1.1.14" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "695e830a1332a4e3e57b5972eee00574a36060e1938afca7041a524e0955d5ba" +checksum = "294321e37421a108ed040c349c543023f221e36f93c85411efc61e4a2266b811" dependencies = [ "async-trait", "clap", @@ -11414,7 +11483,7 @@ dependencies = [ "sea-orm-cli", "sea-schema", "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -11456,12 +11525,12 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bae0cbad6ab996955664982739354128c58d16e126114fe88c2a493642502aab" dependencies = [ - "darling", + "darling 0.20.11", "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.104", - "thiserror 2.0.14", + "syn 2.0.106", + "thiserror 2.0.16", ] [[package]] @@ -11486,7 +11555,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -11557,7 +11626,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -11566,11 +11635,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c" +checksum = "60b369d18893388b345804dc0007963c99b7d665ae71d275812d828c6f089640" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -11579,9 +11648,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -11643,16 +11712,16 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "serde_json" -version = "1.0.142" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.11.0", "itoa", "memchr", "ryu", @@ -11690,7 +11759,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.10.0", + "indexmap 2.11.0", "schemars 0.9.0", "schemars 1.0.4", "serde", @@ -11706,10 +11775,10 @@ version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" dependencies = [ - "darling", + "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -11855,7 +11924,7 @@ checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint", "num-traits", - "thiserror 2.0.14", + "thiserror 2.0.16", "time", ] @@ -11996,7 +12065,7 @@ dependencies = [ "futures-util", "hashbrown 0.15.5", "hashlink 0.10.0", - "indexmap 2.10.0", + "indexmap 2.11.0", "log", "memchr", "native-tls", @@ -12007,7 +12076,7 @@ dependencies = [ "serde_json", "sha2 0.10.9", "smallvec", - "thiserror 2.0.14", + "thiserror 2.0.16", "time", "tokio", "tokio-stream", @@ -12026,7 +12095,7 @@ dependencies = [ "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -12049,7 +12118,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.104", + "syn 2.0.106", "tokio", "url", ] @@ -12063,7 +12132,7 @@ dependencies = [ "atoi", "base64 0.22.1", "bigdecimal", - "bitflags 2.9.1", + "bitflags 2.9.4", "byteorder", "bytes", "chrono", @@ -12094,7 +12163,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.14", + "thiserror 2.0.16", "time", "tracing", "uuid", @@ -12110,7 +12179,7 @@ dependencies = [ "atoi", "base64 0.22.1", "bigdecimal", - "bitflags 2.9.1", + "bitflags 2.9.4", "byteorder", "chrono", "crc", @@ -12137,7 +12206,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.14", + "thiserror 2.0.16", "time", "tracing", "uuid", @@ -12164,7 +12233,7 @@ dependencies = [ "serde", "serde_urlencoded", "sqlx-core", - "thiserror 2.0.14", + "thiserror 2.0.16", "time", "tracing", "url", @@ -12228,7 +12297,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -12240,7 +12309,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -12262,9 +12331,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.104" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -12273,14 +12342,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a985ff4ffd7373e10e0fb048110fb11a162e5a4c47f92ddb8787a6f766b769" +checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -12300,7 +12369,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -12322,7 +12391,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -12362,15 +12431,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.20.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", "rustix 1.0.8", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -12399,11 +12468,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b0949c3a6c842cbde3f1686d6eea5a010516deb7085f79db747562d4102f41e" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ - "thiserror-impl 2.0.14", + "thiserror-impl 2.0.16", ] [[package]] @@ -12414,18 +12483,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "thiserror-impl" -version = "2.0.14" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc5b44b4ab9c2fdd0e0512e6bece8388e214c0749f5862b114cc5b7a25daf227" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -12448,12 +12517,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.41" +version = "0.3.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" dependencies = [ "deranged", - "itoa", "libc", "num-conv", "num_threads", @@ -12465,15 +12533,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -12510,9 +12578,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -12551,7 +12619,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -12655,7 +12723,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.11.0", "serde", "serde_spanned", "toml_datetime", @@ -12678,7 +12746,7 @@ dependencies = [ "futures-core", "futures-util", "hdrhistogram", - "indexmap 2.10.0", + "indexmap 2.11.0", "pin-project-lite", "slab", "sync_wrapper", @@ -12697,7 +12765,7 @@ checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ "async-compression", "base64 0.22.1", - "bitflags 2.9.1", + "bitflags 2.9.4", "bytes", "futures-core", "futures-util", @@ -12753,7 +12821,7 @@ dependencies = [ "crossbeam-channel", "thiserror 1.0.69", "time", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -12764,7 +12832,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -12784,7 +12852,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" dependencies = [ "tracing", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -12805,7 +12873,7 @@ checksum = "fc0b4143302cf1022dac868d521e36e8b27691f72c84b3311750d5188ebba657" dependencies = [ "libc", "tracing-core", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -12828,7 +12896,7 @@ dependencies = [ "time", "tracing", "tracing-core", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.20", ] [[package]] @@ -12852,14 +12920,14 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "serde", "serde_json", "sharded-slab", @@ -12890,10 +12958,10 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bee2ea1551f90040ab0e34b6fb7f2fa3bad8acc925837ac654f2c78a13e3089" dependencies = [ - "darling", + "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -12933,7 +13001,7 @@ dependencies = [ "rustls 0.23.31", "rustls-pki-types", "sha1", - "thiserror 2.0.14", + "thiserror 2.0.16", "utf-8", ] @@ -13071,9 +13139,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -13107,9 +13175,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ "getrandom 0.3.3", "js-sys", @@ -13184,7 +13252,7 @@ checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -13229,11 +13297,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.14.4+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "88a5f4a424faf49c3c2c344f166f0662341d470ea185e939657aaff130f0ec4a" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] @@ -13244,35 +13312,36 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" dependencies = [ "bumpalo", "log", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" dependencies = [ "cfg-if", "js-sys", @@ -13283,9 +13352,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -13293,22 +13362,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" dependencies = [ "unicode-ident", ] @@ -13343,9 +13412,9 @@ dependencies = [ [[package]] name = "wasmtimer" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8d49b5d6c64e8558d9b1b065014426f35c18de636895d24893dbbd329743446" +checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" dependencies = [ "futures", "js-sys", @@ -13357,9 +13426,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" dependencies = [ "js-sys", "wasm-bindgen", @@ -13457,11 +13526,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.0", ] [[package]] @@ -13499,7 +13568,7 @@ dependencies = [ "windows-collections", "windows-core 0.61.2", "windows-future", - "windows-link", + "windows-link 0.1.3", "windows-numerics", ] @@ -13545,7 +13614,7 @@ checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement 0.60.0", "windows-interface 0.59.1", - "windows-link", + "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings 0.4.2", ] @@ -13557,7 +13626,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ "windows-core 0.61.2", - "windows-link", + "windows-link 0.1.3", "windows-threading", ] @@ -13569,7 +13638,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -13580,7 +13649,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -13591,7 +13660,7 @@ checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -13602,7 +13671,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -13613,7 +13682,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -13624,7 +13693,7 @@ checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -13633,6 +13702,12 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +[[package]] +name = "windows-link" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" + [[package]] name = "windows-numerics" version = "0.2.0" @@ -13640,7 +13715,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ "windows-core 0.61.2", - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -13649,7 +13724,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings 0.4.2", ] @@ -13678,7 +13753,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -13697,7 +13772,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -13745,6 +13820,15 @@ dependencies = [ "windows-targets 0.53.3", ] +[[package]] +name = "windows-sys" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +dependencies = [ + "windows-link 0.2.0", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -13797,7 +13881,7 @@ version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -13814,7 +13898,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -13999,9 +14083,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] @@ -14017,13 +14101,10 @@ dependencies = [ ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags 2.9.1", -] +checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" [[package]] name = "writeable" @@ -14044,7 +14125,7 @@ dependencies = [ "pharos", "rustc_version 0.4.1", "send_wrapper 0.6.0", - "thiserror 2.0.14", + "thiserror 2.0.16", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -14101,28 +14182,28 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -14142,7 +14223,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "synstructure", ] @@ -14163,7 +14244,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -14196,7 +14277,7 @@ checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -14219,9 +14300,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.15+zstd.1.5.7" +version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ "cc", "pkg-config", diff --git a/crates/node/src/args.rs b/crates/node/src/args.rs index 199b10ec..b49e38ac 100644 --- a/crates/node/src/args.rs +++ b/crates/node/src/args.rs @@ -28,7 +28,7 @@ use rollup_node_manager::{ }; use rollup_node_primitives::{BlockInfo, NodeConfig}; use rollup_node_providers::{ - BlobSource, DatabaseL1MessageProvider, FullL1Provider, L1MessageProvider, L1Provider, + BlobProvidersBuilder, DatabaseL1MessageProvider, FullL1Provider, L1MessageProvider, L1Provider, SystemContractProvider, }; use rollup_node_sequencer::{L1MessageInclusionMode, Sequencer}; @@ -296,12 +296,15 @@ impl ScrollRollupNodeConfig { // Construct the l1 provider. let l1_messages_provider = DatabaseL1MessageProvider::new(db.clone(), 0); - let blob_provider = self - .beacon_provider_args - .blob_source - .provider(self.beacon_provider_args) - .await - .expect("failed to construct L1 blob provider"); + let blob_providers_builder = BlobProvidersBuilder { + beacon: self.beacon_provider_args.beacon_node_url, + s3: self.beacon_provider_args.s3_url, + anvil: self.beacon_provider_args.anvil_url, + mock: self.beacon_provider_args.mock, + }; + let blob_provider = + blob_providers_builder.build().await.expect("failed to construct L1 blob provider"); + let l1_provider = FullL1Provider::new(blob_provider, l1_messages_provider.clone()).await; // Construct the Sequencer. @@ -430,21 +433,16 @@ impl ConsensusArgs { } /// The consensus algorithm to use. -#[derive(Debug, clap::ValueEnum, Clone, PartialEq, Eq)] +#[derive(Debug, clap::ValueEnum, Clone, PartialEq, Eq, Default)] pub enum ConsensusAlgorithm { /// System contract consensus with an optional authorized signer. If the authorized signer is /// not provided the system will use the L1 provider to query the authorized signer from L1. + #[default] SystemContract, /// No-op consensus that does not validate blocks. Noop, } -impl Default for ConsensusAlgorithm { - fn default() -> Self { - Self::SystemContract - } -} - /// The engine driver args. #[derive(Debug, Clone, clap::Args)] pub struct EngineDriverArgs { @@ -525,17 +523,18 @@ pub struct L1ProviderArgs { /// The arguments for the Beacon provider. #[derive(Debug, Default, Clone, clap::Args)] pub struct BeaconProviderArgs { - /// The URL for the Beacon chain. - #[arg(long = "beacon.url", id = "beacon_url", value_name = "BEACON_URL")] - pub url: Option, - /// The blob source for the provider. - #[arg( - long = "beacon.blob-source", - id = "beacon_blob_source", - value_name = "BEACON_BLOB_SOURCE", - default_value = "mock" - )] - pub blob_source: BlobSource, + /// The URL for the beacon node blob provider. + #[arg(long = "beacon.beacon_node_url", id = "beacon_node_url", value_name = "BEACON_NODE_URL")] + pub beacon_node_url: Option, + /// The URL for the s3 blob provider. + #[arg(long = "beacon.s3_url", id = "beacon_s3_url", value_name = "BEACON_S3_URL")] + pub s3_url: Option, + /// The URL for the anvil blob provider. + #[arg(long = "beacon.anvil_url", id = "anvil_url", value_name = "ANVIL_URL")] + pub anvil_url: Option, + /// Enable the mock blob source. + #[arg(long = "beacon.mock", default_value_t = false)] + pub mock: bool, /// The compute units per second for the provider. #[arg(long = "beacon.cups", id = "beacon_compute_units_per_second", value_name = "BEACON_COMPUTE_UNITS_PER_SECOND", default_value_t = constants::PROVIDER_COMPUTE_UNITS_PER_SECOND)] pub compute_units_per_second: u64, diff --git a/crates/node/src/test_utils.rs b/crates/node/src/test_utils.rs index 153e47c2..46f0634c 100644 --- a/crates/node/src/test_utils.rs +++ b/crates/node/src/test_utils.rs @@ -21,7 +21,6 @@ use reth_node_core::args::{DiscoveryArgs, NetworkArgs, RpcServerArgs, TxPoolArgs use reth_provider::providers::BlockchainProvider; use reth_rpc_server_types::RpcModuleSelection; use reth_tasks::TaskManager; -use rollup_node_providers::BlobSource; use rollup_node_sequencer::L1MessageInclusionMode; use std::{path::PathBuf, sync::Arc}; use tokio::sync::Mutex; @@ -150,10 +149,7 @@ pub fn default_test_scroll_rollup_node_config() -> ScrollRollupNodeConfig { chain_buffer_size: 100, }, sequencer_args: SequencerArgs { payload_building_duration: 1000, ..Default::default() }, - beacon_provider_args: BeaconProviderArgs { - blob_source: BlobSource::Mock, - ..Default::default() - }, + beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), @@ -186,10 +182,7 @@ pub fn default_sequencer_test_scroll_rollup_node_config() -> ScrollRollupNodeCon fee_recipient: Default::default(), l1_message_inclusion_mode: L1MessageInclusionMode::BlockDepth(0), }, - beacon_provider_args: BeaconProviderArgs { - blob_source: BlobSource::Mock, - ..Default::default() - }, + beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), diff --git a/crates/node/tests/e2e.rs b/crates/node/tests/e2e.rs index 617ead31..35ba54b9 100644 --- a/crates/node/tests/e2e.rs +++ b/crates/node/tests/e2e.rs @@ -32,7 +32,6 @@ use rollup_node::{ use rollup_node_chain_orchestrator::ChainOrchestratorEvent; use rollup_node_manager::{RollupManagerCommand, RollupManagerEvent}; use rollup_node_primitives::{sig_encode_hash, BatchCommitData, ConsensusUpdate}; -use rollup_node_providers::BlobSource; use rollup_node_sequencer::L1MessageInclusionMode; use rollup_node_watcher::L1Notification; use scroll_alloy_consensus::TxL1Message; @@ -66,10 +65,7 @@ async fn can_bridge_l1_messages() -> eyre::Result<()> { l1_message_inclusion_mode: L1MessageInclusionMode::BlockDepth(0), ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { - blob_source: BlobSource::Mock, - ..Default::default() - }, + beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), @@ -161,10 +157,7 @@ async fn can_sequence_and_gossip_blocks() { payload_building_duration: 1000, ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { - blob_source: BlobSource::Mock, - ..Default::default() - }, + beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), @@ -258,10 +251,7 @@ async fn can_penalize_peer_for_invalid_block() { payload_building_duration: 1000, ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { - blob_source: BlobSource::Mock, - ..Default::default() - }, + beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), @@ -821,7 +811,7 @@ async fn graceful_shutdown_consolidates_most_recent_batch_on_startup() -> eyre:: let path = node.inner.config.datadir().db().join("scroll.db?mode=rwc"); let path = PathBuf::from("sqlite://".to_string() + &*path.to_string_lossy()); config.database_args.path = Some(path.clone()); - config.beacon_provider_args.url = Some( + config.beacon_provider_args.beacon_node_url = Some( "http://dummy:8545" .parse() .expect("valid url that will not be used as test batches use calldata"), diff --git a/crates/node/tests/sync.rs b/crates/node/tests/sync.rs index cae5a84f..8d5e4cff 100644 --- a/crates/node/tests/sync.rs +++ b/crates/node/tests/sync.rs @@ -20,7 +20,6 @@ use rollup_node::{ use rollup_node_chain_orchestrator::ChainOrchestratorEvent; use rollup_node_manager::RollupManagerEvent; use rollup_node_primitives::BlockInfo; -use rollup_node_providers::BlobSource; use rollup_node_sequencer::L1MessageInclusionMode; use rollup_node_watcher::L1Notification; use scroll_alloy_consensus::TxL1Message; @@ -59,11 +58,11 @@ async fn test_should_consolidate_to_block_15k() -> eyre::Result<()> { engine_driver_args: EngineDriverArgs { sync_at_startup: false }, sequencer_args: SequencerArgs { sequencer_enabled: false, ..Default::default() }, beacon_provider_args: BeaconProviderArgs { - url: Some(Url::parse("https://eth-beacon-chain.drpc.org/rest/")?), + beacon_node_url: Some(Url::parse("https://eth-beacon-chain.drpc.org/rest/")?), compute_units_per_second: 100, max_retries: 10, initial_backoff: 100, - blob_source: BlobSource::Beacon, + ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), @@ -197,10 +196,7 @@ async fn test_should_consolidate_after_optimistic_sync() -> eyre::Result<()> { l1_message_inclusion_mode: L1MessageInclusionMode::BlockDepth(0), ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { - blob_source: BlobSource::Mock, - ..Default::default() - }, + beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), @@ -444,10 +440,7 @@ async fn test_consolidation() -> eyre::Result<()> { l1_message_inclusion_mode: L1MessageInclusionMode::BlockDepth(0), ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { - blob_source: BlobSource::Mock, - ..Default::default() - }, + beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), @@ -616,10 +609,7 @@ async fn test_chain_orchestrator_shallow_reorg_with_gap() -> eyre::Result<()> { l1_message_inclusion_mode: L1MessageInclusionMode::BlockDepth(0), ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { - blob_source: BlobSource::Mock, - ..Default::default() - }, + beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), diff --git a/crates/providers/Cargo.toml b/crates/providers/Cargo.toml index 281e826a..ecbeab68 100644 --- a/crates/providers/Cargo.toml +++ b/crates/providers/Cargo.toml @@ -38,6 +38,7 @@ reqwest = { workspace = true, features = ["json"] } serde = { workspace = true, features = ["derive"] } thiserror.workspace = true tokio = { workspace = true, default-features = false } +tracing.workspace = true [dev-dependencies] scroll-db = { workspace = true, features = ["test-utils"] } diff --git a/crates/providers/src/l1/blob/mod.rs b/crates/providers/src/l1/blob/mod.rs index 9493eadb..68f9cc95 100644 --- a/crates/providers/src/l1/blob/mod.rs +++ b/crates/providers/src/l1/blob/mod.rs @@ -12,12 +12,16 @@ pub use mock::MockBeaconProvider; mod s3; pub use s3::S3BlobProvider; - use crate::L1ProviderError; -use std::sync::{Arc, atomic::{AtomicUsize, Ordering}}; +use std::sync::{ + atomic::{AtomicUsize, Ordering}, + Arc, +}; use alloy_eips::eip4844::Blob; use alloy_primitives::B256; +use tracing::{debug, warn}; + /// An instance of the trait can be used to fetch L1 blob data. #[async_trait::async_trait] #[auto_impl::auto_impl(Arc, &)] @@ -30,12 +34,12 @@ pub trait BlobProvider: Sync + Send { ) -> Result>, L1ProviderError>; } -/// The blob source for the beacon provider. +/// The builder for the blob provider. #[derive(Debug, Clone)] -pub struct BlobSource { +pub struct BlobProvidersBuilder { /// Beacon client blob source. pub beacon: Option, - /// AWS S3 blob source. + /// AWS S3 blob source. pub s3: Option, /// Anvil sequencer blob source. pub anvil: Option, @@ -43,26 +47,32 @@ pub struct BlobSource { pub mock: bool, } -impl BlobSource { +impl BlobProvidersBuilder { /// Returns an [`BlobProviders`]. - pub async fn provider(&self) -> eyre::Result { + pub async fn build(&self) -> eyre::Result { if self.mock { - return Ok(BlobProviders::new(None, vec![Arc::new(MockBeaconProvider::default()) as Arc])); - } - - let mut beacon_provider = None; - if let Some(beacon) = &self.beacon { - beacon_provider = Some(Arc::new(BeaconClientProvider::new_http(beacon.clone()).await) as Arc); + return Ok(BlobProviders::new( + None, + vec![Arc::new(MockBeaconProvider::default()) as Arc], + )); } + let beacon_provider = if let Some(beacon) = &self.beacon { + Some(Arc::new(BeaconClientProvider::new_http(beacon.clone()).await) + as Arc) + } else { + None + }; + let mut backup_providers: Vec> = vec![]; if let Some(s3) = &self.s3 { - backup_providers.push(Arc::new(S3BlobProvider::new_http(s3.clone())) as Arc); + backup_providers + .push(Arc::new(S3BlobProvider::new_http(s3.clone())) as Arc); } if let Some(anvil) = &self.anvil { backup_providers.push(Arc::new(AnvilBlobProvider::new_http(anvil.clone())) as Arc); } - + if beacon_provider.is_none() && backup_providers.is_empty() { return Err(eyre::eyre!("No blob providers available")); } @@ -72,13 +82,14 @@ impl BlobSource { } /// A blob provider that implements round-robin load balancing across multiple providers. +#[derive(Clone)] pub struct BlobProviders { /// beacon provider beacon_provider: Option>, /// The list of underlying blob providers. backup_providers: Vec>, /// Atomic counter for round-robin selection. - counter: AtomicUsize, + counter: Arc, } impl std::fmt::Debug for BlobProviders { @@ -93,12 +104,11 @@ impl std::fmt::Debug for BlobProviders { impl BlobProviders { /// Creates a new round-robin blob provider. - pub fn new(beacon_provider: Option>, backup_providers: Vec>) -> Self { - Self { - beacon_provider, - backup_providers, - counter: AtomicUsize::new(0), - } + pub fn new( + beacon_provider: Option>, + backup_providers: Vec>, + ) -> Self { + Self { beacon_provider, backup_providers, counter: Arc::new(AtomicUsize::new(0)) } } } @@ -114,18 +124,24 @@ impl BlobProvider for BlobProviders { match beacon_provider.blob(block_timestamp, hash).await { Ok(blob) => return Ok(blob), Err(_err) => { - tracing::warn!("Beacon provider failed, trying backup providers, hash: {:?}, block_timestamp: {:?}", hash, block_timestamp); + warn!(target: "scroll::providers", ?hash, ?block_timestamp, "Beacon provider failed, trying backup providers"); } } } // Try each provider in round-robin order, starting from the next provider + if self.backup_providers.is_empty() { + // All providers failed and no backup providers available + warn!(target: "scroll::providers", ?hash, ?block_timestamp, "All beacon providers failed to fetch blob"); + return Err(L1ProviderError::Other("All blob providers failed")); + } + let start_index = self.counter.load(Ordering::Relaxed) % self.backup_providers.len(); - + for i in 0..self.backup_providers.len() { let provider_index = (start_index + i) % self.backup_providers.len(); let provider = &self.backup_providers[provider_index]; - + match provider.blob(block_timestamp, hash).await { Ok(blob) => { // Update counter to start from this provider next time if we found the blob @@ -134,15 +150,14 @@ impl BlobProvider for BlobProviders { } return Ok(blob); } - Err(_err) => { - // Continue to next provider on error - continue; + Err(err) => { + debug!(target: "scroll::providers", ?hash, ?block_timestamp, ?provider_index, ?err, "backup beacon provider failed to fetch blob"); } } } - + // All providers failed - tracing::warn!("All beacon providers failed to fetch blob, hash: {:?}, block_timestamp: {:?}", hash, block_timestamp); + warn!(target: "scroll::providers", ?hash, ?block_timestamp, "All beacon providers failed to fetch blob"); Err(L1ProviderError::Other("All blob providers failed")) } } @@ -174,14 +189,9 @@ mod tests { #[tokio::test] async fn test_blob_providers() { - let source = BlobSource { - beacon: None, - s3: None, - anvil: None, - mock: true, - }; - - let provider = source.provider().await.unwrap(); + let source = BlobProvidersBuilder { beacon: None, s3: None, anvil: None, mock: true }; + + let provider = source.build().await.unwrap(); let result = provider.blob(0, B256::ZERO).await.unwrap(); assert!(result.is_none()); // MockBeaconProvider returns None } @@ -193,13 +203,109 @@ mod tests { vec![ Arc::new(MockBeaconProvider::default()) as Arc, Arc::new(MockBeaconProvider::default()) as Arc, - ] + ], ); - + // Test multiple calls to ensure round-robin behavior for _ in 0..5 { let result = providers.blob(0, B256::ZERO).await.unwrap(); assert!(result.is_none()); } } + + #[tokio::test] + async fn test_blob_providers_beacon_priority() { + // Test that beacon provider is always tried first + let providers = BlobProviders::new( + Some(Arc::new(MockBeaconProvider::default()) as Arc), + vec![ + Arc::new(MockBeaconProvider::default()) as Arc, + Arc::new(MockBeaconProvider::default()) as Arc, + ], + ); + + let result = providers.blob(0, B256::ZERO).await.unwrap(); + assert!(result.is_none()); // MockBeaconProvider returns None + } + + #[tokio::test] + async fn test_blob_providers_round_robin() { + // Create a provider with only backup providers to test round-robin + let providers = BlobProviders::new( + None, + vec![ + Arc::new(MockBeaconProvider::default()) as Arc, + Arc::new(MockBeaconProvider::default()) as Arc, + Arc::new(MockBeaconProvider::default()) as Arc, + ], + ); + + // Test multiple calls to verify round-robin behavior + for i in 0..10 { + let result = providers.blob(0, B256::from([i as u8; 32])).await.unwrap(); + assert!(result.is_none()); // MockBeaconProvider always returns None + } + } + + #[tokio::test] + async fn test_blob_providers_empty_fails() { + let providers = BlobProviders::new(None, vec![]); + + // Should fail when no providers are available + let result = providers.blob(0, B256::ZERO).await; + assert!(result.is_err()); + } + + #[tokio::test] + async fn test_blob_providers_builder_mock() { + let builder = BlobProvidersBuilder { beacon: None, s3: None, anvil: None, mock: true }; + + let providers = builder.build().await.unwrap(); + let result = providers.blob(0, B256::ZERO).await.unwrap(); + assert!(result.is_none()); + } + + #[tokio::test] + async fn test_blob_providers_builder_no_providers() { + let builder = BlobProvidersBuilder { beacon: None, s3: None, anvil: None, mock: false }; + + // Should fail when no providers are configured + let result = builder.build().await; + assert!(result.is_err()); + assert!(result.unwrap_err().to_string().contains("No blob providers available")); + } + + #[tokio::test] + async fn test_blob_providers_clone() { + let providers = BlobProviders::new( + Some(Arc::new(MockBeaconProvider::default()) as Arc), + vec![Arc::new(MockBeaconProvider::default()) as Arc], + ); + + // Test that BlobProviders can be cloned + let cloned_providers = providers.clone(); + + // Both should work independently + let result1 = providers.blob(0, B256::ZERO).await.unwrap(); + let result2 = cloned_providers.blob(0, B256::ZERO).await.unwrap(); + + assert!(result1.is_none()); + assert!(result2.is_none()); + } + + #[tokio::test] + async fn test_blob_providers_debug_format() { + let providers = BlobProviders::new( + Some(Arc::new(MockBeaconProvider::default()) as Arc), + vec![ + Arc::new(MockBeaconProvider::default()) as Arc, + Arc::new(MockBeaconProvider::default()) as Arc, + ], + ); + + let debug_str = format!("{:?}", providers); + assert!(debug_str.contains("BlobProviders")); + assert!(debug_str.contains("has_beacon_provider")); + assert!(debug_str.contains("backup_providers_count")); + } } diff --git a/crates/providers/src/lib.rs b/crates/providers/src/lib.rs index f81ad306..3af9b449 100644 --- a/crates/providers/src/lib.rs +++ b/crates/providers/src/lib.rs @@ -10,8 +10,8 @@ pub use block::BlockDataProvider; mod l1; pub use l1::{ blob::{ - AnvilBlobProvider, BeaconClientProvider, BlobProvider, BlobSource, MockBeaconProvider, - S3BlobProvider, + AnvilBlobProvider, BeaconClientProvider, BlobProvider, BlobProvidersBuilder, + MockBeaconProvider, S3BlobProvider, }, message::{DatabaseL1MessageProvider, L1MessageProvider}, system_contract::{SystemContractProvider, AUTHORIZED_SIGNER_STORAGE_SLOT}, diff --git a/crates/sequencer/src/lib.rs b/crates/sequencer/src/lib.rs index 23025b5a..07cc3e19 100644 --- a/crates/sequencer/src/lib.rs +++ b/crates/sequencer/src/lib.rs @@ -30,20 +30,15 @@ pub type PayloadBuildingJobFuture = Pin> + Send>>; /// Configuration for L1 message inclusion strategy. -#[derive(Debug, Clone, Copy)] +#[derive(Debug, Clone, Copy, Default)] pub enum L1MessageInclusionMode { /// Include L1 messages based on block depth. BlockDepth(u64), /// Include only finalized L1 messages. + #[default] Finalized, } -impl Default for L1MessageInclusionMode { - fn default() -> Self { - Self::Finalized - } -} - impl FromStr for L1MessageInclusionMode { type Err = String; diff --git a/crates/sequencer/tests/e2e.rs b/crates/sequencer/tests/e2e.rs index 5f889c84..6b4c792b 100644 --- a/crates/sequencer/tests/e2e.rs +++ b/crates/sequencer/tests/e2e.rs @@ -17,7 +17,7 @@ use rollup_node::{ }; use rollup_node_manager::RollupManagerEvent; use rollup_node_primitives::{sig_encode_hash, BlockInfo, L1MessageEnvelope}; -use rollup_node_providers::{BlobSource, DatabaseL1MessageProvider, ScrollRootProvider}; +use rollup_node_providers::{DatabaseL1MessageProvider, ScrollRootProvider}; use rollup_node_sequencer::{L1MessageInclusionMode, Sequencer}; use rollup_node_signer::SignerEvent; use scroll_alloy_consensus::TxL1Message; @@ -449,10 +449,7 @@ async fn can_sequence_blocks_with_private_key_file() -> eyre::Result<()> { payload_building_duration: 1000, ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { - blob_source: BlobSource::Mock, - ..Default::default() - }, + beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, signer_args: SignerArgs { key_file: Some(temp_file.path().to_path_buf()), aws_kms_key_id: None, @@ -540,10 +537,7 @@ async fn can_sequence_blocks_with_hex_key_file_without_prefix() -> eyre::Result< payload_building_duration: 1000, ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { - blob_source: BlobSource::Mock, - ..Default::default() - }, + beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, signer_args: SignerArgs { key_file: Some(temp_file.path().to_path_buf()), aws_kms_key_id: None, From 3cea4223d12f211c375d46ec933b6eb719aee209 Mon Sep 17 00:00:00 2001 From: Morty Date: Mon, 8 Sep 2025 13:41:43 +0800 Subject: [PATCH 03/10] fix: ci doc --- crates/providers/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/providers/src/lib.rs b/crates/providers/src/lib.rs index 3af9b449..c842210a 100644 --- a/crates/providers/src/lib.rs +++ b/crates/providers/src/lib.rs @@ -10,7 +10,7 @@ pub use block::BlockDataProvider; mod l1; pub use l1::{ blob::{ - AnvilBlobProvider, BeaconClientProvider, BlobProvider, BlobProvidersBuilder, + AnvilBlobProvider, BeaconClientProvider, BlobProvider, BlobProviders, BlobProvidersBuilder, MockBeaconProvider, S3BlobProvider, }, message::{DatabaseL1MessageProvider, L1MessageProvider}, From 2e874a5e7547b0576f04578e8df6910dec5d2016 Mon Sep 17 00:00:00 2001 From: Morty Date: Mon, 8 Sep 2025 13:46:28 +0800 Subject: [PATCH 04/10] adjust log level --- crates/providers/src/l1/blob/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/providers/src/l1/blob/mod.rs b/crates/providers/src/l1/blob/mod.rs index 68f9cc95..024e1373 100644 --- a/crates/providers/src/l1/blob/mod.rs +++ b/crates/providers/src/l1/blob/mod.rs @@ -124,7 +124,7 @@ impl BlobProvider for BlobProviders { match beacon_provider.blob(block_timestamp, hash).await { Ok(blob) => return Ok(blob), Err(_err) => { - warn!(target: "scroll::providers", ?hash, ?block_timestamp, "Beacon provider failed, trying backup providers"); + debug!(target: "scroll::providers", ?hash, ?block_timestamp, "Beacon provider failed, trying backup providers"); } } } From 6fd967e5156006e981da2476c0724c04fdb7f0d9 Mon Sep 17 00:00:00 2001 From: Morty Date: Wed, 10 Sep 2025 18:14:06 +0800 Subject: [PATCH 05/10] address comments --- crates/node/src/args.rs | 46 ++++++------ crates/node/src/test_utils.rs | 6 +- crates/node/tests/e2e.rs | 16 ++--- crates/node/tests/sync.rs | 12 ++-- crates/providers/src/l1/blob/mod.rs | 104 ++++++++++++++++++---------- crates/sequencer/tests/e2e.rs | 6 +- 6 files changed, 110 insertions(+), 80 deletions(-) diff --git a/crates/node/src/args.rs b/crates/node/src/args.rs index 40516cc1..c44049e1 100644 --- a/crates/node/src/args.rs +++ b/crates/node/src/args.rs @@ -61,9 +61,9 @@ pub struct ScrollRollupNodeConfig { /// Engine driver args. #[command(flatten)] pub engine_driver_args: EngineDriverArgs, - /// The beacon provider arguments. + /// The blob provider arguments. #[command(flatten)] - pub beacon_provider_args: BeaconProviderArgs, + pub blob_provider_args: BlobProviderArgs, /// The L1 provider arguments #[command(flatten)] pub l1_provider_args: L1ProviderArgs, @@ -298,10 +298,10 @@ impl ScrollRollupNodeConfig { // Construct the l1 provider. let l1_messages_provider = DatabaseL1MessageProvider::new(db.clone(), 0); let blob_providers_builder = BlobProvidersBuilder { - beacon: self.beacon_provider_args.beacon_node_url, - s3: self.beacon_provider_args.s3_url, - anvil: self.beacon_provider_args.anvil_url, - mock: self.beacon_provider_args.mock, + beacon: self.blob_provider_args.beacon_node_urls, + s3: self.blob_provider_args.s3_url, + anvil: self.blob_provider_args.anvil_url, + mock: self.blob_provider_args.mock, }; let blob_provider = blob_providers_builder.build().await.expect("failed to construct L1 blob provider"); @@ -548,27 +548,31 @@ pub struct L1ProviderArgs { /// The arguments for the Beacon provider. #[derive(Debug, Default, Clone, clap::Args)] -pub struct BeaconProviderArgs { - /// The URL for the beacon node blob provider. - #[arg(long = "beacon.beacon_node_url", id = "beacon_node_url", value_name = "BEACON_NODE_URL")] - pub beacon_node_url: Option, +pub struct BlobProviderArgs { + /// The URLs for the beacon node blob provider. + #[arg( + long = "blob.beacon_node_urls", + id = "blob_beacon_node_urls", + value_name = "BLOB_BEACON_NODE_URLS" + )] + pub beacon_node_urls: Option>, /// The URL for the s3 blob provider. - #[arg(long = "beacon.s3_url", id = "beacon_s3_url", value_name = "BEACON_S3_URL")] + #[arg(long = "blob.s3_url", id = "blob_s3_url", value_name = "BLOB_S3_URL")] pub s3_url: Option, /// The URL for the anvil blob provider. - #[arg(long = "beacon.anvil_url", id = "anvil_url", value_name = "ANVIL_URL")] + #[arg(long = "blob.anvil_url", id = "blob_anvil_url", value_name = "BLOB_ANVIL_URL")] pub anvil_url: Option, /// Enable the mock blob source. - #[arg(long = "beacon.mock", default_value_t = false)] + #[arg(long = "blob.mock")] pub mock: bool, /// The compute units per second for the provider. - #[arg(long = "beacon.cups", id = "beacon_compute_units_per_second", value_name = "BEACON_COMPUTE_UNITS_PER_SECOND", default_value_t = constants::PROVIDER_COMPUTE_UNITS_PER_SECOND)] + #[arg(long = "blob.cups", id = "blob_compute_units_per_second", value_name = "BLOB_COMPUTE_UNITS_PER_SECOND", default_value_t = constants::PROVIDER_COMPUTE_UNITS_PER_SECOND)] pub compute_units_per_second: u64, /// The max amount of retries for the provider. - #[arg(long = "beacon.max-retries", id = "beacon_max_retries", value_name = "BEACON_MAX_RETRIES", default_value_t = constants::PROVIDER_MAX_RETRIES)] + #[arg(long = "blob.max-retries", id = "blob_max_retries", value_name = "BLOB_MAX_RETRIES", default_value_t = constants::PROVIDER_MAX_RETRIES)] pub max_retries: u32, /// The initial backoff for the provider. - #[arg(long = "beacon.initial-backoff", id = "beacon_initial_backoff", value_name = "BEACON_INITIAL_BACKOFF", default_value_t = constants::PROVIDER_INITIAL_BACKOFF)] + #[arg(long = "blob.initial-backoff", id = "blob_initial_backoff", value_name = "BLOB_INITIAL_BACKOFF", default_value_t = constants::PROVIDER_INITIAL_BACKOFF)] pub initial_backoff: u64, } @@ -782,7 +786,7 @@ mod tests { engine_driver_args: EngineDriverArgs::default(), chain_orchestrator_args: ChainOrchestratorArgs::default(), l1_provider_args: L1ProviderArgs::default(), - beacon_provider_args: BeaconProviderArgs::default(), + blob_provider_args: BlobProviderArgs::default(), network_args: NetworkArgs::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs { @@ -812,7 +816,7 @@ mod tests { engine_driver_args: EngineDriverArgs::default(), chain_orchestrator_args: ChainOrchestratorArgs::default(), l1_provider_args: L1ProviderArgs::default(), - beacon_provider_args: BeaconProviderArgs::default(), + blob_provider_args: BlobProviderArgs::default(), network_args: NetworkArgs::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs { @@ -840,7 +844,7 @@ mod tests { chain_orchestrator_args: ChainOrchestratorArgs::default(), engine_driver_args: EngineDriverArgs::default(), l1_provider_args: L1ProviderArgs::default(), - beacon_provider_args: BeaconProviderArgs::default(), + blob_provider_args: BlobProviderArgs::default(), network_args: NetworkArgs::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), @@ -863,7 +867,7 @@ mod tests { engine_driver_args: EngineDriverArgs::default(), chain_orchestrator_args: ChainOrchestratorArgs::default(), l1_provider_args: L1ProviderArgs::default(), - beacon_provider_args: BeaconProviderArgs::default(), + blob_provider_args: BlobProviderArgs::default(), network_args: NetworkArgs::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), @@ -882,7 +886,7 @@ mod tests { engine_driver_args: EngineDriverArgs::default(), chain_orchestrator_args: ChainOrchestratorArgs::default(), l1_provider_args: L1ProviderArgs::default(), - beacon_provider_args: BeaconProviderArgs::default(), + blob_provider_args: BlobProviderArgs::default(), network_args: NetworkArgs::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), diff --git a/crates/node/src/test_utils.rs b/crates/node/src/test_utils.rs index c19f1cbc..b9561409 100644 --- a/crates/node/src/test_utils.rs +++ b/crates/node/src/test_utils.rs @@ -3,7 +3,7 @@ use crate::{ConsensusArgs, GasPriceOracleArgs}; use super::{ - BeaconProviderArgs, ChainOrchestratorArgs, DatabaseArgs, EngineDriverArgs, L1ProviderArgs, + BlobProviderArgs, ChainOrchestratorArgs, DatabaseArgs, EngineDriverArgs, L1ProviderArgs, ScrollRollupNode, ScrollRollupNodeConfig, SequencerArgs, }; use alloy_primitives::Bytes; @@ -153,7 +153,7 @@ pub fn default_test_scroll_rollup_node_config() -> ScrollRollupNodeConfig { allow_empty_blocks: true, ..Default::default() }, - beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, + blob_provider_args: BlobProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), @@ -188,7 +188,7 @@ pub fn default_sequencer_test_scroll_rollup_node_config() -> ScrollRollupNodeCon l1_message_inclusion_mode: L1MessageInclusionMode::BlockDepth(0), allow_empty_blocks: true, }, - beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, + blob_provider_args: BlobProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), diff --git a/crates/node/tests/e2e.rs b/crates/node/tests/e2e.rs index 34b3836a..1bb17963 100644 --- a/crates/node/tests/e2e.rs +++ b/crates/node/tests/e2e.rs @@ -24,7 +24,7 @@ use rollup_node::{ default_sequencer_test_scroll_rollup_node_config, default_test_scroll_rollup_node_config, generate_tx, setup_engine, }, - BeaconProviderArgs, ChainOrchestratorArgs, ConsensusAlgorithm, ConsensusArgs, DatabaseArgs, + BlobProviderArgs, ChainOrchestratorArgs, ConsensusAlgorithm, ConsensusArgs, DatabaseArgs, EngineDriverArgs, GasPriceOracleArgs, L1ProviderArgs, NetworkArgs as ScrollNetworkArgs, RollupNodeContext, RollupNodeExtApiClient, ScrollRollupNode, ScrollRollupNodeConfig, SequencerArgs, @@ -67,7 +67,7 @@ async fn can_bridge_l1_messages() -> eyre::Result<()> { allow_empty_blocks: true, ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, + blob_provider_args: BlobProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), @@ -162,7 +162,7 @@ async fn can_sequence_and_gossip_blocks() { allow_empty_blocks: true, ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, + blob_provider_args: BlobProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), @@ -259,7 +259,7 @@ async fn can_penalize_peer_for_invalid_block() { allow_empty_blocks: true, ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, + blob_provider_args: BlobProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), @@ -819,11 +819,9 @@ async fn graceful_shutdown_consolidates_most_recent_batch_on_startup() -> eyre:: let path = node.inner.config.datadir().db().join("scroll.db?mode=rwc"); let path = PathBuf::from("sqlite://".to_string() + &*path.to_string_lossy()); config.database_args.path = Some(path.clone()); - config.beacon_provider_args.beacon_node_url = Some( - "http://dummy:8545" - .parse() - .expect("valid url that will not be used as test batches use calldata"), - ); + config.blob_provider_args.beacon_node_urls = Some(vec!["http://dummy:8545" + .parse() + .expect("valid url that will not be used as test batches use calldata")]); let (_, events) = ScrollWireProtocolHandler::new(ScrollWireConfig::new(true)); let (rnm, handle, l1_notification_tx) = config diff --git a/crates/node/tests/sync.rs b/crates/node/tests/sync.rs index 7fdcd555..66359d19 100644 --- a/crates/node/tests/sync.rs +++ b/crates/node/tests/sync.rs @@ -14,7 +14,7 @@ use rollup_node::{ default_sequencer_test_scroll_rollup_node_config, default_test_scroll_rollup_node_config, setup_engine, }, - BeaconProviderArgs, ChainOrchestratorArgs, ConsensusArgs, DatabaseArgs, EngineDriverArgs, + BlobProviderArgs, ChainOrchestratorArgs, ConsensusArgs, DatabaseArgs, EngineDriverArgs, GasPriceOracleArgs, L1ProviderArgs, NetworkArgs, ScrollRollupNodeConfig, SequencerArgs, }; use rollup_node_chain_orchestrator::ChainOrchestratorEvent; @@ -62,8 +62,8 @@ async fn test_should_consolidate_to_block_15k() -> eyre::Result<()> { allow_empty_blocks: true, ..Default::default() }, - beacon_provider_args: BeaconProviderArgs { - beacon_node_url: Some(Url::parse("https://eth-beacon-chain.drpc.org/rest/")?), + blob_provider_args: BlobProviderArgs { + beacon_node_urls: Some(vec![Url::parse("https://eth-beacon-chain.drpc.org/rest/")?]), compute_units_per_second: 100, max_retries: 10, initial_backoff: 100, @@ -204,7 +204,7 @@ async fn test_should_consolidate_after_optimistic_sync() -> eyre::Result<()> { allow_empty_blocks: true, ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, + blob_provider_args: BlobProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), @@ -451,7 +451,7 @@ async fn test_consolidation() -> eyre::Result<()> { allow_empty_blocks: true, ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, + blob_provider_args: BlobProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), @@ -622,7 +622,7 @@ async fn test_chain_orchestrator_shallow_reorg_with_gap() -> eyre::Result<()> { allow_empty_blocks: true, ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, + blob_provider_args: BlobProviderArgs { mock: true, ..Default::default() }, signer_args: Default::default(), gas_price_oracle_args: GasPriceOracleArgs::default(), consensus_args: ConsensusArgs::noop(), diff --git a/crates/providers/src/l1/blob/mod.rs b/crates/providers/src/l1/blob/mod.rs index 024e1373..397d22d8 100644 --- a/crates/providers/src/l1/blob/mod.rs +++ b/crates/providers/src/l1/blob/mod.rs @@ -38,7 +38,7 @@ pub trait BlobProvider: Sync + Send { #[derive(Debug, Clone)] pub struct BlobProvidersBuilder { /// Beacon client blob source. - pub beacon: Option, + pub beacon: Option>, /// AWS S3 blob source. pub s3: Option, /// Anvil sequencer blob source. @@ -52,16 +52,20 @@ impl BlobProvidersBuilder { pub async fn build(&self) -> eyre::Result { if self.mock { return Ok(BlobProviders::new( - None, + vec![], vec![Arc::new(MockBeaconProvider::default()) as Arc], )); } - let beacon_provider = if let Some(beacon) = &self.beacon { - Some(Arc::new(BeaconClientProvider::new_http(beacon.clone()).await) - as Arc) + let beacon_providers = if let Some(beacon_urls) = &self.beacon { + let mut providers = Vec::new(); + for url in beacon_urls { + providers.push(Arc::new(BeaconClientProvider::new_http(url.clone()).await) + as Arc); + } + providers } else { - None + Vec::new() }; let mut backup_providers: Vec> = vec![]; @@ -73,31 +77,34 @@ impl BlobProvidersBuilder { backup_providers.push(Arc::new(AnvilBlobProvider::new_http(anvil.clone())) as Arc); } - if beacon_provider.is_none() && backup_providers.is_empty() { + if beacon_providers.is_empty() && backup_providers.is_empty() { return Err(eyre::eyre!("No blob providers available")); } - Ok(BlobProviders::new(beacon_provider, backup_providers)) + Ok(BlobProviders::new(beacon_providers, backup_providers)) } } /// A blob provider that implements round-robin load balancing across multiple providers. #[derive(Clone)] pub struct BlobProviders { - /// beacon provider - beacon_provider: Option>, - /// The list of underlying blob providers. + /// beacon providers + beacon_providers: Vec>, + /// The list of underlying backup blob providers. backup_providers: Vec>, - /// Atomic counter for round-robin selection. - counter: Arc, + /// Atomic counter for round-robin selection for beacon providers. + beacon_counter: Arc, + /// Atomic counter for round-robin selection for backup providers. + backup_counter: Arc, } impl std::fmt::Debug for BlobProviders { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.debug_struct("BlobProviders") - .field("has_beacon_provider", &self.beacon_provider.is_some()) + .field("beacon_providers_count", &self.beacon_providers.len()) .field("backup_providers_count", &self.backup_providers.len()) - .field("counter", &self.counter.load(Ordering::Relaxed)) + .field("beacon_counter", &self.beacon_counter.load(Ordering::Relaxed)) + .field("backup_counter", &self.backup_counter.load(Ordering::Relaxed)) .finish() } } @@ -105,10 +112,15 @@ impl std::fmt::Debug for BlobProviders { impl BlobProviders { /// Creates a new round-robin blob provider. pub fn new( - beacon_provider: Option>, + beacon_providers: Vec>, backup_providers: Vec>, ) -> Self { - Self { beacon_provider, backup_providers, counter: Arc::new(AtomicUsize::new(0)) } + Self { + beacon_providers, + backup_providers, + beacon_counter: Arc::new(AtomicUsize::new(0)), + backup_counter: Arc::new(AtomicUsize::new(0)), + } } } @@ -119,24 +131,40 @@ impl BlobProvider for BlobProviders { block_timestamp: u64, hash: B256, ) -> Result>, L1ProviderError> { - // Always try the beacon provider first - if let Some(beacon_provider) = &self.beacon_provider { - match beacon_provider.blob(block_timestamp, hash).await { - Ok(blob) => return Ok(blob), - Err(_err) => { - debug!(target: "scroll::providers", ?hash, ?block_timestamp, "Beacon provider failed, trying backup providers"); + // First try beacon providers in round-robin order + if !self.beacon_providers.is_empty() { + let start_index = + self.beacon_counter.load(Ordering::Relaxed) % self.beacon_providers.len(); + + for i in 0..self.beacon_providers.len() { + let provider_index = (start_index + i) % self.beacon_providers.len(); + let provider = &self.beacon_providers[provider_index]; + + match provider.blob(block_timestamp, hash).await { + Ok(blob) => { + // Update counter to start from next provider next time if we found the blob + if blob.is_some() { + self.beacon_counter.store(provider_index + 1, Ordering::Relaxed); + } + return Ok(blob); + } + Err(err) => { + debug!(target: "scroll::providers", ?hash, ?block_timestamp, ?provider_index, ?err, "beacon provider failed to fetch blob"); + } } } + + debug!(target: "scroll::providers", ?hash, ?block_timestamp, "All beacon providers failed, trying backup providers"); } - // Try each provider in round-robin order, starting from the next provider + // Try backup providers in round-robin order if self.backup_providers.is_empty() { // All providers failed and no backup providers available - warn!(target: "scroll::providers", ?hash, ?block_timestamp, "All beacon providers failed to fetch blob"); + warn!(target: "scroll::providers", ?hash, ?block_timestamp, "All providers failed to fetch blob"); return Err(L1ProviderError::Other("All blob providers failed")); } - let start_index = self.counter.load(Ordering::Relaxed) % self.backup_providers.len(); + let start_index = self.backup_counter.load(Ordering::Relaxed) % self.backup_providers.len(); for i in 0..self.backup_providers.len() { let provider_index = (start_index + i) % self.backup_providers.len(); @@ -144,20 +172,20 @@ impl BlobProvider for BlobProviders { match provider.blob(block_timestamp, hash).await { Ok(blob) => { - // Update counter to start from this provider next time if we found the blob + // Update counter to start from next provider next time if we found the blob if blob.is_some() { - self.counter.store(provider_index + 1, Ordering::Relaxed); + self.backup_counter.store(provider_index + 1, Ordering::Relaxed); } return Ok(blob); } Err(err) => { - debug!(target: "scroll::providers", ?hash, ?block_timestamp, ?provider_index, ?err, "backup beacon provider failed to fetch blob"); + debug!(target: "scroll::providers", ?hash, ?block_timestamp, ?provider_index, ?err, "backup provider failed to fetch blob"); } } } // All providers failed - warn!(target: "scroll::providers", ?hash, ?block_timestamp, "All beacon providers failed to fetch blob"); + warn!(target: "scroll::providers", ?hash, ?block_timestamp, "All providers failed to fetch blob"); Err(L1ProviderError::Other("All blob providers failed")) } } @@ -199,7 +227,7 @@ mod tests { #[tokio::test] async fn test_blob_providers_with_backup() { let providers = BlobProviders::new( - None, + vec![], vec![ Arc::new(MockBeaconProvider::default()) as Arc, Arc::new(MockBeaconProvider::default()) as Arc, @@ -215,9 +243,9 @@ mod tests { #[tokio::test] async fn test_blob_providers_beacon_priority() { - // Test that beacon provider is always tried first + // Test that beacon providers are tried first let providers = BlobProviders::new( - Some(Arc::new(MockBeaconProvider::default()) as Arc), + vec![Arc::new(MockBeaconProvider::default()) as Arc], vec![ Arc::new(MockBeaconProvider::default()) as Arc, Arc::new(MockBeaconProvider::default()) as Arc, @@ -232,7 +260,7 @@ mod tests { async fn test_blob_providers_round_robin() { // Create a provider with only backup providers to test round-robin let providers = BlobProviders::new( - None, + vec![], vec![ Arc::new(MockBeaconProvider::default()) as Arc, Arc::new(MockBeaconProvider::default()) as Arc, @@ -249,7 +277,7 @@ mod tests { #[tokio::test] async fn test_blob_providers_empty_fails() { - let providers = BlobProviders::new(None, vec![]); + let providers = BlobProviders::new(vec![], vec![]); // Should fail when no providers are available let result = providers.blob(0, B256::ZERO).await; @@ -278,7 +306,7 @@ mod tests { #[tokio::test] async fn test_blob_providers_clone() { let providers = BlobProviders::new( - Some(Arc::new(MockBeaconProvider::default()) as Arc), + vec![Arc::new(MockBeaconProvider::default()) as Arc], vec![Arc::new(MockBeaconProvider::default()) as Arc], ); @@ -296,7 +324,7 @@ mod tests { #[tokio::test] async fn test_blob_providers_debug_format() { let providers = BlobProviders::new( - Some(Arc::new(MockBeaconProvider::default()) as Arc), + vec![Arc::new(MockBeaconProvider::default()) as Arc], vec![ Arc::new(MockBeaconProvider::default()) as Arc, Arc::new(MockBeaconProvider::default()) as Arc, @@ -305,7 +333,7 @@ mod tests { let debug_str = format!("{:?}", providers); assert!(debug_str.contains("BlobProviders")); - assert!(debug_str.contains("has_beacon_provider")); + assert!(debug_str.contains("beacon_providers_count")); assert!(debug_str.contains("backup_providers_count")); } } diff --git a/crates/sequencer/tests/e2e.rs b/crates/sequencer/tests/e2e.rs index 938c725d..f6cfa2eb 100644 --- a/crates/sequencer/tests/e2e.rs +++ b/crates/sequencer/tests/e2e.rs @@ -11,7 +11,7 @@ use reth_scroll_node::test_utils::setup; use rollup_node::{ constants::SCROLL_GAS_LIMIT, test_utils::{default_test_scroll_rollup_node_config, setup_engine}, - BeaconProviderArgs, ChainOrchestratorArgs, ConsensusArgs, DatabaseArgs, EngineDriverArgs, + BlobProviderArgs, ChainOrchestratorArgs, ConsensusArgs, DatabaseArgs, EngineDriverArgs, GasPriceOracleArgs, L1ProviderArgs, NetworkArgs, ScrollRollupNodeConfig, SequencerArgs, SignerArgs, }; @@ -509,7 +509,7 @@ async fn can_sequence_blocks_with_private_key_file() -> eyre::Result<()> { allow_empty_blocks: true, ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, + blob_provider_args: BlobProviderArgs { mock: true, ..Default::default() }, signer_args: SignerArgs { key_file: Some(temp_file.path().to_path_buf()), aws_kms_key_id: None, @@ -599,7 +599,7 @@ async fn can_sequence_blocks_with_hex_key_file_without_prefix() -> eyre::Result< allow_empty_blocks: true, ..SequencerArgs::default() }, - beacon_provider_args: BeaconProviderArgs { mock: true, ..Default::default() }, + blob_provider_args: BlobProviderArgs { mock: true, ..Default::default() }, signer_args: SignerArgs { key_file: Some(temp_file.path().to_path_buf()), aws_kms_key_id: None, From f1aafd98177f97480b1d0fbe85349d05c73a9dc2 Mon Sep 17 00:00:00 2001 From: frisitano Date: Thu, 11 Sep 2025 15:15:34 +0800 Subject: [PATCH 06/10] add blob provider args for docker integration testing --- tests/launch_rollup_node_follower.bash | 3 ++- tests/launch_rollup_node_sequencer.bash | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/launch_rollup_node_follower.bash b/tests/launch_rollup_node_follower.bash index eb3bca81..e3f101d7 100644 --- a/tests/launch_rollup_node_follower.bash +++ b/tests/launch_rollup_node_follower.bash @@ -12,4 +12,5 @@ exec rollup-node node --chain /l2reth/l2reth-genesis-e2e.json --datadir=/l2reth --rpc.max-connections=5000 \ --trusted-peers enode://8fc4f6dfd0a2ebf56560d0b0ef5e60ad7bcb01e13f929eae53a4c77086d9c1e74eb8b8c8945035d25c6287afdd871f0d41b3fd7e189697decd0f13538d1ac620@l2geth-sequencer:30303,enode://e7f7e271f62bd2b697add14e6987419758c97e83b0478bd948f5f2d271495728e7edef5bd78ad65258ac910f28e86928ead0c42ee51f2a0168d8ca23ba939766@rollup-node-sequencer:30303 \ --engine.sync-at-startup false \ - --l1.url http://l1-node:8545 + --l1.url http://l1-node:8545 \ + --blob.anvil_url = http://l1-node:8545 diff --git a/tests/launch_rollup_node_sequencer.bash b/tests/launch_rollup_node_sequencer.bash index 5e9d021b..a8ce2b99 100644 --- a/tests/launch_rollup_node_sequencer.bash +++ b/tests/launch_rollup_node_sequencer.bash @@ -25,5 +25,5 @@ exec rollup-node node --chain /l2reth/l2reth-genesis-e2e.json --datadir=/l2reth --p2p-secret-key /l2reth/nodekey \ --trusted-peers enode://8fc4f6dfd0a2ebf56560d0b0ef5e60ad7bcb01e13f929eae53a4c77086d9c1e74eb8b8c8945035d25c6287afdd871f0d41b3fd7e189697decd0f13538d1ac620@l2geth-sequencer:30303 \ --engine.sync-at-startup false \ - --l1.url http://l1-node:8545 - + --l1.url http://l1-node:8545 \ + --blob.anvil_url = http://l1-node:8545 From af44408045e12e3ab2ed612ac14c40dd9808dd74 Mon Sep 17 00:00:00 2001 From: Morty Date: Mon, 15 Sep 2025 18:50:57 +0800 Subject: [PATCH 07/10] address comment --- crates/node/tests/e2e.rs | 8 +-- crates/providers/src/l1/blob/mod.rs | 108 ++++++++++++++++------------ 2 files changed, 67 insertions(+), 49 deletions(-) diff --git a/crates/node/tests/e2e.rs b/crates/node/tests/e2e.rs index 5b21a19e..28aea6d9 100644 --- a/crates/node/tests/e2e.rs +++ b/crates/node/tests/e2e.rs @@ -821,11 +821,9 @@ async fn graceful_shutdown_consolidates_most_recent_batch_on_startup() -> eyre:: let mut config = default_test_scroll_rollup_node_config(); let path = node.inner.config.datadir().db().join("scroll.db?mode=rwc"); let path = PathBuf::from("sqlite://".to_string() + &*path.to_string_lossy()); - config.beacon_provider_args.url = Some( - "http://dummy:8545" - .parse() - .expect("valid url that will not be used as test batches use calldata"), - ); + config.blob_provider_args.beacon_node_urls = Some(vec!["http://dummy:8545" + .parse() + .expect("valid url that will not be used as test batches use calldata")]); config.hydrate(node.inner.config.clone()).await?; let (_, events) = ScrollWireProtocolHandler::new(ScrollWireConfig::new(true)); diff --git a/crates/providers/src/l1/blob/mod.rs b/crates/providers/src/l1/blob/mod.rs index 397d22d8..d1b62370 100644 --- a/crates/providers/src/l1/blob/mod.rs +++ b/crates/providers/src/l1/blob/mod.rs @@ -20,7 +20,7 @@ use std::sync::{ use alloy_eips::eip4844::Blob; use alloy_primitives::B256; -use tracing::{debug, warn}; +use tracing::{debug, info, warn}; /// An instance of the trait can be used to fetch L1 blob data. #[async_trait::async_trait] @@ -51,6 +51,7 @@ impl BlobProvidersBuilder { /// Returns an [`BlobProviders`]. pub async fn build(&self) -> eyre::Result { if self.mock { + info!(target: "scroll::providers", "Running with mock blob provider - all other blob provider configurations are ignored"); return Ok(BlobProviders::new( vec![], vec![Arc::new(MockBeaconProvider::default()) as Arc], @@ -122,6 +123,40 @@ impl BlobProviders { backup_counter: Arc::new(AtomicUsize::new(0)), } } + + /// Try providers in round-robin order and return the first successful blob found. + async fn try_providers( + &self, + providers: &[Arc], + counter: &AtomicUsize, + provider_type: &str, + block_timestamp: u64, + hash: B256, + ) -> Result>, L1ProviderError> { + if providers.is_empty() { + return Err(L1ProviderError::Other("No providers available")); + } + + let start_index = counter.load(Ordering::Relaxed) % providers.len(); + + for i in 0..providers.len() { + let provider_index = (start_index + i) % providers.len(); + let provider = &providers[provider_index]; + + match provider.blob(block_timestamp, hash).await { + Ok(blob) => { + return Ok(blob); + } + Err(err) => { + debug!(target: "scroll::providers", ?hash, ?block_timestamp, ?provider_index, ?err, provider_type, "provider failed to fetch blob"); + counter.store(provider_index + 1, Ordering::Relaxed); + } + } + } + + // All providers tried, none had the blob (but some may have responded successfully) + Ok(None) + } } #[async_trait::async_trait] @@ -131,55 +166,40 @@ impl BlobProvider for BlobProviders { block_timestamp: u64, hash: B256, ) -> Result>, L1ProviderError> { - // First try beacon providers in round-robin order + // First try beacon providers if !self.beacon_providers.is_empty() { - let start_index = - self.beacon_counter.load(Ordering::Relaxed) % self.beacon_providers.len(); - - for i in 0..self.beacon_providers.len() { - let provider_index = (start_index + i) % self.beacon_providers.len(); - let provider = &self.beacon_providers[provider_index]; - - match provider.blob(block_timestamp, hash).await { - Ok(blob) => { - // Update counter to start from next provider next time if we found the blob - if blob.is_some() { - self.beacon_counter.store(provider_index + 1, Ordering::Relaxed); - } - return Ok(blob); - } - Err(err) => { - debug!(target: "scroll::providers", ?hash, ?block_timestamp, ?provider_index, ?err, "beacon provider failed to fetch blob"); - } + match self + .try_providers( + &self.beacon_providers, + &self.beacon_counter, + "beacon", + block_timestamp, + hash, + ) + .await + { + Ok(blob) => return Ok(blob), + Err(err) => { + debug!(target: "scroll::providers", ?hash, ?block_timestamp, ?err, "All beacon providers failed, trying backup providers"); } } - - debug!(target: "scroll::providers", ?hash, ?block_timestamp, "All beacon providers failed, trying backup providers"); - } - - // Try backup providers in round-robin order - if self.backup_providers.is_empty() { - // All providers failed and no backup providers available - warn!(target: "scroll::providers", ?hash, ?block_timestamp, "All providers failed to fetch blob"); - return Err(L1ProviderError::Other("All blob providers failed")); } - let start_index = self.backup_counter.load(Ordering::Relaxed) % self.backup_providers.len(); - - for i in 0..self.backup_providers.len() { - let provider_index = (start_index + i) % self.backup_providers.len(); - let provider = &self.backup_providers[provider_index]; - - match provider.blob(block_timestamp, hash).await { - Ok(blob) => { - // Update counter to start from next provider next time if we found the blob - if blob.is_some() { - self.backup_counter.store(provider_index + 1, Ordering::Relaxed); - } - return Ok(blob); - } + // Try backup providers + if !self.backup_providers.is_empty() { + match self + .try_providers( + &self.backup_providers, + &self.backup_counter, + "backup", + block_timestamp, + hash, + ) + .await + { + Ok(blob) => return Ok(blob), Err(err) => { - debug!(target: "scroll::providers", ?hash, ?block_timestamp, ?provider_index, ?err, "backup provider failed to fetch blob"); + debug!(target: "scroll::providers", ?hash, ?block_timestamp, ?err, "All backup providers failed"); } } } From deb50d8eb825a0c33b842ac0b2c8600317707440 Mon Sep 17 00:00:00 2001 From: Morty Date: Tue, 16 Sep 2025 20:34:49 +0800 Subject: [PATCH 08/10] address comment --- crates/providers/src/l1/blob/mod.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/providers/src/l1/blob/mod.rs b/crates/providers/src/l1/blob/mod.rs index d1b62370..60575673 100644 --- a/crates/providers/src/l1/blob/mod.rs +++ b/crates/providers/src/l1/blob/mod.rs @@ -143,13 +143,15 @@ impl BlobProviders { let provider_index = (start_index + i) % providers.len(); let provider = &providers[provider_index]; + // update the counter to the next provider round-robin index. + counter.store(provider_index + 1, Ordering::Relaxed); + match provider.blob(block_timestamp, hash).await { Ok(blob) => { return Ok(blob); } Err(err) => { debug!(target: "scroll::providers", ?hash, ?block_timestamp, ?provider_index, ?err, provider_type, "provider failed to fetch blob"); - counter.store(provider_index + 1, Ordering::Relaxed); } } } From e57ce791f2df979049d101f84b355e4324a9bc5c Mon Sep 17 00:00:00 2001 From: Morty Date: Tue, 16 Sep 2025 20:59:28 +0800 Subject: [PATCH 09/10] fix: ci integration docker compose --- tests/launch_rollup_node_follower.bash | 2 +- tests/launch_rollup_node_sequencer.bash | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/launch_rollup_node_follower.bash b/tests/launch_rollup_node_follower.bash index e3f101d7..458fca9d 100644 --- a/tests/launch_rollup_node_follower.bash +++ b/tests/launch_rollup_node_follower.bash @@ -13,4 +13,4 @@ exec rollup-node node --chain /l2reth/l2reth-genesis-e2e.json --datadir=/l2reth --trusted-peers enode://8fc4f6dfd0a2ebf56560d0b0ef5e60ad7bcb01e13f929eae53a4c77086d9c1e74eb8b8c8945035d25c6287afdd871f0d41b3fd7e189697decd0f13538d1ac620@l2geth-sequencer:30303,enode://e7f7e271f62bd2b697add14e6987419758c97e83b0478bd948f5f2d271495728e7edef5bd78ad65258ac910f28e86928ead0c42ee51f2a0168d8ca23ba939766@rollup-node-sequencer:30303 \ --engine.sync-at-startup false \ --l1.url http://l1-node:8545 \ - --blob.anvil_url = http://l1-node:8545 + --blob.anvil_url http://l1-node:8545 diff --git a/tests/launch_rollup_node_sequencer.bash b/tests/launch_rollup_node_sequencer.bash index a8ce2b99..8b5abb82 100644 --- a/tests/launch_rollup_node_sequencer.bash +++ b/tests/launch_rollup_node_sequencer.bash @@ -26,4 +26,4 @@ exec rollup-node node --chain /l2reth/l2reth-genesis-e2e.json --datadir=/l2reth --trusted-peers enode://8fc4f6dfd0a2ebf56560d0b0ef5e60ad7bcb01e13f929eae53a4c77086d9c1e74eb8b8c8945035d25c6287afdd871f0d41b3fd7e189697decd0f13538d1ac620@l2geth-sequencer:30303 \ --engine.sync-at-startup false \ --l1.url http://l1-node:8545 \ - --blob.anvil_url = http://l1-node:8545 + --blob.anvil_url http://l1-node:8545 From 03d64813fe44c5f4d6d8794c0ca3245dae3785ee Mon Sep 17 00:00:00 2001 From: Morty Date: Tue, 16 Sep 2025 22:03:32 +0800 Subject: [PATCH 10/10] fix: ci integration docker compose --- tests/launch_rollup_node_follower.bash | 2 +- tests/launch_rollup_node_sequencer.bash | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/launch_rollup_node_follower.bash b/tests/launch_rollup_node_follower.bash index 458fca9d..b70f716f 100644 --- a/tests/launch_rollup_node_follower.bash +++ b/tests/launch_rollup_node_follower.bash @@ -13,4 +13,4 @@ exec rollup-node node --chain /l2reth/l2reth-genesis-e2e.json --datadir=/l2reth --trusted-peers enode://8fc4f6dfd0a2ebf56560d0b0ef5e60ad7bcb01e13f929eae53a4c77086d9c1e74eb8b8c8945035d25c6287afdd871f0d41b3fd7e189697decd0f13538d1ac620@l2geth-sequencer:30303,enode://e7f7e271f62bd2b697add14e6987419758c97e83b0478bd948f5f2d271495728e7edef5bd78ad65258ac910f28e86928ead0c42ee51f2a0168d8ca23ba939766@rollup-node-sequencer:30303 \ --engine.sync-at-startup false \ --l1.url http://l1-node:8545 \ - --blob.anvil_url http://l1-node:8545 + --blob.mock diff --git a/tests/launch_rollup_node_sequencer.bash b/tests/launch_rollup_node_sequencer.bash index 8b5abb82..0f78c01c 100644 --- a/tests/launch_rollup_node_sequencer.bash +++ b/tests/launch_rollup_node_sequencer.bash @@ -26,4 +26,4 @@ exec rollup-node node --chain /l2reth/l2reth-genesis-e2e.json --datadir=/l2reth --trusted-peers enode://8fc4f6dfd0a2ebf56560d0b0ef5e60ad7bcb01e13f929eae53a4c77086d9c1e74eb8b8c8945035d25c6287afdd871f0d41b3fd7e189697decd0f13538d1ac620@l2geth-sequencer:30303 \ --engine.sync-at-startup false \ --l1.url http://l1-node:8545 \ - --blob.anvil_url http://l1-node:8545 + --blob.mock