diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 47f97d17..80c00f1f 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -128,11 +128,11 @@ jobs: - type: wasm target: wasm32-unknown-unknown exclude: | - scroll-engine,scroll-wire,rollup-node,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration,rollup-node-indexer,scroll-derivation-pipeline,rollup-node-providers + scroll-engine,scroll-wire,rollup-node,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration,rollup-node-indexer,scroll-derivation-pipeline,rollup-node-providers,rollup-node-sequencer - type: riscv target: riscv32imac-unknown-none-elf exclude: | - scroll-engine,scroll-wire,rollup-node,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration,rollup-node-indexer,scroll-codec,scroll-derivation-pipeline,rollup-node-providers + scroll-engine,scroll-wire,rollup-node,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration,rollup-node-indexer,scroll-codec,scroll-derivation-pipeline,rollup-node-providers,rollup-node-sequencer steps: - uses: actions/checkout@v4 - uses: rui314/setup-mold@v1 diff --git a/Cargo.lock b/Cargo.lock index 49a17773..0bb0c183 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -136,7 +136,7 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-serde 0.13.0", + "alloy-serde", "alloy-trie", "arbitrary", "auto_impl", @@ -161,7 +161,7 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-serde 0.13.0", + "alloy-serde", "arbitrary", "serde", ] @@ -239,7 +239,7 @@ dependencies = [ "alloy-eip7702", "alloy-primitives", "alloy-rlp", - "alloy-serde 0.13.0", + "alloy-serde", "arbitrary", "auto_impl", "c-kzg", @@ -253,9 +253,9 @@ dependencies = [ [[package]] name = "alloy-evm" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5a215c77c40db56f5639185fb3534fbc35c8567c5f54de6c25fc5c395fc4547" +checksum = "e158fd08c4be4fafe8c9fb7cb661f3b9585038446df0cd20b3d99e71f4166748" dependencies = [ "alloy-consensus", "alloy-eips", @@ -278,7 +278,7 @@ checksum = "7bd9e75c5dd40319ebbe807ebe9dfb10c24e4a70d9c7d638e62921d8dd093c8b" dependencies = [ "alloy-eips", "alloy-primitives", - "alloy-serde 0.13.0", + "alloy-serde", "alloy-trie", "serde", ] @@ -337,7 +337,7 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-any", "alloy-rpc-types-eth", - "alloy-serde 0.13.0", + "alloy-serde", "alloy-signer", "alloy-sol-types", "async-trait", @@ -358,7 +358,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", - "alloy-serde 0.13.0", + "alloy-serde", "serde", ] @@ -378,7 +378,7 @@ dependencies = [ "foldhash", "getrandom 0.2.15", "hashbrown 0.15.2", - "indexmap 2.8.0", + "indexmap 2.9.0", "itoa", "k256", "keccak-asm", @@ -514,7 +514,7 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", "alloy-rpc-types-eth", - "alloy-serde 0.13.0", + "alloy-serde", "serde", ] @@ -538,7 +538,7 @@ checksum = "19051fd5e8de7e1f95ec228c9303debd776dcc7caf8d1ece3191f711f5c06541" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde 0.13.0", + "alloy-serde", "serde", ] @@ -550,7 +550,7 @@ checksum = "ecd6d480e4e6e456f30eeeb3aef1512aaecb68df2a35d1f78865dbc4d20dc0fd" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", - "alloy-serde 0.13.0", + "alloy-serde", ] [[package]] @@ -591,7 +591,7 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-serde 0.13.0", + "alloy-serde", "derive_more 2.0.1", "ethereum_ssz", "ethereum_ssz_derive", @@ -614,7 +614,7 @@ dependencies = [ "alloy-network-primitives", "alloy-primitives", "alloy-rlp", - "alloy-serde 0.13.0", + "alloy-serde", "alloy-sol-types", "arbitrary", "itertools 0.14.0", @@ -633,7 +633,7 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde 0.13.0", + "alloy-serde", "serde", "serde_json", ] @@ -646,7 +646,7 @@ checksum = "6019cd6a89230d765a621a7b1bc8af46a6a9cde2d2e540e6f9ce930e0fb7c6db" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde 0.13.0", + "alloy-serde", "serde", "serde_json", "thiserror 2.0.12", @@ -660,21 +660,10 @@ checksum = "ee36e5404642696af511f09991f9f54a11b90e86e55efad868f8f56350eff5b0" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde 0.13.0", + "alloy-serde", "serde", ] -[[package]] -name = "alloy-serde" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a1cd73fc054de6353c7f22ff9b846b0f0f145cd0112da07d4119e41e9959207" -dependencies = [ - "alloy-primitives", - "serde", - "serde_json", -] - [[package]] name = "alloy-serde" version = "0.13.0" @@ -743,7 +732,7 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.8.0", + "indexmap 2.9.0", "proc-macro-error2", "proc-macro2", "quote", @@ -1331,9 +1320,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cf008e5e1a9e9e22a7d3c9a4992e21a350290069e36d8fb72304ed17e8f2d2" +checksum = "59a194f9d963d8099596278594b3107448656ba73831c9d8c783e613ce86da64" dependencies = [ "brotli", "flate2", @@ -1519,9 +1508,9 @@ dependencies = [ [[package]] name = "auto_impl" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12882f59de5360c748c4cbf569a042d5fb0eb515f7bea9c1f470b47f6ffbd73" +checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", @@ -1536,9 +1525,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backon" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "970d91570c01a8a5959b36ad7dd1c30642df24b6b3068710066f6809f7033bb7" +checksum = "fd0b50b1b78dbadd44ab18b3c794e496f3a139abb9fbc27d9c94c4eebbb96496" dependencies = [ "fastrand", "tokio", @@ -1597,9 +1586,9 @@ checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" [[package]] name = "bigdecimal" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f31f3af01c5c65a07985c804d3366560e6fa7883d640a122819b14ec327482c" +checksum = "1a22f228ab7a1b23027ccc6c350b72868017af7ea8356fbdf19f8d991c690013" dependencies = [ "autocfg", "libm", @@ -1703,9 +1692,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b17679a8d69b6d7fd9cd9801a536cec9fa5e5970b69f9d4747f70b39b031f5e7" +checksum = "389a099b34312839e16420d499a9cad9650541715937ffbdd40d36f49e77eeb3" dependencies = [ "arrayref", "arrayvec", @@ -1768,9 +1757,9 @@ dependencies = [ [[package]] name = "borsh" -version = "1.5.6" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b74d67a0fc0af8e9823b79fd1c43a0900e5a8f0e0f4cc9210796bf3a820126" +checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" dependencies = [ "borsh-derive", "cfg_aliases", @@ -1778,9 +1767,9 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.6" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d37ed1b2c9b78421218a0b4f6d8349132d6ec2cfeba1cfb0118b0a8e268df9e" +checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" dependencies = [ "once_cell", "proc-macro-crate", @@ -2042,9 +2031,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.32" +version = "4.5.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83" +checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" dependencies = [ "clap_builder", "clap_derive", @@ -2052,9 +2041,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.32" +version = "4.5.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8" +checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" dependencies = [ "anstream", "anstyle", @@ -2320,9 +2309,9 @@ checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" [[package]] name = "crossbeam-channel" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] @@ -2463,9 +2452,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ "darling_core", "darling_macro", @@ -2473,9 +2462,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" dependencies = [ "fnv", "ident_case", @@ -2487,9 +2476,9 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", @@ -2546,7 +2535,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18e4fdb82bd54a12e42fb58a800dcae6b9e13982238ce2296dc3570b92148e1f" dependencies = [ "data-encoding", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] @@ -2579,9 +2568,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cfac68e08048ae1883171632c2aef3ebc555621ae56fbccce1cbf22dd7f058" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", "serde", @@ -2991,9 +2980,9 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" dependencies = [ "libc", "windows-sys 0.59.0", @@ -3089,9 +3078,9 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ "event-listener 5.4.0", "pin-project-lite", @@ -3187,9 +3176,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" +checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" dependencies = [ "crc32fast", "miniz_oxide", @@ -3554,7 +3543,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.8.0", + "indexmap 2.9.0", "slab", "tokio", "tokio-util", @@ -3773,13 +3762,13 @@ dependencies = [ [[package]] name = "hostname" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" +checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" dependencies = [ "cfg-if", "libc", - "windows 0.52.0", + "windows-link", ] [[package]] @@ -3915,9 +3904,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" dependencies = [ "bytes", "futures-channel", @@ -3925,6 +3914,7 @@ dependencies = [ "http", "http-body", "hyper", + "libc", "pin-project-lite", "socket2", "tokio", @@ -3934,9 +3924,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.62" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2fd658b06e56721792c5df4475705b6cda790e9298d19d2f8af083457bcd127" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3944,7 +3934,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.52.0", + "windows-core 0.61.0", ] [[package]] @@ -3997,9 +3987,9 @@ dependencies = [ [[package]] name = "icu_locid_transform_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" +checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" [[package]] name = "icu_normalizer" @@ -4021,9 +4011,9 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" [[package]] name = "icu_properties" @@ -4042,9 +4032,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" [[package]] name = "icu_provider" @@ -4169,9 +4159,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "arbitrary", "equivalent", @@ -4345,10 +4335,11 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ + "getrandom 0.3.2", "libc", ] @@ -4645,7 +4636,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -4790,9 +4781,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "litemap" @@ -4940,7 +4931,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd7399781913e5393588a8d8c6a2867bf85fb38eaf2502fdce465aad2dc6f034" dependencies = [ "base64 0.22.1", - "indexmap 2.8.0", + "indexmap 2.9.0", "metrics", "metrics-util", "quanta", @@ -5018,9 +5009,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" dependencies = [ "adler2", ] @@ -5355,9 +5346,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.1" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" dependencies = [ "critical-section", "portable-atomic", @@ -5365,15 +5356,15 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.12.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91764ebe0eddf6e3cfff41650332ff4e01defe372386027703f2e7e334734a05" +checksum = "917f7a65b83e8f9cf06d5209161babf39f5e5768e226a08ad42c033386248a66" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-serde 0.13.0", + "alloy-serde", "arbitrary", "derive_more 2.0.1", "serde", @@ -5383,15 +5374,15 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types-engine" -version = "0.12.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc26f8288839926d0137d39d70628bb5ac00fca449bab24c54cebd66c71b9cf4" +checksum = "a6c57a07a8f7da6169a247c4af7cf6bb69fec3789dd41b7dcb6742fce01a232e" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rpc-types-engine", - "alloy-serde 0.13.0", + "alloy-serde", "derive_more 2.0.1", "ethereum_ssz", "op-alloy-consensus", @@ -5420,9 +5411,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.71" +version = "0.10.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" +checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" dependencies = [ "bitflags 2.9.0", "cfg-if", @@ -5452,9 +5443,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.106" +version = "0.9.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" +checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" dependencies = [ "cc", "libc", @@ -5631,9 +5622,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.15" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" +checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" dependencies = [ "memchr", "thiserror 2.0.12", @@ -6081,9 +6072,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.10" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e46f3055866785f6b92bc6164b76be02ca8f2eb4b002c0354b28cf4c119e5944" +checksum = "541d0f57c6ec747a90738a52741d3221f7960e8ac2f0ff4b1a63680e033b4ab5" dependencies = [ "cfg_aliases", "libc", @@ -6251,9 +6242,9 @@ checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" [[package]] name = "redox_syscall" -version = "0.5.10" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" dependencies = [ "bitflags 2.9.0", ] @@ -6384,8 +6375,8 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6408,8 +6399,8 @@ dependencies = [ [[package]] name = "reth-chain-state" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6438,8 +6429,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-chains", "alloy-consensus", @@ -6458,8 +6449,8 @@ dependencies = [ [[package]] name = "reth-cli" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-genesis", "clap", @@ -6472,8 +6463,8 @@ dependencies = [ [[package]] name = "reth-cli-commands" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "ahash 0.8.11", "alloy-consensus", @@ -6503,7 +6494,6 @@ dependencies = [ "reth-downloaders", "reth-ecies", "reth-eth-wire", - "reth-ethereum-cli", "reth-evm", "reth-exex", "reth-fs-util", @@ -6533,8 +6523,8 @@ dependencies = [ [[package]] name = "reth-cli-runner" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "reth-tasks", "tokio", @@ -6543,8 +6533,8 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6560,8 +6550,8 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6580,8 +6570,8 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "convert_case", "proc-macro2", @@ -6591,8 +6581,8 @@ dependencies = [ [[package]] name = "reth-config" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "eyre", "humantime-serde", @@ -6605,8 +6595,8 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6618,8 +6608,8 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6630,8 +6620,8 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6653,8 +6643,8 @@ dependencies = [ [[package]] name = "reth-db" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", "derive_more 2.0.1", @@ -6679,8 +6669,8 @@ dependencies = [ [[package]] name = "reth-db-api" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -6708,8 +6698,8 @@ dependencies = [ [[package]] name = "reth-db-common" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -6737,8 +6727,8 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6752,8 +6742,8 @@ dependencies = [ [[package]] name = "reth-discv4" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6778,8 +6768,8 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6802,8 +6792,8 @@ dependencies = [ [[package]] name = "reth-dns-discovery" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", "data-encoding", @@ -6826,8 +6816,8 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6861,8 +6851,8 @@ dependencies = [ [[package]] name = "reth-e2e-test-utils" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6908,8 +6898,8 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "aes", "alloy-primitives", @@ -6939,8 +6929,8 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6969,8 +6959,8 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6993,8 +6983,8 @@ dependencies = [ [[package]] name = "reth-engine-service" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "futures", "pin-project", @@ -7016,8 +7006,8 @@ dependencies = [ [[package]] name = "reth-engine-tree" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7027,6 +7017,7 @@ dependencies = [ "alloy-rpc-types-engine", "derive_more 2.0.1", "futures", + "itertools 0.14.0", "metrics", "mini-moka", "parking_lot", @@ -7066,8 +7057,8 @@ dependencies = [ [[package]] name = "reth-engine-util" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -7093,8 +7084,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -7105,8 +7096,8 @@ dependencies = [ [[package]] name = "reth-eth-wire" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-chains", "alloy-primitives", @@ -7133,8 +7124,8 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-chains", "alloy-consensus", @@ -7152,20 +7143,10 @@ dependencies = [ "thiserror 2.0.12", ] -[[package]] -name = "reth-ethereum-cli" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" -dependencies = [ - "eyre", - "reth-chainspec", - "reth-cli", -] - [[package]] name = "reth-ethereum-consensus" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7180,8 +7161,8 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7197,8 +7178,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -7211,8 +7192,8 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7238,8 +7219,8 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7262,8 +7243,8 @@ dependencies = [ [[package]] name = "reth-etl" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "rayon", "reth-db-api", @@ -7272,8 +7253,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7299,8 +7280,8 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7317,8 +7298,8 @@ dependencies = [ [[package]] name = "reth-execution-errors" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-evm", "alloy-primitives", @@ -7330,8 +7311,8 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7348,8 +7329,8 @@ dependencies = [ [[package]] name = "reth-exex" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7386,8 +7367,8 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7400,8 +7381,8 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "serde", "serde_json", @@ -7410,8 +7391,8 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7436,8 +7417,8 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "async-trait", "bytes", @@ -7457,14 +7438,14 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "bitflags 2.9.0", "byteorder", "dashmap 6.1.0", "derive_more 2.0.1", - "indexmap 2.8.0", + "indexmap 2.9.0", "parking_lot", "reth-mdbx-sys", "smallvec", @@ -7474,8 +7455,8 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "bindgen", "cc", @@ -7483,8 +7464,8 @@ dependencies = [ [[package]] name = "reth-metrics" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "futures", "metrics", @@ -7495,16 +7476,16 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", ] [[package]] name = "reth-net-nat" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "futures-util", "if-addrs", @@ -7517,8 +7498,8 @@ dependencies = [ [[package]] name = "reth-network" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7571,8 +7552,8 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", "alloy-rpc-types-admin", @@ -7594,8 +7575,8 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7617,8 +7598,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7632,8 +7613,8 @@ dependencies = [ [[package]] name = "reth-network-types" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -7646,8 +7627,8 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "anyhow", "bincode", @@ -7663,8 +7644,8 @@ dependencies = [ [[package]] name = "reth-node-api" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -7687,8 +7668,8 @@ dependencies = [ [[package]] name = "reth-node-builder" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7750,8 +7731,8 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7800,8 +7781,8 @@ dependencies = [ [[package]] name = "reth-node-ethereum" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-eips", "alloy-rpc-types-engine", @@ -7836,8 +7817,8 @@ dependencies = [ [[package]] name = "reth-node-events" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7860,8 +7841,8 @@ dependencies = [ [[package]] name = "reth-node-metrics" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "eyre", "http", @@ -7880,8 +7861,8 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "reth-chainspec", "reth-db-api", @@ -7893,8 +7874,8 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7902,7 +7883,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", - "alloy-serde 0.13.0", + "alloy-serde", "arbitrary", "bytes", "derive_more 2.0.1", @@ -7920,8 +7901,8 @@ dependencies = [ [[package]] name = "reth-payload-builder" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7941,8 +7922,8 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "pin-project", "reth-payload-primitives", @@ -7953,8 +7934,8 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7973,8 +7954,8 @@ dependencies = [ [[package]] name = "reth-payload-util" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7983,8 +7964,8 @@ dependencies = [ [[package]] name = "reth-payload-validator" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -7993,8 +7974,8 @@ dependencies = [ [[package]] name = "reth-primitives" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "arbitrary", @@ -8008,8 +7989,8 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8042,8 +8023,8 @@ dependencies = [ [[package]] name = "reth-provider" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8089,8 +8070,8 @@ dependencies = [ [[package]] name = "reth-prune" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8117,8 +8098,8 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", "arbitrary", @@ -8131,8 +8112,8 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -8144,8 +8125,8 @@ dependencies = [ [[package]] name = "reth-rpc" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -8164,7 +8145,7 @@ dependencies = [ "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-serde 0.13.0", + "alloy-serde", "alloy-signer", "alloy-signer-local", "async-trait", @@ -8217,8 +8198,8 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-eips", "alloy-genesis", @@ -8234,7 +8215,7 @@ dependencies = [ "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-serde 0.13.0", + "alloy-serde", "jsonrpsee", "reth-engine-primitives", "reth-network-peers", @@ -8243,8 +8224,8 @@ dependencies = [ [[package]] name = "reth-rpc-builder" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-network", "alloy-provider", @@ -8280,8 +8261,8 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8311,8 +8292,8 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -8323,7 +8304,7 @@ dependencies = [ "alloy-rlp", "alloy-rpc-types-eth", "alloy-rpc-types-mev", - "alloy-serde 0.13.0", + "alloy-serde", "async-trait", "auto_impl", "dyn-clone", @@ -8354,8 +8335,8 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8396,8 +8377,8 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-rpc-types-engine", "http", @@ -8410,8 +8391,8 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8426,8 +8407,8 @@ dependencies = [ [[package]] name = "reth-rpc-types-compat" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8439,15 +8420,15 @@ dependencies = [ [[package]] name = "reth-scroll-chainspec" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", "alloy-genesis", "alloy-primitives", - "alloy-serde 0.13.0", + "alloy-serde", "derive_more 2.0.1", "once_cell", "reth-chainspec", @@ -8463,8 +8444,8 @@ dependencies = [ [[package]] name = "reth-scroll-cli" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "clap", "eyre", @@ -8486,8 +8467,8 @@ dependencies = [ [[package]] name = "reth-scroll-consensus" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8506,8 +8487,8 @@ dependencies = [ [[package]] name = "reth-scroll-engine-primitives" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8531,8 +8512,8 @@ dependencies = [ [[package]] name = "reth-scroll-evm" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8559,8 +8540,8 @@ dependencies = [ [[package]] name = "reth-scroll-forks" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-chains", "alloy-primitives", @@ -8573,8 +8554,8 @@ dependencies = [ [[package]] name = "reth-scroll-node" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8625,8 +8606,8 @@ dependencies = [ [[package]] name = "reth-scroll-payload" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8657,8 +8638,8 @@ dependencies = [ [[package]] name = "reth-scroll-primitives" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8685,8 +8666,8 @@ dependencies = [ [[package]] name = "reth-scroll-rpc" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8720,8 +8701,8 @@ dependencies = [ [[package]] name = "reth-scroll-txpool" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8748,8 +8729,8 @@ dependencies = [ [[package]] name = "reth-stages" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8794,8 +8775,8 @@ dependencies = [ [[package]] name = "reth-stages-api" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8821,8 +8802,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", "arbitrary", @@ -8835,8 +8816,8 @@ dependencies = [ [[package]] name = "reth-static-file" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", "parking_lot", @@ -8855,8 +8836,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", "clap", @@ -8867,8 +8848,8 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8891,8 +8872,8 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8907,8 +8888,8 @@ dependencies = [ [[package]] name = "reth-tasks" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "auto_impl", "dyn-clone", @@ -8925,8 +8906,8 @@ dependencies = [ [[package]] name = "reth-testing-utils" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8940,8 +8921,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "tokio", "tokio-stream", @@ -8950,8 +8931,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "clap", "eyre", @@ -8965,8 +8946,8 @@ dependencies = [ [[package]] name = "reth-transaction-pool" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9004,8 +8985,8 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9029,14 +9010,14 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", - "alloy-serde 0.13.0", + "alloy-serde", "alloy-trie", "arbitrary", "bytes", @@ -9055,8 +9036,8 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", "reth-db-api", @@ -9068,8 +9049,8 @@ dependencies = [ [[package]] name = "reth-trie-parallel" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -9093,8 +9074,8 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -9110,8 +9091,8 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "zstd", ] @@ -9443,9 +9424,9 @@ dependencies = [ [[package]] name = "roaring" -version = "0.10.10" +version = "0.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a652edd001c53df0b3f96a36a8dc93fce6866988efc16808235653c6bcac8bf2" +checksum = "19e8d2cfa184d94d0726d650a9f4a1be7f9b76ac9fdb954219878dc00c1c1e7b" dependencies = [ "bytemuck", "byteorder", @@ -9577,12 +9558,13 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-beacon", "alloy-rpc-types-engine", - "alloy-serde 0.12.6", + "alloy-serde", "async-trait", "auto_impl", "eyre", "lru 0.13.0", "reqwest", + "rollup-node-primitives", "scroll-alloy-consensus", "scroll-db", "serde", @@ -9590,6 +9572,43 @@ dependencies = [ "tokio", ] +[[package]] +name = "rollup-node-sequencer" +version = "0.0.1" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-network", + "alloy-primitives", + "alloy-rpc-types-engine", + "futures", + "jsonrpsee", + "reth-db", + "reth-e2e-test-utils", + "reth-node-builder", + "reth-node-core", + "reth-provider", + "reth-revm", + "reth-rpc-api", + "reth-rpc-layer", + "reth-scroll-node", + "reth-scroll-primitives", + "reth-tasks", + "reth-tracing", + "rollup-node-primitives", + "rollup-node-providers", + "rollup-node-sequencer", + "scroll-alloy-consensus", + "scroll-alloy-network", + "scroll-alloy-provider", + "scroll-alloy-rpc-types-engine", + "scroll-db", + "scroll-engine", + "thiserror 2.0.12", + "tokio", + "tracing", +] + [[package]] name = "rollup-node-watcher" version = "0.0.1" @@ -9645,9 +9664,9 @@ dependencies = [ [[package]] name = "ruint" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "825df406ec217a8116bd7b06897c6cc8f65ffefc15d030ae2c9540acc9ed50b6" +checksum = "78a46eb779843b2c4f21fac5773e25d6d5b7c8f0922876c91541790d2ca27eef" dependencies = [ "alloy-rlp", "arbitrary", @@ -9663,6 +9682,7 @@ dependencies = [ "primitive-types", "proptest", "rand 0.8.5", + "rand 0.9.0", "rlp", "ruint-macro", "serde", @@ -9752,22 +9772,22 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" +checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" dependencies = [ "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys 0.9.3", + "linux-raw-sys 0.9.4", "windows-sys 0.59.0", ] [[package]] name = "rustls" -version = "0.23.25" +version = "0.23.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" +checksum = "df51b5869f3a441595eac5e8ff14d486ff285f7b8c0df8770e49c3b56351f0f0" dependencies = [ "log", "once_cell", @@ -9837,9 +9857,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.103.0" +version = "0.103.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aa4eeac2588ffff23e9d7a7e9b3f971c5fb5b7ebc9452745e0c232c64f83b2f" +checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" dependencies = [ "ring", "rustls-pki-types", @@ -9913,14 +9933,14 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll-alloy-consensus" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-serde 0.13.0", + "alloy-serde", "arbitrary", "derive_more 2.0.1", "modular-bitfield", @@ -9931,8 +9951,8 @@ dependencies = [ [[package]] name = "scroll-alloy-evm" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9948,8 +9968,8 @@ dependencies = [ [[package]] name = "scroll-alloy-hardforks" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-hardforks", "auto_impl", @@ -9958,8 +9978,8 @@ dependencies = [ [[package]] name = "scroll-alloy-network" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-network", @@ -9972,9 +9992,10 @@ dependencies = [ [[package]] name = "scroll-alloy-provider" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ + "alloy-json-rpc", "alloy-primitives", "alloy-provider", "alloy-rpc-client", @@ -9985,23 +10006,28 @@ dependencies = [ "derive_more 2.0.1", "eyre", "http-body-util", + "jsonrpsee", + "jsonrpsee-types", "reqwest", + "reth-rpc-api", + "reth-scroll-engine-primitives", "scroll-alloy-network", "scroll-alloy-rpc-types-engine", + "thiserror 2.0.12", "tower 0.4.13", ] [[package]] name = "scroll-alloy-rpc-types" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-network-primitives", "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde 0.13.0", + "alloy-serde", "derive_more 2.0.1", "scroll-alloy-consensus", "serde", @@ -10010,8 +10036,8 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types-engine" -version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git#2ef1d127253cc8589248e5a783859432d7f3a584" +version = "1.3.7" +source = "git+https://github.com/scroll-tech/reth.git#1f2fdb446c8629e34c0d6cb225e8db05f2c69ab7" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", @@ -10178,9 +10204,9 @@ dependencies = [ [[package]] name = "sea-orm" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3417812d38049e8ec3d588c03570f8c60de811d2453fb48e424045a1600ffd86" +checksum = "013d6c9e421b9c44c6eb6ebbee283b2a2c90eab2682088c4a2449706a42d117f" dependencies = [ "async-stream", "async-trait", @@ -10198,7 +10224,7 @@ dependencies = [ "serde_json", "sqlx", "strum 0.26.3", - "thiserror 1.0.69", + "thiserror 2.0.12", "time", "tracing", "url", @@ -10207,9 +10233,9 @@ dependencies = [ [[package]] name = "sea-orm-cli" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf2a390d6528f8e5c9ecd327bbb1a4c6cd7ab8333ef0da97010d5dc8f83f01c4" +checksum = "9ba295ef27c085889da408eca3634a6b04093257126e57087e0fd744ebad8f67" dependencies = [ "chrono", "clap", @@ -10224,9 +10250,9 @@ dependencies = [ [[package]] name = "sea-orm-macros" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d705ba84e1c74c8ac27784e4ac6f21584058c1dc0cadb9d39b43e109fcf8139c" +checksum = "31feeff3ad5e999c64b2b8fd30933b2871911567c4d62dcf70b3effd970c7891" dependencies = [ "heck 0.4.1", "proc-macro2", @@ -10238,9 +10264,9 @@ dependencies = [ [[package]] name = "sea-orm-migration" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c38451d5112e3a518a02251b5e6d3bc72e626957a44a79264716808a4c28ee0" +checksum = "d90a9cc4881a3fd2cbff38dffe0cff40d61169c246aa572849288f83a29c5b19" dependencies = [ "async-trait", "clap", @@ -10476,7 +10502,7 @@ version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ - "indexmap 2.8.0", + "indexmap 2.9.0", "itoa", "memchr", "ryu", @@ -10514,7 +10540,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.8.0", + "indexmap 2.9.0", "serde", "serde_derive", "serde_json", @@ -10719,9 +10745,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" dependencies = [ "arbitrary", "serde", @@ -10735,9 +10761,9 @@ checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] name = "socket2" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" dependencies = [ "libc", "windows-sys 0.52.0", @@ -10810,7 +10836,7 @@ dependencies = [ "futures-util", "hashbrown 0.15.2", "hashlink 0.10.0", - "indexmap 2.8.0", + "indexmap 2.9.0", "log", "memchr", "native-tls", @@ -11173,7 +11199,7 @@ dependencies = [ "fastrand", "getrandom 0.3.2", "once_cell", - "rustix 1.0.3", + "rustix 1.0.5", "windows-sys 0.59.0", ] @@ -11422,7 +11448,7 @@ version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "indexmap 2.8.0", + "indexmap 2.9.0", "serde", "serde_spanned", "toml_datetime", @@ -11891,9 +11917,9 @@ checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "value-bag" -version = "1.10.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2" +checksum = "943ce29a8a743eb10d6082545d861b24f9d1b160b7d741e0f2cdf726bec909c5" [[package]] name = "vcpkg" @@ -11903,9 +11929,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "vergen" -version = "9.0.4" +version = "9.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0d2f179f8075b805a43a2a21728a46f0cc2921b3c58695b28fa8817e103cd9a" +checksum = "6b2bf58be11fc9414104c6d3a2e464163db5ef74b12296bda593cac37b6e4777" dependencies = [ "anyhow", "cargo_metadata 0.19.2", @@ -11918,9 +11944,9 @@ dependencies = [ [[package]] name = "vergen-git2" -version = "1.0.5" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86bae87104cb2790cdee615c2bb54729804d307191732ab27b1c5357ea6ddc5" +checksum = "4f6ee511ec45098eabade8a0750e76eec671e7fb2d9360c563911336bea9cac1" dependencies = [ "anyhow", "derive_builder", @@ -12178,16 +12204,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" -dependencies = [ - "windows-core 0.52.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows" version = "0.57.0" @@ -12208,15 +12224,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-core" version = "0.57.0" @@ -12242,6 +12249,19 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" +dependencies = [ + "windows-implement 0.60.0", + "windows-interface 0.59.1", + "windows-link", + "windows-result 0.3.2", + "windows-strings 0.4.0", +] + [[package]] name = "windows-implement" version = "0.57.0" @@ -12264,6 +12284,17 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "windows-implement" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "windows-interface" version = "0.57.0" @@ -12286,6 +12317,17 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "windows-interface" +version = "0.59.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "windows-link" version = "0.1.1" @@ -12349,6 +12391,15 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-strings" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -12629,9 +12680,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" +checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" dependencies = [ "memchr", ] diff --git a/Cargo.toml b/Cargo.toml index 7c2e6142..6fd9b0cf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,6 +20,7 @@ members = [ "crates/primitives", "crates/providers", "crates/scroll-wire", + "crates/sequencer", "crates/watcher", ] @@ -135,6 +136,7 @@ scroll-alloy-provider = { git = "https://github.com/scroll-tech/reth.git", defau scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git" } # reth +reth-e2e-test-utils = { git = "https://github.com/scroll-tech/reth.git" } reth-eth-wire-types = { git = "https://github.com/scroll-tech/reth.git", default-features = false } reth-network = { git = "https://github.com/scroll-tech/reth.git", default-features = false } reth-network-api = { git = "https://github.com/scroll-tech/reth.git", default-features = false } @@ -155,6 +157,7 @@ rollup-node-indexer = { path = "crates/indexer" } rollup-node-manager = { path = "crates/node" } rollup-node-primitives = { path = "crates/primitives" } rollup-node-providers = { path = "crates/providers" } +rollup-node-sequencer = { path = "crates/sequencer" } rollup-node-watcher = { path = "crates/watcher" } scroll-codec = { path = "crates/codec" } scroll-db = { path = "crates/database/db" } @@ -172,6 +175,7 @@ auto_impl = "1.2" derive_more = { version = "2.0", default-features = false } eyre = "0.6" futures = { version = "0.3", default-features = false } +parking_lot = "0.12" rand = { version = "0.9" } reqwest = "0.12" secp256k1 = { version = "0.29", default-features = false } @@ -179,3 +183,4 @@ thiserror = "2.0" tokio = { version = "1.39", default-features = false } tokio-stream = { version = "0.1", default-features = false } tracing = "0.1.0" +jsonrpsee = "0.24.9" diff --git a/bin/rollup/Cargo.toml b/bin/rollup/Cargo.toml index 1a75a541..ef962096 100644 --- a/bin/rollup/Cargo.toml +++ b/bin/rollup/Cargo.toml @@ -67,7 +67,7 @@ alloy-primitives = { workspace = true, default-features = false, features = ["ma alloy-rpc-types-engine.workspace = true # reth -reth-e2e-test-utils = { git = "https://github.com/scroll-tech/reth.git" } +reth-e2e-test-utils.workspace = true reth-payload-builder = { git = "https://github.com/scroll-tech/reth.git" } reth-rpc-server-types = { git = "https://github.com/scroll-tech/reth.git" } reth-tasks.workspace = true @@ -93,6 +93,8 @@ test-utils = [ "rollup-node-watcher/test-utils", "scroll-db/test-utils", "scroll-db/test-utils", + "reth-scroll-node/test-utils", + "reth-scroll-node/test-utils", "rollup-node-providers/test-utils", ] serde = [ diff --git a/bin/rollup/src/network.rs b/bin/rollup/src/network.rs index 9c91e032..a5c4ce44 100644 --- a/bin/rollup/src/network.rs +++ b/bin/rollup/src/network.rs @@ -139,7 +139,7 @@ where // Construct the l1 provider. let beacon_provider = beacon_provider(l1_provider_args.beacon_rpc_url.to_string()); - let l1_messages_provider = DatabaseL1MessageProvider::new(db.clone()); + let l1_messages_provider = DatabaseL1MessageProvider::new(db.clone(), 0); let l1_provider = OnlineL1Provider::new(beacon_provider, PROVIDER_BLOB_CACHE_SIZE, l1_messages_provider) .await; diff --git a/crates/codec/Cargo.toml b/crates/codec/Cargo.toml index 0ca2934b..f22176a7 100644 --- a/crates/codec/Cargo.toml +++ b/crates/codec/Cargo.toml @@ -8,8 +8,8 @@ edition = "2021" scroll-alloy-consensus.workspace = true alloy-eips.workspace = true alloy-primitives.workspace = true -alloy-rlp = { version = "0.3", default-features = false } -alloy-sol-types = { version = "0.8", default-features = false } +alloy-rlp = { version = "0.3.10", default-features = false } +alloy-sol-types.workspace = true # scroll scroll-l1.workspace = true diff --git a/crates/derivation-pipeline/src/lib.rs b/crates/derivation-pipeline/src/lib.rs index 6aa4bf1b..1a696d43 100644 --- a/crates/derivation-pipeline/src/lib.rs +++ b/crates/derivation-pipeline/src/lib.rs @@ -157,7 +157,7 @@ where /// Returns a vector of [`ScrollPayloadAttributes`] from the [`BatchCommitData`] and a /// [`L1Provider`]. -pub async fn derive( +pub async fn derive( batch: BatchCommitData, l1_provider: P, ) -> Result, DerivationPipelineError> { @@ -213,6 +213,7 @@ pub async fn derive( }, transactions: Some(txs), no_tx_pool: true, + block_data_hint: None, }; attributes.push(attribute); } @@ -227,6 +228,7 @@ mod tests { use alloy_eips::eip4844::Blob; use alloy_primitives::{address, b256, bytes, U256}; + use core::sync::atomic::{AtomicU64, Ordering}; use rollup_node_primitives::L1MessageWithBlockNumber; use rollup_node_providers::{ DatabaseL1MessageProvider, L1BlobProvider, L1MessageProvider, L1ProviderError, @@ -234,10 +236,10 @@ mod tests { use scroll_alloy_consensus::TxL1Message; use scroll_codec::decoding::test_utils::read_to_bytes; use scroll_db::test_utils::setup_test_db; - use tokio::sync::Mutex; struct MockL1MessageProvider { - messages: Arc>>, + messages: Arc>, + index: AtomicU64, } struct Infallible; @@ -262,13 +264,20 @@ mod tests { impl L1MessageProvider for MockL1MessageProvider { type Error = Infallible; - async fn next_l1_message(&self) -> Result, Self::Error> { - Ok(Some(self.messages.try_lock().expect("lock is free").remove(0))) + async fn get_l1_message_with_block_number( + &self, + ) -> Result, Self::Error> { + let index = self.index.load(Ordering::Relaxed); + Ok(self.messages.get(index as usize).cloned()) } fn set_index_cursor(&self, _index: u64) {} fn set_hash_cursor(&self, _hash: B256) {} + + fn increment_cursor(&self) { + self.index.fetch_add(1, Ordering::Relaxed); + } } #[derive(Clone)] @@ -291,15 +300,20 @@ mod tests { impl L1MessageProvider for MockL1Provider

{ type Error = P::Error; - async fn next_l1_message(&self) -> Result, Self::Error> { - self.l1_messages_provider.next_l1_message().await + async fn get_l1_message_with_block_number( + &self, + ) -> Result, Self::Error> { + self.l1_messages_provider.get_l1_message_with_block_number().await } fn set_index_cursor(&self, index: u64) { - self.l1_messages_provider.set_index_cursor(index) + self.l1_messages_provider.set_index_cursor(index); } fn set_hash_cursor(&self, hash: B256) { self.l1_messages_provider.set_hash_cursor(hash) } + fn increment_cursor(&self) { + self.l1_messages_provider.increment_cursor() + } } #[tokio::test] @@ -340,7 +354,7 @@ mod tests { } // construct the pipeline. - let l1_messages_provider = DatabaseL1MessageProvider::new(db.clone()); + let l1_messages_provider = DatabaseL1MessageProvider::new(db.clone(), 0); let mock_l1_provider = MockL1Provider { l1_messages_provider }; let mut pipeline = DerivationPipeline::new(mock_l1_provider, db); @@ -365,6 +379,7 @@ mod tests { }, transactions: Some(vec![bytes!("f88c8202658417d7840082a4f294530000000000000000000000000000000000000280a4bede39b500000000000000000000000000000000000000000000000000000001669aa2f583104ec4a07461e6555f927393ebdf5f183738450c3842bc3b86a1db7549d9bee21fadd0b1a06d7ba96897bd9fb8e838a327d3ca34be66da11955f10d1fb2264949071e9e8cd")]), no_tx_pool: true, + block_data_hint: None, }; assert_eq!(attribute, expected); @@ -384,22 +399,22 @@ mod tests { blob_versioned_hash: None, }; - let l1_messages = vec![TxL1Message { + let l1_messages = vec![L1MessageWithBlockNumber{ block_number: 5, transaction: TxL1Message { queue_index: 33, gas_limit: 168000, to: address!("781e90f1c8Fc4611c9b7497C3B47F99Ef6969CbC"), value: U256::ZERO, sender: address!("7885BcBd5CeCEf1336b5300fb5186A12DDD8c478"), input: bytes!("8ef1332e0000000000000000000000007f2b8c31f88b6006c382775eea88297ec1e3e9050000000000000000000000006ea73e05adc79974b931123675ea8f78ffdacdf0000000000000000000000000000000000000000000000000006a94d74f430000000000000000000000000000000000000000000000000000000000000000002100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a4232e8748000000000000000000000000ca266224613396a0e8d4c2497dbc4f33dd6cdeff000000000000000000000000ca266224613396a0e8d4c2497dbc4f33dd6cdeff000000000000000000000000000000000000000000000000006a94d74f4300000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"), - },TxL1Message { + }} , L1MessageWithBlockNumber { block_number: 10, transaction: TxL1Message { queue_index: 34, gas_limit: 168000, to: address!("781e90f1c8fc4611c9b7497c3b47f99ef6969cbc"), value: U256::ZERO, sender: address!("7885BcBd5CeCEf1336b5300fb5186A12DDD8c478"), input: bytes!("8ef1332e0000000000000000000000007f2b8c31f88b6006c382775eea88297ec1e3e9050000000000000000000000006ea73e05adc79974b931123675ea8f78ffdacdf000000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a4232e8748000000000000000000000000982fe4a7cbd74bb3422ebe46333c3e8046c12c7f000000000000000000000000982fe4a7cbd74bb3422ebe46333c3e8046c12c7f00000000000000000000000000000000000000000000000000470de4df8200000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"), - }]; - let provider = MockL1MessageProvider { messages: Arc::new(Mutex::new(l1_messages)) }; + }}]; + let provider = MockL1MessageProvider { messages: Arc::new(l1_messages), index: 0.into() }; let attributes: Vec<_> = derive(batch_data, provider).await?; let attribute = @@ -412,6 +427,7 @@ mod tests { }, transactions: Some(vec![bytes!("7ef901b7218302904094781e90f1c8fc4611c9b7497c3b47f99ef6969cbc80b901848ef1332e0000000000000000000000007f2b8c31f88b6006c382775eea88297ec1e3e9050000000000000000000000006ea73e05adc79974b931123675ea8f78ffdacdf0000000000000000000000000000000000000000000000000006a94d74f430000000000000000000000000000000000000000000000000000000000000000002100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a4232e8748000000000000000000000000ca266224613396a0e8d4c2497dbc4f33dd6cdeff000000000000000000000000ca266224613396a0e8d4c2497dbc4f33dd6cdeff000000000000000000000000000000000000000000000000006a94d74f4300000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000947885bcbd5cecef1336b5300fb5186a12ddd8c478"), bytes!("7ef901b7228302904094781e90f1c8fc4611c9b7497c3b47f99ef6969cbc80b901848ef1332e0000000000000000000000007f2b8c31f88b6006c382775eea88297ec1e3e9050000000000000000000000006ea73e05adc79974b931123675ea8f78ffdacdf000000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a4232e8748000000000000000000000000982fe4a7cbd74bb3422ebe46333c3e8046c12c7f000000000000000000000000982fe4a7cbd74bb3422ebe46333c3e8046c12c7f00000000000000000000000000000000000000000000000000470de4df8200000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000947885bcbd5cecef1336b5300fb5186a12ddd8c478")]), no_tx_pool: true, + block_data_hint: None, }; assert_eq!(attribute, &expected); @@ -423,6 +439,7 @@ mod tests { }, transactions: Some(vec![bytes!("f88c8202658417d7840082a4f294530000000000000000000000000000000000000280a4bede39b500000000000000000000000000000000000000000000000000000001669aa2f583104ec4a07461e6555f927393ebdf5f183738450c3842bc3b86a1db7549d9bee21fadd0b1a06d7ba96897bd9fb8e838a327d3ca34be66da11955f10d1fb2264949071e9e8cd")]), no_tx_pool: true, + block_data_hint: None, }; assert_eq!(attribute, &expected); diff --git a/crates/engine/src/engine.rs b/crates/engine/src/engine.rs index 3ab74589..8a7a328e 100644 --- a/crates/engine/src/engine.rs +++ b/crates/engine/src/engine.rs @@ -8,9 +8,11 @@ use alloy_rpc_types_engine::{ use eyre::Result; use reth_payload_primitives::PayloadTypes; use reth_scroll_engine_primitives::ScrollEngineTypes; +use reth_scroll_primitives::ScrollBlock; use rollup_node_primitives::BlockInfo; use rollup_node_providers::ExecutionPayloadProvider; use scroll_alloy_provider::ScrollEngineApi; +use scroll_alloy_rpc_types_engine::ScrollPayloadAttributes; use tokio::time::Duration; use tracing::{debug, error, info, instrument, trace}; @@ -28,7 +30,7 @@ pub struct EngineDriver { impl EngineDriver where - EC: ScrollEngineApi + Unpin + Send + Sync + 'static, + EC: ScrollEngineApi + Unpin + Send + Sync + 'static, P: ExecutionPayloadProvider + Unpin + Send + Sync + 'static, { /// Create a new [`EngineDriver`] from the provided [`ScrollEngineApi`] and @@ -165,6 +167,32 @@ where } } + /// Builds a new payload from the provided fork choice state and payload attributes. + pub async fn build_new_payload( + &self, + mut fcs: ForkchoiceState, + payload_attributes: ScrollPayloadAttributes, + ) -> Result { + tracing::trace!(target: "scroll::engine::driver", ?payload_attributes, "building new payload"); + + // start a payload building job on top of the current unsafe head. + let fc_updated = self.forkchoice_updated(fcs, Some(payload_attributes)).await?; + + // retrieve the execution payload + let execution_payload = self + .get_payload(fc_updated.payload_id.expect("payload attributes has been set")) + .await?; + + // update the head block hash to the new payload block hash. + fcs.head_block_hash = execution_payload.block_hash(); + + // update the fork choice state with the new block hash. + self.forkchoice_updated(fcs, None).await?; + + // convert the payload into a block. + execution_payload.try_into().map_err(|_| EngineDriverError::InvalidExecutionPayload) + } + /// Calls `engine_newPayloadV1` and logs the result. async fn new_payload( &self, diff --git a/crates/engine/src/error.rs b/crates/engine/src/error.rs index d32d38f4..97340771 100644 --- a/crates/engine/src/error.rs +++ b/crates/engine/src/error.rs @@ -2,18 +2,18 @@ #[derive(Debug, thiserror::Error)] pub enum EngineDriverError { /// The engine is unavailable. - #[error("engine is unavailable")] + #[error("Engine is unavailable")] EngineUnavailable, /// The execution payload is invalid. - #[error("invalid execution payload")] + #[error("Invalid execution payload")] InvalidExecutionPayload, /// The engine failed to execute the fork choice update. - #[error("invalid forkchoice update")] + #[error("Failed to execute fork choice update")] InvalidFcu, /// The execution payload provider is unavailable. - #[error("execution payload provider unavailable")] + #[error("Execution payload provider is unavailable")] ExecutionPayloadProviderUnavailable, /// The engine driver is syncing. - #[error("engine driver is syncing")] + #[error("Engine driver is syncing")] Syncing, } diff --git a/crates/engine/src/fcs.rs b/crates/engine/src/fcs.rs index 6e8bf3d0..1d8aadd2 100644 --- a/crates/engine/src/fcs.rs +++ b/crates/engine/src/fcs.rs @@ -5,11 +5,11 @@ use rollup_node_primitives::BlockInfo; /// The fork choice state. /// -/// The state is composed of the [`BlockInfo`] for `unsafe`, `safe` block, and the `finalized` +/// The state is composed of the [`BlockInfo`] for `head`, `safe` block, and the `finalized` /// blocks. #[derive(Debug, Clone)] pub struct ForkchoiceState { - unsafe_: BlockInfo, + head: BlockInfo, safe: BlockInfo, finalized: BlockInfo, } @@ -22,7 +22,7 @@ impl ForkchoiceState { /// Creates a new [`ForkchoiceState`] instance. pub const fn new(unsafe_: BlockInfo, safe: BlockInfo, finalized: BlockInfo) -> Self { - Self { unsafe_, safe, finalized } + Self { head: unsafe_, safe, finalized } } /// Creates a [`ForkchoiceState`] instance that represents the genesis state of the provided @@ -38,7 +38,7 @@ impl ForkchoiceState { /// Updates the `unsafe` block info. pub fn update_unsafe_block_info(&mut self, unsafe_: BlockInfo) { - self.unsafe_ = unsafe_; + self.head = unsafe_; } /// Updates the `safe` block info. @@ -53,7 +53,7 @@ impl ForkchoiceState { /// Returns the block info for the `unsafe` block. pub const fn unsafe_block_info(&self) -> &BlockInfo { - &self.unsafe_ + &self.head } /// Returns the block info for the `safe` block. @@ -69,7 +69,7 @@ impl ForkchoiceState { /// Returns the [`AlloyForkchoiceState`] representation of the fork choice state. pub const fn get_alloy_fcs(&self) -> AlloyForkchoiceState { AlloyForkchoiceState { - head_block_hash: self.unsafe_.hash, + head_block_hash: self.head.hash, safe_block_hash: self.safe.hash, finalized_block_hash: self.finalized.hash, } @@ -77,6 +77,6 @@ impl ForkchoiceState { /// Returns `true` if the fork choice state is the genesis state. pub const fn is_genesis(&self) -> bool { - self.unsafe_.number == 0 + self.head.number == 0 } } diff --git a/crates/network/Cargo.toml b/crates/network/Cargo.toml index cd4ac226..7965b375 100644 --- a/crates/network/Cargo.toml +++ b/crates/network/Cargo.toml @@ -26,7 +26,7 @@ scroll-wire.workspace = true # misc futures.workspace = true -parking_lot = "0.12" +parking_lot.workspace = true secp256k1 = { workspace = true, features = ["global-context", "rand-std", "recovery"] } tokio = { workspace = true, features = ["full"] } tokio-stream.workspace = true diff --git a/crates/node/Cargo.toml b/crates/node/Cargo.toml index 0c86e516..c775cc5a 100644 --- a/crates/node/Cargo.toml +++ b/crates/node/Cargo.toml @@ -6,6 +6,9 @@ rust-version.workspace = true license.workspace = true exclude.workspace = true +[lints] +workspace = true + [dependencies] # alloy alloy-eips.workspace = true @@ -42,9 +45,6 @@ tokio-stream.workspace = true tokio.workspace = true tracing.workspace = true -[lints] -workspace = true - [features] serde = [ "alloy-rpc-types-engine/serde", diff --git a/crates/node/src/lib.rs b/crates/node/src/lib.rs index 992c5c3a..805ffd28 100644 --- a/crates/node/src/lib.rs +++ b/crates/node/src/lib.rs @@ -8,7 +8,6 @@ use futures::{stream::FuturesOrdered, FutureExt, StreamExt}; use reth_tokio_util::{EventSender, EventStream}; use rollup_node_indexer::{Indexer, IndexerEvent}; use rollup_node_watcher::L1Notification; -use scroll_alloy_network::Scroll as ScrollNetwork; use scroll_alloy_provider::ScrollEngineApi; use scroll_alloy_rpc_types_engine::ScrollPayloadAttributes; use scroll_engine::{EngineDriver, EngineDriverError, ForkchoiceState}; @@ -112,7 +111,7 @@ impl Debug for RollupNodeManager RollupNodeManager where C: Consensus + Unpin, - EC: ScrollEngineApi + Unpin + Sync + Send + 'static, + EC: ScrollEngineApi + Unpin + Sync + Send + 'static, P: ExecutionPayloadProvider + Unpin + Send + Sync + 'static, L1P: L1Provider + Clone + Send + Sync + 'static, { @@ -193,7 +192,7 @@ where // Send the block to the engine to validate the correctness of the block. let mut fcs = self.get_alloy_fcs(); - let engine = self.engine.clone(); + let engine: Arc> = self.engine.clone(); let future = Box::pin(async move { trace!(target: "scroll::node::manager", "handling block import future for block {:?}", block.hash_slow()); @@ -311,7 +310,7 @@ where impl Future for RollupNodeManager where C: Consensus + Unpin, - EC: ScrollEngineApi + Unpin + Sync + Send + 'static, + EC: ScrollEngineApi + Unpin + Sync + Send + 'static, P: ExecutionPayloadProvider + Unpin + Send + Sync + 'static, L1P: L1Provider + Clone + Unpin + Send + Sync + 'static, { diff --git a/crates/providers/Cargo.toml b/crates/providers/Cargo.toml index ce828844..aa309175 100644 --- a/crates/providers/Cargo.toml +++ b/crates/providers/Cargo.toml @@ -15,12 +15,15 @@ alloy-eips = { workspace = true, features = ["kzg"] } alloy-primitives.workspace = true alloy-rpc-types-beacon = "0.13" alloy-rpc-types-engine.workspace = true -alloy-serde = "0.12" +alloy-serde = { version = "0.13.0", default-features = false } # scroll scroll-alloy-consensus.workspace = true scroll-db.workspace = true +# rollup-node +rollup-node-primitives.workspace = true + # misc async-trait.workspace = true auto_impl.workspace = true diff --git a/crates/providers/src/l1/message.rs b/crates/providers/src/l1/message.rs deleted file mode 100644 index 0221de5c..00000000 --- a/crates/providers/src/l1/message.rs +++ /dev/null @@ -1,71 +0,0 @@ -use crate::L1ProviderError; -use std::sync::atomic::{AtomicU64, Ordering}; - -use alloy_primitives::B256; -use scroll_alloy_consensus::TxL1Message; -use scroll_db::{DatabaseConnectionProvider, DatabaseOperations}; - -/// An instance of the trait can provide L1 messages using a cursor approach. Set the cursor for the -/// provider using the queue index or hash and then call [`L1MessageProvider::next_l1_message`] to -/// iterate the queue. -#[async_trait::async_trait] -#[auto_impl::auto_impl(&)] -pub trait L1MessageProvider { - /// The error type for the provider. - type Error: Into; - - /// Returns the L1 message at the current cursor and advances the cursor. - async fn next_l1_message(&self) -> Result, Self::Error>; - /// Set the index cursor for the provider. - fn set_index_cursor(&self, index: u64); - /// Set the hash cursor for the provider. - fn set_hash_cursor(&self, hash: B256); -} - -/// Implements [`L1MessageProvider`] via a database connection. -#[derive(Debug)] -pub struct DatabaseL1MessageProvider { - /// A connection to the database. - database_connection: DB, - /// The current L1 message index. - index: AtomicU64, -} - -/// Cloning the [`DatabaseL1MessageProvider`] clones the reference to the database and creates a new -/// u64 atomic. -impl Clone for DatabaseL1MessageProvider { - fn clone(&self) -> Self { - Self { database_connection: self.database_connection.clone(), index: AtomicU64::new(0) } - } -} - -impl DatabaseL1MessageProvider { - /// Returns a new instance of the [`DatabaseL1MessageProvider`]. - pub const fn new(db: DB) -> Self { - Self { database_connection: db, index: AtomicU64::new(0) } - } -} - -#[async_trait::async_trait] -impl L1MessageProvider for DatabaseL1MessageProvider { - type Error = L1ProviderError; - - async fn next_l1_message(&self) -> Result, Self::Error> { - // Memory Ordering: [`Ordering::Relaxed`] is sufficient based on this comment: - // https://github.com/tokio-rs/tokio/discussions/4484#discussioncomment-2140741 - let index = self.index.fetch_add(1, Ordering::Relaxed); - Ok(self - .database_connection - .get_l1_message(index) - .await - .map(|tx| tx.map(|tx| tx.transaction))?) - } - - fn set_index_cursor(&self, index: u64) { - self.index.store(index, Ordering::Relaxed); - } - - fn set_hash_cursor(&self, _hash: B256) { - todo!("issue #43") - } -} diff --git a/crates/providers/src/l1/message/database.rs b/crates/providers/src/l1/message/database.rs new file mode 100644 index 00000000..e2d5a7e8 --- /dev/null +++ b/crates/providers/src/l1/message/database.rs @@ -0,0 +1,129 @@ +use super::*; +use std::sync::atomic::{AtomicU64, Ordering}; + +/// Implements [`L1MessageProvider`] via a database connection. +#[derive(Debug)] +pub struct DatabaseL1MessageProvider { + /// A connection to the database. + database_connection: DB, + /// The current L1 message index. + index: AtomicU64, +} + +impl DatabaseL1MessageProvider { + /// Returns a new instance of the [`DatabaseL1MessageProvider`]. + pub const fn new(db: DB, index: u64) -> Self { + Self { database_connection: db, index: AtomicU64::new(index) } + } +} + +/// Cloning the [`DatabaseL1MessageProvider`] clones the reference to the database and creates a new +/// u64 atomic. +impl Clone for DatabaseL1MessageProvider { + fn clone(&self) -> Self { + Self { database_connection: self.database_connection.clone(), index: AtomicU64::new(0) } + } +} + +#[async_trait::async_trait] +impl L1MessageProvider for DatabaseL1MessageProvider { + type Error = L1ProviderError; + + async fn get_l1_message_with_block_number( + &self, + ) -> Result, Self::Error> { + let index = self.index.load(Ordering::Relaxed); + Ok(self.database_connection.get_l1_message(index).await?) + } + + fn set_index_cursor(&self, index: u64) { + self.index.store(index, Ordering::Relaxed); + } + + fn set_hash_cursor(&self, _hash: B256) { + // TODO: issue 43 + todo!() + } + + fn increment_cursor(&self) { + self.index.fetch_add(1, Ordering::Relaxed); + } +} + +/// A provider that can provide L1 messages with a delay. +/// This provider is used to delay the L1 messages by a certain number of blocks which builds +/// confidence in the L1 message not being reorged. +#[derive(Debug)] +pub struct DatabaseL1MessageDelayProvider { + /// The database L1 message provider. + l1_message_provider: DatabaseL1MessageProvider, + /// The current L1 block number. + l1_tip: AtomicU64, + /// The number of blocks to wait for before including a L1 message in a block. + l1_message_delay: u64, +} + +impl DatabaseL1MessageDelayProvider { + /// Returns a new instance of the [`DatabaseL1MessageDelayProvider`]. + pub fn new( + l1_message_provider: DatabaseL1MessageProvider, + l1_tip_block_number: u64, + l1_message_delay: u64, + ) -> Self { + Self { l1_message_provider, l1_tip: l1_tip_block_number.into(), l1_message_delay } + } + + /// Sets the block number of the current L1 head. + pub fn set_l1_head(&self, block_number: u64) { + self.l1_tip.store(block_number, Ordering::Relaxed); + } +} + +/// A trait that allows the L1 message delay provider to set the current head number. +pub trait L1MessageDelayProvider { + /// Set the number of the current L1 head block number. + fn set_l1_head(&self, _block_number: u64) {} +} + +impl L1MessageDelayProvider for DatabaseL1MessageDelayProvider { + fn set_l1_head(&self, block_number: u64) { + Self::set_l1_head(self, block_number); + } +} + +impl L1MessageDelayProvider for DatabaseL1MessageProvider {} + +#[async_trait::async_trait] +impl L1MessageProvider + for DatabaseL1MessageDelayProvider +{ + type Error = L1ProviderError; + + async fn get_l1_message_with_block_number( + &self, + ) -> Result, Self::Error> { + let msg_w_bn = self.l1_message_provider.get_l1_message_with_block_number().await?; + let result = if let Some(msg_w_bn) = msg_w_bn { + let tx_block_number = msg_w_bn.block_number; + let depth = self.l1_tip.load(Ordering::Relaxed) - tx_block_number; + (depth >= self.l1_message_delay).then_some(msg_w_bn) + } else { + None + }; + + Ok(result) + } + + fn set_index_cursor(&self, index: u64) { + self.l1_message_provider.set_index_cursor(index); + } + + fn set_hash_cursor(&self, _hash: B256) { + // TODO: issue 43 + todo!() + } + + fn increment_cursor(&self) { + self.l1_message_provider.increment_cursor(); + } +} diff --git a/crates/providers/src/l1/message/mod.rs b/crates/providers/src/l1/message/mod.rs new file mode 100644 index 00000000..6ff83926 --- /dev/null +++ b/crates/providers/src/l1/message/mod.rs @@ -0,0 +1,58 @@ +use crate::L1ProviderError; + +use alloy_primitives::B256; +use rollup_node_primitives::L1MessageWithBlockNumber; +use scroll_alloy_consensus::TxL1Message; +use scroll_db::{DatabaseConnectionProvider, DatabaseOperations}; + +mod database; +pub use database::{ + DatabaseL1MessageDelayProvider, DatabaseL1MessageProvider, L1MessageDelayProvider, +}; + +/// An instance of the trait can provide L1 messages using a cursor approach. Set the cursor for the +/// provider using the queue index or hash and then call +/// [`L1MessageProvider::next_l1_message_with_block_number`] to iterate the queue. +#[async_trait::async_trait] +#[auto_impl::auto_impl(Arc)] +pub trait L1MessageProvider { + /// The error type for the provider. + type Error: Into; + + /// Returns the L1 message with block number at the current cursor. + /// This method does not advance the cursor. + async fn get_l1_message_with_block_number( + &self, + ) -> Result, Self::Error>; + + /// Returns the L1 message with block number at the current cursor and advances the cursor. + async fn next_l1_message_with_block_number( + &self, + ) -> Result, Self::Error> { + if let Some(message) = self.get_l1_message_with_block_number().await? { + self.increment_cursor(); + Ok(Some(message)) + } else { + Ok(None) + } + } + + /// Returns the L1 message with block number at the current cursor and advances the cursor. + async fn next_l1_message(&self) -> Result, Self::Error> { + let message = self.next_l1_message_with_block_number().await?; + Ok(message.map(|message| message.transaction)) + } + + /// Returns the L1 message at the current cursor. + /// This method does not advance the cursor. + async fn get_l1_message(&self) -> Result, Self::Error> { + let message = self.get_l1_message_with_block_number().await?; + Ok(message.map(|message| message.transaction)) + } + /// Set the index cursor for the provider. + fn set_index_cursor(&self, index: u64); + /// Set the hash cursor for the provider. + fn set_hash_cursor(&self, hash: B256); + /// Increment cursor index. + fn increment_cursor(&self); +} diff --git a/crates/providers/src/l1/mod.rs b/crates/providers/src/l1/mod.rs index ac953d8c..6fa4ba95 100644 --- a/crates/providers/src/l1/mod.rs +++ b/crates/providers/src/l1/mod.rs @@ -7,7 +7,7 @@ use std::{num::NonZeroUsize, sync::Arc}; use alloy_eips::eip4844::{Blob, BlobTransactionSidecarItem}; use alloy_primitives::B256; use lru::LruCache; -use scroll_alloy_consensus::TxL1Message; +use rollup_node_primitives::L1MessageWithBlockNumber; use scroll_db::DatabaseError; use tokio::sync::Mutex; @@ -138,11 +138,15 @@ impl L1BlobProvider for OnlineL1Provider L1MessageProvider for OnlineL1Provider { +impl L1MessageProvider + for OnlineL1Provider +{ type Error = ::Error; - async fn next_l1_message(&self) -> Result, Self::Error> { - self.l1_message_provider.next_l1_message().await + async fn get_l1_message_with_block_number( + &self, + ) -> Result, Self::Error> { + self.l1_message_provider.get_l1_message_with_block_number().await } fn set_index_cursor(&self, index: u64) { @@ -152,4 +156,8 @@ impl L1MessageProvider for OnlineL1Prov fn set_hash_cursor(&self, hash: B256) { self.l1_message_provider.set_hash_cursor(hash) } + + fn increment_cursor(&self) { + self.l1_message_provider.increment_cursor() + } } diff --git a/crates/providers/src/lib.rs b/crates/providers/src/lib.rs index 0cdaaa03..3c1a6993 100644 --- a/crates/providers/src/lib.rs +++ b/crates/providers/src/lib.rs @@ -9,7 +9,10 @@ mod execution_payload; pub use l1::{ blob::L1BlobProvider, - message::{DatabaseL1MessageProvider, L1MessageProvider}, + message::{ + DatabaseL1MessageDelayProvider, DatabaseL1MessageProvider, L1MessageDelayProvider, + L1MessageProvider, + }, L1Provider, L1ProviderError, OnlineL1Provider, }; mod l1; diff --git a/crates/sequencer/Cargo.toml b/crates/sequencer/Cargo.toml new file mode 100644 index 00000000..c21ad92a --- /dev/null +++ b/crates/sequencer/Cargo.toml @@ -0,0 +1,69 @@ +[package] +name = "rollup-node-sequencer" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +exclude.workspace = true + +[lints] +workspace = true + +[dependencies] +# alloy +alloy-eips.workspace = true +alloy-primitives.workspace = true +alloy-rpc-types-engine.workspace = true + +# scroll-alloy +scroll-alloy-network.workspace = true +scroll-alloy-provider.workspace = true +scroll-alloy-rpc-types-engine.workspace = true + +# reth-scroll +reth-scroll-primitives.workspace = true + +# rollup-node +scroll-engine.workspace = true +scroll-db = { workspace = true } +rollup-node-providers.workspace = true + +# misc +futures.workspace = true +thiserror.workspace = true +tracing.workspace = true + +[dev-dependencies] +# alloy +alloy-consensus.workspace = true +alloy-network.workspace = true +alloy-primitives.workspace = true + +# scroll-alloy +scroll-alloy-consensus.workspace = true + +# reth +reth-db = { git = "https://github.com/scroll-tech/reth.git" } +reth-e2e-test-utils.workspace = true +reth-node-builder = { git = "https://github.com/scroll-tech/reth.git", features = ["test-utils"] } +reth-node-core = { git = "https://github.com/scroll-tech/reth.git" } +reth-provider = { workspace = true, features = ["test-utils"] } +reth-revm = { git = "https://github.com/scroll-tech/reth.git", features = ["test-utils"] } +reth-rpc-api = { git = "https://github.com/scroll-tech/reth.git" } +reth-rpc-layer = { git = "https://github.com/scroll-tech/reth.git" } +reth-tasks.workspace = true +reth-tracing = { git = "https://github.com/scroll-tech/reth.git" } + +# reth-scroll +reth-scroll-node = { workspace = true, features = ["test-utils"] } + +# rollup-node +rollup-node-primitives.workspace = true +rollup-node-sequencer.workspace = true +scroll-db = { workspace = true, features = ["test-utils"] } +scroll-engine = { workspace = true, features = ["test-utils"] } + +# misc +futures.workspace = true +jsonrpsee.workspace = true +tokio.workspace = true diff --git a/crates/sequencer/src/error.rs b/crates/sequencer/src/error.rs new file mode 100644 index 00000000..b8e6b6e1 --- /dev/null +++ b/crates/sequencer/src/error.rs @@ -0,0 +1,19 @@ +use rollup_node_providers::L1ProviderError; +use scroll_db::DatabaseError; +use scroll_engine::EngineDriverError; + +// TODO: make the error types more fine grained. + +/// An error type for the sequencer. +#[derive(Debug, thiserror::Error)] +pub enum SequencerError { + /// The sequencer encountered an error when interacting with the database. + #[error("Encountered an error interacting with the database: {0}")] + DatabaseError(#[from] DatabaseError), + /// The sequencer encountered an error when interacting with the engine driver. + #[error("Encountered an error interacting with the EngineDriver {0}")] + EngineDriverError(#[from] EngineDriverError), + /// The sequencer encountered an error when interacting with the L1 message provider. + #[error("Encountered an error interacting with the L1 message provider: {0}")] + L1MessageProviderError(#[from] L1ProviderError), +} diff --git a/crates/sequencer/src/lib.rs b/crates/sequencer/src/lib.rs new file mode 100644 index 00000000..de5ca278 --- /dev/null +++ b/crates/sequencer/src/lib.rs @@ -0,0 +1,177 @@ +//! This library contains the sequencer, which is responsible for sequencing transactions and +//! producing new blocks. + +use std::{ + future::Future, + pin::Pin, + sync::Arc, + time::{SystemTime, UNIX_EPOCH}, +}; + +use alloy_eips::eip2718::Encodable2718; +use alloy_primitives::Address; +use alloy_rpc_types_engine::{ForkchoiceState, PayloadAttributes}; +use futures::Stream; +use reth_scroll_primitives::ScrollBlock; +use rollup_node_providers::{ExecutionPayloadProvider, L1MessageDelayProvider, L1MessageProvider}; +use scroll_alloy_provider::ScrollEngineApi; +use scroll_alloy_rpc_types_engine::ScrollPayloadAttributes; +use scroll_engine::EngineDriver; +use std::task::{Context, Poll}; + +mod error; +pub use error::SequencerError; + +/// A type alias for the payload building job future. +pub type PayloadBuildingJobFuture = + Pin> + Send>>; + +/// A trait used to define the L1 message provider for the sequencer. +pub trait SequencerL1MessageProvider: L1MessageProvider + L1MessageDelayProvider {} +impl SequencerL1MessageProvider for T where T: L1MessageProvider + L1MessageDelayProvider {} + +/// The sequencer is responsible for sequencing transactions and producing new blocks. +pub struct Sequencer { + /// A reference to the database + provider: Arc, + /// The engine API + engine: Arc>, + /// The fee recipient + fee_recipient: Address, + /// The number of L1 messages to include in each block. + max_l1_messages_per_block: u64, + /// The inflight payload building job + payload_building_job: Option, +} + +impl Sequencer +where + EC: ScrollEngineApi + Unpin + Send + Sync + 'static, + P: ExecutionPayloadProvider + Unpin + Send + Sync + 'static, + SMP: SequencerL1MessageProvider + Unpin + Send + Sync + 'static, +{ + /// Creates a new sequencer. + pub fn new( + provider: Arc, + engine: Arc>, + fee_recipient: Address, + max_l1_messages_per_block: u64, + ) -> Self { + Self { + provider, + engine, + fee_recipient, + max_l1_messages_per_block, + payload_building_job: None, + } + } + + /// Creates a new block using the pending transactions from the message queue and + /// the transaction pool. + pub fn build_block(&mut self, fcs: ForkchoiceState) { + tracing::info!(target: "rollup_node::sequencer", ?fcs, "New payload request received."); + + if self.payload_building_job.is_some() { + tracing::error!(target: "rollup_node::sequencer", "A payload building job is already in progress"); + return; + } + + let timestamp = SystemTime::now() + .duration_since(UNIX_EPOCH) + .expect("Time can't go backwards") + .as_secs(); + let payload_attributes = PayloadAttributes { + timestamp, + suggested_fee_recipient: self.fee_recipient, + parent_beacon_block_root: None, + prev_randao: Default::default(), + withdrawals: None, + }; + let max_l1_messages = self.max_l1_messages_per_block; + + let engine = self.engine.clone(); + let database = self.provider.clone(); + + self.payload_building_job = Some(Box::pin(async move { + build_block(engine, database, max_l1_messages, fcs, payload_attributes).await + })); + } + + /// Handle a reorg event. + pub fn handle_reorg(&mut self, queue_index: u64, block_number: u64) { + self.provider.set_index_cursor(queue_index); + self.provider.set_l1_head(block_number); + } + + /// Handle a new L1 block. + pub fn handle_new_l1_block(&mut self, block_number: u64) { + self.provider.set_l1_head(block_number); + } +} + +async fn build_block< + EC: ScrollEngineApi + Unpin + Send + Sync + 'static, + P: ExecutionPayloadProvider + Unpin + Send + Sync + 'static, + SMP: SequencerL1MessageProvider + Unpin + Send + Sync + 'static, +>( + engine: Arc>, + provider: Arc, + max_l1_messages: u64, + fcs: ForkchoiceState, + payload_attributes: PayloadAttributes, +) -> Result { + // Collect L1 messages to include in payload. + let mut l1_messages = vec![]; + for _ in 0..max_l1_messages { + match provider.next_l1_message().await.map_err(Into::into)? { + Some(l1_message) => { + l1_messages.push(l1_message.encoded_2718().into()); + } + None => { + break; + } + } + } + + let scroll_payload_attributes = ScrollPayloadAttributes { + payload_attributes, + transactions: (!l1_messages.is_empty()).then_some(l1_messages), + no_tx_pool: false, + block_data_hint: None, + }; + Ok(engine.build_new_payload(fcs, scroll_payload_attributes).await?) +} + +impl std::fmt::Debug for Sequencer { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("Sequencer") + .field("engine", &"EngineDriver") + .field("provider", &"SequencerMessageProvider") + .field("fee_recipient", &self.fee_recipient) + .field("payload_building_job", &"PayloadBuildingJob") + .field("l1_message_per_block", &self.max_l1_messages_per_block) + .finish() + } +} + +impl Stream for Sequencer { + type Item = ScrollBlock; + + fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { + if let Some(payload_building_job) = self.payload_building_job.as_mut() { + match payload_building_job.as_mut().poll(cx) { + Poll::Ready(Ok(block)) => { + self.payload_building_job = None; + Poll::Ready(Some(block)) + } + Poll::Ready(Err(_)) => { + self.payload_building_job = None; + Poll::Ready(None) + } + Poll::Pending => Poll::Pending, + } + } else { + Poll::Pending + } + } +} diff --git a/crates/sequencer/tests/e2e.rs b/crates/sequencer/tests/e2e.rs new file mode 100644 index 00000000..96109376 --- /dev/null +++ b/crates/sequencer/tests/e2e.rs @@ -0,0 +1,109 @@ +//! e2e tests for the sequencer. + +use alloy_consensus::BlockHeader; +use alloy_primitives::{Address, U256}; +use alloy_rpc_types_engine::ForkchoiceState; +use futures::stream::StreamExt; +use reth_e2e_test_utils::transaction::TransactionTestContext; +use reth_node_core::primitives::SignedTransaction; +use reth_scroll_node::test_utils::setup; +use rollup_node_primitives::L1MessageWithBlockNumber; +use rollup_node_providers::DatabaseL1MessageProvider; +use rollup_node_sequencer::Sequencer; +use scroll_alloy_consensus::TxL1Message; +use scroll_alloy_provider::ScrollAuthApiEngineClient; +use scroll_db::{test_utils::setup_test_db, DatabaseOperations}; +use scroll_engine::{test_utils::NoopExecutionPayloadProvider, EngineDriver}; +use std::sync::Arc; +use tokio::sync::Mutex; + +#[tokio::test] +async fn can_build_blocks() { + reth_tracing::init_test_tracing(); + + // setup a test node + let (mut nodes, _tasks, wallet) = setup(1, false).await.unwrap(); + let node = nodes.pop().unwrap(); + let wallet = Arc::new(Mutex::new(wallet)); + + // create a forkchoice state + let genesis_hash = node.inner.chain_spec().genesis_hash(); + let mut fcs = ForkchoiceState { + head_block_hash: genesis_hash, + safe_block_hash: genesis_hash, + finalized_block_hash: genesis_hash, + }; + + // create the engine driver connected to the node + let auth_client = node.inner.engine_http_client(); + let engine_client = ScrollAuthApiEngineClient::new(auth_client); + let engine_driver = Arc::new(EngineDriver::new(engine_client, NoopExecutionPayloadProvider)); + + // create a test database + let database = Arc::new(setup_test_db().await); + let provider = Arc::new(DatabaseL1MessageProvider::new(database.clone(), 0)); + + // create a sequencer + let mut sequencer = Sequencer::new(provider, engine_driver, Default::default(), 4); + + // add a transaction to the pool + let mut wallet_lock = wallet.lock().await; + let raw_tx = TransactionTestContext::transfer_tx_nonce_bytes( + wallet_lock.chain_id, + wallet_lock.inner.clone(), + wallet_lock.inner_nonce, + ) + .await; + wallet_lock.inner_nonce += 1; + drop(wallet_lock); + let tx_hash = node.rpc.inject_tx(raw_tx).await.unwrap(); + + // send a new block request + sequencer.build_block(fcs); + + // wait for the block to be built + let block = sequencer.next().await.unwrap(); + let block_1_hash = block.header.hash_slow(); + + // make some assertions on the transaction inclusion of the block + assert_eq!(block.body.transactions.first().unwrap().tx_hash(), &tx_hash); + assert!(block.body.transactions.len() == 1); + assert!(block.header.number() == 1); + assert_eq!(block.header.parent_hash, genesis_hash); + + // update the head of the forkchoice state + fcs.head_block_hash = block.header.hash_slow(); + + // now lets add an L1 message to the database + let wallet_lock = wallet.lock().await; + let l1_message = L1MessageWithBlockNumber { + block_number: 1, + transaction: TxL1Message { + queue_index: 0, + gas_limit: 21000, + to: Address::random(), + value: U256::from(1), + sender: wallet_lock.inner.address(), + input: vec![].into(), + }, + }; + drop(wallet_lock); + let l1_message_hash = l1_message.transaction.tx_hash(); + database.insert_l1_message(l1_message).await.unwrap(); + + // sleep 2 seconds (ethereum header timestamp has granularity of seconds and proceeding header + // must have a greater timestamp than the last) + tokio::time::sleep(std::time::Duration::from_secs(2)).await; + + // send a new block request this block should include the L1 message + sequencer.build_block(fcs); + + // wait for the block to be built + let block = sequencer.next().await.unwrap(); + + // make some assertions on the transaction inclusion of the block + assert_eq!(block.body.transactions.first().unwrap().tx_hash(), &l1_message_hash); + assert!(block.body.transactions.len() == 1); + assert!(block.header.number() == 2); + assert_eq!(block.header.parent_hash, block_1_hash); +}