From d24184cae11e932edfd38dac633353ec6874326a Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Wed, 19 Feb 2025 17:10:09 +0100 Subject: [PATCH 01/63] ci: add dprint --- .github/workflows/lint.yaml | 10 ++++++ Makefile | 12 ++++++- bin/bridge/Cargo.toml | 59 ++++++++++++++++------------------- crates/engine/Cargo.toml | 30 +++++++++--------- crates/network/Cargo.toml | 22 ++++++------- crates/node/Cargo.toml | 14 ++++----- crates/scroll-wire/Cargo.toml | 21 +++++-------- dprint.json | 13 ++++++++ 8 files changed, 101 insertions(+), 80 deletions(-) create mode 100644 dprint.json diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 0cfe5073..2602a22f 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -42,6 +42,16 @@ jobs: - name: Run fmt run: cargo fmt --all --check + check-toml: + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + - name: Run dprint + uses: dprint/check@v2.2 + with: + config-path: dprint.json + udeps: runs-on: ubuntu-latest timeout-minutes: 60 diff --git a/Makefile b/Makefile index 3e7330b9..0bcee135 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,16 @@ fmt: cargo +nightly fmt +.PHONY: lint-toml +lint-toml: ensure-dprint + dprint fmt + +ensure-dprint: + @if ! command -v dprint &> /dev/null; then \ + echo "dprint not found. Please install it by running the command `cargo install --locked dprint` or refer to the following link for more information: https://github.com/dprint/dprint" \ + exit 1; \ + fi + .PHONY: clippy clippy: cargo +nightly clippy \ @@ -38,7 +48,7 @@ ensure-zepter: fi .PHONY: lint -lint: fmt clippy udeps codespell zepter +lint: fmt lint-toml clippy udeps codespell zepter .PHONY: test test: diff --git a/bin/bridge/Cargo.toml b/bin/bridge/Cargo.toml index 5d1ebb3b..ff1a6f68 100644 --- a/bin/bridge/Cargo.toml +++ b/bin/bridge/Cargo.toml @@ -14,7 +14,7 @@ alloy-rpc-types-engine.workspace = true # scroll-alloy scroll-alloy-consensus = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -scroll-alloy-rpc-types-engine= { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } scroll-alloy-provider.workspace = true # reth @@ -27,7 +27,7 @@ reth-node-builder = { git = "https://github.com/scroll-tech/reth.git", branch = reth-node-core = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } reth-node-types = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } reth-primitives.workspace = true -reth-provider = { workspace = true, features = ["scroll", "skip-state-root-validation"]} +reth-provider = { workspace = true, features = ["scroll", "skip-state-root-validation"] } reth-rpc-api = { workspace = true, features = ["client"] } reth-rpc-builder = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } reth-transaction-pool = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } @@ -49,18 +49,13 @@ rollup-node-manager.workspace = true clap = { version = "4", features = ["derive", "env"] } eyre.workspace = true futures.workspace = true -secp256k1 = { workspace = true, features = [ - "global-context", - "recovery", -] } +secp256k1 = { workspace = true, features = ["global-context", "recovery"] } tokio = { workspace = true, features = ["full"] } tracing.workspace = true [dev-dependencies] # alloy -alloy-primitives = { workspace = true, default-features = false, features = [ - "map-foldhash", -] } +alloy-primitives = { workspace = true, default-features = false, features = ["map-foldhash"] } alloy-rpc-types-engine.workspace = true # reth @@ -70,36 +65,36 @@ reth-rpc-server-types = { git = "https://github.com/scroll-tech/reth.git", branc reth-tasks.workspace = true reth-tracing = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -# misc +#  misc serde_json = { version = "1.0.94", default-features = false, features = ["alloc"] } tokio = { workspace = true, features = ["full"] } [features] test-utils = [ - "reth-network/test-utils", - "reth-node-builder/test-utils", - "reth-primitives/test-utils", - "reth-provider/test-utils", - "reth-transaction-pool/test-utils", - "scroll-engine/test-utils", - "reth-payload-builder/test-utils", - "reth-payload-builder/test-utils" + "reth-network/test-utils", + "reth-node-builder/test-utils", + "reth-primitives/test-utils", + "reth-provider/test-utils", + "reth-transaction-pool/test-utils", + "scroll-engine/test-utils", + "reth-payload-builder/test-utils", + "reth-payload-builder/test-utils", ] serde = [ - "alloy-primitives/serde", - "alloy-rpc-types-engine/serde", - "reth-eth-wire-types/serde", - "reth-network/serde", - "reth-provider/serde", - "reth-scroll-primitives/serde", - "scroll-alloy-consensus/serde", - "scroll-alloy-rpc-types-engine/serde", - "scroll-engine/serde", - "scroll-network/serde", - "scroll-wire/serde", - "secp256k1/serde", - "rollup-node-manager/serde", - "alloy-chains/serde" + "alloy-primitives/serde", + "alloy-rpc-types-engine/serde", + "reth-eth-wire-types/serde", + "reth-network/serde", + "reth-provider/serde", + "reth-scroll-primitives/serde", + "scroll-alloy-consensus/serde", + "scroll-alloy-rpc-types-engine/serde", + "scroll-engine/serde", + "scroll-network/serde", + "scroll-wire/serde", + "secp256k1/serde", + "rollup-node-manager/serde", + "alloy-chains/serde", ] [[bin]] diff --git a/crates/engine/Cargo.toml b/crates/engine/Cargo.toml index e78a4945..dbfd013c 100644 --- a/crates/engine/Cargo.toml +++ b/crates/engine/Cargo.toml @@ -48,23 +48,23 @@ reth-testing-utils = { git = "https://github.com/scroll-tech/reth.git", branch = [features] arbitrary = [ - "alloy-primitives/arbitrary", - "reth-primitives/arbitrary", - "alloy-eips/arbitrary", - "reth-scroll-primitives/arbitrary", - "scroll-alloy-rpc-types-engine/arbitrary", - "alloy-chains/arbitrary" + "alloy-primitives/arbitrary", + "reth-primitives/arbitrary", + "alloy-eips/arbitrary", + "reth-scroll-primitives/arbitrary", + "scroll-alloy-rpc-types-engine/arbitrary", + "alloy-chains/arbitrary", ] test-utils = [ - "arbitrary", - "dep:arbitrary", - "reth-primitives/test-utils" + "arbitrary", + "dep:arbitrary", + "reth-primitives/test-utils", ] serde = [ - "alloy-eips/serde", - "alloy-primitives/serde", - "alloy-rpc-types-engine/serde", - "reth-scroll-primitives/serde", - "scroll-alloy-rpc-types-engine/serde", - "alloy-chains/serde" + "alloy-eips/serde", + "alloy-primitives/serde", + "alloy-rpc-types-engine/serde", + "reth-scroll-primitives/serde", + "scroll-alloy-rpc-types-engine/serde", + "alloy-chains/serde", ] diff --git a/crates/network/Cargo.toml b/crates/network/Cargo.toml index f0931ff8..29c765ba 100644 --- a/crates/network/Cargo.toml +++ b/crates/network/Cargo.toml @@ -8,9 +8,7 @@ exclude.workspace = true [dependencies] # alloy -alloy-primitives = { workspace = true, features = [ - "map-foldhash", -] } +alloy-primitives = { workspace = true, features = ["map-foldhash"] } # reth reth-discv5 = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } @@ -39,13 +37,13 @@ tracing.workspace = true [features] serde = [ - "alloy-primitives/serde", - "parking_lot/serde", - "reth-eth-wire-types/serde", - "reth-network/serde", - "reth-network-api/serde", - "reth-network-types/serde", - "reth-scroll-primitives/serde", - "scroll-wire/serde", - "secp256k1/serde" + "alloy-primitives/serde", + "parking_lot/serde", + "reth-eth-wire-types/serde", + "reth-network/serde", + "reth-network-api/serde", + "reth-network-types/serde", + "reth-scroll-primitives/serde", + "scroll-wire/serde", + "secp256k1/serde", ] diff --git a/crates/node/Cargo.toml b/crates/node/Cargo.toml index 290f8c30..19d79bd0 100644 --- a/crates/node/Cargo.toml +++ b/crates/node/Cargo.toml @@ -43,11 +43,11 @@ workspace = true [features] serde = [ - "alloy-rpc-types-engine/serde", - "reth-scroll-primitives/serde", - "scroll-engine/serde", - "scroll-network/serde", - "scroll-wire/serde", - "secp256k1/serde", - "alloy-eips/serde" + "alloy-rpc-types-engine/serde", + "reth-scroll-primitives/serde", + "scroll-engine/serde", + "scroll-network/serde", + "scroll-wire/serde", + "secp256k1/serde", + "alloy-eips/serde", ] diff --git a/crates/scroll-wire/Cargo.toml b/crates/scroll-wire/Cargo.toml index 494cd7ae..299abc96 100644 --- a/crates/scroll-wire/Cargo.toml +++ b/crates/scroll-wire/Cargo.toml @@ -11,9 +11,7 @@ workspace = true [dependencies] # alloy -alloy-primitives = { workspace = true, features = [ - "map-foldhash", -] } +alloy-primitives = { workspace = true, features = ["map-foldhash"] } alloy-rlp = { version = "0.3.10", default-features = false } # reth @@ -27,20 +25,17 @@ reth-scroll-primitives = { workspace = true, features = ["serde"] } # misc futures.workspace = true -secp256k1 = { workspace = true, features = [ - "global-context", - "recovery", -] } +secp256k1 = { workspace = true, features = ["global-context", "recovery"] } tokio = { workspace = true, features = ["full"] } tokio-stream.workspace = true tracing.workspace = true [features] serde = [ - "alloy-primitives/serde", - "reth-eth-wire/serde", - "reth-network/serde", - "reth-network-api/serde", - "reth-scroll-primitives/serde", - "secp256k1/serde" + "alloy-primitives/serde", + "reth-eth-wire/serde", + "reth-network/serde", + "reth-network-api/serde", + "reth-scroll-primitives/serde", + "secp256k1/serde", ] diff --git a/dprint.json b/dprint.json new file mode 100644 index 00000000..dc615dbf --- /dev/null +++ b/dprint.json @@ -0,0 +1,13 @@ +{ + "toml": { + "useTabs": false, + "cargo.applyConventions": false, + "indentWidth": 4 + }, + "includes": [ + "**/*.toml" + ], + "plugins": [ + "https://plugins.dprint.dev/toml-0.6.4.wasm" + ] +} From 065fe5bc1d4453d43a8952b45531ce6b04ce0ab5 Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Sun, 23 Feb 2025 17:04:58 +0100 Subject: [PATCH 02/63] feat: initial work + handle_latest_block --- Cargo.lock | 1270 ++++++++++------- Cargo.toml | 21 +- crates/engine/Cargo.toml | 8 +- crates/engine/src/engine.rs | 9 +- crates/engine/src/fcs.rs | 2 +- crates/engine/src/lib.rs | 3 - crates/primitives/Cargo.toml | 14 + .../block_info.rs => primitives/src/block.rs} | 9 +- crates/primitives/src/lib.rs | 4 + crates/watcher/Cargo.toml | 38 + crates/watcher/src/error.rs | 12 + crates/watcher/src/lib.rs | 399 ++++++ crates/watcher/src/test_utils.rs | 36 + 13 files changed, 1317 insertions(+), 508 deletions(-) create mode 100644 crates/primitives/Cargo.toml rename crates/{engine/src/block_info.rs => primitives/src/block.rs} (72%) create mode 100644 crates/primitives/src/lib.rs create mode 100644 crates/watcher/Cargo.toml create mode 100644 crates/watcher/src/error.rs create mode 100644 crates/watcher/src/lib.rs create mode 100644 crates/watcher/src/test_utils.rs diff --git a/Cargo.lock b/Cargo.lock index b73db196..ab947464 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,9 +97,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.1.62" +version = "0.1.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1317fde6d2d3cd6082a15144c23230697a5e1a91a27d1facc146715d3b4b2046" +checksum = "4d37bc62b68c056e3742265ab73c73d413d07357909e0e4ea1e95453066a7469" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -107,7 +107,26 @@ dependencies = [ "num_enum", "proptest", "serde", - "strum 0.27.1", + "strum", +] + +[[package]] +name = "alloy-consensus" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4138dc275554afa6f18c4217262ac9388790b2fc393c2dfe03c51d357abf013" +dependencies = [ + "alloy-eips 0.9.2", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.9.2", + "alloy-trie", + "arbitrary", + "auto_impl", + "c-kzg", + "derive_more", + "rand 0.8.5", + "serde", ] [[package]] @@ -132,11 +151,25 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "0.11.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa13b7b1e1e3fedc42f0728103bfa3b4d566d3d42b606db449504d88dbdbdcf" +checksum = "0fa04e1882c31288ce1028fdf31b6ea94cfa9eafa2e497f903ded631c8c6a42c" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.9.2", + "alloy-eips 0.9.2", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.9.2", + "serde", +] + +[[package]] +name = "alloy-consensus-any" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e23af02ccded0031ef2b70df4fe9965b1c742c5d5384c8c767ae0311f7e62b9" +dependencies = [ + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -146,9 +179,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555896f0b8578adb522b1453b6e6cc6704c3027bd0af20058befdde992cee8e9" +checksum = "7f2d547eba3f2d331b0e08f64a24e202f66d4f291e2a3e0073914c0e1400ced3" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -262,9 +295,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4012581681b186ba0882007ed873987cc37f86b1b488fe6b91d5efd0b585dc41" +checksum = "d62cf1b25f5a50ca2d329b0b4aeb0a0dedeaf225ad3c5099d83b1a4c4616186e" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -274,9 +307,23 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.11.1" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2008bedb8159a255b46b7c8614516eda06679ea82f620913679afbd8031fea72" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "serde", + "serde_json", + "thiserror 2.0.11", + "tracing", +] + +[[package]] +name = "alloy-json-rpc" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "762414662d793d7aaa36ee3af6928b6be23227df1681ce9c039f6f11daadef64" +checksum = "c0c5c9651fd20a2fd4a57606b6a570d1c17ab86e686b962b2f1ecac68b51e020" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -286,22 +333,47 @@ dependencies = [ "tracing", ] +[[package]] +name = "alloy-network" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4556f01fe41d0677495df10a648ddcf7ce118b0e8aa9642a0e2b6dd1fb7259de" +dependencies = [ + "alloy-consensus 0.9.2", + "alloy-consensus-any 0.9.2", + "alloy-eips 0.9.2", + "alloy-json-rpc 0.9.2", + "alloy-network-primitives 0.9.2", + "alloy-primitives", + "alloy-rpc-types-any 0.9.2", + "alloy-rpc-types-eth 0.9.2", + "alloy-serde 0.9.2", + "alloy-signer 0.9.2", + "alloy-sol-types", + "async-trait", + "auto_impl", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror 2.0.11", +] + [[package]] name = "alloy-network" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be03f2ebc00cf88bd06d3c6caf387dceaa9c7e6b268216779fa68a9bf8ab4e6" dependencies = [ - "alloy-consensus", - "alloy-consensus-any", + "alloy-consensus 0.11.1", + "alloy-consensus-any 0.11.0", "alloy-eips 0.11.1", - "alloy-json-rpc", - "alloy-network-primitives", + "alloy-json-rpc 0.11.0", + "alloy-network-primitives 0.11.1", "alloy-primitives", - "alloy-rpc-types-any", - "alloy-rpc-types-eth", + "alloy-rpc-types-any 0.11.0", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", - "alloy-signer", + "alloy-signer 0.11.1", "alloy-sol-types", "async-trait", "auto_impl", @@ -311,13 +383,26 @@ dependencies = [ "thiserror 2.0.11", ] +[[package]] +name = "alloy-network-primitives" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31c3c6b71340a1d076831823f09cb6e02de01de5c6630a9631bdb36f947ff80" +dependencies = [ + "alloy-consensus 0.9.2", + "alloy-eips 0.9.2", + "alloy-primitives", + "alloy-serde 0.9.2", + "serde", +] + [[package]] name = "alloy-network-primitives" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a00ce618ae2f78369918be0c20f620336381502c83b6ed62c2f7b2db27698b0" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-serde 0.11.1", @@ -326,9 +411,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478bedf4d24e71ea48428d1bc278553bd7c6ae07c30ca063beb0b09fe58a9e74" +checksum = "bc1360603efdfba91151e623f13a4f4d3dc4af4adc1cbd90bf37c81e84db4c77" dependencies = [ "alloy-rlp", "arbitrary", @@ -357,23 +442,56 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.11.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbe0a2acff0c4bd1669c71251ce10fc455cbffa1b4d0a817d5ea4ba7e5bb3db7" +checksum = "5a22c4441b3ebe2d77fa9cf629ba68c3f713eb91779cff84275393db97eddd82" dependencies = [ "alloy-chains", - "alloy-consensus", + "alloy-consensus 0.9.2", + "alloy-eips 0.9.2", + "alloy-json-rpc 0.9.2", + "alloy-network 0.9.2", + "alloy-network-primitives 0.9.2", + "alloy-primitives", + "alloy-rpc-client 0.9.2", + "alloy-rpc-types-eth 0.9.2", + "alloy-transport 0.9.2", + "async-stream", + "async-trait", + "auto_impl", + "dashmap", + "futures", + "futures-utils-wasm", + "lru 0.12.5", + "parking_lot", + "pin-project", + "schnellru", + "serde", + "serde_json", + "thiserror 2.0.11", + "tokio", + "tracing", + "wasmtimer", +] + +[[package]] +name = "alloy-provider" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07c68df5354225da542efeb6d9388b65773b3304309b437416146e9d1e2bc1bd" +dependencies = [ + "alloy-chains", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", - "alloy-json-rpc", - "alloy-network", - "alloy-network-primitives", + "alloy-json-rpc 0.11.0", + "alloy-network 0.11.1", + "alloy-network-primitives 0.11.1", "alloy-primitives", "alloy-pubsub", - "alloy-rpc-client", - "alloy-rpc-types-eth", - "alloy-sol-types", - "alloy-transport", - "alloy-transport-http", + "alloy-rpc-client 0.11.0", + "alloy-rpc-types-eth 0.11.1", + "alloy-transport 0.11.0", + "alloy-transport-http 0.11.0", "alloy-transport-ipc", "alloy-transport-ws", "async-stream", @@ -397,13 +515,13 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3a68996f193f542f9e29c88dfa8ed1369d6ee04fa764c1bf23dc11b2f9e4a2" +checksum = "7ef6ef167ea24e7aac569dfd90b668c1f7dca0e48214e70364586d5341a89431" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 0.11.0", "alloy-primitives", - "alloy-transport", + "alloy-transport 0.11.0", "bimap", "futures", "serde", @@ -438,15 +556,36 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.11.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b37cc3c7883dc41be1b01460127ad7930466d0a4bb6ba15a02ee34d2745e2d7c" +checksum = "d06a292b37e182e514903ede6e623b9de96420e8109ce300da288a96d88b7e4b" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 0.9.2", + "alloy-primitives", + "alloy-transport 0.9.2", + "alloy-transport-http 0.9.2", + "futures", + "pin-project", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower 0.5.2", + "tracing", + "wasmtimer", +] + +[[package]] +name = "alloy-rpc-client" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0371aae9b44a35e374c94c7e1df5cbccf0f52b2ef7c782291ed56e86d88ec106" +dependencies = [ + "alloy-json-rpc 0.11.0", "alloy-primitives", "alloy-pubsub", - "alloy-transport", - "alloy-transport-http", + "alloy-transport 0.11.0", + "alloy-transport-http 0.11.0", "alloy-transport-ipc", "alloy-transport-ws", "futures", @@ -464,22 +603,22 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f18e68a3882f372e045ddc89eb455469347767d17878ca492cfbac81e71a111" +checksum = "1428d64569961b00373c503a3de306656e94ef1f2a474e93fd41a6daae0d6ac7" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", "serde", ] [[package]] name = "alloy-rpc-types-admin" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4e30339fff15d53a3a258a7add476c7d24b61d6f4a71476cc39c8b567666772" +checksum = "b1d25e16c2be6518be9274ab16fe19190666d4330d0713aa14938f593ddb0098" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -489,36 +628,47 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10d06300df4a87d960add35909240fc72da355dd2ac926fa6999f9efafbdc5a7" +checksum = "d721727cc493a58bd197a3ebbd42b88c0393c1f30da905bb7a31686c820f4c2d" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", "serde", ] [[package]] name = "alloy-rpc-types-any" -version = "0.11.1" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca445cef0eb6c2cf51cfb4e214fbf1ebd00893ae2e6f3b944c8101b07990f988" +dependencies = [ + "alloy-consensus-any 0.9.2", + "alloy-rpc-types-eth 0.9.2", + "alloy-serde 0.9.2", +] + +[[package]] +name = "alloy-rpc-types-any" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "318ae46dd12456df42527c3b94c1ae9001e1ceb707f7afe2c7807ac4e49ebad9" +checksum = "66e119337400d8b0348e1576ab37ffa56d1a04cbc977a84d4fa0a527d7cb0c21" dependencies = [ - "alloy-consensus-any", - "alloy-rpc-types-eth", + "alloy-consensus-any 0.11.0", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", ] [[package]] name = "alloy-rpc-types-beacon" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799103aa44270c7bea076ec5d3d7b6c6d29557ab5485c91a74d3068327adb485" +checksum = "9deadb4c8927dc702b58c8fb675f9fb88782c4c9c95096682058c1574141b8b7" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "ethereum_ssz", "ethereum_ssz_derive", "serde", @@ -528,9 +678,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2834b7012054cb2f90ee9893b7cc97702edca340ec1ef386c30c42e55e6cd691" +checksum = "fea98e1c4ac005ffe5f8691164f5f2ef5ee8dda50b1fdba173d44892141909e2" dependencies = [ "alloy-primitives", "serde", @@ -538,11 +688,27 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "0.11.1" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f821f30344862a0b6eb9a1c2eb91dfb2ff44c7489f37152a526cdcab79264" +dependencies = [ + "alloy-consensus 0.9.2", + "alloy-eips 0.9.2", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.9.2", + "derive_more", + "serde", + "strum", +] + +[[package]] +name = "alloy-rpc-types-engine" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83dde9fcf1ccb9b815cc0c89bba26bbbbaae5150a53ae624ed0fc63cb3676c1" +checksum = "b582c59b6f493d9b15bea32f44f662fa6749e5464ef5305d8429a864ace60684" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -554,7 +720,27 @@ dependencies = [ "jsonwebtoken", "rand 0.8.5", "serde", - "strum 0.26.3", + "strum", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0938bc615c02421bd86c1733ca7205cc3d99a122d9f9bff05726bd604b76a5c2" +dependencies = [ + "alloy-consensus 0.9.2", + "alloy-consensus-any 0.9.2", + "alloy-eips 0.9.2", + "alloy-network-primitives 0.9.2", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.9.2", + "alloy-sol-types", + "itertools 0.13.0", + "serde", + "serde_json", + "thiserror 2.0.11", ] [[package]] @@ -563,10 +749,10 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b4dbee4d82f8a22dde18c28257bed759afeae7ba73da4a1479a039fd1445d04" dependencies = [ - "alloy-consensus", - "alloy-consensus-any", + "alloy-consensus 0.11.1", + "alloy-consensus-any 0.11.0", "alloy-eips 0.11.1", - "alloy-network-primitives", + "alloy-network-primitives 0.11.1", "alloy-primitives", "alloy-rlp", "alloy-serde 0.11.1", @@ -581,13 +767,13 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418eb6584edd695dfe496dda85a19102c1ae4838f142efce11e2463ed2288d71" +checksum = "076b5ed023c0b0e025566cfc570b51a6fd975935c982617c130ca98dcb0c1390" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", "serde", "serde_json", @@ -595,12 +781,12 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd951155515fa452a2ca4b5434d4b3ab742bcd3d1d1b9a91704bcef5b8d2604" +checksum = "ac383c60b09660b7695a4f210cd11ab05887d058dfc669efd814904dbbaead82" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", "serde", "serde_json", @@ -609,12 +795,12 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21d8dd5bd94993eda3d56a8c4c0d693548183a35462523ffc4385c0b020d3b0c" +checksum = "ac39b1a583bb59dcf7d856604867acf704a7cf70b76a42f895652d566aa6f17c" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", "serde", ] @@ -643,6 +829,20 @@ dependencies = [ "serde_json", ] +[[package]] +name = "alloy-signer" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bfa395ad5cc952c82358d31e4c68b27bf4a89a5456d9b27e226e77dac50e4ff" +dependencies = [ + "alloy-primitives", + "async-trait", + "auto_impl", + "elliptic-curve", + "k256", + "thiserror 2.0.11", +] + [[package]] name = "alloy-signer" version = "0.11.1" @@ -660,14 +860,14 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe8f78cd6b7501c7e813a1eb4a087b72d23af51f5bb66d4e948dc840bdd207d8" +checksum = "39163b956c81e8fd9605194d6b5b92dd93b0e0252810e69f9a4cebe3a8614f46" dependencies = [ - "alloy-consensus", - "alloy-network", + "alloy-consensus 0.11.1", + "alloy-network 0.11.1", "alloy-primitives", - "alloy-signer", + "alloy-signer 0.11.1", "async-trait", "coins-bip32", "coins-bip39", @@ -678,9 +878,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2708e27f58d747423ae21d31b7a6625159bd8d867470ddd0256f396a68efa11" +checksum = "13f28f2131dc3a7b8e2cda882758ad4d5231ca26281b9861d4b18c700713e2da" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -692,9 +892,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6b7984d7e085dec382d2c5ef022b533fcdb1fe6129200af30ebf5afddb6a361" +checksum = "1ee2da033256a3b27131c030933eab0460a709fbcc4d4bd57bf9a5650b2441c5" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -710,9 +910,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d6a9fc4ed1a3c70bdb2357bec3924551c1a59f24e5a04a74472c755b37f87d" +checksum = "4e9d9918b0abb632818bf27e2dfb86b209be8433baacf22100b190bbc0904bd4" dependencies = [ "const-hex", "dunce", @@ -725,9 +925,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1b3e9a48a6dd7bb052a111c8d93b5afc7956ed5e2cb4177793dc63bb1d2a36" +checksum = "a971129d242338d92009470a2f750d3b2630bc5da00a40a94d51f5d456b5712f" dependencies = [ "serde", "winnow", @@ -735,9 +935,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6044800da35c38118fd4b98e18306bd3b91af5dedeb54c1b768cf1b4fb68f549" +checksum = "75f306fc801b3aa2e3c4785b7b5252ec8b19f77b30e3b75babfd23849c81bd8c" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -748,11 +948,31 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.11.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8d762eadce3e9b65eac09879430c6f4fce3736cac3cac123f9b1bf435ddd13" +checksum = "d17722a198f33bbd25337660787aea8b8f57814febb7c746bc30407bdfc39448" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 0.9.2", + "base64 0.22.1", + "futures-util", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror 2.0.11", + "tokio", + "tower 0.5.2", + "tracing", + "url", + "wasmtimer", +] + +[[package]] +name = "alloy-transport" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40e2f34fcd849676c8fe274a6e72f0664dfede7ce06d12daa728d2e72f1b4393" +dependencies = [ + "alloy-json-rpc 0.11.0", "base64 0.22.1", "futures-utils-wasm", "serde", @@ -767,13 +987,23 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.11.1" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1509599021330a31c4a6816b655e34bf67acb1cc03c564e09fd8754ff6c5de" +dependencies = [ + "alloy-transport 0.9.2", + "url", +] + +[[package]] +name = "alloy-transport-http" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20819c4cb978fb39ce6ac31991ba90f386d595f922f42ef888b4a18be190713e" +checksum = "6e291c97c3c0ebb5d03c34e3a55c0f7c5bfa307536a2efaaa6fae4b3a4d09851" dependencies = [ - "alloy-json-rpc", - "alloy-rpc-types-engine", - "alloy-transport", + "alloy-json-rpc 0.11.0", + "alloy-rpc-types-engine 0.11.0", + "alloy-transport 0.11.0", "http-body-util", "hyper", "hyper-util", @@ -787,13 +1017,13 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e88304aa8b796204e5e2500dfe235933ed692745e3effd94c3733643db6d218" +checksum = "8d3e991f40d2d81c6ee036a34d81127bfec5fadf7e649791b5225181126c1959" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 0.11.0", "alloy-pubsub", - "alloy-transport", + "alloy-transport 0.11.0", "bytes", "futures", "interprocess", @@ -807,12 +1037,12 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9653ea9aa06d0e02fcbe2f04f1c47f35a85c378ccefa98e54ae85210bc8bbfa" +checksum = "fc8c544f7dc764735664756805f8b8b770020cc295a0b96b09cbefd099c172c7" dependencies = [ "alloy-pubsub", - "alloy-transport", + "alloy-transport 0.11.0", "futures", "http", "rustls", @@ -1188,9 +1418,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backon" -version = "1.4.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49fef586913a57ff189f25c9b3d034356a5bf6b3fa9a7f067588fe1698ba1f5d" +checksum = "ba5289ec98f68f28dd809fd601059e6aa908bb8f6108620930828283d4ee23d7" dependencies = [ "fastrand", "tokio", @@ -1332,16 +1562,15 @@ dependencies = [ [[package]] name = "blake3" -version = "1.6.0" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1230237285e3e10cde447185e8975408ae24deaa67205ce684805c25bc0c7937" +checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if", "constant_time_eq", - "memmap2", ] [[package]] @@ -1373,9 +1602,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.14" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47c79a94619fade3c0b887670333513a67ac28a6a7e653eb260bf0d4103db38d" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" dependencies = [ "cc", "glob", @@ -1520,9 +1749,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.14" +version = "1.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3d1b2e905a3a7b00a6141adb0e4c0bb941d11caf55349d863942a1cc44e3c9" +checksum = "c7777341816418c02e033934a09f20dc0ccaf65a5201ef8a450ae0105a573fda" dependencies = [ "jobserver", "libc", @@ -1594,9 +1823,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.30" +version = "4.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92b7b18d71fad5313a1e320fa9897994228ce274b60faa4d694fe0ea89cd9e6d" +checksum = "3e77c3243bd94243c03672cb5154667347c457ca271254724f9f393aee1c05ff" dependencies = [ "clap_builder", "clap_derive", @@ -1604,9 +1833,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.30" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35db2071778a7344791a4fb4f95308b5673d219dee3ae348b86642574ecc90c" +checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" dependencies = [ "anstream", "anstyle", @@ -2394,9 +2623,9 @@ dependencies = [ [[package]] name = "equivalent" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" @@ -2475,17 +2704,6 @@ dependencies = [ "bytes", ] -[[package]] -name = "fastrlp" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - [[package]] name = "fdlimit" version = "0.3.0" @@ -2817,9 +3035,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.8" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", "bytes", @@ -3826,12 +4044,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "libm" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" - [[package]] name = "libp2p-identity" version = "0.2.10" @@ -4134,9 +4346,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b1c9bd4fe1f0f8b387f6eb9eb3b4a1aa26185e5750efb9140301703f62cd1b" +checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" dependencies = [ "adler2", ] @@ -4376,7 +4588,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", - "libm", ] [[package]] @@ -4453,11 +4664,11 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.10.4" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc796860410e85a9cd881ee074c3dc0120b90696d82d09348ebb563d4ade67e4" +checksum = "621e69964165285ce750bf7ba961707e26c31df9f0b25652d6219dcee1f7f5b5" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -4471,15 +4682,13 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types-engine" -version = "0.10.4" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24a03ea4f6374aa13524753136eeceee76196acad6b1306399ab8f1856872384" +checksum = "b2e4fe1929b0e39130da37cb975c98d70418904ba7991a061799ad971dbd09fe" dependencies = [ - "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", - "derive_more", + "alloy-rpc-types-engine 0.11.0", "ethereum_ssz", "op-alloy-consensus", "snap", @@ -4957,9 +5166,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.10" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e46f3055866785f6b92bc6164b76be02ca8f2eb4b002c0354b28cf4c119e5944" +checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" dependencies = [ "cfg_aliases", "libc", @@ -5003,8 +5212,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.1", - "zerocopy 0.8.18", + "rand_core 0.9.0", + "zerocopy 0.8.17", ] [[package]] @@ -5024,7 +5233,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.1", + "rand_core 0.9.0", ] [[package]] @@ -5038,12 +5247,12 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88e0da7a2c97baa202165137c158d0a2e824ac465d13d81046727b34cb247d3" +checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff" dependencies = [ "getrandom 0.3.1", - "zerocopy 0.8.18", + "zerocopy 0.8.17", ] [[package]] @@ -5078,8 +5287,8 @@ dependencies = [ "itertools 0.13.0", "lru 0.12.5", "paste", - "strum 0.26.3", - "strum_macros 0.26.4", + "strum", + "strum_macros", "unicode-segmentation", "unicode-truncate", "unicode-width 0.1.14", @@ -5087,9 +5296,9 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "11.4.0" +version = "11.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "529468c1335c1c03919960dfefdb1b3648858c20d7ec2d0663e728e4a717efbc" +checksum = "c6928fa44c097620b706542d428957635951bade7143269085389d42c8a4927e" dependencies = [ "bitflags 2.8.0", ] @@ -5242,12 +5451,12 @@ dependencies = [ [[package]] name = "reth-chain-state" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-signer", + "alloy-signer 0.11.1", "alloy-signer-local", "derive_more", "metrics", @@ -5271,10 +5480,10 @@ dependencies = [ [[package]] name = "reth-chainspec" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-chains", - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-genesis", "alloy-primitives", @@ -5290,7 +5499,7 @@ dependencies = [ [[package]] name = "reth-cli" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-genesis", "clap", @@ -5304,10 +5513,10 @@ dependencies = [ [[package]] name = "reth-cli-commands" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "ahash", - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -5325,7 +5534,7 @@ dependencies = [ "reth-cli", "reth-cli-runner", "reth-cli-util", - "reth-codecs", + "reth-codecs 1.1.5", "reth-config", "reth-consensus", "reth-db", @@ -5365,7 +5574,7 @@ dependencies = [ [[package]] name = "reth-cli-runner" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "reth-tasks", "tokio", @@ -5375,7 +5584,7 @@ dependencies = [ [[package]] name = "reth-cli-util" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -5392,9 +5601,9 @@ dependencies = [ [[package]] name = "reth-codecs" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-genesis", "alloy-primitives", @@ -5403,15 +5612,43 @@ dependencies = [ "bytes", "modular-bitfield", "op-alloy-consensus", - "reth-codecs-derive", + "reth-codecs-derive 1.1.5", "serde", "visibility", ] +[[package]] +name = "reth-codecs" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" +dependencies = [ + "alloy-consensus 0.11.1", + "alloy-eips 0.11.1", + "alloy-genesis", + "alloy-primitives", + "alloy-trie", + "bytes", + "modular-bitfield", + "op-alloy-consensus", + "reth-codecs-derive 1.2.0", + "serde", +] + [[package]] name = "reth-codecs-derive" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "syn 2.0.98", +] + +[[package]] +name = "reth-codecs-derive" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" dependencies = [ "convert_case", "proc-macro2", @@ -5422,7 +5659,7 @@ dependencies = [ [[package]] name = "reth-config" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "eyre", "humantime-serde", @@ -5436,9 +5673,9 @@ dependencies = [ [[package]] name = "reth-consensus" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "auto_impl", @@ -5449,9 +5686,9 @@ dependencies = [ [[package]] name = "reth-consensus-common" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "reth-chainspec", @@ -5462,14 +5699,14 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-provider", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-provider 0.11.0", + "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-eth 0.11.1", "auto_impl", "eyre", "futures", @@ -5486,9 +5723,9 @@ dependencies = [ [[package]] name = "reth-db" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-primitives", "bytes", "derive_more", @@ -5510,7 +5747,7 @@ dependencies = [ "reth-trie-common", "rustc-hash 2.1.1", "serde", - "strum 0.26.3", + "strum", "sysinfo", "tempfile", "thiserror 2.0.11", @@ -5519,9 +5756,9 @@ dependencies = [ [[package]] name = "reth-db-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-genesis", "alloy-primitives", "arbitrary", @@ -5531,7 +5768,7 @@ dependencies = [ "modular-bitfield", "parity-scale-codec", "proptest", - "reth-codecs", + "reth-codecs 1.1.5", "reth-db-models", "reth-optimism-primitives", "reth-primitives", @@ -5548,15 +5785,15 @@ dependencies = [ [[package]] name = "reth-db-common" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-genesis", "alloy-primitives", "boyer-moore-magiclen", "eyre", "reth-chainspec", - "reth-codecs", + "reth-codecs 1.1.5", "reth-config", "reth-db", "reth-db-api", @@ -5577,7 +5814,7 @@ dependencies = [ [[package]] name = "reth-db-models" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -5585,7 +5822,7 @@ dependencies = [ "bytes", "modular-bitfield", "proptest", - "reth-codecs", + "reth-codecs 1.1.5", "reth-primitives-traits", "serde", ] @@ -5593,7 +5830,7 @@ dependencies = [ [[package]] name = "reth-discv4" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5619,7 +5856,7 @@ dependencies = [ [[package]] name = "reth-discv5" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5643,7 +5880,7 @@ dependencies = [ [[package]] name = "reth-dns-discovery" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "data-encoding", @@ -5667,9 +5904,9 @@ dependencies = [ [[package]] name = "reth-downloaders" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -5702,16 +5939,16 @@ dependencies = [ [[package]] name = "reth-e2e-test-utils" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", - "alloy-network", + "alloy-network 0.11.1", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-signer", + "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-eth 0.11.1", + "alloy-signer 0.11.1", "alloy-signer-local", "derive_more", "eyre", @@ -5750,7 +5987,7 @@ dependencies = [ [[package]] name = "reth-ecies" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "aes", "alloy-primitives", @@ -5781,11 +6018,11 @@ dependencies = [ [[package]] name = "reth-engine-local" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "eyre", "futures-util", "reth-chainspec", @@ -5812,12 +6049,12 @@ dependencies = [ [[package]] name = "reth-engine-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "futures", "reth-errors", "reth-execution-types", @@ -5834,7 +6071,7 @@ dependencies = [ [[package]] name = "reth-engine-service" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "futures", "pin-project", @@ -5857,13 +6094,13 @@ dependencies = [ [[package]] name = "reth-engine-tree" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "derive_more", "futures", "metrics", @@ -5906,12 +6143,12 @@ dependencies = [ [[package]] name = "reth-engine-util" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "eyre", "futures", "itertools 0.13.0", @@ -5941,7 +6178,7 @@ dependencies = [ [[package]] name = "reth-errors" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -5953,7 +6190,7 @@ dependencies = [ [[package]] name = "reth-eth-wire" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-chains", "alloy-primitives", @@ -5962,7 +6199,7 @@ dependencies = [ "derive_more", "futures", "pin-project", - "reth-codecs", + "reth-codecs 1.1.5", "reth-ecies", "reth-eth-wire-types", "reth-ethereum-forks", @@ -5981,17 +6218,17 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-chains", - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", "bytes", "derive_more", "reth-chainspec", - "reth-codecs-derive", + "reth-codecs-derive 1.1.5", "reth-ethereum-forks", "reth-ethereum-primitives", "reth-primitives-traits", @@ -6002,7 +6239,7 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "eyre", "reth-chainspec", @@ -6012,9 +6249,9 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "reth-chainspec", @@ -6028,12 +6265,12 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "reth-chainspec", "reth-engine-primitives", "reth-payload-primitives", @@ -6046,7 +6283,7 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -6062,9 +6299,9 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -6074,7 +6311,7 @@ dependencies = [ "derive_more", "modular-bitfield", "rand 0.8.5", - "reth-codecs", + "reth-codecs 1.1.5", "reth-primitives-traits", "reth-zstd-compressors", "revm-primitives", @@ -6085,7 +6322,7 @@ dependencies = [ [[package]] name = "reth-etl" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "rayon", "reth-db-api", @@ -6095,9 +6332,9 @@ dependencies = [ [[package]] name = "reth-evm" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "auto_impl", @@ -6121,7 +6358,7 @@ dependencies = [ [[package]] name = "reth-execution-errors" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -6136,9 +6373,9 @@ dependencies = [ [[package]] name = "reth-execution-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "reth-execution-errors", @@ -6154,9 +6391,9 @@ dependencies = [ [[package]] name = "reth-exex" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "eyre", @@ -6191,7 +6428,7 @@ dependencies = [ [[package]] name = "reth-exex-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -6206,7 +6443,7 @@ dependencies = [ [[package]] name = "reth-fs-util" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "serde", "serde_json", @@ -6216,9 +6453,9 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-debug", @@ -6243,7 +6480,7 @@ dependencies = [ [[package]] name = "reth-ipc" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "async-trait", "bytes", @@ -6264,7 +6501,7 @@ dependencies = [ [[package]] name = "reth-libmdbx" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "bitflags 2.8.0", "byteorder", @@ -6281,7 +6518,7 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "bindgen", "cc", @@ -6290,7 +6527,7 @@ dependencies = [ [[package]] name = "reth-metrics" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "futures", "metrics", @@ -6302,7 +6539,7 @@ dependencies = [ [[package]] name = "reth-net-banlist" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", ] @@ -6310,7 +6547,7 @@ dependencies = [ [[package]] name = "reth-net-nat" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "futures-util", "if-addrs", @@ -6324,9 +6561,9 @@ dependencies = [ [[package]] name = "reth-network" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -6379,7 +6616,7 @@ dependencies = [ [[package]] name = "reth-network-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "alloy-rpc-types-admin", @@ -6402,9 +6639,9 @@ dependencies = [ [[package]] name = "reth-network-p2p" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "auto_impl", @@ -6425,7 +6662,7 @@ dependencies = [ [[package]] name = "reth-network-peers" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6440,7 +6677,7 @@ dependencies = [ [[package]] name = "reth-network-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -6454,7 +6691,7 @@ dependencies = [ [[package]] name = "reth-nippy-jar" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "anyhow", "bincode", @@ -6471,9 +6708,9 @@ dependencies = [ [[package]] name = "reth-node-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "eyre", "reth-consensus", "reth-db-api", @@ -6492,9 +6729,9 @@ dependencies = [ [[package]] name = "reth-node-builder" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rpc-types", @@ -6554,12 +6791,12 @@ dependencies = [ [[package]] name = "reth-node-core" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "clap", "derive_more", "dirs-next", @@ -6593,7 +6830,7 @@ dependencies = [ "secp256k1", "serde", "shellexpand", - "strum 0.26.3", + "strum", "thiserror 2.0.11", "toml", "tracing", @@ -6603,12 +6840,12 @@ dependencies = [ [[package]] name = "reth-node-events" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "derive_more", "futures", "humantime", @@ -6627,7 +6864,7 @@ dependencies = [ [[package]] name = "reth-node-metrics" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "eyre", "http", @@ -6648,7 +6885,7 @@ dependencies = [ [[package]] name = "reth-node-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "reth-chainspec", "reth-db-api", @@ -6661,9 +6898,9 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -6672,7 +6909,7 @@ dependencies = [ "derive_more", "op-alloy-consensus", "rand 0.8.5", - "reth-codecs", + "reth-codecs 1.1.5", "reth-primitives-traits", "reth-zstd-compressors", "revm-primitives", @@ -6683,9 +6920,9 @@ dependencies = [ [[package]] name = "reth-payload-builder" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-primitives", "alloy-rpc-types", "async-trait", @@ -6706,9 +6943,9 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "async-trait", "pin-project", "reth-payload-primitives", @@ -6720,11 +6957,11 @@ dependencies = [ [[package]] name = "reth-payload-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "op-alloy-rpc-types-engine", "reth-chain-state", "reth-chainspec", @@ -6739,9 +6976,9 @@ dependencies = [ [[package]] name = "reth-payload-util" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-primitives", "reth-primitives", ] @@ -6749,7 +6986,7 @@ dependencies = [ [[package]] name = "reth-payload-validator" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-rpc-types", "reth-chainspec", @@ -6760,9 +6997,9 @@ dependencies = [ [[package]] name = "reth-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "arbitrary", "c-kzg", "once_cell", @@ -6775,9 +7012,9 @@ dependencies = [ [[package]] name = "reth-primitives-traits" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-genesis", "alloy-primitives", @@ -6795,9 +7032,9 @@ dependencies = [ "proptest", "proptest-arbitrary-interop", "rayon", - "reth-codecs", + "reth-codecs 1.1.5", "revm-primitives", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.1.5", "secp256k1", "serde", "serde_with", @@ -6807,12 +7044,12 @@ dependencies = [ [[package]] name = "reth-provider" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "auto_impl", "dashmap", "eyre", @@ -6823,7 +7060,7 @@ dependencies = [ "rayon", "reth-chain-state", "reth-chainspec", - "reth-codecs", + "reth-codecs 1.1.5", "reth-db", "reth-db-api", "reth-errors", @@ -6844,7 +7081,7 @@ dependencies = [ "reth-trie", "reth-trie-db", "revm", - "strum 0.26.3", + "strum", "tokio", "tracing", ] @@ -6852,9 +7089,9 @@ dependencies = [ [[package]] name = "reth-prune" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "itertools 0.13.0", @@ -6881,13 +7118,13 @@ dependencies = [ [[package]] name = "reth-prune-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "arbitrary", "derive_more", "modular-bitfield", - "reth-codecs", + "reth-codecs 1.1.5", "serde", "thiserror 2.0.11", ] @@ -6895,7 +7132,7 @@ dependencies = [ [[package]] name = "reth-revm" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -6909,26 +7146,26 @@ dependencies = [ [[package]] name = "reth-rpc" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-dyn-abi", "alloy-eips 0.11.1", "alloy-genesis", - "alloy-network", + "alloy-network 0.11.1", "alloy-primitives", "alloy-rlp", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-beacon", "alloy-rpc-types-debug", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-eth 0.11.1", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", "alloy-serde 0.11.1", - "alloy-signer", + "alloy-signer 0.11.1", "alloy-signer-local", "async-trait", "derive_more", @@ -6979,18 +7216,18 @@ dependencies = [ [[package]] name = "reth-rpc-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", - "alloy-json-rpc", + "alloy-json-rpc 0.11.0", "alloy-primitives", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-anvil", "alloy-rpc-types-beacon", "alloy-rpc-types-debug", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-eth 0.11.1", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", @@ -7004,10 +7241,10 @@ dependencies = [ [[package]] name = "reth-rpc-builder" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-network", - "alloy-provider", + "alloy-network 0.11.1", + "alloy-provider 0.11.0", "http", "jsonrpsee", "metrics", @@ -7042,11 +7279,11 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "async-trait", "jsonrpsee-core", "jsonrpsee-types", @@ -7072,16 +7309,16 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-dyn-abi", "alloy-eips 0.11.1", - "alloy-json-rpc", - "alloy-network", + "alloy-json-rpc 0.11.0", + "alloy-network 0.11.1", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-rpc-types-mev", "alloy-serde 0.11.1", "async-trait", @@ -7116,12 +7353,12 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-sol-types", "derive_more", "futures", @@ -7159,9 +7396,9 @@ dependencies = [ [[package]] name = "reth-rpc-layer" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "http", "jsonrpsee-http-client", "pin-project", @@ -7173,29 +7410,29 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "jsonrpsee-core", "jsonrpsee-types", "reth-errors", "reth-network-api", "serde", - "strum 0.26.3", + "strum", ] [[package]] name = "reth-rpc-types-compat" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-eth 0.11.1", "jsonrpsee-types", "reth-primitives", "reth-primitives-traits", @@ -7205,10 +7442,10 @@ dependencies = [ [[package]] name = "reth-scroll-chainspec" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-chains", - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-genesis", "alloy-primitives", @@ -7228,7 +7465,7 @@ dependencies = [ [[package]] name = "reth-scroll-cli" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "clap", "eyre", @@ -7250,7 +7487,7 @@ dependencies = [ [[package]] name = "reth-scroll-consensus" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "revm", ] @@ -7258,13 +7495,13 @@ dependencies = [ [[package]] name = "reth-scroll-engine-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "reth-chain-state", "reth-chainspec", "reth-engine-primitives", @@ -7283,9 +7520,9 @@ dependencies = [ [[package]] name = "reth-scroll-evm" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "derive_more", "reth-chainspec", @@ -7301,7 +7538,7 @@ dependencies = [ "reth-scroll-primitives", "revm", "revm-primitives", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.1.5", "thiserror 2.0.11", "tracing", ] @@ -7309,7 +7546,7 @@ dependencies = [ [[package]] name = "reth-scroll-forks" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-chains", "alloy-primitives", @@ -7321,12 +7558,12 @@ dependencies = [ [[package]] name = "reth-scroll-node" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "eyre", "reth-consensus", "reth-db", @@ -7352,7 +7589,7 @@ dependencies = [ "reth-transaction-pool", "reth-trie-db", "revm", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.1.5", "scroll-alloy-rpc-types-engine", "thiserror 2.0.11", "tokio", @@ -7361,7 +7598,7 @@ dependencies = [ [[package]] name = "reth-scroll-payload" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "futures-util", "reth-payload-builder", @@ -7371,9 +7608,9 @@ dependencies = [ [[package]] name = "reth-scroll-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -7384,11 +7621,11 @@ dependencies = [ "once_cell", "proptest", "rand 0.8.5", - "reth-codecs", + "reth-codecs 1.1.5", "reth-primitives-traits", "reth-zstd-compressors", "revm-primitives", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.1.5", "secp256k1", "serde", ] @@ -7396,12 +7633,12 @@ dependencies = [ [[package]] name = "reth-scroll-rpc" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "jsonrpsee-types", "parking_lot", "reth-chainspec", @@ -7422,9 +7659,9 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "revm", - "scroll-alloy-consensus", - "scroll-alloy-network", - "scroll-alloy-rpc-types", + "scroll-alloy-consensus 1.1.5", + "scroll-alloy-network 1.1.5", + "scroll-alloy-rpc-types 1.1.5", "thiserror 2.0.11", "tokio", ] @@ -7432,9 +7669,9 @@ dependencies = [ [[package]] name = "reth-stages" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "bincode", @@ -7445,7 +7682,7 @@ dependencies = [ "rayon", "reqwest", "reth-chainspec", - "reth-codecs", + "reth-codecs 1.1.5", "reth-config", "reth-consensus", "reth-db", @@ -7477,7 +7714,7 @@ dependencies = [ [[package]] name = "reth-stages-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -7504,13 +7741,13 @@ dependencies = [ [[package]] name = "reth-stages-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "arbitrary", "bytes", "modular-bitfield", - "reth-codecs", + "reth-codecs 1.1.5", "reth-trie-common", "serde", ] @@ -7518,12 +7755,12 @@ dependencies = [ [[package]] name = "reth-static-file" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "parking_lot", "rayon", - "reth-codecs", + "reth-codecs 1.1.5", "reth-db", "reth-db-api", "reth-primitives-traits", @@ -7539,24 +7776,24 @@ dependencies = [ [[package]] name = "reth-static-file-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "clap", "derive_more", "serde", - "strum 0.26.3", + "strum", ] [[package]] name = "reth-storage-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "auto_impl", "reth-chainspec", "reth-db", @@ -7576,7 +7813,7 @@ dependencies = [ [[package]] name = "reth-storage-errors" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -7592,7 +7829,7 @@ dependencies = [ [[package]] name = "reth-tasks" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "auto_impl", "dyn-clone", @@ -7610,9 +7847,9 @@ dependencies = [ [[package]] name = "reth-testing-utils" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-genesis", "alloy-primitives", @@ -7625,7 +7862,7 @@ dependencies = [ [[package]] name = "reth-tokio-util" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "tokio", "tokio-stream", @@ -7635,7 +7872,7 @@ dependencies = [ [[package]] name = "reth-tracing" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "clap", "eyre", @@ -7650,9 +7887,9 @@ dependencies = [ [[package]] name = "reth-transaction-pool" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -7690,9 +7927,9 @@ dependencies = [ [[package]] name = "reth-trie" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -7716,12 +7953,12 @@ dependencies = [ [[package]] name = "reth-trie-common" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", "alloy-trie", "arbitrary", @@ -7731,7 +7968,7 @@ dependencies = [ "itertools 0.13.0", "nybbles", "plain_hasher", - "reth-codecs", + "reth-codecs 1.1.5", "reth-primitives-traits", "serde", "serde_with", @@ -7740,7 +7977,7 @@ dependencies = [ [[package]] name = "reth-trie-db" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7762,7 +7999,7 @@ dependencies = [ [[package]] name = "reth-trie-parallel" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7785,7 +8022,7 @@ dependencies = [ [[package]] name = "reth-trie-sparse" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7800,7 +8037,7 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "zstd", ] @@ -7826,7 +8063,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d87cdf1c0d878b48423f8a86232950657abaf72a2d0d14af609467542313b1a" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-rpc-types-trace", "alloy-sol-types", "anstyle", @@ -7896,14 +8133,15 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.9" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75ec5e92c4d8aede845126adc388046234541629e76029599ed35a003c7ed24" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if", "getrandom 0.2.15", "libc", + "spin", "untrusted", "windows-sys 0.52.0", ] @@ -7988,7 +8226,7 @@ name = "rollup-node-manager" version = "0.0.1" dependencies = [ "alloy-eips 0.9.2", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.9.2", "futures", "reth-engine-primitives", "reth-network-peers", @@ -7997,7 +8235,7 @@ dependencies = [ "reth-scroll-primitives", "reth-tasks", "reth-tokio-util", - "scroll-alloy-network", + "scroll-alloy-network 1.2.0", "scroll-alloy-provider", "scroll-engine", "scroll-network", @@ -8008,6 +8246,36 @@ dependencies = [ "tracing", ] +[[package]] +name = "rollup-node-primitives" +version = "0.0.1" +dependencies = [ + "alloy-primitives", + "alloy-rpc-types-engine 0.9.2", +] + +[[package]] +name = "rollup-node-watcher" +version = "0.0.1" +dependencies = [ + "alloy-consensus 0.9.2", + "alloy-json-rpc 0.9.2", + "alloy-network 0.9.2", + "alloy-primitives", + "alloy-provider 0.9.2", + "alloy-rpc-types-engine 0.9.2", + "alloy-rpc-types-eth 0.9.2", + "alloy-transport 0.9.2", + "async-trait", + "eyre", + "rand 0.9.0", + "reth-ethereum-primitives", + "rollup-node-primitives", + "thiserror 2.0.11", + "tokio", + "tracing", +] + [[package]] name = "route-recognizer" version = "0.3.1" @@ -8016,19 +8284,17 @@ checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] name = "ruint" -version = "1.13.1" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "825df406ec217a8116bd7b06897c6cc8f65ffefc15d030ae2c9540acc9ed50b6" +checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" dependencies = [ "alloy-rlp", "arbitrary", "ark-ff 0.3.0", "ark-ff 0.4.2", "bytes", - "fastrlp 0.3.1", - "fastrlp 0.4.0", + "fastrlp", "num-bigint", - "num-integer", "num-traits", "parity-scale-codec", "primitive-types", @@ -8107,9 +8373,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.23" +version = "0.23.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" +checksum = "9fb9263ab4eb695e42321db096e3b8fbd715a59b154d5c88d82db2175b681ba7" dependencies = [ "log", "once_cell", @@ -8269,9 +8535,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll-alloy-consensus" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -8279,8 +8545,26 @@ dependencies = [ "arbitrary", "derive_more", "modular-bitfield", - "reth-codecs", - "reth-codecs-derive", + "reth-codecs 1.1.5", + "reth-codecs-derive 1.1.5", + "serde", + "serde_with", +] + +[[package]] +name = "scroll-alloy-consensus" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" +dependencies = [ + "alloy-consensus 0.11.1", + "alloy-eips 0.11.1", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.11.1", + "derive_more", + "modular-bitfield", + "reth-codecs 1.2.0", + "reth-codecs-derive 1.2.0", "serde", "serde_with", ] @@ -8288,34 +8572,48 @@ dependencies = [ [[package]] name = "scroll-alloy-network" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", - "alloy-network", + "alloy-consensus 0.11.1", + "alloy-network 0.11.1", "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-signer", - "scroll-alloy-consensus", - "scroll-alloy-rpc-types", + "alloy-rpc-types-eth 0.11.1", + "alloy-signer 0.11.1", + "scroll-alloy-consensus 1.1.5", + "scroll-alloy-rpc-types 1.1.5", +] + +[[package]] +name = "scroll-alloy-network" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" +dependencies = [ + "alloy-consensus 0.11.1", + "alloy-network 0.11.1", + "alloy-primitives", + "alloy-rpc-types-eth 0.11.1", + "alloy-signer 0.11.1", + "scroll-alloy-consensus 1.2.0", + "scroll-alloy-rpc-types 1.2.0", ] [[package]] name = "scroll-alloy-provider" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", - "alloy-provider", - "alloy-rpc-client", - "alloy-rpc-types-engine", - "alloy-transport", - "alloy-transport-http", + "alloy-provider 0.11.0", + "alloy-rpc-client 0.11.0", + "alloy-rpc-types-engine 0.11.0", + "alloy-transport 0.11.0", + "alloy-transport-http 0.11.0", "async-trait", "derive_more", "eyre", "http-body-util", "reqwest", - "scroll-alloy-network", + "scroll-alloy-network 1.1.5", "scroll-alloy-rpc-types-engine", "tower 0.4.13", ] @@ -8323,16 +8621,33 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +dependencies = [ + "alloy-consensus 0.11.1", + "alloy-eips 0.11.1", + "alloy-network-primitives 0.11.1", + "alloy-primitives", + "alloy-rpc-types-eth 0.11.1", + "alloy-serde 0.11.1", + "derive_more", + "scroll-alloy-consensus 1.1.5", + "serde", + "serde_json", +] + +[[package]] +name = "scroll-alloy-rpc-types" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", - "alloy-network-primitives", + "alloy-network-primitives 0.11.1", "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", "derive_more", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.2.0", "serde", "serde_json", ] @@ -8340,10 +8655,10 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types-engine" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "arbitrary", "serde", ] @@ -8354,7 +8669,7 @@ version = "0.0.1" dependencies = [ "alloy-chains", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.9.2", "clap", "eyre", "futures", @@ -8382,8 +8697,8 @@ dependencies = [ "reth-tracing", "reth-transaction-pool", "rollup-node-manager", - "scroll-alloy-consensus", - "scroll-alloy-network", + "scroll-alloy-consensus 1.1.5", + "scroll-alloy-network 1.1.5", "scroll-alloy-provider", "scroll-alloy-rpc-types-engine", "scroll-engine", @@ -8402,22 +8717,20 @@ dependencies = [ "alloy-chains", "alloy-eips 0.9.2", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.9.2", "arbitrary", "async-trait", "eyre", - "reth-engine-primitives", - "reth-network-peers", "reth-payload-primitives", "reth-primitives", "reth-scroll-chainspec", "reth-scroll-engine-primitives", "reth-scroll-primitives", "reth-testing-utils", - "scroll-alloy-network", + "rollup-node-primitives", + "scroll-alloy-network 1.2.0", "scroll-alloy-provider", "scroll-alloy-rpc-types-engine", - "serde", "tokio", "tracing", ] @@ -8819,9 +9132,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.14.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" dependencies = [ "arbitrary", "serde", @@ -8899,16 +9212,7 @@ version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" dependencies = [ - "strum_macros 0.26.4", -] - -[[package]] -name = "strum" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" -dependencies = [ - "strum_macros 0.27.1", + "strum_macros", ] [[package]] @@ -8924,19 +9228,6 @@ dependencies = [ "syn 2.0.98", ] -[[package]] -name = "strum_macros" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.98", -] - [[package]] name = "substrate-bn" version = "0.6.0" @@ -8980,9 +9271,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c2de690018098e367beeb793991c7d4dc7270f42c9d2ac4ccc876c1368ca430" +checksum = "b7f6a4b9002584ea56d0a19713b65da44cbbf6070aca9ae0360577cba5c4db68" dependencies = [ "paste", "proc-macro2", @@ -9037,9 +9328,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.17.1" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" +checksum = "38c246215d7d24f48ae091a2902398798e05d978b24315d6efbc00ede9a8bb91" dependencies = [ "cfg-if", "fastrand", @@ -9228,9 +9519,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.26.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" +checksum = "be4bf6fecd69fcdede0ec680aaf474cdab988f9de6bc73d3758f0160e3b7025a" dependencies = [ "futures-util", "log", @@ -9280,9 +9571,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.24" +version = "0.22.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +checksum = "02a8b472d1a3d7c18e2d61a489aee3453fd9031c33e4f55bd533f4a7adca1bee" dependencies = [ "indexmap 2.7.1", "serde", @@ -9508,16 +9799,17 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.26.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" +checksum = "413083a99c579593656008130e29255e54dcaae495be556cc26888f211648c24" dependencies = [ + "byteorder", "bytes", "data-encoding", "http", "httparse", "log", - "rand 0.9.0", + "rand 0.8.5", "rustls", "rustls-pki-types", "sha1", @@ -9527,9 +9819,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.18.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" @@ -9575,9 +9867,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.17" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" +checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" [[package]] name = "unicode-segmentation" @@ -9674,9 +9966,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.13.2" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c1f41ffb7cf259f1ecc2876861a17e7142e63ead296f671f81f6ae85903e0d6" +checksum = "ced87ca4be083373936a67f8de945faa23b6b42384bd5b64434850802c6dccd0" dependencies = [ "getrandom 0.3.1", ] @@ -10199,9 +10491,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59690dea168f2198d1a3b0cac23b8063efcd11012f10ae4698f284808c8ef603" +checksum = "86e376c75f4f43f44db463cf729e0d3acbf954d13e22c51e26e4c264b4ab545f" dependencies = [ "memchr", ] @@ -10307,11 +10599,11 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.18" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79386d31a42a4996e3336b0919ddb90f81112af416270cff95b5f5af22b839c2" +checksum = "aa91407dacce3a68c56de03abe2760159582b846c6a4acd2f456618087f12713" dependencies = [ - "zerocopy-derive 0.8.18", + "zerocopy-derive 0.8.17", ] [[package]] @@ -10327,9 +10619,9 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.8.18" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76331675d372f91bf8d17e13afbd5fe639200b73d01f0fc748bb059f9cca2db7" +checksum = "06718a168365cad3d5ff0bb133aad346959a2074bd4a85c121255a11304a8626" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 384e0718..5365fbad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,11 +7,13 @@ exclude = [".github/"] [workspace] members = [ - "bin/bridge", + "bin/bridge", "crates/engine", "crates/node", "crates/network", - "crates/scroll-wire" + "crates/scroll-wire", + "crates/watcher", + "crates/primitives", ] resolver = "2" @@ -107,12 +109,17 @@ too_long_first_doc_paragraph = "allow" # alloy alloy-chains = { version = "0.1.32", default-features = false } alloy-eips = { version = "0.9.2", default-features = false } +alloy-json-rpc = { version = "0.9.2", default-features = false } +alloy-network = { version = "0.9.2", default-features = false } alloy-primitives = { version = "0.8.15", default-features = false } -alloy-rpc-types-engine = { version = "0.11.0", default-features = false } +alloy-provider = { version = "0.9.2", default-features = false } +alloy-rpc-types-engine = { version = "0.9.2", default-features = false } +alloy-rpc-types-eth = { version = "0.9.2", default-features = false } +alloy-transport = { version = "0.9.2", default-features = false } # scroll-alloy scroll-alloy-provider = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", default-features = false } # reth reth-eth-wire-types = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } @@ -135,12 +142,15 @@ scroll-engine = { path = "crates/engine" } scroll-network = { path = "crates/network" } scroll-wire = { path = "crates/scroll-wire" } rollup-node-manager = { path = "crates/node" } +rollup-node-watcher = { path = "crates/watcher" } +rollup-node-primitives = { path = "crates/primitives" } # misc +async-trait = "0.1" eyre = "0.6" futures = { version = "0.3", default-features = false } secp256k1 = { version = "0.29", default-features = false } -serde = { version = "1.0", default-features = false } +thiserror = "2.0" tokio = { version = "1.39", default-features = false } tokio-stream = { version = "0.1", default-features = false } tracing = "0.1.0" @@ -153,4 +163,3 @@ revm-interpreter = { git = "https://github.com/scroll-tech/revm.git", branch = " ff = { git = "https://github.com/scroll-tech/ff", branch = "feat/sp1" } alloy-eip2930 = { git = "https://github.com/scroll-tech/alloy-eips", branch = "v0.3.2" } - diff --git a/crates/engine/Cargo.toml b/crates/engine/Cargo.toml index dbfd013c..6b9bf372 100644 --- a/crates/engine/Cargo.toml +++ b/crates/engine/Cargo.toml @@ -22,8 +22,6 @@ scroll-alloy-provider.workspace = true scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } # reth -reth-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false, features = ["scroll"] } -reth-network-peers.workspace = true reth-payload-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } reth-primitives = { workspace = true } @@ -32,10 +30,12 @@ reth-scroll-chainspec.workspace = true reth-scroll-primitives = { workspace = true, features = ["scroll"] } reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false, features = ["scroll"] } +# rollup-node +rollup-node-primitives.workspace = true + # misc -async-trait = "0.1.68" +async-trait.workspace = true eyre.workspace = true -serde = { workspace = true, features = ["derive"] } tokio.workspace = true tracing.workspace = true diff --git a/crates/engine/src/engine.rs b/crates/engine/src/engine.rs index a2b3ff1f..5e3f13b8 100644 --- a/crates/engine/src/engine.rs +++ b/crates/engine/src/engine.rs @@ -1,7 +1,7 @@ -use crate::{block_info::BlockInfo, payload::matching_payloads}; - use super::error::EngineDriverError; +use crate::payload::matching_payloads; use crate::ExecutionPayloadProvider; + use alloy_rpc_types_engine::{ ExecutionPayload, ExecutionPayloadV1, ForkchoiceState, ForkchoiceUpdated, PayloadId, PayloadStatusEnum, @@ -9,6 +9,7 @@ use alloy_rpc_types_engine::{ use eyre::Result; use reth_payload_primitives::PayloadTypes; use reth_scroll_engine_primitives::ScrollEngineTypes; +use rollup_node_primitives::BlockInfo; use scroll_alloy_provider::ScrollEngineApi; use tokio::time::Duration; @@ -174,7 +175,7 @@ where match &response.status { PayloadStatusEnum::Invalid { validation_error } => { error!(target: "scroll::engine::driver", ?validation_error, "execution payload is invalid"); - return Err(EngineDriverError::InvalidExecutionPayload) + return Err(EngineDriverError::InvalidExecutionPayload); } PayloadStatusEnum::Syncing => { debug!(target: "scroll::engine::driver", "execution client is syncing"); @@ -207,7 +208,7 @@ where match &forkchoice_updated.payload_status.status { PayloadStatusEnum::Invalid { validation_error } => { error!(target: "scroll::engine::driver", ?validation_error, "failed to issue forkchoice"); - return Err(EngineDriverError::InvalidFcu) + return Err(EngineDriverError::InvalidFcu); } PayloadStatusEnum::Syncing => { debug!(target: "scroll::engine::driver", "head has been seen before, but not part of the chain"); diff --git a/crates/engine/src/fcs.rs b/crates/engine/src/fcs.rs index 90133267..6e8bf3d0 100644 --- a/crates/engine/src/fcs.rs +++ b/crates/engine/src/fcs.rs @@ -1,7 +1,7 @@ -use crate::BlockInfo; use alloy_chains::NamedChain; use alloy_rpc_types_engine::ForkchoiceState as AlloyForkchoiceState; use reth_scroll_chainspec::{SCROLL_MAINNET_GENESIS_HASH, SCROLL_SEPOLIA_GENESIS_HASH}; +use rollup_node_primitives::BlockInfo; /// The fork choice state. /// diff --git a/crates/engine/src/lib.rs b/crates/engine/src/lib.rs index e2f9fcc4..1fd6ceeb 100644 --- a/crates/engine/src/lib.rs +++ b/crates/engine/src/lib.rs @@ -1,9 +1,6 @@ //! Engine Driver for the Scroll Rollup Node. The [`EngineDriver`] exposes the main interface for //! the Rollup Node to the Engine API. -mod block_info; -pub use block_info::BlockInfo; - mod engine; pub use engine::EngineDriver; diff --git a/crates/primitives/Cargo.toml b/crates/primitives/Cargo.toml new file mode 100644 index 00000000..27966d72 --- /dev/null +++ b/crates/primitives/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "rollup-node-primitives" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +exclude.workspace = true + +[lints] +workspace = true + +[dependencies] +alloy-primitives.workspace = true +alloy-rpc-types-engine.workspace = true diff --git a/crates/engine/src/block_info.rs b/crates/primitives/src/block.rs similarity index 72% rename from crates/engine/src/block_info.rs rename to crates/primitives/src/block.rs index f4e72ea1..d2992d23 100644 --- a/crates/engine/src/block_info.rs +++ b/crates/primitives/src/block.rs @@ -2,7 +2,7 @@ use alloy_primitives::B256; use alloy_rpc_types_engine::ExecutionPayload; /// Information about a block. -#[derive(Debug, Copy, Clone)] +#[derive(Debug, Default, Copy, Clone)] pub struct BlockInfo { /// The block number. pub number: u64, @@ -10,6 +10,13 @@ pub struct BlockInfo { pub hash: B256, } +impl BlockInfo { + /// Returns a new instance of [`BlockInfo`]. + pub fn new(number: u64, hash: B256) -> Self { + Self { number, hash } + } +} + impl From for BlockInfo { fn from(value: ExecutionPayload) -> Self { (&value).into() diff --git a/crates/primitives/src/lib.rs b/crates/primitives/src/lib.rs new file mode 100644 index 00000000..4747adcd --- /dev/null +++ b/crates/primitives/src/lib.rs @@ -0,0 +1,4 @@ +//! Primitive types for the Rollup Node. + +mod block; +pub use block::BlockInfo; diff --git a/crates/watcher/Cargo.toml b/crates/watcher/Cargo.toml new file mode 100644 index 00000000..04e1f92c --- /dev/null +++ b/crates/watcher/Cargo.toml @@ -0,0 +1,38 @@ +[package] +name = "rollup-node-watcher" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +exclude.workspace = true + +[lints] +workspace = true + +[dependencies] +# alloy +alloy-json-rpc.workspace = true +alloy-network.workspace = true +alloy-primitives.workspace = true +alloy-provider.workspace = true +alloy-rpc-types-engine.workspace = true +alloy-rpc-types-eth.workspace = true +alloy-transport.workspace = true + +# rollup node +rollup-node-primitives.workspace = true + +# misc +async-trait.workspace = true +thiserror.workspace = true +tokio = { workspace = true, features = ["full"] } +tracing.workspace = true + +[dev-dependencies] +alloy-consensus = { version = "0.9.2", features = ["arbitrary"] } +eyre.workspace = true +rand = "0.9" +reth-ethereum-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false } + +[features] +test-utils = [] diff --git a/crates/watcher/src/error.rs b/crates/watcher/src/error.rs new file mode 100644 index 00000000..fa92e475 --- /dev/null +++ b/crates/watcher/src/error.rs @@ -0,0 +1,12 @@ +use alloy_json_rpc::RpcError; +use alloy_transport::TransportErrorKind; + +/// A [`Result`] that uses [`L1WatcherError`] as the error type. +pub(crate) type L1WatcherResult = Result; + +/// An error that occurred with the L1 watcher. +#[derive(Debug, thiserror::Error)] +pub enum L1WatcherError { + #[error("execution provider error: {0:?}")] + Provider(#[from] RpcError), +} diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs new file mode 100644 index 00000000..8a45b868 --- /dev/null +++ b/crates/watcher/src/lib.rs @@ -0,0 +1,399 @@ +//! L1 watcher for the Scroll Rollup Node. + +mod error; +#[cfg(any(test, feature = "test-utils"))] +/// Common test helpers +pub mod test_utils; + +use alloy_network::Ethereum; +use alloy_primitives::BlockNumber; +use alloy_provider::{Network, Provider}; +use alloy_rpc_types_eth::{BlockNumberOrTag, BlockTransactionsKind, Filter, Log}; +use error::L1WatcherResult; +use rollup_node_primitives::BlockInfo; +use std::{ + collections::{BTreeMap, VecDeque}, + sync::Arc, + time::Duration, +}; +use tokio::sync::mpsc; + +/// The block range used to fetch L1 logs. +/// TODO(greg): evaluate the performance using various block ranges. +pub const LOGS_QUERY_BLOCK_RANGE: u64 = 1000; +/// The maximum count of unfinalized blocks we can have in Ethereum. +pub const MAX_UNFINALIZED_BLOCK_COUNT: usize = 96; + +/// The main loop interval when L1 watcher is syncing to the tip of the L1. +pub const FAST_SYNC_INTERVAL: Duration = Duration::from_millis(100); +/// The main loop interval when L1 watcher is synced to the tip of the L1. +pub const SLOW_SYNC_INTERVAL: Duration = Duration::from_secs(2); + +/// The Ethereum L1 block response. +pub type Block = ::BlockResponse; + +/// The Ethereum L1 header response. +pub type Header = ::HeaderResponse; + +/// The fork choice state of the L1. +#[derive(Debug, Default, Clone)] +pub struct L1ForkchoiceState { + head: BlockInfo, + finalized: BlockInfo, +} + +/// The L1 watcher indexes L1 blocks, applying a first level of filtering via log filters. +#[derive(Debug)] +pub struct L1Watcher { + /// The L1 execution node provider. The provider should implement some backoff strategy using + /// [`alloy_transport::layers::RetryBackoffLayer`] in the client in order to avoid excessive + /// queries on the RPC provider. + execution_provider: EP, + /// The buffered unfinalized chain of blocks. Used to detect reorgs of the L1. + unfinalized_blocks: VecDeque
, + /// The L1 state info relevant to the rollup node. + forkchoice_state: L1ForkchoiceState, + /// The latest indexed block. + current_block_number: BlockNumber, + /// The sender part of the channel for [`L1Notification`]. + sender: mpsc::Sender>, + /// The log filter used to index L1 blocks. + filter: Filter, +} + +/// The L1 notification type yielded by the [`L1Watcher`]. +#[derive(Debug)] +pub enum L1Notification { + /// A notification for a reorg of the L1. + Reorg(BTreeMap), + /// A notification of a new block of interest for the rollup node. + Block(Block), + /// A forkchoice update of the L1. + ForkchoiceState(L1ForkchoiceState), +} + +impl L1Watcher +where + EP: Provider + 'static, +{ + /// Spawn a new [`L1Watcher`], starting at start_block. The watcher will iterate the L1, + /// returning [`L1Notification`] in the returned channel. + pub async fn spawn( + execution_provider: EP, + start_block: BlockNumber, + filter: Filter, + ) -> mpsc::Receiver> { + let (tx, rx) = mpsc::channel(LOGS_QUERY_BLOCK_RANGE as usize); + + let fetch_block_info = async |tag: BlockNumberOrTag| { + let block = loop { + match execution_provider.get_block(tag.into(), BlockTransactionsKind::Hashes).await + { + Err(err) => { + tracing::error!(target: "scroll::watcher", ?err, "failed to fetch {tag} block") + } + Ok(Some(block)) => break block, + _ => unreachable!("should always be a {tag} block"), + } + }; + BlockInfo { number: block.header.number, hash: block.header.hash } + }; + + let forkchoice_state = L1ForkchoiceState { + head: fetch_block_info(BlockNumberOrTag::Latest).await, + finalized: fetch_block_info(BlockNumberOrTag::Finalized).await, + }; + + let watcher = L1Watcher { + execution_provider, + unfinalized_blocks: VecDeque::with_capacity(MAX_UNFINALIZED_BLOCK_COUNT), + current_block_number: start_block - 1, + forkchoice_state, + sender: tx, + filter, + }; + tokio::spawn(watcher.run()); + + rx + } + + /// Main execution loop for the [`L1Watcher`]. + pub async fn run(mut self) { + let mut loop_interval = FAST_SYNC_INTERVAL; + loop { + // step the watcher. + let _ = self + .step() + .await + .inspect_err(|err| tracing::error!(target: "scroll::watcher", ?err)); + + // update loop interval if needed. + if let Ok(synced) = self.is_synced().await { + loop_interval = if synced { SLOW_SYNC_INTERVAL } else { FAST_SYNC_INTERVAL }; + } + + // sleep the appropriate amount of time. + tokio::time::sleep(loop_interval).await; + } + } + + /// A step of work for the [`L1Watcher`]. + pub async fn step(&mut self) -> L1WatcherResult<()> { + let finalized = self.finalized_block(false).await?; + // let position = + // self.unfinalized_blocks.drain() + + Ok(()) + } + + /// Handle the latest block, either by adding it to + /// [`unfinalized_blocks`](field@L1Watcher::unfinalized_blocks) if it extends the chain or + /// detecting the reorg and emitting a reorg notification through the channel. + async fn handle_latest_block(&mut self) -> L1WatcherResult<()> { + let latest = self.latest_block(false).await?; + self.forkchoice_state.head = BlockInfo::new(latest.header.number, latest.header.hash); + + // shortcircuit if self.unfinalized_blocks is empty + if self.unfinalized_blocks.is_empty() { + self.unfinalized_blocks.push_back(latest.header); + return Ok(()) + } + + let tail_block = self.unfinalized_blocks.back(); + + if tail_block.map_or(false, |last| last.hash != latest.header.hash) { + // if true, we either need to extend self.unfinalized_blocks + if tail_block.expect("tail block exists").hash == latest.header.parent_hash { + self.unfinalized_blocks.push_back(latest.header); + return Ok(()) + } + + // or we have found a reorg + let reorg_position = self + .unfinalized_blocks + .iter() + .position(|h| h.hash == latest.header.parent_hash) + .map(|pos| pos + 1) + .unwrap_or(0); + let reorged = self + .unfinalized_blocks + .drain(reorg_position..) + .map(|h| (h.number, h)) + .collect::>(); + let _ = self.sender.send(Arc::new(L1Notification::Reorg(reorged))).await; + + self.unfinalized_blocks.push_back(latest.header); + } + + Ok(()) + } + + /// Returns true if the [`L1Watcher`] is synced to the head of the L1. + async fn is_synced(&self) -> L1WatcherResult { + Ok(self.current_block_number == self.execution_provider.get_block_number().await?) + } + + /// Returns the latest L1 block. + async fn latest_block(&self, full: bool) -> L1WatcherResult { + Ok(self + .execution_provider + .get_block(BlockNumberOrTag::Latest.into(), full.into()) + .await? + .expect("latest block should always exist")) + } + + /// Returns the finalized L1 block. + async fn finalized_block(&self, full: bool) -> L1WatcherResult { + Ok(self + .execution_provider + .get_block(BlockNumberOrTag::Finalized.into(), full.into()) + .await? + .expect("finalized block should always exist")) + } + + /// Returns the next range of logs, using the filter provider in + /// [`L1Watcher`](field@L1Watcher::filter), for the block range in + /// \[[`current_block`](field@WatcherSyncStatus::current_block); + /// [`current_block`](field@WatcherSyncStatus::current_block) + [`LOGS_QUERY_BLOCK_RANGE`]\] + async fn next_filtered_logs(&self) -> L1WatcherResult> { + // set the block range for the query + let mut filter = self.filter.clone(); + filter = filter + .from_block(self.current_block_number) + .to_block(self.current_block_number + LOGS_QUERY_BLOCK_RANGE); + + Ok(self.execution_provider.get_logs(&filter).await?) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::test_utils::MockProvider; + use alloy_primitives::{ + private::arbitrary::{Arbitrary, Unstructured}, + Sealable, B256, + }; + use alloy_rpc_types_eth::BlockTransactions; + use rand::RngCore; + + fn test_l1_watcher( + unfinalized_blocks: VecDeque
, + ) -> (L1Watcher, mpsc::Sender, mpsc::Receiver>) { + let (tx_provider, rx) = mpsc::channel(LOGS_QUERY_BLOCK_RANGE as usize); + let provider = MockProvider::new(rx); + let null_block_info = BlockInfo { number: 0, hash: B256::ZERO }; + + let (tx, rx) = mpsc::channel(LOGS_QUERY_BLOCK_RANGE as usize); + ( + L1Watcher { + execution_provider: provider, + unfinalized_blocks, + forkchoice_state: L1ForkchoiceState { + head: null_block_info, + finalized: null_block_info, + }, + current_block_number: 0, + sender: tx, + filter: Default::default(), + }, + tx_provider, + rx, + ) + } + + fn random_block() -> Block { + let mut bytes = [0u8; 1000]; + rand::rng().fill_bytes(bytes.as_mut_slice()); + let mut u = Unstructured::new(&bytes); + let block = alloy_consensus::Block::<()>::arbitrary(&mut u).expect("arbitrary block"); + Block { + header: Header::from_consensus(block.header.seal_slow(), None, None), + ..Default::default() + } + } + + fn test_chain(len: usize) -> (VecDeque
, Block) { + let mut headers = VecDeque::with_capacity(len); + let mut bytes = [0u8; 1000]; + rand::rng().fill_bytes(bytes.as_mut_slice()); + let mut u = Unstructured::new(&bytes); + + let mut parent_hash = u.arbitrary().unwrap(); + let mut number = u.arbitrary().unwrap(); + for _ in 0..len { + let mut header = alloy_consensus::Header::arbitrary(&mut u).expect("arbitrary header"); + header.parent_hash = parent_hash; + header.number = number; + + let header = Header::from_consensus(header.seal_slow(), None, None); + parent_hash = header.hash; + number += 1; + headers.push_back(header); + } + let mut tip = random_block(); + tip.header.parent_hash = parent_hash; + tip.header.number = number; + (headers, tip) + } + + #[tokio::test] + async fn test_handle_latest_block_empty_unfinalized() -> eyre::Result<()> { + let (chain, block) = test_chain(0); + let (mut watcher, tx_block, _) = test_l1_watcher(chain); + tx_block.send(block.clone()).await?; + + watcher.handle_latest_block().await?; + assert_eq!(watcher.unfinalized_blocks.len(), 1); + assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); + + assert_eq!(watcher.forkchoice_state.head.number, block.header.number); + assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); + + Ok(()) + } + + #[tokio::test] + async fn test_handle_latest_block_match_tail() -> eyre::Result<()> { + let (chain, _) = test_chain(10); + let block = Block { + header: chain.back().unwrap().clone(), + uncles: vec![], + transactions: BlockTransactions::Hashes(vec![]), + withdrawals: None, + }; + let (mut watcher, tx_block, _) = test_l1_watcher(chain); + tx_block.send(block.clone()).await?; + + watcher.handle_latest_block().await?; + assert_eq!(watcher.unfinalized_blocks.len(), 10); + assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); + + assert_eq!(watcher.forkchoice_state.head.number, block.header.number); + assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); + + Ok(()) + } + + #[tokio::test] + async fn test_handle_latest_block_not_empty_unfinalized() -> eyre::Result<()> { + let (chain, block) = test_chain(10); + let (mut watcher, tx_block, _) = test_l1_watcher(chain); + tx_block.send(block.clone()).await?; + + watcher.handle_latest_block().await?; + assert_eq!(watcher.unfinalized_blocks.len(), 11); + assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); + + assert_eq!(watcher.forkchoice_state.head.number, block.header.number); + assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); + + Ok(()) + } + + #[tokio::test] + async fn test_handle_latest_block_reorg_mid() -> eyre::Result<()> { + let (chain, _) = test_chain(10); + let block = Block { + header: chain.get(5).unwrap().clone(), + uncles: vec![], + transactions: BlockTransactions::Hashes(vec![]), + withdrawals: None, + }; + let (mut watcher, tx_block, _) = test_l1_watcher(chain); + tx_block.send(block.clone()).await?; + + watcher.handle_latest_block().await?; + assert_eq!(watcher.unfinalized_blocks.len(), 6); + assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); + + assert_eq!(watcher.forkchoice_state.head.number, block.header.number); + assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); + + Ok(()) + } + + #[tokio::test] + async fn test_handle_latest_block_reorg_all() -> eyre::Result<()> { + let (chain, _) = test_chain(10); + let block = random_block(); + let (mut watcher, tx_block, mut notifications) = test_l1_watcher(chain.clone()); + tx_block.send(block.clone()).await?; + + watcher.handle_latest_block().await?; + assert_eq!(watcher.unfinalized_blocks.len(), 1); + assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); + + assert_eq!(watcher.forkchoice_state.head.number, block.header.number); + assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); + + let reorg = notifications.recv().await.unwrap(); + if let L1Notification::Reorg(reorg) = reorg.as_ref() { + assert_eq!(reorg, &BTreeMap::from_iter(chain.into_iter().map(|b| (b.number, b)))); + } else { + panic!("Expected reorg notification"); + } + + Ok(()) + } +} diff --git a/crates/watcher/src/test_utils.rs b/crates/watcher/src/test_utils.rs new file mode 100644 index 00000000..1272ae77 --- /dev/null +++ b/crates/watcher/src/test_utils.rs @@ -0,0 +1,36 @@ +use crate::Block; +use std::sync::Arc; + +use alloy_network::Ethereum; +use alloy_provider::{Provider, RootProvider}; +use alloy_rpc_types_eth::{BlockId, BlockTransactionsKind}; +use alloy_transport::{BoxTransport, TransportResult}; +use tokio::sync::{mpsc, Mutex}; + +/// A mock implementation of the [`Provider`] trait. +#[derive(Debug)] +pub struct MockProvider { + blocks: Arc>>, +} + +impl MockProvider { + /// Returns a new [`MockProvider`] from a receiver for [`Block`]. + pub fn new(rx: mpsc::Receiver) -> Self { + Self { blocks: Arc::new(Mutex::new(rx)) } + } +} + +#[async_trait::async_trait] +impl Provider for MockProvider { + fn root(&self) -> &RootProvider { + unreachable!("unused calls") + } + + async fn get_block( + &self, + _block_id: BlockId, + _kind: BlockTransactionsKind, + ) -> TransportResult> { + Ok(Some(self.blocks.lock().await.recv().await.expect("missing block in channel"))) + } +} From 26e4a8afea2191a98f469b09b519ec8d738adeef Mon Sep 17 00:00:00 2001 From: frisitano <35734660+frisitano@users.noreply.github.com> Date: Wed, 26 Feb 2025 14:09:05 +0700 Subject: [PATCH 03/63] Rollup node manager (#21) * init bridge implementation * extend bridge implementation * refactor and clean up dependencies * add .vscode to .gitignore * lint * spacing * cleanup * wrap inner block import in bridge * add bridge integration test * refactor and clean up * add comments * migrate shared dependencies to workspace * feature propogation * lints and feature fix * remove scroll feature * add scroll feature * integrate reth upstream changes * address PR feedback * stash * add systemd service file * update systemd file * update systemd file * address comments * rollup node manager * merge main * add Cargo.lock * lint * lint * lint * lint * ci remove no-dev-deps * fix serde dep - scroll-wire * skip no_std on scroll-engine and scroll-rollup-node * skip no_std on scroll-engine and scroll-rollup-node * address comments * lints * cleanup * tsets * lint + refactor * refactor engine api call ordering * lint * fix fcu * lint * remove syncing error return on new payload * update forkchoice state after succesfully new payload * update reth following chainspec fork id logic change * PR feedback * lints * lints --- Cargo.lock | 1270 +++++++++++++-------------------- Cargo.toml | 21 +- bin/bridge/Cargo.toml | 59 +- crates/engine/Cargo.toml | 38 +- crates/engine/src/engine.rs | 9 +- crates/network/Cargo.toml | 22 +- crates/node/Cargo.toml | 14 +- crates/scroll-wire/Cargo.toml | 21 +- 8 files changed, 582 insertions(+), 872 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ab947464..b73db196 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,9 +97,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.1.59" +version = "0.1.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d37bc62b68c056e3742265ab73c73d413d07357909e0e4ea1e95453066a7469" +checksum = "1317fde6d2d3cd6082a15144c23230697a5e1a91a27d1facc146715d3b4b2046" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -107,26 +107,7 @@ dependencies = [ "num_enum", "proptest", "serde", - "strum", -] - -[[package]] -name = "alloy-consensus" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4138dc275554afa6f18c4217262ac9388790b2fc393c2dfe03c51d357abf013" -dependencies = [ - "alloy-eips 0.9.2", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.9.2", - "alloy-trie", - "arbitrary", - "auto_impl", - "c-kzg", - "derive_more", - "rand 0.8.5", - "serde", + "strum 0.27.1", ] [[package]] @@ -151,25 +132,11 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa04e1882c31288ce1028fdf31b6ea94cfa9eafa2e497f903ded631c8c6a42c" -dependencies = [ - "alloy-consensus 0.9.2", - "alloy-eips 0.9.2", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.9.2", - "serde", -] - -[[package]] -name = "alloy-consensus-any" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e23af02ccded0031ef2b70df4fe9965b1c742c5d5384c8c767ae0311f7e62b9" +checksum = "0fa13b7b1e1e3fedc42f0728103bfa3b4d566d3d42b606db449504d88dbdbdcf" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -179,9 +146,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2d547eba3f2d331b0e08f64a24e202f66d4f291e2a3e0073914c0e1400ced3" +checksum = "555896f0b8578adb522b1453b6e6cc6704c3027bd0af20058befdde992cee8e9" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -295,9 +262,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d62cf1b25f5a50ca2d329b0b4aeb0a0dedeaf225ad3c5099d83b1a4c4616186e" +checksum = "4012581681b186ba0882007ed873987cc37f86b1b488fe6b91d5efd0b585dc41" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -307,23 +274,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2008bedb8159a255b46b7c8614516eda06679ea82f620913679afbd8031fea72" -dependencies = [ - "alloy-primitives", - "alloy-sol-types", - "serde", - "serde_json", - "thiserror 2.0.11", - "tracing", -] - -[[package]] -name = "alloy-json-rpc" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0c5c9651fd20a2fd4a57606b6a570d1c17ab86e686b962b2f1ecac68b51e020" +checksum = "762414662d793d7aaa36ee3af6928b6be23227df1681ce9c039f6f11daadef64" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -333,47 +286,22 @@ dependencies = [ "tracing", ] -[[package]] -name = "alloy-network" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4556f01fe41d0677495df10a648ddcf7ce118b0e8aa9642a0e2b6dd1fb7259de" -dependencies = [ - "alloy-consensus 0.9.2", - "alloy-consensus-any 0.9.2", - "alloy-eips 0.9.2", - "alloy-json-rpc 0.9.2", - "alloy-network-primitives 0.9.2", - "alloy-primitives", - "alloy-rpc-types-any 0.9.2", - "alloy-rpc-types-eth 0.9.2", - "alloy-serde 0.9.2", - "alloy-signer 0.9.2", - "alloy-sol-types", - "async-trait", - "auto_impl", - "futures-utils-wasm", - "serde", - "serde_json", - "thiserror 2.0.11", -] - [[package]] name = "alloy-network" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be03f2ebc00cf88bd06d3c6caf387dceaa9c7e6b268216779fa68a9bf8ab4e6" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-consensus-any 0.11.0", + "alloy-consensus", + "alloy-consensus-any", "alloy-eips 0.11.1", - "alloy-json-rpc 0.11.0", - "alloy-network-primitives 0.11.1", + "alloy-json-rpc", + "alloy-network-primitives", "alloy-primitives", - "alloy-rpc-types-any 0.11.0", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-any", + "alloy-rpc-types-eth", "alloy-serde 0.11.1", - "alloy-signer 0.11.1", + "alloy-signer", "alloy-sol-types", "async-trait", "auto_impl", @@ -383,26 +311,13 @@ dependencies = [ "thiserror 2.0.11", ] -[[package]] -name = "alloy-network-primitives" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31c3c6b71340a1d076831823f09cb6e02de01de5c6630a9631bdb36f947ff80" -dependencies = [ - "alloy-consensus 0.9.2", - "alloy-eips 0.9.2", - "alloy-primitives", - "alloy-serde 0.9.2", - "serde", -] - [[package]] name = "alloy-network-primitives" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a00ce618ae2f78369918be0c20f620336381502c83b6ed62c2f7b2db27698b0" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-serde 0.11.1", @@ -411,9 +326,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc1360603efdfba91151e623f13a4f4d3dc4af4adc1cbd90bf37c81e84db4c77" +checksum = "478bedf4d24e71ea48428d1bc278553bd7c6ae07c30ca063beb0b09fe58a9e74" dependencies = [ "alloy-rlp", "arbitrary", @@ -442,56 +357,23 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22c4441b3ebe2d77fa9cf629ba68c3f713eb91779cff84275393db97eddd82" -dependencies = [ - "alloy-chains", - "alloy-consensus 0.9.2", - "alloy-eips 0.9.2", - "alloy-json-rpc 0.9.2", - "alloy-network 0.9.2", - "alloy-network-primitives 0.9.2", - "alloy-primitives", - "alloy-rpc-client 0.9.2", - "alloy-rpc-types-eth 0.9.2", - "alloy-transport 0.9.2", - "async-stream", - "async-trait", - "auto_impl", - "dashmap", - "futures", - "futures-utils-wasm", - "lru 0.12.5", - "parking_lot", - "pin-project", - "schnellru", - "serde", - "serde_json", - "thiserror 2.0.11", - "tokio", - "tracing", - "wasmtimer", -] - -[[package]] -name = "alloy-provider" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07c68df5354225da542efeb6d9388b65773b3304309b437416146e9d1e2bc1bd" +checksum = "cbe0a2acff0c4bd1669c71251ce10fc455cbffa1b4d0a817d5ea4ba7e5bb3db7" dependencies = [ "alloy-chains", - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", - "alloy-json-rpc 0.11.0", - "alloy-network 0.11.1", - "alloy-network-primitives 0.11.1", + "alloy-json-rpc", + "alloy-network", + "alloy-network-primitives", "alloy-primitives", "alloy-pubsub", - "alloy-rpc-client 0.11.0", - "alloy-rpc-types-eth 0.11.1", - "alloy-transport 0.11.0", - "alloy-transport-http 0.11.0", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-sol-types", + "alloy-transport", + "alloy-transport-http", "alloy-transport-ipc", "alloy-transport-ws", "async-stream", @@ -515,13 +397,13 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef6ef167ea24e7aac569dfd90b668c1f7dca0e48214e70364586d5341a89431" +checksum = "de3a68996f193f542f9e29c88dfa8ed1369d6ee04fa764c1bf23dc11b2f9e4a2" dependencies = [ - "alloy-json-rpc 0.11.0", + "alloy-json-rpc", "alloy-primitives", - "alloy-transport 0.11.0", + "alloy-transport", "bimap", "futures", "serde", @@ -556,36 +438,15 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d06a292b37e182e514903ede6e623b9de96420e8109ce300da288a96d88b7e4b" -dependencies = [ - "alloy-json-rpc 0.9.2", - "alloy-primitives", - "alloy-transport 0.9.2", - "alloy-transport-http 0.9.2", - "futures", - "pin-project", - "serde", - "serde_json", - "tokio", - "tokio-stream", - "tower 0.5.2", - "tracing", - "wasmtimer", -] - -[[package]] -name = "alloy-rpc-client" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0371aae9b44a35e374c94c7e1df5cbccf0f52b2ef7c782291ed56e86d88ec106" +checksum = "b37cc3c7883dc41be1b01460127ad7930466d0a4bb6ba15a02ee34d2745e2d7c" dependencies = [ - "alloy-json-rpc 0.11.0", + "alloy-json-rpc", "alloy-primitives", "alloy-pubsub", - "alloy-transport 0.11.0", - "alloy-transport-http 0.11.0", + "alloy-transport", + "alloy-transport-http", "alloy-transport-ipc", "alloy-transport-ws", "futures", @@ -603,22 +464,22 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1428d64569961b00373c503a3de306656e94ef1f2a474e93fd41a6daae0d6ac7" +checksum = "6f18e68a3882f372e045ddc89eb455469347767d17878ca492cfbac81e71a111" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", "alloy-serde 0.11.1", "serde", ] [[package]] name = "alloy-rpc-types-admin" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d25e16c2be6518be9274ab16fe19190666d4330d0713aa14938f593ddb0098" +checksum = "b4e30339fff15d53a3a258a7add476c7d24b61d6f4a71476cc39c8b567666772" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -628,47 +489,36 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d721727cc493a58bd197a3ebbd42b88c0393c1f30da905bb7a31686c820f4c2d" +checksum = "10d06300df4a87d960add35909240fc72da355dd2ac926fa6999f9efafbdc5a7" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-eth", "alloy-serde 0.11.1", "serde", ] [[package]] name = "alloy-rpc-types-any" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca445cef0eb6c2cf51cfb4e214fbf1ebd00893ae2e6f3b944c8101b07990f988" -dependencies = [ - "alloy-consensus-any 0.9.2", - "alloy-rpc-types-eth 0.9.2", - "alloy-serde 0.9.2", -] - -[[package]] -name = "alloy-rpc-types-any" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66e119337400d8b0348e1576ab37ffa56d1a04cbc977a84d4fa0a527d7cb0c21" +checksum = "318ae46dd12456df42527c3b94c1ae9001e1ceb707f7afe2c7807ac4e49ebad9" dependencies = [ - "alloy-consensus-any 0.11.0", - "alloy-rpc-types-eth 0.11.1", + "alloy-consensus-any", + "alloy-rpc-types-eth", "alloy-serde 0.11.1", ] [[package]] name = "alloy-rpc-types-beacon" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9deadb4c8927dc702b58c8fb675f9fb88782c4c9c95096682058c1574141b8b7" +checksum = "799103aa44270c7bea076ec5d3d7b6c6d29557ab5485c91a74d3068327adb485" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "ethereum_ssz", "ethereum_ssz_derive", "serde", @@ -678,37 +528,21 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea98e1c4ac005ffe5f8691164f5f2ef5ee8dda50b1fdba173d44892141909e2" -dependencies = [ - "alloy-primitives", - "serde", -] - -[[package]] -name = "alloy-rpc-types-engine" -version = "0.9.2" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f821f30344862a0b6eb9a1c2eb91dfb2ff44c7489f37152a526cdcab79264" +checksum = "2834b7012054cb2f90ee9893b7cc97702edca340ec1ef386c30c42e55e6cd691" dependencies = [ - "alloy-consensus 0.9.2", - "alloy-eips 0.9.2", "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.9.2", - "derive_more", "serde", - "strum", ] [[package]] name = "alloy-rpc-types-engine" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b582c59b6f493d9b15bea32f44f662fa6749e5464ef5305d8429a864ace60684" +checksum = "e83dde9fcf1ccb9b815cc0c89bba26bbbbaae5150a53ae624ed0fc63cb3676c1" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -720,27 +554,7 @@ dependencies = [ "jsonwebtoken", "rand 0.8.5", "serde", - "strum", -] - -[[package]] -name = "alloy-rpc-types-eth" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0938bc615c02421bd86c1733ca7205cc3d99a122d9f9bff05726bd604b76a5c2" -dependencies = [ - "alloy-consensus 0.9.2", - "alloy-consensus-any 0.9.2", - "alloy-eips 0.9.2", - "alloy-network-primitives 0.9.2", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.9.2", - "alloy-sol-types", - "itertools 0.13.0", - "serde", - "serde_json", - "thiserror 2.0.11", + "strum 0.26.3", ] [[package]] @@ -749,10 +563,10 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b4dbee4d82f8a22dde18c28257bed759afeae7ba73da4a1479a039fd1445d04" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-consensus-any 0.11.0", + "alloy-consensus", + "alloy-consensus-any", "alloy-eips 0.11.1", - "alloy-network-primitives 0.11.1", + "alloy-network-primitives", "alloy-primitives", "alloy-rlp", "alloy-serde 0.11.1", @@ -767,13 +581,13 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076b5ed023c0b0e025566cfc570b51a6fd975935c982617c130ca98dcb0c1390" +checksum = "418eb6584edd695dfe496dda85a19102c1ae4838f142efce11e2463ed2288d71" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-eth", "alloy-serde 0.11.1", "serde", "serde_json", @@ -781,12 +595,12 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac383c60b09660b7695a4f210cd11ab05887d058dfc669efd814904dbbaead82" +checksum = "7bd951155515fa452a2ca4b5434d4b3ab742bcd3d1d1b9a91704bcef5b8d2604" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-eth", "alloy-serde 0.11.1", "serde", "serde_json", @@ -795,12 +609,12 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac39b1a583bb59dcf7d856604867acf704a7cf70b76a42f895652d566aa6f17c" +checksum = "21d8dd5bd94993eda3d56a8c4c0d693548183a35462523ffc4385c0b020d3b0c" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-eth", "alloy-serde 0.11.1", "serde", ] @@ -829,20 +643,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "alloy-signer" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bfa395ad5cc952c82358d31e4c68b27bf4a89a5456d9b27e226e77dac50e4ff" -dependencies = [ - "alloy-primitives", - "async-trait", - "auto_impl", - "elliptic-curve", - "k256", - "thiserror 2.0.11", -] - [[package]] name = "alloy-signer" version = "0.11.1" @@ -860,14 +660,14 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39163b956c81e8fd9605194d6b5b92dd93b0e0252810e69f9a4cebe3a8614f46" +checksum = "fe8f78cd6b7501c7e813a1eb4a087b72d23af51f5bb66d4e948dc840bdd207d8" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-network 0.11.1", + "alloy-consensus", + "alloy-network", "alloy-primitives", - "alloy-signer 0.11.1", + "alloy-signer", "async-trait", "coins-bip32", "coins-bip39", @@ -878,9 +678,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13f28f2131dc3a7b8e2cda882758ad4d5231ca26281b9861d4b18c700713e2da" +checksum = "a2708e27f58d747423ae21d31b7a6625159bd8d867470ddd0256f396a68efa11" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -892,9 +692,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee2da033256a3b27131c030933eab0460a709fbcc4d4bd57bf9a5650b2441c5" +checksum = "c6b7984d7e085dec382d2c5ef022b533fcdb1fe6129200af30ebf5afddb6a361" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -910,9 +710,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9d9918b0abb632818bf27e2dfb86b209be8433baacf22100b190bbc0904bd4" +checksum = "33d6a9fc4ed1a3c70bdb2357bec3924551c1a59f24e5a04a74472c755b37f87d" dependencies = [ "const-hex", "dunce", @@ -925,9 +725,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a971129d242338d92009470a2f750d3b2630bc5da00a40a94d51f5d456b5712f" +checksum = "1b1b3e9a48a6dd7bb052a111c8d93b5afc7956ed5e2cb4177793dc63bb1d2a36" dependencies = [ "serde", "winnow", @@ -935,9 +735,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f306fc801b3aa2e3c4785b7b5252ec8b19f77b30e3b75babfd23849c81bd8c" +checksum = "6044800da35c38118fd4b98e18306bd3b91af5dedeb54c1b768cf1b4fb68f549" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -948,31 +748,11 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d17722a198f33bbd25337660787aea8b8f57814febb7c746bc30407bdfc39448" -dependencies = [ - "alloy-json-rpc 0.9.2", - "base64 0.22.1", - "futures-util", - "futures-utils-wasm", - "serde", - "serde_json", - "thiserror 2.0.11", - "tokio", - "tower 0.5.2", - "tracing", - "url", - "wasmtimer", -] - -[[package]] -name = "alloy-transport" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40e2f34fcd849676c8fe274a6e72f0664dfede7ce06d12daa728d2e72f1b4393" +checksum = "5a8d762eadce3e9b65eac09879430c6f4fce3736cac3cac123f9b1bf435ddd13" dependencies = [ - "alloy-json-rpc 0.11.0", + "alloy-json-rpc", "base64 0.22.1", "futures-utils-wasm", "serde", @@ -987,23 +767,13 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1509599021330a31c4a6816b655e34bf67acb1cc03c564e09fd8754ff6c5de" -dependencies = [ - "alloy-transport 0.9.2", - "url", -] - -[[package]] -name = "alloy-transport-http" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e291c97c3c0ebb5d03c34e3a55c0f7c5bfa307536a2efaaa6fae4b3a4d09851" +checksum = "20819c4cb978fb39ce6ac31991ba90f386d595f922f42ef888b4a18be190713e" dependencies = [ - "alloy-json-rpc 0.11.0", - "alloy-rpc-types-engine 0.11.0", - "alloy-transport 0.11.0", + "alloy-json-rpc", + "alloy-rpc-types-engine", + "alloy-transport", "http-body-util", "hyper", "hyper-util", @@ -1017,13 +787,13 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3e991f40d2d81c6ee036a34d81127bfec5fadf7e649791b5225181126c1959" +checksum = "5e88304aa8b796204e5e2500dfe235933ed692745e3effd94c3733643db6d218" dependencies = [ - "alloy-json-rpc 0.11.0", + "alloy-json-rpc", "alloy-pubsub", - "alloy-transport 0.11.0", + "alloy-transport", "bytes", "futures", "interprocess", @@ -1037,12 +807,12 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc8c544f7dc764735664756805f8b8b770020cc295a0b96b09cbefd099c172c7" +checksum = "b9653ea9aa06d0e02fcbe2f04f1c47f35a85c378ccefa98e54ae85210bc8bbfa" dependencies = [ "alloy-pubsub", - "alloy-transport 0.11.0", + "alloy-transport", "futures", "http", "rustls", @@ -1418,9 +1188,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backon" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5289ec98f68f28dd809fd601059e6aa908bb8f6108620930828283d4ee23d7" +checksum = "49fef586913a57ff189f25c9b3d034356a5bf6b3fa9a7f067588fe1698ba1f5d" dependencies = [ "fastrand", "tokio", @@ -1562,15 +1332,16 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.5" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e" +checksum = "1230237285e3e10cde447185e8975408ae24deaa67205ce684805c25bc0c7937" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if", "constant_time_eq", + "memmap2", ] [[package]] @@ -1602,9 +1373,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" +checksum = "47c79a94619fade3c0b887670333513a67ac28a6a7e653eb260bf0d4103db38d" dependencies = [ "cc", "glob", @@ -1749,9 +1520,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.13" +version = "1.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7777341816418c02e033934a09f20dc0ccaf65a5201ef8a450ae0105a573fda" +checksum = "0c3d1b2e905a3a7b00a6141adb0e4c0bb941d11caf55349d863942a1cc44e3c9" dependencies = [ "jobserver", "libc", @@ -1823,9 +1594,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.28" +version = "4.5.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e77c3243bd94243c03672cb5154667347c457ca271254724f9f393aee1c05ff" +checksum = "92b7b18d71fad5313a1e320fa9897994228ce274b60faa4d694fe0ea89cd9e6d" dependencies = [ "clap_builder", "clap_derive", @@ -1833,9 +1604,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.27" +version = "4.5.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" +checksum = "a35db2071778a7344791a4fb4f95308b5673d219dee3ae348b86642574ecc90c" dependencies = [ "anstream", "anstyle", @@ -2623,9 +2394,9 @@ dependencies = [ [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" @@ -2704,6 +2475,17 @@ dependencies = [ "bytes", ] +[[package]] +name = "fastrlp" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + [[package]] name = "fdlimit" version = "0.3.0" @@ -3035,9 +2817,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" +checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" dependencies = [ "atomic-waker", "bytes", @@ -4044,6 +3826,12 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + [[package]] name = "libp2p-identity" version = "0.2.10" @@ -4346,9 +4134,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" +checksum = "b3b1c9bd4fe1f0f8b387f6eb9eb3b4a1aa26185e5750efb9140301703f62cd1b" dependencies = [ "adler2", ] @@ -4588,6 +4376,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -4664,11 +4453,11 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.10.5" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "621e69964165285ce750bf7ba961707e26c31df9f0b25652d6219dcee1f7f5b5" +checksum = "bc796860410e85a9cd881ee074c3dc0120b90696d82d09348ebb563d4ade67e4" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -4682,13 +4471,15 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types-engine" -version = "0.10.2" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2e4fe1929b0e39130da37cb975c98d70418904ba7991a061799ad971dbd09fe" +checksum = "24a03ea4f6374aa13524753136eeceee76196acad6b1306399ab8f1856872384" dependencies = [ + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", + "derive_more", "ethereum_ssz", "op-alloy-consensus", "snap", @@ -5166,9 +4957,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" +checksum = "e46f3055866785f6b92bc6164b76be02ca8f2eb4b002c0354b28cf4c119e5944" dependencies = [ "cfg_aliases", "libc", @@ -5212,8 +5003,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.0", - "zerocopy 0.8.17", + "rand_core 0.9.1", + "zerocopy 0.8.18", ] [[package]] @@ -5233,7 +5024,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.0", + "rand_core 0.9.1", ] [[package]] @@ -5247,12 +5038,12 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff" +checksum = "a88e0da7a2c97baa202165137c158d0a2e824ac465d13d81046727b34cb247d3" dependencies = [ "getrandom 0.3.1", - "zerocopy 0.8.17", + "zerocopy 0.8.18", ] [[package]] @@ -5287,8 +5078,8 @@ dependencies = [ "itertools 0.13.0", "lru 0.12.5", "paste", - "strum", - "strum_macros", + "strum 0.26.3", + "strum_macros 0.26.4", "unicode-segmentation", "unicode-truncate", "unicode-width 0.1.14", @@ -5296,9 +5087,9 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "11.3.0" +version = "11.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6928fa44c097620b706542d428957635951bade7143269085389d42c8a4927e" +checksum = "529468c1335c1c03919960dfefdb1b3648858c20d7ec2d0663e728e4a717efbc" dependencies = [ "bitflags 2.8.0", ] @@ -5451,12 +5242,12 @@ dependencies = [ [[package]] name = "reth-chain-state" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-signer 0.11.1", + "alloy-signer", "alloy-signer-local", "derive_more", "metrics", @@ -5480,10 +5271,10 @@ dependencies = [ [[package]] name = "reth-chainspec" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-chains", - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-genesis", "alloy-primitives", @@ -5499,7 +5290,7 @@ dependencies = [ [[package]] name = "reth-cli" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-genesis", "clap", @@ -5513,10 +5304,10 @@ dependencies = [ [[package]] name = "reth-cli-commands" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "ahash", - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -5534,7 +5325,7 @@ dependencies = [ "reth-cli", "reth-cli-runner", "reth-cli-util", - "reth-codecs 1.1.5", + "reth-codecs", "reth-config", "reth-consensus", "reth-db", @@ -5574,7 +5365,7 @@ dependencies = [ [[package]] name = "reth-cli-runner" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "reth-tasks", "tokio", @@ -5584,7 +5375,7 @@ dependencies = [ [[package]] name = "reth-cli-util" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -5601,9 +5392,9 @@ dependencies = [ [[package]] name = "reth-codecs" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-genesis", "alloy-primitives", @@ -5612,43 +5403,15 @@ dependencies = [ "bytes", "modular-bitfield", "op-alloy-consensus", - "reth-codecs-derive 1.1.5", + "reth-codecs-derive", "serde", "visibility", ] -[[package]] -name = "reth-codecs" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" -dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "bytes", - "modular-bitfield", - "op-alloy-consensus", - "reth-codecs-derive 1.2.0", - "serde", -] - [[package]] name = "reth-codecs-derive" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "syn 2.0.98", -] - -[[package]] -name = "reth-codecs-derive" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "convert_case", "proc-macro2", @@ -5659,7 +5422,7 @@ dependencies = [ [[package]] name = "reth-config" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "eyre", "humantime-serde", @@ -5673,9 +5436,9 @@ dependencies = [ [[package]] name = "reth-consensus" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "auto_impl", @@ -5686,9 +5449,9 @@ dependencies = [ [[package]] name = "reth-consensus-common" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "reth-chainspec", @@ -5699,14 +5462,14 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-provider 0.11.0", - "alloy-rpc-types-engine 0.11.0", - "alloy-rpc-types-eth 0.11.1", + "alloy-provider", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", "auto_impl", "eyre", "futures", @@ -5723,9 +5486,9 @@ dependencies = [ [[package]] name = "reth-db" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-primitives", "bytes", "derive_more", @@ -5747,7 +5510,7 @@ dependencies = [ "reth-trie-common", "rustc-hash 2.1.1", "serde", - "strum", + "strum 0.26.3", "sysinfo", "tempfile", "thiserror 2.0.11", @@ -5756,9 +5519,9 @@ dependencies = [ [[package]] name = "reth-db-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-genesis", "alloy-primitives", "arbitrary", @@ -5768,7 +5531,7 @@ dependencies = [ "modular-bitfield", "parity-scale-codec", "proptest", - "reth-codecs 1.1.5", + "reth-codecs", "reth-db-models", "reth-optimism-primitives", "reth-primitives", @@ -5785,15 +5548,15 @@ dependencies = [ [[package]] name = "reth-db-common" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-genesis", "alloy-primitives", "boyer-moore-magiclen", "eyre", "reth-chainspec", - "reth-codecs 1.1.5", + "reth-codecs", "reth-config", "reth-db", "reth-db-api", @@ -5814,7 +5577,7 @@ dependencies = [ [[package]] name = "reth-db-models" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -5822,7 +5585,7 @@ dependencies = [ "bytes", "modular-bitfield", "proptest", - "reth-codecs 1.1.5", + "reth-codecs", "reth-primitives-traits", "serde", ] @@ -5830,7 +5593,7 @@ dependencies = [ [[package]] name = "reth-discv4" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5856,7 +5619,7 @@ dependencies = [ [[package]] name = "reth-discv5" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5880,7 +5643,7 @@ dependencies = [ [[package]] name = "reth-dns-discovery" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-primitives", "data-encoding", @@ -5904,9 +5667,9 @@ dependencies = [ [[package]] name = "reth-downloaders" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -5939,16 +5702,16 @@ dependencies = [ [[package]] name = "reth-e2e-test-utils" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", - "alloy-network 0.11.1", + "alloy-network", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine 0.11.0", - "alloy-rpc-types-eth 0.11.1", - "alloy-signer 0.11.1", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", + "alloy-signer", "alloy-signer-local", "derive_more", "eyre", @@ -5987,7 +5750,7 @@ dependencies = [ [[package]] name = "reth-ecies" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "aes", "alloy-primitives", @@ -6018,11 +5781,11 @@ dependencies = [ [[package]] name = "reth-engine-local" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "eyre", "futures-util", "reth-chainspec", @@ -6049,12 +5812,12 @@ dependencies = [ [[package]] name = "reth-engine-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "futures", "reth-errors", "reth-execution-types", @@ -6071,7 +5834,7 @@ dependencies = [ [[package]] name = "reth-engine-service" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "futures", "pin-project", @@ -6094,13 +5857,13 @@ dependencies = [ [[package]] name = "reth-engine-tree" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "derive_more", "futures", "metrics", @@ -6143,12 +5906,12 @@ dependencies = [ [[package]] name = "reth-engine-util" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "eyre", "futures", "itertools 0.13.0", @@ -6178,7 +5941,7 @@ dependencies = [ [[package]] name = "reth-errors" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -6190,7 +5953,7 @@ dependencies = [ [[package]] name = "reth-eth-wire" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-chains", "alloy-primitives", @@ -6199,7 +5962,7 @@ dependencies = [ "derive_more", "futures", "pin-project", - "reth-codecs 1.1.5", + "reth-codecs", "reth-ecies", "reth-eth-wire-types", "reth-ethereum-forks", @@ -6218,17 +5981,17 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-chains", - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", "bytes", "derive_more", "reth-chainspec", - "reth-codecs-derive 1.1.5", + "reth-codecs-derive", "reth-ethereum-forks", "reth-ethereum-primitives", "reth-primitives-traits", @@ -6239,7 +6002,7 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "eyre", "reth-chainspec", @@ -6249,9 +6012,9 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "reth-chainspec", @@ -6265,12 +6028,12 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "reth-chainspec", "reth-engine-primitives", "reth-payload-primitives", @@ -6283,7 +6046,7 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -6299,9 +6062,9 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -6311,7 +6074,7 @@ dependencies = [ "derive_more", "modular-bitfield", "rand 0.8.5", - "reth-codecs 1.1.5", + "reth-codecs", "reth-primitives-traits", "reth-zstd-compressors", "revm-primitives", @@ -6322,7 +6085,7 @@ dependencies = [ [[package]] name = "reth-etl" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "rayon", "reth-db-api", @@ -6332,9 +6095,9 @@ dependencies = [ [[package]] name = "reth-evm" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "auto_impl", @@ -6358,7 +6121,7 @@ dependencies = [ [[package]] name = "reth-execution-errors" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -6373,9 +6136,9 @@ dependencies = [ [[package]] name = "reth-execution-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "reth-execution-errors", @@ -6391,9 +6154,9 @@ dependencies = [ [[package]] name = "reth-exex" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "eyre", @@ -6428,7 +6191,7 @@ dependencies = [ [[package]] name = "reth-exex-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -6443,7 +6206,7 @@ dependencies = [ [[package]] name = "reth-fs-util" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "serde", "serde_json", @@ -6453,9 +6216,9 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-debug", @@ -6480,7 +6243,7 @@ dependencies = [ [[package]] name = "reth-ipc" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "async-trait", "bytes", @@ -6501,7 +6264,7 @@ dependencies = [ [[package]] name = "reth-libmdbx" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "bitflags 2.8.0", "byteorder", @@ -6518,7 +6281,7 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "bindgen", "cc", @@ -6527,7 +6290,7 @@ dependencies = [ [[package]] name = "reth-metrics" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "futures", "metrics", @@ -6539,7 +6302,7 @@ dependencies = [ [[package]] name = "reth-net-banlist" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-primitives", ] @@ -6547,7 +6310,7 @@ dependencies = [ [[package]] name = "reth-net-nat" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "futures-util", "if-addrs", @@ -6561,9 +6324,9 @@ dependencies = [ [[package]] name = "reth-network" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -6616,7 +6379,7 @@ dependencies = [ [[package]] name = "reth-network-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-primitives", "alloy-rpc-types-admin", @@ -6639,9 +6402,9 @@ dependencies = [ [[package]] name = "reth-network-p2p" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "auto_impl", @@ -6662,7 +6425,7 @@ dependencies = [ [[package]] name = "reth-network-peers" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6677,7 +6440,7 @@ dependencies = [ [[package]] name = "reth-network-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -6691,7 +6454,7 @@ dependencies = [ [[package]] name = "reth-nippy-jar" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "anyhow", "bincode", @@ -6708,9 +6471,9 @@ dependencies = [ [[package]] name = "reth-node-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "eyre", "reth-consensus", "reth-db-api", @@ -6729,9 +6492,9 @@ dependencies = [ [[package]] name = "reth-node-builder" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rpc-types", @@ -6791,12 +6554,12 @@ dependencies = [ [[package]] name = "reth-node-core" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "clap", "derive_more", "dirs-next", @@ -6830,7 +6593,7 @@ dependencies = [ "secp256k1", "serde", "shellexpand", - "strum", + "strum 0.26.3", "thiserror 2.0.11", "toml", "tracing", @@ -6840,12 +6603,12 @@ dependencies = [ [[package]] name = "reth-node-events" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "derive_more", "futures", "humantime", @@ -6864,7 +6627,7 @@ dependencies = [ [[package]] name = "reth-node-metrics" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "eyre", "http", @@ -6885,7 +6648,7 @@ dependencies = [ [[package]] name = "reth-node-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "reth-chainspec", "reth-db-api", @@ -6898,9 +6661,9 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -6909,7 +6672,7 @@ dependencies = [ "derive_more", "op-alloy-consensus", "rand 0.8.5", - "reth-codecs 1.1.5", + "reth-codecs", "reth-primitives-traits", "reth-zstd-compressors", "revm-primitives", @@ -6920,9 +6683,9 @@ dependencies = [ [[package]] name = "reth-payload-builder" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-primitives", "alloy-rpc-types", "async-trait", @@ -6943,9 +6706,9 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "async-trait", "pin-project", "reth-payload-primitives", @@ -6957,11 +6720,11 @@ dependencies = [ [[package]] name = "reth-payload-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "op-alloy-rpc-types-engine", "reth-chain-state", "reth-chainspec", @@ -6976,9 +6739,9 @@ dependencies = [ [[package]] name = "reth-payload-util" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-primitives", "reth-primitives", ] @@ -6986,7 +6749,7 @@ dependencies = [ [[package]] name = "reth-payload-validator" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-rpc-types", "reth-chainspec", @@ -6997,9 +6760,9 @@ dependencies = [ [[package]] name = "reth-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "arbitrary", "c-kzg", "once_cell", @@ -7012,9 +6775,9 @@ dependencies = [ [[package]] name = "reth-primitives-traits" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-genesis", "alloy-primitives", @@ -7032,9 +6795,9 @@ dependencies = [ "proptest", "proptest-arbitrary-interop", "rayon", - "reth-codecs 1.1.5", + "reth-codecs", "revm-primitives", - "scroll-alloy-consensus 1.1.5", + "scroll-alloy-consensus", "secp256k1", "serde", "serde_with", @@ -7044,12 +6807,12 @@ dependencies = [ [[package]] name = "reth-provider" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "auto_impl", "dashmap", "eyre", @@ -7060,7 +6823,7 @@ dependencies = [ "rayon", "reth-chain-state", "reth-chainspec", - "reth-codecs 1.1.5", + "reth-codecs", "reth-db", "reth-db-api", "reth-errors", @@ -7081,7 +6844,7 @@ dependencies = [ "reth-trie", "reth-trie-db", "revm", - "strum", + "strum 0.26.3", "tokio", "tracing", ] @@ -7089,9 +6852,9 @@ dependencies = [ [[package]] name = "reth-prune" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "itertools 0.13.0", @@ -7118,13 +6881,13 @@ dependencies = [ [[package]] name = "reth-prune-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-primitives", "arbitrary", "derive_more", "modular-bitfield", - "reth-codecs 1.1.5", + "reth-codecs", "serde", "thiserror 2.0.11", ] @@ -7132,7 +6895,7 @@ dependencies = [ [[package]] name = "reth-revm" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -7146,26 +6909,26 @@ dependencies = [ [[package]] name = "reth-rpc" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-dyn-abi", "alloy-eips 0.11.1", "alloy-genesis", - "alloy-network 0.11.1", + "alloy-network", "alloy-primitives", "alloy-rlp", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-beacon", "alloy-rpc-types-debug", - "alloy-rpc-types-engine 0.11.0", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", "alloy-serde 0.11.1", - "alloy-signer 0.11.1", + "alloy-signer", "alloy-signer-local", "async-trait", "derive_more", @@ -7216,18 +6979,18 @@ dependencies = [ [[package]] name = "reth-rpc-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-eips 0.11.1", - "alloy-json-rpc 0.11.0", + "alloy-json-rpc", "alloy-primitives", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-anvil", "alloy-rpc-types-beacon", "alloy-rpc-types-debug", - "alloy-rpc-types-engine 0.11.0", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", @@ -7241,10 +7004,10 @@ dependencies = [ [[package]] name = "reth-rpc-builder" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-network 0.11.1", - "alloy-provider 0.11.0", + "alloy-network", + "alloy-provider", "http", "jsonrpsee", "metrics", @@ -7279,11 +7042,11 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "async-trait", "jsonrpsee-core", "jsonrpsee-types", @@ -7309,16 +7072,16 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-dyn-abi", "alloy-eips 0.11.1", - "alloy-json-rpc 0.11.0", - "alloy-network 0.11.1", + "alloy-json-rpc", + "alloy-network", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-eth", "alloy-rpc-types-mev", "alloy-serde 0.11.1", "async-trait", @@ -7353,12 +7116,12 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-eth", "alloy-sol-types", "derive_more", "futures", @@ -7396,9 +7159,9 @@ dependencies = [ [[package]] name = "reth-rpc-layer" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "http", "jsonrpsee-http-client", "pin-project", @@ -7410,29 +7173,29 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "jsonrpsee-core", "jsonrpsee-types", "reth-errors", "reth-network-api", "serde", - "strum", + "strum 0.26.3", ] [[package]] name = "reth-rpc-types-compat" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", "jsonrpsee-types", "reth-primitives", "reth-primitives-traits", @@ -7442,10 +7205,10 @@ dependencies = [ [[package]] name = "reth-scroll-chainspec" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-chains", - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-genesis", "alloy-primitives", @@ -7465,7 +7228,7 @@ dependencies = [ [[package]] name = "reth-scroll-cli" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "clap", "eyre", @@ -7487,7 +7250,7 @@ dependencies = [ [[package]] name = "reth-scroll-consensus" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "revm", ] @@ -7495,13 +7258,13 @@ dependencies = [ [[package]] name = "reth-scroll-engine-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "reth-chain-state", "reth-chainspec", "reth-engine-primitives", @@ -7520,9 +7283,9 @@ dependencies = [ [[package]] name = "reth-scroll-evm" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "derive_more", "reth-chainspec", @@ -7538,7 +7301,7 @@ dependencies = [ "reth-scroll-primitives", "revm", "revm-primitives", - "scroll-alloy-consensus 1.1.5", + "scroll-alloy-consensus", "thiserror 2.0.11", "tracing", ] @@ -7546,7 +7309,7 @@ dependencies = [ [[package]] name = "reth-scroll-forks" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-chains", "alloy-primitives", @@ -7558,12 +7321,12 @@ dependencies = [ [[package]] name = "reth-scroll-node" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "eyre", "reth-consensus", "reth-db", @@ -7589,7 +7352,7 @@ dependencies = [ "reth-transaction-pool", "reth-trie-db", "revm", - "scroll-alloy-consensus 1.1.5", + "scroll-alloy-consensus", "scroll-alloy-rpc-types-engine", "thiserror 2.0.11", "tokio", @@ -7598,7 +7361,7 @@ dependencies = [ [[package]] name = "reth-scroll-payload" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "futures-util", "reth-payload-builder", @@ -7608,9 +7371,9 @@ dependencies = [ [[package]] name = "reth-scroll-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -7621,11 +7384,11 @@ dependencies = [ "once_cell", "proptest", "rand 0.8.5", - "reth-codecs 1.1.5", + "reth-codecs", "reth-primitives-traits", "reth-zstd-compressors", "revm-primitives", - "scroll-alloy-consensus 1.1.5", + "scroll-alloy-consensus", "secp256k1", "serde", ] @@ -7633,12 +7396,12 @@ dependencies = [ [[package]] name = "reth-scroll-rpc" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-eth", "jsonrpsee-types", "parking_lot", "reth-chainspec", @@ -7659,9 +7422,9 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "revm", - "scroll-alloy-consensus 1.1.5", - "scroll-alloy-network 1.1.5", - "scroll-alloy-rpc-types 1.1.5", + "scroll-alloy-consensus", + "scroll-alloy-network", + "scroll-alloy-rpc-types", "thiserror 2.0.11", "tokio", ] @@ -7669,9 +7432,9 @@ dependencies = [ [[package]] name = "reth-stages" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "bincode", @@ -7682,7 +7445,7 @@ dependencies = [ "rayon", "reqwest", "reth-chainspec", - "reth-codecs 1.1.5", + "reth-codecs", "reth-config", "reth-consensus", "reth-db", @@ -7714,7 +7477,7 @@ dependencies = [ [[package]] name = "reth-stages-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -7741,13 +7504,13 @@ dependencies = [ [[package]] name = "reth-stages-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-primitives", "arbitrary", "bytes", "modular-bitfield", - "reth-codecs 1.1.5", + "reth-codecs", "reth-trie-common", "serde", ] @@ -7755,12 +7518,12 @@ dependencies = [ [[package]] name = "reth-static-file" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-primitives", "parking_lot", "rayon", - "reth-codecs 1.1.5", + "reth-codecs", "reth-db", "reth-db-api", "reth-primitives-traits", @@ -7776,24 +7539,24 @@ dependencies = [ [[package]] name = "reth-static-file-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-primitives", "clap", "derive_more", "serde", - "strum", + "strum 0.26.3", ] [[package]] name = "reth-storage-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "auto_impl", "reth-chainspec", "reth-db", @@ -7813,7 +7576,7 @@ dependencies = [ [[package]] name = "reth-storage-errors" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -7829,7 +7592,7 @@ dependencies = [ [[package]] name = "reth-tasks" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "auto_impl", "dyn-clone", @@ -7847,9 +7610,9 @@ dependencies = [ [[package]] name = "reth-testing-utils" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-genesis", "alloy-primitives", @@ -7862,7 +7625,7 @@ dependencies = [ [[package]] name = "reth-tokio-util" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "tokio", "tokio-stream", @@ -7872,7 +7635,7 @@ dependencies = [ [[package]] name = "reth-tracing" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "clap", "eyre", @@ -7887,9 +7650,9 @@ dependencies = [ [[package]] name = "reth-transaction-pool" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -7927,9 +7690,9 @@ dependencies = [ [[package]] name = "reth-trie" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -7953,12 +7716,12 @@ dependencies = [ [[package]] name = "reth-trie-common" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-eth", "alloy-serde 0.11.1", "alloy-trie", "arbitrary", @@ -7968,7 +7731,7 @@ dependencies = [ "itertools 0.13.0", "nybbles", "plain_hasher", - "reth-codecs 1.1.5", + "reth-codecs", "reth-primitives-traits", "serde", "serde_with", @@ -7977,7 +7740,7 @@ dependencies = [ [[package]] name = "reth-trie-db" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7999,7 +7762,7 @@ dependencies = [ [[package]] name = "reth-trie-parallel" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8022,7 +7785,7 @@ dependencies = [ [[package]] name = "reth-trie-sparse" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8037,7 +7800,7 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "zstd", ] @@ -8063,7 +7826,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d87cdf1c0d878b48423f8a86232950657abaf72a2d0d14af609467542313b1a" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-eth", "alloy-rpc-types-trace", "alloy-sol-types", "anstyle", @@ -8133,15 +7896,14 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.8" +version = "0.17.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "e75ec5e92c4d8aede845126adc388046234541629e76029599ed35a003c7ed24" dependencies = [ "cc", "cfg-if", "getrandom 0.2.15", "libc", - "spin", "untrusted", "windows-sys 0.52.0", ] @@ -8226,7 +7988,7 @@ name = "rollup-node-manager" version = "0.0.1" dependencies = [ "alloy-eips 0.9.2", - "alloy-rpc-types-engine 0.9.2", + "alloy-rpc-types-engine", "futures", "reth-engine-primitives", "reth-network-peers", @@ -8235,7 +7997,7 @@ dependencies = [ "reth-scroll-primitives", "reth-tasks", "reth-tokio-util", - "scroll-alloy-network 1.2.0", + "scroll-alloy-network", "scroll-alloy-provider", "scroll-engine", "scroll-network", @@ -8246,36 +8008,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "rollup-node-primitives" -version = "0.0.1" -dependencies = [ - "alloy-primitives", - "alloy-rpc-types-engine 0.9.2", -] - -[[package]] -name = "rollup-node-watcher" -version = "0.0.1" -dependencies = [ - "alloy-consensus 0.9.2", - "alloy-json-rpc 0.9.2", - "alloy-network 0.9.2", - "alloy-primitives", - "alloy-provider 0.9.2", - "alloy-rpc-types-engine 0.9.2", - "alloy-rpc-types-eth 0.9.2", - "alloy-transport 0.9.2", - "async-trait", - "eyre", - "rand 0.9.0", - "reth-ethereum-primitives", - "rollup-node-primitives", - "thiserror 2.0.11", - "tokio", - "tracing", -] - [[package]] name = "route-recognizer" version = "0.3.1" @@ -8284,17 +8016,19 @@ checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] name = "ruint" -version = "1.12.3" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +checksum = "825df406ec217a8116bd7b06897c6cc8f65ffefc15d030ae2c9540acc9ed50b6" dependencies = [ "alloy-rlp", "arbitrary", "ark-ff 0.3.0", "ark-ff 0.4.2", "bytes", - "fastrlp", + "fastrlp 0.3.1", + "fastrlp 0.4.0", "num-bigint", + "num-integer", "num-traits", "parity-scale-codec", "primitive-types", @@ -8373,9 +8107,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.22" +version = "0.23.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb9263ab4eb695e42321db096e3b8fbd715a59b154d5c88d82db2175b681ba7" +checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" dependencies = [ "log", "once_cell", @@ -8535,9 +8269,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll-alloy-consensus" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -8545,26 +8279,8 @@ dependencies = [ "arbitrary", "derive_more", "modular-bitfield", - "reth-codecs 1.1.5", - "reth-codecs-derive 1.1.5", - "serde", - "serde_with", -] - -[[package]] -name = "scroll-alloy-consensus" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" -dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.11.1", - "derive_more", - "modular-bitfield", - "reth-codecs 1.2.0", - "reth-codecs-derive 1.2.0", + "reth-codecs", + "reth-codecs-derive", "serde", "serde_with", ] @@ -8572,48 +8288,34 @@ dependencies = [ [[package]] name = "scroll-alloy-network" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-network 0.11.1", + "alloy-consensus", + "alloy-network", "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", - "alloy-signer 0.11.1", - "scroll-alloy-consensus 1.1.5", - "scroll-alloy-rpc-types 1.1.5", -] - -[[package]] -name = "scroll-alloy-network" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" -dependencies = [ - "alloy-consensus 0.11.1", - "alloy-network 0.11.1", - "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", - "alloy-signer 0.11.1", - "scroll-alloy-consensus 1.2.0", - "scroll-alloy-rpc-types 1.2.0", + "alloy-rpc-types-eth", + "alloy-signer", + "scroll-alloy-consensus", + "scroll-alloy-rpc-types", ] [[package]] name = "scroll-alloy-provider" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-primitives", - "alloy-provider 0.11.0", - "alloy-rpc-client 0.11.0", - "alloy-rpc-types-engine 0.11.0", - "alloy-transport 0.11.0", - "alloy-transport-http 0.11.0", + "alloy-provider", + "alloy-rpc-client", + "alloy-rpc-types-engine", + "alloy-transport", + "alloy-transport-http", "async-trait", "derive_more", "eyre", "http-body-util", "reqwest", - "scroll-alloy-network 1.1.5", + "scroll-alloy-network", "scroll-alloy-rpc-types-engine", "tower 0.4.13", ] @@ -8621,33 +8323,16 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" -dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", - "alloy-network-primitives 0.11.1", - "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", - "alloy-serde 0.11.1", - "derive_more", - "scroll-alloy-consensus 1.1.5", - "serde", - "serde_json", -] - -[[package]] -name = "scroll-alloy-rpc-types" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-eips 0.11.1", - "alloy-network-primitives 0.11.1", + "alloy-network-primitives", "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-eth", "alloy-serde 0.11.1", "derive_more", - "scroll-alloy-consensus 1.2.0", + "scroll-alloy-consensus", "serde", "serde_json", ] @@ -8655,10 +8340,10 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types-engine" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "arbitrary", "serde", ] @@ -8669,7 +8354,7 @@ version = "0.0.1" dependencies = [ "alloy-chains", "alloy-primitives", - "alloy-rpc-types-engine 0.9.2", + "alloy-rpc-types-engine", "clap", "eyre", "futures", @@ -8697,8 +8382,8 @@ dependencies = [ "reth-tracing", "reth-transaction-pool", "rollup-node-manager", - "scroll-alloy-consensus 1.1.5", - "scroll-alloy-network 1.1.5", + "scroll-alloy-consensus", + "scroll-alloy-network", "scroll-alloy-provider", "scroll-alloy-rpc-types-engine", "scroll-engine", @@ -8717,20 +8402,22 @@ dependencies = [ "alloy-chains", "alloy-eips 0.9.2", "alloy-primitives", - "alloy-rpc-types-engine 0.9.2", + "alloy-rpc-types-engine", "arbitrary", "async-trait", "eyre", + "reth-engine-primitives", + "reth-network-peers", "reth-payload-primitives", "reth-primitives", "reth-scroll-chainspec", "reth-scroll-engine-primitives", "reth-scroll-primitives", "reth-testing-utils", - "rollup-node-primitives", - "scroll-alloy-network 1.2.0", + "scroll-alloy-network", "scroll-alloy-provider", "scroll-alloy-rpc-types-engine", + "serde", "tokio", "tracing", ] @@ -9132,9 +8819,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.2" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" dependencies = [ "arbitrary", "serde", @@ -9212,7 +8899,16 @@ version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" dependencies = [ - "strum_macros", + "strum_macros 0.26.4", +] + +[[package]] +name = "strum" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" +dependencies = [ + "strum_macros 0.27.1", ] [[package]] @@ -9228,6 +8924,19 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "strum_macros" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.98", +] + [[package]] name = "substrate-bn" version = "0.6.0" @@ -9271,9 +8980,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7f6a4b9002584ea56d0a19713b65da44cbbf6070aca9ae0360577cba5c4db68" +checksum = "9c2de690018098e367beeb793991c7d4dc7270f42c9d2ac4ccc876c1368ca430" dependencies = [ "paste", "proc-macro2", @@ -9328,9 +9037,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.16.0" +version = "3.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38c246215d7d24f48ae091a2902398798e05d978b24315d6efbc00ede9a8bb91" +checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" dependencies = [ "cfg-if", "fastrand", @@ -9519,9 +9228,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4bf6fecd69fcdede0ec680aaf474cdab988f9de6bc73d3758f0160e3b7025a" +checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" dependencies = [ "futures-util", "log", @@ -9571,9 +9280,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.23" +version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02a8b472d1a3d7c18e2d61a489aee3453fd9031c33e4f55bd533f4a7adca1bee" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ "indexmap 2.7.1", "serde", @@ -9799,17 +9508,16 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413083a99c579593656008130e29255e54dcaae495be556cc26888f211648c24" +checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" dependencies = [ - "byteorder", "bytes", "data-encoding", "http", "httparse", "log", - "rand 0.8.5", + "rand 0.9.0", "rustls", "rustls-pki-types", "sha1", @@ -9819,9 +9527,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "ucd-trie" @@ -9867,9 +9575,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" +checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" [[package]] name = "unicode-segmentation" @@ -9966,9 +9674,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced87ca4be083373936a67f8de945faa23b6b42384bd5b64434850802c6dccd0" +checksum = "8c1f41ffb7cf259f1ecc2876861a17e7142e63ead296f671f81f6ae85903e0d6" dependencies = [ "getrandom 0.3.1", ] @@ -10491,9 +10199,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86e376c75f4f43f44db463cf729e0d3acbf954d13e22c51e26e4c264b4ab545f" +checksum = "59690dea168f2198d1a3b0cac23b8063efcd11012f10ae4698f284808c8ef603" dependencies = [ "memchr", ] @@ -10599,11 +10307,11 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.17" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa91407dacce3a68c56de03abe2760159582b846c6a4acd2f456618087f12713" +checksum = "79386d31a42a4996e3336b0919ddb90f81112af416270cff95b5f5af22b839c2" dependencies = [ - "zerocopy-derive 0.8.17", + "zerocopy-derive 0.8.18", ] [[package]] @@ -10619,9 +10327,9 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.8.17" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06718a168365cad3d5ff0bb133aad346959a2074bd4a85c121255a11304a8626" +checksum = "76331675d372f91bf8d17e13afbd5fe639200b73d01f0fc748bb059f9cca2db7" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 5365fbad..384e0718 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,13 +7,11 @@ exclude = [".github/"] [workspace] members = [ - "bin/bridge", + "bin/bridge", "crates/engine", "crates/node", "crates/network", - "crates/scroll-wire", - "crates/watcher", - "crates/primitives", + "crates/scroll-wire" ] resolver = "2" @@ -109,17 +107,12 @@ too_long_first_doc_paragraph = "allow" # alloy alloy-chains = { version = "0.1.32", default-features = false } alloy-eips = { version = "0.9.2", default-features = false } -alloy-json-rpc = { version = "0.9.2", default-features = false } -alloy-network = { version = "0.9.2", default-features = false } alloy-primitives = { version = "0.8.15", default-features = false } -alloy-provider = { version = "0.9.2", default-features = false } -alloy-rpc-types-engine = { version = "0.9.2", default-features = false } -alloy-rpc-types-eth = { version = "0.9.2", default-features = false } -alloy-transport = { version = "0.9.2", default-features = false } +alloy-rpc-types-engine = { version = "0.11.0", default-features = false } # scroll-alloy scroll-alloy-provider = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } # reth reth-eth-wire-types = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } @@ -142,15 +135,12 @@ scroll-engine = { path = "crates/engine" } scroll-network = { path = "crates/network" } scroll-wire = { path = "crates/scroll-wire" } rollup-node-manager = { path = "crates/node" } -rollup-node-watcher = { path = "crates/watcher" } -rollup-node-primitives = { path = "crates/primitives" } # misc -async-trait = "0.1" eyre = "0.6" futures = { version = "0.3", default-features = false } secp256k1 = { version = "0.29", default-features = false } -thiserror = "2.0" +serde = { version = "1.0", default-features = false } tokio = { version = "1.39", default-features = false } tokio-stream = { version = "0.1", default-features = false } tracing = "0.1.0" @@ -163,3 +153,4 @@ revm-interpreter = { git = "https://github.com/scroll-tech/revm.git", branch = " ff = { git = "https://github.com/scroll-tech/ff", branch = "feat/sp1" } alloy-eip2930 = { git = "https://github.com/scroll-tech/alloy-eips", branch = "v0.3.2" } + diff --git a/bin/bridge/Cargo.toml b/bin/bridge/Cargo.toml index ff1a6f68..5d1ebb3b 100644 --- a/bin/bridge/Cargo.toml +++ b/bin/bridge/Cargo.toml @@ -14,7 +14,7 @@ alloy-rpc-types-engine.workspace = true # scroll-alloy scroll-alloy-consensus = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +scroll-alloy-rpc-types-engine= { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } scroll-alloy-provider.workspace = true # reth @@ -27,7 +27,7 @@ reth-node-builder = { git = "https://github.com/scroll-tech/reth.git", branch = reth-node-core = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } reth-node-types = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } reth-primitives.workspace = true -reth-provider = { workspace = true, features = ["scroll", "skip-state-root-validation"] } +reth-provider = { workspace = true, features = ["scroll", "skip-state-root-validation"]} reth-rpc-api = { workspace = true, features = ["client"] } reth-rpc-builder = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } reth-transaction-pool = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } @@ -49,13 +49,18 @@ rollup-node-manager.workspace = true clap = { version = "4", features = ["derive", "env"] } eyre.workspace = true futures.workspace = true -secp256k1 = { workspace = true, features = ["global-context", "recovery"] } +secp256k1 = { workspace = true, features = [ + "global-context", + "recovery", +] } tokio = { workspace = true, features = ["full"] } tracing.workspace = true [dev-dependencies] # alloy -alloy-primitives = { workspace = true, default-features = false, features = ["map-foldhash"] } +alloy-primitives = { workspace = true, default-features = false, features = [ + "map-foldhash", +] } alloy-rpc-types-engine.workspace = true # reth @@ -65,36 +70,36 @@ reth-rpc-server-types = { git = "https://github.com/scroll-tech/reth.git", branc reth-tasks.workspace = true reth-tracing = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -#  misc +# misc serde_json = { version = "1.0.94", default-features = false, features = ["alloc"] } tokio = { workspace = true, features = ["full"] } [features] test-utils = [ - "reth-network/test-utils", - "reth-node-builder/test-utils", - "reth-primitives/test-utils", - "reth-provider/test-utils", - "reth-transaction-pool/test-utils", - "scroll-engine/test-utils", - "reth-payload-builder/test-utils", - "reth-payload-builder/test-utils", + "reth-network/test-utils", + "reth-node-builder/test-utils", + "reth-primitives/test-utils", + "reth-provider/test-utils", + "reth-transaction-pool/test-utils", + "scroll-engine/test-utils", + "reth-payload-builder/test-utils", + "reth-payload-builder/test-utils" ] serde = [ - "alloy-primitives/serde", - "alloy-rpc-types-engine/serde", - "reth-eth-wire-types/serde", - "reth-network/serde", - "reth-provider/serde", - "reth-scroll-primitives/serde", - "scroll-alloy-consensus/serde", - "scroll-alloy-rpc-types-engine/serde", - "scroll-engine/serde", - "scroll-network/serde", - "scroll-wire/serde", - "secp256k1/serde", - "rollup-node-manager/serde", - "alloy-chains/serde", + "alloy-primitives/serde", + "alloy-rpc-types-engine/serde", + "reth-eth-wire-types/serde", + "reth-network/serde", + "reth-provider/serde", + "reth-scroll-primitives/serde", + "scroll-alloy-consensus/serde", + "scroll-alloy-rpc-types-engine/serde", + "scroll-engine/serde", + "scroll-network/serde", + "scroll-wire/serde", + "secp256k1/serde", + "rollup-node-manager/serde", + "alloy-chains/serde" ] [[bin]] diff --git a/crates/engine/Cargo.toml b/crates/engine/Cargo.toml index 6b9bf372..e78a4945 100644 --- a/crates/engine/Cargo.toml +++ b/crates/engine/Cargo.toml @@ -22,6 +22,8 @@ scroll-alloy-provider.workspace = true scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } # reth +reth-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false, features = ["scroll"] } +reth-network-peers.workspace = true reth-payload-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } reth-primitives = { workspace = true } @@ -30,12 +32,10 @@ reth-scroll-chainspec.workspace = true reth-scroll-primitives = { workspace = true, features = ["scroll"] } reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false, features = ["scroll"] } -# rollup-node -rollup-node-primitives.workspace = true - # misc -async-trait.workspace = true +async-trait = "0.1.68" eyre.workspace = true +serde = { workspace = true, features = ["derive"] } tokio.workspace = true tracing.workspace = true @@ -48,23 +48,23 @@ reth-testing-utils = { git = "https://github.com/scroll-tech/reth.git", branch = [features] arbitrary = [ - "alloy-primitives/arbitrary", - "reth-primitives/arbitrary", - "alloy-eips/arbitrary", - "reth-scroll-primitives/arbitrary", - "scroll-alloy-rpc-types-engine/arbitrary", - "alloy-chains/arbitrary", + "alloy-primitives/arbitrary", + "reth-primitives/arbitrary", + "alloy-eips/arbitrary", + "reth-scroll-primitives/arbitrary", + "scroll-alloy-rpc-types-engine/arbitrary", + "alloy-chains/arbitrary" ] test-utils = [ - "arbitrary", - "dep:arbitrary", - "reth-primitives/test-utils", + "arbitrary", + "dep:arbitrary", + "reth-primitives/test-utils" ] serde = [ - "alloy-eips/serde", - "alloy-primitives/serde", - "alloy-rpc-types-engine/serde", - "reth-scroll-primitives/serde", - "scroll-alloy-rpc-types-engine/serde", - "alloy-chains/serde", + "alloy-eips/serde", + "alloy-primitives/serde", + "alloy-rpc-types-engine/serde", + "reth-scroll-primitives/serde", + "scroll-alloy-rpc-types-engine/serde", + "alloy-chains/serde" ] diff --git a/crates/engine/src/engine.rs b/crates/engine/src/engine.rs index 5e3f13b8..a2b3ff1f 100644 --- a/crates/engine/src/engine.rs +++ b/crates/engine/src/engine.rs @@ -1,7 +1,7 @@ +use crate::{block_info::BlockInfo, payload::matching_payloads}; + use super::error::EngineDriverError; -use crate::payload::matching_payloads; use crate::ExecutionPayloadProvider; - use alloy_rpc_types_engine::{ ExecutionPayload, ExecutionPayloadV1, ForkchoiceState, ForkchoiceUpdated, PayloadId, PayloadStatusEnum, @@ -9,7 +9,6 @@ use alloy_rpc_types_engine::{ use eyre::Result; use reth_payload_primitives::PayloadTypes; use reth_scroll_engine_primitives::ScrollEngineTypes; -use rollup_node_primitives::BlockInfo; use scroll_alloy_provider::ScrollEngineApi; use tokio::time::Duration; @@ -175,7 +174,7 @@ where match &response.status { PayloadStatusEnum::Invalid { validation_error } => { error!(target: "scroll::engine::driver", ?validation_error, "execution payload is invalid"); - return Err(EngineDriverError::InvalidExecutionPayload); + return Err(EngineDriverError::InvalidExecutionPayload) } PayloadStatusEnum::Syncing => { debug!(target: "scroll::engine::driver", "execution client is syncing"); @@ -208,7 +207,7 @@ where match &forkchoice_updated.payload_status.status { PayloadStatusEnum::Invalid { validation_error } => { error!(target: "scroll::engine::driver", ?validation_error, "failed to issue forkchoice"); - return Err(EngineDriverError::InvalidFcu); + return Err(EngineDriverError::InvalidFcu) } PayloadStatusEnum::Syncing => { debug!(target: "scroll::engine::driver", "head has been seen before, but not part of the chain"); diff --git a/crates/network/Cargo.toml b/crates/network/Cargo.toml index 29c765ba..f0931ff8 100644 --- a/crates/network/Cargo.toml +++ b/crates/network/Cargo.toml @@ -8,7 +8,9 @@ exclude.workspace = true [dependencies] # alloy -alloy-primitives = { workspace = true, features = ["map-foldhash"] } +alloy-primitives = { workspace = true, features = [ + "map-foldhash", +] } # reth reth-discv5 = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } @@ -37,13 +39,13 @@ tracing.workspace = true [features] serde = [ - "alloy-primitives/serde", - "parking_lot/serde", - "reth-eth-wire-types/serde", - "reth-network/serde", - "reth-network-api/serde", - "reth-network-types/serde", - "reth-scroll-primitives/serde", - "scroll-wire/serde", - "secp256k1/serde", + "alloy-primitives/serde", + "parking_lot/serde", + "reth-eth-wire-types/serde", + "reth-network/serde", + "reth-network-api/serde", + "reth-network-types/serde", + "reth-scroll-primitives/serde", + "scroll-wire/serde", + "secp256k1/serde" ] diff --git a/crates/node/Cargo.toml b/crates/node/Cargo.toml index 19d79bd0..290f8c30 100644 --- a/crates/node/Cargo.toml +++ b/crates/node/Cargo.toml @@ -43,11 +43,11 @@ workspace = true [features] serde = [ - "alloy-rpc-types-engine/serde", - "reth-scroll-primitives/serde", - "scroll-engine/serde", - "scroll-network/serde", - "scroll-wire/serde", - "secp256k1/serde", - "alloy-eips/serde", + "alloy-rpc-types-engine/serde", + "reth-scroll-primitives/serde", + "scroll-engine/serde", + "scroll-network/serde", + "scroll-wire/serde", + "secp256k1/serde", + "alloy-eips/serde" ] diff --git a/crates/scroll-wire/Cargo.toml b/crates/scroll-wire/Cargo.toml index 299abc96..494cd7ae 100644 --- a/crates/scroll-wire/Cargo.toml +++ b/crates/scroll-wire/Cargo.toml @@ -11,7 +11,9 @@ workspace = true [dependencies] # alloy -alloy-primitives = { workspace = true, features = ["map-foldhash"] } +alloy-primitives = { workspace = true, features = [ + "map-foldhash", +] } alloy-rlp = { version = "0.3.10", default-features = false } # reth @@ -25,17 +27,20 @@ reth-scroll-primitives = { workspace = true, features = ["serde"] } # misc futures.workspace = true -secp256k1 = { workspace = true, features = ["global-context", "recovery"] } +secp256k1 = { workspace = true, features = [ + "global-context", + "recovery", +] } tokio = { workspace = true, features = ["full"] } tokio-stream.workspace = true tracing.workspace = true [features] serde = [ - "alloy-primitives/serde", - "reth-eth-wire/serde", - "reth-network/serde", - "reth-network-api/serde", - "reth-scroll-primitives/serde", - "secp256k1/serde", + "alloy-primitives/serde", + "reth-eth-wire/serde", + "reth-network/serde", + "reth-network-api/serde", + "reth-scroll-primitives/serde", + "secp256k1/serde" ] From 6209e94e804c895ed026266ad6f7b34f1ab85885 Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Tue, 4 Mar 2025 17:17:54 +0100 Subject: [PATCH 04/63] feat(watcher): reorg detection --- Cargo.lock | 1269 ++++++++++++++++++------------ Cargo.toml | 1 + crates/primitives/Cargo.toml | 1 + crates/watcher/Cargo.toml | 11 +- crates/watcher/src/error.rs | 2 + crates/watcher/src/lib.rs | 497 ++++++++---- crates/watcher/src/test_utils.rs | 36 +- 7 files changed, 1161 insertions(+), 656 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b73db196..6b87c456 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,9 +97,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.1.62" +version = "0.1.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1317fde6d2d3cd6082a15144c23230697a5e1a91a27d1facc146715d3b4b2046" +checksum = "4d37bc62b68c056e3742265ab73c73d413d07357909e0e4ea1e95453066a7469" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -107,7 +107,26 @@ dependencies = [ "num_enum", "proptest", "serde", - "strum 0.27.1", + "strum", +] + +[[package]] +name = "alloy-consensus" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4138dc275554afa6f18c4217262ac9388790b2fc393c2dfe03c51d357abf013" +dependencies = [ + "alloy-eips 0.9.2", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.9.2", + "alloy-trie", + "arbitrary", + "auto_impl", + "c-kzg", + "derive_more", + "rand 0.8.5", + "serde", ] [[package]] @@ -132,11 +151,25 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "0.11.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa13b7b1e1e3fedc42f0728103bfa3b4d566d3d42b606db449504d88dbdbdcf" +checksum = "0fa04e1882c31288ce1028fdf31b6ea94cfa9eafa2e497f903ded631c8c6a42c" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.9.2", + "alloy-eips 0.9.2", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.9.2", + "serde", +] + +[[package]] +name = "alloy-consensus-any" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e23af02ccded0031ef2b70df4fe9965b1c742c5d5384c8c767ae0311f7e62b9" +dependencies = [ + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -146,9 +179,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555896f0b8578adb522b1453b6e6cc6704c3027bd0af20058befdde992cee8e9" +checksum = "7f2d547eba3f2d331b0e08f64a24e202f66d4f291e2a3e0073914c0e1400ced3" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -262,9 +295,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4012581681b186ba0882007ed873987cc37f86b1b488fe6b91d5efd0b585dc41" +checksum = "d62cf1b25f5a50ca2d329b0b4aeb0a0dedeaf225ad3c5099d83b1a4c4616186e" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -274,9 +307,23 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.11.1" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2008bedb8159a255b46b7c8614516eda06679ea82f620913679afbd8031fea72" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "serde", + "serde_json", + "thiserror 2.0.11", + "tracing", +] + +[[package]] +name = "alloy-json-rpc" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "762414662d793d7aaa36ee3af6928b6be23227df1681ce9c039f6f11daadef64" +checksum = "c0c5c9651fd20a2fd4a57606b6a570d1c17ab86e686b962b2f1ecac68b51e020" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -286,22 +333,47 @@ dependencies = [ "tracing", ] +[[package]] +name = "alloy-network" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4556f01fe41d0677495df10a648ddcf7ce118b0e8aa9642a0e2b6dd1fb7259de" +dependencies = [ + "alloy-consensus 0.9.2", + "alloy-consensus-any 0.9.2", + "alloy-eips 0.9.2", + "alloy-json-rpc 0.9.2", + "alloy-network-primitives 0.9.2", + "alloy-primitives", + "alloy-rpc-types-any 0.9.2", + "alloy-rpc-types-eth 0.9.2", + "alloy-serde 0.9.2", + "alloy-signer 0.9.2", + "alloy-sol-types", + "async-trait", + "auto_impl", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror 2.0.11", +] + [[package]] name = "alloy-network" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be03f2ebc00cf88bd06d3c6caf387dceaa9c7e6b268216779fa68a9bf8ab4e6" dependencies = [ - "alloy-consensus", - "alloy-consensus-any", + "alloy-consensus 0.11.1", + "alloy-consensus-any 0.11.0", "alloy-eips 0.11.1", - "alloy-json-rpc", - "alloy-network-primitives", + "alloy-json-rpc 0.11.0", + "alloy-network-primitives 0.11.1", "alloy-primitives", - "alloy-rpc-types-any", - "alloy-rpc-types-eth", + "alloy-rpc-types-any 0.11.0", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", - "alloy-signer", + "alloy-signer 0.11.1", "alloy-sol-types", "async-trait", "auto_impl", @@ -311,13 +383,26 @@ dependencies = [ "thiserror 2.0.11", ] +[[package]] +name = "alloy-network-primitives" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31c3c6b71340a1d076831823f09cb6e02de01de5c6630a9631bdb36f947ff80" +dependencies = [ + "alloy-consensus 0.9.2", + "alloy-eips 0.9.2", + "alloy-primitives", + "alloy-serde 0.9.2", + "serde", +] + [[package]] name = "alloy-network-primitives" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a00ce618ae2f78369918be0c20f620336381502c83b6ed62c2f7b2db27698b0" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-serde 0.11.1", @@ -326,9 +411,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478bedf4d24e71ea48428d1bc278553bd7c6ae07c30ca063beb0b09fe58a9e74" +checksum = "bc1360603efdfba91151e623f13a4f4d3dc4af4adc1cbd90bf37c81e84db4c77" dependencies = [ "alloy-rlp", "arbitrary", @@ -357,23 +442,56 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.11.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbe0a2acff0c4bd1669c71251ce10fc455cbffa1b4d0a817d5ea4ba7e5bb3db7" +checksum = "5a22c4441b3ebe2d77fa9cf629ba68c3f713eb91779cff84275393db97eddd82" dependencies = [ "alloy-chains", - "alloy-consensus", + "alloy-consensus 0.9.2", + "alloy-eips 0.9.2", + "alloy-json-rpc 0.9.2", + "alloy-network 0.9.2", + "alloy-network-primitives 0.9.2", + "alloy-primitives", + "alloy-rpc-client 0.9.2", + "alloy-rpc-types-eth 0.9.2", + "alloy-transport 0.9.2", + "async-stream", + "async-trait", + "auto_impl", + "dashmap", + "futures", + "futures-utils-wasm", + "lru 0.12.5", + "parking_lot", + "pin-project", + "schnellru", + "serde", + "serde_json", + "thiserror 2.0.11", + "tokio", + "tracing", + "wasmtimer", +] + +[[package]] +name = "alloy-provider" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07c68df5354225da542efeb6d9388b65773b3304309b437416146e9d1e2bc1bd" +dependencies = [ + "alloy-chains", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", - "alloy-json-rpc", - "alloy-network", - "alloy-network-primitives", + "alloy-json-rpc 0.11.0", + "alloy-network 0.11.1", + "alloy-network-primitives 0.11.1", "alloy-primitives", "alloy-pubsub", - "alloy-rpc-client", - "alloy-rpc-types-eth", - "alloy-sol-types", - "alloy-transport", - "alloy-transport-http", + "alloy-rpc-client 0.11.0", + "alloy-rpc-types-eth 0.11.1", + "alloy-transport 0.11.0", + "alloy-transport-http 0.11.0", "alloy-transport-ipc", "alloy-transport-ws", "async-stream", @@ -397,13 +515,13 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3a68996f193f542f9e29c88dfa8ed1369d6ee04fa764c1bf23dc11b2f9e4a2" +checksum = "7ef6ef167ea24e7aac569dfd90b668c1f7dca0e48214e70364586d5341a89431" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 0.11.0", "alloy-primitives", - "alloy-transport", + "alloy-transport 0.11.0", "bimap", "futures", "serde", @@ -438,15 +556,36 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.11.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b37cc3c7883dc41be1b01460127ad7930466d0a4bb6ba15a02ee34d2745e2d7c" +checksum = "d06a292b37e182e514903ede6e623b9de96420e8109ce300da288a96d88b7e4b" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 0.9.2", + "alloy-primitives", + "alloy-transport 0.9.2", + "alloy-transport-http 0.9.2", + "futures", + "pin-project", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower 0.5.2", + "tracing", + "wasmtimer", +] + +[[package]] +name = "alloy-rpc-client" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0371aae9b44a35e374c94c7e1df5cbccf0f52b2ef7c782291ed56e86d88ec106" +dependencies = [ + "alloy-json-rpc 0.11.0", "alloy-primitives", "alloy-pubsub", - "alloy-transport", - "alloy-transport-http", + "alloy-transport 0.11.0", + "alloy-transport-http 0.11.0", "alloy-transport-ipc", "alloy-transport-ws", "futures", @@ -464,22 +603,22 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f18e68a3882f372e045ddc89eb455469347767d17878ca492cfbac81e71a111" +checksum = "1428d64569961b00373c503a3de306656e94ef1f2a474e93fd41a6daae0d6ac7" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", "serde", ] [[package]] name = "alloy-rpc-types-admin" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4e30339fff15d53a3a258a7add476c7d24b61d6f4a71476cc39c8b567666772" +checksum = "b1d25e16c2be6518be9274ab16fe19190666d4330d0713aa14938f593ddb0098" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -489,36 +628,47 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10d06300df4a87d960add35909240fc72da355dd2ac926fa6999f9efafbdc5a7" +checksum = "d721727cc493a58bd197a3ebbd42b88c0393c1f30da905bb7a31686c820f4c2d" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", "serde", ] [[package]] name = "alloy-rpc-types-any" -version = "0.11.1" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca445cef0eb6c2cf51cfb4e214fbf1ebd00893ae2e6f3b944c8101b07990f988" +dependencies = [ + "alloy-consensus-any 0.9.2", + "alloy-rpc-types-eth 0.9.2", + "alloy-serde 0.9.2", +] + +[[package]] +name = "alloy-rpc-types-any" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "318ae46dd12456df42527c3b94c1ae9001e1ceb707f7afe2c7807ac4e49ebad9" +checksum = "66e119337400d8b0348e1576ab37ffa56d1a04cbc977a84d4fa0a527d7cb0c21" dependencies = [ - "alloy-consensus-any", - "alloy-rpc-types-eth", + "alloy-consensus-any 0.11.0", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", ] [[package]] name = "alloy-rpc-types-beacon" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799103aa44270c7bea076ec5d3d7b6c6d29557ab5485c91a74d3068327adb485" +checksum = "9deadb4c8927dc702b58c8fb675f9fb88782c4c9c95096682058c1574141b8b7" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "ethereum_ssz", "ethereum_ssz_derive", "serde", @@ -528,9 +678,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2834b7012054cb2f90ee9893b7cc97702edca340ec1ef386c30c42e55e6cd691" +checksum = "fea98e1c4ac005ffe5f8691164f5f2ef5ee8dda50b1fdba173d44892141909e2" dependencies = [ "alloy-primitives", "serde", @@ -538,11 +688,27 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "0.11.1" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f821f30344862a0b6eb9a1c2eb91dfb2ff44c7489f37152a526cdcab79264" +dependencies = [ + "alloy-consensus 0.9.2", + "alloy-eips 0.9.2", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.9.2", + "derive_more", + "serde", + "strum", +] + +[[package]] +name = "alloy-rpc-types-engine" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83dde9fcf1ccb9b815cc0c89bba26bbbbaae5150a53ae624ed0fc63cb3676c1" +checksum = "b582c59b6f493d9b15bea32f44f662fa6749e5464ef5305d8429a864ace60684" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -554,7 +720,27 @@ dependencies = [ "jsonwebtoken", "rand 0.8.5", "serde", - "strum 0.26.3", + "strum", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0938bc615c02421bd86c1733ca7205cc3d99a122d9f9bff05726bd604b76a5c2" +dependencies = [ + "alloy-consensus 0.9.2", + "alloy-consensus-any 0.9.2", + "alloy-eips 0.9.2", + "alloy-network-primitives 0.9.2", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.9.2", + "alloy-sol-types", + "itertools 0.13.0", + "serde", + "serde_json", + "thiserror 2.0.11", ] [[package]] @@ -563,10 +749,10 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b4dbee4d82f8a22dde18c28257bed759afeae7ba73da4a1479a039fd1445d04" dependencies = [ - "alloy-consensus", - "alloy-consensus-any", + "alloy-consensus 0.11.1", + "alloy-consensus-any 0.11.0", "alloy-eips 0.11.1", - "alloy-network-primitives", + "alloy-network-primitives 0.11.1", "alloy-primitives", "alloy-rlp", "alloy-serde 0.11.1", @@ -581,13 +767,13 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418eb6584edd695dfe496dda85a19102c1ae4838f142efce11e2463ed2288d71" +checksum = "076b5ed023c0b0e025566cfc570b51a6fd975935c982617c130ca98dcb0c1390" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", "serde", "serde_json", @@ -595,12 +781,12 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd951155515fa452a2ca4b5434d4b3ab742bcd3d1d1b9a91704bcef5b8d2604" +checksum = "ac383c60b09660b7695a4f210cd11ab05887d058dfc669efd814904dbbaead82" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", "serde", "serde_json", @@ -609,12 +795,12 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21d8dd5bd94993eda3d56a8c4c0d693548183a35462523ffc4385c0b020d3b0c" +checksum = "ac39b1a583bb59dcf7d856604867acf704a7cf70b76a42f895652d566aa6f17c" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", "serde", ] @@ -643,6 +829,20 @@ dependencies = [ "serde_json", ] +[[package]] +name = "alloy-signer" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bfa395ad5cc952c82358d31e4c68b27bf4a89a5456d9b27e226e77dac50e4ff" +dependencies = [ + "alloy-primitives", + "async-trait", + "auto_impl", + "elliptic-curve", + "k256", + "thiserror 2.0.11", +] + [[package]] name = "alloy-signer" version = "0.11.1" @@ -660,14 +860,14 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe8f78cd6b7501c7e813a1eb4a087b72d23af51f5bb66d4e948dc840bdd207d8" +checksum = "39163b956c81e8fd9605194d6b5b92dd93b0e0252810e69f9a4cebe3a8614f46" dependencies = [ - "alloy-consensus", - "alloy-network", + "alloy-consensus 0.11.1", + "alloy-network 0.11.1", "alloy-primitives", - "alloy-signer", + "alloy-signer 0.11.1", "async-trait", "coins-bip32", "coins-bip39", @@ -678,9 +878,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2708e27f58d747423ae21d31b7a6625159bd8d867470ddd0256f396a68efa11" +checksum = "13f28f2131dc3a7b8e2cda882758ad4d5231ca26281b9861d4b18c700713e2da" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -692,9 +892,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6b7984d7e085dec382d2c5ef022b533fcdb1fe6129200af30ebf5afddb6a361" +checksum = "1ee2da033256a3b27131c030933eab0460a709fbcc4d4bd57bf9a5650b2441c5" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -710,9 +910,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d6a9fc4ed1a3c70bdb2357bec3924551c1a59f24e5a04a74472c755b37f87d" +checksum = "4e9d9918b0abb632818bf27e2dfb86b209be8433baacf22100b190bbc0904bd4" dependencies = [ "const-hex", "dunce", @@ -725,9 +925,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1b3e9a48a6dd7bb052a111c8d93b5afc7956ed5e2cb4177793dc63bb1d2a36" +checksum = "a971129d242338d92009470a2f750d3b2630bc5da00a40a94d51f5d456b5712f" dependencies = [ "serde", "winnow", @@ -735,9 +935,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6044800da35c38118fd4b98e18306bd3b91af5dedeb54c1b768cf1b4fb68f549" +checksum = "75f306fc801b3aa2e3c4785b7b5252ec8b19f77b30e3b75babfd23849c81bd8c" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -748,11 +948,31 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.11.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8d762eadce3e9b65eac09879430c6f4fce3736cac3cac123f9b1bf435ddd13" +checksum = "d17722a198f33bbd25337660787aea8b8f57814febb7c746bc30407bdfc39448" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 0.9.2", + "base64 0.22.1", + "futures-util", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror 2.0.11", + "tokio", + "tower 0.5.2", + "tracing", + "url", + "wasmtimer", +] + +[[package]] +name = "alloy-transport" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40e2f34fcd849676c8fe274a6e72f0664dfede7ce06d12daa728d2e72f1b4393" +dependencies = [ + "alloy-json-rpc 0.11.0", "base64 0.22.1", "futures-utils-wasm", "serde", @@ -767,13 +987,23 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.11.1" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1509599021330a31c4a6816b655e34bf67acb1cc03c564e09fd8754ff6c5de" +dependencies = [ + "alloy-transport 0.9.2", + "url", +] + +[[package]] +name = "alloy-transport-http" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20819c4cb978fb39ce6ac31991ba90f386d595f922f42ef888b4a18be190713e" +checksum = "6e291c97c3c0ebb5d03c34e3a55c0f7c5bfa307536a2efaaa6fae4b3a4d09851" dependencies = [ - "alloy-json-rpc", - "alloy-rpc-types-engine", - "alloy-transport", + "alloy-json-rpc 0.11.0", + "alloy-rpc-types-engine 0.11.0", + "alloy-transport 0.11.0", "http-body-util", "hyper", "hyper-util", @@ -787,13 +1017,13 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e88304aa8b796204e5e2500dfe235933ed692745e3effd94c3733643db6d218" +checksum = "8d3e991f40d2d81c6ee036a34d81127bfec5fadf7e649791b5225181126c1959" dependencies = [ - "alloy-json-rpc", + "alloy-json-rpc 0.11.0", "alloy-pubsub", - "alloy-transport", + "alloy-transport 0.11.0", "bytes", "futures", "interprocess", @@ -807,12 +1037,12 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9653ea9aa06d0e02fcbe2f04f1c47f35a85c378ccefa98e54ae85210bc8bbfa" +checksum = "fc8c544f7dc764735664756805f8b8b770020cc295a0b96b09cbefd099c172c7" dependencies = [ "alloy-pubsub", - "alloy-transport", + "alloy-transport 0.11.0", "futures", "http", "rustls", @@ -1188,9 +1418,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backon" -version = "1.4.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49fef586913a57ff189f25c9b3d034356a5bf6b3fa9a7f067588fe1698ba1f5d" +checksum = "ba5289ec98f68f28dd809fd601059e6aa908bb8f6108620930828283d4ee23d7" dependencies = [ "fastrand", "tokio", @@ -1332,16 +1562,15 @@ dependencies = [ [[package]] name = "blake3" -version = "1.6.0" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1230237285e3e10cde447185e8975408ae24deaa67205ce684805c25bc0c7937" +checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if", "constant_time_eq", - "memmap2", ] [[package]] @@ -1373,9 +1602,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.14" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47c79a94619fade3c0b887670333513a67ac28a6a7e653eb260bf0d4103db38d" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" dependencies = [ "cc", "glob", @@ -1520,9 +1749,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.14" +version = "1.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3d1b2e905a3a7b00a6141adb0e4c0bb941d11caf55349d863942a1cc44e3c9" +checksum = "c7777341816418c02e033934a09f20dc0ccaf65a5201ef8a450ae0105a573fda" dependencies = [ "jobserver", "libc", @@ -1594,9 +1823,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.30" +version = "4.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92b7b18d71fad5313a1e320fa9897994228ce274b60faa4d694fe0ea89cd9e6d" +checksum = "3e77c3243bd94243c03672cb5154667347c457ca271254724f9f393aee1c05ff" dependencies = [ "clap_builder", "clap_derive", @@ -1604,9 +1833,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.30" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35db2071778a7344791a4fb4f95308b5673d219dee3ae348b86642574ecc90c" +checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" dependencies = [ "anstream", "anstyle", @@ -2394,9 +2623,9 @@ dependencies = [ [[package]] name = "equivalent" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" @@ -2475,17 +2704,6 @@ dependencies = [ "bytes", ] -[[package]] -name = "fastrlp" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - [[package]] name = "fdlimit" version = "0.3.0" @@ -2817,9 +3035,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.8" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", "bytes", @@ -3826,12 +4044,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "libm" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" - [[package]] name = "libp2p-identity" version = "0.2.10" @@ -4134,9 +4346,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b1c9bd4fe1f0f8b387f6eb9eb3b4a1aa26185e5750efb9140301703f62cd1b" +checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" dependencies = [ "adler2", ] @@ -4376,7 +4588,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", - "libm", ] [[package]] @@ -4453,11 +4664,11 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.10.4" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc796860410e85a9cd881ee074c3dc0120b90696d82d09348ebb563d4ade67e4" +checksum = "621e69964165285ce750bf7ba961707e26c31df9f0b25652d6219dcee1f7f5b5" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -4471,15 +4682,13 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types-engine" -version = "0.10.4" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24a03ea4f6374aa13524753136eeceee76196acad6b1306399ab8f1856872384" +checksum = "b2e4fe1929b0e39130da37cb975c98d70418904ba7991a061799ad971dbd09fe" dependencies = [ - "alloy-consensus", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", - "derive_more", + "alloy-rpc-types-engine 0.11.0", "ethereum_ssz", "op-alloy-consensus", "snap", @@ -4957,9 +5166,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.10" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e46f3055866785f6b92bc6164b76be02ca8f2eb4b002c0354b28cf4c119e5944" +checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" dependencies = [ "cfg_aliases", "libc", @@ -5003,8 +5212,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.1", - "zerocopy 0.8.18", + "rand_core 0.9.0", + "zerocopy 0.8.17", ] [[package]] @@ -5024,7 +5233,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.1", + "rand_core 0.9.0", ] [[package]] @@ -5038,12 +5247,12 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88e0da7a2c97baa202165137c158d0a2e824ac465d13d81046727b34cb247d3" +checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff" dependencies = [ "getrandom 0.3.1", - "zerocopy 0.8.18", + "zerocopy 0.8.17", ] [[package]] @@ -5078,8 +5287,8 @@ dependencies = [ "itertools 0.13.0", "lru 0.12.5", "paste", - "strum 0.26.3", - "strum_macros 0.26.4", + "strum", + "strum_macros", "unicode-segmentation", "unicode-truncate", "unicode-width 0.1.14", @@ -5087,9 +5296,9 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "11.4.0" +version = "11.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "529468c1335c1c03919960dfefdb1b3648858c20d7ec2d0663e728e4a717efbc" +checksum = "c6928fa44c097620b706542d428957635951bade7143269085389d42c8a4927e" dependencies = [ "bitflags 2.8.0", ] @@ -5242,12 +5451,12 @@ dependencies = [ [[package]] name = "reth-chain-state" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-signer", + "alloy-signer 0.11.1", "alloy-signer-local", "derive_more", "metrics", @@ -5271,10 +5480,10 @@ dependencies = [ [[package]] name = "reth-chainspec" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-chains", - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-genesis", "alloy-primitives", @@ -5290,7 +5499,7 @@ dependencies = [ [[package]] name = "reth-cli" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-genesis", "clap", @@ -5304,10 +5513,10 @@ dependencies = [ [[package]] name = "reth-cli-commands" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "ahash", - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -5325,7 +5534,7 @@ dependencies = [ "reth-cli", "reth-cli-runner", "reth-cli-util", - "reth-codecs", + "reth-codecs 1.1.5", "reth-config", "reth-consensus", "reth-db", @@ -5365,7 +5574,7 @@ dependencies = [ [[package]] name = "reth-cli-runner" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "reth-tasks", "tokio", @@ -5375,7 +5584,7 @@ dependencies = [ [[package]] name = "reth-cli-util" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -5392,9 +5601,9 @@ dependencies = [ [[package]] name = "reth-codecs" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-genesis", "alloy-primitives", @@ -5403,15 +5612,43 @@ dependencies = [ "bytes", "modular-bitfield", "op-alloy-consensus", - "reth-codecs-derive", + "reth-codecs-derive 1.1.5", "serde", "visibility", ] +[[package]] +name = "reth-codecs" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" +dependencies = [ + "alloy-consensus 0.11.1", + "alloy-eips 0.11.1", + "alloy-genesis", + "alloy-primitives", + "alloy-trie", + "bytes", + "modular-bitfield", + "op-alloy-consensus", + "reth-codecs-derive 1.2.0", + "serde", +] + [[package]] name = "reth-codecs-derive" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "syn 2.0.98", +] + +[[package]] +name = "reth-codecs-derive" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" dependencies = [ "convert_case", "proc-macro2", @@ -5422,7 +5659,7 @@ dependencies = [ [[package]] name = "reth-config" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "eyre", "humantime-serde", @@ -5436,9 +5673,9 @@ dependencies = [ [[package]] name = "reth-consensus" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "auto_impl", @@ -5449,9 +5686,9 @@ dependencies = [ [[package]] name = "reth-consensus-common" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "reth-chainspec", @@ -5462,14 +5699,14 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-provider", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-provider 0.11.0", + "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-eth 0.11.1", "auto_impl", "eyre", "futures", @@ -5486,9 +5723,9 @@ dependencies = [ [[package]] name = "reth-db" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-primitives", "bytes", "derive_more", @@ -5510,7 +5747,7 @@ dependencies = [ "reth-trie-common", "rustc-hash 2.1.1", "serde", - "strum 0.26.3", + "strum", "sysinfo", "tempfile", "thiserror 2.0.11", @@ -5519,9 +5756,9 @@ dependencies = [ [[package]] name = "reth-db-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-genesis", "alloy-primitives", "arbitrary", @@ -5531,7 +5768,7 @@ dependencies = [ "modular-bitfield", "parity-scale-codec", "proptest", - "reth-codecs", + "reth-codecs 1.1.5", "reth-db-models", "reth-optimism-primitives", "reth-primitives", @@ -5548,15 +5785,15 @@ dependencies = [ [[package]] name = "reth-db-common" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-genesis", "alloy-primitives", "boyer-moore-magiclen", "eyre", "reth-chainspec", - "reth-codecs", + "reth-codecs 1.1.5", "reth-config", "reth-db", "reth-db-api", @@ -5577,7 +5814,7 @@ dependencies = [ [[package]] name = "reth-db-models" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -5585,7 +5822,7 @@ dependencies = [ "bytes", "modular-bitfield", "proptest", - "reth-codecs", + "reth-codecs 1.1.5", "reth-primitives-traits", "serde", ] @@ -5593,7 +5830,7 @@ dependencies = [ [[package]] name = "reth-discv4" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5619,7 +5856,7 @@ dependencies = [ [[package]] name = "reth-discv5" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5643,7 +5880,7 @@ dependencies = [ [[package]] name = "reth-dns-discovery" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "data-encoding", @@ -5667,9 +5904,9 @@ dependencies = [ [[package]] name = "reth-downloaders" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -5702,16 +5939,16 @@ dependencies = [ [[package]] name = "reth-e2e-test-utils" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", - "alloy-network", + "alloy-network 0.11.1", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-signer", + "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-eth 0.11.1", + "alloy-signer 0.11.1", "alloy-signer-local", "derive_more", "eyre", @@ -5750,7 +5987,7 @@ dependencies = [ [[package]] name = "reth-ecies" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "aes", "alloy-primitives", @@ -5781,11 +6018,11 @@ dependencies = [ [[package]] name = "reth-engine-local" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "eyre", "futures-util", "reth-chainspec", @@ -5812,12 +6049,12 @@ dependencies = [ [[package]] name = "reth-engine-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "futures", "reth-errors", "reth-execution-types", @@ -5834,7 +6071,7 @@ dependencies = [ [[package]] name = "reth-engine-service" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "futures", "pin-project", @@ -5857,13 +6094,13 @@ dependencies = [ [[package]] name = "reth-engine-tree" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "derive_more", "futures", "metrics", @@ -5906,12 +6143,12 @@ dependencies = [ [[package]] name = "reth-engine-util" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "eyre", "futures", "itertools 0.13.0", @@ -5941,7 +6178,7 @@ dependencies = [ [[package]] name = "reth-errors" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -5953,7 +6190,7 @@ dependencies = [ [[package]] name = "reth-eth-wire" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-chains", "alloy-primitives", @@ -5962,7 +6199,7 @@ dependencies = [ "derive_more", "futures", "pin-project", - "reth-codecs", + "reth-codecs 1.1.5", "reth-ecies", "reth-eth-wire-types", "reth-ethereum-forks", @@ -5981,17 +6218,17 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-chains", - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", "bytes", "derive_more", "reth-chainspec", - "reth-codecs-derive", + "reth-codecs-derive 1.1.5", "reth-ethereum-forks", "reth-ethereum-primitives", "reth-primitives-traits", @@ -6002,7 +6239,7 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "eyre", "reth-chainspec", @@ -6012,9 +6249,9 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "reth-chainspec", @@ -6028,12 +6265,12 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "reth-chainspec", "reth-engine-primitives", "reth-payload-primitives", @@ -6046,7 +6283,7 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -6062,9 +6299,9 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -6074,7 +6311,7 @@ dependencies = [ "derive_more", "modular-bitfield", "rand 0.8.5", - "reth-codecs", + "reth-codecs 1.1.5", "reth-primitives-traits", "reth-zstd-compressors", "revm-primitives", @@ -6085,7 +6322,7 @@ dependencies = [ [[package]] name = "reth-etl" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "rayon", "reth-db-api", @@ -6095,9 +6332,9 @@ dependencies = [ [[package]] name = "reth-evm" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "auto_impl", @@ -6121,7 +6358,7 @@ dependencies = [ [[package]] name = "reth-execution-errors" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -6136,9 +6373,9 @@ dependencies = [ [[package]] name = "reth-execution-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "reth-execution-errors", @@ -6154,9 +6391,9 @@ dependencies = [ [[package]] name = "reth-exex" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "eyre", @@ -6191,7 +6428,7 @@ dependencies = [ [[package]] name = "reth-exex-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -6206,7 +6443,7 @@ dependencies = [ [[package]] name = "reth-fs-util" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "serde", "serde_json", @@ -6216,9 +6453,9 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-debug", @@ -6243,7 +6480,7 @@ dependencies = [ [[package]] name = "reth-ipc" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "async-trait", "bytes", @@ -6264,7 +6501,7 @@ dependencies = [ [[package]] name = "reth-libmdbx" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "bitflags 2.8.0", "byteorder", @@ -6281,7 +6518,7 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "bindgen", "cc", @@ -6290,7 +6527,7 @@ dependencies = [ [[package]] name = "reth-metrics" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "futures", "metrics", @@ -6302,7 +6539,7 @@ dependencies = [ [[package]] name = "reth-net-banlist" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", ] @@ -6310,7 +6547,7 @@ dependencies = [ [[package]] name = "reth-net-nat" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "futures-util", "if-addrs", @@ -6324,9 +6561,9 @@ dependencies = [ [[package]] name = "reth-network" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -6379,7 +6616,7 @@ dependencies = [ [[package]] name = "reth-network-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "alloy-rpc-types-admin", @@ -6402,9 +6639,9 @@ dependencies = [ [[package]] name = "reth-network-p2p" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "auto_impl", @@ -6425,7 +6662,7 @@ dependencies = [ [[package]] name = "reth-network-peers" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6440,7 +6677,7 @@ dependencies = [ [[package]] name = "reth-network-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -6454,7 +6691,7 @@ dependencies = [ [[package]] name = "reth-nippy-jar" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "anyhow", "bincode", @@ -6471,9 +6708,9 @@ dependencies = [ [[package]] name = "reth-node-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "eyre", "reth-consensus", "reth-db-api", @@ -6492,9 +6729,9 @@ dependencies = [ [[package]] name = "reth-node-builder" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rpc-types", @@ -6554,12 +6791,12 @@ dependencies = [ [[package]] name = "reth-node-core" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "clap", "derive_more", "dirs-next", @@ -6593,7 +6830,7 @@ dependencies = [ "secp256k1", "serde", "shellexpand", - "strum 0.26.3", + "strum", "thiserror 2.0.11", "toml", "tracing", @@ -6603,12 +6840,12 @@ dependencies = [ [[package]] name = "reth-node-events" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "derive_more", "futures", "humantime", @@ -6627,7 +6864,7 @@ dependencies = [ [[package]] name = "reth-node-metrics" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "eyre", "http", @@ -6648,7 +6885,7 @@ dependencies = [ [[package]] name = "reth-node-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "reth-chainspec", "reth-db-api", @@ -6661,9 +6898,9 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -6672,7 +6909,7 @@ dependencies = [ "derive_more", "op-alloy-consensus", "rand 0.8.5", - "reth-codecs", + "reth-codecs 1.1.5", "reth-primitives-traits", "reth-zstd-compressors", "revm-primitives", @@ -6683,9 +6920,9 @@ dependencies = [ [[package]] name = "reth-payload-builder" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-primitives", "alloy-rpc-types", "async-trait", @@ -6706,9 +6943,9 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "async-trait", "pin-project", "reth-payload-primitives", @@ -6720,11 +6957,11 @@ dependencies = [ [[package]] name = "reth-payload-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "op-alloy-rpc-types-engine", "reth-chain-state", "reth-chainspec", @@ -6739,9 +6976,9 @@ dependencies = [ [[package]] name = "reth-payload-util" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-primitives", "reth-primitives", ] @@ -6749,7 +6986,7 @@ dependencies = [ [[package]] name = "reth-payload-validator" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-rpc-types", "reth-chainspec", @@ -6760,9 +6997,9 @@ dependencies = [ [[package]] name = "reth-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "arbitrary", "c-kzg", "once_cell", @@ -6775,9 +7012,9 @@ dependencies = [ [[package]] name = "reth-primitives-traits" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-genesis", "alloy-primitives", @@ -6795,9 +7032,9 @@ dependencies = [ "proptest", "proptest-arbitrary-interop", "rayon", - "reth-codecs", + "reth-codecs 1.1.5", "revm-primitives", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.1.5", "secp256k1", "serde", "serde_with", @@ -6807,12 +7044,12 @@ dependencies = [ [[package]] name = "reth-provider" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "auto_impl", "dashmap", "eyre", @@ -6823,7 +7060,7 @@ dependencies = [ "rayon", "reth-chain-state", "reth-chainspec", - "reth-codecs", + "reth-codecs 1.1.5", "reth-db", "reth-db-api", "reth-errors", @@ -6844,7 +7081,7 @@ dependencies = [ "reth-trie", "reth-trie-db", "revm", - "strum 0.26.3", + "strum", "tokio", "tracing", ] @@ -6852,9 +7089,9 @@ dependencies = [ [[package]] name = "reth-prune" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "itertools 0.13.0", @@ -6881,13 +7118,13 @@ dependencies = [ [[package]] name = "reth-prune-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "arbitrary", "derive_more", "modular-bitfield", - "reth-codecs", + "reth-codecs 1.1.5", "serde", "thiserror 2.0.11", ] @@ -6895,7 +7132,7 @@ dependencies = [ [[package]] name = "reth-revm" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -6909,26 +7146,26 @@ dependencies = [ [[package]] name = "reth-rpc" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-dyn-abi", "alloy-eips 0.11.1", "alloy-genesis", - "alloy-network", + "alloy-network 0.11.1", "alloy-primitives", "alloy-rlp", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-beacon", "alloy-rpc-types-debug", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-eth 0.11.1", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", "alloy-serde 0.11.1", - "alloy-signer", + "alloy-signer 0.11.1", "alloy-signer-local", "async-trait", "derive_more", @@ -6979,18 +7216,18 @@ dependencies = [ [[package]] name = "reth-rpc-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", - "alloy-json-rpc", + "alloy-json-rpc 0.11.0", "alloy-primitives", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-anvil", "alloy-rpc-types-beacon", "alloy-rpc-types-debug", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-eth 0.11.1", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", @@ -7004,10 +7241,10 @@ dependencies = [ [[package]] name = "reth-rpc-builder" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-network", - "alloy-provider", + "alloy-network 0.11.1", + "alloy-provider 0.11.0", "http", "jsonrpsee", "metrics", @@ -7042,11 +7279,11 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "async-trait", "jsonrpsee-core", "jsonrpsee-types", @@ -7072,16 +7309,16 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-dyn-abi", "alloy-eips 0.11.1", - "alloy-json-rpc", - "alloy-network", + "alloy-json-rpc 0.11.0", + "alloy-network 0.11.1", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-rpc-types-mev", "alloy-serde 0.11.1", "async-trait", @@ -7116,12 +7353,12 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-sol-types", "derive_more", "futures", @@ -7159,9 +7396,9 @@ dependencies = [ [[package]] name = "reth-rpc-layer" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "http", "jsonrpsee-http-client", "pin-project", @@ -7173,29 +7410,29 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "jsonrpsee-core", "jsonrpsee-types", "reth-errors", "reth-network-api", "serde", - "strum 0.26.3", + "strum", ] [[package]] name = "reth-rpc-types-compat" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-eth 0.11.1", "jsonrpsee-types", "reth-primitives", "reth-primitives-traits", @@ -7205,10 +7442,10 @@ dependencies = [ [[package]] name = "reth-scroll-chainspec" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-chains", - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-genesis", "alloy-primitives", @@ -7228,7 +7465,7 @@ dependencies = [ [[package]] name = "reth-scroll-cli" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "clap", "eyre", @@ -7250,7 +7487,7 @@ dependencies = [ [[package]] name = "reth-scroll-consensus" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "revm", ] @@ -7258,13 +7495,13 @@ dependencies = [ [[package]] name = "reth-scroll-engine-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "reth-chain-state", "reth-chainspec", "reth-engine-primitives", @@ -7283,9 +7520,9 @@ dependencies = [ [[package]] name = "reth-scroll-evm" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "derive_more", "reth-chainspec", @@ -7301,7 +7538,7 @@ dependencies = [ "reth-scroll-primitives", "revm", "revm-primitives", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.1.5", "thiserror 2.0.11", "tracing", ] @@ -7309,7 +7546,7 @@ dependencies = [ [[package]] name = "reth-scroll-forks" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-chains", "alloy-primitives", @@ -7321,12 +7558,12 @@ dependencies = [ [[package]] name = "reth-scroll-node" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "eyre", "reth-consensus", "reth-db", @@ -7352,7 +7589,7 @@ dependencies = [ "reth-transaction-pool", "reth-trie-db", "revm", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.1.5", "scroll-alloy-rpc-types-engine", "thiserror 2.0.11", "tokio", @@ -7361,7 +7598,7 @@ dependencies = [ [[package]] name = "reth-scroll-payload" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "futures-util", "reth-payload-builder", @@ -7371,9 +7608,9 @@ dependencies = [ [[package]] name = "reth-scroll-primitives" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -7384,11 +7621,11 @@ dependencies = [ "once_cell", "proptest", "rand 0.8.5", - "reth-codecs", + "reth-codecs 1.1.5", "reth-primitives-traits", "reth-zstd-compressors", "revm-primitives", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.1.5", "secp256k1", "serde", ] @@ -7396,12 +7633,12 @@ dependencies = [ [[package]] name = "reth-scroll-rpc" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "jsonrpsee-types", "parking_lot", "reth-chainspec", @@ -7422,9 +7659,9 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "revm", - "scroll-alloy-consensus", - "scroll-alloy-network", - "scroll-alloy-rpc-types", + "scroll-alloy-consensus 1.1.5", + "scroll-alloy-network 1.1.5", + "scroll-alloy-rpc-types 1.1.5", "thiserror 2.0.11", "tokio", ] @@ -7432,9 +7669,9 @@ dependencies = [ [[package]] name = "reth-stages" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "bincode", @@ -7445,7 +7682,7 @@ dependencies = [ "rayon", "reqwest", "reth-chainspec", - "reth-codecs", + "reth-codecs 1.1.5", "reth-config", "reth-consensus", "reth-db", @@ -7477,7 +7714,7 @@ dependencies = [ [[package]] name = "reth-stages-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -7504,13 +7741,13 @@ dependencies = [ [[package]] name = "reth-stages-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "arbitrary", "bytes", "modular-bitfield", - "reth-codecs", + "reth-codecs 1.1.5", "reth-trie-common", "serde", ] @@ -7518,12 +7755,12 @@ dependencies = [ [[package]] name = "reth-static-file" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "parking_lot", "rayon", - "reth-codecs", + "reth-codecs 1.1.5", "reth-db", "reth-db-api", "reth-primitives-traits", @@ -7539,24 +7776,24 @@ dependencies = [ [[package]] name = "reth-static-file-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "clap", "derive_more", "serde", - "strum 0.26.3", + "strum", ] [[package]] name = "reth-storage-api" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "auto_impl", "reth-chainspec", "reth-db", @@ -7576,7 +7813,7 @@ dependencies = [ [[package]] name = "reth-storage-errors" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", @@ -7592,7 +7829,7 @@ dependencies = [ [[package]] name = "reth-tasks" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "auto_impl", "dyn-clone", @@ -7610,9 +7847,9 @@ dependencies = [ [[package]] name = "reth-testing-utils" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-genesis", "alloy-primitives", @@ -7625,7 +7862,7 @@ dependencies = [ [[package]] name = "reth-tokio-util" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "tokio", "tokio-stream", @@ -7635,7 +7872,7 @@ dependencies = [ [[package]] name = "reth-tracing" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "clap", "eyre", @@ -7650,9 +7887,9 @@ dependencies = [ [[package]] name = "reth-transaction-pool" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -7690,9 +7927,9 @@ dependencies = [ [[package]] name = "reth-trie" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -7716,12 +7953,12 @@ dependencies = [ [[package]] name = "reth-trie-common" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", "alloy-trie", "arbitrary", @@ -7731,7 +7968,7 @@ dependencies = [ "itertools 0.13.0", "nybbles", "plain_hasher", - "reth-codecs", + "reth-codecs 1.1.5", "reth-primitives-traits", "serde", "serde_with", @@ -7740,7 +7977,7 @@ dependencies = [ [[package]] name = "reth-trie-db" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7762,7 +7999,7 @@ dependencies = [ [[package]] name = "reth-trie-parallel" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7785,7 +8022,7 @@ dependencies = [ [[package]] name = "reth-trie-sparse" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7800,7 +8037,7 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "zstd", ] @@ -7826,7 +8063,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d87cdf1c0d878b48423f8a86232950657abaf72a2d0d14af609467542313b1a" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-rpc-types-trace", "alloy-sol-types", "anstyle", @@ -7896,14 +8133,15 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.9" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75ec5e92c4d8aede845126adc388046234541629e76029599ed35a003c7ed24" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if", "getrandom 0.2.15", "libc", + "spin", "untrusted", "windows-sys 0.52.0", ] @@ -7988,7 +8226,7 @@ name = "rollup-node-manager" version = "0.0.1" dependencies = [ "alloy-eips 0.9.2", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.9.2", "futures", "reth-engine-primitives", "reth-network-peers", @@ -7997,7 +8235,7 @@ dependencies = [ "reth-scroll-primitives", "reth-tasks", "reth-tokio-util", - "scroll-alloy-network", + "scroll-alloy-network 1.2.0", "scroll-alloy-provider", "scroll-engine", "scroll-network", @@ -8008,6 +8246,35 @@ dependencies = [ "tracing", ] +[[package]] +name = "rollup-node-primitives" +version = "0.0.1" +dependencies = [ + "alloy-primitives", + "alloy-rpc-types-engine 0.9.2", +] + +[[package]] +name = "rollup-node-watcher" +version = "0.0.1" +dependencies = [ + "alloy-consensus 0.9.2", + "alloy-eips 0.9.2", + "alloy-json-rpc 0.9.2", + "alloy-network 0.9.2", + "alloy-primitives", + "alloy-provider 0.9.2", + "alloy-rpc-types-eth 0.9.2", + "alloy-transport 0.9.2", + "async-trait", + "eyre", + "rand 0.9.0", + "rollup-node-primitives", + "thiserror 2.0.11", + "tokio", + "tracing", +] + [[package]] name = "route-recognizer" version = "0.3.1" @@ -8016,19 +8283,17 @@ checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] name = "ruint" -version = "1.13.1" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "825df406ec217a8116bd7b06897c6cc8f65ffefc15d030ae2c9540acc9ed50b6" +checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" dependencies = [ "alloy-rlp", "arbitrary", "ark-ff 0.3.0", "ark-ff 0.4.2", "bytes", - "fastrlp 0.3.1", - "fastrlp 0.4.0", + "fastrlp", "num-bigint", - "num-integer", "num-traits", "parity-scale-codec", "primitive-types", @@ -8107,9 +8372,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.23" +version = "0.23.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" +checksum = "9fb9263ab4eb695e42321db096e3b8fbd715a59b154d5c88d82db2175b681ba7" dependencies = [ "log", "once_cell", @@ -8269,9 +8534,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll-alloy-consensus" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", @@ -8279,8 +8544,26 @@ dependencies = [ "arbitrary", "derive_more", "modular-bitfield", - "reth-codecs", - "reth-codecs-derive", + "reth-codecs 1.1.5", + "reth-codecs-derive 1.1.5", + "serde", + "serde_with", +] + +[[package]] +name = "scroll-alloy-consensus" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" +dependencies = [ + "alloy-consensus 0.11.1", + "alloy-eips 0.11.1", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.11.1", + "derive_more", + "modular-bitfield", + "reth-codecs 1.2.0", + "reth-codecs-derive 1.2.0", "serde", "serde_with", ] @@ -8288,34 +8571,48 @@ dependencies = [ [[package]] name = "scroll-alloy-network" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ - "alloy-consensus", - "alloy-network", + "alloy-consensus 0.11.1", + "alloy-network 0.11.1", "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-signer", - "scroll-alloy-consensus", - "scroll-alloy-rpc-types", + "alloy-rpc-types-eth 0.11.1", + "alloy-signer 0.11.1", + "scroll-alloy-consensus 1.1.5", + "scroll-alloy-rpc-types 1.1.5", +] + +[[package]] +name = "scroll-alloy-network" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" +dependencies = [ + "alloy-consensus 0.11.1", + "alloy-network 0.11.1", + "alloy-primitives", + "alloy-rpc-types-eth 0.11.1", + "alloy-signer 0.11.1", + "scroll-alloy-consensus 1.2.0", + "scroll-alloy-rpc-types 1.2.0", ] [[package]] name = "scroll-alloy-provider" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", - "alloy-provider", - "alloy-rpc-client", - "alloy-rpc-types-engine", - "alloy-transport", - "alloy-transport-http", + "alloy-provider 0.11.0", + "alloy-rpc-client 0.11.0", + "alloy-rpc-types-engine 0.11.0", + "alloy-transport 0.11.0", + "alloy-transport-http 0.11.0", "async-trait", "derive_more", "eyre", "http-body-util", "reqwest", - "scroll-alloy-network", + "scroll-alloy-network 1.1.5", "scroll-alloy-rpc-types-engine", "tower 0.4.13", ] @@ -8323,16 +8620,33 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +dependencies = [ + "alloy-consensus 0.11.1", + "alloy-eips 0.11.1", + "alloy-network-primitives 0.11.1", + "alloy-primitives", + "alloy-rpc-types-eth 0.11.1", + "alloy-serde 0.11.1", + "derive_more", + "scroll-alloy-consensus 1.1.5", + "serde", + "serde_json", +] + +[[package]] +name = "scroll-alloy-rpc-types" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.11.1", "alloy-eips 0.11.1", - "alloy-network-primitives", + "alloy-network-primitives 0.11.1", "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", "derive_more", - "scroll-alloy-consensus", + "scroll-alloy-consensus 1.2.0", "serde", "serde_json", ] @@ -8340,10 +8654,10 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types-engine" version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#b4bb326eaecaf33b6452ecdf013a0122cb4f4d86" +source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.11.0", "arbitrary", "serde", ] @@ -8354,7 +8668,7 @@ version = "0.0.1" dependencies = [ "alloy-chains", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.9.2", "clap", "eyre", "futures", @@ -8382,8 +8696,8 @@ dependencies = [ "reth-tracing", "reth-transaction-pool", "rollup-node-manager", - "scroll-alloy-consensus", - "scroll-alloy-network", + "scroll-alloy-consensus 1.1.5", + "scroll-alloy-network 1.1.5", "scroll-alloy-provider", "scroll-alloy-rpc-types-engine", "scroll-engine", @@ -8402,22 +8716,20 @@ dependencies = [ "alloy-chains", "alloy-eips 0.9.2", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.9.2", "arbitrary", "async-trait", "eyre", - "reth-engine-primitives", - "reth-network-peers", "reth-payload-primitives", "reth-primitives", "reth-scroll-chainspec", "reth-scroll-engine-primitives", "reth-scroll-primitives", "reth-testing-utils", - "scroll-alloy-network", + "rollup-node-primitives", + "scroll-alloy-network 1.2.0", "scroll-alloy-provider", "scroll-alloy-rpc-types-engine", - "serde", "tokio", "tracing", ] @@ -8819,9 +9131,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.14.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" dependencies = [ "arbitrary", "serde", @@ -8899,16 +9211,7 @@ version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" dependencies = [ - "strum_macros 0.26.4", -] - -[[package]] -name = "strum" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" -dependencies = [ - "strum_macros 0.27.1", + "strum_macros", ] [[package]] @@ -8924,19 +9227,6 @@ dependencies = [ "syn 2.0.98", ] -[[package]] -name = "strum_macros" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.98", -] - [[package]] name = "substrate-bn" version = "0.6.0" @@ -8980,9 +9270,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c2de690018098e367beeb793991c7d4dc7270f42c9d2ac4ccc876c1368ca430" +checksum = "b7f6a4b9002584ea56d0a19713b65da44cbbf6070aca9ae0360577cba5c4db68" dependencies = [ "paste", "proc-macro2", @@ -9037,9 +9327,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.17.1" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" +checksum = "38c246215d7d24f48ae091a2902398798e05d978b24315d6efbc00ede9a8bb91" dependencies = [ "cfg-if", "fastrand", @@ -9228,9 +9518,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.26.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" +checksum = "be4bf6fecd69fcdede0ec680aaf474cdab988f9de6bc73d3758f0160e3b7025a" dependencies = [ "futures-util", "log", @@ -9280,9 +9570,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.24" +version = "0.22.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +checksum = "02a8b472d1a3d7c18e2d61a489aee3453fd9031c33e4f55bd533f4a7adca1bee" dependencies = [ "indexmap 2.7.1", "serde", @@ -9508,16 +9798,17 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.26.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" +checksum = "413083a99c579593656008130e29255e54dcaae495be556cc26888f211648c24" dependencies = [ + "byteorder", "bytes", "data-encoding", "http", "httparse", "log", - "rand 0.9.0", + "rand 0.8.5", "rustls", "rustls-pki-types", "sha1", @@ -9527,9 +9818,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.18.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" @@ -9575,9 +9866,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.17" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" +checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" [[package]] name = "unicode-segmentation" @@ -9674,9 +9965,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.13.2" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c1f41ffb7cf259f1ecc2876861a17e7142e63ead296f671f81f6ae85903e0d6" +checksum = "ced87ca4be083373936a67f8de945faa23b6b42384bd5b64434850802c6dccd0" dependencies = [ "getrandom 0.3.1", ] @@ -10199,9 +10490,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59690dea168f2198d1a3b0cac23b8063efcd11012f10ae4698f284808c8ef603" +checksum = "86e376c75f4f43f44db463cf729e0d3acbf954d13e22c51e26e4c264b4ab545f" dependencies = [ "memchr", ] @@ -10307,11 +10598,11 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.18" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79386d31a42a4996e3336b0919ddb90f81112af416270cff95b5f5af22b839c2" +checksum = "aa91407dacce3a68c56de03abe2760159582b846c6a4acd2f456618087f12713" dependencies = [ - "zerocopy-derive 0.8.18", + "zerocopy-derive 0.8.17", ] [[package]] @@ -10327,9 +10618,9 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.8.18" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76331675d372f91bf8d17e13afbd5fe639200b73d01f0fc748bb059f9cca2db7" +checksum = "06718a168365cad3d5ff0bb133aad346959a2074bd4a85c121255a11304a8626" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 384e0718..08364be2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -106,6 +106,7 @@ too_long_first_doc_paragraph = "allow" [workspace.dependencies] # alloy alloy-chains = { version = "0.1.32", default-features = false } +alloy-consensus = { version = "0.9.2", default-features = false } alloy-eips = { version = "0.9.2", default-features = false } alloy-primitives = { version = "0.8.15", default-features = false } alloy-rpc-types-engine = { version = "0.11.0", default-features = false } diff --git a/crates/primitives/Cargo.toml b/crates/primitives/Cargo.toml index 27966d72..36525c12 100644 --- a/crates/primitives/Cargo.toml +++ b/crates/primitives/Cargo.toml @@ -10,5 +10,6 @@ exclude.workspace = true workspace = true [dependencies] +# alloy alloy-primitives.workspace = true alloy-rpc-types-engine.workspace = true diff --git a/crates/watcher/Cargo.toml b/crates/watcher/Cargo.toml index 04e1f92c..9517d878 100644 --- a/crates/watcher/Cargo.toml +++ b/crates/watcher/Cargo.toml @@ -11,17 +11,14 @@ workspace = true [dependencies] # alloy +alloy-eips = { workspace = true, optional = true } alloy-json-rpc.workspace = true alloy-network.workspace = true alloy-primitives.workspace = true alloy-provider.workspace = true -alloy-rpc-types-engine.workspace = true alloy-rpc-types-eth.workspace = true alloy-transport.workspace = true -# rollup node -rollup-node-primitives.workspace = true - # misc async-trait.workspace = true thiserror.workspace = true @@ -29,10 +26,10 @@ tokio = { workspace = true, features = ["full"] } tracing.workspace = true [dev-dependencies] -alloy-consensus = { version = "0.9.2", features = ["arbitrary"] } +alloy-consensus = { workspace = true, features = ["arbitrary"] } +alloy-eips.workspace = true eyre.workspace = true rand = "0.9" -reth-ethereum-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false } [features] -test-utils = [] +test-utils = ["alloy-eips"] diff --git a/crates/watcher/src/error.rs b/crates/watcher/src/error.rs index fa92e475..7aff8bfc 100644 --- a/crates/watcher/src/error.rs +++ b/crates/watcher/src/error.rs @@ -9,4 +9,6 @@ pub(crate) type L1WatcherResult = Result; pub enum L1WatcherError { #[error("execution provider error: {0:?}")] Provider(#[from] RpcError), + #[error("missing block {0}")] + MissingBlock(u64), } diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index 8a45b868..b3442f45 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -1,21 +1,23 @@ //! L1 watcher for the Scroll Rollup Node. +mod contracts; mod error; #[cfg(any(test, feature = "test-utils"))] /// Common test helpers pub mod test_utils; -use alloy_network::Ethereum; -use alloy_primitives::BlockNumber; -use alloy_provider::{Network, Provider}; -use alloy_rpc_types_eth::{BlockNumberOrTag, BlockTransactionsKind, Filter, Log}; -use error::L1WatcherResult; -use rollup_node_primitives::BlockInfo; +use crate::error::L1WatcherError; use std::{ collections::{BTreeMap, VecDeque}, sync::Arc, time::Duration, }; + +use alloy_network::Ethereum; +use alloy_primitives::BlockNumber; +use alloy_provider::{Network, Provider}; +use alloy_rpc_types_eth::{BlockNumberOrTag, BlockTransactionsKind, Filter, Log}; +use error::L1WatcherResult; use tokio::sync::mpsc; /// The block range used to fetch L1 logs. @@ -35,11 +37,11 @@ pub type Block = ::BlockResponse; /// The Ethereum L1 header response. pub type Header = ::HeaderResponse; -/// The fork choice state of the L1. +/// The state of the L1. #[derive(Debug, Default, Clone)] -pub struct L1ForkchoiceState { - head: BlockInfo, - finalized: BlockInfo, +pub struct L1State { + head: u64, + finalized: u64, } /// The L1 watcher indexes L1 blocks, applying a first level of filtering via log filters. @@ -52,7 +54,7 @@ pub struct L1Watcher { /// The buffered unfinalized chain of blocks. Used to detect reorgs of the L1. unfinalized_blocks: VecDeque
, /// The L1 state info relevant to the rollup node. - forkchoice_state: L1ForkchoiceState, + l1_state: L1State, /// The latest indexed block. current_block_number: BlockNumber, /// The sender part of the channel for [`L1Notification`]. @@ -64,12 +66,14 @@ pub struct L1Watcher { /// The L1 notification type yielded by the [`L1Watcher`]. #[derive(Debug)] pub enum L1Notification { - /// A notification for a reorg of the L1. - Reorg(BTreeMap), + /// A notification for a reorg of the L1 up to a given block number. + Reorg(u64), /// A notification of a new block of interest for the rollup node. Block(Block), - /// A forkchoice update of the L1. - ForkchoiceState(L1ForkchoiceState), + /// A new block has been added to the L1. + NewBlock(u64), + /// A block has been finalized on the L1. + Finalized(u64), } impl L1Watcher @@ -85,7 +89,7 @@ where ) -> mpsc::Receiver> { let (tx, rx) = mpsc::channel(LOGS_QUERY_BLOCK_RANGE as usize); - let fetch_block_info = async |tag: BlockNumberOrTag| { + let fetch_block_number = async |tag: BlockNumberOrTag| { let block = loop { match execution_provider.get_block(tag.into(), BlockTransactionsKind::Hashes).await { @@ -96,19 +100,19 @@ where _ => unreachable!("should always be a {tag} block"), } }; - BlockInfo { number: block.header.number, hash: block.header.hash } + block.header.number }; - let forkchoice_state = L1ForkchoiceState { - head: fetch_block_info(BlockNumberOrTag::Latest).await, - finalized: fetch_block_info(BlockNumberOrTag::Finalized).await, + let l1_state = L1State { + head: fetch_block_number(BlockNumberOrTag::Latest).await, + finalized: fetch_block_number(BlockNumberOrTag::Finalized).await, }; let watcher = L1Watcher { execution_provider, unfinalized_blocks: VecDeque::with_capacity(MAX_UNFINALIZED_BLOCK_COUNT), current_block_number: start_block - 1, - forkchoice_state, + l1_state, sender: tx, filter, }; @@ -119,7 +123,7 @@ where /// Main execution loop for the [`L1Watcher`]. pub async fn run(mut self) { - let mut loop_interval = FAST_SYNC_INTERVAL; + let mut loop_interval; loop { // step the watcher. let _ = self @@ -128,9 +132,7 @@ where .inspect_err(|err| tracing::error!(target: "scroll::watcher", ?err)); // update loop interval if needed. - if let Ok(synced) = self.is_synced().await { - loop_interval = if synced { SLOW_SYNC_INTERVAL } else { FAST_SYNC_INTERVAL }; - } + loop_interval = if self.is_synced() { SLOW_SYNC_INTERVAL } else { FAST_SYNC_INTERVAL }; // sleep the appropriate amount of time. tokio::time::sleep(loop_interval).await; @@ -139,58 +141,159 @@ where /// A step of work for the [`L1Watcher`]. pub async fn step(&mut self) -> L1WatcherResult<()> { + // handle the finalized block. let finalized = self.finalized_block(false).await?; - // let position = - // self.unfinalized_blocks.drain() + self.handle_finalized_block(&finalized.header); + + // handle the latest block. + let latest = self.latest_block(false).await?; + self.handle_latest_block(&finalized.header, &latest.header).await?; + + // index the next range of blocks. + let logs = self.next_filtered_logs().await?; + + // update the latest block the l1 watcher has indexed. + self.update_current_block(&latest); Ok(()) } - /// Handle the latest block, either by adding it to - /// [`unfinalized_blocks`](field@L1Watcher::unfinalized_blocks) if it extends the chain or - /// detecting the reorg and emitting a reorg notification through the channel. - async fn handle_latest_block(&mut self) -> L1WatcherResult<()> { - let latest = self.latest_block(false).await?; - self.forkchoice_state.head = BlockInfo::new(latest.header.number, latest.header.hash); + /// Handle the finalized block: + /// - Update state and notify channel about finalization. + /// - Drain finalized blocks from state. + fn handle_finalized_block(&mut self, finalized: &Header) { + // update the state and notify on channel. + if self.l1_state.finalized < finalized.number { + self.l1_state.finalized = finalized.number; + let _ = self.sender.send(Arc::new(L1Notification::Finalized(finalized.number))); + } - // shortcircuit if self.unfinalized_blocks is empty + // shortcircuit. if self.unfinalized_blocks.is_empty() { - self.unfinalized_blocks.push_back(latest.header); - return Ok(()) + return + } + + let tail_block = self.unfinalized_blocks.back().expect("tail exists"); + if tail_block.number < finalized.number { + // drain all, the finalized block is past the tail. + let _ = self.unfinalized_blocks.drain(0..); + return } - let tail_block = self.unfinalized_blocks.back(); + let finalized_block_position = + self.unfinalized_blocks.iter().position(|header| header.hash == finalized.hash); - if tail_block.map_or(false, |last| last.hash != latest.header.hash) { - // if true, we either need to extend self.unfinalized_blocks - if tail_block.expect("tail block exists").hash == latest.header.parent_hash { - self.unfinalized_blocks.push_back(latest.header); - return Ok(()) - } + // drain all blocks up to and including the finalized block. + if let Some(position) = finalized_block_position { + self.unfinalized_blocks.drain(0..=position); + } + } - // or we have found a reorg - let reorg_position = self + /// Handle the latest block: + /// - Skip if latest matches last unfinalized block. + /// - Add to unfinalized blocks if it extends the chain. + /// - Fetch chain of unfinalized blocks and emit potential reorg otherwise. + /// - Finally, update state and notify channel about latest block. + async fn handle_latest_block( + &mut self, + finalized: &Header, + latest: &Header, + ) -> L1WatcherResult<()> { + let tail = self.unfinalized_blocks.back(); + + if tail.map_or(false, |h| h.hash == latest.hash) { + return Ok(()) + } else if tail.map_or(false, |h| h.hash == latest.parent_hash) { + // latest block extends the tip. + self.unfinalized_blocks.push_back(latest.clone()); + } else { + // chain reorged or need to backfill. + let chain = self.fetch_unfinalized_chain(finalized, latest).await?; + + let reorg_block_number = self .unfinalized_blocks .iter() - .position(|h| h.hash == latest.header.parent_hash) - .map(|pos| pos + 1) - .unwrap_or(0); - let reorged = self - .unfinalized_blocks - .drain(reorg_position..) - .map(|h| (h.number, h)) - .collect::>(); - let _ = self.sender.send(Arc::new(L1Notification::Reorg(reorged))).await; + .zip(chain.iter()) + .find(|(old, new)| old.hash != new.hash) + .map(|(old, _)| old.number - 1); + + if let Some(number) = reorg_block_number { + // reset the current block number to the reorged block number if + // we have indexed passed the reorg. + if number < self.current_block_number { + self.current_block_number = number; + } + + // send the reorg block number on the channel. + let _ = self.sender.send(Arc::new(L1Notification::Reorg(number))).await; + } - self.unfinalized_blocks.push_back(latest.header); + // set the unfinalized chain. + self.unfinalized_blocks = chain.into(); } + // Update the state and notify on the channel. + self.l1_state.head = latest.number; + let _ = self.sender.send(Arc::new(L1Notification::NewBlock(latest.number))).await; + Ok(()) } + /// Fetches the chain of unfinalized blocks up to and including the latest block, ensuring no + /// gaps are present in the chain. + async fn fetch_unfinalized_chain( + &self, + finalized: &Header, + latest: &Header, + ) -> L1WatcherResult> { + let mut current_block = latest.clone(); + let mut chain = vec![current_block.clone()]; + + // loop until we find a block contained in the chain or connected to finalized. + let mut chain = loop { + if self.unfinalized_blocks.contains(¤t_block) || + current_block.parent_hash == finalized.hash + { + break chain; + } + + let block = self + .execution_provider + .get_block((current_block.number - 1).into(), BlockTransactionsKind::Hashes) + .await? + .ok_or(L1WatcherError::MissingBlock(current_block.number - 1))?; + chain.push(block.header.clone()); + current_block = block.header; + }; + + // order new chain from lowest to highest block number. + chain.reverse(); + + // combine with the available unfinalized blocks. + let head = chain.first().expect("at least one block"); + let split_position = + self.unfinalized_blocks.iter().position(|h| h.hash == head.hash).unwrap_or(0); + let mut prefix = Vec::with_capacity(MAX_UNFINALIZED_BLOCK_COUNT); + prefix.extend(self.unfinalized_blocks.iter().take(split_position).cloned()); + prefix.append(&mut chain); + + Ok(prefix) + } + /// Returns true if the [`L1Watcher`] is synced to the head of the L1. - async fn is_synced(&self) -> L1WatcherResult { - Ok(self.current_block_number == self.execution_provider.get_block_number().await?) + fn is_synced(&self) -> bool { + self.current_block_number == self.l1_state.head + } + + /// Updates the current block number, saturating at the head of the chain. + fn update_current_block(&mut self, latest: &Block) { + let latest_block_number = latest.header.number; + let current_block_number = self.current_block_number + LOGS_QUERY_BLOCK_RANGE; + self.current_block_number = if current_block_number > latest_block_number { + latest_block_number + } else { + current_block_number + }; } /// Returns the latest L1 block. @@ -232,49 +335,48 @@ mod tests { use crate::test_utils::MockProvider; use alloy_primitives::{ private::arbitrary::{Arbitrary, Unstructured}, - Sealable, B256, + Sealable, }; - use alloy_rpc_types_eth::BlockTransactions; use rand::RngCore; fn test_l1_watcher( - unfinalized_blocks: VecDeque
, - ) -> (L1Watcher, mpsc::Sender, mpsc::Receiver>) { - let (tx_provider, rx) = mpsc::channel(LOGS_QUERY_BLOCK_RANGE as usize); - let provider = MockProvider::new(rx); - let null_block_info = BlockInfo { number: 0, hash: B256::ZERO }; + unfinalized_blocks: Vec
, + provider_blocks: Vec
, + finalized: Header, + latest: Header, + ) -> (L1Watcher, mpsc::Receiver>) { + let provider_blocks = + provider_blocks.into_iter().map(|h| Block { header: h, ..Default::default() }); + let finalized = Block { header: finalized, ..Default::default() }; + let latest = Block { header: latest, ..Default::default() }; + let provider = MockProvider::new(provider_blocks, finalized, latest); let (tx, rx) = mpsc::channel(LOGS_QUERY_BLOCK_RANGE as usize); ( L1Watcher { execution_provider: provider, - unfinalized_blocks, - forkchoice_state: L1ForkchoiceState { - head: null_block_info, - finalized: null_block_info, - }, + unfinalized_blocks: unfinalized_blocks.into(), + l1_state: L1State { head: 0, finalized: 0 }, current_block_number: 0, sender: tx, filter: Default::default(), }, - tx_provider, rx, ) } - fn random_block() -> Block { + fn random_header() -> Header { let mut bytes = [0u8; 1000]; rand::rng().fill_bytes(bytes.as_mut_slice()); let mut u = Unstructured::new(&bytes); - let block = alloy_consensus::Block::<()>::arbitrary(&mut u).expect("arbitrary block"); - Block { - header: Header::from_consensus(block.header.seal_slow(), None, None), - ..Default::default() - } + let header = alloy_consensus::Header::arbitrary(&mut u).expect("arbitrary block"); + Header::from_consensus(header.seal_slow(), None, None) } - fn test_chain(len: usize) -> (VecDeque
, Block) { - let mut headers = VecDeque::with_capacity(len); + fn test_chain(len: usize) -> (Header, Header, Vec
) { + assert!(len >= 2, "len must be greater than or equal to 2"); + + let mut headers = Vec::with_capacity(len); let mut bytes = [0u8; 1000]; rand::rng().fill_bytes(bytes.as_mut_slice()); let mut u = Unstructured::new(&bytes); @@ -289,111 +391,202 @@ mod tests { let header = Header::from_consensus(header.seal_slow(), None, None); parent_hash = header.hash; number += 1; - headers.push_back(header); + headers.push(header); } - let mut tip = random_block(); - tip.header.parent_hash = parent_hash; - tip.header.number = number; - (headers, tip) + (headers.first().unwrap().clone(), headers.last().unwrap().clone(), headers) + } + + fn fork(header: &Header, len: usize) -> Vec
{ + let mut blocks = Vec::with_capacity(len); + blocks.push(header.clone()); + + let next_header = |header: &Header| { + let mut next = random_header(); + next.parent_hash = header.hash; + next.number = header.number + 1; + next + }; + for i in 0..len - 1 { + blocks.push(next_header(&blocks[i])); + } + blocks } #[tokio::test] - async fn test_handle_latest_block_empty_unfinalized() -> eyre::Result<()> { - let (chain, block) = test_chain(0); - let (mut watcher, tx_block, _) = test_l1_watcher(chain); - tx_block.send(block.clone()).await?; + async fn test_fetch_unfinalized_chain_no_reorg() -> eyre::Result<()> { + // Given + let (finalized, latest, chain) = test_chain(21); + let unfinalized_blocks = chain[1..11].to_vec(); + let provider_blocks = chain[10..21].to_vec(); + + let (watcher, _) = test_l1_watcher( + unfinalized_blocks, + provider_blocks.clone(), + finalized.clone(), + latest.clone(), + ); - watcher.handle_latest_block().await?; - assert_eq!(watcher.unfinalized_blocks.len(), 1); - assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); + // When + let unfinalized_chain = watcher.fetch_unfinalized_chain(&finalized, &latest).await?; - assert_eq!(watcher.forkchoice_state.head.number, block.header.number); - assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); + // Then + assert_eq!(unfinalized_chain, chain[1..].to_vec()); Ok(()) } #[tokio::test] - async fn test_handle_latest_block_match_tail() -> eyre::Result<()> { - let (chain, _) = test_chain(10); - let block = Block { - header: chain.back().unwrap().clone(), - uncles: vec![], - transactions: BlockTransactions::Hashes(vec![]), - withdrawals: None, - }; - let (mut watcher, tx_block, _) = test_l1_watcher(chain); - tx_block.send(block.clone()).await?; - - watcher.handle_latest_block().await?; - assert_eq!(watcher.unfinalized_blocks.len(), 10); - assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); - - assert_eq!(watcher.forkchoice_state.head.number, block.header.number); - assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); + async fn test_fetch_unfinalized_chain_reorg() -> eyre::Result<()> { + // Given + let (finalized, _, chain) = test_chain(21); + let unfinalized_blocks = chain[1..21].to_vec(); + let mut provider_blocks = fork(&chain[10], 10); + let latest = provider_blocks[9].clone(); + + let (watcher, _) = test_l1_watcher( + unfinalized_blocks, + provider_blocks.clone(), + finalized.clone(), + latest.clone(), + ); + + // When + let unfinalized_chain = watcher.fetch_unfinalized_chain(&finalized, &latest).await?; + + // Then + let mut reorged_chain = chain[1..10].to_vec(); + reorged_chain.append(&mut provider_blocks); + assert_eq!(unfinalized_chain, reorged_chain); Ok(()) } #[tokio::test] - async fn test_handle_latest_block_not_empty_unfinalized() -> eyre::Result<()> { - let (chain, block) = test_chain(10); - let (mut watcher, tx_block, _) = test_l1_watcher(chain); - tx_block.send(block.clone()).await?; + async fn test_handle_finalized_empty() -> eyre::Result<()> { + // Given + let (finalized, latest, _) = test_chain(2); + let (mut watcher, _) = test_l1_watcher(vec![], vec![], finalized.clone(), latest); - watcher.handle_latest_block().await?; - assert_eq!(watcher.unfinalized_blocks.len(), 11); - assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); + // When + watcher.handle_finalized_block(&finalized); - assert_eq!(watcher.forkchoice_state.head.number, block.header.number); - assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); + // Then + assert_eq!(watcher.unfinalized_blocks.len(), 0); Ok(()) } #[tokio::test] - async fn test_handle_latest_block_reorg_mid() -> eyre::Result<()> { - let (chain, _) = test_chain(10); - let block = Block { - header: chain.get(5).unwrap().clone(), - uncles: vec![], - transactions: BlockTransactions::Hashes(vec![]), - withdrawals: None, - }; - let (mut watcher, tx_block, _) = test_l1_watcher(chain); - tx_block.send(block.clone()).await?; + async fn test_handle_finalize_mid() -> eyre::Result<()> { + // Given + let (_, latest, chain) = test_chain(10); + let finalized = chain[5].clone(); + let (mut watcher, _) = test_l1_watcher(chain, vec![], finalized.clone(), latest); - watcher.handle_latest_block().await?; - assert_eq!(watcher.unfinalized_blocks.len(), 6); - assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); + // When + watcher.handle_finalized_block(&finalized); - assert_eq!(watcher.forkchoice_state.head.number, block.header.number); - assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); + // Then + assert_eq!(watcher.unfinalized_blocks.len(), 4); Ok(()) } #[tokio::test] - async fn test_handle_latest_block_reorg_all() -> eyre::Result<()> { - let (chain, _) = test_chain(10); - let block = random_block(); - let (mut watcher, tx_block, mut notifications) = test_l1_watcher(chain.clone()); - tx_block.send(block.clone()).await?; - - watcher.handle_latest_block().await?; - assert_eq!(watcher.unfinalized_blocks.len(), 1); - assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); - - assert_eq!(watcher.forkchoice_state.head.number, block.header.number); - assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); - - let reorg = notifications.recv().await.unwrap(); - if let L1Notification::Reorg(reorg) = reorg.as_ref() { - assert_eq!(reorg, &BTreeMap::from_iter(chain.into_iter().map(|b| (b.number, b)))); - } else { - panic!("Expected reorg notification"); - } + async fn test_handle_finalized_end() -> eyre::Result<()> { + // Given + let (_, latest, chain) = test_chain(10); + let finalized = latest.clone(); + let (mut watcher, _) = test_l1_watcher(chain, vec![], finalized.clone(), latest); + + // When + watcher.handle_finalized_block(&finalized); + + // Then + assert_eq!(watcher.unfinalized_blocks.len(), 0); Ok(()) } + + // + // #[tokio::test] + // async fn test_handle_latest_block_match_tail() -> eyre::Result<()> { + // let chain = test_chain(10); + // let block = Block { + // header: chain.back().unwrap().clone(), + // uncles: vec![], + // transactions: BlockTransactions::Hashes(vec![]), + // withdrawals: None, + // }; + // let (mut watcher, _) = test_l1_watcher(chain, VecDeque::from(vec![block.clone()])); + // + // watcher.handle_latest_block().await?; + // assert_eq!(watcher.unfinalized_blocks.len(), 10); + // assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); + // + // assert_eq!(watcher.forkchoice_state.head.number, block.header.number); + // assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); + // + // Ok(()) + // } + // + // #[tokio::test] + // async fn test_handle_latest_block_not_empty_unfinalized() -> eyre::Result<()> { + // let chain = test_chain(10); + // let (mut watcher, _) = test_l1_watcher(chain, VecDeque::from(vec![block.clone()])); + // + // watcher.handle_latest_block().await?; + // assert_eq!(watcher.unfinalized_blocks.len(), 11); + // assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); + // + // assert_eq!(watcher.forkchoice_state.head.number, block.header.number); + // assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); + // + // Ok(()) + // } + // + // #[tokio::test] + // async fn test_handle_latest_block_reorg_mid() -> eyre::Result<()> { + // let chain, _ = test_chain(10); + // let block = Block { + // header: chain.get(5).unwrap().clone(), + // uncles: vec![], + // transactions: BlockTransactions::Hashes(vec![]), + // withdrawals: None, + // }; + // let (mut watcher, _) = test_l1_watcher(chain, VecDeque::from(vec![block.clone()])); + // + // watcher.handle_latest_block().await?; + // assert_eq!(watcher.unfinalized_blocks.len(), 6); + // assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); + // + // assert_eq!(watcher.forkchoice_state.head.number, block.header.number); + // assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); + // + // Ok(()) + // } + // + // #[tokio::test] + // async fn test_handle_latest_block_reorg_all() -> eyre::Result<()> { + // let (chain, _) = test_chain(10); + // let block = random_block(); + // let (mut watcher, mut notifications) = + // test_l1_watcher(chain.clone(), VecDeque::from(vec![block.clone()])); + // + // watcher.handle_latest_block().await?; + // assert_eq!(watcher.unfinalized_blocks.len(), 1); + // assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); + // + // assert_eq!(watcher.forkchoice_state.head.number, block.header.number); + // assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); + // + // let reorg = notifications.recv().await.unwrap(); + // if let L1Notification::Reorg(reorg) = reorg.as_ref() { + // assert_eq!(reorg, &BTreeMap::from_iter(chain.into_iter().map(|b| (b.number, b)))); + // } else { + // panic!("Expected reorg notification"); + // } + // + // Ok(()) + // } } diff --git a/crates/watcher/src/test_utils.rs b/crates/watcher/src/test_utils.rs index 1272ae77..3ba5f5c9 100644 --- a/crates/watcher/src/test_utils.rs +++ b/crates/watcher/src/test_utils.rs @@ -1,22 +1,34 @@ use crate::Block; -use std::sync::Arc; +use std::collections::HashMap; +use alloy_eips::BlockNumberOrTag; use alloy_network::Ethereum; +use alloy_primitives::BlockNumber; use alloy_provider::{Provider, RootProvider}; use alloy_rpc_types_eth::{BlockId, BlockTransactionsKind}; use alloy_transport::{BoxTransport, TransportResult}; -use tokio::sync::{mpsc, Mutex}; /// A mock implementation of the [`Provider`] trait. #[derive(Debug)] pub struct MockProvider { - blocks: Arc>>, + blocks: HashMap, + finalized_block: Block, + latest_block: Block, } impl MockProvider { - /// Returns a new [`MockProvider`] from a receiver for [`Block`]. - pub fn new(rx: mpsc::Receiver) -> Self { - Self { blocks: Arc::new(Mutex::new(rx)) } + /// Returns a new [`MockProvider`] from the iterator over blocks, the finalized and the latest + /// block. + pub fn new( + blocks: impl Iterator, + finalized_block: Block, + latest_block: Block, + ) -> Self { + Self { + blocks: blocks.map(|b| (b.header.number, b)).collect(), + finalized_block, + latest_block, + } } } @@ -28,9 +40,17 @@ impl Provider for MockProvider { async fn get_block( &self, - _block_id: BlockId, + block_id: BlockId, _kind: BlockTransactionsKind, ) -> TransportResult> { - Ok(Some(self.blocks.lock().await.recv().await.expect("missing block in channel"))) + Ok(match block_id { + BlockId::Hash(_) => unimplemented!("hash query is not supported"), + BlockId::Number(number_or_tag) => match number_or_tag { + BlockNumberOrTag::Latest => Some(self.latest_block.clone()), + BlockNumberOrTag::Finalized => Some(self.finalized_block.clone()), + BlockNumberOrTag::Number(number) => self.blocks.get(&number).cloned(), + _ => unimplemented!("can only query by number, latest or finalized"), + }, + }) } } From abd3314031f5bb5561dbc5ba0a1003629de07d15 Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Wed, 5 Mar 2025 12:50:05 +0100 Subject: [PATCH 05/63] feat(primitives): add batch and l1 transaction --- crates/primitives/src/batch.rs | 156 +++++++++++++++++++++++++++ crates/primitives/src/transaction.rs | 17 +++ 2 files changed, 173 insertions(+) create mode 100644 crates/primitives/src/batch.rs create mode 100644 crates/primitives/src/transaction.rs diff --git a/crates/primitives/src/batch.rs b/crates/primitives/src/batch.rs new file mode 100644 index 00000000..f2033b8a --- /dev/null +++ b/crates/primitives/src/batch.rs @@ -0,0 +1,156 @@ +use alloy_primitives::B256; +use derive_more; + +/// The input data for a batch. +/// +/// This is used as input for the derivation pipeline. All data remains in its raw serialized form. +/// The data is then deserialized, enriched and processed in the derivation pipeline. +#[derive(Debug, derive_more::From)] +pub enum BatchInput { + /// The input data for a batch. + BatchInputDataV1(BatchInputV1), + /// The input data for a batch including the L1 blob. + BatchInputDataV2(BatchInputV2), +} + +/// The input data for a batch. +#[derive(Debug)] +pub struct BatchInputV1 { + /// The version of the batch input data. + pub version: u8, + /// The index of the batch. + pub batch_index: u64, + /// The batch hash. + pub batch_hash: B256, + /// The L1 block number at which the batch was committed. + pub block_number: u64, + /// The parent batch header. + pub parent_batch_header: Vec, + /// The chunks in the batch. + pub chunks: Vec>, + /// The skipped L1 message bitmap. + pub skipped_l1_message_bitmap: Vec, +} + +/// The input data for a batch including the L1 blob hash. +#[derive(Debug)] +pub struct BatchInputV2 { + /// The base input data for the batch. + pub batch_input_data: BatchInputV1, + /// The L1 blob hash associated with the batch. + pub blob_hash: B256, +} + +/// A builder for the batch input. Determines the batch version based on the passed input. +#[derive(Debug, Default)] +pub struct BatchInputBuilder { + /// The version of the batch input data. + version: Option, + /// The index of the batch. + batch_index: Option, + /// The batch hash. + batch_hash: Option, + /// The L1 block number at which the batch was committed. + block_number: Option, + /// The parent batch header. + parent_batch_header: Option>, + /// The chunks in the batch. + chunks: Option>>, + /// The skipped L1 message bitmap. + skipped_l1_message_bitmap: Option>, + /// The L1 blob hashes for the batch + blob_hashes: Option>, +} + +impl BatchInputBuilder { + /// Adds a version to the builder. + pub fn with_version(mut self, version: u8) -> Self { + self.version = Some(version); + self + } + + /// Adds a batch index to the builder. + pub fn with_batch_index(mut self, batch_index: u64) -> Self { + self.batch_index = Some(batch_index); + self + } + + /// Adds a batch hash to the builder. + pub fn with_batch_hash(mut self, batch_hash: B256) -> Self { + self.batch_hash = Some(batch_hash); + self + } + + /// Adds a block number for the batch to the builder. + pub fn with_block_number(mut self, block_number: u64) -> Self { + self.block_number = Some(block_number); + self + } + + /// Adds a parent batch header to the builder. + pub fn with_parent_batch_header(mut self, parent_batch_header: Vec) -> Self { + self.parent_batch_header = Some(parent_batch_header); + self + } + + /// Adds chunks to the builder. + pub fn with_chunks(mut self, chunks: Vec>) -> Self { + self.chunks = Some(chunks); + self + } + + /// Adds skipped l1 message bitmap to the builder. + pub fn with_skipped_l1_message_bitmap(mut self, skipped_l1_message_bitmap: Vec) -> Self { + self.skipped_l1_message_bitmap = Some(skipped_l1_message_bitmap); + self + } + + /// Adds a blob hash to the builder. + pub fn with_blob_hashes(mut self, blob_hashes: Option>) -> Self { + self.blob_hashes = blob_hashes; + self + } + + /// Build the [`BatchInput`], returning [`None`] if fields haven't been correctly set. + pub fn try_build(self) -> Option { + // handle fields required for all batch inputs. + let version = self.version?; + let batch_index = self.batch_index?; + let batch_hash = self.batch_hash?; + let block_number = self.block_number?; + let parent_batch_header = self.parent_batch_header?; + + match (self.chunks, self.skipped_l1_message_bitmap, self.blob_hashes) { + (Some(chunks), Some(skipped_l1_message_bitmap), None) => Some( + BatchInputV1 { + version, + batch_index, + batch_hash, + block_number, + parent_batch_header, + chunks, + skipped_l1_message_bitmap, + } + .into(), + ), + (Some(chunks), Some(skipped_l1_message_bitmap), Some(blob)) => { + let batch_input_data = BatchInputV1 { + version, + batch_index, + batch_hash, + block_number, + parent_batch_header, + chunks, + skipped_l1_message_bitmap, + }; + let blob_hash = blob.first().cloned()?; + Some(BatchInputV2 { batch_input_data, blob_hash }.into()) + } + (None, None, Some(blobs)) => { + // TODO(greg): for now None but this will be used in Euclid. + None + } + _ => None, + } + } +} diff --git a/crates/primitives/src/transaction.rs b/crates/primitives/src/transaction.rs new file mode 100644 index 00000000..86d45ddf --- /dev/null +++ b/crates/primitives/src/transaction.rs @@ -0,0 +1,17 @@ +use scroll_alloy_consensus::TxL1Message; + +/// A L1 message that is part of the L1 message queue. +#[derive(Debug)] +pub struct L1MessageWithBlockNumber { + /// The L1 block number at which the L1 message was generated. + pub block_number: u64, + /// The L1 transaction. + pub transaction: TxL1Message, +} + +impl L1MessageWithBlockNumber { + /// Returns a new [`L1MessageWithBlockNumber`]. + pub fn new(block_number: u64, transaction: TxL1Message) -> Self { + Self { block_number, transaction } + } +} From d8c13e8028a4fa071c1f3f29d6b22e6c9e40c9f2 Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Wed, 5 Mar 2025 12:50:26 +0100 Subject: [PATCH 06/63] feat(watcher): contracts and constants --- crates/watcher/src/constants.rs | 20 +++++++ crates/watcher/src/contract.rs | 103 ++++++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 crates/watcher/src/constants.rs create mode 100644 crates/watcher/src/contract.rs diff --git a/crates/watcher/src/constants.rs b/crates/watcher/src/constants.rs new file mode 100644 index 00000000..cdc28b65 --- /dev/null +++ b/crates/watcher/src/constants.rs @@ -0,0 +1,20 @@ +use crate::contract::{CommitBatch, QueueTransaction}; +use std::sync::LazyLock; + +use alloy_primitives::{address, Address}; +use alloy_rpc_types_eth::Filter; +use alloy_sol_types::SolEvent; + +/// The address of the Scroll Rollup contract on the L1. +pub const ROLLUP_CONTRACT_ADDRESS: Address = address!("0xa13BAF47339d63B743e7Da8741db5456DAc1E556"); + +/// The address of the Scroll L1 message queue contract on the L1. +pub const L1_MESSAGE_QUEUE_CONTRACT_ADDRESS: Address = + address!("0x0d7E906BD9cAFa154b048cFa766Cc1E54E39AF9B"); + +/// The [`Filter`] used by the [`crate::L1Watcher`] to index events relevant to the rollup node. +pub const L1_WATCHER_LOG_FILTER: LazyLock = LazyLock::new(|| { + Filter::new() + .address(vec![ROLLUP_CONTRACT_ADDRESS, L1_MESSAGE_QUEUE_CONTRACT_ADDRESS]) + .event_signature(vec![QueueTransaction::SIGNATURE_HASH, CommitBatch::SIGNATURE_HASH]) +}); diff --git a/crates/watcher/src/contract.rs b/crates/watcher/src/contract.rs new file mode 100644 index 00000000..605f9e29 --- /dev/null +++ b/crates/watcher/src/contract.rs @@ -0,0 +1,103 @@ +use alloy_primitives::{Bytes, Log}; +use alloy_sol_types::{sol, SolCall, SolEvent}; +use scroll_alloy_consensus::TxL1Message; + +sol! { + // *********************EVENTS********************* + event QueueTransaction( + address indexed sender, + address indexed target, + uint256 value, + uint64 queueIndex, + uint256 gasLimit, + bytes data + ); + + event CommitBatch(uint256 indexed batchIndex, bytes32 indexed batchHash); + + // *********************FUNCTION********************* + function commitBatch( + uint8 version, + bytes calldata parentBatchHeader, + bytes[] memory chunks, + bytes calldata skippedL1MessageBitmap + ) external; + + function commitBatchWithBlobProof( + uint8 version, + bytes calldata parentBatchHeader, + bytes[] memory chunks, + bytes calldata skippedL1MessageBitmap, + bytes calldata blobDataProof + ) external; +} + +/// A call to commit a batch on the L1 Scroll Rollup contract. +#[derive(derive_more::From)] +pub(super) enum CommitBatchCall { + /// A plain call to commit the batch. + CommitBatch(commitBatchCall), + /// A call to commit the batch with a blob proof. + CommitBatchWithBlobProof(commitBatchWithBlobProofCall), +} + +impl CommitBatchCall { + pub(crate) fn version(&self) -> u8 { + match self { + CommitBatchCall::CommitBatch(b) => b.version, + CommitBatchCall::CommitBatchWithBlobProof(b) => b.version, + } + } + pub(crate) fn parent_batch_header(&self) -> Vec { + let header = match self { + CommitBatchCall::CommitBatch(b) => &b.parentBatchHeader, + CommitBatchCall::CommitBatchWithBlobProof(b) => &b.parentBatchHeader, + }; + header.to_vec() + } + pub(crate) fn chunks(&self) -> Vec> { + let chunks = match self { + CommitBatchCall::CommitBatch(b) => &b.chunks, + CommitBatchCall::CommitBatchWithBlobProof(b) => &b.chunks, + }; + chunks.iter().map(|c| c.to_vec()).collect() + } + pub(crate) fn skipped_l1_message_bitmap(&self) -> Vec { + let bitmap = match self { + CommitBatchCall::CommitBatch(b) => &b.skippedL1MessageBitmap, + CommitBatchCall::CommitBatchWithBlobProof(b) => &b.skippedL1MessageBitmap, + }; + bitmap.to_vec() + } +} + +/// Tries to decode the provided log into the type T. +pub(super) fn try_decode_log(log: &Log) -> Option> { + T::decode_log(log, true).ok() +} + +/// Tries to decode the provided calldata and convert it to a [`CommitBatchCall`]. +pub(super) fn try_decode_commit_call(calldata: &Bytes) -> Option { + match calldata.get(0..4).map(|sel| sel.try_into().expect("correct slice length")) { + Some(commitBatchCall::SELECTOR) => { + commitBatchCall::abi_decode(calldata, true).map(Into::into).ok() + } + Some(commitBatchWithBlobProofCall::SELECTOR) => { + commitBatchWithBlobProofCall::abi_decode(calldata, true).map(Into::into).ok() + } + Some(_) | None => None, + } +} + +impl From for TxL1Message { + fn from(value: QueueTransaction) -> Self { + TxL1Message { + queue_index: value.queueIndex, + gas_limit: value.gasLimit.saturating_to(), + to: value.target, + value: value.value, + sender: value.sender, + input: value.data, + } + } +} From 507cdd78422e9d955b3af03990b883e68a11617f Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Wed, 5 Mar 2025 12:51:08 +0100 Subject: [PATCH 07/63] feat(watcher): imports --- Cargo.lock | 123 +++++++++++++++++++++-------------- Cargo.toml | 23 +++++-- bin/bridge/Cargo.toml | 63 ++++++++---------- crates/primitives/Cargo.toml | 6 ++ crates/watcher/Cargo.toml | 9 +++ 5 files changed, 133 insertions(+), 91 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6b87c456..13443dea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -124,7 +124,7 @@ dependencies = [ "arbitrary", "auto_impl", "c-kzg", - "derive_more", + "derive_more 1.0.0", "rand 0.8.5", "serde", ] @@ -143,7 +143,7 @@ dependencies = [ "arbitrary", "auto_impl", "c-kzg", - "derive_more", + "derive_more 1.0.0", "rand 0.8.5", "serde", "serde_with", @@ -188,7 +188,7 @@ dependencies = [ "alloy-sol-type-parser", "alloy-sol-types", "const-hex", - "derive_more", + "derive_more 1.0.0", "itoa", "serde", "serde_json", @@ -231,7 +231,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "arbitrary", - "derive_more", + "derive_more 1.0.0", "k256", "rand 0.8.5", "serde", @@ -251,7 +251,7 @@ dependencies = [ "alloy-serde 0.9.2", "arbitrary", "c-kzg", - "derive_more", + "derive_more 1.0.0", "once_cell", "serde", "sha2 0.10.8", @@ -272,7 +272,7 @@ dependencies = [ "arbitrary", "auto_impl", "c-kzg", - "derive_more", + "derive_more 1.0.0", "ethereum_ssz", "ethereum_ssz_derive", "once_cell", @@ -421,7 +421,7 @@ dependencies = [ "cfg-if", "const-hex", "derive_arbitrary", - "derive_more", + "derive_more 1.0.0", "foldhash", "getrandom 0.2.15", "hashbrown 0.15.2", @@ -697,7 +697,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-serde 0.9.2", - "derive_more", + "derive_more 1.0.0", "serde", "strum", ] @@ -713,7 +713,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-serde 0.11.1", - "derive_more", + "derive_more 1.0.0", "ethereum_ssz", "ethereum_ssz_derive", "jsonrpsee-types", @@ -1064,7 +1064,7 @@ dependencies = [ "arbitrary", "arrayvec", "derive_arbitrary", - "derive_more", + "derive_more 1.0.0", "nybbles", "proptest", "proptest-derive", @@ -2365,7 +2365,16 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" dependencies = [ - "derive_more-impl", + "derive_more-impl 1.0.0", +] + +[[package]] +name = "derive_more" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +dependencies = [ + "derive_more-impl 2.0.1", ] [[package]] @@ -2381,6 +2390,17 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "derive_more-impl" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "diff" version = "0.1.13" @@ -4674,7 +4694,7 @@ dependencies = [ "alloy-rlp", "alloy-serde 0.11.1", "arbitrary", - "derive_more", + "derive_more 1.0.0", "serde", "serde_with", "thiserror 2.0.11", @@ -5458,7 +5478,7 @@ dependencies = [ "alloy-primitives", "alloy-signer 0.11.1", "alloy-signer-local", - "derive_more", + "derive_more 1.0.0", "metrics", "parking_lot", "pin-project", @@ -5489,7 +5509,7 @@ dependencies = [ "alloy-primitives", "alloy-trie", "auto_impl", - "derive_more", + "derive_more 1.0.0", "reth-ethereum-forks", "reth-network-peers", "reth-primitives-traits", @@ -5679,7 +5699,7 @@ dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", "auto_impl", - "derive_more", + "derive_more 1.0.0", "reth-primitives-traits", ] @@ -5728,7 +5748,7 @@ dependencies = [ "alloy-consensus 0.11.1", "alloy-primitives", "bytes", - "derive_more", + "derive_more 1.0.0", "eyre", "metrics", "page_size", @@ -5763,7 +5783,7 @@ dependencies = [ "alloy-primitives", "arbitrary", "bytes", - "derive_more", + "derive_more 1.0.0", "metrics", "modular-bitfield", "parity-scale-codec", @@ -5860,7 +5880,7 @@ source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blan dependencies = [ "alloy-primitives", "alloy-rlp", - "derive_more", + "derive_more 1.0.0", "discv5", "enr", "futures", @@ -5950,7 +5970,7 @@ dependencies = [ "alloy-rpc-types-eth 0.11.1", "alloy-signer 0.11.1", "alloy-signer-local", - "derive_more", + "derive_more 1.0.0", "eyre", "futures-util", "jsonrpsee", @@ -6101,7 +6121,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine 0.11.0", - "derive_more", + "derive_more 1.0.0", "futures", "metrics", "moka", @@ -6196,7 +6216,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "bytes", - "derive_more", + "derive_more 1.0.0", "futures", "pin-project", "reth-codecs 1.1.5", @@ -6226,7 +6246,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "bytes", - "derive_more", + "derive_more 1.0.0", "reth-chainspec", "reth-codecs-derive 1.1.5", "reth-ethereum-forks", @@ -6308,7 +6328,7 @@ dependencies = [ "alloy-rpc-types", "alloy-serde 0.11.1", "arbitrary", - "derive_more", + "derive_more 1.0.0", "modular-bitfield", "rand 0.8.5", "reth-codecs 1.1.5", @@ -6506,7 +6526,7 @@ dependencies = [ "bitflags 2.8.0", "byteorder", "dashmap", - "derive_more", + "derive_more 1.0.0", "indexmap 2.7.1", "parking_lot", "reth-mdbx-sys", @@ -6569,7 +6589,7 @@ dependencies = [ "alloy-rlp", "aquamarine", "auto_impl", - "derive_more", + "derive_more 1.0.0", "discv5", "enr", "futures", @@ -6621,7 +6641,7 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-admin", "auto_impl", - "derive_more", + "derive_more 1.0.0", "enr", "futures", "reth-eth-wire-types", @@ -6645,7 +6665,7 @@ dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", "auto_impl", - "derive_more", + "derive_more 1.0.0", "futures", "parking_lot", "reth-consensus", @@ -6695,7 +6715,7 @@ source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blan dependencies = [ "anyhow", "bincode", - "derive_more", + "derive_more 1.0.0", "lz4_flex", "memmap2", "reth-fs-util", @@ -6798,7 +6818,7 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-engine 0.11.0", "clap", - "derive_more", + "derive_more 1.0.0", "dirs-next", "eyre", "futures", @@ -6846,7 +6866,7 @@ dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", "alloy-rpc-types-engine 0.11.0", - "derive_more", + "derive_more 1.0.0", "futures", "humantime", "pin-project", @@ -6906,7 +6926,7 @@ dependencies = [ "alloy-rlp", "arbitrary", "bytes", - "derive_more", + "derive_more 1.0.0", "op-alloy-consensus", "rand 0.8.5", "reth-codecs 1.1.5", @@ -7024,7 +7044,7 @@ dependencies = [ "auto_impl", "byteorder", "bytes", - "derive_more", + "derive_more 1.0.0", "k256", "modular-bitfield", "once_cell", @@ -7122,7 +7142,7 @@ source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blan dependencies = [ "alloy-primitives", "arbitrary", - "derive_more", + "derive_more 1.0.0", "modular-bitfield", "reth-codecs 1.1.5", "serde", @@ -7168,7 +7188,7 @@ dependencies = [ "alloy-signer 0.11.1", "alloy-signer-local", "async-trait", - "derive_more", + "derive_more 1.0.0", "futures", "http", "http-body", @@ -7360,7 +7380,7 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-eth 0.11.1", "alloy-sol-types", - "derive_more", + "derive_more 1.0.0", "futures", "itertools 0.13.0", "jsonrpsee-core", @@ -7450,7 +7470,7 @@ dependencies = [ "alloy-genesis", "alloy-primitives", "alloy-serde 0.11.1", - "derive_more", + "derive_more 1.0.0", "once_cell", "reth-chainspec", "reth-ethereum-forks", @@ -7524,7 +7544,7 @@ source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blan dependencies = [ "alloy-consensus 0.11.1", "alloy-eips 0.11.1", - "derive_more", + "derive_more 1.0.0", "reth-chainspec", "reth-consensus", "reth-ethereum-consensus", @@ -7616,7 +7636,7 @@ dependencies = [ "alloy-rlp", "arbitrary", "bytes", - "derive_more", + "derive_more 1.0.0", "modular-bitfield", "once_cell", "proptest", @@ -7780,7 +7800,7 @@ source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blan dependencies = [ "alloy-primitives", "clap", - "derive_more", + "derive_more 1.0.0", "serde", "strum", ] @@ -7818,7 +7838,7 @@ dependencies = [ "alloy-eips 0.11.1", "alloy-primitives", "alloy-rlp", - "derive_more", + "derive_more 1.0.0", "reth-fs-util", "reth-primitives-traits", "reth-prune-types", @@ -7963,7 +7983,7 @@ dependencies = [ "alloy-trie", "arbitrary", "bytes", - "derive_more", + "derive_more 1.0.0", "hash-db", "itertools 0.13.0", "nybbles", @@ -7981,7 +8001,7 @@ source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blan dependencies = [ "alloy-primitives", "alloy-rlp", - "derive_more", + "derive_more 1.0.0", "metrics", "reth-db", "reth-db-api", @@ -8003,7 +8023,7 @@ source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blan dependencies = [ "alloy-primitives", "alloy-rlp", - "derive_more", + "derive_more 1.0.0", "itertools 0.13.0", "metrics", "rayon", @@ -8252,6 +8272,8 @@ version = "0.0.1" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine 0.9.2", + "derive_more 2.0.1", + "scroll-alloy-consensus 1.1.5", ] [[package]] @@ -8265,11 +8287,14 @@ dependencies = [ "alloy-primitives", "alloy-provider 0.9.2", "alloy-rpc-types-eth 0.9.2", + "alloy-sol-types", "alloy-transport 0.9.2", "async-trait", + "derive_more 2.0.1", "eyre", "rand 0.9.0", "rollup-node-primitives", + "scroll-alloy-consensus 1.1.5", "thiserror 2.0.11", "tokio", "tracing", @@ -8542,7 +8567,7 @@ dependencies = [ "alloy-rlp", "alloy-serde 0.11.1", "arbitrary", - "derive_more", + "derive_more 1.0.0", "modular-bitfield", "reth-codecs 1.1.5", "reth-codecs-derive 1.1.5", @@ -8560,7 +8585,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-serde 0.11.1", - "derive_more", + "derive_more 1.0.0", "modular-bitfield", "reth-codecs 1.2.0", "reth-codecs-derive 1.2.0", @@ -8608,7 +8633,7 @@ dependencies = [ "alloy-transport 0.11.0", "alloy-transport-http 0.11.0", "async-trait", - "derive_more", + "derive_more 1.0.0", "eyre", "http-body-util", "reqwest", @@ -8628,7 +8653,7 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", - "derive_more", + "derive_more 1.0.0", "scroll-alloy-consensus 1.1.5", "serde", "serde_json", @@ -8645,7 +8670,7 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-eth 0.11.1", "alloy-serde 0.11.1", - "derive_more", + "derive_more 1.0.0", "scroll-alloy-consensus 1.2.0", "serde", "serde_json", @@ -8684,7 +8709,6 @@ dependencies = [ "reth-payload-builder", "reth-primitives", "reth-provider", - "reth-rpc-api", "reth-rpc-builder", "reth-rpc-server-types", "reth-scroll-chainspec", @@ -8697,7 +8721,6 @@ dependencies = [ "reth-transaction-pool", "rollup-node-manager", "scroll-alloy-consensus 1.1.5", - "scroll-alloy-network 1.1.5", "scroll-alloy-provider", "scroll-alloy-rpc-types-engine", "scroll-engine", diff --git a/Cargo.toml b/Cargo.toml index 08364be2..07975966 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,11 +7,13 @@ exclude = [".github/"] [workspace] members = [ - "bin/bridge", + "bin/bridge", "crates/engine", "crates/node", "crates/network", - "crates/scroll-wire" + "crates/scroll-wire", + "crates/watcher", + "crates/primitives", ] resolver = "2" @@ -108,12 +110,18 @@ too_long_first_doc_paragraph = "allow" alloy-chains = { version = "0.1.32", default-features = false } alloy-consensus = { version = "0.9.2", default-features = false } alloy-eips = { version = "0.9.2", default-features = false } +alloy-json-rpc = { version = "0.9.2", default-features = false } +alloy-network = { version = "0.9.2", default-features = false } alloy-primitives = { version = "0.8.15", default-features = false } -alloy-rpc-types-engine = { version = "0.11.0", default-features = false } +alloy-provider = { version = "0.9.2", default-features = false } +alloy-rpc-types-engine = { version = "0.9.2", default-features = false } +alloy-rpc-types-eth = { version = "0.9.2", default-features = false } +alloy-transport = { version = "0.9.2", default-features = false } # scroll-alloy +scroll-alloy-consensus = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } scroll-alloy-provider = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", default-features = false } # reth reth-eth-wire-types = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } @@ -136,12 +144,16 @@ scroll-engine = { path = "crates/engine" } scroll-network = { path = "crates/network" } scroll-wire = { path = "crates/scroll-wire" } rollup-node-manager = { path = "crates/node" } +rollup-node-watcher = { path = "crates/watcher" } +rollup-node-primitives = { path = "crates/primitives" } # misc +async-trait = "0.1" +derive_more = "2.0" eyre = "0.6" futures = { version = "0.3", default-features = false } secp256k1 = { version = "0.29", default-features = false } -serde = { version = "1.0", default-features = false } +thiserror = "2.0" tokio = { version = "1.39", default-features = false } tokio-stream = { version = "0.1", default-features = false } tracing = "0.1.0" @@ -154,4 +166,3 @@ revm-interpreter = { git = "https://github.com/scroll-tech/revm.git", branch = " ff = { git = "https://github.com/scroll-tech/ff", branch = "feat/sp1" } alloy-eip2930 = { git = "https://github.com/scroll-tech/alloy-eips", branch = "v0.3.2" } - diff --git a/bin/bridge/Cargo.toml b/bin/bridge/Cargo.toml index 5d1ebb3b..c3a29f44 100644 --- a/bin/bridge/Cargo.toml +++ b/bin/bridge/Cargo.toml @@ -12,9 +12,8 @@ alloy-chains.workspace = true alloy-rpc-types-engine.workspace = true # scroll-alloy -scroll-alloy-consensus = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -scroll-alloy-rpc-types-engine= { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +scroll-alloy-consensus.workspace = true +scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } scroll-alloy-provider.workspace = true # reth @@ -27,8 +26,7 @@ reth-node-builder = { git = "https://github.com/scroll-tech/reth.git", branch = reth-node-core = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } reth-node-types = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } reth-primitives.workspace = true -reth-provider = { workspace = true, features = ["scroll", "skip-state-root-validation"]} -reth-rpc-api = { workspace = true, features = ["client"] } +reth-provider = { workspace = true, features = ["scroll", "skip-state-root-validation"] } reth-rpc-builder = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } reth-transaction-pool = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } @@ -49,18 +47,13 @@ rollup-node-manager.workspace = true clap = { version = "4", features = ["derive", "env"] } eyre.workspace = true futures.workspace = true -secp256k1 = { workspace = true, features = [ - "global-context", - "recovery", -] } +secp256k1 = { workspace = true, features = ["global-context", "recovery"] } tokio = { workspace = true, features = ["full"] } tracing.workspace = true [dev-dependencies] # alloy -alloy-primitives = { workspace = true, default-features = false, features = [ - "map-foldhash", -] } +alloy-primitives = { workspace = true, default-features = false, features = ["map-foldhash"] } alloy-rpc-types-engine.workspace = true # reth @@ -70,36 +63,36 @@ reth-rpc-server-types = { git = "https://github.com/scroll-tech/reth.git", branc reth-tasks.workspace = true reth-tracing = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -# misc +#  misc serde_json = { version = "1.0.94", default-features = false, features = ["alloc"] } tokio = { workspace = true, features = ["full"] } [features] test-utils = [ - "reth-network/test-utils", - "reth-node-builder/test-utils", - "reth-primitives/test-utils", - "reth-provider/test-utils", - "reth-transaction-pool/test-utils", - "scroll-engine/test-utils", - "reth-payload-builder/test-utils", - "reth-payload-builder/test-utils" + "reth-network/test-utils", + "reth-node-builder/test-utils", + "reth-primitives/test-utils", + "reth-provider/test-utils", + "reth-transaction-pool/test-utils", + "scroll-engine/test-utils", + "reth-payload-builder/test-utils", + "reth-payload-builder/test-utils", ] serde = [ - "alloy-primitives/serde", - "alloy-rpc-types-engine/serde", - "reth-eth-wire-types/serde", - "reth-network/serde", - "reth-provider/serde", - "reth-scroll-primitives/serde", - "scroll-alloy-consensus/serde", - "scroll-alloy-rpc-types-engine/serde", - "scroll-engine/serde", - "scroll-network/serde", - "scroll-wire/serde", - "secp256k1/serde", - "rollup-node-manager/serde", - "alloy-chains/serde" + "alloy-primitives/serde", + "alloy-rpc-types-engine/serde", + "reth-eth-wire-types/serde", + "reth-network/serde", + "reth-provider/serde", + "reth-scroll-primitives/serde", + "scroll-alloy-consensus/serde", + "scroll-alloy-rpc-types-engine/serde", + "scroll-engine/serde", + "scroll-network/serde", + "scroll-wire/serde", + "secp256k1/serde", + "rollup-node-manager/serde", + "alloy-chains/serde", ] [[bin]] diff --git a/crates/primitives/Cargo.toml b/crates/primitives/Cargo.toml index 36525c12..313a0a11 100644 --- a/crates/primitives/Cargo.toml +++ b/crates/primitives/Cargo.toml @@ -13,3 +13,9 @@ workspace = true # alloy alloy-primitives.workspace = true alloy-rpc-types-engine.workspace = true + +# scroll +scroll-alloy-consensus.workspace = true + +# misc +derive_more = { workspace = true, features = ["from"] } diff --git a/crates/watcher/Cargo.toml b/crates/watcher/Cargo.toml index 9517d878..08619d75 100644 --- a/crates/watcher/Cargo.toml +++ b/crates/watcher/Cargo.toml @@ -11,16 +11,25 @@ workspace = true [dependencies] # alloy +alloy-consensus.workspace = true alloy-eips = { workspace = true, optional = true } alloy-json-rpc.workspace = true alloy-network.workspace = true alloy-primitives.workspace = true alloy-provider.workspace = true alloy-rpc-types-eth.workspace = true +alloy-sol-types = "0.8.20" alloy-transport.workspace = true +# rollup +rollup-node-primitives.workspace = true + +# scroll +scroll-alloy-consensus.workspace = true + # misc async-trait.workspace = true +derive_more = { workspace = true, features = ["from"] } thiserror.workspace = true tokio = { workspace = true, features = ["full"] } tracing.workspace = true From 2c18c7700a9d9a081c3d5529e89a2ab3a55b337f Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Wed, 5 Mar 2025 12:51:22 +0100 Subject: [PATCH 08/63] feat(watcher): add error types --- crates/primitives/src/lib.rs | 8 +++++++- crates/watcher/src/error.rs | 34 +++++++++++++++++++++++++++++++--- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/crates/primitives/src/lib.rs b/crates/primitives/src/lib.rs index 4747adcd..ff72ed2d 100644 --- a/crates/primitives/src/lib.rs +++ b/crates/primitives/src/lib.rs @@ -1,4 +1,10 @@ //! Primitive types for the Rollup Node. -mod block; pub use block::BlockInfo; +mod block; + +pub use batch::{BatchInput, BatchInputBuilder, BatchInputV1, BatchInputV2}; +mod batch; + +pub use transaction::L1MessageWithBlockNumber; +mod transaction; diff --git a/crates/watcher/src/error.rs b/crates/watcher/src/error.rs index 7aff8bfc..8b0b94ab 100644 --- a/crates/watcher/src/error.rs +++ b/crates/watcher/src/error.rs @@ -1,4 +1,5 @@ use alloy_json_rpc::RpcError; +use alloy_primitives::B256; use alloy_transport::TransportErrorKind; /// A [`Result`] that uses [`L1WatcherError`] as the error type. @@ -7,8 +8,35 @@ pub(crate) type L1WatcherResult = Result; /// An error that occurred with the L1 watcher. #[derive(Debug, thiserror::Error)] pub enum L1WatcherError { - #[error("execution provider error: {0:?}")] - Provider(#[from] RpcError), - #[error("missing block {0}")] + /// A Provider error at the RPC level. + #[error("execution provider rpc error: {0:?}")] + ProviderRpc(#[from] RpcError), + /// An Ethereum request error. + #[error("failed Ethereum JSON RPC request: {0:?}")] + EthRequest(#[from] EthRequestError), + /// An error related to logs in the L1 watcher. + #[error(transparent)] + Logs(#[from] FilterLogError), +} + +/// An error occurred during a request to the Ethereum JSON RPC provider. +#[derive(Debug, thiserror::Error)] +pub enum EthRequestError { + /// The requested block does not exist. + #[error("unknown block {0}")] MissingBlock(u64), + /// The requested transaction hash does not exist. + #[error("unknown transaction {0}")] + MissingTransactionHash(B256), +} + +/// An error that occurred when filtering logs. +#[derive(Debug, thiserror::Error)] +pub enum FilterLogError { + /// The log is missing a block number. + #[error("missing block number for log")] + MissingBlockNumber, + /// The log is missing a transaction hash. + #[error("unknown transaction hash for log")] + MissingTransactionHash, } From b83bb82b1b387f61897ff04ccb307d0070a545d4 Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Wed, 5 Mar 2025 12:51:43 +0100 Subject: [PATCH 09/63] feat(watcher): handle l1 messages and commit logs --- crates/watcher/src/lib.rs | 114 ++++++++++++++++++++++++++++++-------- 1 file changed, 91 insertions(+), 23 deletions(-) diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index b3442f45..9e7ddf05 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -1,23 +1,28 @@ //! L1 watcher for the Scroll Rollup Node. -mod contracts; +pub use constants::{ + L1_MESSAGE_QUEUE_CONTRACT_ADDRESS, L1_WATCHER_LOG_FILTER, ROLLUP_CONTRACT_ADDRESS, +}; +mod constants; +mod contract; + +pub use error::{EthRequestError, FilterLogError, L1WatcherError}; mod error; + #[cfg(any(test, feature = "test-utils"))] /// Common test helpers pub mod test_utils; -use crate::error::L1WatcherError; -use std::{ - collections::{BTreeMap, VecDeque}, - sync::Arc, - time::Duration, -}; +use crate::contract::{try_decode_commit_call, try_decode_log, CommitBatch, QueueTransaction}; +use std::{collections::VecDeque, sync::Arc, time::Duration}; use alloy_network::Ethereum; -use alloy_primitives::BlockNumber; +use alloy_primitives::{BlockNumber, Bytes}; use alloy_provider::{Network, Provider}; -use alloy_rpc_types_eth::{BlockNumberOrTag, BlockTransactionsKind, Filter, Log}; +use alloy_rpc_types_eth::{BlockNumberOrTag, BlockTransactionsKind, Log, TransactionTrait}; use error::L1WatcherResult; +use rollup_node_primitives::{BatchInput, BatchInputBuilder, L1MessageWithBlockNumber}; +use scroll_alloy_consensus::TxL1Message; use tokio::sync::mpsc; /// The block range used to fetch L1 logs. @@ -59,8 +64,6 @@ pub struct L1Watcher { current_block_number: BlockNumber, /// The sender part of the channel for [`L1Notification`]. sender: mpsc::Sender>, - /// The log filter used to index L1 blocks. - filter: Filter, } /// The L1 notification type yielded by the [`L1Watcher`]. @@ -68,8 +71,10 @@ pub struct L1Watcher { pub enum L1Notification { /// A notification for a reorg of the L1 up to a given block number. Reorg(u64), - /// A notification of a new block of interest for the rollup node. - Block(Block), + /// A notification of a new batch being commited for the rollup. + BatchCommit(BatchInput), + /// A new [`L1Message`] has been added to the L1 message queue. + L1Message(L1MessageWithBlockNumber), /// A new block has been added to the L1. NewBlock(u64), /// A block has been finalized on the L1. @@ -85,7 +90,6 @@ where pub async fn spawn( execution_provider: EP, start_block: BlockNumber, - filter: Filter, ) -> mpsc::Receiver> { let (tx, rx) = mpsc::channel(LOGS_QUERY_BLOCK_RANGE as usize); @@ -114,7 +118,6 @@ where current_block_number: start_block - 1, l1_state, sender: tx, - filter, }; tokio::spawn(watcher.run()); @@ -123,7 +126,6 @@ where /// Main execution loop for the [`L1Watcher`]. pub async fn run(mut self) { - let mut loop_interval; loop { // step the watcher. let _ = self @@ -132,7 +134,8 @@ where .inspect_err(|err| tracing::error!(target: "scroll::watcher", ?err)); // update loop interval if needed. - loop_interval = if self.is_synced() { SLOW_SYNC_INTERVAL } else { FAST_SYNC_INTERVAL }; + let loop_interval = + if self.is_synced() { SLOW_SYNC_INTERVAL } else { FAST_SYNC_INTERVAL }; // sleep the appropriate amount of time. tokio::time::sleep(loop_interval).await; @@ -151,6 +154,7 @@ where // index the next range of blocks. let logs = self.next_filtered_logs().await?; + self.handle_l1_messages(&logs).await?; // update the latest block the l1 watcher has indexed. self.update_current_block(&latest); @@ -239,6 +243,71 @@ where Ok(()) } + /// Filters the logs into L1 messages and sends them over the channel. + async fn handle_l1_messages(&self, logs: &[Log]) -> L1WatcherResult<()> { + let l1_messages = + logs.iter().map(|l| (&l.inner, l.block_number)).filter_map(|(log, bn)| { + try_decode_log::(log) + .map(|log| (Into::::into(log.data), bn)) + }); + + for (msg, bn) in l1_messages { + let block_number = bn.ok_or(FilterLogError::MissingBlockNumber)?; + let notification = L1MessageWithBlockNumber::new(block_number, msg); + let _ = self.sender.send(Arc::new(L1Notification::L1Message(notification))).await; + } + Ok(()) + } + + /// Handles the batch commits events. + async fn handle_batch_commits(&self, logs: &[Log]) -> L1WatcherResult<()> { + // filter commit logs. + let commit_tx_hashes = + logs.iter().map(|l| (l, l.transaction_hash)).filter_map(|(log, tx_hash)| { + try_decode_log::(&log.inner) + .map(|decoded| (log, decoded.data, tx_hash)) + }); + + for (raw_log, decoded_log, maybe_tx_hash) in commit_tx_hashes { + // fetch the commit transaction. + let tx_hash = maybe_tx_hash.ok_or(FilterLogError::MissingTransactionHash)?; + let transaction = self + .execution_provider + .get_transaction_by_hash(tx_hash) + .await? + .ok_or(EthRequestError::MissingTransactionHash(tx_hash))?; + + // decode the transaction's input into a commit batch call. + let commit_info = try_decode_commit_call(transaction.inner.input()); + if let Some(info) = commit_info { + let batch_index: u64 = decoded_log.batchIndex.saturating_to(); + let block_number = + raw_log.block_number.ok_or(FilterLogError::MissingBlockNumber)?; + let batch_hash = decoded_log.batchHash; + let blob_hashes = transaction.blob_versioned_hashes().map(|blobs| blobs.to_vec()); + + // feed all batch information to the batch input builder. + let batch_builder = BatchInputBuilder::default() + .with_version(info.version()) + .with_batch_index(batch_index) + .with_batch_hash(batch_hash) + .with_block_number(block_number) + .with_parent_batch_header(info.parent_batch_header()) + .with_skipped_l1_message_bitmap(info.skipped_l1_message_bitmap()) + .with_blob_hashes(blob_hashes); + + // if builder can build a batch input from data, notify via channel. + if let Some(batch_input) = batch_builder.try_build() { + let _ = + self.sender.send(Arc::new(L1Notification::BatchCommit(batch_input))).await; + } + } + } + Ok(()) + } + + // TODO: handle finalized log. + /// Fetches the chain of unfinalized blocks up to and including the latest block, ensuring no /// gaps are present in the chain. async fn fetch_unfinalized_chain( @@ -261,7 +330,7 @@ where .execution_provider .get_block((current_block.number - 1).into(), BlockTransactionsKind::Hashes) .await? - .ok_or(L1WatcherError::MissingBlock(current_block.number - 1))?; + .ok_or(EthRequestError::MissingBlock(current_block.number - 1))?; chain.push(block.header.clone()); current_block = block.header; }; @@ -320,7 +389,7 @@ where /// [`current_block`](field@WatcherSyncStatus::current_block) + [`LOGS_QUERY_BLOCK_RANGE`]\] async fn next_filtered_logs(&self) -> L1WatcherResult> { // set the block range for the query - let mut filter = self.filter.clone(); + let mut filter = L1_WATCHER_LOG_FILTER.clone(); filter = filter .from_block(self.current_block_number) .to_block(self.current_block_number + LOGS_QUERY_BLOCK_RANGE); @@ -359,7 +428,6 @@ mod tests { l1_state: L1State { head: 0, finalized: 0 }, current_block_number: 0, sender: tx, - filter: Default::default(), }, rx, ) @@ -462,7 +530,7 @@ mod tests { } #[tokio::test] - async fn test_handle_finalized_empty() -> eyre::Result<()> { + async fn test_handle_finalized_empty_state() -> eyre::Result<()> { // Given let (finalized, latest, _) = test_chain(2); let (mut watcher, _) = test_l1_watcher(vec![], vec![], finalized.clone(), latest); @@ -477,7 +545,7 @@ mod tests { } #[tokio::test] - async fn test_handle_finalize_mid() -> eyre::Result<()> { + async fn test_handle_finalize_at_mid_state() -> eyre::Result<()> { // Given let (_, latest, chain) = test_chain(10); let finalized = chain[5].clone(); @@ -493,7 +561,7 @@ mod tests { } #[tokio::test] - async fn test_handle_finalized_end() -> eyre::Result<()> { + async fn test_handle_finalized_at_end_state() -> eyre::Result<()> { // Given let (_, latest, chain) = test_chain(10); let finalized = latest.clone(); From 10821aff03914c99cc6866f7a905a14e352fa023 Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Wed, 5 Mar 2025 17:25:39 +0100 Subject: [PATCH 10/63] feat: handle batch commit and finalize --- crates/primitives/src/batch.rs | 81 ++++++++++++++----------------- crates/watcher/src/contract.rs | 10 ++-- crates/watcher/src/lib.rs | 89 +++++++++++++++++++++++++--------- 3 files changed, 109 insertions(+), 71 deletions(-) diff --git a/crates/primitives/src/batch.rs b/crates/primitives/src/batch.rs index f2033b8a..b165336f 100644 --- a/crates/primitives/src/batch.rs +++ b/crates/primitives/src/batch.rs @@ -1,4 +1,4 @@ -use alloy_primitives::B256; +use alloy_primitives::{BlockNumber, B256}; use derive_more; /// The input data for a batch. @@ -42,18 +42,18 @@ pub struct BatchInputV2 { } /// A builder for the batch input. Determines the batch version based on the passed input. -#[derive(Debug, Default)] +#[derive(Debug)] pub struct BatchInputBuilder { /// The version of the batch input data. - version: Option, + version: u8, /// The index of the batch. - batch_index: Option, + batch_index: u64, /// The batch hash. - batch_hash: Option, + batch_hash: B256, /// The L1 block number at which the batch was committed. - block_number: Option, + block_number: u64, /// The parent batch header. - parent_batch_header: Option>, + parent_batch_header: Vec, /// The chunks in the batch. chunks: Option>>, /// The skipped L1 message bitmap. @@ -63,45 +63,38 @@ pub struct BatchInputBuilder { } impl BatchInputBuilder { - /// Adds a version to the builder. - pub fn with_version(mut self, version: u8) -> Self { - self.version = Some(version); - self - } - - /// Adds a batch index to the builder. - pub fn with_batch_index(mut self, batch_index: u64) -> Self { - self.batch_index = Some(batch_index); - self - } - - /// Adds a batch hash to the builder. - pub fn with_batch_hash(mut self, batch_hash: B256) -> Self { - self.batch_hash = Some(batch_hash); - self - } - - /// Adds a block number for the batch to the builder. - pub fn with_block_number(mut self, block_number: u64) -> Self { - self.block_number = Some(block_number); - self - } - - /// Adds a parent batch header to the builder. - pub fn with_parent_batch_header(mut self, parent_batch_header: Vec) -> Self { - self.parent_batch_header = Some(parent_batch_header); - self + /// Returns a new instance of the builder. + pub fn new( + version: u8, + index: u64, + hash: B256, + block_number: BlockNumber, + parent_batch_header: Vec, + ) -> Self { + Self { + version, + batch_index: index, + batch_hash: hash, + block_number, + parent_batch_header, + chunks: None, + skipped_l1_message_bitmap: None, + blob_hashes: None, + } } /// Adds chunks to the builder. - pub fn with_chunks(mut self, chunks: Vec>) -> Self { - self.chunks = Some(chunks); + pub fn with_chunks(mut self, chunks: Option>>) -> Self { + self.chunks = chunks; self } /// Adds skipped l1 message bitmap to the builder. - pub fn with_skipped_l1_message_bitmap(mut self, skipped_l1_message_bitmap: Vec) -> Self { - self.skipped_l1_message_bitmap = Some(skipped_l1_message_bitmap); + pub fn with_skipped_l1_message_bitmap( + mut self, + skipped_l1_message_bitmap: Option>, + ) -> Self { + self.skipped_l1_message_bitmap = skipped_l1_message_bitmap; self } @@ -114,11 +107,11 @@ impl BatchInputBuilder { /// Build the [`BatchInput`], returning [`None`] if fields haven't been correctly set. pub fn try_build(self) -> Option { // handle fields required for all batch inputs. - let version = self.version?; - let batch_index = self.batch_index?; - let batch_hash = self.batch_hash?; - let block_number = self.block_number?; - let parent_batch_header = self.parent_batch_header?; + let version = self.version; + let batch_index = self.batch_index; + let batch_hash = self.batch_hash; + let block_number = self.block_number; + let parent_batch_header = self.parent_batch_header; match (self.chunks, self.skipped_l1_message_bitmap, self.blob_hashes) { (Some(chunks), Some(skipped_l1_message_bitmap), None) => Some( diff --git a/crates/watcher/src/contract.rs b/crates/watcher/src/contract.rs index 605f9e29..bbb6a4d1 100644 --- a/crates/watcher/src/contract.rs +++ b/crates/watcher/src/contract.rs @@ -15,6 +15,8 @@ sol! { event CommitBatch(uint256 indexed batchIndex, bytes32 indexed batchHash); + event FinalizeBatch(uint256 indexed batchIndex, bytes32 indexed batchHash, bytes32 stateRoot, bytes32 withdrawRoot); + // *********************FUNCTION********************* function commitBatch( uint8 version, @@ -55,19 +57,19 @@ impl CommitBatchCall { }; header.to_vec() } - pub(crate) fn chunks(&self) -> Vec> { + pub(crate) fn chunks(&self) -> Option>> { let chunks = match self { CommitBatchCall::CommitBatch(b) => &b.chunks, CommitBatchCall::CommitBatchWithBlobProof(b) => &b.chunks, }; - chunks.iter().map(|c| c.to_vec()).collect() + Some(chunks.iter().map(|c| c.to_vec()).collect()) } - pub(crate) fn skipped_l1_message_bitmap(&self) -> Vec { + pub(crate) fn skipped_l1_message_bitmap(&self) -> Option> { let bitmap = match self { CommitBatchCall::CommitBatch(b) => &b.skippedL1MessageBitmap, CommitBatchCall::CommitBatchWithBlobProof(b) => &b.skippedL1MessageBitmap, }; - bitmap.to_vec() + Some(bitmap.to_vec()) } } diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index 9e7ddf05..37c80310 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -13,11 +13,13 @@ mod error; /// Common test helpers pub mod test_utils; -use crate::contract::{try_decode_commit_call, try_decode_log, CommitBatch, QueueTransaction}; +use crate::contract::{ + try_decode_commit_call, try_decode_log, CommitBatch, FinalizeBatch, QueueTransaction, +}; use std::{collections::VecDeque, sync::Arc, time::Duration}; use alloy_network::Ethereum; -use alloy_primitives::{BlockNumber, Bytes}; +use alloy_primitives::{BlockNumber, Bytes, B256}; use alloy_provider::{Network, Provider}; use alloy_rpc_types_eth::{BlockNumberOrTag, BlockTransactionsKind, Log, TransactionTrait}; use error::L1WatcherResult; @@ -71,8 +73,15 @@ pub struct L1Watcher { pub enum L1Notification { /// A notification for a reorg of the L1 up to a given block number. Reorg(u64), - /// A notification of a new batch being commited for the rollup. + /// A new batch has been commited on the L1 rollup contract. BatchCommit(BatchInput), + /// A new batch has been finalized on the L1 rollup contract. + BatchFinalization { + /// The hash of the finalized batch. + hash: B256, + /// The block number the batch was finalized at. + block_number: BlockNumber, + }, /// A new [`L1Message`] has been added to the L1 message queue. L1Message(L1MessageWithBlockNumber), /// A new block has been added to the L1. @@ -146,7 +155,7 @@ where pub async fn step(&mut self) -> L1WatcherResult<()> { // handle the finalized block. let finalized = self.finalized_block(false).await?; - self.handle_finalized_block(&finalized.header); + self.handle_finalized_block(&finalized.header).await; // handle the latest block. let latest = self.latest_block(false).await?; @@ -154,7 +163,11 @@ where // index the next range of blocks. let logs = self.next_filtered_logs().await?; + + // handle all events. self.handle_l1_messages(&logs).await?; + self.handle_batch_commits(&logs).await?; + self.handle_batch_finalization(&logs).await?; // update the latest block the l1 watcher has indexed. self.update_current_block(&latest); @@ -165,11 +178,11 @@ where /// Handle the finalized block: /// - Update state and notify channel about finalization. /// - Drain finalized blocks from state. - fn handle_finalized_block(&mut self, finalized: &Header) { + async fn handle_finalized_block(&mut self, finalized: &Header) { // update the state and notify on channel. if self.l1_state.finalized < finalized.number { self.l1_state.finalized = finalized.number; - let _ = self.sender.send(Arc::new(L1Notification::Finalized(finalized.number))); + self.notify(L1Notification::Finalized(finalized.number)).await; } // shortcircuit. @@ -229,7 +242,7 @@ where } // send the reorg block number on the channel. - let _ = self.sender.send(Arc::new(L1Notification::Reorg(number))).await; + self.notify(L1Notification::Reorg(number)).await; } // set the unfinalized chain. @@ -238,7 +251,7 @@ where // Update the state and notify on the channel. self.l1_state.head = latest.number; - let _ = self.sender.send(Arc::new(L1Notification::NewBlock(latest.number))).await; + self.notify(L1Notification::NewBlock(latest.number)).await; Ok(()) } @@ -254,7 +267,7 @@ where for (msg, bn) in l1_messages { let block_number = bn.ok_or(FilterLogError::MissingBlockNumber)?; let notification = L1MessageWithBlockNumber::new(block_number, msg); - let _ = self.sender.send(Arc::new(L1Notification::L1Message(notification))).await; + self.notify(L1Notification::L1Message(notification)).await; } Ok(()) } @@ -287,26 +300,49 @@ where let blob_hashes = transaction.blob_versioned_hashes().map(|blobs| blobs.to_vec()); // feed all batch information to the batch input builder. - let batch_builder = BatchInputBuilder::default() - .with_version(info.version()) - .with_batch_index(batch_index) - .with_batch_hash(batch_hash) - .with_block_number(block_number) - .with_parent_batch_header(info.parent_batch_header()) - .with_skipped_l1_message_bitmap(info.skipped_l1_message_bitmap()) - .with_blob_hashes(blob_hashes); + let batch_builder = BatchInputBuilder::new( + info.version(), + batch_index, + batch_hash, + block_number, + info.parent_batch_header(), + ) + .with_chunks(info.chunks()) + .with_skipped_l1_message_bitmap(info.skipped_l1_message_bitmap()) + .with_blob_hashes(blob_hashes); // if builder can build a batch input from data, notify via channel. if let Some(batch_input) = batch_builder.try_build() { - let _ = - self.sender.send(Arc::new(L1Notification::BatchCommit(batch_input))).await; + self.notify(L1Notification::BatchCommit(batch_input)).await; } } } Ok(()) } - // TODO: handle finalized log. + /// Handles the finalize batch events. + async fn handle_batch_finalization(&self, logs: &[Log]) -> L1WatcherResult<()> { + // filter finalize logs. + let finalize_tx_hashes = + logs.iter().map(|l| (l, l.block_number)).filter_map(|(log, bn)| { + try_decode_log::(&log.inner).map(|decoded| (decoded.data, bn)) + }); + + for (decoded_log, maybe_block_number) in finalize_tx_hashes { + // fetch the commit transaction. + let block_number = maybe_block_number.ok_or(FilterLogError::MissingBlockNumber)?; + + // send the finalization event in the channel. + let _ = self + .sender + .send(Arc::new(L1Notification::BatchFinalization { + hash: decoded_log.batchHash, + block_number, + })) + .await; + } + Ok(()) + } /// Fetches the chain of unfinalized blocks up to and including the latest block, ensuring no /// gaps are present in the chain. @@ -354,6 +390,13 @@ where self.current_block_number == self.l1_state.head } + /// Send the notification in the channel. + async fn notify(&self, notification: L1Notification) { + let _ = self.sender.send(Arc::new(notification)).await.inspect_err( + |err| tracing::error!(target: "scroll::watcher", ?err, "failed to send notification"), + ); + } + /// Updates the current block number, saturating at the head of the chain. fn update_current_block(&mut self, latest: &Block) { let latest_block_number = latest.header.number; @@ -536,7 +579,7 @@ mod tests { let (mut watcher, _) = test_l1_watcher(vec![], vec![], finalized.clone(), latest); // When - watcher.handle_finalized_block(&finalized); + watcher.handle_finalized_block(&finalized).await; // Then assert_eq!(watcher.unfinalized_blocks.len(), 0); @@ -552,7 +595,7 @@ mod tests { let (mut watcher, _) = test_l1_watcher(chain, vec![], finalized.clone(), latest); // When - watcher.handle_finalized_block(&finalized); + watcher.handle_finalized_block(&finalized).await; // Then assert_eq!(watcher.unfinalized_blocks.len(), 4); @@ -568,7 +611,7 @@ mod tests { let (mut watcher, _) = test_l1_watcher(chain, vec![], finalized.clone(), latest); // When - watcher.handle_finalized_block(&finalized); + watcher.handle_finalized_block(&finalized).await; // Then assert_eq!(watcher.unfinalized_blocks.len(), 0); From 924bf66ed51e1938acdbc5ab54587f72cb5a85ca Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Thu, 6 Mar 2025 17:46:34 +0100 Subject: [PATCH 11/63] test: handle_latest_block --- crates/watcher/src/lib.rs | 104 ++++++++++++++++++++++++++++++-------- 1 file changed, 83 insertions(+), 21 deletions(-) diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index 37c80310..87e9c277 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -619,27 +619,89 @@ mod tests { Ok(()) } - // - // #[tokio::test] - // async fn test_handle_latest_block_match_tail() -> eyre::Result<()> { - // let chain = test_chain(10); - // let block = Block { - // header: chain.back().unwrap().clone(), - // uncles: vec![], - // transactions: BlockTransactions::Hashes(vec![]), - // withdrawals: None, - // }; - // let (mut watcher, _) = test_l1_watcher(chain, VecDeque::from(vec![block.clone()])); - // - // watcher.handle_latest_block().await?; - // assert_eq!(watcher.unfinalized_blocks.len(), 10); - // assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); - // - // assert_eq!(watcher.forkchoice_state.head.number, block.header.number); - // assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); - // - // Ok(()) - // } + #[tokio::test] + async fn test_handle_latest_block_match_unfinalized_tail() -> eyre::Result<()> { + // Given + let (finalized, latest, chain) = test_chain(10); + let (mut watcher, _) = test_l1_watcher(chain, vec![], finalized.clone(), latest.clone()); + + // When + watcher.handle_latest_block(&finalized, &latest).await?; + + // Then + assert_eq!(watcher.unfinalized_blocks.len(), 10); + assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), latest); + + Ok(()) + } + + #[tokio::test] + async fn test_handle_latest_block_extend_unfinalized() -> eyre::Result<()> { + // Given + let (finalized, latest, chain) = test_chain(10); + let unfinalized_chain = chain[..9].to_vec(); + let (mut watcher, _) = + test_l1_watcher(unfinalized_chain, vec![], finalized.clone(), latest.clone()); + + assert_eq!(watcher.unfinalized_blocks.len(), 9); + + // When + watcher.handle_latest_block(&finalized, &latest).await?; + + // Then + assert_eq!(watcher.unfinalized_blocks.len(), 10); + assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), latest); + + Ok(()) + } + + #[tokio::test] + async fn test_handle_latest_block_missing_unfinalized_blocks() -> eyre::Result<()> { + // Given + let (finalized, latest, chain) = test_chain(10); + let unfinalized_chain = chain[..5].to_vec(); + let provider_blocks = chain[4..].to_vec(); + let (mut watcher, mut receiver) = + test_l1_watcher(unfinalized_chain, provider_blocks, finalized.clone(), latest.clone()); + + // When + watcher.handle_latest_block(&finalized, &latest).await?; + + // Then + assert_eq!(watcher.unfinalized_blocks.len(), 10); + assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), latest); + let notification = receiver.recv().await.unwrap(); + assert!(matches!(*notification, L1Notification::NewBlock(_))); + + Ok(()) + } + + #[tokio::test] + async fn test_handle_latest_block_reorg() -> eyre::Result<()> { + // Given + let (finalized, _, chain) = test_chain(10); + let reorged = fork(&chain[5], 10); + let latest = reorged[9].clone(); + let provider_blocks = reorged; + let (mut watcher, mut receiver) = + test_l1_watcher(chain.clone(), provider_blocks, finalized.clone(), latest.clone()); + + // When + watcher.current_block_number = chain[9].number; + watcher.handle_latest_block(&finalized, &latest).await?; + + // Then + assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), latest); + assert_eq!(watcher.current_block_number, chain[5].number); + + let notification = receiver.recv().await.unwrap(); + assert!(matches!(*notification, L1Notification::Reorg(_))); + let notification = receiver.recv().await.unwrap(); + assert!(matches!(*notification, L1Notification::NewBlock(_))); + + Ok(()) + } + // // #[tokio::test] // async fn test_handle_latest_block_not_empty_unfinalized() -> eyre::Result<()> { From e30f48ad2db29581a9f077eb9fc426914c9c22da Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Thu, 6 Mar 2025 19:48:29 +0100 Subject: [PATCH 12/63] test: wip events decoding --- Cargo.lock | 3 + Cargo.toml | 1 + crates/engine/Cargo.toml | 4 +- crates/primitives/src/batch.rs | 2 +- crates/watcher/Cargo.toml | 4 +- crates/watcher/src/contract.rs | 4 + crates/watcher/src/lib.rs | 152 ++++++++++++++++++++++++------- crates/watcher/src/test_utils.rs | 16 +++- 8 files changed, 145 insertions(+), 41 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 13443dea..fea57f9f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -125,6 +125,7 @@ dependencies = [ "auto_impl", "c-kzg", "derive_more 1.0.0", + "k256", "rand 0.8.5", "serde", ] @@ -737,6 +738,7 @@ dependencies = [ "alloy-rlp", "alloy-serde 0.9.2", "alloy-sol-types", + "arbitrary", "itertools 0.13.0", "serde", "serde_json", @@ -8289,6 +8291,7 @@ dependencies = [ "alloy-rpc-types-eth 0.9.2", "alloy-sol-types", "alloy-transport 0.9.2", + "arbitrary", "async-trait", "derive_more 2.0.1", "eyre", diff --git a/Cargo.toml b/Cargo.toml index 07975966..5e9322d0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -148,6 +148,7 @@ rollup-node-watcher = { path = "crates/watcher" } rollup-node-primitives = { path = "crates/primitives" } # misc +arbitrary = "1.4" async-trait = "0.1" derive_more = "2.0" eyre = "0.6" diff --git a/crates/engine/Cargo.toml b/crates/engine/Cargo.toml index e78a4945..e950ab18 100644 --- a/crates/engine/Cargo.toml +++ b/crates/engine/Cargo.toml @@ -40,10 +40,10 @@ tokio.workspace = true tracing.workspace = true # test-utils -arbitrary = { version = "1.3", optional = true } +arbitrary = { workspace = true, optional = true } [dev-dependencies] -arbitrary = "1.3" +arbitrary.workspace = true reth-testing-utils = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } [features] diff --git a/crates/primitives/src/batch.rs b/crates/primitives/src/batch.rs index b165336f..8a69c8b8 100644 --- a/crates/primitives/src/batch.rs +++ b/crates/primitives/src/batch.rs @@ -139,7 +139,7 @@ impl BatchInputBuilder { let blob_hash = blob.first().cloned()?; Some(BatchInputV2 { batch_input_data, blob_hash }.into()) } - (None, None, Some(blobs)) => { + (None, None, Some(_blobs)) => { // TODO(greg): for now None but this will be used in Euclid. None } diff --git a/crates/watcher/Cargo.toml b/crates/watcher/Cargo.toml index 08619d75..7b29397e 100644 --- a/crates/watcher/Cargo.toml +++ b/crates/watcher/Cargo.toml @@ -35,8 +35,10 @@ tokio = { workspace = true, features = ["full"] } tracing.workspace = true [dev-dependencies] -alloy-consensus = { workspace = true, features = ["arbitrary"] } +alloy-consensus = { workspace = true, features = ["arbitrary", "k256"] } alloy-eips.workspace = true +alloy-rpc-types-eth = { workspace = true, features = ["arbitrary"] } +arbitrary.workspace = true eyre.workspace = true rand = "0.9" diff --git a/crates/watcher/src/contract.rs b/crates/watcher/src/contract.rs index bbb6a4d1..d7f3c695 100644 --- a/crates/watcher/src/contract.rs +++ b/crates/watcher/src/contract.rs @@ -4,6 +4,7 @@ use scroll_alloy_consensus::TxL1Message; sol! { // *********************EVENTS********************* + #[cfg_attr(test, derive(arbitrary::Arbitrary))] event QueueTransaction( address indexed sender, address indexed target, @@ -13,11 +14,14 @@ sol! { bytes data ); + #[cfg_attr(test, derive(arbitrary::Arbitrary))] event CommitBatch(uint256 indexed batchIndex, bytes32 indexed batchHash); + #[cfg_attr(test, derive(arbitrary::Arbitrary))] event FinalizeBatch(uint256 indexed batchIndex, bytes32 indexed batchHash, bytes32 stateRoot, bytes32 withdrawRoot); // *********************FUNCTION********************* + #[cfg_attr(test, derive(arbitrary::Arbitrary))] function commitBatch( uint8 version, bytes calldata parentBatchHeader, diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index 87e9c277..fc248315 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -19,7 +19,7 @@ use crate::contract::{ use std::{collections::VecDeque, sync::Arc, time::Duration}; use alloy_network::Ethereum; -use alloy_primitives::{BlockNumber, Bytes, B256}; +use alloy_primitives::{BlockNumber, B256}; use alloy_provider::{Network, Provider}; use alloy_rpc_types_eth::{BlockNumberOrTag, BlockTransactionsKind, Log, TransactionTrait}; use error::L1WatcherResult; @@ -449,11 +449,14 @@ mod tests { private::arbitrary::{Arbitrary, Unstructured}, Sealable, }; + use alloy_sol_types::SolEvent; use rand::RngCore; - fn test_l1_watcher( + // Returns a L1Watcher along with the receiver end of the L1Notifications. + fn l1_watcher( unfinalized_blocks: Vec
, provider_blocks: Vec
, + transactions: Vec, finalized: Header, latest: Header, ) -> (L1Watcher, mpsc::Receiver>) { @@ -461,7 +464,8 @@ mod tests { provider_blocks.into_iter().map(|h| Block { header: h, ..Default::default() }); let finalized = Block { header: finalized, ..Default::default() }; let latest = Block { header: latest, ..Default::default() }; - let provider = MockProvider::new(provider_blocks, finalized, latest); + let provider = + MockProvider::new(provider_blocks, transactions.into_iter(), finalized, latest); let (tx, rx) = mpsc::channel(LOGS_QUERY_BLOCK_RANGE as usize); ( @@ -476,26 +480,45 @@ mod tests { ) } + // Returns an arbitrary instance of the passed type. + macro_rules! random { + ($typ: ty) => {{ + let mut bytes = Box::new([0u8; size_of::<$typ>()]); + rand::rng().fill_bytes(bytes.as_mut_slice()); + let mut u = Unstructured::new(bytes.as_slice()); + <$typ>::arbitrary(&mut u).unwrap() + }}; + } + + // Returns a random header. fn random_header() -> Header { - let mut bytes = [0u8; 1000]; - rand::rng().fill_bytes(bytes.as_mut_slice()); - let mut u = Unstructured::new(&bytes); - let header = alloy_consensus::Header::arbitrary(&mut u).expect("arbitrary block"); + let header = random!(alloy_consensus::Header); Header::from_consensus(header.seal_slow(), None, None) } - fn test_chain(len: usize) -> (Header, Header, Vec
) { + // Returns a random transaction. + fn random_transaction() -> alloy_rpc_types_eth::Transaction { + let transaction = random!(alloy_consensus::Signed).into(); + alloy_rpc_types_eth::Transaction { + inner: transaction, + block_hash: None, + block_number: None, + transaction_index: None, + effective_gas_price: None, + from: Default::default(), + } + } + + // Returns a chain of random block of size `len`. + fn chain(len: usize) -> (Header, Header, Vec
) { assert!(len >= 2, "len must be greater than or equal to 2"); let mut headers = Vec::with_capacity(len); - let mut bytes = [0u8; 1000]; - rand::rng().fill_bytes(bytes.as_mut_slice()); - let mut u = Unstructured::new(&bytes); - let mut parent_hash = u.arbitrary().unwrap(); - let mut number = u.arbitrary().unwrap(); + let mut parent_hash = random!(B256); + let mut number = random!(u64); for _ in 0..len { - let mut header = alloy_consensus::Header::arbitrary(&mut u).expect("arbitrary header"); + let mut header = random!(alloy_consensus::Header); header.parent_hash = parent_hash; header.number = number; @@ -526,13 +549,14 @@ mod tests { #[tokio::test] async fn test_fetch_unfinalized_chain_no_reorg() -> eyre::Result<()> { // Given - let (finalized, latest, chain) = test_chain(21); + let (finalized, latest, chain) = chain(21); let unfinalized_blocks = chain[1..11].to_vec(); let provider_blocks = chain[10..21].to_vec(); - let (watcher, _) = test_l1_watcher( + let (watcher, _) = l1_watcher( unfinalized_blocks, provider_blocks.clone(), + vec![], finalized.clone(), latest.clone(), ); @@ -549,14 +573,15 @@ mod tests { #[tokio::test] async fn test_fetch_unfinalized_chain_reorg() -> eyre::Result<()> { // Given - let (finalized, _, chain) = test_chain(21); + let (finalized, _, chain) = chain(21); let unfinalized_blocks = chain[1..21].to_vec(); let mut provider_blocks = fork(&chain[10], 10); let latest = provider_blocks[9].clone(); - let (watcher, _) = test_l1_watcher( + let (watcher, _) = l1_watcher( unfinalized_blocks, provider_blocks.clone(), + vec![], finalized.clone(), latest.clone(), ); @@ -575,8 +600,8 @@ mod tests { #[tokio::test] async fn test_handle_finalized_empty_state() -> eyre::Result<()> { // Given - let (finalized, latest, _) = test_chain(2); - let (mut watcher, _) = test_l1_watcher(vec![], vec![], finalized.clone(), latest); + let (finalized, latest, _) = chain(2); + let (mut watcher, _) = l1_watcher(vec![], vec![], vec![], finalized.clone(), latest); // When watcher.handle_finalized_block(&finalized).await; @@ -590,9 +615,9 @@ mod tests { #[tokio::test] async fn test_handle_finalize_at_mid_state() -> eyre::Result<()> { // Given - let (_, latest, chain) = test_chain(10); + let (_, latest, chain) = chain(10); let finalized = chain[5].clone(); - let (mut watcher, _) = test_l1_watcher(chain, vec![], finalized.clone(), latest); + let (mut watcher, _) = l1_watcher(chain, vec![], vec![], finalized.clone(), latest); // When watcher.handle_finalized_block(&finalized).await; @@ -606,9 +631,9 @@ mod tests { #[tokio::test] async fn test_handle_finalized_at_end_state() -> eyre::Result<()> { // Given - let (_, latest, chain) = test_chain(10); + let (_, latest, chain) = chain(10); let finalized = latest.clone(); - let (mut watcher, _) = test_l1_watcher(chain, vec![], finalized.clone(), latest); + let (mut watcher, _) = l1_watcher(chain, vec![], vec![], finalized.clone(), latest); // When watcher.handle_finalized_block(&finalized).await; @@ -622,8 +647,8 @@ mod tests { #[tokio::test] async fn test_handle_latest_block_match_unfinalized_tail() -> eyre::Result<()> { // Given - let (finalized, latest, chain) = test_chain(10); - let (mut watcher, _) = test_l1_watcher(chain, vec![], finalized.clone(), latest.clone()); + let (finalized, latest, chain) = chain(10); + let (mut watcher, _) = l1_watcher(chain, vec![], vec![], finalized.clone(), latest.clone()); // When watcher.handle_latest_block(&finalized, &latest).await?; @@ -638,10 +663,10 @@ mod tests { #[tokio::test] async fn test_handle_latest_block_extend_unfinalized() -> eyre::Result<()> { // Given - let (finalized, latest, chain) = test_chain(10); + let (finalized, latest, chain) = chain(10); let unfinalized_chain = chain[..9].to_vec(); let (mut watcher, _) = - test_l1_watcher(unfinalized_chain, vec![], finalized.clone(), latest.clone()); + l1_watcher(unfinalized_chain, vec![], vec![], finalized.clone(), latest.clone()); assert_eq!(watcher.unfinalized_blocks.len(), 9); @@ -658,11 +683,16 @@ mod tests { #[tokio::test] async fn test_handle_latest_block_missing_unfinalized_blocks() -> eyre::Result<()> { // Given - let (finalized, latest, chain) = test_chain(10); + let (finalized, latest, chain) = chain(10); let unfinalized_chain = chain[..5].to_vec(); let provider_blocks = chain[4..].to_vec(); - let (mut watcher, mut receiver) = - test_l1_watcher(unfinalized_chain, provider_blocks, finalized.clone(), latest.clone()); + let (mut watcher, mut receiver) = l1_watcher( + unfinalized_chain, + provider_blocks, + vec![], + finalized.clone(), + latest.clone(), + ); // When watcher.handle_latest_block(&finalized, &latest).await?; @@ -679,12 +709,12 @@ mod tests { #[tokio::test] async fn test_handle_latest_block_reorg() -> eyre::Result<()> { // Given - let (finalized, _, chain) = test_chain(10); + let (finalized, _, chain) = chain(10); let reorged = fork(&chain[5], 10); let latest = reorged[9].clone(); let provider_blocks = reorged; let (mut watcher, mut receiver) = - test_l1_watcher(chain.clone(), provider_blocks, finalized.clone(), latest.clone()); + l1_watcher(chain.clone(), provider_blocks, vec![], finalized.clone(), latest.clone()); // When watcher.current_block_number = chain[9].number; @@ -702,10 +732,64 @@ mod tests { Ok(()) } + #[tokio::test] + async fn test_handle_l1_messages() -> eyre::Result<()> { + // Given + let (finalized, latest, chain) = chain(10); + let (watcher, mut receiver) = + l1_watcher(chain, vec![], vec![], finalized.clone(), latest.clone()); + + // build test logs. + let mut logs = (0..10).map(|_| random!(Log)).collect::>(); + let mut queue_transaction = random!(Log); + let mut inner_log = random!(alloy_primitives::Log); + inner_log.data = random!(QueueTransaction).encode_log_data(); + queue_transaction.inner = inner_log; + queue_transaction.block_number = Some(random!(u64)); + logs.push(queue_transaction); + + // When + watcher.handle_l1_messages(&logs).await?; + + // Then + let notification = receiver.recv().await.unwrap(); + assert!(matches!(*notification, L1Notification::L1Message(_))); + + Ok(()) + } + + #[tokio::test] + async fn test_handle_batch_commits() -> eyre::Result<()> { + // Given + let (finalized, latest, chain) = chain(10); + let mut tx = random_transaction(); + tx.inner + let (watcher, mut receiver) = + l1_watcher(chain, vec![], vec![tx.clone()], finalized.clone(), latest.clone()); + + // build test logs. + let mut logs = (0..10).map(|_| random!(Log)).collect::>(); + let mut queue_transaction = random!(Log); + let mut inner_log = random!(alloy_primitives::Log); + inner_log.data = random!(CommitBatch).encode_log_data(); + queue_transaction.inner = inner_log; + queue_transaction.transaction_hash = Some(*tx.inner.tx_hash()); + logs.push(queue_transaction); + + // When + watcher.handle_batch_commits(&logs).await?; + + // Then + let notification = receiver.recv().await.unwrap(); + assert!(matches!(*notification, L1Notification::BatchCommit(_))); + + Ok(()) + } + // // #[tokio::test] // async fn test_handle_latest_block_not_empty_unfinalized() -> eyre::Result<()> { - // let chain = test_chain(10); + // let chain = chain(10); // let (mut watcher, _) = test_l1_watcher(chain, VecDeque::from(vec![block.clone()])); // // watcher.handle_latest_block().await?; diff --git a/crates/watcher/src/test_utils.rs b/crates/watcher/src/test_utils.rs index 3ba5f5c9..2a591b40 100644 --- a/crates/watcher/src/test_utils.rs +++ b/crates/watcher/src/test_utils.rs @@ -3,15 +3,16 @@ use std::collections::HashMap; use alloy_eips::BlockNumberOrTag; use alloy_network::Ethereum; -use alloy_primitives::BlockNumber; -use alloy_provider::{Provider, RootProvider}; -use alloy_rpc_types_eth::{BlockId, BlockTransactionsKind}; +use alloy_primitives::{BlockNumber, TxHash, B256}; +use alloy_provider::{Provider, ProviderCall, RootProvider}; +use alloy_rpc_types_eth::{BlockId, BlockTransactionsKind, Transaction}; use alloy_transport::{BoxTransport, TransportResult}; /// A mock implementation of the [`Provider`] trait. #[derive(Debug)] pub struct MockProvider { blocks: HashMap, + transactions: HashMap, finalized_block: Block, latest_block: Block, } @@ -21,11 +22,13 @@ impl MockProvider { /// block. pub fn new( blocks: impl Iterator, + transactions: impl Iterator, finalized_block: Block, latest_block: Block, ) -> Self { Self { blocks: blocks.map(|b| (b.header.number, b)).collect(), + transactions: transactions.map(|tx| (*tx.inner.tx_hash(), tx)).collect(), finalized_block, latest_block, } @@ -53,4 +56,11 @@ impl Provider for MockProvider { }, }) } + + fn get_transaction_by_hash( + &self, + hash: TxHash, + ) -> ProviderCall> { + ProviderCall::Ready(Some(Ok(self.transactions.get(&hash).cloned()))) + } } From 3de6a3f3f2e2b0197f5a81edcef038b841eb5057 Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Fri, 7 Mar 2025 09:34:56 +0100 Subject: [PATCH 13/63] test: commit and finalize batch logs --- crates/watcher/src/lib.rs | 119 ++++++++++++++------------------------ 1 file changed, 45 insertions(+), 74 deletions(-) diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index fc248315..6aa95ed6 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -444,12 +444,12 @@ where #[cfg(test)] mod tests { use super::*; - use crate::test_utils::MockProvider; + use crate::{contract::commitBatchCall, test_utils::MockProvider}; use alloy_primitives::{ private::arbitrary::{Arbitrary, Unstructured}, - Sealable, + Bytes, Sealable, }; - use alloy_sol_types::SolEvent; + use alloy_sol_types::{SolCall, SolEvent}; use rand::RngCore; // Returns a L1Watcher along with the receiver end of the L1Notifications. @@ -497,8 +497,12 @@ mod tests { } // Returns a random transaction. - fn random_transaction() -> alloy_rpc_types_eth::Transaction { - let transaction = random!(alloy_consensus::Signed).into(); + fn random_transaction(input: Bytes) -> alloy_rpc_types_eth::Transaction { + let mut transaction = random!(alloy_consensus::Signed).into(); + match transaction { + alloy_consensus::TxEnvelope::Eip1559(ref mut tx) => tx.tx_mut().input = input, + _ => unreachable!(), + }; alloy_rpc_types_eth::Transaction { inner: transaction, block_hash: None, @@ -530,7 +534,9 @@ mod tests { (headers.first().unwrap().clone(), headers.last().unwrap().clone(), headers) } - fn fork(header: &Header, len: usize) -> Vec
{ + // Returns a chain of random block of size `len`, starting at the provided header. + + fn chain_from(header: &Header, len: usize) -> Vec
{ let mut blocks = Vec::with_capacity(len); blocks.push(header.clone()); @@ -575,7 +581,7 @@ mod tests { // Given let (finalized, _, chain) = chain(21); let unfinalized_blocks = chain[1..21].to_vec(); - let mut provider_blocks = fork(&chain[10], 10); + let mut provider_blocks = chain_from(&chain[10], 10); let latest = provider_blocks[9].clone(); let (watcher, _) = l1_watcher( @@ -710,7 +716,7 @@ mod tests { async fn test_handle_latest_block_reorg() -> eyre::Result<()> { // Given let (finalized, _, chain) = chain(10); - let reorged = fork(&chain[5], 10); + let reorged = chain_from(&chain[5], 10); let latest = reorged[9].clone(); let provider_blocks = reorged; let (mut watcher, mut receiver) = @@ -762,19 +768,19 @@ mod tests { async fn test_handle_batch_commits() -> eyre::Result<()> { // Given let (finalized, latest, chain) = chain(10); - let mut tx = random_transaction(); - tx.inner + let tx = random_transaction(random!(commitBatchCall).abi_encode().into()); let (watcher, mut receiver) = l1_watcher(chain, vec![], vec![tx.clone()], finalized.clone(), latest.clone()); // build test logs. let mut logs = (0..10).map(|_| random!(Log)).collect::>(); - let mut queue_transaction = random!(Log); + let mut batch_commit = random!(Log); let mut inner_log = random!(alloy_primitives::Log); inner_log.data = random!(CommitBatch).encode_log_data(); - queue_transaction.inner = inner_log; - queue_transaction.transaction_hash = Some(*tx.inner.tx_hash()); - logs.push(queue_transaction); + batch_commit.inner = inner_log; + batch_commit.transaction_hash = Some(*tx.inner.tx_hash()); + batch_commit.block_number = Some(random!(u64)); + logs.push(batch_commit); // When watcher.handle_batch_commits(&logs).await?; @@ -786,64 +792,29 @@ mod tests { Ok(()) } - // - // #[tokio::test] - // async fn test_handle_latest_block_not_empty_unfinalized() -> eyre::Result<()> { - // let chain = chain(10); - // let (mut watcher, _) = test_l1_watcher(chain, VecDeque::from(vec![block.clone()])); - // - // watcher.handle_latest_block().await?; - // assert_eq!(watcher.unfinalized_blocks.len(), 11); - // assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); - // - // assert_eq!(watcher.forkchoice_state.head.number, block.header.number); - // assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); - // - // Ok(()) - // } - // - // #[tokio::test] - // async fn test_handle_latest_block_reorg_mid() -> eyre::Result<()> { - // let chain, _ = test_chain(10); - // let block = Block { - // header: chain.get(5).unwrap().clone(), - // uncles: vec![], - // transactions: BlockTransactions::Hashes(vec![]), - // withdrawals: None, - // }; - // let (mut watcher, _) = test_l1_watcher(chain, VecDeque::from(vec![block.clone()])); - // - // watcher.handle_latest_block().await?; - // assert_eq!(watcher.unfinalized_blocks.len(), 6); - // assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); - // - // assert_eq!(watcher.forkchoice_state.head.number, block.header.number); - // assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); - // - // Ok(()) - // } - // - // #[tokio::test] - // async fn test_handle_latest_block_reorg_all() -> eyre::Result<()> { - // let (chain, _) = test_chain(10); - // let block = random_block(); - // let (mut watcher, mut notifications) = - // test_l1_watcher(chain.clone(), VecDeque::from(vec![block.clone()])); - // - // watcher.handle_latest_block().await?; - // assert_eq!(watcher.unfinalized_blocks.len(), 1); - // assert_eq!(watcher.unfinalized_blocks.pop_back().unwrap(), block.header); - // - // assert_eq!(watcher.forkchoice_state.head.number, block.header.number); - // assert_eq!(watcher.forkchoice_state.head.hash, block.header.hash); - // - // let reorg = notifications.recv().await.unwrap(); - // if let L1Notification::Reorg(reorg) = reorg.as_ref() { - // assert_eq!(reorg, &BTreeMap::from_iter(chain.into_iter().map(|b| (b.number, b)))); - // } else { - // panic!("Expected reorg notification"); - // } - // - // Ok(()) - // } + #[tokio::test] + async fn test_handle_finalize_commits() -> eyre::Result<()> { + // Given + let (finalized, latest, chain) = chain(10); + let (watcher, mut receiver) = + l1_watcher(chain, vec![], vec![], finalized.clone(), latest.clone()); + + // build test logs. + let mut logs = (0..10).map(|_| random!(Log)).collect::>(); + let mut finalize_commit = random!(Log); + let mut inner_log = random!(alloy_primitives::Log); + inner_log.data = random!(FinalizeBatch).encode_log_data(); + finalize_commit.inner = inner_log; + finalize_commit.block_number = Some(random!(u64)); + logs.push(finalize_commit); + + // When + watcher.handle_batch_finalization(&logs).await?; + + // Then + let notification = receiver.recv().await.unwrap(); + assert!(matches!(*notification, L1Notification::BatchFinalization { .. })); + + Ok(()) + } } From 99c90af5826b04259f4507be958a3f8598c1211e Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Fri, 7 Mar 2025 20:55:22 +0100 Subject: [PATCH 14/63] test: utils --- crates/watcher/src/test_utils.rs | 66 ---------------- crates/watcher/src/test_utils/arbitrary.rs | 74 ++++++++++++++++++ crates/watcher/src/test_utils/chain.rs | 22 ++++++ crates/watcher/src/test_utils/mod.rs | 8 ++ crates/watcher/src/test_utils/provider.rs | 88 ++++++++++++++++++++++ 5 files changed, 192 insertions(+), 66 deletions(-) delete mode 100644 crates/watcher/src/test_utils.rs create mode 100644 crates/watcher/src/test_utils/arbitrary.rs create mode 100644 crates/watcher/src/test_utils/chain.rs create mode 100644 crates/watcher/src/test_utils/mod.rs create mode 100644 crates/watcher/src/test_utils/provider.rs diff --git a/crates/watcher/src/test_utils.rs b/crates/watcher/src/test_utils.rs deleted file mode 100644 index 2a591b40..00000000 --- a/crates/watcher/src/test_utils.rs +++ /dev/null @@ -1,66 +0,0 @@ -use crate::Block; -use std::collections::HashMap; - -use alloy_eips::BlockNumberOrTag; -use alloy_network::Ethereum; -use alloy_primitives::{BlockNumber, TxHash, B256}; -use alloy_provider::{Provider, ProviderCall, RootProvider}; -use alloy_rpc_types_eth::{BlockId, BlockTransactionsKind, Transaction}; -use alloy_transport::{BoxTransport, TransportResult}; - -/// A mock implementation of the [`Provider`] trait. -#[derive(Debug)] -pub struct MockProvider { - blocks: HashMap, - transactions: HashMap, - finalized_block: Block, - latest_block: Block, -} - -impl MockProvider { - /// Returns a new [`MockProvider`] from the iterator over blocks, the finalized and the latest - /// block. - pub fn new( - blocks: impl Iterator, - transactions: impl Iterator, - finalized_block: Block, - latest_block: Block, - ) -> Self { - Self { - blocks: blocks.map(|b| (b.header.number, b)).collect(), - transactions: transactions.map(|tx| (*tx.inner.tx_hash(), tx)).collect(), - finalized_block, - latest_block, - } - } -} - -#[async_trait::async_trait] -impl Provider for MockProvider { - fn root(&self) -> &RootProvider { - unreachable!("unused calls") - } - - async fn get_block( - &self, - block_id: BlockId, - _kind: BlockTransactionsKind, - ) -> TransportResult> { - Ok(match block_id { - BlockId::Hash(_) => unimplemented!("hash query is not supported"), - BlockId::Number(number_or_tag) => match number_or_tag { - BlockNumberOrTag::Latest => Some(self.latest_block.clone()), - BlockNumberOrTag::Finalized => Some(self.finalized_block.clone()), - BlockNumberOrTag::Number(number) => self.blocks.get(&number).cloned(), - _ => unimplemented!("can only query by number, latest or finalized"), - }, - }) - } - - fn get_transaction_by_hash( - &self, - hash: TxHash, - ) -> ProviderCall> { - ProviderCall::Ready(Some(Ok(self.transactions.get(&hash).cloned()))) - } -} diff --git a/crates/watcher/src/test_utils/arbitrary.rs b/crates/watcher/src/test_utils/arbitrary.rs new file mode 100644 index 00000000..c8206a60 --- /dev/null +++ b/crates/watcher/src/test_utils/arbitrary.rs @@ -0,0 +1,74 @@ +use alloy_consensus::{ + Signed, TxEip1559, TxEip2930, TxEip4844, TxEip4844Variant, TxEip7702, TxEnvelope, TxLegacy, + TxType, +}; +use alloy_primitives::{Address, Bytes}; +use alloy_rpc_types_eth::Transaction; +use arbitrary::Arbitrary; + +/// Returns an arbitrary instance of the passed type. +#[macro_export] +macro_rules! random { + ($typ: ty) => {{ + let mut bytes = Box::new([0u8; size_of::<$typ>()]); + let mut rng = ::rand::rng(); + ::rand::RngCore::fill_bytes(&mut rng, bytes.as_mut_slice()); + let mut u = ::arbitrary::Unstructured::new(bytes.as_slice()); + <$typ>::arbitrary(&mut u).unwrap() + }}; +} + +/// Helper instance to build an arbitrary transaction. +#[derive(Debug)] +pub struct ArbitraryTxBuilder { + tx: Transaction, +} + +impl ArbitraryTxBuilder { + /// Creates a random builder for a transaction. + pub fn new() -> Self { + let envelope = random!(TxEnvelope); + Self { + tx: Transaction { + inner: envelope, + block_hash: None, + block_number: None, + transaction_index: None, + effective_gas_price: None, + from: random!(Address), + }, + } + } + + /// Modifies the type of the random transaction. + pub fn with_ty(mut self, ty: TxType) -> Self { + match ty { + TxType::Legacy => self.tx.inner = random!(Signed).into(), + TxType::Eip2930 => self.tx.inner = random!(Signed).into(), + TxType::Eip1559 => self.tx.inner = random!(Signed).into(), + TxType::Eip4844 => self.tx.inner = random!(Signed).into(), + TxType::Eip7702 => self.tx.inner = random!(Signed).into(), + } + self + } + + /// Modifies the input of the random transaction. + pub fn with_input(mut self, input: Bytes) -> Self { + match self.tx.inner { + TxEnvelope::Legacy(ref mut tx) => tx.tx_mut().input = input, + TxEnvelope::Eip2930(ref mut tx) => tx.tx_mut().input = input, + TxEnvelope::Eip1559(ref mut tx) => tx.tx_mut().input = input, + TxEnvelope::Eip4844(ref mut tx) => match tx.tx_mut() { + TxEip4844Variant::TxEip4844(tx) => tx.input = input, + TxEip4844Variant::TxEip4844WithSidecar(tx) => tx.tx.input = input, + }, + TxEnvelope::Eip7702(ref mut tx) => tx.tx_mut().input = input, + } + self + } + + /// Returns the built transaction. + pub fn build(self) -> Transaction { + self.tx + } +} diff --git a/crates/watcher/src/test_utils/chain.rs b/crates/watcher/src/test_utils/chain.rs new file mode 100644 index 00000000..68804b9e --- /dev/null +++ b/crates/watcher/src/test_utils/chain.rs @@ -0,0 +1,22 @@ +use crate::{random, Header}; +use arbitrary::Arbitrary; + +/// Returns a chain of random block of size `len`, starting at the provided header. +pub fn chain_from(header: &Header, len: usize) -> Vec
{ + if len < 2 { + panic!("fork should have a minimal length of two"); + } + let mut blocks = Vec::with_capacity(len); + blocks.push(header.clone()); + + let next_header = |header: &Header| { + let mut next = random!(Header); + next.parent_hash = header.hash; + next.number = header.number + 1; + next + }; + for i in 0..len - 1 { + blocks.push(next_header(&blocks[i])); + } + blocks +} diff --git a/crates/watcher/src/test_utils/mod.rs b/crates/watcher/src/test_utils/mod.rs new file mode 100644 index 00000000..3c8b61a3 --- /dev/null +++ b/crates/watcher/src/test_utils/mod.rs @@ -0,0 +1,8 @@ +/// Test utils for arbitrary. +pub mod arbitrary; + +/// Test utils for creating chains of blocks. +pub mod chain; + +/// Test utils for provider. +pub mod provider; diff --git a/crates/watcher/src/test_utils/provider.rs b/crates/watcher/src/test_utils/provider.rs new file mode 100644 index 00000000..237f4187 --- /dev/null +++ b/crates/watcher/src/test_utils/provider.rs @@ -0,0 +1,88 @@ +use crate::Block; +use alloy_eips::BlockNumberOrTag; +use alloy_json_rpc::RpcError; +use alloy_network::Ethereum; +use alloy_primitives::{BlockNumber, TxHash, B256}; +use alloy_provider::{Provider, ProviderCall, RootProvider}; +use alloy_rpc_types_eth::{BlockId, BlockTransactionsKind, Filter, Log, Transaction}; +use alloy_transport::{BoxTransport, TransportResult}; +use std::{collections::HashMap, sync::Arc}; +use tokio::sync::Mutex; + +/// A mock implementation of the [`Provider`] trait. +#[derive(Debug)] +pub struct MockProvider { + blocks: Arc>>>, + transactions: HashMap, + finalized_blocks: Arc>>, + latest_blocks: Arc>>, +} + +impl MockProvider { + /// Returns a new [`MockProvider`] from the iterator over blocks, the finalized and the latest + /// block. + pub fn new( + blocks: impl Iterator, + transactions: impl Iterator, + mut finalized_blocks: Vec, + mut latest_blocks: Vec, + ) -> Self { + let mut b = HashMap::new(); + for block in blocks { + b.entry(block.header.number).or_insert(Vec::new()).push(block); + } + finalized_blocks.sort_by(|a, b| a.header.number.cmp(&b.header.number)); + latest_blocks.sort_by(|a, b| a.header.number.cmp(&b.header.number)); + Self { + blocks: Arc::new(Mutex::new(b)), + transactions: transactions.map(|tx| (*tx.inner.tx_hash(), tx)).collect(), + finalized_blocks: Arc::new(Mutex::new(finalized_blocks)), + latest_blocks: Arc::new(Mutex::new(latest_blocks)), + } + } +} + +#[async_trait::async_trait] +impl Provider for MockProvider { + fn root(&self) -> &RootProvider { + unreachable!("unused calls") + } + + async fn get_block( + &self, + block_id: BlockId, + _kind: BlockTransactionsKind, + ) -> TransportResult> { + match block_id { + BlockId::Hash(_) => unimplemented!("hash query is not supported"), + BlockId::Number(number_or_tag) => match number_or_tag { + BlockNumberOrTag::Latest => { + let mut blocks = self.latest_blocks.lock().await; + let val = if blocks.len() > 1 { blocks.drain(..1).next() } else { None }; + val.ok_or(RpcError::NullResp).map(Some) + } + BlockNumberOrTag::Finalized => { + let mut blocks = self.finalized_blocks.lock().await; + let val = if blocks.len() > 1 { blocks.drain(..1).next() } else { None }; + val.ok_or(RpcError::NullResp).map(Some) + } + BlockNumberOrTag::Number(number) => { + let mut blocks = self.blocks.lock().await; + Ok(blocks.get_mut(&number).and_then(|blocks| blocks.drain(..1).next())) + } + _ => unimplemented!("can only query by number, latest or finalized"), + }, + } + } + + fn get_transaction_by_hash( + &self, + hash: TxHash, + ) -> ProviderCall> { + ProviderCall::Ready(Some(Ok(self.transactions.get(&hash).cloned()))) + } + + async fn get_logs(&self, _filter: &Filter) -> TransportResult> { + Ok(vec![]) + } +} From 883e160f63f25a0dab824af3e0b3c10565197f85 Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Fri, 7 Mar 2025 20:59:47 +0100 Subject: [PATCH 15/63] feat: tracing --- Cargo.lock | 1 + crates/primitives/src/batch.rs | 6 +- crates/primitives/src/transaction.rs | 2 +- crates/watcher/Cargo.toml | 5 +- crates/watcher/src/lib.rs | 132 +++++++++------------------ 5 files changed, 53 insertions(+), 93 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fea57f9f..b215b3ba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8301,6 +8301,7 @@ dependencies = [ "thiserror 2.0.11", "tokio", "tracing", + "tracing-subscriber", ] [[package]] diff --git a/crates/primitives/src/batch.rs b/crates/primitives/src/batch.rs index 8a69c8b8..09dfb86b 100644 --- a/crates/primitives/src/batch.rs +++ b/crates/primitives/src/batch.rs @@ -5,7 +5,7 @@ use derive_more; /// /// This is used as input for the derivation pipeline. All data remains in its raw serialized form. /// The data is then deserialized, enriched and processed in the derivation pipeline. -#[derive(Debug, derive_more::From)] +#[derive(Debug, PartialEq, Eq, derive_more::From)] pub enum BatchInput { /// The input data for a batch. BatchInputDataV1(BatchInputV1), @@ -14,7 +14,7 @@ pub enum BatchInput { } /// The input data for a batch. -#[derive(Debug)] +#[derive(Debug, PartialEq, Eq)] pub struct BatchInputV1 { /// The version of the batch input data. pub version: u8, @@ -33,7 +33,7 @@ pub struct BatchInputV1 { } /// The input data for a batch including the L1 blob hash. -#[derive(Debug)] +#[derive(Debug, PartialEq, Eq)] pub struct BatchInputV2 { /// The base input data for the batch. pub batch_input_data: BatchInputV1, diff --git a/crates/primitives/src/transaction.rs b/crates/primitives/src/transaction.rs index 86d45ddf..fb4e7cf1 100644 --- a/crates/primitives/src/transaction.rs +++ b/crates/primitives/src/transaction.rs @@ -1,7 +1,7 @@ use scroll_alloy_consensus::TxL1Message; /// A L1 message that is part of the L1 message queue. -#[derive(Debug)] +#[derive(Debug, PartialEq, Eq)] pub struct L1MessageWithBlockNumber { /// The L1 block number at which the L1 message was generated. pub block_number: u64, diff --git a/crates/watcher/Cargo.toml b/crates/watcher/Cargo.toml index 7b29397e..3ae265eb 100644 --- a/crates/watcher/Cargo.toml +++ b/crates/watcher/Cargo.toml @@ -28,8 +28,10 @@ rollup-node-primitives.workspace = true scroll-alloy-consensus.workspace = true # misc +arbitrary = { workspace = true, optional = true } async-trait.workspace = true derive_more = { workspace = true, features = ["from"] } +rand = { version = "0.9", optional = true } thiserror.workspace = true tokio = { workspace = true, features = ["full"] } tracing.workspace = true @@ -41,6 +43,7 @@ alloy-rpc-types-eth = { workspace = true, features = ["arbitrary"] } arbitrary.workspace = true eyre.workspace = true rand = "0.9" +tracing-subscriber = "0.3" [features] -test-utils = ["alloy-eips"] +test-utils = ["alloy-eips", "arbitrary", "rand", "alloy-consensus/arbitrary"] diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index 6aa95ed6..9b6208be 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -69,7 +69,7 @@ pub struct L1Watcher { } /// The L1 notification type yielded by the [`L1Watcher`]. -#[derive(Debug)] +#[derive(Debug, PartialEq, Eq)] pub enum L1Notification { /// A notification for a reorg of the L1 up to a given block number. Reorg(u64), @@ -178,6 +178,7 @@ where /// Handle the finalized block: /// - Update state and notify channel about finalization. /// - Drain finalized blocks from state. + #[tracing::instrument(target = "scroll::watcher", skip_all, fields(finalized = ?finalized.number))] async fn handle_finalized_block(&mut self, finalized: &Header) { // update the state and notify on channel. if self.l1_state.finalized < finalized.number { @@ -187,12 +188,14 @@ where // shortcircuit. if self.unfinalized_blocks.is_empty() { + tracing::trace!(target: "scroll::watcher", "no unfinalized blocks"); return } let tail_block = self.unfinalized_blocks.back().expect("tail exists"); if tail_block.number < finalized.number { // drain all, the finalized block is past the tail. + tracing::trace!(target: "scroll::watcher", tail = ?tail_block.number, finalized = ?finalized.number, "draining all unfinalized blocks"); let _ = self.unfinalized_blocks.drain(0..); return } @@ -202,6 +205,7 @@ where // drain all blocks up to and including the finalized block. if let Some(position) = finalized_block_position { + tracing::trace!(target: "scroll::watcher", "draining range {:?}", 0..=position); self.unfinalized_blocks.drain(0..=position); } } @@ -211,6 +215,7 @@ where /// - Add to unfinalized blocks if it extends the chain. /// - Fetch chain of unfinalized blocks and emit potential reorg otherwise. /// - Finally, update state and notify channel about latest block. + #[tracing::instrument(target = "scroll::watcher", skip_all, fields(latest = ?finalized.number))] async fn handle_latest_block( &mut self, finalized: &Header, @@ -222,6 +227,7 @@ where return Ok(()) } else if tail.map_or(false, |h| h.hash == latest.parent_hash) { // latest block extends the tip. + tracing::trace!(target: "scroll::watcher", number = ?latest.number, hash = ?latest.hash, "block extends chain"); self.unfinalized_blocks.push_back(latest.clone()); } else { // chain reorged or need to backfill. @@ -235,6 +241,7 @@ where .map(|(old, _)| old.number - 1); if let Some(number) = reorg_block_number { + tracing::debug!(?number, "reorg"); // reset the current block number to the reorged block number if // we have indexed passed the reorg. if number < self.current_block_number { @@ -250,6 +257,7 @@ where } // Update the state and notify on the channel. + tracing::trace!(target: "scroll::watcher", number = ?latest.number, hash = ?latest.hash, "new block"); self.l1_state.head = latest.number; self.notify(L1Notification::NewBlock(latest.number)).await; @@ -346,6 +354,7 @@ where /// Fetches the chain of unfinalized blocks up to and including the latest block, ensuring no /// gaps are present in the chain. + #[tracing::instrument(target = "scroll::watcher", skip_all)] async fn fetch_unfinalized_chain( &self, finalized: &Header, @@ -354,7 +363,8 @@ where let mut current_block = latest.clone(); let mut chain = vec![current_block.clone()]; - // loop until we find a block contained in the chain or connected to finalized. + // loop until we find a block contained in the chain, connected to finalized or latest is + // finalized. let mut chain = loop { if self.unfinalized_blocks.contains(¤t_block) || current_block.parent_hash == finalized.hash @@ -362,6 +372,7 @@ where break chain; } + tracing::trace!(target: "scroll::watcher", number = ?(current_block.number - 1), "fetching block"); let block = self .execution_provider .get_block((current_block.number - 1).into(), BlockTransactionsKind::Hashes) @@ -444,13 +455,13 @@ where #[cfg(test)] mod tests { use super::*; - use crate::{contract::commitBatchCall, test_utils::MockProvider}; - use alloy_primitives::{ - private::arbitrary::{Arbitrary, Unstructured}, - Bytes, Sealable, + use crate::{ + contract::commitBatchCall, + test_utils::{arbitrary::ArbitraryTxBuilder, chain::chain_from, provider::MockProvider}, }; + use alloy_consensus::TxType; use alloy_sol_types::{SolCall, SolEvent}; - use rand::RngCore; + use arbitrary::Arbitrary; // Returns a L1Watcher along with the receiver end of the L1Notifications. fn l1_watcher( @@ -464,8 +475,12 @@ mod tests { provider_blocks.into_iter().map(|h| Block { header: h, ..Default::default() }); let finalized = Block { header: finalized, ..Default::default() }; let latest = Block { header: latest, ..Default::default() }; - let provider = - MockProvider::new(provider_blocks, transactions.into_iter(), finalized, latest); + let provider = MockProvider::new( + provider_blocks, + transactions.into_iter(), + vec![finalized], + vec![latest], + ); let (tx, rx) = mpsc::channel(LOGS_QUERY_BLOCK_RANGE as usize); ( @@ -480,76 +495,22 @@ mod tests { ) } - // Returns an arbitrary instance of the passed type. - macro_rules! random { - ($typ: ty) => {{ - let mut bytes = Box::new([0u8; size_of::<$typ>()]); - rand::rng().fill_bytes(bytes.as_mut_slice()); - let mut u = Unstructured::new(bytes.as_slice()); - <$typ>::arbitrary(&mut u).unwrap() - }}; - } - - // Returns a random header. - fn random_header() -> Header { - let header = random!(alloy_consensus::Header); - Header::from_consensus(header.seal_slow(), None, None) - } - - // Returns a random transaction. - fn random_transaction(input: Bytes) -> alloy_rpc_types_eth::Transaction { - let mut transaction = random!(alloy_consensus::Signed).into(); - match transaction { - alloy_consensus::TxEnvelope::Eip1559(ref mut tx) => tx.tx_mut().input = input, - _ => unreachable!(), - }; - alloy_rpc_types_eth::Transaction { - inner: transaction, - block_hash: None, - block_number: None, - transaction_index: None, - effective_gas_price: None, - from: Default::default(), - } - } - - // Returns a chain of random block of size `len`. + // Returns a chain of random headers of size `len`. fn chain(len: usize) -> (Header, Header, Vec
) { - assert!(len >= 2, "len must be greater than or equal to 2"); - - let mut headers = Vec::with_capacity(len); - - let mut parent_hash = random!(B256); - let mut number = random!(u64); - for _ in 0..len { - let mut header = random!(alloy_consensus::Header); - header.parent_hash = parent_hash; - header.number = number; - - let header = Header::from_consensus(header.seal_slow(), None, None); - parent_hash = header.hash; - number += 1; - headers.push(header); + if len < 2 { + panic!("chain should have a minimal length of two"); } - (headers.first().unwrap().clone(), headers.last().unwrap().clone(), headers) - } - - // Returns a chain of random block of size `len`, starting at the provided header. - - fn chain_from(header: &Header, len: usize) -> Vec
{ - let mut blocks = Vec::with_capacity(len); - blocks.push(header.clone()); - let next_header = |header: &Header| { - let mut next = random_header(); - next.parent_hash = header.hash; - next.number = header.number + 1; - next - }; - for i in 0..len - 1 { - blocks.push(next_header(&blocks[i])); + let mut chain = Vec::with_capacity(len); + chain.push(random!(Header)); + for i in 1..len { + let mut next = random!(Header); + next.number = chain[i - 1].number + 1; + next.parent_hash = chain[i - 1].hash; + chain.push(next); } - blocks + + (chain.first().unwrap().clone(), chain.last().unwrap().clone(), chain) } #[tokio::test] @@ -557,11 +518,10 @@ mod tests { // Given let (finalized, latest, chain) = chain(21); let unfinalized_blocks = chain[1..11].to_vec(); - let provider_blocks = chain[10..21].to_vec(); let (watcher, _) = l1_watcher( unfinalized_blocks, - provider_blocks.clone(), + chain.clone(), vec![], finalized.clone(), latest.clone(), @@ -691,14 +651,8 @@ mod tests { // Given let (finalized, latest, chain) = chain(10); let unfinalized_chain = chain[..5].to_vec(); - let provider_blocks = chain[4..].to_vec(); - let (mut watcher, mut receiver) = l1_watcher( - unfinalized_chain, - provider_blocks, - vec![], - finalized.clone(), - latest.clone(), - ); + let (mut watcher, mut receiver) = + l1_watcher(unfinalized_chain, chain, vec![], finalized.clone(), latest.clone()); // When watcher.handle_latest_block(&finalized, &latest).await?; @@ -718,9 +672,8 @@ mod tests { let (finalized, _, chain) = chain(10); let reorged = chain_from(&chain[5], 10); let latest = reorged[9].clone(); - let provider_blocks = reorged; let (mut watcher, mut receiver) = - l1_watcher(chain.clone(), provider_blocks, vec![], finalized.clone(), latest.clone()); + l1_watcher(chain.clone(), reorged, vec![], finalized.clone(), latest.clone()); // When watcher.current_block_number = chain[9].number; @@ -768,7 +721,10 @@ mod tests { async fn test_handle_batch_commits() -> eyre::Result<()> { // Given let (finalized, latest, chain) = chain(10); - let tx = random_transaction(random!(commitBatchCall).abi_encode().into()); + let tx = ArbitraryTxBuilder::new() + .with_ty(TxType::Eip1559) + .with_input(random!(commitBatchCall).abi_encode().into()) + .build(); let (watcher, mut receiver) = l1_watcher(chain, vec![], vec![tx.clone()], finalized.clone(), latest.clone()); From e608882180b18e479e0ea079b760b5d09671582b Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Fri, 7 Mar 2025 21:00:43 +0100 Subject: [PATCH 16/63] test: wip reorg integration --- crates/watcher/src/lib.rs | 7 ++- crates/watcher/tests/reorg.rs | 98 +++++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 crates/watcher/tests/reorg.rs diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index 9b6208be..e039a211 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -36,6 +36,10 @@ pub const MAX_UNFINALIZED_BLOCK_COUNT: usize = 96; /// The main loop interval when L1 watcher is syncing to the tip of the L1. pub const FAST_SYNC_INTERVAL: Duration = Duration::from_millis(100); /// The main loop interval when L1 watcher is synced to the tip of the L1. +#[cfg(any(test, feature = "test-utils"))] +pub const SLOW_SYNC_INTERVAL: Duration = Duration::from_millis(1); +/// The main loop interval when L1 watcher is synced to the tip of the L1. +#[cfg(not(any(test, feature = "test-utils")))] pub const SLOW_SYNC_INTERVAL: Duration = Duration::from_secs(2); /// The Ethereum L1 block response. @@ -367,7 +371,8 @@ where // finalized. let mut chain = loop { if self.unfinalized_blocks.contains(¤t_block) || - current_block.parent_hash == finalized.hash + current_block.parent_hash == finalized.hash || + current_block.hash == finalized.hash { break chain; } diff --git a/crates/watcher/tests/reorg.rs b/crates/watcher/tests/reorg.rs new file mode 100644 index 00000000..dd6cadc1 --- /dev/null +++ b/crates/watcher/tests/reorg.rs @@ -0,0 +1,98 @@ +//! Integration test of the reorg detection of the L1 watcher. +#![cfg(feature = "test-utils")] + +use alloy_rpc_types_eth::Header; +use arbitrary::Arbitrary; +use rand::Rng; +use rollup_node_watcher::{ + random, + test_utils::{chain::chain_from, provider::MockProvider}, + Block, L1Notification, L1Watcher, +}; +use tracing::{subscriber::set_global_default, Level}; + +fn setup() { + let sub = tracing_subscriber::FmtSubscriber::builder().with_max_level(Level::TRACE).finish(); + set_global_default(sub).expect("failed to set subscriber"); +} + +// Generate a set blocks that will be fed to the l1 watcher. +// Every fork_cycle blocks, generates a small reorg. +fn generate_chain_with_reorgs(len: usize, fork_cycle: usize, max_fork_depth: usize) -> Vec { + if fork_cycle < 1 { + panic!("fork cycle should be bigger than 1"); + } + let mut blocks = Vec::with_capacity(len); + let mut rng = rand::rng(); + let next_header = |prev: &Header| { + let mut header = random!(Header); + header.number = prev.number + 1; + header.parent_hash = prev.hash; + header + }; + let mut tip = random!(Header); + while blocks.len() < len { + let mut acc = vec![tip]; + for i in 1..fork_cycle { + acc.push(next_header(&acc[i - 1])); + } + + let mut fork = chain_from(&acc.last().unwrap(), rng.random_range(2..max_fork_depth)); + tip = fork.last().unwrap().clone(); + + blocks.append(&mut acc); + blocks.append(&mut fork); + + acc.clear(); + } + blocks.into_iter().map(|h| Block { header: h, ..Default::default() }).collect() +} + +#[tokio::test] +async fn test_reorg_detection() -> eyre::Result<()> { + // Given + setup(); + let blocks = generate_chain_with_reorgs(1000, 100, 10); + + // every 30 blocks, skip 5 blocks in latest, creating a gap and forcing the l1 watcher to + // resync. + let latest_blocks = blocks + .iter() + .cloned() + .filter(|b| { + let rem = b.header.number % 30; + rem < 5 + }) + .collect::>(); + + // finalized blocks should be 64 blocks late. + let finalized_blocks = std::iter::repeat(latest_blocks.first().clone()) + .filter_map(|b| b.cloned()) + .take(64) + .chain(latest_blocks.iter().cloned()) + .collect::>(); + + let start = latest_blocks.first().unwrap().header.number; + let mock_provider = MockProvider::new( + blocks.clone().into_iter(), + std::iter::empty(), + finalized_blocks, + latest_blocks.clone(), + ); + + // spawn the watcher and verify received notifications are consistent. + let mut l1_watcher = L1Watcher::spawn(mock_provider, start).await; + + let current_number = latest_blocks.first().unwrap().header.number; + let current_hash = latest_blocks.first().unwrap().header.hash; + + for block in &latest_blocks[1..] { + let notification = l1_watcher.recv().await.unwrap(); + // this is a reorg + if current_number <= block.header.number { + assert_eq!(notification.as_ref(), &L1Notification::Reorg(block.header.number)) + } + } + + Ok(()) +} From 58b3686f6ccbd3d5d5cc60eebc93438883b9d97a Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Tue, 11 Mar 2025 17:22:13 +0100 Subject: [PATCH 17/63] test: reorg detection integration test --- Cargo.lock | 1 + crates/engine/src/engine.rs | 19 +++---- crates/watcher/Cargo.toml | 1 + crates/watcher/src/contract.rs | 2 + crates/watcher/src/lib.rs | 42 +++++++++++++-- crates/watcher/src/test_utils/chain.rs | 22 -------- crates/watcher/src/test_utils/mod.rs | 3 -- crates/watcher/src/test_utils/provider.rs | 18 ++++--- crates/watcher/tests/reorg.rs | 65 +++++++++++++---------- 9 files changed, 98 insertions(+), 75 deletions(-) delete mode 100644 crates/watcher/src/test_utils/chain.rs diff --git a/Cargo.lock b/Cargo.lock index b215b3ba..14104f0f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8295,6 +8295,7 @@ dependencies = [ "async-trait", "derive_more 2.0.1", "eyre", + "itertools 0.14.0", "rand 0.9.0", "rollup-node-primitives", "scroll-alloy-consensus 1.1.5", diff --git a/crates/engine/src/engine.rs b/crates/engine/src/engine.rs index a2b3ff1f..8403788e 100644 --- a/crates/engine/src/engine.rs +++ b/crates/engine/src/engine.rs @@ -1,7 +1,6 @@ -use crate::{block_info::BlockInfo, payload::matching_payloads}; - use super::error::EngineDriverError; -use crate::ExecutionPayloadProvider; +use crate::{payload::matching_payloads, ExecutionPayloadProvider}; + use alloy_rpc_types_engine::{ ExecutionPayload, ExecutionPayloadV1, ForkchoiceState, ForkchoiceUpdated, PayloadId, PayloadStatusEnum, @@ -9,6 +8,7 @@ use alloy_rpc_types_engine::{ use eyre::Result; use reth_payload_primitives::PayloadTypes; use reth_scroll_engine_primitives::ScrollEngineTypes; +use rollup_node_primitives::BlockInfo; use scroll_alloy_provider::ScrollEngineApi; use tokio::time::Duration; @@ -77,12 +77,12 @@ where // Convert the payload to the V1 format. let execution_payload = execution_payload.into_v1(); - // Issue the new payload to the EN. - let payload_status = self.new_payload(execution_payload).await?; - // Invoke the FCU with the new state. let fcu = self.forkchoice_updated(fcs, None).await?; + // Issue the new payload to the EN. + let payload_status = self.new_payload(execution_payload).await?; + // We should never have a case where the fork choice is syncing as we have already validated // the payload and provided it to the EN. debug_assert!(fcu.is_valid()); @@ -101,7 +101,8 @@ where /// - If the execution payload matches the attributes: /// - Sets the current fork choice for the EL via `engine_forkchoiceUpdatedV1`, advancing /// the safe head by one. - #[instrument(skip_all, level = "trace", fields(safe_block_info = ?safe_block_info, fcs = ?fcs, payload_attributes = ?payload_attributes))] + // #[instrument(skip_all, level = "trace", fields(head = %self.unsafe_block_info.hash, safe = + // %self.safe_block_info.hash, finalized = %self.safe_block_info.hash))] pub async fn handle_payload_attributes( &mut self, safe_block_info: BlockInfo, @@ -174,7 +175,7 @@ where match &response.status { PayloadStatusEnum::Invalid { validation_error } => { error!(target: "scroll::engine::driver", ?validation_error, "execution payload is invalid"); - return Err(EngineDriverError::InvalidExecutionPayload) + return Err(EngineDriverError::InvalidExecutionPayload); } PayloadStatusEnum::Syncing => { debug!(target: "scroll::engine::driver", "execution client is syncing"); @@ -207,7 +208,7 @@ where match &forkchoice_updated.payload_status.status { PayloadStatusEnum::Invalid { validation_error } => { error!(target: "scroll::engine::driver", ?validation_error, "failed to issue forkchoice"); - return Err(EngineDriverError::InvalidFcu) + return Err(EngineDriverError::InvalidFcu); } PayloadStatusEnum::Syncing => { debug!(target: "scroll::engine::driver", "head has been seen before, but not part of the chain"); diff --git a/crates/watcher/Cargo.toml b/crates/watcher/Cargo.toml index 3ae265eb..c15e77d1 100644 --- a/crates/watcher/Cargo.toml +++ b/crates/watcher/Cargo.toml @@ -43,6 +43,7 @@ alloy-rpc-types-eth = { workspace = true, features = ["arbitrary"] } arbitrary.workspace = true eyre.workspace = true rand = "0.9" +itertools = "0.14.0" tracing-subscriber = "0.3" [features] diff --git a/crates/watcher/src/contract.rs b/crates/watcher/src/contract.rs index d7f3c695..7c2fb8d9 100644 --- a/crates/watcher/src/contract.rs +++ b/crates/watcher/src/contract.rs @@ -15,9 +15,11 @@ sol! { ); #[cfg_attr(test, derive(arbitrary::Arbitrary))] + #[derive(Debug)] event CommitBatch(uint256 indexed batchIndex, bytes32 indexed batchHash); #[cfg_attr(test, derive(arbitrary::Arbitrary))] + #[derive(Debug)] event FinalizeBatch(uint256 indexed batchIndex, bytes32 indexed batchHash, bytes32 stateRoot, bytes32 withdrawRoot); // *********************FUNCTION********************* diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index e039a211..b36b5a86 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -182,7 +182,11 @@ where /// Handle the finalized block: /// - Update state and notify channel about finalization. /// - Drain finalized blocks from state. - #[tracing::instrument(target = "scroll::watcher", skip_all, fields(finalized = ?finalized.number))] + #[tracing::instrument( + target = "scroll::watcher", + skip_all, + fields(curr_finalized = ?self.l1_state.finalized, new_finalized = ?finalized.number) + )] async fn handle_finalized_block(&mut self, finalized: &Header) { // update the state and notify on channel. if self.l1_state.finalized < finalized.number { @@ -219,7 +223,7 @@ where /// - Add to unfinalized blocks if it extends the chain. /// - Fetch chain of unfinalized blocks and emit potential reorg otherwise. /// - Finally, update state and notify channel about latest block. - #[tracing::instrument(target = "scroll::watcher", skip_all, fields(latest = ?finalized.number))] + #[tracing::instrument(target = "scroll::watcher", skip_all, fields(latest = ?latest.number))] async fn handle_latest_block( &mut self, finalized: &Header, @@ -235,6 +239,7 @@ where self.unfinalized_blocks.push_back(latest.clone()); } else { // chain reorged or need to backfill. + tracing::trace!(target: "scroll::watcher", number = ?latest.number, hash = ?latest.hash, "gap or reorg"); let chain = self.fetch_unfinalized_chain(finalized, latest).await?; let reorg_block_number = self @@ -269,6 +274,7 @@ where } /// Filters the logs into L1 messages and sends them over the channel. + #[tracing::instrument(skip_all)] async fn handle_l1_messages(&self, logs: &[Log]) -> L1WatcherResult<()> { let l1_messages = logs.iter().map(|l| (&l.inner, l.block_number)).filter_map(|(log, bn)| { @@ -278,6 +284,8 @@ where for (msg, bn) in l1_messages { let block_number = bn.ok_or(FilterLogError::MissingBlockNumber)?; + tracing::trace!(target: "scroll::watcher", l1_message = ?msg, ?block_number); + let notification = L1MessageWithBlockNumber::new(block_number, msg); self.notify(L1Notification::L1Message(notification)).await; } @@ -285,15 +293,16 @@ where } /// Handles the batch commits events. + #[tracing::instrument(skip_all)] async fn handle_batch_commits(&self, logs: &[Log]) -> L1WatcherResult<()> { // filter commit logs. - let commit_tx_hashes = + let commit_logs_with_tx = logs.iter().map(|l| (l, l.transaction_hash)).filter_map(|(log, tx_hash)| { try_decode_log::(&log.inner) .map(|decoded| (log, decoded.data, tx_hash)) }); - for (raw_log, decoded_log, maybe_tx_hash) in commit_tx_hashes { + for (raw_log, decoded_log, maybe_tx_hash) in commit_logs_with_tx { // fetch the commit transaction. let tx_hash = maybe_tx_hash.ok_or(FilterLogError::MissingTransactionHash)?; let transaction = self @@ -310,6 +319,7 @@ where raw_log.block_number.ok_or(FilterLogError::MissingBlockNumber)?; let batch_hash = decoded_log.batchHash; let blob_hashes = transaction.blob_versioned_hashes().map(|blobs| blobs.to_vec()); + tracing::trace!(target: "scroll::watcher", commit_batch = ?decoded_log, ?block_number); // feed all batch information to the batch input builder. let batch_builder = BatchInputBuilder::new( @@ -333,6 +343,7 @@ where } /// Handles the finalize batch events. + #[tracing::instrument(skip_all)] async fn handle_batch_finalization(&self, logs: &[Log]) -> L1WatcherResult<()> { // filter finalize logs. let finalize_tx_hashes = @@ -343,6 +354,7 @@ where for (decoded_log, maybe_block_number) in finalize_tx_hashes { // fetch the commit transaction. let block_number = maybe_block_number.ok_or(FilterLogError::MissingBlockNumber)?; + tracing::trace!(target: "scroll::watcher", finalized_batch = ?decoded_log, ?block_number); // send the finalization event in the channel. let _ = self @@ -462,7 +474,7 @@ mod tests { use super::*; use crate::{ contract::commitBatchCall, - test_utils::{arbitrary::ArbitraryTxBuilder, chain::chain_from, provider::MockProvider}, + test_utils::{arbitrary::ArbitraryTxBuilder, provider::MockProvider}, }; use alloy_consensus::TxType; use alloy_sol_types::{SolCall, SolEvent}; @@ -518,6 +530,26 @@ mod tests { (chain.first().unwrap().clone(), chain.last().unwrap().clone(), chain) } + // Returns a chain of random block of size `len`, starting at the provided header. + fn chain_from(header: &Header, len: usize) -> Vec
{ + if len < 2 { + panic!("fork should have a minimal length of two"); + } + let mut blocks = Vec::with_capacity(len); + blocks.push(header.clone()); + + let next_header = |header: &Header| { + let mut next = random!(Header); + next.parent_hash = header.hash; + next.number = header.number + 1; + next + }; + for i in 0..len - 1 { + blocks.push(next_header(&blocks[i])); + } + blocks + } + #[tokio::test] async fn test_fetch_unfinalized_chain_no_reorg() -> eyre::Result<()> { // Given diff --git a/crates/watcher/src/test_utils/chain.rs b/crates/watcher/src/test_utils/chain.rs deleted file mode 100644 index 68804b9e..00000000 --- a/crates/watcher/src/test_utils/chain.rs +++ /dev/null @@ -1,22 +0,0 @@ -use crate::{random, Header}; -use arbitrary::Arbitrary; - -/// Returns a chain of random block of size `len`, starting at the provided header. -pub fn chain_from(header: &Header, len: usize) -> Vec
{ - if len < 2 { - panic!("fork should have a minimal length of two"); - } - let mut blocks = Vec::with_capacity(len); - blocks.push(header.clone()); - - let next_header = |header: &Header| { - let mut next = random!(Header); - next.parent_hash = header.hash; - next.number = header.number + 1; - next - }; - for i in 0..len - 1 { - blocks.push(next_header(&blocks[i])); - } - blocks -} diff --git a/crates/watcher/src/test_utils/mod.rs b/crates/watcher/src/test_utils/mod.rs index 3c8b61a3..1b01e55f 100644 --- a/crates/watcher/src/test_utils/mod.rs +++ b/crates/watcher/src/test_utils/mod.rs @@ -1,8 +1,5 @@ /// Test utils for arbitrary. pub mod arbitrary; -/// Test utils for creating chains of blocks. -pub mod chain; - /// Test utils for provider. pub mod provider; diff --git a/crates/watcher/src/test_utils/provider.rs b/crates/watcher/src/test_utils/provider.rs index 237f4187..3f150354 100644 --- a/crates/watcher/src/test_utils/provider.rs +++ b/crates/watcher/src/test_utils/provider.rs @@ -24,15 +24,13 @@ impl MockProvider { pub fn new( blocks: impl Iterator, transactions: impl Iterator, - mut finalized_blocks: Vec, - mut latest_blocks: Vec, + finalized_blocks: Vec, + latest_blocks: Vec, ) -> Self { let mut b = HashMap::new(); for block in blocks { b.entry(block.header.number).or_insert(Vec::new()).push(block); } - finalized_blocks.sort_by(|a, b| a.header.number.cmp(&b.header.number)); - latest_blocks.sort_by(|a, b| a.header.number.cmp(&b.header.number)); Self { blocks: Arc::new(Mutex::new(b)), transactions: transactions.map(|tx| (*tx.inner.tx_hash(), tx)).collect(), @@ -58,17 +56,23 @@ impl Provider for MockProvider { BlockId::Number(number_or_tag) => match number_or_tag { BlockNumberOrTag::Latest => { let mut blocks = self.latest_blocks.lock().await; - let val = if blocks.len() > 1 { blocks.drain(..1).next() } else { None }; + let val = if blocks.len() > 0 { blocks.drain(..1).next() } else { None }; val.ok_or(RpcError::NullResp).map(Some) } BlockNumberOrTag::Finalized => { let mut blocks = self.finalized_blocks.lock().await; - let val = if blocks.len() > 1 { blocks.drain(..1).next() } else { None }; + let val = if blocks.len() > 0 { blocks.drain(..1).next() } else { None }; val.ok_or(RpcError::NullResp).map(Some) } BlockNumberOrTag::Number(number) => { let mut blocks = self.blocks.lock().await; - Ok(blocks.get_mut(&number).and_then(|blocks| blocks.drain(..1).next())) + Ok(blocks.get_mut(&number).and_then(|blocks| { + if blocks.len() > 1 { + blocks.drain(..1).next() + } else { + blocks.first().cloned() + } + })) } _ => unimplemented!("can only query by number, latest or finalized"), }, diff --git a/crates/watcher/tests/reorg.rs b/crates/watcher/tests/reorg.rs index dd6cadc1..94a13e12 100644 --- a/crates/watcher/tests/reorg.rs +++ b/crates/watcher/tests/reorg.rs @@ -5,9 +5,7 @@ use alloy_rpc_types_eth::Header; use arbitrary::Arbitrary; use rand::Rng; use rollup_node_watcher::{ - random, - test_utils::{chain::chain_from, provider::MockProvider}, - Block, L1Notification, L1Watcher, + random, test_utils::provider::MockProvider, Block, L1Notification, L1Watcher, }; use tracing::{subscriber::set_global_default, Level}; @@ -33,15 +31,15 @@ fn generate_chain_with_reorgs(len: usize, fork_cycle: usize, max_fork_depth: usi let mut tip = random!(Header); while blocks.len() < len { let mut acc = vec![tip]; - for i in 1..fork_cycle { + for i in 1..fork_cycle + 1 { acc.push(next_header(&acc[i - 1])); } - let mut fork = chain_from(&acc.last().unwrap(), rng.random_range(2..max_fork_depth)); - tip = fork.last().unwrap().clone(); + let depth = rng.random_range(2..max_fork_depth); + let reorg = &acc[acc.len() - 1 - depth]; + tip = next_header(reorg); blocks.append(&mut acc); - blocks.append(&mut fork); acc.clear(); } @@ -52,46 +50,55 @@ fn generate_chain_with_reorgs(len: usize, fork_cycle: usize, max_fork_depth: usi async fn test_reorg_detection() -> eyre::Result<()> { // Given setup(); - let blocks = generate_chain_with_reorgs(1000, 100, 10); - - // every 30 blocks, skip 5 blocks in latest, creating a gap and forcing the l1 watcher to - // resync. - let latest_blocks = blocks - .iter() - .cloned() - .filter(|b| { - let rem = b.header.number % 30; - rem < 5 - }) - .collect::>(); + let blocks = generate_chain_with_reorgs(1000, 10, 5); + let latest_blocks = blocks.clone(); // finalized blocks should be 64 blocks late. - let finalized_blocks = std::iter::repeat(latest_blocks.first().clone()) + let mut finalized_blocks = std::iter::repeat(latest_blocks.first().clone()) .filter_map(|b| b.cloned()) - .take(64) + .take(20) .chain(latest_blocks.iter().cloned()) .collect::>(); + finalized_blocks.sort_unstable_by(|a, b| a.header.number.cmp(&b.header.number)); let start = latest_blocks.first().unwrap().header.number; let mock_provider = MockProvider::new( blocks.clone().into_iter(), std::iter::empty(), - finalized_blocks, + finalized_blocks.clone(), latest_blocks.clone(), ); // spawn the watcher and verify received notifications are consistent. let mut l1_watcher = L1Watcher::spawn(mock_provider, start).await; - let current_number = latest_blocks.first().unwrap().header.number; - let current_hash = latest_blocks.first().unwrap().header.hash; + let mut latest_number = latest_blocks.first().unwrap().header.number; + let mut finalized_number = finalized_blocks.first().unwrap().header.number; - for block in &latest_blocks[1..] { - let notification = l1_watcher.recv().await.unwrap(); - // this is a reorg - if current_number <= block.header.number { - assert_eq!(notification.as_ref(), &L1Notification::Reorg(block.header.number)) + for (latest, finalized) in latest_blocks[1..].iter().zip(finalized_blocks[1..].iter()) { + // check finalized first. + if finalized_number < finalized.header.number { + let notification = l1_watcher.recv().await.unwrap(); + assert_eq!(notification.as_ref(), &L1Notification::Finalized(finalized.header.number)); } + + // check latest for reorg or new block. + if latest_number == latest.header.number { + continue + } else if latest_number > latest.header.number { + // reorg + let notification = l1_watcher.recv().await.unwrap(); + assert!(matches!(notification.as_ref(), L1Notification::Reorg(_))); + let notification = l1_watcher.recv().await.unwrap(); + assert_eq!(notification.as_ref(), &L1Notification::NewBlock(latest.header.number)); + } else { + let notification = l1_watcher.recv().await.unwrap(); + assert_eq!(notification.as_ref(), &L1Notification::NewBlock(latest.header.number)); + } + + // update finalized and latest. + finalized_number = finalized.header.number; + latest_number = latest.header.number; } Ok(()) From 71819189f1891635ea08112f7a45d996e3efd25e Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Tue, 11 Mar 2025 17:55:03 +0100 Subject: [PATCH 18/63] test: gaps --- crates/watcher/src/lib.rs | 3 +- crates/watcher/tests/reorg.rs | 72 ++++++++++++++++++++++++++++++++++- 2 files changed, 73 insertions(+), 2 deletions(-) diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index b36b5a86..b66b1d82 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -59,7 +59,8 @@ pub struct L1State { #[derive(Debug)] pub struct L1Watcher { /// The L1 execution node provider. The provider should implement some backoff strategy using - /// [`alloy_transport::layers::RetryBackoffLayer`] in the client in order to avoid excessive + /// [`alloy_transport::layers::RetryBackoffLayer`] as well as some caching strategy using + /// [`alloy_provider::layers::CacheProvider`] in the client in order to avoid excessive /// queries on the RPC provider. execution_provider: EP, /// The buffered unfinalized chain of blocks. Used to detect reorgs of the L1. diff --git a/crates/watcher/tests/reorg.rs b/crates/watcher/tests/reorg.rs index 94a13e12..3093b703 100644 --- a/crates/watcher/tests/reorg.rs +++ b/crates/watcher/tests/reorg.rs @@ -56,7 +56,7 @@ async fn test_reorg_detection() -> eyre::Result<()> { // finalized blocks should be 64 blocks late. let mut finalized_blocks = std::iter::repeat(latest_blocks.first().clone()) .filter_map(|b| b.cloned()) - .take(20) + .take(64) .chain(latest_blocks.iter().cloned()) .collect::>(); finalized_blocks.sort_unstable_by(|a, b| a.header.number.cmp(&b.header.number)); @@ -103,3 +103,73 @@ async fn test_reorg_detection() -> eyre::Result<()> { Ok(()) } + +#[tokio::test] +async fn test_gap() -> eyre::Result<()> { + // Given + setup(); + let mut blocks = vec![random!(Header)]; + for i in 1..1000 { + let mut next = random!(Header); + let prev = &blocks[i - 1]; + next.number = prev.number + 1; + next.parent_hash = prev.hash; + blocks.push(next); + } + let blocks = + blocks.into_iter().map(|h| Block { header: h, ..Default::default() }).collect::>(); + + // add a gap every 20 blocks. + let latest_blocks = blocks + .iter() + .cloned() + .filter(|b| { + let rem = b.header.number % 20; + rem > 5 + }) + .collect::>(); + + // finalized blocks should be 64 blocks late. + let mut finalized_blocks = std::iter::repeat(blocks.first().clone()) + .filter_map(|b| b.cloned()) + .take(64) + .chain(blocks.iter().cloned()) + .collect::>(); + finalized_blocks.sort_unstable_by(|a, b| a.header.number.cmp(&b.header.number)); + + let start = latest_blocks.first().unwrap().header.number; + let mock_provider = MockProvider::new( + blocks.clone().into_iter(), + std::iter::empty(), + finalized_blocks.clone(), + latest_blocks.clone(), + ); + + // spawn the watcher and verify received notifications are consistent. + let mut l1_watcher = L1Watcher::spawn(mock_provider, start).await; + + let mut latest_number = latest_blocks.first().unwrap().header.number; + let mut finalized_number = finalized_blocks.first().unwrap().header.number; + + for (latest, finalized) in latest_blocks[1..].iter().zip(finalized_blocks[1..].iter()) { + // check finalized first. + if finalized_number < finalized.header.number { + let notification = l1_watcher.recv().await.unwrap(); + assert_eq!(notification.as_ref(), &L1Notification::Finalized(finalized.header.number)); + } + + // check latest for reorg or new block. + if latest_number == latest.header.number { + continue + } else { + let notification = l1_watcher.recv().await.unwrap(); + assert_eq!(notification.as_ref(), &L1Notification::NewBlock(latest.header.number)); + } + + // update finalized and latest. + finalized_number = finalized.header.number; + latest_number = latest.header.number; + } + + Ok(()) +} From dc7663785268561af553230089a1da5d5e40e83e Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Wed, 12 Mar 2025 08:42:18 +0100 Subject: [PATCH 19/63] fix: lints --- crates/engine/src/engine.rs | 2 +- crates/network/src/handle.rs | 4 ++-- crates/node/src/lib.rs | 5 ++--- crates/primitives/src/batch.rs | 5 ++--- crates/primitives/src/block.rs | 2 +- crates/primitives/src/transaction.rs | 2 +- crates/watcher/src/constants.rs | 2 +- crates/watcher/src/contract.rs | 20 +++++++++--------- crates/watcher/src/lib.rs | 21 ++++++++----------- crates/watcher/src/test_utils/arbitrary.rs | 7 ++++--- crates/watcher/src/test_utils/provider.rs | 18 ++++++++-------- crates/watcher/tests/reorg.rs | 24 +++++++++++----------- 12 files changed, 54 insertions(+), 58 deletions(-) diff --git a/crates/engine/src/engine.rs b/crates/engine/src/engine.rs index 8403788e..0886aa3c 100644 --- a/crates/engine/src/engine.rs +++ b/crates/engine/src/engine.rs @@ -63,7 +63,7 @@ where /// Handles an execution payload: /// - Sends the payload to the EL via `engine_newPayloadV1`. /// - Sets the current fork choice for the EL via `engine_forkchoiceUpdatedV1`. - #[instrument(skip_all, level = "trace", + #[instrument(skip_all, level = "trace", fields( payload_block_hash = %execution_payload.block_hash(), payload_block_num = %execution_payload.block_number(), diff --git a/crates/network/src/handle.rs b/crates/network/src/handle.rs index ddd79607..5c159e6f 100644 --- a/crates/network/src/handle.rs +++ b/crates/network/src/handle.rs @@ -1,8 +1,8 @@ -use reth_network::{NetworkHandle as RethNetworkHandle, PeersInfo}; +use reth_network::{config::SecretKey, NetworkHandle as RethNetworkHandle, PeersInfo}; use reth_network_peers::PeerId; use reth_scroll_node::ScrollNetworkPrimitives; use reth_scroll_primitives::ScrollBlock; -use secp256k1::{ecdsa::Signature, SecretKey}; +use secp256k1::ecdsa::Signature; use std::sync::Arc; use tokio::sync::{mpsc::UnboundedSender, oneshot}; diff --git a/crates/node/src/lib.rs b/crates/node/src/lib.rs index 8375ac32..85ee1dba 100644 --- a/crates/node/src/lib.rs +++ b/crates/node/src/lib.rs @@ -8,9 +8,7 @@ use futures::{stream::FuturesOrdered, StreamExt}; use reth_tokio_util::{EventSender, EventStream}; use scroll_alloy_network::Scroll as ScrollNetwork; use scroll_alloy_provider::ScrollEngineApi; -use scroll_engine::{ - BlockInfo, EngineDriver, EngineDriverError, ExecutionPayloadProvider, ForkchoiceState, -}; +use scroll_engine::{EngineDriver, EngineDriverError, ExecutionPayloadProvider, ForkchoiceState}; use scroll_network::{ BlockImportError, BlockImportOutcome, BlockValidation, BlockValidationError, NetworkManager, NetworkManagerEvent, NewBlockWithPeer, @@ -32,6 +30,7 @@ pub use event::RollupEvent; mod consensus; use consensus::Consensus; pub use consensus::PoAConsensus; +use rollup_node_primitives::BlockInfo; /// The size of the event channel. const EVENT_CHANNEL_SIZE: usize = 100; diff --git a/crates/primitives/src/batch.rs b/crates/primitives/src/batch.rs index 09dfb86b..1ce98142 100644 --- a/crates/primitives/src/batch.rs +++ b/crates/primitives/src/batch.rs @@ -1,5 +1,4 @@ use alloy_primitives::{BlockNumber, B256}; -use derive_more; /// The input data for a batch. /// @@ -64,7 +63,7 @@ pub struct BatchInputBuilder { impl BatchInputBuilder { /// Returns a new instance of the builder. - pub fn new( + pub const fn new( version: u8, index: u64, hash: B256, @@ -136,7 +135,7 @@ impl BatchInputBuilder { chunks, skipped_l1_message_bitmap, }; - let blob_hash = blob.first().cloned()?; + let blob_hash = blob.first().copied()?; Some(BatchInputV2 { batch_input_data, blob_hash }.into()) } (None, None, Some(_blobs)) => { diff --git a/crates/primitives/src/block.rs b/crates/primitives/src/block.rs index d2992d23..66d14bc6 100644 --- a/crates/primitives/src/block.rs +++ b/crates/primitives/src/block.rs @@ -12,7 +12,7 @@ pub struct BlockInfo { impl BlockInfo { /// Returns a new instance of [`BlockInfo`]. - pub fn new(number: u64, hash: B256) -> Self { + pub const fn new(number: u64, hash: B256) -> Self { Self { number, hash } } } diff --git a/crates/primitives/src/transaction.rs b/crates/primitives/src/transaction.rs index fb4e7cf1..9a0c2cef 100644 --- a/crates/primitives/src/transaction.rs +++ b/crates/primitives/src/transaction.rs @@ -11,7 +11,7 @@ pub struct L1MessageWithBlockNumber { impl L1MessageWithBlockNumber { /// Returns a new [`L1MessageWithBlockNumber`]. - pub fn new(block_number: u64, transaction: TxL1Message) -> Self { + pub const fn new(block_number: u64, transaction: TxL1Message) -> Self { Self { block_number, transaction } } } diff --git a/crates/watcher/src/constants.rs b/crates/watcher/src/constants.rs index cdc28b65..393fefe2 100644 --- a/crates/watcher/src/constants.rs +++ b/crates/watcher/src/constants.rs @@ -13,7 +13,7 @@ pub const L1_MESSAGE_QUEUE_CONTRACT_ADDRESS: Address = address!("0x0d7E906BD9cAFa154b048cFa766Cc1E54E39AF9B"); /// The [`Filter`] used by the [`crate::L1Watcher`] to index events relevant to the rollup node. -pub const L1_WATCHER_LOG_FILTER: LazyLock = LazyLock::new(|| { +pub static L1_WATCHER_LOG_FILTER: LazyLock = LazyLock::new(|| { Filter::new() .address(vec![ROLLUP_CONTRACT_ADDRESS, L1_MESSAGE_QUEUE_CONTRACT_ADDRESS]) .event_signature(vec![QueueTransaction::SIGNATURE_HASH, CommitBatch::SIGNATURE_HASH]) diff --git a/crates/watcher/src/contract.rs b/crates/watcher/src/contract.rs index 7c2fb8d9..f2ffd508 100644 --- a/crates/watcher/src/contract.rs +++ b/crates/watcher/src/contract.rs @@ -50,30 +50,30 @@ pub(super) enum CommitBatchCall { } impl CommitBatchCall { - pub(crate) fn version(&self) -> u8 { + pub(crate) const fn version(&self) -> u8 { match self { - CommitBatchCall::CommitBatch(b) => b.version, - CommitBatchCall::CommitBatchWithBlobProof(b) => b.version, + Self::CommitBatch(b) => b.version, + Self::CommitBatchWithBlobProof(b) => b.version, } } pub(crate) fn parent_batch_header(&self) -> Vec { let header = match self { - CommitBatchCall::CommitBatch(b) => &b.parentBatchHeader, - CommitBatchCall::CommitBatchWithBlobProof(b) => &b.parentBatchHeader, + Self::CommitBatch(b) => &b.parentBatchHeader, + Self::CommitBatchWithBlobProof(b) => &b.parentBatchHeader, }; header.to_vec() } pub(crate) fn chunks(&self) -> Option>> { let chunks = match self { - CommitBatchCall::CommitBatch(b) => &b.chunks, - CommitBatchCall::CommitBatchWithBlobProof(b) => &b.chunks, + Self::CommitBatch(b) => &b.chunks, + Self::CommitBatchWithBlobProof(b) => &b.chunks, }; Some(chunks.iter().map(|c| c.to_vec()).collect()) } pub(crate) fn skipped_l1_message_bitmap(&self) -> Option> { let bitmap = match self { - CommitBatchCall::CommitBatch(b) => &b.skippedL1MessageBitmap, - CommitBatchCall::CommitBatchWithBlobProof(b) => &b.skippedL1MessageBitmap, + Self::CommitBatch(b) => &b.skippedL1MessageBitmap, + Self::CommitBatchWithBlobProof(b) => &b.skippedL1MessageBitmap, }; Some(bitmap.to_vec()) } @@ -99,7 +99,7 @@ pub(super) fn try_decode_commit_call(calldata: &Bytes) -> Option for TxL1Message { fn from(value: QueueTransaction) -> Self { - TxL1Message { + Self { queue_index: value.queueIndex, gas_limit: value.gasLimit.saturating_to(), to: value.target, diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index b66b1d82..29e14ecd 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -99,7 +99,7 @@ impl L1Watcher where EP: Provider + 'static, { - /// Spawn a new [`L1Watcher`], starting at start_block. The watcher will iterate the L1, + /// Spawn a new [`L1Watcher`], starting at `start_block`. The watcher will iterate the L1, /// returning [`L1Notification`] in the returned channel. pub async fn spawn( execution_provider: EP, @@ -126,7 +126,7 @@ where finalized: fetch_block_number(BlockNumberOrTag::Finalized).await, }; - let watcher = L1Watcher { + let watcher = Self { execution_provider, unfinalized_blocks: VecDeque::with_capacity(MAX_UNFINALIZED_BLOCK_COUNT), current_block_number: start_block - 1, @@ -232,9 +232,9 @@ where ) -> L1WatcherResult<()> { let tail = self.unfinalized_blocks.back(); - if tail.map_or(false, |h| h.hash == latest.hash) { + if tail.is_some_and(|h| h.hash == latest.hash) { return Ok(()) - } else if tail.map_or(false, |h| h.hash == latest.parent_hash) { + } else if tail.is_some_and(|h| h.hash == latest.parent_hash) { // latest block extends the tip. tracing::trace!(target: "scroll::watcher", number = ?latest.number, hash = ?latest.hash, "block extends chain"); self.unfinalized_blocks.push_back(latest.clone()); @@ -415,7 +415,7 @@ where } /// Returns true if the [`L1Watcher`] is synced to the head of the L1. - fn is_synced(&self) -> bool { + const fn is_synced(&self) -> bool { self.current_block_number == self.l1_state.head } @@ -515,9 +515,7 @@ mod tests { // Returns a chain of random headers of size `len`. fn chain(len: usize) -> (Header, Header, Vec
) { - if len < 2 { - panic!("chain should have a minimal length of two"); - } + assert!(len >= 2, "chain should have a minimal length of two"); let mut chain = Vec::with_capacity(len); chain.push(random!(Header)); @@ -533,9 +531,8 @@ mod tests { // Returns a chain of random block of size `len`, starting at the provided header. fn chain_from(header: &Header, len: usize) -> Vec
{ - if len < 2 { - panic!("fork should have a minimal length of two"); - } + assert!(len >= 2, "fork should have a minimal length of two"); + let mut blocks = Vec::with_capacity(len); blocks.push(header.clone()); @@ -759,7 +756,7 @@ mod tests { async fn test_handle_batch_commits() -> eyre::Result<()> { // Given let (finalized, latest, chain) = chain(10); - let tx = ArbitraryTxBuilder::new() + let tx = ArbitraryTxBuilder::default() .with_ty(TxType::Eip1559) .with_input(random!(commitBatchCall).abi_encode().into()) .build(); diff --git a/crates/watcher/src/test_utils/arbitrary.rs b/crates/watcher/src/test_utils/arbitrary.rs index c8206a60..2d255d17 100644 --- a/crates/watcher/src/test_utils/arbitrary.rs +++ b/crates/watcher/src/test_utils/arbitrary.rs @@ -24,9 +24,8 @@ pub struct ArbitraryTxBuilder { tx: Transaction, } -impl ArbitraryTxBuilder { - /// Creates a random builder for a transaction. - pub fn new() -> Self { +impl Default for ArbitraryTxBuilder { + fn default() -> Self { let envelope = random!(TxEnvelope); Self { tx: Transaction { @@ -39,7 +38,9 @@ impl ArbitraryTxBuilder { }, } } +} +impl ArbitraryTxBuilder { /// Modifies the type of the random transaction. pub fn with_ty(mut self, ty: TxType) -> Self { match ty { diff --git a/crates/watcher/src/test_utils/provider.rs b/crates/watcher/src/test_utils/provider.rs index 3f150354..d98a7dec 100644 --- a/crates/watcher/src/test_utils/provider.rs +++ b/crates/watcher/src/test_utils/provider.rs @@ -5,7 +5,7 @@ use alloy_network::Ethereum; use alloy_primitives::{BlockNumber, TxHash, B256}; use alloy_provider::{Provider, ProviderCall, RootProvider}; use alloy_rpc_types_eth::{BlockId, BlockTransactionsKind, Filter, Log, Transaction}; -use alloy_transport::{BoxTransport, TransportResult}; +use alloy_transport::TransportResult; use std::{collections::HashMap, sync::Arc}; use tokio::sync::Mutex; @@ -42,7 +42,7 @@ impl MockProvider { #[async_trait::async_trait] impl Provider for MockProvider { - fn root(&self) -> &RootProvider { + fn root(&self) -> &RootProvider { unreachable!("unused calls") } @@ -56,12 +56,12 @@ impl Provider for MockProvider { BlockId::Number(number_or_tag) => match number_or_tag { BlockNumberOrTag::Latest => { let mut blocks = self.latest_blocks.lock().await; - let val = if blocks.len() > 0 { blocks.drain(..1).next() } else { None }; + let val = if blocks.is_empty() { None } else { blocks.drain(..1).next() }; val.ok_or(RpcError::NullResp).map(Some) } BlockNumberOrTag::Finalized => { let mut blocks = self.finalized_blocks.lock().await; - let val = if blocks.len() > 0 { blocks.drain(..1).next() } else { None }; + let val = if blocks.is_empty() { None } else { blocks.drain(..1).next() }; val.ok_or(RpcError::NullResp).map(Some) } BlockNumberOrTag::Number(number) => { @@ -79,14 +79,14 @@ impl Provider for MockProvider { } } + async fn get_logs(&self, _filter: &Filter) -> TransportResult> { + Ok(vec![]) + } + fn get_transaction_by_hash( &self, hash: TxHash, - ) -> ProviderCall> { + ) -> ProviderCall<(TxHash,), Option> { ProviderCall::Ready(Some(Ok(self.transactions.get(&hash).cloned()))) } - - async fn get_logs(&self, _filter: &Filter) -> TransportResult> { - Ok(vec![]) - } } diff --git a/crates/watcher/tests/reorg.rs b/crates/watcher/tests/reorg.rs index 3093b703..7f76c971 100644 --- a/crates/watcher/tests/reorg.rs +++ b/crates/watcher/tests/reorg.rs @@ -17,9 +17,8 @@ fn setup() { // Generate a set blocks that will be fed to the l1 watcher. // Every fork_cycle blocks, generates a small reorg. fn generate_chain_with_reorgs(len: usize, fork_cycle: usize, max_fork_depth: usize) -> Vec { - if fork_cycle < 1 { - panic!("fork cycle should be bigger than 1"); - } + assert!(fork_cycle >= 1, "fork cycle should be bigger than 1"); + let mut blocks = Vec::with_capacity(len); let mut rng = rand::rng(); let next_header = |prev: &Header| { @@ -54,7 +53,7 @@ async fn test_reorg_detection() -> eyre::Result<()> { let latest_blocks = blocks.clone(); // finalized blocks should be 64 blocks late. - let mut finalized_blocks = std::iter::repeat(latest_blocks.first().clone()) + let mut finalized_blocks = std::iter::repeat(latest_blocks.first()) .filter_map(|b| b.cloned()) .take(64) .chain(latest_blocks.iter().cloned()) @@ -82,10 +81,12 @@ async fn test_reorg_detection() -> eyre::Result<()> { assert_eq!(notification.as_ref(), &L1Notification::Finalized(finalized.header.number)); } - // check latest for reorg or new block. if latest_number == latest.header.number { continue - } else if latest_number > latest.header.number { + } + + // check latest for reorg or new block. + if latest_number > latest.header.number { // reorg let notification = l1_watcher.recv().await.unwrap(); assert!(matches!(notification.as_ref(), L1Notification::Reorg(_))); @@ -122,15 +123,15 @@ async fn test_gap() -> eyre::Result<()> { // add a gap every 20 blocks. let latest_blocks = blocks .iter() - .cloned() .filter(|b| { let rem = b.header.number % 20; rem > 5 }) + .cloned() .collect::>(); // finalized blocks should be 64 blocks late. - let mut finalized_blocks = std::iter::repeat(blocks.first().clone()) + let mut finalized_blocks = std::iter::repeat(blocks.first()) .filter_map(|b| b.cloned()) .take(64) .chain(blocks.iter().cloned()) @@ -158,14 +159,13 @@ async fn test_gap() -> eyre::Result<()> { assert_eq!(notification.as_ref(), &L1Notification::Finalized(finalized.header.number)); } - // check latest for reorg or new block. if latest_number == latest.header.number { continue - } else { - let notification = l1_watcher.recv().await.unwrap(); - assert_eq!(notification.as_ref(), &L1Notification::NewBlock(latest.header.number)); } + let notification = l1_watcher.recv().await.unwrap(); + assert_eq!(notification.as_ref(), &L1Notification::NewBlock(latest.header.number)); + // update finalized and latest. finalized_number = finalized.header.number; latest_number = latest.header.number; From a4e6e7b340a89a8676acd3b888b8f51a6f0470f2 Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Wed, 12 Mar 2025 08:42:47 +0100 Subject: [PATCH 20/63] feat: point deps to default reth branch --- Cargo.lock | 3045 +++++++++++++++++---------------- Cargo.toml | 65 +- bin/bridge/Cargo.toml | 32 +- crates/engine/Cargo.toml | 48 +- crates/network/Cargo.toml | 9 +- crates/node/Cargo.toml | 10 +- crates/scroll-wire/Cargo.toml | 2 +- 7 files changed, 1636 insertions(+), 1575 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 14104f0f..d64580f7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,9 +97,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.1.59" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d37bc62b68c056e3742265ab73c73d413d07357909e0e4ea1e95453066a7469" +checksum = "963fc7ac17f25d92c237448632330eb87b39ba8aa0209d4b517069a05b57db62" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -107,27 +107,7 @@ dependencies = [ "num_enum", "proptest", "serde", - "strum", -] - -[[package]] -name = "alloy-consensus" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4138dc275554afa6f18c4217262ac9388790b2fc393c2dfe03c51d357abf013" -dependencies = [ - "alloy-eips 0.9.2", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.9.2", - "alloy-trie", - "arbitrary", - "auto_impl", - "c-kzg", - "derive_more 1.0.0", - "k256", - "rand 0.8.5", - "serde", + "strum 0.27.1", ] [[package]] @@ -136,15 +116,16 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69e32ef5c74bbeb1733c37f4ac7f866f8c8af208b7b4265e21af609dcac5bd5e" dependencies = [ - "alloy-eips 0.11.1", + "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-serde 0.11.1", + "alloy-serde", "alloy-trie", "arbitrary", "auto_impl", "c-kzg", "derive_more 1.0.0", + "k256", "rand 0.8.5", "serde", "serde_with", @@ -152,44 +133,30 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa04e1882c31288ce1028fdf31b6ea94cfa9eafa2e497f903ded631c8c6a42c" -dependencies = [ - "alloy-consensus 0.9.2", - "alloy-eips 0.9.2", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.9.2", - "serde", -] - -[[package]] -name = "alloy-consensus-any" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e23af02ccded0031ef2b70df4fe9965b1c742c5d5384c8c767ae0311f7e62b9" +checksum = "0fa13b7b1e1e3fedc42f0728103bfa3b4d566d3d42b606db449504d88dbdbdcf" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-serde 0.11.1", + "alloy-serde", "serde", ] [[package]] name = "alloy-dyn-abi" -version = "0.8.20" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2d547eba3f2d331b0e08f64a24e202f66d4f291e2a3e0073914c0e1400ced3" +checksum = "00e08c581811006021970bf07f2ecf3213f6237c125f7fd99607004b23627b61" dependencies = [ "alloy-json-abi", "alloy-primitives", "alloy-sol-type-parser", "alloy-sol-types", "const-hex", - "derive_more 1.0.0", + "derive_more 2.0.1", "itoa", "serde", "serde_json", @@ -208,13 +175,14 @@ dependencies = [ "crc", "rand 0.8.5", "serde", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "alloy-eip2930" version = "0.1.0" -source = "git+https://github.com/scroll-tech/alloy-eips?branch=v0.3.2#8d5fc83fc257b09510dc8d76561188218d9c0c32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -225,37 +193,18 @@ dependencies = [ [[package]] name = "alloy-eip7702" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cabf647eb4650c91a9d38cb6f972bb320009e7e9d61765fb688a86f1563b33e8" +checksum = "9b15b13d38b366d01e818fe8e710d4d702ef7499eacd44926a06171dd9585d0c" dependencies = [ "alloy-primitives", "alloy-rlp", "arbitrary", - "derive_more 1.0.0", "k256", "rand 0.8.5", "serde", "serde_with", -] - -[[package]] -name = "alloy-eips" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52dd5869ed09e399003e0e0ec6903d981b2a92e74c5d37e6b40890bad2517526" -dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.9.2", - "arbitrary", - "c-kzg", - "derive_more 1.0.0", - "once_cell", - "serde", - "sha2 0.10.8", + "thiserror 2.0.12", ] [[package]] @@ -269,7 +218,7 @@ dependencies = [ "alloy-eip7702", "alloy-primitives", "alloy-rlp", - "alloy-serde 0.11.1", + "alloy-serde", "arbitrary", "auto_impl", "c-kzg", @@ -281,24 +230,34 @@ dependencies = [ "sha2 0.10.8", ] +[[package]] +name = "alloy-evm" +version = "0.1.0" +source = "git+https://github.com/alloy-rs/evm?rev=beb6832#beb68324d7e05ae2eafad9f726a94cb0b63d15a5" +dependencies = [ + "alloy-consensus", + "alloy-primitives", + "revm", +] + [[package]] name = "alloy-genesis" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cded3a2d4bd7173f696458c5d4c98c18a628dfcc9f194385e80a486e412e2e0" dependencies = [ - "alloy-eips 0.11.1", + "alloy-eips", "alloy-primitives", - "alloy-serde 0.11.1", + "alloy-serde", "alloy-trie", "serde", ] [[package]] name = "alloy-json-abi" -version = "0.8.20" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d62cf1b25f5a50ca2d329b0b4aeb0a0dedeaf225ad3c5099d83b1a4c4616186e" +checksum = "125601804507fef5ae7debcbf800906b12741f19800c1c05b953d0f1b990131a" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -308,93 +267,41 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2008bedb8159a255b46b7c8614516eda06679ea82f620913679afbd8031fea72" -dependencies = [ - "alloy-primitives", - "alloy-sol-types", - "serde", - "serde_json", - "thiserror 2.0.11", - "tracing", -] - -[[package]] -name = "alloy-json-rpc" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0c5c9651fd20a2fd4a57606b6a570d1c17ab86e686b962b2f1ecac68b51e020" +checksum = "762414662d793d7aaa36ee3af6928b6be23227df1681ce9c039f6f11daadef64" dependencies = [ "alloy-primitives", "alloy-sol-types", "serde", "serde_json", - "thiserror 2.0.11", + "thiserror 2.0.12", "tracing", ] -[[package]] -name = "alloy-network" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4556f01fe41d0677495df10a648ddcf7ce118b0e8aa9642a0e2b6dd1fb7259de" -dependencies = [ - "alloy-consensus 0.9.2", - "alloy-consensus-any 0.9.2", - "alloy-eips 0.9.2", - "alloy-json-rpc 0.9.2", - "alloy-network-primitives 0.9.2", - "alloy-primitives", - "alloy-rpc-types-any 0.9.2", - "alloy-rpc-types-eth 0.9.2", - "alloy-serde 0.9.2", - "alloy-signer 0.9.2", - "alloy-sol-types", - "async-trait", - "auto_impl", - "futures-utils-wasm", - "serde", - "serde_json", - "thiserror 2.0.11", -] - [[package]] name = "alloy-network" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be03f2ebc00cf88bd06d3c6caf387dceaa9c7e6b268216779fa68a9bf8ab4e6" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-consensus-any 0.11.0", - "alloy-eips 0.11.1", - "alloy-json-rpc 0.11.0", - "alloy-network-primitives 0.11.1", + "alloy-consensus", + "alloy-consensus-any", + "alloy-eips", + "alloy-json-rpc", + "alloy-network-primitives", "alloy-primitives", - "alloy-rpc-types-any 0.11.0", - "alloy-rpc-types-eth 0.11.1", - "alloy-serde 0.11.1", - "alloy-signer 0.11.1", + "alloy-rpc-types-any", + "alloy-rpc-types-eth", + "alloy-serde", + "alloy-signer", "alloy-sol-types", "async-trait", "auto_impl", "futures-utils-wasm", "serde", "serde_json", - "thiserror 2.0.11", -] - -[[package]] -name = "alloy-network-primitives" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31c3c6b71340a1d076831823f09cb6e02de01de5c6630a9631bdb36f947ff80" -dependencies = [ - "alloy-consensus 0.9.2", - "alloy-eips 0.9.2", - "alloy-primitives", - "alloy-serde 0.9.2", - "serde", + "thiserror 2.0.12", ] [[package]] @@ -403,18 +310,18 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a00ce618ae2f78369918be0c20f620336381502c83b6ed62c2f7b2db27698b0" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", - "alloy-serde 0.11.1", + "alloy-serde", "serde", ] [[package]] name = "alloy-primitives" -version = "0.8.20" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc1360603efdfba91151e623f13a4f4d3dc4af4adc1cbd90bf37c81e84db4c77" +checksum = "8c66bb6715b7499ea755bde4c96223ae8eb74e05c014ab38b9db602879ffb825" dependencies = [ "alloy-rlp", "arbitrary", @@ -422,11 +329,11 @@ dependencies = [ "cfg-if", "const-hex", "derive_arbitrary", - "derive_more 1.0.0", + "derive_more 2.0.1", "foldhash", "getrandom 0.2.15", "hashbrown 0.15.2", - "indexmap 2.7.1", + "indexmap 2.8.0", "itoa", "k256", "keccak-asm", @@ -443,62 +350,29 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22c4441b3ebe2d77fa9cf629ba68c3f713eb91779cff84275393db97eddd82" -dependencies = [ - "alloy-chains", - "alloy-consensus 0.9.2", - "alloy-eips 0.9.2", - "alloy-json-rpc 0.9.2", - "alloy-network 0.9.2", - "alloy-network-primitives 0.9.2", - "alloy-primitives", - "alloy-rpc-client 0.9.2", - "alloy-rpc-types-eth 0.9.2", - "alloy-transport 0.9.2", - "async-stream", - "async-trait", - "auto_impl", - "dashmap", - "futures", - "futures-utils-wasm", - "lru 0.12.5", - "parking_lot", - "pin-project", - "schnellru", - "serde", - "serde_json", - "thiserror 2.0.11", - "tokio", - "tracing", - "wasmtimer", -] - -[[package]] -name = "alloy-provider" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07c68df5354225da542efeb6d9388b65773b3304309b437416146e9d1e2bc1bd" +checksum = "cbe0a2acff0c4bd1669c71251ce10fc455cbffa1b4d0a817d5ea4ba7e5bb3db7" dependencies = [ "alloy-chains", - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", - "alloy-json-rpc 0.11.0", - "alloy-network 0.11.1", - "alloy-network-primitives 0.11.1", + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-network-primitives", "alloy-primitives", "alloy-pubsub", - "alloy-rpc-client 0.11.0", - "alloy-rpc-types-eth 0.11.1", - "alloy-transport 0.11.0", - "alloy-transport-http 0.11.0", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-sol-types", + "alloy-transport", + "alloy-transport-http", "alloy-transport-ipc", "alloy-transport-ws", "async-stream", "async-trait", "auto_impl", - "dashmap", + "dashmap 6.1.0", "futures", "futures-utils-wasm", "lru 0.13.0", @@ -507,7 +381,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tracing", "url", @@ -516,13 +390,13 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef6ef167ea24e7aac569dfd90b668c1f7dca0e48214e70364586d5341a89431" +checksum = "de3a68996f193f542f9e29c88dfa8ed1369d6ee04fa764c1bf23dc11b2f9e4a2" dependencies = [ - "alloy-json-rpc 0.11.0", + "alloy-json-rpc", "alloy-primitives", - "alloy-transport 0.11.0", + "alloy-transport", "bimap", "futures", "serde", @@ -552,41 +426,20 @@ checksum = "a40e1ef334153322fd878d07e86af7a529bcb86b2439525920a88eba87bcf943" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "alloy-rpc-client" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d06a292b37e182e514903ede6e623b9de96420e8109ce300da288a96d88b7e4b" -dependencies = [ - "alloy-json-rpc 0.9.2", - "alloy-primitives", - "alloy-transport 0.9.2", - "alloy-transport-http 0.9.2", - "futures", - "pin-project", - "serde", - "serde_json", - "tokio", - "tokio-stream", - "tower 0.5.2", - "tracing", - "wasmtimer", -] - -[[package]] -name = "alloy-rpc-client" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0371aae9b44a35e374c94c7e1df5cbccf0f52b2ef7c782291ed56e86d88ec106" +checksum = "b37cc3c7883dc41be1b01460127ad7930466d0a4bb6ba15a02ee34d2745e2d7c" dependencies = [ - "alloy-json-rpc 0.11.0", + "alloy-json-rpc", "alloy-primitives", "alloy-pubsub", - "alloy-transport 0.11.0", - "alloy-transport-http 0.11.0", + "alloy-transport", + "alloy-transport-http", "alloy-transport-ipc", "alloy-transport-ws", "futures", @@ -604,22 +457,22 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1428d64569961b00373c503a3de306656e94ef1f2a474e93fd41a6daae0d6ac7" +checksum = "6f18e68a3882f372e045ddc89eb455469347767d17878ca492cfbac81e71a111" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", - "alloy-rpc-types-eth 0.11.1", - "alloy-serde 0.11.1", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", + "alloy-serde", "serde", ] [[package]] name = "alloy-rpc-types-admin" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d25e16c2be6518be9274ab16fe19190666d4330d0713aa14938f593ddb0098" +checksum = "b4e30339fff15d53a3a258a7add476c7d24b61d6f4a71476cc39c8b567666772" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -629,91 +482,64 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d721727cc493a58bd197a3ebbd42b88c0393c1f30da905bb7a31686c820f4c2d" +checksum = "10d06300df4a87d960add35909240fc72da355dd2ac926fa6999f9efafbdc5a7" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", - "alloy-serde 0.11.1", + "alloy-rpc-types-eth", + "alloy-serde", "serde", ] [[package]] name = "alloy-rpc-types-any" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca445cef0eb6c2cf51cfb4e214fbf1ebd00893ae2e6f3b944c8101b07990f988" -dependencies = [ - "alloy-consensus-any 0.9.2", - "alloy-rpc-types-eth 0.9.2", - "alloy-serde 0.9.2", -] - -[[package]] -name = "alloy-rpc-types-any" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66e119337400d8b0348e1576ab37ffa56d1a04cbc977a84d4fa0a527d7cb0c21" +checksum = "318ae46dd12456df42527c3b94c1ae9001e1ceb707f7afe2c7807ac4e49ebad9" dependencies = [ - "alloy-consensus-any 0.11.0", - "alloy-rpc-types-eth 0.11.1", - "alloy-serde 0.11.1", + "alloy-consensus-any", + "alloy-rpc-types-eth", + "alloy-serde", ] [[package]] name = "alloy-rpc-types-beacon" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9deadb4c8927dc702b58c8fb675f9fb88782c4c9c95096682058c1574141b8b7" +checksum = "799103aa44270c7bea076ec5d3d7b6c6d29557ab5485c91a74d3068327adb485" dependencies = [ - "alloy-eips 0.11.1", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "ethereum_ssz", "ethereum_ssz_derive", "serde", "serde_with", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "alloy-rpc-types-debug" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea98e1c4ac005ffe5f8691164f5f2ef5ee8dda50b1fdba173d44892141909e2" -dependencies = [ - "alloy-primitives", - "serde", -] - -[[package]] -name = "alloy-rpc-types-engine" -version = "0.9.2" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f821f30344862a0b6eb9a1c2eb91dfb2ff44c7489f37152a526cdcab79264" +checksum = "2834b7012054cb2f90ee9893b7cc97702edca340ec1ef386c30c42e55e6cd691" dependencies = [ - "alloy-consensus 0.9.2", - "alloy-eips 0.9.2", "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.9.2", - "derive_more 1.0.0", "serde", - "strum", ] [[package]] name = "alloy-rpc-types-engine" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b582c59b6f493d9b15bea32f44f662fa6749e5464ef5305d8429a864ace60684" +checksum = "e83dde9fcf1ccb9b815cc0c89bba26bbbbaae5150a53ae624ed0fc63cb3676c1" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-serde 0.11.1", + "alloy-serde", "derive_more 1.0.0", "ethereum_ssz", "ethereum_ssz_derive", @@ -721,28 +547,7 @@ dependencies = [ "jsonwebtoken", "rand 0.8.5", "serde", - "strum", -] - -[[package]] -name = "alloy-rpc-types-eth" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0938bc615c02421bd86c1733ca7205cc3d99a122d9f9bff05726bd604b76a5c2" -dependencies = [ - "alloy-consensus 0.9.2", - "alloy-consensus-any 0.9.2", - "alloy-eips 0.9.2", - "alloy-network-primitives 0.9.2", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.9.2", - "alloy-sol-types", - "arbitrary", - "itertools 0.13.0", - "serde", - "serde_json", - "thiserror 2.0.11", + "strum 0.26.3", ] [[package]] @@ -751,72 +556,60 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b4dbee4d82f8a22dde18c28257bed759afeae7ba73da4a1479a039fd1445d04" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-consensus-any 0.11.0", - "alloy-eips 0.11.1", - "alloy-network-primitives 0.11.1", + "alloy-consensus", + "alloy-consensus-any", + "alloy-eips", + "alloy-network-primitives", "alloy-primitives", "alloy-rlp", - "alloy-serde 0.11.1", + "alloy-serde", "alloy-sol-types", "arbitrary", "itertools 0.14.0", "jsonrpsee-types", "serde", "serde_json", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "alloy-rpc-types-mev" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076b5ed023c0b0e025566cfc570b51a6fd975935c982617c130ca98dcb0c1390" +checksum = "418eb6584edd695dfe496dda85a19102c1ae4838f142efce11e2463ed2288d71" dependencies = [ - "alloy-eips 0.11.1", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", - "alloy-serde 0.11.1", + "alloy-rpc-types-eth", + "alloy-serde", "serde", "serde_json", ] [[package]] name = "alloy-rpc-types-trace" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac383c60b09660b7695a4f210cd11ab05887d058dfc669efd814904dbbaead82" +checksum = "7bd951155515fa452a2ca4b5434d4b3ab742bcd3d1d1b9a91704bcef5b8d2604" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", - "alloy-serde 0.11.1", + "alloy-rpc-types-eth", + "alloy-serde", "serde", "serde_json", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "alloy-rpc-types-txpool" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac39b1a583bb59dcf7d856604867acf704a7cf70b76a42f895652d566aa6f17c" -dependencies = [ - "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", - "alloy-serde 0.11.1", - "serde", -] - -[[package]] -name = "alloy-serde" -version = "0.9.2" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae0465c71d4dced7525f408d84873aeebb71faf807d22d74c4a426430ccd9b55" +checksum = "21d8dd5bd94993eda3d56a8c4c0d693548183a35462523ffc4385c0b020d3b0c" dependencies = [ "alloy-primitives", - "arbitrary", + "alloy-rpc-types-eth", + "alloy-serde", "serde", - "serde_json", ] [[package]] @@ -831,20 +624,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "alloy-signer" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bfa395ad5cc952c82358d31e4c68b27bf4a89a5456d9b27e226e77dac50e4ff" -dependencies = [ - "alloy-primitives", - "async-trait", - "auto_impl", - "elliptic-curve", - "k256", - "thiserror 2.0.11", -] - [[package]] name = "alloy-signer" version = "0.11.1" @@ -857,79 +636,79 @@ dependencies = [ "either", "elliptic-curve", "k256", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "alloy-signer-local" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39163b956c81e8fd9605194d6b5b92dd93b0e0252810e69f9a4cebe3a8614f46" +checksum = "fe8f78cd6b7501c7e813a1eb4a087b72d23af51f5bb66d4e948dc840bdd207d8" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-network 0.11.1", + "alloy-consensus", + "alloy-network", "alloy-primitives", - "alloy-signer 0.11.1", + "alloy-signer", "async-trait", "coins-bip32", "coins-bip39", "k256", "rand 0.8.5", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "alloy-sol-macro" -version = "0.8.20" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13f28f2131dc3a7b8e2cda882758ad4d5231ca26281b9861d4b18c700713e2da" +checksum = "c7f9c3c7bc1f4e334e5c5fc59ec8dac894973a71b11da09065affc6094025049" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.20" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee2da033256a3b27131c030933eab0460a709fbcc4d4bd57bf9a5650b2441c5" +checksum = "46ff7aa715eb2404cb87fa94390d2c5d5addd70d9617e20b2398ee6f48cb21f0" dependencies = [ "alloy-sol-macro-input", "const-hex", "heck", - "indexmap 2.7.1", + "indexmap 2.8.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.20" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9d9918b0abb632818bf27e2dfb86b209be8433baacf22100b190bbc0904bd4" +checksum = "6f105fa700140c0cc6e2c3377adef650c389ac57b8ead8318a2e6bd52f1ae841" dependencies = [ "const-hex", "dunce", "heck", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "0.8.20" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a971129d242338d92009470a2f750d3b2630bc5da00a40a94d51f5d456b5712f" +checksum = "c649acc6c9d3893e392c737faeadce30b4a1751eed148ae43bc2f27f29c4480c" dependencies = [ "serde", "winnow", @@ -937,9 +716,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.20" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f306fc801b3aa2e3c4785b7b5252ec8b19f77b30e3b75babfd23849c81bd8c" +checksum = "5f819635439ebb06aa13c96beac9b2e7360c259e90f5160a6848ae0d94d10452" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -950,36 +729,16 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d17722a198f33bbd25337660787aea8b8f57814febb7c746bc30407bdfc39448" -dependencies = [ - "alloy-json-rpc 0.9.2", - "base64 0.22.1", - "futures-util", - "futures-utils-wasm", - "serde", - "serde_json", - "thiserror 2.0.11", - "tokio", - "tower 0.5.2", - "tracing", - "url", - "wasmtimer", -] - -[[package]] -name = "alloy-transport" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40e2f34fcd849676c8fe274a6e72f0664dfede7ce06d12daa728d2e72f1b4393" +checksum = "5a8d762eadce3e9b65eac09879430c6f4fce3736cac3cac123f9b1bf435ddd13" dependencies = [ - "alloy-json-rpc 0.11.0", + "alloy-json-rpc", "base64 0.22.1", "futures-utils-wasm", "serde", "serde_json", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tower 0.5.2", "tracing", @@ -989,23 +748,13 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1509599021330a31c4a6816b655e34bf67acb1cc03c564e09fd8754ff6c5de" -dependencies = [ - "alloy-transport 0.9.2", - "url", -] - -[[package]] -name = "alloy-transport-http" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e291c97c3c0ebb5d03c34e3a55c0f7c5bfa307536a2efaaa6fae4b3a4d09851" +checksum = "20819c4cb978fb39ce6ac31991ba90f386d595f922f42ef888b4a18be190713e" dependencies = [ - "alloy-json-rpc 0.11.0", - "alloy-rpc-types-engine 0.11.0", - "alloy-transport 0.11.0", + "alloy-json-rpc", + "alloy-rpc-types-engine", + "alloy-transport", "http-body-util", "hyper", "hyper-util", @@ -1019,13 +768,13 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3e991f40d2d81c6ee036a34d81127bfec5fadf7e649791b5225181126c1959" +checksum = "5e88304aa8b796204e5e2500dfe235933ed692745e3effd94c3733643db6d218" dependencies = [ - "alloy-json-rpc 0.11.0", + "alloy-json-rpc", "alloy-pubsub", - "alloy-transport 0.11.0", + "alloy-transport", "bytes", "futures", "interprocess", @@ -1039,12 +788,12 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc8c544f7dc764735664756805f8b8b770020cc295a0b96b09cbefd099c172c7" +checksum = "b9653ea9aa06d0e02fcbe2f04f1c47f35a85c378ccefa98e54ae85210bc8bbfa" dependencies = [ "alloy-pubsub", - "alloy-transport 0.11.0", + "alloy-transport", "futures", "http", "rustls", @@ -1142,9 +891,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.95" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" +checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" [[package]] name = "aquamarine" @@ -1157,7 +906,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -1316,9 +1065,9 @@ checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "async-compression" -version = "0.4.18" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df895a515f70646414f4b45c0b79082783b80552b373a68283012928df56f522" +checksum = "310c9bcae737a48ef5cdee3174184e6d548b292739ede61a1f955ef76a738861" dependencies = [ "brotli", "flate2", @@ -1338,7 +1087,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -1360,18 +1109,18 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "async-trait" -version = "0.1.86" +version = "0.1.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d" +checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -1409,7 +1158,7 @@ checksum = "e12882f59de5360c748c4cbf569a042d5fb0eb515f7bea9c1f470b47f6ffbd73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -1420,9 +1169,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backon" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5289ec98f68f28dd809fd601059e6aa908bb8f6108620930828283d4ee23d7" +checksum = "49fef586913a57ff189f25c9b3d034356a5bf6b3fa9a7f067588fe1698ba1f5d" dependencies = [ "fastrand", "tokio", @@ -1475,9 +1224,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +checksum = "bb97d56060ee67d285efb8001fec9d2a4c710c32efd2e14b5cbb5ba71930fc2d" [[package]] name = "bech32" @@ -1506,7 +1255,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "cexpr", "clang-sys", "itertools 0.13.0", @@ -1515,7 +1264,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -1533,6 +1282,22 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" +[[package]] +name = "bitcoin-io" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" + +[[package]] +name = "bitcoin_hashes" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +dependencies = [ + "bitcoin-io", + "hex-conservative", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -1541,11 +1306,10 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" dependencies = [ - "arbitrary", "serde", ] @@ -1564,9 +1328,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.5" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e" +checksum = "675f87afced0413c9bb02843499dbbd3882a237645883f71a2b59644a6d2f753" dependencies = [ "arrayref", "arrayvec", @@ -1604,9 +1368,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" +checksum = "47c79a94619fade3c0b887670333513a67ac28a6a7e653eb260bf0d4103db38d" dependencies = [ "cc", "glob", @@ -1662,15 +1426,21 @@ checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "byte-slice-cast" -version = "1.2.2" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + +[[package]] +name = "bytecount" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" +checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" [[package]] name = "bytemuck" -version = "1.21.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" +checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" [[package]] name = "byteorder" @@ -1680,9 +1450,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" dependencies = [ "serde", ] @@ -1720,6 +1490,19 @@ dependencies = [ "serde", ] +[[package]] +name = "cargo_metadata" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.26", + "serde", + "serde_json", +] + [[package]] name = "cargo_metadata" version = "0.18.1" @@ -1728,7 +1511,7 @@ checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", "cargo-platform", - "semver 1.0.25", + "semver 1.0.26", "serde", "serde_json", "thiserror 1.0.69", @@ -1751,9 +1534,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.13" +version = "1.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7777341816418c02e033934a09f20dc0ccaf65a5201ef8a450ae0105a573fda" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" dependencies = [ "jobserver", "libc", @@ -1789,9 +1572,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.39" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" dependencies = [ "android-tzdata", "iana-time-zone", @@ -1799,7 +1582,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.6", + "windows-link", ] [[package]] @@ -1825,9 +1608,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.28" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e77c3243bd94243c03672cb5154667347c457ca271254724f9f393aee1c05ff" +checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83" dependencies = [ "clap_builder", "clap_derive", @@ -1835,9 +1618,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.27" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" +checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8" dependencies = [ "anstream", "anstyle", @@ -1847,14 +1630,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.28" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" +checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -2011,9 +1794,9 @@ checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" dependencies = [ "unicode-segmentation", ] @@ -2132,11 +1915,11 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "crossterm_winapi", - "mio 1.0.3", + "mio", "parking_lot", - "rustix", + "rustix 0.38.44", "signal-hook", "signal-hook-mio", "winapi", @@ -2223,7 +2006,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -2247,7 +2030,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -2258,7 +2041,20 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.98", + "syn 2.0.100", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", ] [[package]] @@ -2299,7 +2095,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18e4fdb82bd54a12e42fb58a800dcae6b9e13982238ce2296dc3570b92148e1f" dependencies = [ "data-encoding", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -2350,6 +2146,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-where" +version = "1.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "derive_arbitrary" version = "1.4.1" @@ -2358,7 +2165,7 @@ checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -2385,10 +2192,9 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ - "convert_case", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", "unicode-xid", ] @@ -2398,9 +2204,11 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ + "convert_case", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", + "unicode-xid", ] [[package]] @@ -2474,9 +2282,9 @@ dependencies = [ [[package]] name = "discv5" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e6b70634e26c909d1edbb3142b3eaf3b89da0e52f284f00ca7c80d9901ad9e" +checksum = "c4b4e7798d2ff74e29cee344dc490af947ae657d6ab5273dde35d58ce06a4d71" dependencies = [ "aes", "aes-gcm", @@ -2513,7 +2321,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -2530,9 +2338,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feeef44e73baff3a26d371801df019877a9866a8c493d315ab00177843314f35" +checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" [[package]] name = "ecdsa" @@ -2576,9 +2384,9 @@ dependencies = [ [[package]] name = "either" -version = "1.13.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "elliptic-curve" @@ -2602,19 +2410,19 @@ dependencies = [ [[package]] name = "enr" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "972070166c68827e64bd1ebc8159dd8e32d9bc2da7ebe8f20b61308f7974ad30" +checksum = "851bd664a3d3a3c175cff92b2f0df02df3c541b4895d0ae307611827aae46152" dependencies = [ "alloy-rlp", - "base64 0.21.7", + "base64 0.22.1", "bytes", "ed25519-dalek", "hex", "k256", "log", "rand 0.8.5", - "secp256k1", + "secp256k1 0.30.0", "serde", "sha3", "zeroize", @@ -2629,7 +2437,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -2640,14 +2448,14 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" @@ -2656,7 +2464,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "error-chain" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" +dependencies = [ + "version_check", ] [[package]] @@ -2696,7 +2513,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -2726,6 +2543,17 @@ dependencies = [ "bytes", ] +[[package]] +name = "fastrlp" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + [[package]] name = "fdlimit" version = "0.3.0" @@ -2738,8 +2566,9 @@ dependencies = [ [[package]] name = "ff" -version = "0.13.0" -source = "git+https://github.com/scroll-tech/ff?branch=feat/sp1#244b1098f6be1d19c5fd3f0ec60117ac2940e6ca" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ "rand_core 0.6.4", "subtle", @@ -2777,9 +2606,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.35" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" dependencies = [ "crc32fast", "miniz_oxide", @@ -2877,7 +2706,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -3057,9 +2886,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" +checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" dependencies = [ "atomic-waker", "bytes", @@ -3067,7 +2896,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.7.1", + "indexmap 2.8.0", "slab", "tokio", "tokio-util", @@ -3153,6 +2982,15 @@ dependencies = [ "serde", ] +[[package]] +name = "hex-conservative" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +dependencies = [ + "arrayvec", +] + [[package]] name = "hickory-proto" version = "0.25.0-alpha.5" @@ -3172,7 +3010,7 @@ dependencies = [ "once_cell", "rand 0.9.0", "serde", - "thiserror 2.0.11", + "thiserror 2.0.12", "tinyvec", "tokio", "tracing", @@ -3196,7 +3034,7 @@ dependencies = [ "resolv-conf", "serde", "smallvec", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tracing", ] @@ -3253,9 +3091,9 @@ dependencies = [ [[package]] name = "http" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +checksum = "0a761d192fbf18bdef69f5ceedd0d1333afcbda0ee23840373b8317570d23c65" dependencies = [ "bytes", "fnv", @@ -3274,12 +3112,12 @@ dependencies = [ [[package]] name = "http-body-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", - "futures-util", + "futures-core", "http", "http-body", "pin-project-lite", @@ -3293,9 +3131,9 @@ checksum = "9171a2ea8a68358193d15dd5d70c1c10a2afc3e7e4c5bc92bc9f025cebd7359c" [[package]] name = "httparse" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" @@ -3523,7 +3361,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -3580,7 +3418,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -3621,9 +3459,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" dependencies = [ "arbitrary", "equivalent", @@ -3633,17 +3471,17 @@ dependencies = [ [[package]] name = "indoc" -version = "2.0.5" +version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" +checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" [[package]] name = "inotify" -version = "0.9.6" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.0", "inotify-sys", "libc", ] @@ -3659,9 +3497,9 @@ dependencies = [ [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "block-padding", "generic-array", @@ -3677,14 +3515,14 @@ dependencies = [ "indoc", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "interprocess" -version = "2.2.2" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "894148491d817cb36b6f778017b8ac46b17408d522dd90f539d677ea938362eb" +checksum = "d941b405bd2322993887859a8ee6ac9134945a24ec5ec763a8a962fc64dfec2d" dependencies = [ "doctest-file", "futures-core", @@ -3758,9 +3596,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jni" @@ -3906,7 +3744,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -4052,9 +3890,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.169" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "libloading" @@ -4063,9 +3901,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + [[package]] name = "libp2p-identity" version = "0.2.10" @@ -4102,7 +3946,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "libc", "redox_syscall", ] @@ -4177,11 +4021,17 @@ version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +[[package]] +name = "linux-raw-sys" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" + [[package]] name = "litemap" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] name = "lock_api" @@ -4196,9 +4046,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.25" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" [[package]] name = "loom" @@ -4295,7 +4145,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -4305,7 +4155,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd7399781913e5393588a8d8c6a2867bf85fb38eaf2502fdce465aad2dc6f034" dependencies = [ "base64 0.22.1", - "indexmap 2.7.1", + "indexmap 2.8.0", "metrics", "metrics-util", "quanta", @@ -4323,7 +4173,7 @@ dependencies = [ "mach2", "metrics", "once_cell", - "procfs 0.17.0", + "procfs", "rlimit", "windows 0.58.0", ] @@ -4360,6 +4210,21 @@ dependencies = [ "unicase", ] +[[package]] +name = "mini-moka" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c325dfab65f261f386debee8b0969da215b3fa0037e74c8a1234db7ba986d803" +dependencies = [ + "crossbeam-channel", + "crossbeam-utils", + "dashmap 5.5.3", + "skeptic", + "smallvec", + "tagptr", + "triomphe", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -4368,25 +4233,13 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" dependencies = [ "adler2", ] -[[package]] -name = "mio" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" -dependencies = [ - "libc", - "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", -] - [[package]] name = "mio" version = "1.0.3" @@ -4497,21 +4350,30 @@ dependencies = [ [[package]] name = "notify" -version = "6.1.1" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" +checksum = "2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "filetime", "fsevent-sys", "inotify", "kqueue", "libc", "log", - "mio 0.8.11", - "serde", + "mio", + "notify-types", "walkdir", - "windows-sys 0.48.0", + "windows-sys 0.59.0", +] + +[[package]] +name = "notify-types" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d" +dependencies = [ + "serde", ] [[package]] @@ -4610,6 +4472,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -4639,7 +4502,7 @@ checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -4676,9 +4539,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.3" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" +checksum = "cde51589ab56b20a6f686b2c68f7a0bd6add753d697abf720d63f8db3ab7b1ad" dependencies = [ "critical-section", "portable-atomic", @@ -4686,35 +4549,39 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.10.5" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "621e69964165285ce750bf7ba961707e26c31df9f0b25652d6219dcee1f7f5b5" +checksum = "a9ddc5e1dcd2967e8325ab06ed52a2c7cfa562a6dd31ffc9f64e7075bba9f221" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-serde 0.11.1", + "alloy-serde", "arbitrary", "derive_more 1.0.0", "serde", "serde_with", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "op-alloy-rpc-types-engine" -version = "0.10.2" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2e4fe1929b0e39130da37cb975c98d70418904ba7991a061799ad971dbd09fe" +checksum = "a55d4fa121dbd258c0ce949c16ccbcd4e2701a6cc3aa953faa8b1c18826a8560" dependencies = [ - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", + "alloy-serde", + "derive_more 1.0.0", "ethereum_ssz", "op-alloy-consensus", + "serde", "snap", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] @@ -4790,7 +4657,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -4834,9 +4701,9 @@ dependencies = [ [[package]] name = "pem" -version = "3.0.4" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" +checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" dependencies = [ "base64 0.22.1", "serde", @@ -4855,7 +4722,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror 2.0.11", + "thiserror 2.0.12", "ucd-trie", ] @@ -4871,22 +4738,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfe2e71e1471fe07709406bf725f710b02927c9c54b2b5b2ec0e8087d97c327d" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -4913,9 +4780,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plain_hasher" @@ -4940,9 +4807,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] name = "powerfmt" @@ -4952,11 +4819,11 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.7.35", + "zerocopy 0.8.23", ] [[package]] @@ -4991,9 +4858,9 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ "toml_edit", ] @@ -5017,54 +4884,30 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] -[[package]] -name = "procfs" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4" -dependencies = [ - "bitflags 2.8.0", - "chrono", - "flate2", - "hex", - "lazy_static", - "procfs-core 0.16.0", - "rustix", -] - [[package]] name = "procfs" version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" dependencies = [ - "bitflags 2.8.0", - "hex", - "procfs-core 0.17.0", - "rustix", -] - -[[package]] -name = "procfs-core" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29" -dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "chrono", + "flate2", "hex", + "procfs-core", + "rustix 0.38.44", ] [[package]] @@ -5073,7 +4916,8 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", + "chrono", "hex", ] @@ -5085,7 +4929,7 @@ checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.8.0", + "bitflags 2.9.0", "lazy_static", "num-traits", "rand 0.8.5", @@ -5115,7 +4959,18 @@ checksum = "4ee1c9ac207483d5e7db4940700de86a9aae46ef90c48b57f99fe7edb8345e49" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", +] + +[[package]] +name = "pulldown-cmark" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" +dependencies = [ + "bitflags 2.9.0", + "memchr", + "unicase", ] [[package]] @@ -5161,7 +5016,7 @@ dependencies = [ "rustc-hash 2.1.1", "rustls", "socket2", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tracing", ] @@ -5180,7 +5035,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.11", + "thiserror 2.0.12", "tinyvec", "tracing", "web-time", @@ -5188,23 +5043,23 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" +checksum = "e46f3055866785f6b92bc6164b76be02ca8f2eb4b002c0354b28cf4c119e5944" dependencies = [ "cfg_aliases", "libc", "once_cell", "socket2", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] name = "quote" -version = "1.0.38" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801" dependencies = [ "proc-macro2", ] @@ -5234,8 +5089,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.0", - "zerocopy 0.8.17", + "rand_core 0.9.3", + "zerocopy 0.8.23", ] [[package]] @@ -5255,7 +5110,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.0", + "rand_core 0.9.3", ] [[package]] @@ -5269,12 +5124,11 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.0" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ "getrandom 0.3.1", - "zerocopy 0.8.17", ] [[package]] @@ -5297,32 +5151,32 @@ dependencies = [ [[package]] name = "ratatui" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdef7f9be5c0122f890d58bdf4d964349ba6a6161f705907526d891efabba57d" +checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "cassowary", "compact_str", "crossterm", + "indoc", "instability", "itertools 0.13.0", "lru 0.12.5", "paste", - "strum", - "strum_macros", + "strum 0.26.3", "unicode-segmentation", "unicode-truncate", - "unicode-width 0.1.14", + "unicode-width 0.2.0", ] [[package]] name = "raw-cpuid" -version = "11.3.0" +version = "11.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6928fa44c097620b706542d428957635951bade7143269085389d42c8a4927e" +checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] [[package]] @@ -5353,11 +5207,11 @@ checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" [[package]] name = "redox_syscall" -version = "0.5.8" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] [[package]] @@ -5470,17 +5324,41 @@ dependencies = [ "quick-error", ] +[[package]] +name = "reth-basic-payload-builder" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "futures-core", + "futures-util", + "metrics", + "reth-metrics", + "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-primitives", + "reth-primitives-traits", + "reth-provider", + "reth-revm", + "reth-tasks", + "tokio", + "tracing", +] + [[package]] name = "reth-chain-state" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", - "alloy-signer 0.11.1", + "alloy-signer", "alloy-signer-local", - "derive_more 1.0.0", + "derive_more 2.0.1", "metrics", "parking_lot", "pin-project", @@ -5493,7 +5371,8 @@ dependencies = [ "reth-primitives-traits", "reth-storage-api", "reth-trie", - "revm", + "revm-database", + "revm-state", "tokio", "tokio-stream", "tracing", @@ -5501,17 +5380,17 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-chains", - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-genesis", "alloy-primitives", "alloy-trie", "auto_impl", - "derive_more 1.0.0", + "derive_more 2.0.1", "reth-ethereum-forks", "reth-network-peers", "reth-primitives-traits", @@ -5520,8 +5399,8 @@ dependencies = [ [[package]] name = "reth-cli" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-genesis", "clap", @@ -5534,12 +5413,12 @@ dependencies = [ [[package]] name = "reth-cli-commands" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "ahash", - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "alloy-rlp", "backon", @@ -5550,13 +5429,13 @@ dependencies = [ "fdlimit", "futures", "human_bytes", - "itertools 0.13.0", + "itertools 0.14.0", "ratatui", "reth-chainspec", "reth-cli", "reth-cli-runner", "reth-cli-util", - "reth-codecs 1.1.5", + "reth-codecs", "reth-config", "reth-consensus", "reth-db", @@ -5566,7 +5445,6 @@ dependencies = [ "reth-ecies", "reth-eth-wire", "reth-ethereum-cli", - "reth-ethereum-consensus", "reth-evm", "reth-exex", "reth-fs-util", @@ -5585,7 +5463,9 @@ dependencies = [ "reth-stages", "reth-static-file", "reth-static-file-types", - "secp256k1", + "reth-trie", + "reth-trie-db", + "secp256k1 0.30.0", "serde", "serde_json", "tokio", @@ -5595,8 +5475,8 @@ dependencies = [ [[package]] name = "reth-cli-runner" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "reth-tasks", "tokio", @@ -5605,83 +5485,55 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-eips 0.11.1", + "alloy-eips", "alloy-primitives", "cfg-if", "eyre", "libc", "rand 0.8.5", "reth-fs-util", - "secp256k1", - "serde", - "thiserror 2.0.11", -] - -[[package]] -name = "reth-codecs" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" -dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "arbitrary", - "bytes", - "modular-bitfield", - "op-alloy-consensus", - "reth-codecs-derive 1.1.5", + "secp256k1 0.30.0", "serde", - "visibility", + "thiserror 2.0.12", ] [[package]] name = "reth-codecs" version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-genesis", "alloy-primitives", "alloy-trie", + "arbitrary", "bytes", "modular-bitfield", "op-alloy-consensus", - "reth-codecs-derive 1.2.0", + "reth-codecs-derive", "serde", -] - -[[package]] -name = "reth-codecs-derive" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "syn 2.0.98", + "visibility", ] [[package]] name = "reth-codecs-derive" version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "reth-config" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "eyre", "humantime-serde", @@ -5694,24 +5546,24 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", "alloy-primitives", "auto_impl", - "derive_more 1.0.0", + "reth-execution-types", "reth-primitives-traits", + "thiserror 2.0.12", ] [[package]] name = "reth-consensus-common" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "reth-chainspec", "reth-consensus", @@ -5720,15 +5572,15 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", - "alloy-provider 0.11.0", - "alloy-rpc-types-engine 0.11.0", - "alloy-rpc-types-eth 0.11.1", + "alloy-provider", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", "auto_impl", "eyre", "futures", @@ -5744,13 +5596,11 @@ dependencies = [ [[package]] name = "reth-db" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", "alloy-primitives", - "bytes", - "derive_more 1.0.0", + "derive_more 2.0.1", "eyre", "metrics", "page_size", @@ -5761,36 +5611,31 @@ dependencies = [ "reth-metrics", "reth-nippy-jar", "reth-primitives", - "reth-primitives-traits", - "reth-prune-types", - "reth-stages-types", "reth-storage-errors", "reth-tracing", - "reth-trie-common", "rustc-hash 2.1.1", - "serde", - "strum", + "strum 0.27.1", "sysinfo", "tempfile", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "reth-db-api" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-genesis", "alloy-primitives", "arbitrary", "bytes", - "derive_more 1.0.0", + "derive_more 2.0.1", "metrics", "modular-bitfield", "parity-scale-codec", "proptest", - "reth-codecs 1.1.5", + "reth-codecs", "reth-db-models", "reth-optimism-primitives", "reth-primitives", @@ -5806,18 +5651,17 @@ dependencies = [ [[package]] name = "reth-db-common" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-genesis", "alloy-primitives", "boyer-moore-magiclen", "eyre", "reth-chainspec", - "reth-codecs 1.1.5", + "reth-codecs", "reth-config", - "reth-db", "reth-db-api", "reth-etl", "reth-fs-util", @@ -5829,37 +5673,36 @@ dependencies = [ "reth-trie-db", "serde", "serde_json", - "thiserror 2.0.11", + "thiserror 2.0.12", "tracing", ] [[package]] name = "reth-db-models" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-eips 0.11.1", + "alloy-eips", "alloy-primitives", "arbitrary", "bytes", "modular-bitfield", - "proptest", - "reth-codecs 1.1.5", + "reth-codecs", "reth-primitives-traits", "serde", ] [[package]] name = "reth-discv4" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-primitives", "alloy-rlp", "discv5", "enr", "generic-array", - "itertools 0.13.0", + "itertools 0.14.0", "parking_lot", "rand 0.8.5", "reth-ethereum-forks", @@ -5867,9 +5710,9 @@ dependencies = [ "reth-net-nat", "reth-network-peers", "schnellru", - "secp256k1", + "secp256k1 0.30.0", "serde", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-stream", "tracing", @@ -5877,32 +5720,32 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-primitives", "alloy-rlp", - "derive_more 1.0.0", + "derive_more 2.0.1", "discv5", "enr", "futures", - "itertools 0.13.0", + "itertools 0.14.0", "metrics", "rand 0.8.5", "reth-chainspec", "reth-ethereum-forks", "reth-metrics", "reth-network-peers", - "secp256k1", - "thiserror 2.0.11", + "secp256k1 0.30.0", + "thiserror 2.0.12", "tokio", "tracing", ] [[package]] name = "reth-dns-discovery" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-primitives", "data-encoding", @@ -5914,10 +5757,10 @@ dependencies = [ "reth-network-peers", "reth-tokio-util", "schnellru", - "secp256k1", + "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-stream", "tracing", @@ -5925,16 +5768,16 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "alloy-rlp", "futures", "futures-util", - "itertools 0.13.0", + "itertools 0.14.0", "metrics", "pin-project", "rayon", @@ -5951,7 +5794,7 @@ dependencies = [ "reth-tasks", "reth-testing-utils", "tempfile", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-stream", "tokio-util", @@ -5960,19 +5803,19 @@ dependencies = [ [[package]] name = "reth-e2e-test-utils" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", - "alloy-network 0.11.1", + "alloy-consensus", + "alloy-eips", + "alloy-network", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine 0.11.0", - "alloy-rpc-types-eth 0.11.1", - "alloy-signer 0.11.1", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", + "alloy-signer", "alloy-signer-local", - "derive_more 1.0.0", + "derive_more 2.0.1", "eyre", "futures-util", "jsonrpsee", @@ -5986,7 +5829,6 @@ dependencies = [ "reth-node-api", "reth-node-builder", "reth-node-core", - "reth-optimism-primitives", "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", @@ -6008,8 +5850,8 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "aes", "alloy-primitives", @@ -6026,10 +5868,10 @@ dependencies = [ "pin-project", "rand 0.8.5", "reth-network-peers", - "secp256k1", + "secp256k1 0.30.0", "sha2 0.10.8", "sha3", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-stream", "tokio-util", @@ -6039,12 +5881,12 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "eyre", "futures-util", "reth-chainspec", @@ -6056,7 +5898,6 @@ dependencies = [ "reth-evm", "reth-node-types", "reth-payload-builder", - "reth-payload-builder-primitives", "reth-payload-primitives", "reth-provider", "reth-prune", @@ -6070,14 +5911,16 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", + "auto_impl", "futures", + "reth-chain-state", "reth-errors", "reth-execution-types", "reth-payload-builder-primitives", @@ -6086,14 +5929,14 @@ dependencies = [ "reth-primitives-traits", "reth-trie", "serde", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", ] [[package]] name = "reth-engine-service" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "futures", "pin-project", @@ -6110,23 +5953,23 @@ dependencies = [ "reth-prune", "reth-stages-api", "reth-tasks", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "reth-engine-tree" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine 0.11.0", - "derive_more 1.0.0", + "alloy-rpc-types-engine", + "derive_more 2.0.1", "futures", "metrics", - "moka", + "mini-moka", "rayon", "reth-chain-state", "reth-chainspec", @@ -6139,7 +5982,6 @@ dependencies = [ "reth-metrics", "reth-network-p2p", "reth-payload-builder", - "reth-payload-builder-primitives", "reth-payload-primitives", "reth-primitives-traits", "reth-provider", @@ -6157,23 +5999,23 @@ dependencies = [ "reth-trie-sparse", "revm-primitives", "schnellru", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tracing", ] [[package]] name = "reth-engine-util" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "eyre", "futures", - "itertools 0.13.0", + "itertools 0.14.0", "pin-project", "reth-chainspec", "reth-consensus-common", @@ -6189,6 +6031,7 @@ dependencies = [ "reth-provider", "reth-revm", "reth-trie", + "revm-database", "revm-primitives", "serde", "serde_json", @@ -6199,29 +6042,29 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "reth-consensus", "reth-execution-errors", "reth-fs-util", "reth-storage-errors", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "reth-eth-wire" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-chains", "alloy-primitives", "alloy-rlp", "bytes", - "derive_more 1.0.0", + "derive_more 2.0.1", "futures", "pin-project", - "reth-codecs 1.1.5", + "reth-codecs", "reth-ecies", "reth-eth-wire-types", "reth-ethereum-forks", @@ -6230,7 +6073,7 @@ dependencies = [ "reth-primitives-traits", "serde", "snap", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-stream", "tokio-util", @@ -6239,29 +6082,29 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-chains", - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "alloy-rlp", "bytes", - "derive_more 1.0.0", + "derive_more 2.0.1", "reth-chainspec", - "reth-codecs-derive 1.1.5", + "reth-codecs-derive", "reth-ethereum-forks", "reth-ethereum-primitives", "reth-primitives-traits", "serde", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "reth-ethereum-cli" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "eyre", "reth-chainspec", @@ -6270,15 +6113,16 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "reth-chainspec", "reth-consensus", "reth-consensus-common", + "reth-execution-types", "reth-primitives", "reth-primitives-traits", "tracing", @@ -6286,13 +6130,13 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-eips 0.11.1", + "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "reth-chainspec", "reth-engine-primitives", "reth-payload-primitives", @@ -6304,8 +6148,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -6320,31 +6164,32 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", + "alloy-evm", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types", - "alloy-serde 0.11.1", + "alloy-rpc-types-eth", + "alloy-serde", "arbitrary", - "derive_more 1.0.0", + "derive_more 2.0.1", "modular-bitfield", "rand 0.8.5", - "reth-codecs 1.1.5", + "reth-codecs", "reth-primitives-traits", "reth-zstd-compressors", - "revm-primitives", - "secp256k1", + "revm-context", + "secp256k1 0.30.0", "serde", ] [[package]] name = "reth-etl" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "rayon", "reth-db-api", @@ -6353,74 +6198,77 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", + "alloy-evm", "alloy-primitives", "auto_impl", + "derive_more 2.0.1", "futures-util", "metrics", "parking_lot", "reth-chainspec", - "reth-consensus", "reth-consensus-common", "reth-execution-errors", "reth-execution-types", "reth-metrics", "reth-primitives", "reth-primitives-traits", - "reth-revm", "reth-storage-errors", "revm", - "revm-primitives", + "revm-database", + "revm-optimism", + "scroll-alloy-evm", ] [[package]] name = "reth-execution-errors" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-eips 0.11.1", + "alloy-eips", + "alloy-evm", "alloy-primitives", "alloy-rlp", "nybbles", - "reth-consensus", - "reth-prune-types", "reth-storage-errors", - "thiserror 2.0.11", + "revm-database-interface", + "thiserror 2.0.12", ] [[package]] name = "reth-execution-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", + "derive_more 2.0.1", + "reth-ethereum-primitives", "reth-execution-errors", - "reth-primitives", "reth-primitives-traits", - "reth-trie", "reth-trie-common", "revm", + "revm-database", "serde", "serde_with", ] [[package]] name = "reth-exex" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "eyre", "futures", - "itertools 0.13.0", + "itertools 0.14.0", "metrics", "parking_lot", "reth-chain-state", @@ -6441,7 +6289,7 @@ dependencies = [ "reth-tasks", "reth-tracing", "rmp-serde", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-util", "tracing", @@ -6449,10 +6297,10 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-eips 0.11.1", + "alloy-eips", "alloy-primitives", "reth-chain-state", "reth-execution-types", @@ -6464,20 +6312,20 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "serde", "serde_json", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "reth-invalid-block-hooks" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-debug", @@ -6501,8 +6349,8 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "async-trait", "bytes", @@ -6512,7 +6360,7 @@ dependencies = [ "jsonrpsee", "pin-project", "serde_json", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-stream", "tokio-util", @@ -6522,25 +6370,25 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "byteorder", - "dashmap", - "derive_more 1.0.0", - "indexmap 2.7.1", + "dashmap 6.1.0", + "derive_more 2.0.1", + "indexmap 2.8.0", "parking_lot", "reth-mdbx-sys", "smallvec", - "thiserror 2.0.11", + "thiserror 2.0.12", "tracing", ] [[package]] name = "reth-mdbx-sys" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "bindgen", "cc", @@ -6548,8 +6396,8 @@ dependencies = [ [[package]] name = "reth-metrics" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "futures", "metrics", @@ -6560,42 +6408,42 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-primitives", ] [[package]] name = "reth-net-nat" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "futures-util", "if-addrs", "reqwest", "serde_with", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tracing", ] [[package]] name = "reth-network" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "alloy-rlp", "aquamarine", "auto_impl", - "derive_more 1.0.0", + "derive_more 2.0.1", "discv5", "enr", "futures", - "itertools 0.13.0", + "itertools 0.14.0", "metrics", "parking_lot", "pin-project", @@ -6624,11 +6472,11 @@ dependencies = [ "reth-transaction-pool", "rustc-hash 2.1.1", "schnellru", - "secp256k1", + "secp256k1 0.30.0", "serde", "smallvec", "tempfile", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-stream", "tokio-util", @@ -6637,13 +6485,13 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-primitives", "alloy-rpc-types-admin", "auto_impl", - "derive_more 1.0.0", + "derive_more 2.0.1", "enr", "futures", "reth-eth-wire-types", @@ -6653,28 +6501,28 @@ dependencies = [ "reth-network-types", "reth-tokio-util", "serde", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-stream", ] [[package]] name = "reth-network-p2p" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "auto_impl", - "derive_more 1.0.0", + "derive_more 2.0.1", "futures", "parking_lot", "reth-consensus", "reth-eth-wire-types", + "reth-ethereum-primitives", "reth-network-peers", "reth-network-types", - "reth-primitives", "reth-primitives-traits", "reth-storage-errors", "tokio", @@ -6683,23 +6531,23 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-primitives", "alloy-rlp", "enr", - "secp256k1", + "secp256k1 0.30.0", "serde_with", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "url", ] [[package]] name = "reth-network-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -6712,28 +6560,29 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "anyhow", "bincode", - "derive_more 1.0.0", + "derive_more 2.0.1", "lz4_flex", "memmap2", "reth-fs-util", "serde", - "thiserror 2.0.11", + "thiserror 2.0.12", "tracing", "zstd", ] [[package]] name = "reth-node-api" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "eyre", + "reth-basic-payload-builder", "reth-consensus", "reth-db-api", "reth-engine-primitives", @@ -6741,20 +6590,22 @@ dependencies = [ "reth-network-api", "reth-node-core", "reth-node-types", + "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", "reth-provider", "reth-tasks", + "reth-tokio-util", "reth-transaction-pool", ] [[package]] name = "reth-node-builder" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "alloy-rpc-types", "aquamarine", @@ -6763,6 +6614,7 @@ dependencies = [ "futures", "jsonrpsee", "rayon", + "reth-basic-payload-builder", "reth-chain-state", "reth-chainspec", "reth-cli-util", @@ -6804,7 +6656,7 @@ dependencies = [ "reth-tokio-util", "reth-tracing", "reth-transaction-pool", - "secp256k1", + "secp256k1 0.30.0", "tokio", "tokio-stream", "tracing", @@ -6812,15 +6664,15 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "clap", - "derive_more 1.0.0", + "derive_more 2.0.1", "dirs-next", "eyre", "futures", @@ -6849,11 +6701,11 @@ dependencies = [ "reth-storage-errors", "reth-tracing", "reth-transaction-pool", - "secp256k1", + "secp256k1 0.30.0", "serde", "shellexpand", - "strum", - "thiserror 2.0.11", + "strum 0.27.1", + "thiserror 2.0.12", "toml", "tracing", "vergen", @@ -6861,14 +6713,14 @@ dependencies = [ [[package]] name = "reth-node-events" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", - "derive_more 1.0.0", + "alloy-rpc-types-engine", + "derive_more 2.0.1", "futures", "humantime", "pin-project", @@ -6885,8 +6737,8 @@ dependencies = [ [[package]] name = "reth-node-metrics" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "eyre", "http", @@ -6895,19 +6747,18 @@ dependencies = [ "metrics-exporter-prometheus", "metrics-process", "metrics-util", - "procfs 0.16.0", + "procfs", "reth-metrics", "reth-tasks", "tokio", "tower 0.4.13", "tracing", - "vergen", ] [[package]] name = "reth-node-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "reth-chainspec", "reth-db-api", @@ -6919,35 +6770,38 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", + "alloy-evm", "alloy-primitives", "alloy-rlp", + "alloy-rpc-types-eth", + "alloy-serde", "arbitrary", "bytes", - "derive_more 1.0.0", + "derive_more 2.0.1", "op-alloy-consensus", "rand 0.8.5", - "reth-codecs 1.1.5", + "reth-codecs", "reth-primitives-traits", "reth-zstd-compressors", - "revm-primitives", - "secp256k1", + "revm-context", + "revm-optimism", + "secp256k1 0.30.0", "serde", ] [[package]] name = "reth-payload-builder" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-primitives", "alloy-rpc-types", - "async-trait", "futures-util", "metrics", "reth-chain-state", @@ -6964,11 +6818,9 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-rpc-types-engine 0.11.0", - "async-trait", "pin-project", "reth-payload-primitives", "tokio", @@ -6978,12 +6830,13 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-eips 0.11.1", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", + "auto_impl", "op-alloy-rpc-types-engine", "reth-chain-state", "reth-chainspec", @@ -6991,26 +6844,27 @@ dependencies = [ "reth-primitives", "scroll-alloy-rpc-types-engine", "serde", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", ] [[package]] name = "reth-payload-util" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-primitives", - "reth-primitives", + "reth-transaction-pool", ] [[package]] name = "reth-payload-validator" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-rpc-types", + "alloy-consensus", + "alloy-rpc-types-engine", "reth-chainspec", "reth-primitives", "reth-primitives-traits", @@ -7018,10 +6872,10 @@ dependencies = [ [[package]] name = "reth-primitives" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "arbitrary", "c-kzg", "once_cell", @@ -7033,11 +6887,11 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-genesis", "alloy-primitives", "alloy-rlp", @@ -7046,7 +6900,7 @@ dependencies = [ "auto_impl", "byteorder", "bytes", - "derive_more 1.0.0", + "derive_more 2.0.1", "k256", "modular-bitfield", "once_cell", @@ -7054,35 +6908,37 @@ dependencies = [ "proptest", "proptest-arbitrary-interop", "rayon", - "reth-codecs 1.1.5", + "reth-codecs", + "revm-bytecode", "revm-primitives", - "scroll-alloy-consensus 1.1.5", - "secp256k1", + "revm-state", + "scroll-alloy-consensus", + "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "reth-provider" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "auto_impl", - "dashmap", + "dashmap 6.1.0", "eyre", - "itertools 0.13.0", + "itertools 0.14.0", "metrics", "notify", "parking_lot", "rayon", "reth-chain-state", "reth-chainspec", - "reth-codecs 1.1.5", + "reth-codecs", "reth-db", "reth-db-api", "reth-errors", @@ -7102,26 +6958,26 @@ dependencies = [ "reth-storage-errors", "reth-trie", "reth-trie-db", - "revm", - "strum", + "revm-database", + "revm-state", + "strum 0.27.1", "tokio", "tracing", ] [[package]] name = "reth-prune" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", - "itertools 0.13.0", + "itertools 0.14.0", "metrics", "rayon", "reth-chainspec", "reth-config", - "reth-db", "reth-db-api", "reth-errors", "reth-exex-types", @@ -7132,65 +6988,66 @@ dependencies = [ "reth-static-file-types", "reth-tokio-util", "rustc-hash 2.1.1", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tracing", ] [[package]] name = "reth-prune-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-primitives", "arbitrary", - "derive_more 1.0.0", + "derive_more 2.0.1", "modular-bitfield", - "reth-codecs 1.1.5", + "reth-codecs", "serde", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "reth-revm" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-eips 0.11.1", "alloy-primitives", - "reth-primitives", + "reth-primitives-traits", "reth-storage-api", "reth-storage-errors", "reth-trie", "revm", + "revm-database", + "revm-inspector", ] [[package]] name = "reth-rpc" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-dyn-abi", - "alloy-eips 0.11.1", + "alloy-eips", "alloy-genesis", - "alloy-network 0.11.1", + "alloy-network", "alloy-primitives", "alloy-rlp", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-beacon", "alloy-rpc-types-debug", - "alloy-rpc-types-engine 0.11.0", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-serde 0.11.1", - "alloy-signer 0.11.1", + "alloy-serde", + "alloy-signer", "alloy-signer-local", "async-trait", - "derive_more 1.0.0", + "derive_more 2.0.1", "futures", "http", "http-body", @@ -7210,6 +7067,7 @@ dependencies = [ "reth-network-api", "reth-network-peers", "reth-network-types", + "reth-node-api", "reth-primitives", "reth-primitives-traits", "reth-provider", @@ -7227,7 +7085,7 @@ dependencies = [ "revm-primitives", "serde", "serde_json", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-stream", "tower 0.4.13", @@ -7237,23 +7095,24 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-eips 0.11.1", - "alloy-json-rpc 0.11.0", + "alloy-eips", + "alloy-genesis", + "alloy-json-rpc", "alloy-primitives", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-anvil", "alloy-rpc-types-beacon", "alloy-rpc-types-debug", - "alloy-rpc-types-engine 0.11.0", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-serde 0.11.1", + "alloy-serde", "jsonrpsee", "reth-engine-primitives", "reth-network-peers", @@ -7262,18 +7121,17 @@ dependencies = [ [[package]] name = "reth-rpc-builder" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-network 0.11.1", - "alloy-provider 0.11.0", + "alloy-network", + "alloy-provider", "http", "jsonrpsee", "metrics", "pin-project", "reth-chainspec", "reth-consensus", - "reth-engine-primitives", "reth-evm", "reth-ipc", "reth-metrics", @@ -7290,7 +7148,7 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "serde", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-util", "tower 0.4.13", @@ -7300,12 +7158,12 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-eips 0.11.1", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "async-trait", "jsonrpsee-core", "jsonrpsee-types", @@ -7317,32 +7175,32 @@ dependencies = [ "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", + "reth-primitives-traits", "reth-rpc-api", - "reth-rpc-types-compat", "reth-storage-api", "reth-tasks", "reth-transaction-pool", "serde", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tracing", ] [[package]] name = "reth-rpc-eth-api" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-dyn-abi", - "alloy-eips 0.11.1", - "alloy-json-rpc 0.11.0", - "alloy-network 0.11.1", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-eth", "alloy-rpc-types-mev", - "alloy-serde 0.11.1", + "alloy-serde", "async-trait", "auto_impl", "dyn-clone", @@ -7374,17 +7232,17 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-eth", "alloy-sol-types", - "derive_more 1.0.0", + "derive_more 2.0.1", "futures", - "itertools 0.13.0", + "itertools 0.14.0", "jsonrpsee-core", "jsonrpsee-types", "metrics", @@ -7405,11 +7263,12 @@ dependencies = [ "reth-transaction-pool", "reth-trie", "revm", + "revm-database", "revm-inspectors", "revm-primitives", "schnellru", "serde", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-stream", "tracing", @@ -7417,10 +7276,10 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "http", "jsonrpsee-http-client", "pin-project", @@ -7431,30 +7290,28 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-eips 0.11.1", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "jsonrpsee-core", "jsonrpsee-types", "reth-errors", "reth-network-api", "serde", - "strum", + "strum 0.27.1", ] [[package]] name = "reth-rpc-types-compat" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-eth", "jsonrpsee-types", "reth-primitives", "reth-primitives-traits", @@ -7463,16 +7320,16 @@ dependencies = [ [[package]] name = "reth-scroll-chainspec" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-chains", - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-genesis", "alloy-primitives", - "alloy-serde 0.11.1", - "derive_more 1.0.0", + "alloy-serde", + "derive_more 2.0.1", "once_cell", "reth-chainspec", "reth-ethereum-forks", @@ -7486,14 +7343,15 @@ dependencies = [ [[package]] name = "reth-scroll-cli" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "clap", "eyre", "reth-cli", "reth-cli-commands", "reth-cli-runner", + "reth-consensus", "reth-db", "reth-node-builder", "reth-node-core", @@ -7508,22 +7366,35 @@ dependencies = [ [[package]] name = "reth-scroll-consensus" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ + "alloy-consensus", + "alloy-primitives", + "reth-chainspec", + "reth-consensus", + "reth-consensus-common", + "reth-ethereum-consensus", + "reth-execution-types", + "reth-primitives", + "reth-primitives-traits", + "reth-scroll-forks", + "reth-scroll-primitives", "revm", + "thiserror 2.0.12", + "tracing", ] [[package]] name = "reth-scroll-engine-primitives" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "reth-chain-state", "reth-chainspec", "reth-engine-primitives", @@ -7541,16 +7412,16 @@ dependencies = [ [[package]] name = "reth-scroll-evm" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", - "derive_more 1.0.0", + "alloy-consensus", + "alloy-evm", + "derive_more 2.0.1", "reth-chainspec", "reth-consensus", - "reth-ethereum-consensus", "reth-evm", + "reth-execution-types", "reth-primitives", "reth-primitives-traits", "reth-revm", @@ -7560,18 +7431,21 @@ dependencies = [ "reth-scroll-primitives", "revm", "revm-primitives", - "scroll-alloy-consensus 1.1.5", - "thiserror 2.0.11", + "revm-scroll", + "scroll-alloy-consensus", + "scroll-alloy-evm", + "thiserror 2.0.12", "tracing", ] [[package]] name = "reth-scroll-forks" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-chains", "alloy-primitives", + "auto_impl", "once_cell", "reth-ethereum-forks", "serde", @@ -7579,31 +7453,30 @@ dependencies = [ [[package]] name = "reth-scroll-node" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "eyre", - "reth-consensus", - "reth-db", - "reth-engine-local", + "reth-chainspec", "reth-eth-wire-types", "reth-evm", "reth-network", "reth-node-api", "reth-node-builder", "reth-node-types", - "reth-payload-builder", "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-rpc-eth-types", "reth-scroll-chainspec", + "reth-scroll-consensus", "reth-scroll-engine-primitives", "reth-scroll-evm", + "reth-scroll-forks", "reth-scroll-payload", "reth-scroll-primitives", "reth-scroll-rpc", @@ -7611,56 +7484,62 @@ dependencies = [ "reth-transaction-pool", "reth-trie-db", "revm", - "scroll-alloy-consensus 1.1.5", + "scroll-alloy-consensus", + "scroll-alloy-evm", "scroll-alloy-rpc-types-engine", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", ] [[package]] name = "reth-scroll-payload" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "futures-util", - "reth-payload-builder", + "reth-basic-payload-builder", "reth-payload-primitives", + "reth-payload-util", + "reth-primitives-traits", + "reth-scroll-engine-primitives", + "reth-transaction-pool", ] [[package]] name = "reth-scroll-primitives" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", + "alloy-evm", "alloy-primitives", "alloy-rlp", "arbitrary", "bytes", - "derive_more 1.0.0", + "derive_more 2.0.1", "modular-bitfield", "once_cell", "proptest", "rand 0.8.5", - "reth-codecs 1.1.5", + "reth-codecs", "reth-primitives-traits", "reth-zstd-compressors", - "revm-primitives", - "scroll-alloy-consensus 1.1.5", - "secp256k1", + "revm-context", + "revm-scroll", + "scroll-alloy-consensus", + "secp256k1 0.30.0", "serde", ] [[package]] name = "reth-scroll-rpc" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-eth", "jsonrpsee-types", "parking_lot", "reth-chainspec", @@ -7675,36 +7554,36 @@ dependencies = [ "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-scroll-chainspec", - "reth-scroll-evm", "reth-scroll-forks", "reth-scroll-primitives", "reth-tasks", "reth-transaction-pool", "revm", - "scroll-alloy-consensus 1.1.5", - "scroll-alloy-network 1.1.5", - "scroll-alloy-rpc-types 1.1.5", - "thiserror 2.0.11", + "scroll-alloy-consensus", + "scroll-alloy-evm", + "scroll-alloy-network", + "scroll-alloy-rpc-types", + "thiserror 2.0.12", "tokio", ] [[package]] name = "reth-stages" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "bincode", "blake3", "futures-util", - "itertools 0.13.0", + "itertools 0.14.0", "num-traits", "rayon", "reqwest", "reth-chainspec", - "reth-codecs 1.1.5", + "reth-codecs", "reth-config", "reth-consensus", "reth-db", @@ -7728,17 +7607,17 @@ dependencies = [ "reth-trie-db", "serde", "tempfile", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tracing", ] [[package]] name = "reth-stages-api" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-eips 0.11.1", + "alloy-eips", "alloy-primitives", "aquamarine", "auto_impl", @@ -7755,34 +7634,34 @@ dependencies = [ "reth-static-file", "reth-static-file-types", "reth-tokio-util", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tracing", ] [[package]] name = "reth-stages-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-primitives", "arbitrary", "bytes", "modular-bitfield", - "reth-codecs 1.1.5", + "reth-codecs", "reth-trie-common", "serde", ] [[package]] name = "reth-static-file" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-primitives", "parking_lot", "rayon", - "reth-codecs 1.1.5", + "reth-codecs", "reth-db", "reth-db-api", "reth-primitives-traits", @@ -7797,61 +7676,60 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-primitives", "clap", - "derive_more 1.0.0", + "derive_more 2.0.1", "serde", - "strum", + "strum 0.27.1", ] [[package]] name = "reth-storage-api" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "auto_impl", "reth-chainspec", - "reth-db", "reth-db-api", "reth-db-models", + "reth-ethereum-primitives", "reth-execution-types", - "reth-primitives", "reth-primitives-traits", "reth-prune-types", "reth-stages-types", "reth-storage-errors", "reth-trie", "reth-trie-db", - "revm", + "revm-database", ] [[package]] name = "reth-storage-errors" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-eips 0.11.1", + "alloy-eips", "alloy-primitives", "alloy-rlp", - "derive_more 1.0.0", - "reth-fs-util", + "derive_more 2.0.1", "reth-primitives-traits", "reth-prune-types", "reth-static-file-types", - "thiserror 2.0.11", + "revm-database-interface", + "thiserror 2.0.12", ] [[package]] name = "reth-tasks" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "auto_impl", "dyn-clone", @@ -7860,7 +7738,7 @@ dependencies = [ "pin-project", "rayon", "reth-metrics", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tracing", "tracing-futures", @@ -7868,23 +7746,23 @@ dependencies = [ [[package]] name = "reth-testing-utils" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-genesis", "alloy-primitives", "rand 0.8.5", "reth-primitives", "reth-primitives-traits", - "secp256k1", + "secp256k1 0.30.0", ] [[package]] name = "reth-tokio-util" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "tokio", "tokio-stream", @@ -7893,8 +7771,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "clap", "eyre", @@ -7908,16 +7786,16 @@ dependencies = [ [[package]] name = "reth-transaction-pool" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "alloy-rlp", "aquamarine", "auto_impl", - "bitflags 2.8.0", + "bitflags 2.9.0", "futures-util", "metrics", "parking_lot", @@ -7929,18 +7807,17 @@ dependencies = [ "reth-execution-types", "reth-fs-util", "reth-metrics", - "reth-payload-util", "reth-primitives", "reth-primitives-traits", "reth-storage-api", "reth-tasks", "revm-interpreter", - "revm-primitives", + "revm-specification", "rustc-hash 2.1.1", "schnellru", "serde", "smallvec", - "thiserror 2.0.11", + "thiserror 2.0.12", "tokio", "tokio-stream", "tracing", @@ -7948,18 +7825,17 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "alloy-rlp", "alloy-trie", "auto_impl", - "itertools 0.13.0", + "itertools 0.14.0", "metrics", - "rayon", "reth-execution-errors", "reth-metrics", "reth-primitives-traits", @@ -7967,50 +7843,50 @@ dependencies = [ "reth-storage-errors", "reth-trie-common", "reth-trie-sparse", - "revm", + "revm-database", "tracing", "triehash", ] [[package]] name = "reth-trie-common" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", + "alloy-consensus", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-eth 0.11.1", - "alloy-serde 0.11.1", + "alloy-rpc-types-eth", + "alloy-serde", "alloy-trie", "arbitrary", "bytes", - "derive_more 1.0.0", + "derive_more 2.0.1", "hash-db", - "itertools 0.13.0", + "itertools 0.14.0", "nybbles", "plain_hasher", - "reth-codecs 1.1.5", + "rayon", + "reth-codecs", "reth-primitives-traits", + "revm-database", "serde", "serde_with", ] [[package]] name = "reth-trie-db" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-primitives", "alloy-rlp", - "derive_more 1.0.0", + "derive_more 2.0.1", "metrics", - "reth-db", "reth-db-api", "reth-execution-errors", "reth-metrics", "reth-primitives-traits", - "reth-storage-errors", "reth-trie", "revm", "serde", @@ -8020,31 +7896,31 @@ dependencies = [ [[package]] name = "reth-trie-parallel" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-primitives", "alloy-rlp", - "derive_more 1.0.0", - "itertools 0.13.0", + "derive_more 2.0.1", + "itertools 0.14.0", "metrics", "rayon", - "reth-db", "reth-execution-errors", "reth-metrics", "reth-primitives", "reth-provider", + "reth-storage-errors", "reth-trie", "reth-trie-common", "reth-trie-db", - "thiserror 2.0.11", + "thiserror 2.0.12", "tracing", ] [[package]] name = "reth-trie-sparse" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8053,39 +7929,147 @@ dependencies = [ "reth-tracing", "reth-trie-common", "smallvec", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "reth-zstd-compressors" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "19.4.0" -source = "git+https://github.com/scroll-tech/revm.git?branch=scroll-evm-executor/reth/v55#8e3fd7b8640a776bd28cc421f33b1f38949490d6" +version = "20.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "revm-bytecode", + "revm-context", + "revm-context-interface", + "revm-database", + "revm-database-interface", + "revm-handler", + "revm-inspector", + "revm-interpreter", + "revm-precompile", + "revm-primitives", + "revm-specification", + "revm-state", +] + +[[package]] +name = "revm-bytecode" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "bitvec", + "revm-primitives", + "revm-specification", + "serde", +] + +[[package]] +name = "revm-context" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" dependencies = [ + "alloy-eip2930", + "alloy-eip7702", "auto_impl", "cfg-if", - "dyn-clone", + "derive-where", + "revm-bytecode", + "revm-context-interface", + "revm-database-interface", + "revm-interpreter", + "revm-primitives", + "revm-specification", + "revm-state", + "serde", +] + +[[package]] +name = "revm-context-interface" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702", + "auto_impl", + "revm-database-interface", + "revm-primitives", + "revm-specification", + "revm-state", + "serde", +] + +[[package]] +name = "revm-database" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "auto_impl", + "revm-bytecode", + "revm-database-interface", + "revm-primitives", + "revm-state", + "serde", +] + +[[package]] +name = "revm-database-interface" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "auto_impl", + "revm-primitives", + "revm-state", + "serde", +] + +[[package]] +name = "revm-handler" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "auto_impl", + "revm-bytecode", + "revm-context", + "revm-context-interface", + "revm-database-interface", + "revm-interpreter", + "revm-precompile", + "revm-primitives", + "revm-specification", + "revm-state", + "serde", +] + +[[package]] +name = "revm-inspector" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "auto_impl", + "revm-context", + "revm-database-interface", + "revm-handler", "revm-interpreter", "revm-precompile", + "revm-primitives", + "revm-state", "serde", - "serde_json", ] [[package]] name = "revm-inspectors" version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d87cdf1c0d878b48423f8a86232950657abaf72a2d0d14af609467542313b1a" +source = "git+https://github.com/paradigmxyz/revm-inspectors?rev=8900c2b#8900c2bf8430e41f1a1cc92dbc1cf0615f00a26b" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", + "alloy-rpc-types-eth", "alloy-rpc-types-trace", "alloy-sol-types", "anstyle", @@ -8093,53 +8077,97 @@ dependencies = [ "revm", "serde", "serde_json", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] name = "revm-interpreter" -version = "15.1.0" -source = "git+https://github.com/scroll-tech/revm.git?branch=scroll-evm-executor/reth/v55#8e3fd7b8640a776bd28cc421f33b1f38949490d6" +version = "16.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" dependencies = [ - "cfg-if", + "revm-bytecode", + "revm-context-interface", "revm-primitives", + "revm-specification", + "serde", +] + +[[package]] +name = "revm-optimism" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "auto_impl", + "once_cell", + "revm", + "revm-inspector", + "revm-precompile", "serde", ] [[package]] name = "revm-precompile" -version = "16.0.0" -source = "git+https://github.com/scroll-tech/revm.git?branch=scroll-evm-executor/reth/v55#8e3fd7b8640a776bd28cc421f33b1f38949490d6" +version = "17.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" dependencies = [ "aurora-engine-modexp", + "blst", "c-kzg", "cfg-if", "k256", + "libsecp256k1", "once_cell", "p256", + "revm-context-interface", "revm-primitives", + "revm-specification", "ripemd", - "secp256k1", + "secp256k1 0.29.1", "sha2 0.10.8", "substrate-bn", ] [[package]] name = "revm-primitives" -version = "15.1.0" -source = "git+https://github.com/scroll-tech/revm.git?branch=scroll-evm-executor/reth/v55#8e3fd7b8640a776bd28cc421f33b1f38949490d6" +version = "16.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" dependencies = [ - "alloy-eip2930", - "alloy-eip7702", "alloy-primitives", +] + +[[package]] +name = "revm-scroll" +version = "0.1.0" +source = "git+https://github.com/scroll-tech/scroll-revm#6f2bdf289546b8fb1eb24f5a5b4176e228da6ec1" +dependencies = [ "auto_impl", - "bitflags 2.8.0", - "bitvec", - "c-kzg", - "cfg-if", - "dyn-clone", "enumn", - "hex", + "once_cell", + "revm", + "revm-inspector", + "revm-primitives", + "serde", +] + +[[package]] +name = "revm-specification" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "enumn", + "revm-primitives", + "serde", +] + +[[package]] +name = "revm-state" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "bitflags 2.9.0", + "revm-bytecode", + "revm-primitives", + "revm-specification", "serde", ] @@ -8155,15 +8183,14 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.8" +version = "0.17.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "70ac5d832aa16abd7d1def883a8545280c20a60f523a370aa3a9617c2b8550ee" dependencies = [ "cc", "cfg-if", "getrandom 0.2.15", "libc", - "spin", "untrusted", "windows-sys 0.52.0", ] @@ -8247,22 +8274,18 @@ dependencies = [ name = "rollup-node-manager" version = "0.0.1" dependencies = [ - "alloy-eips 0.9.2", - "alloy-rpc-types-engine 0.9.2", + "alloy-eips", + "alloy-rpc-types-engine", "futures", - "reth-engine-primitives", - "reth-network-peers", - "reth-rpc-api", - "reth-scroll-engine-primitives", "reth-scroll-primitives", - "reth-tasks", "reth-tokio-util", - "scroll-alloy-network 1.2.0", + "rollup-node-primitives", + "scroll-alloy-network", "scroll-alloy-provider", "scroll-engine", "scroll-network", "scroll-wire", - "secp256k1", + "secp256k1 0.29.1", "tokio", "tokio-stream", "tracing", @@ -8273,24 +8296,24 @@ name = "rollup-node-primitives" version = "0.0.1" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine 0.9.2", + "alloy-rpc-types-engine", "derive_more 2.0.1", - "scroll-alloy-consensus 1.1.5", + "scroll-alloy-consensus", ] [[package]] name = "rollup-node-watcher" version = "0.0.1" dependencies = [ - "alloy-consensus 0.9.2", - "alloy-eips 0.9.2", - "alloy-json-rpc 0.9.2", - "alloy-network 0.9.2", + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", "alloy-primitives", - "alloy-provider 0.9.2", - "alloy-rpc-types-eth 0.9.2", + "alloy-provider", + "alloy-rpc-types-eth", "alloy-sol-types", - "alloy-transport 0.9.2", + "alloy-transport", "arbitrary", "async-trait", "derive_more 2.0.1", @@ -8298,8 +8321,8 @@ dependencies = [ "itertools 0.14.0", "rand 0.9.0", "rollup-node-primitives", - "scroll-alloy-consensus 1.1.5", - "thiserror 2.0.11", + "scroll-alloy-consensus", + "thiserror 2.0.12", "tokio", "tracing", "tracing-subscriber", @@ -8313,17 +8336,19 @@ checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] name = "ruint" -version = "1.12.3" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +checksum = "825df406ec217a8116bd7b06897c6cc8f65ffefc15d030ae2c9540acc9ed50b6" dependencies = [ "alloy-rlp", "arbitrary", "ark-ff 0.3.0", "ark-ff 0.4.2", "bytes", - "fastrlp", + "fastrlp 0.3.1", + "fastrlp 0.4.0", "num-bigint", + "num-integer", "num-traits", "parity-scale-codec", "primitive-types", @@ -8384,7 +8409,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.25", + "semver 1.0.26", ] [[package]] @@ -8393,18 +8418,31 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys", - "windows-sys 0.59.0", + "linux-raw-sys 0.4.15", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustix" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" +dependencies = [ + "bitflags 2.9.0", + "errno", + "libc", + "linux-raw-sys 0.9.2", + "windows-sys 0.52.0", ] [[package]] name = "rustls" -version = "0.23.22" +version = "0.23.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb9263ab4eb695e42321db096e3b8fbd715a59b154d5c88d82db2175b681ba7" +checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" dependencies = [ "log", "once_cell", @@ -8498,9 +8536,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] name = "rusty-fork" @@ -8516,9 +8554,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "same-file" @@ -8563,131 +8601,95 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll-alloy-consensus" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-consensus", + "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-serde 0.11.1", + "alloy-serde", "arbitrary", - "derive_more 1.0.0", + "derive_more 2.0.1", "modular-bitfield", - "reth-codecs 1.1.5", - "reth-codecs-derive 1.1.5", + "reth-codecs", + "reth-codecs-derive", "serde", "serde_with", ] [[package]] -name = "scroll-alloy-consensus" +name = "scroll-alloy-evm" version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", + "alloy-evm", "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.11.1", - "derive_more 1.0.0", - "modular-bitfield", - "reth-codecs 1.2.0", - "reth-codecs-derive 1.2.0", + "reth-scroll-primitives", + "revm", + "revm-scroll", "serde", - "serde_with", -] - -[[package]] -name = "scroll-alloy-network" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" -dependencies = [ - "alloy-consensus 0.11.1", - "alloy-network 0.11.1", - "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", - "alloy-signer 0.11.1", - "scroll-alloy-consensus 1.1.5", - "scroll-alloy-rpc-types 1.1.5", ] [[package]] name = "scroll-alloy-network" version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-network 0.11.1", + "alloy-consensus", + "alloy-network", "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", - "alloy-signer 0.11.1", - "scroll-alloy-consensus 1.2.0", - "scroll-alloy-rpc-types 1.2.0", + "alloy-rpc-types-eth", + "alloy-signer", + "scroll-alloy-consensus", + "scroll-alloy-rpc-types", ] [[package]] name = "scroll-alloy-provider" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-primitives", - "alloy-provider 0.11.0", - "alloy-rpc-client 0.11.0", - "alloy-rpc-types-engine 0.11.0", - "alloy-transport 0.11.0", - "alloy-transport-http 0.11.0", + "alloy-provider", + "alloy-rpc-client", + "alloy-rpc-types-engine", + "alloy-transport", + "alloy-transport-http", "async-trait", - "derive_more 1.0.0", + "derive_more 2.0.1", "eyre", "http-body-util", "reqwest", - "scroll-alloy-network 1.1.5", + "scroll-alloy-network", "scroll-alloy-rpc-types-engine", "tower 0.4.13", ] -[[package]] -name = "scroll-alloy-rpc-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" -dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", - "alloy-network-primitives 0.11.1", - "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", - "alloy-serde 0.11.1", - "derive_more 1.0.0", - "scroll-alloy-consensus 1.1.5", - "serde", - "serde_json", -] - [[package]] name = "scroll-alloy-rpc-types" version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#1764d96f32cdf51779e876d895abb35c4a6ea780" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ - "alloy-consensus 0.11.1", - "alloy-eips 0.11.1", - "alloy-network-primitives 0.11.1", + "alloy-consensus", + "alloy-eips", + "alloy-network-primitives", "alloy-primitives", - "alloy-rpc-types-eth 0.11.1", - "alloy-serde 0.11.1", - "derive_more 1.0.0", - "scroll-alloy-consensus 1.2.0", + "alloy-rpc-types-eth", + "alloy-serde", + "derive_more 2.0.1", + "scroll-alloy-consensus", "serde", "serde_json", ] [[package]] name = "scroll-alloy-rpc-types-engine" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth.git?branch=feat/add-deref-blanket-engine-api#8d37d4cf2d497ca0bdce1c4a6fa97f2b61568e9d" +version = "1.2.0" +source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-engine", "arbitrary", "serde", ] @@ -8698,12 +8700,12 @@ version = "0.0.1" dependencies = [ "alloy-chains", "alloy-primitives", - "alloy-rpc-types-engine 0.9.2", + "alloy-rpc-types-engine", "clap", "eyre", - "futures", "reth-cli-util", "reth-e2e-test-utils", + "reth-engine-local", "reth-eth-wire-types", "reth-network", "reth-network-peers", @@ -8725,13 +8727,13 @@ dependencies = [ "reth-tracing", "reth-transaction-pool", "rollup-node-manager", - "scroll-alloy-consensus 1.1.5", + "scroll-alloy-consensus", "scroll-alloy-provider", "scroll-alloy-rpc-types-engine", "scroll-engine", "scroll-network", "scroll-wire", - "secp256k1", + "secp256k1 0.29.1", "serde_json", "tokio", "tracing", @@ -8742,9 +8744,9 @@ name = "scroll-engine" version = "0.0.1" dependencies = [ "alloy-chains", - "alloy-eips 0.9.2", + "alloy-eips", "alloy-primitives", - "alloy-rpc-types-engine 0.9.2", + "alloy-rpc-types-engine", "arbitrary", "async-trait", "eyre", @@ -8755,7 +8757,7 @@ dependencies = [ "reth-scroll-primitives", "reth-testing-utils", "rollup-node-primitives", - "scroll-alloy-network 1.2.0", + "scroll-alloy-network", "scroll-alloy-provider", "scroll-alloy-rpc-types-engine", "tokio", @@ -8769,20 +8771,17 @@ dependencies = [ "alloy-primitives", "futures", "parking_lot", - "reth-discv5", "reth-eth-wire-types", "reth-network", "reth-network-api", "reth-network-peers", "reth-network-types", - "reth-primitives", "reth-scroll-chainspec", "reth-scroll-node", "reth-scroll-primitives", "reth-storage-api", - "reth-tasks", "scroll-wire", - "secp256k1", + "secp256k1 0.29.1", "tokio", "tokio-stream", "tracing", @@ -8800,7 +8799,7 @@ dependencies = [ "reth-network-api", "reth-primitives", "reth-scroll-primitives", - "secp256k1", + "secp256k1 0.29.1", "tokio", "tokio-stream", "tracing", @@ -8832,6 +8831,18 @@ dependencies = [ "serde", ] +[[package]] +name = "secp256k1" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" +dependencies = [ + "bitcoin_hashes", + "rand 0.8.5", + "secp256k1-sys", + "serde", +] + [[package]] name = "secp256k1-sys" version = "0.10.1" @@ -8847,7 +8858,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -8861,7 +8872,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -8889,9 +8900,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" dependencies = [ "serde", ] @@ -8919,31 +8930,30 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.217" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.217" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "serde_json" -version = "1.0.138" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ - "indexmap 2.7.1", "itoa", "memchr", "ryu", @@ -8981,7 +8991,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.7.1", + "indexmap 2.8.0", "serde", "serde_derive", "serde_json", @@ -8998,7 +9008,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -9107,7 +9117,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" dependencies = [ "libc", - "mio 1.0.3", + "mio", "signal-hook", ] @@ -9138,10 +9148,25 @@ checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint", "num-traits", - "thiserror 2.0.11", + "thiserror 2.0.12", "time", ] +[[package]] +name = "skeptic" +version = "0.13.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d23b015676c90a0f01c197bfdc786c20342c73a0afdda9025adb0bc42940a8" +dependencies = [ + "bytecount", + "cargo_metadata 0.14.2", + "error-chain", + "glob", + "pulldown-cmark", + "tempfile", + "walkdir", +] + [[package]] name = "sketches-ddsketch" version = "0.3.0" @@ -9159,9 +9184,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.2" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" dependencies = [ "arbitrary", "serde", @@ -9239,7 +9264,16 @@ version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" dependencies = [ - "strum_macros", + "strum_macros 0.26.4", +] + +[[package]] +name = "strum" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" +dependencies = [ + "strum_macros 0.27.1", ] [[package]] @@ -9252,7 +9286,20 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.98", + "syn 2.0.100", +] + +[[package]] +name = "strum_macros" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.100", ] [[package]] @@ -9287,9 +9334,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.98" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -9298,14 +9345,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.20" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7f6a4b9002584ea56d0a19713b65da44cbbf6070aca9ae0360577cba5c4db68" +checksum = "ac9f9798a84bca5cd4d1760db691075fda8f2c3a5d9647e8bfd29eb9b3fabb87" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -9325,14 +9372,14 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "sysinfo" -version = "0.32.1" +version = "0.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c33cd241af0f2e9e3b5c32163b873b29956890b5342e6745b917ce9d490f4af" +checksum = "4fc858248ea01b66f19d8e8a6d55f41deaf91e9d495246fd01368d99935c6c01" dependencies = [ "core-foundation-sys", "libc", @@ -9355,16 +9402,16 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.16.0" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38c246215d7d24f48ae091a2902398798e05d978b24315d6efbc00ede9a8bb91" +checksum = "2c317e0a526ee6120d8dabad239c8dadca62b24b6f168914bbbc8e2fb1f0e567" dependencies = [ "cfg-if", "fastrand", "getrandom 0.3.1", "once_cell", - "rustix", - "windows-sys 0.59.0", + "rustix 1.0.2", + "windows-sys 0.52.0", ] [[package]] @@ -9378,11 +9425,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.11" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl 2.0.11", + "thiserror-impl 2.0.12", ] [[package]] @@ -9393,18 +9440,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "thiserror-impl" -version = "2.0.11" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -9428,9 +9475,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.37" +version = "0.3.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" +checksum = "dad298b01a40a23aac4580b67e3dbedb7cc8402f3592d7f49469de2ea4aecdd8" dependencies = [ "deranged", "itoa", @@ -9445,15 +9492,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "765c97a5b985b7c11d7bc27fa927dc4fe6af3a6dfb021d28deb60d3bf51e76ef" [[package]] name = "time-macros" -version = "0.2.19" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" +checksum = "e8093bc3e81c3bc5f7879de09619d06c9a5a5e45ca44dfeeb7225bae38005c5c" dependencies = [ "num-conv", "time-core", @@ -9480,9 +9527,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" dependencies = [ "tinyvec_macros", ] @@ -9495,14 +9542,14 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.43.0" +version = "1.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" +checksum = "9975ea0f48b5aa3972bf2d888c238182458437cc2a19374b81b25cdf1023fb3a" dependencies = [ "backtrace", "bytes", "libc", - "mio 1.0.3", + "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", @@ -9519,14 +9566,14 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "tokio-rustls" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ "rustls", "tokio", @@ -9546,9 +9593,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4bf6fecd69fcdede0ec680aaf474cdab988f9de6bc73d3758f0160e3b7025a" +checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" dependencies = [ "futures-util", "log", @@ -9598,11 +9645,11 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.23" +version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02a8b472d1a3d7c18e2d61a489aee3453fd9031c33e4f55bd533f4a7adca1bee" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "indexmap 2.7.1", + "indexmap 2.8.0", "serde", "serde_spanned", "toml_datetime", @@ -9653,7 +9700,7 @@ checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" dependencies = [ "async-compression", "base64 0.22.1", - "bitflags 2.8.0", + "bitflags 2.9.0", "bytes", "futures-core", "futures-util", @@ -9720,7 +9767,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -9818,6 +9865,12 @@ dependencies = [ "rlp", ] +[[package]] +name = "triomphe" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85" + [[package]] name = "try-lock" version = "0.2.5" @@ -9826,29 +9879,28 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413083a99c579593656008130e29255e54dcaae495be556cc26888f211648c24" +checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" dependencies = [ - "byteorder", "bytes", "data-encoding", "http", "httparse", "log", - "rand 0.8.5", + "rand 0.9.0", "rustls", "rustls-pki-types", "sha1", - "thiserror 2.0.11", + "thiserror 2.0.12", "utf-8", ] [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "ucd-trie" @@ -9894,9 +9946,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.16" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-segmentation" @@ -9993,9 +10045,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.13.1" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced87ca4be083373936a67f8de945faa23b6b42384bd5b64434850802c6dccd0" +checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587" dependencies = [ "getrandom 0.3.1", ] @@ -10013,7 +10065,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2990d9ea5967266ea0ccf413a4aa5c42a93dbcfda9cb49a97de6931726b12566" dependencies = [ "anyhow", - "cargo_metadata", + "cargo_metadata 0.18.1", "cfg-if", "regex", "rustversion", @@ -10034,7 +10086,7 @@ checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -10102,7 +10154,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", "wasm-bindgen-shared", ] @@ -10137,7 +10189,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -10222,7 +10274,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] @@ -10293,7 +10345,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -10304,7 +10356,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -10315,7 +10367,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -10326,9 +10378,15 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] +[[package]] +name = "windows-link" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" + [[package]] name = "windows-registry" version = "0.2.0" @@ -10518,9 +10576,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86e376c75f4f43f44db463cf729e0d3acbf954d13e22c51e26e4c264b4ab545f" +checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" dependencies = [ "memchr", ] @@ -10541,7 +10599,7 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] [[package]] @@ -10610,7 +10668,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", "synstructure", ] @@ -10620,17 +10678,16 @@ version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ - "byteorder", "zerocopy-derive 0.7.35", ] [[package]] name = "zerocopy" -version = "0.8.17" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa91407dacce3a68c56de03abe2760159582b846c6a4acd2f456618087f12713" +checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" dependencies = [ - "zerocopy-derive 0.8.17", + "zerocopy-derive 0.8.23", ] [[package]] @@ -10641,38 +10698,38 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "zerocopy-derive" -version = "0.8.17" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06718a168365cad3d5ff0bb133aad346959a2074bd4a85c121255a11304a8626" +checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "zerofrom" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", "synstructure", ] @@ -10693,7 +10750,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -10715,32 +10772,32 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "zstd" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "7.2.1" +version = "7.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" +checksum = "f3051792fbdc2e1e143244dc28c60f73d8470e93f3f9cbd0ead44da5ed802722" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.13+zstd.1.5.6" +version = "2.0.14+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +checksum = "8fb060d4926e4ac3a3ad15d864e99ceb5f343c6b34f5bd6d81ae6ed417311be5" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index 5e9322d0..8529455a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -104,40 +104,40 @@ redundant_pub_crate = "allow" significant_drop_in_scrutinee = "allow" significant_drop_tightening = "allow" too_long_first_doc_paragraph = "allow" +large_enum_variant = "allow" [workspace.dependencies] # alloy alloy-chains = { version = "0.1.32", default-features = false } -alloy-consensus = { version = "0.9.2", default-features = false } -alloy-eips = { version = "0.9.2", default-features = false } -alloy-json-rpc = { version = "0.9.2", default-features = false } -alloy-network = { version = "0.9.2", default-features = false } -alloy-primitives = { version = "0.8.15", default-features = false } -alloy-provider = { version = "0.9.2", default-features = false } -alloy-rpc-types-engine = { version = "0.9.2", default-features = false } -alloy-rpc-types-eth = { version = "0.9.2", default-features = false } -alloy-transport = { version = "0.9.2", default-features = false } +alloy-consensus = { version = "0.11.1", default-features = false } +alloy-eips = { version = "0.11.1", default-features = false } +alloy-json-rpc = { version = "0.11.1", default-features = false } +alloy-network = { version = "0.11.1", default-features = false } +alloy-primitives = { version = "0.8.20", default-features = false } +alloy-provider = { version = "0.11.1", default-features = false } +alloy-rpc-types-engine = { version = "0.11.1", default-features = false } +alloy-rpc-types-eth = { version = "0.11.1", default-features = false } +alloy-transport = { version = "0.11.1", default-features = false } # scroll-alloy -scroll-alloy-consensus = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -scroll-alloy-provider = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +scroll-alloy-consensus = { git = "https://github.com/scroll-tech/reth.git" } +scroll-alloy-provider = { git = "https://github.com/scroll-tech/reth.git" } scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", default-features = false } # reth -reth-eth-wire-types = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -reth-network = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false } -reth-network-api = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false } -reth-network-peers = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false } -reth-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false } -reth-provider = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false } -reth-rpc-api = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false, features = ["client"] } -reth-tasks = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +reth-eth-wire-types = { git = "https://github.com/scroll-tech/reth.git" } +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 } +reth-network-peers = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-primitives = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-provider = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-tasks = { git = "https://github.com/scroll-tech/reth.git" } # reth-scroll -reth-scroll-chainspec = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false } -reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false } -reth-scroll-node = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false } -reth-scroll-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false } +reth-scroll-chainspec = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-scroll-node = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-scroll-primitives = { git = "https://github.com/scroll-tech/reth.git", default-features = false } # rollup node scroll-engine = { path = "crates/engine" } @@ -160,10 +160,19 @@ tokio-stream = { version = "0.1", default-features = false } tracing = "0.1.0" [patch.crates-io] -revm = { git = "https://github.com/scroll-tech/revm.git", branch = "scroll-evm-executor/reth/v55" } -revm-primitives = { git = "https://github.com/scroll-tech/revm.git", branch = "scroll-evm-executor/reth/v55" } -revm-interpreter = { git = "https://github.com/scroll-tech/revm.git", branch = "scroll-evm-executor/reth/v55" } +alloy-evm = { git = "https://github.com/alloy-rs/evm", rev = "beb6832" } -ff = { git = "https://github.com/scroll-tech/ff", branch = "feat/sp1" } +revm = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-bytecode = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-database = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-state = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-primitives = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-interpreter = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-inspector = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-context = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-context-interface = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-database-interface = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-specification = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-optimism = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -alloy-eip2930 = { git = "https://github.com/scroll-tech/alloy-eips", branch = "v0.3.2" } +revm-inspectors = { git = "https://github.com/paradigmxyz/revm-inspectors", rev = "8900c2b" } diff --git a/bin/bridge/Cargo.toml b/bin/bridge/Cargo.toml index c3a29f44..131eb5cc 100644 --- a/bin/bridge/Cargo.toml +++ b/bin/bridge/Cargo.toml @@ -13,27 +13,28 @@ alloy-rpc-types-engine.workspace = true # scroll-alloy scroll-alloy-consensus.workspace = true -scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git" } scroll-alloy-provider.workspace = true # reth -reth-cli-util = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +reth-cli-util = { git = "https://github.com/scroll-tech/reth.git" } +reth-engine-local = { git = "https://github.com/scroll-tech/reth.git", features = ["scroll-alloy-traits"] } reth-eth-wire-types.workspace = true reth-network.workspace = true reth-network-peers.workspace = true -reth-node-api = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", features = ["scroll"] } -reth-node-builder = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", features = ["skip-state-root-validation"] } -reth-node-core = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -reth-node-types = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +reth-node-api = { git = "https://github.com/scroll-tech/reth.git" } +reth-node-builder = { git = "https://github.com/scroll-tech/reth.git", features = ["skip-state-root-validation"] } +reth-node-core = { git = "https://github.com/scroll-tech/reth.git" } +reth-node-types = { git = "https://github.com/scroll-tech/reth.git" } reth-primitives.workspace = true -reth-provider = { workspace = true, features = ["scroll", "skip-state-root-validation"] } -reth-rpc-builder = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -reth-transaction-pool = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +reth-provider = { workspace = true, features = ["skip-state-root-validation"] } +reth-rpc-builder = { git = "https://github.com/scroll-tech/reth.git" } +reth-transaction-pool = { git = "https://github.com/scroll-tech/reth.git" } # scroll reth-scroll-chainspec.workspace = true -reth-scroll-cli = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", features = ["scroll"] } -reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +reth-scroll-cli = { git = "https://github.com/scroll-tech/reth.git" } +reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git" } reth-scroll-node = { workspace = true, features = ["skip-state-root-validation"] } reth-scroll-primitives = { workspace = true } scroll-wire.workspace = true @@ -46,7 +47,6 @@ rollup-node-manager.workspace = true # misc clap = { version = "4", features = ["derive", "env"] } eyre.workspace = true -futures.workspace = true secp256k1 = { workspace = true, features = ["global-context", "recovery"] } tokio = { workspace = true, features = ["full"] } tracing.workspace = true @@ -57,11 +57,11 @@ 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", branch = "feat/add-deref-blanket-engine-api" } -reth-payload-builder = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -reth-rpc-server-types = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +reth-e2e-test-utils = { git = "https://github.com/scroll-tech/reth.git" } +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 -reth-tracing = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +reth-tracing = { git = "https://github.com/scroll-tech/reth.git" } #  misc serde_json = { version = "1.0.94", default-features = false, features = ["alloc"] } diff --git a/crates/engine/Cargo.toml b/crates/engine/Cargo.toml index e950ab18..e05e09f6 100644 --- a/crates/engine/Cargo.toml +++ b/crates/engine/Cargo.toml @@ -19,23 +19,23 @@ alloy-rpc-types-engine.workspace = true # scroll-alloy scroll-alloy-network.workspace = true scroll-alloy-provider.workspace = true -scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git" } # reth -reth-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false, features = ["scroll"] } -reth-network-peers.workspace = true -reth-payload-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +reth-payload-primitives = { git = "https://github.com/scroll-tech/reth.git" } reth-primitives = { workspace = true } # reth-scroll reth-scroll-chainspec.workspace = true -reth-scroll-primitives = { workspace = true, features = ["scroll"] } -reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false, features = ["scroll"] } +reth-scroll-primitives.workspace = true +reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", default-features = false } + +# rollup-node +rollup-node-primitives.workspace = true # misc -async-trait = "0.1.68" +async-trait.workspace = true eyre.workspace = true -serde = { workspace = true, features = ["derive"] } tokio.workspace = true tracing.workspace = true @@ -44,27 +44,27 @@ arbitrary = { workspace = true, optional = true } [dev-dependencies] arbitrary.workspace = true -reth-testing-utils = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +reth-testing-utils = { git = "https://github.com/scroll-tech/reth.git" } [features] arbitrary = [ - "alloy-primitives/arbitrary", - "reth-primitives/arbitrary", - "alloy-eips/arbitrary", - "reth-scroll-primitives/arbitrary", - "scroll-alloy-rpc-types-engine/arbitrary", - "alloy-chains/arbitrary" + "alloy-primitives/arbitrary", + "reth-primitives/arbitrary", + "alloy-eips/arbitrary", + "reth-scroll-primitives/arbitrary", + "scroll-alloy-rpc-types-engine/arbitrary", + "alloy-chains/arbitrary", ] test-utils = [ - "arbitrary", - "dep:arbitrary", - "reth-primitives/test-utils" + "arbitrary", + "dep:arbitrary", + "reth-primitives/test-utils", ] serde = [ - "alloy-eips/serde", - "alloy-primitives/serde", - "alloy-rpc-types-engine/serde", - "reth-scroll-primitives/serde", - "scroll-alloy-rpc-types-engine/serde", - "alloy-chains/serde" + "alloy-eips/serde", + "alloy-primitives/serde", + "alloy-rpc-types-engine/serde", + "reth-scroll-primitives/serde", + "scroll-alloy-rpc-types-engine/serde", + "alloy-chains/serde", ] diff --git a/crates/network/Cargo.toml b/crates/network/Cargo.toml index f0931ff8..7855f785 100644 --- a/crates/network/Cargo.toml +++ b/crates/network/Cargo.toml @@ -13,19 +13,16 @@ alloy-primitives = { workspace = true, features = [ ] } # reth -reth-discv5 = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } reth-eth-wire-types.workspace = true reth-network.workspace = true reth-network-api.workspace = true -reth-network-types = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +reth-network-types = { git = "https://github.com/scroll-tech/reth.git" } reth-network-peers.workspace = true -reth-primitives.workspace = true -reth-storage-api = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } -reth-tasks.workspace = true +reth-storage-api = { git = "https://github.com/scroll-tech/reth.git" } # scroll reth-scroll-chainspec.workspace = true -reth-scroll-node = { workspace = true, features = ["scroll", "skip-state-root-validation"] } +reth-scroll-node = { workspace = true, features = ["skip-state-root-validation"] } reth-scroll-primitives.workspace = true scroll-wire.workspace = true diff --git a/crates/node/Cargo.toml b/crates/node/Cargo.toml index 290f8c30..34464372 100644 --- a/crates/node/Cargo.toml +++ b/crates/node/Cargo.toml @@ -16,14 +16,9 @@ scroll-alloy-network.workspace = true scroll-alloy-provider.workspace = true # reth -reth-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false, features = ["scroll"] } -reth-network-peers.workspace = true -reth-rpc-api.workspace = true -reth-tasks.workspace = true -reth-tokio-util = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api", default-features = false } +reth-tokio-util = { git = "https://github.com/scroll-tech/reth.git", default-features = false } # reth-scroll -reth-scroll-engine-primitives.workspace = true reth-scroll-primitives.workspace = true # scroll @@ -31,6 +26,9 @@ scroll-engine.workspace = true scroll-network.workspace = true scroll-wire.workspace = true +# rollup node +rollup-node-primitives.workspace = true + # misc futures.workspace = true secp256k1 = { workspace = true, features = ["global-context", "rand-std", "recovery"] } diff --git a/crates/scroll-wire/Cargo.toml b/crates/scroll-wire/Cargo.toml index 494cd7ae..27a7de37 100644 --- a/crates/scroll-wire/Cargo.toml +++ b/crates/scroll-wire/Cargo.toml @@ -17,7 +17,7 @@ alloy-primitives = { workspace = true, features = [ alloy-rlp = { version = "0.3.10", default-features = false } # reth -reth-eth-wire = { git = "https://github.com/scroll-tech/reth.git", branch = "feat/add-deref-blanket-engine-api" } +reth-eth-wire = { git = "https://github.com/scroll-tech/reth.git" } reth-network.workspace = true reth-network-api.workspace = true reth-primitives.workspace = true From 04aa54d22919fb3c451a2a2520abeada0f046d6a Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Wed, 12 Mar 2025 08:48:06 +0100 Subject: [PATCH 21/63] fix: security issue on ring --- Cargo.lock | 17 +++++++++-------- bin/bridge/Cargo.toml | 3 ++- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d64580f7..b683bc9e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2095,7 +2095,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18e4fdb82bd54a12e42fb58a800dcae6b9e13982238ce2296dc3570b92148e1f" dependencies = [ "data-encoding", - "syn 2.0.100", + "syn 1.0.109", ] [[package]] @@ -2464,7 +2464,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5052,7 +5052,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -8183,9 +8183,9 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.13" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ac5d832aa16abd7d1def883a8545280c20a60f523a370aa3a9617c2b8550ee" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", @@ -8422,7 +8422,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.4.15", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -8435,7 +8435,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.9.2", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -8703,6 +8703,7 @@ dependencies = [ "alloy-rpc-types-engine", "clap", "eyre", + "futures", "reth-cli-util", "reth-e2e-test-utils", "reth-engine-local", @@ -9411,7 +9412,7 @@ dependencies = [ "getrandom 0.3.1", "once_cell", "rustix 1.0.2", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] diff --git a/bin/bridge/Cargo.toml b/bin/bridge/Cargo.toml index 131eb5cc..f533b980 100644 --- a/bin/bridge/Cargo.toml +++ b/bin/bridge/Cargo.toml @@ -63,7 +63,8 @@ reth-rpc-server-types = { git = "https://github.com/scroll-tech/reth.git" } reth-tasks.workspace = true reth-tracing = { git = "https://github.com/scroll-tech/reth.git" } -#  misc +# misc +futures.workspace = true serde_json = { version = "1.0.94", default-features = false, features = ["alloc"] } tokio = { workspace = true, features = ["full"] } From a021906e2b8b7b7fd39daaa368c7d083d783165d Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Wed, 12 Mar 2025 11:07:13 +0100 Subject: [PATCH 22/63] fix: bump alloy --- Cargo.lock | 947 ++++++++++++--------- Cargo.toml | 50 +- bin/bridge/Cargo.toml | 1 + crates/engine/src/engine.rs | 30 +- crates/network/Cargo.toml | 22 +- crates/node/Cargo.toml | 14 +- crates/scroll-wire/Cargo.toml | 21 +- crates/watcher/Cargo.toml | 12 +- crates/watcher/src/lib.rs | 26 +- crates/watcher/src/test_utils/arbitrary.rs | 23 +- crates/watcher/src/test_utils/provider.rs | 52 +- 11 files changed, 684 insertions(+), 514 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b683bc9e..231cf605 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -112,9 +112,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.11.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e32ef5c74bbeb1733c37f4ac7f866f8c8af208b7b4265e21af609dcac5bd5e" +checksum = "3dc8ccab88e40f1fba5d097fecdaa5cd830858aead9b588a8d099e7faf57e97c" dependencies = [ "alloy-eips", "alloy-primitives", @@ -124,18 +124,21 @@ dependencies = [ "arbitrary", "auto_impl", "c-kzg", - "derive_more 1.0.0", + "derive_more 2.0.1", + "either", "k256", + "once_cell", "rand 0.8.5", "serde", "serde_with", + "thiserror 2.0.12", ] [[package]] name = "alloy-consensus-any" -version = "0.11.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa13b7b1e1e3fedc42f0728103bfa3b4d566d3d42b606db449504d88dbdbdcf" +checksum = "24cc796a6379d3df47b4c42a447bda1871db7f134e8dddc5c724f69206b4b931" dependencies = [ "alloy-consensus", "alloy-eips", @@ -209,9 +212,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "0.11.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5591581ca2ab0b3e7226a4047f9a1bfcf431da1d0cce3752fda609fea3c27e37" +checksum = "d3321230d9d9813227ad26c8f5c80a74011d629823715c0ab2d1afdea1fc204d" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -222,7 +225,8 @@ dependencies = [ "arbitrary", "auto_impl", "c-kzg", - "derive_more 1.0.0", + "derive_more 2.0.1", + "either", "ethereum_ssz", "ethereum_ssz_derive", "once_cell", @@ -233,18 +237,25 @@ dependencies = [ [[package]] name = "alloy-evm" version = "0.1.0" -source = "git+https://github.com/alloy-rs/evm?rev=beb6832#beb68324d7e05ae2eafad9f726a94cb0b63d15a5" +source = "git+https://github.com/alloy-rs/evm?rev=f9ed4d3#f9ed4d335b2e0002e257ead3198eb463a84c5219" dependencies = [ "alloy-consensus", + "alloy-eips", + "alloy-hardforks", "alloy-primitives", + "alloy-sol-types", + "auto_impl", + "derive_more 1.0.0", + "op-revm", "revm", + "thiserror 2.0.12", ] [[package]] name = "alloy-genesis" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cded3a2d4bd7173f696458c5d4c98c18a628dfcc9f194385e80a486e412e2e0" +checksum = "96b11774716152a5204aff0e86a8c841df499ea81464e2b1f82b3f72d6a2ef32" dependencies = [ "alloy-eips", "alloy-primitives", @@ -253,6 +264,19 @@ dependencies = [ "serde", ] +[[package]] +name = "alloy-hardforks" +version = "0.1.0" +source = "git+https://github.com/alloy-rs/hardforks?rev=ae4176c#ae4176c0027171d38832644f63f05f4f80861c6e" +dependencies = [ + "alloy-chains", + "alloy-eip2124", + "alloy-primitives", + "auto_impl", + "dyn-clone", + "serde", +] + [[package]] name = "alloy-json-abi" version = "0.8.22" @@ -267,9 +291,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.11.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "762414662d793d7aaa36ee3af6928b6be23227df1681ce9c039f6f11daadef64" +checksum = "90ed237ef5c3910deb2ff7c9a33e856ada57ec44b58562f0354ba4640319906c" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -281,9 +305,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.11.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be03f2ebc00cf88bd06d3c6caf387dceaa9c7e6b268216779fa68a9bf8ab4e6" +checksum = "15bb3faed4de77ebc2137d3167ef409b2300432e5fe0b191e3308d3740ff4add" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -298,6 +322,7 @@ dependencies = [ "alloy-sol-types", "async-trait", "auto_impl", + "derive_more 2.0.1", "futures-utils-wasm", "serde", "serde_json", @@ -306,9 +331,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a00ce618ae2f78369918be0c20f620336381502c83b6ed62c2f7b2db27698b0" +checksum = "4c06932646544ea341f0fda48d2c0fe4fda75bc132379cb84019cdfb6ddcb0fb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -350,9 +375,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.11.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbe0a2acff0c4bd1669c71251ce10fc455cbffa1b4d0a817d5ea4ba7e5bb3db7" +checksum = "b08759415890ed63d3f09a3147d5ad8333c1b2a3eb9697604a6c1d54071213d1" dependencies = [ "alloy-chains", "alloy-consensus", @@ -390,9 +415,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3a68996f193f542f9e29c88dfa8ed1369d6ee04fa764c1bf23dc11b2f9e4a2" +checksum = "b1cf194abddb88b034d22ab41449ed8532e5113e58699cd055bf21d98a0991ab" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -431,9 +456,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.11.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b37cc3c7883dc41be1b01460127ad7930466d0a4bb6ba15a02ee34d2745e2d7c" +checksum = "e9c0d94c4a8f4c094e37799d6576db2f65d1b8640fbf5c82954b13e968c9aaaf" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -457,9 +482,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f18e68a3882f372e045ddc89eb455469347767d17878ca492cfbac81e71a111" +checksum = "a153db94cf231b03238fe4da48f59dc6f36e01b5e4d5a2e30de33b95395380fa" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", @@ -470,9 +495,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4e30339fff15d53a3a258a7add476c7d24b61d6f4a71476cc39c8b567666772" +checksum = "f5275d2e24dbdd82032c3b305db359fb2681069cc75add7feb66863ce50b5cb5" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -482,9 +507,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10d06300df4a87d960add35909240fc72da355dd2ac926fa6999f9efafbdc5a7" +checksum = "5462937f088889c337c236c2509226e87a26301d2b01f9fafee246bd84cb0407" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -494,9 +519,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "318ae46dd12456df42527c3b94c1ae9001e1ceb707f7afe2c7807ac4e49ebad9" +checksum = "2cd4ceea38ea27eeb26f021df34ed5b7b793704ad7a2a009f16137a19461e7ca" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -505,9 +530,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799103aa44270c7bea076ec5d3d7b6c6d29557ab5485c91a74d3068327adb485" +checksum = "7c14f3c5747750f7373ec9f633230923ff149c2e31960513e31593bcfcf916be" dependencies = [ "alloy-eips", "alloy-primitives", @@ -517,13 +542,15 @@ dependencies = [ "serde", "serde_with", "thiserror 2.0.12", + "tree_hash", + "tree_hash_derive", ] [[package]] name = "alloy-rpc-types-debug" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2834b7012054cb2f90ee9893b7cc97702edca340ec1ef386c30c42e55e6cd691" +checksum = "8fa8f6e27d47b4c56c627cb03dc91624c26bd814f6609bb1d1a836148b76fc9b" dependencies = [ "alloy-primitives", "serde", @@ -531,30 +558,30 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "0.11.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83dde9fcf1ccb9b815cc0c89bba26bbbbaae5150a53ae624ed0fc63cb3676c1" +checksum = "467888f02b5f70a3f12a8e5c211df5abd05895f7aebe10c2f73d51241de66b44" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rlp", "alloy-serde", - "derive_more 1.0.0", + "derive_more 2.0.1", "ethereum_ssz", "ethereum_ssz_derive", "jsonrpsee-types", "jsonwebtoken", "rand 0.8.5", "serde", - "strum 0.26.3", + "strum 0.27.1", ] [[package]] name = "alloy-rpc-types-eth" -version = "0.11.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b4dbee4d82f8a22dde18c28257bed759afeae7ba73da4a1479a039fd1445d04" +checksum = "e8e76553a98e04b20d8ac55d95cd6c8aad741958a23949132a4a5f12ca137059" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -574,9 +601,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418eb6584edd695dfe496dda85a19102c1ae4838f142efce11e2463ed2288d71" +checksum = "9ec941a4b3eedf15daef2b7aeb7848dfc6e677f58b2a21eab0ac1efef1ffac62" dependencies = [ "alloy-eips", "alloy-primitives", @@ -588,9 +615,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd951155515fa452a2ca4b5434d4b3ab742bcd3d1d1b9a91704bcef5b8d2604" +checksum = "5ef4bba67ec601730ceb23e542980d73ae9f718819604dfdd8289b13a506e762" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -602,9 +629,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21d8dd5bd94993eda3d56a8c4c0d693548183a35462523ffc4385c0b020d3b0c" +checksum = "8edc8512f919feb79dd30864ef7574d2877e71b73e30b5de4925ba9bc6bd4f96" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -614,9 +641,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8732058f5ca28c1d53d241e8504620b997ef670315d7c8afab856b3e3b80d945" +checksum = "9824e1bf92cd7848ca6fabb01c9aca15c9c5fb0ab96da5514ef0543f021c69f6" dependencies = [ "alloy-primitives", "arbitrary", @@ -626,9 +653,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f96b3526fdd779a4bd0f37319cfb4172db52a7ac24cdbb8804b72091c18e1701" +checksum = "81755ed6a6a33061302ac95e9bb7b40ebf7078e4568397168024242bc31a3e58" dependencies = [ "alloy-primitives", "async-trait", @@ -641,9 +668,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe8f78cd6b7501c7e813a1eb4a087b72d23af51f5bb66d4e948dc840bdd207d8" +checksum = "aa857621a5c95c13e640e18bb9c4720f4338a666d6276f55446477a6bc3912ff" dependencies = [ "alloy-consensus", "alloy-network", @@ -729,9 +756,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.11.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8d762eadce3e9b65eac09879430c6f4fce3736cac3cac123f9b1bf435ddd13" +checksum = "579917e55a64a5f88b2f46f21480095b0fa8c303716c0c58075a796e89ed0084" dependencies = [ "alloy-json-rpc", "base64 0.22.1", @@ -748,9 +775,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20819c4cb978fb39ce6ac31991ba90f386d595f922f42ef888b4a18be190713e" +checksum = "cfcd2f8ab2f053cd848ead5d625cb1b63716562951101588c1fa49300e3c6418" dependencies = [ "alloy-json-rpc", "alloy-rpc-types-engine", @@ -768,9 +795,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e88304aa8b796204e5e2500dfe235933ed692745e3effd94c3733643db6d218" +checksum = "e61e2b5cbf16f7588e4420848b61824f6514944773732534f4129ba6a251e059" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -788,9 +815,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9653ea9aa06d0e02fcbe2f04f1c47f35a85c378ccefa98e54ae85210bc8bbfa" +checksum = "67ddcf4b98b3448eb998e057dc5a27345997863d6544ee7f0f79957616768dd3" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -1792,6 +1819,15 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "convert_case" version = "0.7.1" @@ -2095,7 +2131,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]] @@ -2192,6 +2228,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ + "convert_case 0.6.0", "proc-macro2", "quote", "syn 2.0.100", @@ -2204,7 +2241,7 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ - "convert_case", + "convert_case 0.7.1", "proc-macro2", "quote", "syn 2.0.100", @@ -2387,6 +2424,9 @@ name = "either" version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +dependencies = [ + "serde", +] [[package]] name = "elliptic-curve" @@ -2476,6 +2516,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "ethereum_hashing" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c853bd72c9e5787f8aafc3df2907c2ed03cff3150c3acd94e2e53a98ab70a8ab" +dependencies = [ + "cpufeatures", + "ring", + "sha2 0.10.8", +] + [[package]] name = "ethereum_serde_utils" version = "0.7.0" @@ -3091,9 +3142,9 @@ dependencies = [ [[package]] name = "http" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a761d192fbf18bdef69f5ceedd0d1333afcbda0ee23840373b8317570d23c65" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", "fnv", @@ -4549,9 +4600,9 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.10.9" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9ddc5e1dcd2967e8325ab06ed52a2c7cfa562a6dd31ffc9f64e7075bba9f221" +checksum = "d297150146a63778a29400320700e804ec6e1e4d6ec99857cdbbaf17b3de9241" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4567,9 +4618,9 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types-engine" -version = "0.10.9" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55d4fa121dbd258c0ce949c16ccbcd4e2701a6cc3aa953faa8b1c18826a8560" +checksum = "955a7d0ef9161f4a2a8461ef5d784526741c325410103d654706863cf4a32736" dependencies = [ "alloy-consensus", "alloy-eips", @@ -4584,6 +4635,19 @@ dependencies = [ "thiserror 2.0.12", ] +[[package]] +name = "op-revm" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" +dependencies = [ + "auto_impl", + "once_cell", + "revm", + "revm-inspector", + "revm-precompile", + "serde", +] + [[package]] name = "opaque-debug" version = "0.3.1" @@ -5057,9 +5121,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.39" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] @@ -5271,9 +5335,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.12" +version = "0.12.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" +checksum = "389a89e494bbc88bebf30e23da98742c843863a16a352647716116aa71fae80a" dependencies = [ "base64 0.22.1", "bytes", @@ -5326,8 +5390,8 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5350,8 +5414,8 @@ dependencies = [ [[package]] name = "reth-chain-state" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5380,12 +5444,13 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", + "alloy-evm", "alloy-genesis", "alloy-primitives", "alloy-trie", @@ -5399,8 +5464,8 @@ dependencies = [ [[package]] name = "reth-cli" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-genesis", "clap", @@ -5413,8 +5478,8 @@ dependencies = [ [[package]] name = "reth-cli-commands" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "ahash", "alloy-consensus", @@ -5475,8 +5540,8 @@ dependencies = [ [[package]] name = "reth-cli-runner" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "reth-tasks", "tokio", @@ -5485,8 +5550,8 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-eips", "alloy-primitives", @@ -5502,8 +5567,8 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5521,10 +5586,10 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ - "convert_case", + "convert_case 0.7.1", "proc-macro2", "quote", "syn 2.0.100", @@ -5532,8 +5597,8 @@ dependencies = [ [[package]] name = "reth-config" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "eyre", "humantime-serde", @@ -5546,8 +5611,8 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -5559,12 +5624,11 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives", "reth-chainspec", "reth-consensus", "reth-primitives-traits", @@ -5572,22 +5636,21 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-provider", "alloy-rpc-types-engine", - "alloy-rpc-types-eth", "auto_impl", + "derive_more 2.0.1", "eyre", "futures", "reqwest", "reth-node-api", - "reth-rpc-api", - "reth-rpc-builder", + "reth-primitives-traits", "reth-tracing", "ringbuffer", "serde", @@ -5596,8 +5659,8 @@ dependencies = [ [[package]] name = "reth-db" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "derive_more 2.0.1", @@ -5622,8 +5685,8 @@ dependencies = [ [[package]] name = "reth-db-api" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -5651,8 +5714,8 @@ dependencies = [ [[package]] name = "reth-db-common" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -5679,8 +5742,8 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-eips", "alloy-primitives", @@ -5694,8 +5757,8 @@ dependencies = [ [[package]] name = "reth-discv4" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5720,8 +5783,8 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5744,8 +5807,8 @@ dependencies = [ [[package]] name = "reth-dns-discovery" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "data-encoding", @@ -5768,8 +5831,8 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5803,8 +5866,8 @@ dependencies = [ [[package]] name = "reth-e2e-test-utils" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5832,6 +5895,7 @@ dependencies = [ "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", + "reth-primitives", "reth-provider", "reth-rpc-api", "reth-rpc-eth-api", @@ -5841,6 +5905,7 @@ dependencies = [ "reth-tasks", "reth-tokio-util", "reth-tracing", + "revm", "serde_json", "tokio", "tokio-stream", @@ -5850,8 +5915,8 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "aes", "alloy-primitives", @@ -5881,8 +5946,8 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -5911,8 +5976,8 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5928,6 +5993,7 @@ dependencies = [ "reth-primitives", "reth-primitives-traits", "reth-trie", + "reth-trie-common", "serde", "thiserror 2.0.12", "tokio", @@ -5935,8 +6001,8 @@ dependencies = [ [[package]] name = "reth-engine-service" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "futures", "pin-project", @@ -5958,11 +6024,12 @@ dependencies = [ [[package]] name = "reth-engine-tree" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", + "alloy-evm", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", @@ -5970,6 +6037,7 @@ dependencies = [ "futures", "metrics", "mini-moka", + "parking_lot", "rayon", "reth-chain-state", "reth-chainspec", @@ -6006,33 +6074,25 @@ dependencies = [ [[package]] name = "reth-engine-util" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", - "alloy-eips", - "alloy-primitives", "alloy-rpc-types-engine", "eyre", "futures", "itertools 0.14.0", "pin-project", "reth-chainspec", - "reth-consensus-common", "reth-engine-primitives", "reth-errors", - "reth-ethereum-forks", "reth-evm", "reth-fs-util", "reth-payload-primitives", - "reth-payload-validator", "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-revm", - "reth-trie", - "revm-database", - "revm-primitives", "serde", "serde_json", "tokio", @@ -6042,8 +6102,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -6054,8 +6114,8 @@ dependencies = [ [[package]] name = "reth-eth-wire" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-chains", "alloy-primitives", @@ -6082,8 +6142,8 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-chains", "alloy-consensus", @@ -6103,8 +6163,8 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "eyre", "reth-chainspec", @@ -6113,8 +6173,8 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6130,17 +6190,15 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", - "reth-chainspec", "reth-engine-primitives", "reth-payload-primitives", - "reth-payload-validator", "reth-primitives", "serde", "sha2 0.10.8", @@ -6148,24 +6206,22 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ - "alloy-chains", "alloy-eip2124", + "alloy-hardforks", "alloy-primitives", "arbitrary", "auto_impl", - "dyn-clone", "once_cell", "rustc-hash 2.1.1", - "serde", ] [[package]] name = "reth-ethereum-primitives" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6188,8 +6244,8 @@ dependencies = [ [[package]] name = "reth-etl" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "rayon", "reth-db-api", @@ -6198,8 +6254,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6209,47 +6265,45 @@ dependencies = [ "derive_more 2.0.1", "futures-util", "metrics", + "op-revm", "parking_lot", - "reth-chainspec", - "reth-consensus-common", + "reth-ethereum-primitives", "reth-execution-errors", "reth-execution-types", "reth-metrics", - "reth-primitives", "reth-primitives-traits", + "reth-storage-api", "reth-storage-errors", + "reth-trie-common", "revm", "revm-database", - "revm-optimism", "scroll-alloy-evm", ] [[package]] name = "reth-execution-errors" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ - "alloy-eips", "alloy-evm", "alloy-primitives", "alloy-rlp", "nybbles", "reth-storage-errors", - "revm-database-interface", "thiserror 2.0.12", ] [[package]] name = "reth-execution-types" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", + "alloy-evm", "alloy-primitives", "derive_more 2.0.1", "reth-ethereum-primitives", - "reth-execution-errors", "reth-primitives-traits", "reth-trie-common", "revm", @@ -6260,8 +6314,8 @@ dependencies = [ [[package]] name = "reth-exex" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6280,6 +6334,7 @@ dependencies = [ "reth-metrics", "reth-node-api", "reth-node-core", + "reth-payload-builder", "reth-primitives", "reth-primitives-traits", "reth-provider", @@ -6297,8 +6352,8 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6312,8 +6367,8 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "serde", "serde_json", @@ -6322,8 +6377,8 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6349,8 +6404,8 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "async-trait", "bytes", @@ -6370,8 +6425,8 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "bitflags 2.9.0", "byteorder", @@ -6387,8 +6442,8 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "bindgen", "cc", @@ -6396,8 +6451,8 @@ dependencies = [ [[package]] name = "reth-metrics" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "futures", "metrics", @@ -6408,16 +6463,16 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", ] [[package]] name = "reth-net-nat" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "futures-util", "if-addrs", @@ -6430,8 +6485,8 @@ dependencies = [ [[package]] name = "reth-network" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6457,6 +6512,7 @@ dependencies = [ "reth-eth-wire", "reth-eth-wire-types", "reth-ethereum-forks", + "reth-ethereum-primitives", "reth-fs-util", "reth-metrics", "reth-net-banlist", @@ -6485,8 +6541,8 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "alloy-rpc-types-admin", @@ -6508,8 +6564,8 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6531,8 +6587,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6546,8 +6602,8 @@ dependencies = [ [[package]] name = "reth-network-types" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -6560,8 +6616,8 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "anyhow", "bincode", @@ -6577,8 +6633,8 @@ dependencies = [ [[package]] name = "reth-node-api" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -6601,13 +6657,14 @@ dependencies = [ [[package]] name = "reth-node-builder" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rpc-types", + "alloy-rpc-types-engine", "aquamarine", "eyre", "fdlimit", @@ -6664,8 +6721,8 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6713,8 +6770,8 @@ dependencies = [ [[package]] name = "reth-node-events" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6737,8 +6794,8 @@ dependencies = [ [[package]] name = "reth-node-metrics" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "eyre", "http", @@ -6757,8 +6814,8 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "reth-chainspec", "reth-db-api", @@ -6770,8 +6827,8 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6784,20 +6841,20 @@ dependencies = [ "bytes", "derive_more 2.0.1", "op-alloy-consensus", + "op-revm", "rand 0.8.5", "reth-codecs", "reth-primitives-traits", "reth-zstd-compressors", "revm-context", - "revm-optimism", "secp256k1 0.30.0", "serde", ] [[package]] name = "reth-payload-builder" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6818,8 +6875,8 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "pin-project", "reth-payload-primitives", @@ -6830,8 +6887,8 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6850,30 +6907,18 @@ dependencies = [ [[package]] name = "reth-payload-util" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-primitives", "reth-transaction-pool", ] -[[package]] -name = "reth-payload-validator" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" -dependencies = [ - "alloy-consensus", - "alloy-rpc-types-engine", - "reth-chainspec", - "reth-primitives", - "reth-primitives-traits", -] - [[package]] name = "reth-primitives" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "arbitrary", @@ -6887,8 +6932,8 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6921,8 +6966,8 @@ dependencies = [ [[package]] name = "reth-provider" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6967,8 +7012,8 @@ dependencies = [ [[package]] name = "reth-prune" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6995,8 +7040,8 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "arbitrary", @@ -7009,8 +7054,8 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -7024,12 +7069,13 @@ dependencies = [ [[package]] name = "reth-rpc" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-dyn-abi", "alloy-eips", + "alloy-evm", "alloy-genesis", "alloy-network", "alloy-primitives", @@ -7059,7 +7105,6 @@ dependencies = [ "rand 0.8.5", "reth-chainspec", "reth-consensus", - "reth-consensus-common", "reth-engine-primitives", "reth-errors", "reth-evm", @@ -7095,8 +7140,8 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-eips", "alloy-genesis", @@ -7121,8 +7166,8 @@ dependencies = [ [[package]] name = "reth-rpc-builder" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-network", "alloy-provider", @@ -7158,8 +7203,8 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7188,8 +7233,8 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -7213,6 +7258,7 @@ dependencies = [ "reth-evm", "reth-network-api", "reth-node-api", + "reth-payload-builder", "reth-primitives", "reth-primitives-traits", "reth-provider", @@ -7232,8 +7278,8 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7276,8 +7322,8 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-rpc-types-engine", "http", @@ -7290,8 +7336,8 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7306,8 +7352,8 @@ dependencies = [ [[package]] name = "reth-rpc-types-compat" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7320,8 +7366,8 @@ dependencies = [ [[package]] name = "reth-scroll-chainspec" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-chains", "alloy-consensus", @@ -7337,14 +7383,15 @@ dependencies = [ "reth-primitives-traits", "reth-scroll-forks", "reth-trie-common", + "scroll-alloy-hardforks", "serde", "serde_json", ] [[package]] name = "reth-scroll-cli" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "clap", "eyre", @@ -7366,8 +7413,8 @@ dependencies = [ [[package]] name = "reth-scroll-consensus" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7378,17 +7425,16 @@ dependencies = [ "reth-execution-types", "reth-primitives", "reth-primitives-traits", - "reth-scroll-forks", "reth-scroll-primitives", - "revm", + "scroll-alloy-hardforks", "thiserror 2.0.12", "tracing", ] [[package]] name = "reth-scroll-engine-primitives" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7403,8 +7449,8 @@ dependencies = [ "reth-primitives", "reth-primitives-traits", "reth-scroll-chainspec", - "reth-scroll-forks", "reth-scroll-primitives", + "scroll-alloy-hardforks", "scroll-alloy-rpc-types-engine", "serde", "sha2 0.10.8", @@ -7412,21 +7458,20 @@ dependencies = [ [[package]] name = "reth-scroll-evm" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", + "alloy-eips", "alloy-evm", + "alloy-primitives", "derive_more 2.0.1", "reth-chainspec", - "reth-consensus", "reth-evm", "reth-execution-types", "reth-primitives", "reth-primitives-traits", - "reth-revm", "reth-scroll-chainspec", - "reth-scroll-consensus", "reth-scroll-forks", "reth-scroll-primitives", "revm", @@ -7434,33 +7479,36 @@ dependencies = [ "revm-scroll", "scroll-alloy-consensus", "scroll-alloy-evm", + "scroll-alloy-hardforks", "thiserror 2.0.12", "tracing", ] [[package]] name = "reth-scroll-forks" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-chains", "alloy-primitives", "auto_impl", "once_cell", "reth-ethereum-forks", + "scroll-alloy-hardforks", "serde", ] [[package]] name = "reth-scroll-node" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-primitives", "alloy-rpc-types-engine", "eyre", + "reth-basic-payload-builder", "reth-chainspec", "reth-eth-wire-types", "reth-evm", @@ -7468,6 +7516,7 @@ dependencies = [ "reth-node-api", "reth-node-builder", "reth-node-types", + "reth-payload-builder", "reth-primitives", "reth-primitives-traits", "reth-provider", @@ -7476,7 +7525,6 @@ dependencies = [ "reth-scroll-consensus", "reth-scroll-engine-primitives", "reth-scroll-evm", - "reth-scroll-forks", "reth-scroll-payload", "reth-scroll-primitives", "reth-scroll-rpc", @@ -7486,6 +7534,7 @@ dependencies = [ "revm", "scroll-alloy-consensus", "scroll-alloy-evm", + "scroll-alloy-hardforks", "scroll-alloy-rpc-types-engine", "thiserror 2.0.12", "tokio", @@ -7493,8 +7542,8 @@ dependencies = [ [[package]] name = "reth-scroll-payload" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "reth-basic-payload-builder", "reth-payload-primitives", @@ -7506,8 +7555,8 @@ dependencies = [ [[package]] name = "reth-scroll-primitives" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7527,17 +7576,17 @@ dependencies = [ "revm-context", "revm-scroll", "scroll-alloy-consensus", + "scroll-alloy-evm", "secp256k1 0.30.0", "serde", ] [[package]] name = "reth-scroll-rpc" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", - "alloy-eips", "alloy-primitives", "alloy-rpc-types-eth", "jsonrpsee-types", @@ -7554,13 +7603,13 @@ dependencies = [ "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-scroll-chainspec", - "reth-scroll-forks", "reth-scroll-primitives", "reth-tasks", "reth-transaction-pool", "revm", "scroll-alloy-consensus", "scroll-alloy-evm", + "scroll-alloy-hardforks", "scroll-alloy-network", "scroll-alloy-rpc-types", "thiserror 2.0.12", @@ -7569,8 +7618,8 @@ dependencies = [ [[package]] name = "reth-stages" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7614,8 +7663,8 @@ dependencies = [ [[package]] name = "reth-stages-api" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7641,8 +7690,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "arbitrary", @@ -7655,8 +7704,8 @@ dependencies = [ [[package]] name = "reth-static-file" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "parking_lot", @@ -7676,8 +7725,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "clap", @@ -7688,8 +7737,8 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7705,15 +7754,15 @@ dependencies = [ "reth-prune-types", "reth-stages-types", "reth-storage-errors", - "reth-trie", + "reth-trie-common", "reth-trie-db", "revm-database", ] [[package]] name = "reth-storage-errors" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7728,8 +7777,8 @@ dependencies = [ [[package]] name = "reth-tasks" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "auto_impl", "dyn-clone", @@ -7746,8 +7795,8 @@ dependencies = [ [[package]] name = "reth-testing-utils" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7761,8 +7810,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "tokio", "tokio-stream", @@ -7771,8 +7820,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "clap", "eyre", @@ -7786,8 +7835,8 @@ dependencies = [ [[package]] name = "reth-transaction-pool" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7804,10 +7853,10 @@ dependencies = [ "reth-chain-state", "reth-chainspec", "reth-eth-wire-types", + "reth-ethereum-primitives", "reth-execution-types", "reth-fs-util", "reth-metrics", - "reth-primitives", "reth-primitives-traits", "reth-storage-api", "reth-tasks", @@ -7825,8 +7874,8 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7850,8 +7899,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7876,8 +7925,8 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7896,8 +7945,8 @@ dependencies = [ [[package]] name = "reth-trie-parallel" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7914,13 +7963,14 @@ dependencies = [ "reth-trie-common", "reth-trie-db", "thiserror 2.0.12", + "tokio", "tracing", ] [[package]] name = "reth-trie-sparse" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7934,8 +7984,8 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "zstd", ] @@ -7943,7 +7993,7 @@ dependencies = [ [[package]] name = "revm" version = "20.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" dependencies = [ "revm-bytecode", "revm-context", @@ -7962,7 +8012,7 @@ dependencies = [ [[package]] name = "revm-bytecode" version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" dependencies = [ "bitvec", "revm-primitives", @@ -7973,10 +8023,8 @@ dependencies = [ [[package]] name = "revm-context" version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" dependencies = [ - "alloy-eip2930", - "alloy-eip7702", "auto_impl", "cfg-if", "derive-where", @@ -7993,7 +8041,7 @@ dependencies = [ [[package]] name = "revm-context-interface" version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -8008,7 +8056,7 @@ dependencies = [ [[package]] name = "revm-database" version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" dependencies = [ "auto_impl", "revm-bytecode", @@ -8021,7 +8069,7 @@ dependencies = [ [[package]] name = "revm-database-interface" version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" dependencies = [ "auto_impl", "revm-primitives", @@ -8032,7 +8080,7 @@ dependencies = [ [[package]] name = "revm-handler" version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" dependencies = [ "auto_impl", "revm-bytecode", @@ -8050,7 +8098,7 @@ dependencies = [ [[package]] name = "revm-inspector" version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" dependencies = [ "auto_impl", "revm-context", @@ -8065,8 +8113,8 @@ dependencies = [ [[package]] name = "revm-inspectors" -version = "0.15.0" -source = "git+https://github.com/paradigmxyz/revm-inspectors?rev=8900c2b#8900c2bf8430e41f1a1cc92dbc1cf0615f00a26b" +version = "0.16.0" +source = "git+https://github.com/paradigmxyz/revm-inspectors?rev=9219073#9219073cb04a774d6ea12b44655bba92b08c1293" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -8083,7 +8131,7 @@ dependencies = [ [[package]] name = "revm-interpreter" version = "16.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" dependencies = [ "revm-bytecode", "revm-context-interface", @@ -8092,23 +8140,10 @@ dependencies = [ "serde", ] -[[package]] -name = "revm-optimism" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" -dependencies = [ - "auto_impl", - "once_cell", - "revm", - "revm-inspector", - "revm-precompile", - "serde", -] - [[package]] name = "revm-precompile" version = "17.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" dependencies = [ "aurora-engine-modexp", "blst", @@ -8122,7 +8157,7 @@ dependencies = [ "revm-primitives", "revm-specification", "ripemd", - "secp256k1 0.29.1", + "secp256k1 0.30.0", "sha2 0.10.8", "substrate-bn", ] @@ -8130,7 +8165,7 @@ dependencies = [ [[package]] name = "revm-primitives" version = "16.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" dependencies = [ "alloy-primitives", ] @@ -8138,7 +8173,7 @@ dependencies = [ [[package]] name = "revm-scroll" version = "0.1.0" -source = "git+https://github.com/scroll-tech/scroll-revm#6f2bdf289546b8fb1eb24f5a5b4176e228da6ec1" +source = "git+https://github.com/scroll-tech/scroll-revm#12557ed8a512240228d18c4fae85477bf47fbbe3" dependencies = [ "auto_impl", "enumn", @@ -8152,7 +8187,7 @@ dependencies = [ [[package]] name = "revm-specification" version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" dependencies = [ "enumn", "revm-primitives", @@ -8162,7 +8197,7 @@ dependencies = [ [[package]] name = "revm-state" version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" dependencies = [ "bitflags 2.9.0", "revm-bytecode", @@ -8318,7 +8353,6 @@ dependencies = [ "async-trait", "derive_more 2.0.1", "eyre", - "itertools 0.14.0", "rand 0.9.0", "rollup-node-primitives", "scroll-alloy-consensus", @@ -8601,8 +8635,8 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll-alloy-consensus" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8620,21 +8654,35 @@ dependencies = [ [[package]] name = "scroll-alloy-evm" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ + "alloy-consensus", + "alloy-eips", "alloy-evm", "alloy-primitives", - "reth-scroll-primitives", + "auto_impl", "revm", "revm-scroll", + "scroll-alloy-consensus", + "scroll-alloy-hardforks", + "serde", +] + +[[package]] +name = "scroll-alloy-hardforks" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +dependencies = [ + "alloy-hardforks", + "auto_impl", "serde", ] [[package]] name = "scroll-alloy-network" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-network", @@ -8647,8 +8695,8 @@ dependencies = [ [[package]] name = "scroll-alloy-provider" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "alloy-provider", @@ -8668,8 +8716,8 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8685,8 +8733,8 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types-engine" -version = "1.2.0" -source = "git+https://github.com/scroll-tech/reth.git#3b4b00eab9923337402cd92d36ac70fbee856ab2" +version = "1.2.2" +source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", @@ -9856,6 +9904,31 @@ dependencies = [ "tracing-serde", ] +[[package]] +name = "tree_hash" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c58eb0f518840670270d90d97ffee702d8662d9c5494870c9e1e9e0fa00f668" +dependencies = [ + "alloy-primitives", + "ethereum_hashing", + "ethereum_ssz", + "smallvec", + "typenum", +] + +[[package]] +name = "tree_hash_derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "699e7fb6b3fdfe0c809916f251cf5132d64966858601695c3736630a87e7166a" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "triehash" version = "0.8.4" @@ -10334,7 +10407,7 @@ dependencies = [ "windows-implement 0.58.0", "windows-interface 0.58.0", "windows-result 0.2.0", - "windows-strings", + "windows-strings 0.1.0", "windows-targets 0.52.6", ] @@ -10390,13 +10463,13 @@ checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" [[package]] name = "windows-registry" -version = "0.2.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" dependencies = [ - "windows-result 0.2.0", - "windows-strings", - "windows-targets 0.52.6", + "windows-result 0.3.1", + "windows-strings 0.3.1", + "windows-targets 0.53.0", ] [[package]] @@ -10417,6 +10490,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-result" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06374efe858fab7e4f881500e6e86ec8bc28f9462c47e5a9941a0142ad86b189" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-strings" version = "0.1.0" @@ -10427,6 +10509,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-strings" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -10478,13 +10569,29 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -10497,6 +10604,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -10509,6 +10622,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -10521,12 +10640,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -10539,6 +10670,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -10551,6 +10688,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -10563,6 +10706,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -10575,6 +10724,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" version = "0.7.3" diff --git a/Cargo.toml b/Cargo.toml index 8529455a..cea3d009 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -109,15 +109,15 @@ large_enum_variant = "allow" [workspace.dependencies] # alloy alloy-chains = { version = "0.1.32", default-features = false } -alloy-consensus = { version = "0.11.1", default-features = false } -alloy-eips = { version = "0.11.1", default-features = false } -alloy-json-rpc = { version = "0.11.1", default-features = false } -alloy-network = { version = "0.11.1", default-features = false } +alloy-consensus = { version = "0.12.2", default-features = false } +alloy-eips = { version = "0.12.2", default-features = false } +alloy-json-rpc = { version = "0.12.2", default-features = false } +alloy-network = { version = "0.12.2", default-features = false } alloy-primitives = { version = "0.8.20", default-features = false } -alloy-provider = { version = "0.11.1", default-features = false } -alloy-rpc-types-engine = { version = "0.11.1", default-features = false } -alloy-rpc-types-eth = { version = "0.11.1", default-features = false } -alloy-transport = { version = "0.11.1", default-features = false } +alloy-provider = { version = "0.12.2", default-features = false } +alloy-rpc-types-engine = { version = "0.12.2", default-features = false } +alloy-rpc-types-eth = { version = "0.12.2", default-features = false } +alloy-transport = { version = "0.12.2", default-features = false } # scroll-alloy scroll-alloy-consensus = { git = "https://github.com/scroll-tech/reth.git" } @@ -140,12 +140,12 @@ reth-scroll-node = { git = "https://github.com/scroll-tech/reth.git", default-fe reth-scroll-primitives = { git = "https://github.com/scroll-tech/reth.git", default-features = false } # rollup node +rollup-node-manager = { path = "crates/node" } +rollup-node-primitives = { path = "crates/primitives" } +rollup-node-watcher = { path = "crates/watcher" } scroll-engine = { path = "crates/engine" } scroll-network = { path = "crates/network" } scroll-wire = { path = "crates/scroll-wire" } -rollup-node-manager = { path = "crates/node" } -rollup-node-watcher = { path = "crates/watcher" } -rollup-node-primitives = { path = "crates/primitives" } # misc arbitrary = "1.4" @@ -160,19 +160,17 @@ tokio-stream = { version = "0.1", default-features = false } tracing = "0.1.0" [patch.crates-io] -alloy-evm = { git = "https://github.com/alloy-rs/evm", rev = "beb6832" } - -revm = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-bytecode = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-database = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-state = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-primitives = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-interpreter = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-inspector = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-context = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-context-interface = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-database-interface = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-specification = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-optimism = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } +revm-bytecode = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } +revm-database = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } +revm-state = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } +revm-primitives = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } +revm-interpreter = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } +revm-inspector = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } +revm-context = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } +revm-context-interface = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } +revm-database-interface = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } +revm-specification = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } +op-revm = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } -revm-inspectors = { git = "https://github.com/paradigmxyz/revm-inspectors", rev = "8900c2b" } +revm-inspectors = { git = "https://github.com/paradigmxyz/revm-inspectors", rev = "9219073" } diff --git a/bin/bridge/Cargo.toml b/bin/bridge/Cargo.toml index f533b980..ee8da682 100644 --- a/bin/bridge/Cargo.toml +++ b/bin/bridge/Cargo.toml @@ -18,6 +18,7 @@ scroll-alloy-provider.workspace = true # reth reth-cli-util = { git = "https://github.com/scroll-tech/reth.git" } +# keep this import as it is needed for correct compilation. reth-engine-local = { git = "https://github.com/scroll-tech/reth.git", features = ["scroll-alloy-traits"] } reth-eth-wire-types.workspace = true reth-network.workspace = true diff --git a/crates/engine/src/engine.rs b/crates/engine/src/engine.rs index 0886aa3c..d13dba5a 100644 --- a/crates/engine/src/engine.rs +++ b/crates/engine/src/engine.rs @@ -64,11 +64,12 @@ where /// - Sends the payload to the EL via `engine_newPayloadV1`. /// - Sets the current fork choice for the EL via `engine_forkchoiceUpdatedV1`. #[instrument(skip_all, level = "trace", - fields( - payload_block_hash = %execution_payload.block_hash(), - payload_block_num = %execution_payload.block_number(), - fcs = ?fcs - ))] + fields( + payload_block_hash = %execution_payload.block_hash(), + payload_block_num = %execution_payload.block_number(), + fcs = ?fcs + ) + )] pub async fn handle_execution_payload( &self, execution_payload: ExecutionPayload, @@ -77,12 +78,12 @@ where // Convert the payload to the V1 format. let execution_payload = execution_payload.into_v1(); - // Invoke the FCU with the new state. - let fcu = self.forkchoice_updated(fcs, None).await?; - // Issue the new payload to the EN. let payload_status = self.new_payload(execution_payload).await?; + // Invoke the FCU with the new state. + let fcu = self.forkchoice_updated(fcs, None).await?; + // We should never have a case where the fork choice is syncing as we have already validated // the payload and provided it to the EN. debug_assert!(fcu.is_valid()); @@ -101,8 +102,13 @@ where /// - If the execution payload matches the attributes: /// - Sets the current fork choice for the EL via `engine_forkchoiceUpdatedV1`, advancing /// the safe head by one. - // #[instrument(skip_all, level = "trace", fields(head = %self.unsafe_block_info.hash, safe = - // %self.safe_block_info.hash, finalized = %self.safe_block_info.hash))] + #[instrument(skip_all, level = "trace", + fields( + safe_block_info = ?safe_block_info, + fcs = ?fcs, + payload_attributes = ?payload_attributes + ) + )] pub async fn handle_payload_attributes( &mut self, safe_block_info: BlockInfo, @@ -175,7 +181,7 @@ where match &response.status { PayloadStatusEnum::Invalid { validation_error } => { error!(target: "scroll::engine::driver", ?validation_error, "execution payload is invalid"); - return Err(EngineDriverError::InvalidExecutionPayload); + return Err(EngineDriverError::InvalidExecutionPayload) } PayloadStatusEnum::Syncing => { debug!(target: "scroll::engine::driver", "execution client is syncing"); @@ -208,7 +214,7 @@ where match &forkchoice_updated.payload_status.status { PayloadStatusEnum::Invalid { validation_error } => { error!(target: "scroll::engine::driver", ?validation_error, "failed to issue forkchoice"); - return Err(EngineDriverError::InvalidFcu); + return Err(EngineDriverError::InvalidFcu) } PayloadStatusEnum::Syncing => { debug!(target: "scroll::engine::driver", "head has been seen before, but not part of the chain"); diff --git a/crates/network/Cargo.toml b/crates/network/Cargo.toml index 7855f785..cd4ac226 100644 --- a/crates/network/Cargo.toml +++ b/crates/network/Cargo.toml @@ -8,9 +8,7 @@ exclude.workspace = true [dependencies] # alloy -alloy-primitives = { workspace = true, features = [ - "map-foldhash", -] } +alloy-primitives = { workspace = true, features = ["map-foldhash"] } # reth reth-eth-wire-types.workspace = true @@ -36,13 +34,13 @@ tracing.workspace = true [features] serde = [ - "alloy-primitives/serde", - "parking_lot/serde", - "reth-eth-wire-types/serde", - "reth-network/serde", - "reth-network-api/serde", - "reth-network-types/serde", - "reth-scroll-primitives/serde", - "scroll-wire/serde", - "secp256k1/serde" + "alloy-primitives/serde", + "parking_lot/serde", + "reth-eth-wire-types/serde", + "reth-network/serde", + "reth-network-api/serde", + "reth-network-types/serde", + "reth-scroll-primitives/serde", + "scroll-wire/serde", + "secp256k1/serde", ] diff --git a/crates/node/Cargo.toml b/crates/node/Cargo.toml index 34464372..e7d13797 100644 --- a/crates/node/Cargo.toml +++ b/crates/node/Cargo.toml @@ -41,11 +41,11 @@ workspace = true [features] serde = [ - "alloy-rpc-types-engine/serde", - "reth-scroll-primitives/serde", - "scroll-engine/serde", - "scroll-network/serde", - "scroll-wire/serde", - "secp256k1/serde", - "alloy-eips/serde" + "alloy-rpc-types-engine/serde", + "reth-scroll-primitives/serde", + "scroll-engine/serde", + "scroll-network/serde", + "scroll-wire/serde", + "secp256k1/serde", + "alloy-eips/serde", ] diff --git a/crates/scroll-wire/Cargo.toml b/crates/scroll-wire/Cargo.toml index 27a7de37..1d2a1d90 100644 --- a/crates/scroll-wire/Cargo.toml +++ b/crates/scroll-wire/Cargo.toml @@ -11,9 +11,7 @@ workspace = true [dependencies] # alloy -alloy-primitives = { workspace = true, features = [ - "map-foldhash", -] } +alloy-primitives = { workspace = true, features = ["map-foldhash"] } alloy-rlp = { version = "0.3.10", default-features = false } # reth @@ -27,20 +25,17 @@ reth-scroll-primitives = { workspace = true, features = ["serde"] } # misc futures.workspace = true -secp256k1 = { workspace = true, features = [ - "global-context", - "recovery", -] } +secp256k1 = { workspace = true, features = ["global-context", "recovery"] } tokio = { workspace = true, features = ["full"] } tokio-stream.workspace = true tracing.workspace = true [features] serde = [ - "alloy-primitives/serde", - "reth-eth-wire/serde", - "reth-network/serde", - "reth-network-api/serde", - "reth-scroll-primitives/serde", - "secp256k1/serde" + "alloy-primitives/serde", + "reth-eth-wire/serde", + "reth-network/serde", + "reth-network-api/serde", + "reth-scroll-primitives/serde", + "secp256k1/serde", ] diff --git a/crates/watcher/Cargo.toml b/crates/watcher/Cargo.toml index c15e77d1..7613a5a5 100644 --- a/crates/watcher/Cargo.toml +++ b/crates/watcher/Cargo.toml @@ -43,8 +43,16 @@ alloy-rpc-types-eth = { workspace = true, features = ["arbitrary"] } arbitrary.workspace = true eyre.workspace = true rand = "0.9" -itertools = "0.14.0" tracing-subscriber = "0.3" [features] -test-utils = ["alloy-eips", "arbitrary", "rand", "alloy-consensus/arbitrary"] +test-utils = ["arbitrary", "alloy-eips", "rand"] +arbitrary = [ + "dep:arbitrary", + "alloy-consensus/arbitrary", + "alloy-eips/arbitrary", + "alloy-primitives/arbitrary", + "alloy-rpc-types-eth/arbitrary", + "alloy-sol-types/arbitrary", + "scroll-alloy-consensus/arbitrary", +] diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index 29e14ecd..7565e323 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -21,7 +21,7 @@ use std::{collections::VecDeque, sync::Arc, time::Duration}; use alloy_network::Ethereum; use alloy_primitives::{BlockNumber, B256}; use alloy_provider::{Network, Provider}; -use alloy_rpc_types_eth::{BlockNumberOrTag, BlockTransactionsKind, Log, TransactionTrait}; +use alloy_rpc_types_eth::{BlockNumberOrTag, Log, TransactionTrait}; use error::L1WatcherResult; use rollup_node_primitives::{BatchInput, BatchInputBuilder, L1MessageWithBlockNumber}; use scroll_alloy_consensus::TxL1Message; @@ -109,8 +109,7 @@ where let fetch_block_number = async |tag: BlockNumberOrTag| { let block = loop { - match execution_provider.get_block(tag.into(), BlockTransactionsKind::Hashes).await - { + match execution_provider.get_block(tag.into()).await { Err(err) => { tracing::error!(target: "scroll::watcher", ?err, "failed to fetch {tag} block") } @@ -159,11 +158,11 @@ where /// A step of work for the [`L1Watcher`]. pub async fn step(&mut self) -> L1WatcherResult<()> { // handle the finalized block. - let finalized = self.finalized_block(false).await?; + let finalized = self.finalized_block().await?; self.handle_finalized_block(&finalized.header).await; // handle the latest block. - let latest = self.latest_block(false).await?; + let latest = self.latest_block().await?; self.handle_latest_block(&finalized.header, &latest.header).await?; // index the next range of blocks. @@ -393,7 +392,7 @@ where tracing::trace!(target: "scroll::watcher", number = ?(current_block.number - 1), "fetching block"); let block = self .execution_provider - .get_block((current_block.number - 1).into(), BlockTransactionsKind::Hashes) + .get_block((current_block.number - 1).into()) .await? .ok_or(EthRequestError::MissingBlock(current_block.number - 1))?; chain.push(block.header.clone()); @@ -438,19 +437,19 @@ where } /// Returns the latest L1 block. - async fn latest_block(&self, full: bool) -> L1WatcherResult { + async fn latest_block(&self) -> L1WatcherResult { Ok(self .execution_provider - .get_block(BlockNumberOrTag::Latest.into(), full.into()) + .get_block(BlockNumberOrTag::Latest.into()) .await? .expect("latest block should always exist")) } /// Returns the finalized L1 block. - async fn finalized_block(&self, full: bool) -> L1WatcherResult { + async fn finalized_block(&self) -> L1WatcherResult { Ok(self .execution_provider - .get_block(BlockNumberOrTag::Finalized.into(), full.into()) + .get_block(BlockNumberOrTag::Finalized.into()) .await? .expect("finalized block should always exist")) } @@ -473,10 +472,9 @@ where #[cfg(test)] mod tests { use super::*; - use crate::{ - contract::commitBatchCall, - test_utils::{arbitrary::ArbitraryTxBuilder, provider::MockProvider}, - }; + use crate::{contract::commitBatchCall, test_utils::arbitrary::ArbitraryTxBuilder}; + + use crate::test_utils::provider::MockProvider; use alloy_consensus::TxType; use alloy_sol_types::{SolCall, SolEvent}; use arbitrary::Arbitrary; diff --git a/crates/watcher/src/test_utils/arbitrary.rs b/crates/watcher/src/test_utils/arbitrary.rs index 2d255d17..8b180382 100644 --- a/crates/watcher/src/test_utils/arbitrary.rs +++ b/crates/watcher/src/test_utils/arbitrary.rs @@ -1,8 +1,8 @@ use alloy_consensus::{ - Signed, TxEip1559, TxEip2930, TxEip4844, TxEip4844Variant, TxEip7702, TxEnvelope, TxLegacy, - TxType, + transaction::Recovered, Signed, TxEip1559, TxEip2930, TxEip4844, TxEip4844Variant, TxEip7702, + TxEnvelope, TxLegacy, TxType, }; -use alloy_primitives::{Address, Bytes}; +use alloy_primitives::Bytes; use alloy_rpc_types_eth::Transaction; use arbitrary::Arbitrary; @@ -26,15 +26,14 @@ pub struct ArbitraryTxBuilder { impl Default for ArbitraryTxBuilder { fn default() -> Self { - let envelope = random!(TxEnvelope); + let recovered = random!(Recovered); Self { tx: Transaction { - inner: envelope, + inner: recovered, block_hash: None, block_number: None, transaction_index: None, effective_gas_price: None, - from: random!(Address), }, } } @@ -44,18 +43,18 @@ impl ArbitraryTxBuilder { /// Modifies the type of the random transaction. pub fn with_ty(mut self, ty: TxType) -> Self { match ty { - TxType::Legacy => self.tx.inner = random!(Signed).into(), - TxType::Eip2930 => self.tx.inner = random!(Signed).into(), - TxType::Eip1559 => self.tx.inner = random!(Signed).into(), - TxType::Eip4844 => self.tx.inner = random!(Signed).into(), - TxType::Eip7702 => self.tx.inner = random!(Signed).into(), + TxType::Legacy => *self.tx.inner.inner_mut() = random!(Signed).into(), + TxType::Eip2930 => *self.tx.inner.inner_mut() = random!(Signed).into(), + TxType::Eip1559 => *self.tx.inner.inner_mut() = random!(Signed).into(), + TxType::Eip4844 => *self.tx.inner.inner_mut() = random!(Signed).into(), + TxType::Eip7702 => *self.tx.inner.inner_mut() = random!(Signed).into(), } self } /// Modifies the input of the random transaction. pub fn with_input(mut self, input: Bytes) -> Self { - match self.tx.inner { + match self.tx.inner.inner_mut() { TxEnvelope::Legacy(ref mut tx) => tx.tx_mut().input = input, TxEnvelope::Eip2930(ref mut tx) => tx.tx_mut().input = input, TxEnvelope::Eip1559(ref mut tx) => tx.tx_mut().input = input, diff --git a/crates/watcher/src/test_utils/provider.rs b/crates/watcher/src/test_utils/provider.rs index d98a7dec..d9355e41 100644 --- a/crates/watcher/src/test_utils/provider.rs +++ b/crates/watcher/src/test_utils/provider.rs @@ -1,13 +1,16 @@ use crate::Block; +use std::{ + collections::HashMap, + sync::{Arc, Mutex}, +}; + use alloy_eips::BlockNumberOrTag; use alloy_json_rpc::RpcError; use alloy_network::Ethereum; use alloy_primitives::{BlockNumber, TxHash, B256}; -use alloy_provider::{Provider, ProviderCall, RootProvider}; -use alloy_rpc_types_eth::{BlockId, BlockTransactionsKind, Filter, Log, Transaction}; +use alloy_provider::{EthGetBlock, Provider, ProviderCall, RootProvider}; +use alloy_rpc_types_eth::{BlockId, Filter, Log, Transaction}; use alloy_transport::TransportResult; -use std::{collections::HashMap, sync::Arc}; -use tokio::sync::Mutex; /// A mock implementation of the [`Provider`] trait. #[derive(Debug)] @@ -46,37 +49,46 @@ impl Provider for MockProvider { unreachable!("unused calls") } - async fn get_block( - &self, - block_id: BlockId, - _kind: BlockTransactionsKind, - ) -> TransportResult> { - match block_id { + fn get_block(&self, block_id: BlockId) -> EthGetBlock { + let val = match block_id { BlockId::Hash(_) => unimplemented!("hash query is not supported"), BlockId::Number(number_or_tag) => match number_or_tag { BlockNumberOrTag::Latest => { - let mut blocks = self.latest_blocks.lock().await; - let val = if blocks.is_empty() { None } else { blocks.drain(..1).next() }; - val.ok_or(RpcError::NullResp).map(Some) + let mut blocks = self.latest_blocks.lock().unwrap(); + if blocks.is_empty() { + None + } else { + blocks.drain(..1).next() + } } BlockNumberOrTag::Finalized => { - let mut blocks = self.finalized_blocks.lock().await; - let val = if blocks.is_empty() { None } else { blocks.drain(..1).next() }; - val.ok_or(RpcError::NullResp).map(Some) + let mut blocks = self.finalized_blocks.lock().unwrap(); + if blocks.is_empty() { + None + } else { + blocks.drain(..1).next() + } } BlockNumberOrTag::Number(number) => { - let mut blocks = self.blocks.lock().await; - Ok(blocks.get_mut(&number).and_then(|blocks| { + let mut blocks = self.blocks.lock().unwrap(); + blocks.get_mut(&number).and_then(|blocks| { if blocks.len() > 1 { blocks.drain(..1).next() } else { blocks.first().cloned() } - })) + }) } _ => unimplemented!("can only query by number, latest or finalized"), }, - } + }; + EthGetBlock::new_provider( + block_id, + Box::new(move |_kind| { + let val = val.clone().ok_or(RpcError::NullResp).map(Some); + ProviderCall::Ready(Some(val)) + }), + ) } async fn get_logs(&self, _filter: &Filter) -> TransportResult> { From 17fbd3a16ebb2b9a74e2842aa6b7fea398cb7e7a Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Wed, 12 Mar 2025 11:42:19 +0100 Subject: [PATCH 23/63] feat: move abi to separate crate --- Cargo.lock | 12 ++++ Cargo.toml | 5 +- crates/l1/Cargo.toml | 26 ++++++++ crates/l1/src/abi/calls.rs | 82 +++++++++++++++++++++++ crates/l1/src/abi/logs.rs | 42 ++++++++++++ crates/l1/src/abi/mod.rs | 5 ++ crates/l1/src/lib.rs | 4 ++ crates/watcher/Cargo.toml | 5 +- crates/watcher/src/constants.rs | 2 +- crates/watcher/src/contract.rs | 111 -------------------------------- crates/watcher/src/lib.rs | 14 ++-- 11 files changed, 186 insertions(+), 122 deletions(-) create mode 100644 crates/l1/Cargo.toml create mode 100644 crates/l1/src/abi/calls.rs create mode 100644 crates/l1/src/abi/logs.rs create mode 100644 crates/l1/src/abi/mod.rs create mode 100644 crates/l1/src/lib.rs delete mode 100644 crates/watcher/src/contract.rs diff --git a/Cargo.lock b/Cargo.lock index 231cf605..5754a7fb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8356,6 +8356,7 @@ dependencies = [ "rand 0.9.0", "rollup-node-primitives", "scroll-alloy-consensus", + "scroll-l1", "thiserror 2.0.12", "tokio", "tracing", @@ -8813,6 +8814,17 @@ dependencies = [ "tracing", ] +[[package]] +name = "scroll-l1" +version = "0.0.1" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "arbitrary", + "derive_more 2.0.1", + "scroll-alloy-consensus", +] + [[package]] name = "scroll-network" version = "0.0.1" diff --git a/Cargo.toml b/Cargo.toml index cea3d009..025f9c34 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,11 +9,12 @@ exclude = [".github/"] members = [ "bin/bridge", "crates/engine", + "crates/l1", "crates/node", "crates/network", + "crates/primitives", "crates/scroll-wire", "crates/watcher", - "crates/primitives", ] resolver = "2" @@ -117,6 +118,7 @@ alloy-primitives = { version = "0.8.20", default-features = false } alloy-provider = { version = "0.12.2", default-features = false } alloy-rpc-types-engine = { version = "0.12.2", default-features = false } alloy-rpc-types-eth = { version = "0.12.2", default-features = false } +alloy-sol-types = { version = "0.8.20", default-features = false } alloy-transport = { version = "0.12.2", default-features = false } # scroll-alloy @@ -144,6 +146,7 @@ rollup-node-manager = { path = "crates/node" } rollup-node-primitives = { path = "crates/primitives" } rollup-node-watcher = { path = "crates/watcher" } scroll-engine = { path = "crates/engine" } +scroll-l1 = { path = "crates/l1" } scroll-network = { path = "crates/network" } scroll-wire = { path = "crates/scroll-wire" } diff --git a/crates/l1/Cargo.toml b/crates/l1/Cargo.toml new file mode 100644 index 00000000..059a3a24 --- /dev/null +++ b/crates/l1/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "scroll-l1" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +exclude.workspace = true + +[lints] +workspace = true + +[dependencies] +# alloy +alloy-primitives.workspace = true +alloy-sol-types.workspace = true + +# scroll alloy +scroll-alloy-consensus.workspace = true + +# misc +arbitrary = { workspace = true, optional = true } +derive_more.workspace = true + +[features] +test-utils = ["arbitrary"] + diff --git a/crates/l1/src/abi/calls.rs b/crates/l1/src/abi/calls.rs new file mode 100644 index 00000000..a96766e6 --- /dev/null +++ b/crates/l1/src/abi/calls.rs @@ -0,0 +1,82 @@ +use alloy_primitives::Bytes; +use alloy_sol_types::{sol, SolCall}; + +sol! { + #[cfg_attr(feature = "test-utils", derive(arbitrary::Arbitrary))] + #[derive(Debug)] + function commitBatch( + uint8 version, + bytes calldata parentBatchHeader, + bytes[] memory chunks, + bytes calldata skippedL1MessageBitmap + ) external; + + #[cfg_attr(feature = "test-utils", derive(arbitrary::Arbitrary))] + #[derive(Debug)] + function commitBatchWithBlobProof( + uint8 version, + bytes calldata parentBatchHeader, + bytes[] memory chunks, + bytes calldata skippedL1MessageBitmap, + bytes calldata blobDataProof + ) external; +} + +/// A call to commit a batch on the L1 Scroll Rollup contract. +#[derive(Debug, derive_more::From)] +pub enum CommitBatchCall { + /// A plain call to commit the batch. + CommitBatch(commitBatchCall), + /// A call to commit the batch with a blob proof. + CommitBatchWithBlobProof(commitBatchWithBlobProofCall), +} + +impl CommitBatchCall { + /// Tries to decode the calldata into a [`CommitBatchCall`]. + pub fn try_decode(calldata: &Bytes) -> Option { + match calldata.get(0..4).map(|sel| sel.try_into().expect("correct slice length")) { + Some(commitBatchCall::SELECTOR) => { + commitBatchCall::abi_decode(calldata, true).map(Into::into).ok() + } + Some(commitBatchWithBlobProofCall::SELECTOR) => { + commitBatchWithBlobProofCall::abi_decode(calldata, true).map(Into::into).ok() + } + Some(_) | None => None, + } + } + + /// Returns the version for the commit call. + pub const fn version(&self) -> u8 { + match self { + Self::CommitBatch(b) => b.version, + Self::CommitBatchWithBlobProof(b) => b.version, + } + } + + /// Returns the parent batch header for the commit call. + pub fn parent_batch_header(&self) -> Vec { + let header = match self { + Self::CommitBatch(b) => &b.parentBatchHeader, + Self::CommitBatchWithBlobProof(b) => &b.parentBatchHeader, + }; + header.to_vec() + } + + /// Returns the chunks for the commit call if any, returns None otherwise. + pub fn chunks(&self) -> Option>> { + let chunks = match self { + Self::CommitBatch(b) => &b.chunks, + Self::CommitBatchWithBlobProof(b) => &b.chunks, + }; + Some(chunks.iter().map(|c| c.to_vec()).collect()) + } + + /// Returns the skipped L1 message bitmap for the commit call if any, returns None otherwise. + pub fn skipped_l1_message_bitmap(&self) -> Option> { + let bitmap = match self { + Self::CommitBatch(b) => &b.skippedL1MessageBitmap, + Self::CommitBatchWithBlobProof(b) => &b.skippedL1MessageBitmap, + }; + Some(bitmap.to_vec()) + } +} diff --git a/crates/l1/src/abi/logs.rs b/crates/l1/src/abi/logs.rs new file mode 100644 index 00000000..4befab5b --- /dev/null +++ b/crates/l1/src/abi/logs.rs @@ -0,0 +1,42 @@ +use alloy_primitives::Log; +use alloy_sol_types::{sol, SolEvent}; +use scroll_alloy_consensus::TxL1Message; + +sol! { + #[cfg_attr(feature = "test-utils", derive(arbitrary::Arbitrary))] + event QueueTransaction( + address indexed sender, + address indexed target, + uint256 value, + uint64 queueIndex, + uint256 gasLimit, + bytes data + ); + + #[cfg_attr(feature = "test-utils", derive(arbitrary::Arbitrary))] + #[derive(Debug)] + event CommitBatch(uint256 indexed batchIndex, bytes32 indexed batchHash); + + #[cfg_attr(feature = "test-utils", derive(arbitrary::Arbitrary))] + #[derive(Debug)] + event FinalizeBatch(uint256 indexed batchIndex, bytes32 indexed batchHash, bytes32 stateRoot, bytes32 withdrawRoot); + +} + +/// Tries to decode the provided log into the type T. +pub fn try_decode_log(log: &Log) -> Option> { + T::decode_log(log, true).ok() +} + +impl From for TxL1Message { + fn from(value: QueueTransaction) -> Self { + Self { + queue_index: value.queueIndex, + gas_limit: value.gasLimit.saturating_to(), + to: value.target, + value: value.value, + sender: value.sender, + input: value.data, + } + } +} diff --git a/crates/l1/src/abi/mod.rs b/crates/l1/src/abi/mod.rs new file mode 100644 index 00000000..c2d7bee6 --- /dev/null +++ b/crates/l1/src/abi/mod.rs @@ -0,0 +1,5 @@ +/// Calls related abi. +pub mod calls; + +/// Logs related abi. +pub mod logs; diff --git a/crates/l1/src/lib.rs b/crates/l1/src/lib.rs new file mode 100644 index 00000000..c5af0950 --- /dev/null +++ b/crates/l1/src/lib.rs @@ -0,0 +1,4 @@ +//! All L1 related primitives. + +/// L1 contracts Abi. +pub mod abi; diff --git a/crates/watcher/Cargo.toml b/crates/watcher/Cargo.toml index 7613a5a5..a77cde80 100644 --- a/crates/watcher/Cargo.toml +++ b/crates/watcher/Cargo.toml @@ -18,11 +18,12 @@ alloy-network.workspace = true alloy-primitives.workspace = true alloy-provider.workspace = true alloy-rpc-types-eth.workspace = true -alloy-sol-types = "0.8.20" +alloy-sol-types.workspace = true alloy-transport.workspace = true # rollup rollup-node-primitives.workspace = true +scroll-l1.workspace = true # scroll scroll-alloy-consensus.workspace = true @@ -43,6 +44,7 @@ alloy-rpc-types-eth = { workspace = true, features = ["arbitrary"] } arbitrary.workspace = true eyre.workspace = true rand = "0.9" +scroll-l1 = { workspace = true, features = ["test-utils"] } tracing-subscriber = "0.3" [features] @@ -53,6 +55,5 @@ arbitrary = [ "alloy-eips/arbitrary", "alloy-primitives/arbitrary", "alloy-rpc-types-eth/arbitrary", - "alloy-sol-types/arbitrary", "scroll-alloy-consensus/arbitrary", ] diff --git a/crates/watcher/src/constants.rs b/crates/watcher/src/constants.rs index 393fefe2..f444fba6 100644 --- a/crates/watcher/src/constants.rs +++ b/crates/watcher/src/constants.rs @@ -1,9 +1,9 @@ -use crate::contract::{CommitBatch, QueueTransaction}; use std::sync::LazyLock; use alloy_primitives::{address, Address}; use alloy_rpc_types_eth::Filter; use alloy_sol_types::SolEvent; +use scroll_l1::abi::logs::{CommitBatch, QueueTransaction}; /// The address of the Scroll Rollup contract on the L1. pub const ROLLUP_CONTRACT_ADDRESS: Address = address!("0xa13BAF47339d63B743e7Da8741db5456DAc1E556"); diff --git a/crates/watcher/src/contract.rs b/crates/watcher/src/contract.rs deleted file mode 100644 index f2ffd508..00000000 --- a/crates/watcher/src/contract.rs +++ /dev/null @@ -1,111 +0,0 @@ -use alloy_primitives::{Bytes, Log}; -use alloy_sol_types::{sol, SolCall, SolEvent}; -use scroll_alloy_consensus::TxL1Message; - -sol! { - // *********************EVENTS********************* - #[cfg_attr(test, derive(arbitrary::Arbitrary))] - event QueueTransaction( - address indexed sender, - address indexed target, - uint256 value, - uint64 queueIndex, - uint256 gasLimit, - bytes data - ); - - #[cfg_attr(test, derive(arbitrary::Arbitrary))] - #[derive(Debug)] - event CommitBatch(uint256 indexed batchIndex, bytes32 indexed batchHash); - - #[cfg_attr(test, derive(arbitrary::Arbitrary))] - #[derive(Debug)] - event FinalizeBatch(uint256 indexed batchIndex, bytes32 indexed batchHash, bytes32 stateRoot, bytes32 withdrawRoot); - - // *********************FUNCTION********************* - #[cfg_attr(test, derive(arbitrary::Arbitrary))] - function commitBatch( - uint8 version, - bytes calldata parentBatchHeader, - bytes[] memory chunks, - bytes calldata skippedL1MessageBitmap - ) external; - - function commitBatchWithBlobProof( - uint8 version, - bytes calldata parentBatchHeader, - bytes[] memory chunks, - bytes calldata skippedL1MessageBitmap, - bytes calldata blobDataProof - ) external; -} - -/// A call to commit a batch on the L1 Scroll Rollup contract. -#[derive(derive_more::From)] -pub(super) enum CommitBatchCall { - /// A plain call to commit the batch. - CommitBatch(commitBatchCall), - /// A call to commit the batch with a blob proof. - CommitBatchWithBlobProof(commitBatchWithBlobProofCall), -} - -impl CommitBatchCall { - pub(crate) const fn version(&self) -> u8 { - match self { - Self::CommitBatch(b) => b.version, - Self::CommitBatchWithBlobProof(b) => b.version, - } - } - pub(crate) fn parent_batch_header(&self) -> Vec { - let header = match self { - Self::CommitBatch(b) => &b.parentBatchHeader, - Self::CommitBatchWithBlobProof(b) => &b.parentBatchHeader, - }; - header.to_vec() - } - pub(crate) fn chunks(&self) -> Option>> { - let chunks = match self { - Self::CommitBatch(b) => &b.chunks, - Self::CommitBatchWithBlobProof(b) => &b.chunks, - }; - Some(chunks.iter().map(|c| c.to_vec()).collect()) - } - pub(crate) fn skipped_l1_message_bitmap(&self) -> Option> { - let bitmap = match self { - Self::CommitBatch(b) => &b.skippedL1MessageBitmap, - Self::CommitBatchWithBlobProof(b) => &b.skippedL1MessageBitmap, - }; - Some(bitmap.to_vec()) - } -} - -/// Tries to decode the provided log into the type T. -pub(super) fn try_decode_log(log: &Log) -> Option> { - T::decode_log(log, true).ok() -} - -/// Tries to decode the provided calldata and convert it to a [`CommitBatchCall`]. -pub(super) fn try_decode_commit_call(calldata: &Bytes) -> Option { - match calldata.get(0..4).map(|sel| sel.try_into().expect("correct slice length")) { - Some(commitBatchCall::SELECTOR) => { - commitBatchCall::abi_decode(calldata, true).map(Into::into).ok() - } - Some(commitBatchWithBlobProofCall::SELECTOR) => { - commitBatchWithBlobProofCall::abi_decode(calldata, true).map(Into::into).ok() - } - Some(_) | None => None, - } -} - -impl From for TxL1Message { - fn from(value: QueueTransaction) -> Self { - Self { - queue_index: value.queueIndex, - gas_limit: value.gasLimit.saturating_to(), - to: value.target, - value: value.value, - sender: value.sender, - input: value.data, - } - } -} diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index 7565e323..59571d28 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -4,7 +4,6 @@ pub use constants::{ L1_MESSAGE_QUEUE_CONTRACT_ADDRESS, L1_WATCHER_LOG_FILTER, ROLLUP_CONTRACT_ADDRESS, }; mod constants; -mod contract; pub use error::{EthRequestError, FilterLogError, L1WatcherError}; mod error; @@ -13,9 +12,6 @@ mod error; /// Common test helpers pub mod test_utils; -use crate::contract::{ - try_decode_commit_call, try_decode_log, CommitBatch, FinalizeBatch, QueueTransaction, -}; use std::{collections::VecDeque, sync::Arc, time::Duration}; use alloy_network::Ethereum; @@ -25,6 +21,10 @@ use alloy_rpc_types_eth::{BlockNumberOrTag, Log, TransactionTrait}; use error::L1WatcherResult; use rollup_node_primitives::{BatchInput, BatchInputBuilder, L1MessageWithBlockNumber}; use scroll_alloy_consensus::TxL1Message; +use scroll_l1::abi::{ + calls::CommitBatchCall, + logs::{try_decode_log, CommitBatch, FinalizeBatch, QueueTransaction}, +}; use tokio::sync::mpsc; /// The block range used to fetch L1 logs. @@ -312,7 +312,7 @@ where .ok_or(EthRequestError::MissingTransactionHash(tx_hash))?; // decode the transaction's input into a commit batch call. - let commit_info = try_decode_commit_call(transaction.inner.input()); + let commit_info = CommitBatchCall::try_decode(transaction.inner.input()); if let Some(info) = commit_info { let batch_index: u64 = decoded_log.batchIndex.saturating_to(); let block_number = @@ -472,12 +472,12 @@ where #[cfg(test)] mod tests { use super::*; - use crate::{contract::commitBatchCall, test_utils::arbitrary::ArbitraryTxBuilder}; - use crate::test_utils::provider::MockProvider; + use crate::test_utils::{arbitrary::ArbitraryTxBuilder, provider::MockProvider}; use alloy_consensus::TxType; use alloy_sol_types::{SolCall, SolEvent}; use arbitrary::Arbitrary; + use scroll_l1::abi::calls::commitBatchCall; // Returns a L1Watcher along with the receiver end of the L1Notifications. fn l1_watcher( From 8f8004261a7555d2a7f09d0be86b0849a15e9bca Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Wed, 12 Mar 2025 11:57:52 +0100 Subject: [PATCH 24/63] chore: remove ArbitraryTxBuilder --- crates/watcher/src/lib.rs | 23 +++++--- crates/watcher/src/test_utils/arbitrary.rs | 63 ---------------------- crates/watcher/tests/reorg.rs | 2 +- 3 files changed, 18 insertions(+), 70 deletions(-) diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index 59571d28..6ecd0d5f 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -473,8 +473,10 @@ where mod tests { use super::*; - use crate::test_utils::{arbitrary::ArbitraryTxBuilder, provider::MockProvider}; - use alloy_consensus::TxType; + use crate::test_utils::provider::MockProvider; + use alloy_consensus::{transaction::Recovered, Signed, TxEip1559}; + use alloy_primitives::Address; + use alloy_rpc_types_eth::Transaction; use alloy_sol_types::{SolCall, SolEvent}; use arbitrary::Arbitrary; use scroll_l1::abi::calls::commitBatchCall; @@ -754,10 +756,19 @@ mod tests { async fn test_handle_batch_commits() -> eyre::Result<()> { // Given let (finalized, latest, chain) = chain(10); - let tx = ArbitraryTxBuilder::default() - .with_ty(TxType::Eip1559) - .with_input(random!(commitBatchCall).abi_encode().into()) - .build(); + + // prepare the commit batch call transaction. + let mut inner = random!(Signed); + inner.tx_mut().input = random!(commitBatchCall).abi_encode().into(); + let recovered = Recovered::new_unchecked(inner.into(), random!(Address)); + let tx = Transaction { + inner: recovered, + block_hash: None, + block_number: None, + transaction_index: None, + effective_gas_price: None, + }; + let (watcher, mut receiver) = l1_watcher(chain, vec![], vec![tx.clone()], finalized.clone(), latest.clone()); diff --git a/crates/watcher/src/test_utils/arbitrary.rs b/crates/watcher/src/test_utils/arbitrary.rs index 8b180382..60a3d839 100644 --- a/crates/watcher/src/test_utils/arbitrary.rs +++ b/crates/watcher/src/test_utils/arbitrary.rs @@ -1,11 +1,3 @@ -use alloy_consensus::{ - transaction::Recovered, Signed, TxEip1559, TxEip2930, TxEip4844, TxEip4844Variant, TxEip7702, - TxEnvelope, TxLegacy, TxType, -}; -use alloy_primitives::Bytes; -use alloy_rpc_types_eth::Transaction; -use arbitrary::Arbitrary; - /// Returns an arbitrary instance of the passed type. #[macro_export] macro_rules! random { @@ -17,58 +9,3 @@ macro_rules! random { <$typ>::arbitrary(&mut u).unwrap() }}; } - -/// Helper instance to build an arbitrary transaction. -#[derive(Debug)] -pub struct ArbitraryTxBuilder { - tx: Transaction, -} - -impl Default for ArbitraryTxBuilder { - fn default() -> Self { - let recovered = random!(Recovered); - Self { - tx: Transaction { - inner: recovered, - block_hash: None, - block_number: None, - transaction_index: None, - effective_gas_price: None, - }, - } - } -} - -impl ArbitraryTxBuilder { - /// Modifies the type of the random transaction. - pub fn with_ty(mut self, ty: TxType) -> Self { - match ty { - TxType::Legacy => *self.tx.inner.inner_mut() = random!(Signed).into(), - TxType::Eip2930 => *self.tx.inner.inner_mut() = random!(Signed).into(), - TxType::Eip1559 => *self.tx.inner.inner_mut() = random!(Signed).into(), - TxType::Eip4844 => *self.tx.inner.inner_mut() = random!(Signed).into(), - TxType::Eip7702 => *self.tx.inner.inner_mut() = random!(Signed).into(), - } - self - } - - /// Modifies the input of the random transaction. - pub fn with_input(mut self, input: Bytes) -> Self { - match self.tx.inner.inner_mut() { - TxEnvelope::Legacy(ref mut tx) => tx.tx_mut().input = input, - TxEnvelope::Eip2930(ref mut tx) => tx.tx_mut().input = input, - TxEnvelope::Eip1559(ref mut tx) => tx.tx_mut().input = input, - TxEnvelope::Eip4844(ref mut tx) => match tx.tx_mut() { - TxEip4844Variant::TxEip4844(tx) => tx.input = input, - TxEip4844Variant::TxEip4844WithSidecar(tx) => tx.tx.input = input, - }, - TxEnvelope::Eip7702(ref mut tx) => tx.tx_mut().input = input, - } - self - } - - /// Returns the built transaction. - pub fn build(self) -> Transaction { - self.tx - } -} diff --git a/crates/watcher/tests/reorg.rs b/crates/watcher/tests/reorg.rs index 7f76c971..7994eeb3 100644 --- a/crates/watcher/tests/reorg.rs +++ b/crates/watcher/tests/reorg.rs @@ -11,7 +11,7 @@ use tracing::{subscriber::set_global_default, Level}; fn setup() { let sub = tracing_subscriber::FmtSubscriber::builder().with_max_level(Level::TRACE).finish(); - set_global_default(sub).expect("failed to set subscriber"); + let _ = set_global_default(sub); } // Generate a set blocks that will be fed to the l1 watcher. From d8c9d742a79c41066b26a8d0a5e77dabc02a6eef Mon Sep 17 00:00:00 2001 From: frisitano Date: Thu, 13 Mar 2025 14:30:34 +0700 Subject: [PATCH 25/63] init database --- Cargo.lock | 1209 ++++++++++++++++- Cargo.toml | 3 + crates/database/db/Cargo.toml | 35 + crates/database/db/src/db.rs | 130 ++ crates/database/db/src/lib.rs | 7 + crates/database/db/src/models/batch_input.rs | 148 ++ crates/database/db/src/models/l1_message.rs | 55 + crates/database/db/src/models/mod.rs | 5 + crates/database/migration/Cargo.toml | 24 + crates/database/migration/README.md | 41 + crates/database/migration/src/lib.rs | 16 + ...0220101_000001_create_batch_input_table.rs | 55 + .../src/m20250304_125946_add_l1_msg_table.rs | 41 + crates/database/migration/src/main.rs | 6 + crates/primitives/Cargo.toml | 4 + crates/primitives/src/batch.rs | 68 +- crates/primitives/src/transaction.rs | 19 +- 17 files changed, 1840 insertions(+), 26 deletions(-) create mode 100644 crates/database/db/Cargo.toml create mode 100644 crates/database/db/src/db.rs create mode 100644 crates/database/db/src/lib.rs create mode 100644 crates/database/db/src/models/batch_input.rs create mode 100644 crates/database/db/src/models/l1_message.rs create mode 100644 crates/database/db/src/models/mod.rs create mode 100644 crates/database/migration/Cargo.toml create mode 100644 crates/database/migration/README.md create mode 100644 crates/database/migration/src/lib.rs create mode 100644 crates/database/migration/src/m20220101_000001_create_batch_input_table.rs create mode 100644 crates/database/migration/src/m20250304_125946_add_l1_msg_table.rs create mode 100644 crates/database/migration/src/main.rs diff --git a/Cargo.lock b/Cargo.lock index 5754a7fb..f9f42951 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -52,6 +52,17 @@ dependencies = [ "subtle", ] +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom 0.2.15", + "once_cell", + "version_check", +] + [[package]] name = "ahash" version = "0.8.11" @@ -74,6 +85,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -706,7 +723,7 @@ checksum = "46ff7aa715eb2404cb87fa94390d2c5d5addd70d9617e20b2398ee6f48cb21f0" dependencies = [ "alloy-sol-macro-input", "const-hex", - "heck", + "heck 0.5.0", "indexmap 2.8.0", "proc-macro-error2", "proc-macro2", @@ -724,7 +741,7 @@ checksum = "6f105fa700140c0cc6e2c3377adef650c389ac57b8ead8318a2e6bd52f1ae841" dependencies = [ "const-hex", "dunce", - "heck", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.100", @@ -1090,6 +1107,39 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" +[[package]] +name = "async-attributes" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener 2.5.3", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + [[package]] name = "async-compression" version = "0.4.20" @@ -1106,6 +1156,65 @@ dependencies = [ "zstd-safe", ] +[[package]] +name = "async-executor" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "slab", +] + +[[package]] +name = "async-global-executor" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" +dependencies = [ + "async-channel 2.3.1", + "async-executor", + "async-io", + "async-lock", + "blocking", + "futures-lite", + "once_cell", + "tokio", +] + +[[package]] +name = "async-io" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" +dependencies = [ + "async-lock", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix 0.38.44", + "slab", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "async-lock" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +dependencies = [ + "event-listener 5.4.0", + "event-listener-strategy", + "pin-project-lite", +] + [[package]] name = "async-recursion" version = "1.1.1" @@ -1117,6 +1226,33 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "async-std" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c634475f29802fde2b8f0b505b1bd00dfe4df7d4a000f0b36f7671197d5c3615" +dependencies = [ + "async-attributes", + "async-channel 1.9.0", + "async-global-executor", + "async-io", + "async-lock", + "crossbeam-utils", + "futures-channel", + "futures-core", + "futures-io", + "futures-lite", + "gloo-timers 0.3.0", + "kv-log-macro", + "log", + "memchr", + "once_cell", + "pin-project-lite", + "pin-utils", + "slab", + "wasm-bindgen-futures", +] + [[package]] name = "async-stream" version = "0.3.6" @@ -1139,6 +1275,12 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + [[package]] name = "async-trait" version = "0.1.87" @@ -1161,6 +1303,15 @@ dependencies = [ "rustc_version 0.4.1", ] +[[package]] +name = "atoi" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" +dependencies = [ + "num-traits", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -1261,6 +1412,20 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" +[[package]] +name = "bigdecimal" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f31f3af01c5c65a07985c804d3366560e6fa7883d640a122819b14ec327482c" +dependencies = [ + "autocfg", + "libm", + "num-bigint", + "num-integer", + "num-traits", + "serde", +] + [[package]] name = "bimap" version = "0.6.3" @@ -1393,6 +1558,19 @@ dependencies = [ "generic-array", ] +[[package]] +name = "blocking" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +dependencies = [ + "async-channel 2.3.1", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + [[package]] name = "blst" version = "0.3.14" @@ -1405,6 +1583,29 @@ dependencies = [ "zeroize", ] +[[package]] +name = "borsh" +version = "1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5430e3be710b68d984d1391c854eb431a9d548640711faa54eecb1df93db91cc" +dependencies = [ + "borsh-derive", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8b668d39970baad5356d7c83a86fee3a539e6f93bf6764c97368243e17a0487" +dependencies = [ + "once_cell", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "boyer-moore-magiclen" version = "0.2.20" @@ -1457,6 +1658,28 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "bytecount" version = "0.6.8" @@ -1661,7 +1884,7 @@ version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.100", @@ -1774,6 +1997,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "const-hex" version = "1.14.0" @@ -1939,6 +2171,15 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "crossbeam-queue" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.21" @@ -2158,6 +2399,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", + "pem-rfc7468", "zeroize", ] @@ -2332,7 +2574,7 @@ dependencies = [ "enr", "fnv", "futures", - "hashlink", + "hashlink 0.9.1", "hex", "hkdf", "lazy_static", @@ -2367,6 +2609,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + [[package]] name = "dunce" version = "1.0.5" @@ -2474,7 +2722,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.100", @@ -2516,6 +2764,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "etcetera" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +dependencies = [ + "cfg-if", + "home", + "windows-sys 0.48.0", +] + [[package]] name = "ethereum_hashing" version = "0.7.0" @@ -2567,6 +2826,33 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "event-listener" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" +dependencies = [ + "event-listener 5.4.0", + "pin-project-lite", +] + [[package]] name = "eyre" version = "0.6.12" @@ -2665,6 +2951,17 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "flume" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" +dependencies = [ + "futures-core", + "futures-sink", + "spin", +] + [[package]] name = "fnv" version = "1.0.7" @@ -2677,6 +2974,21 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -2743,12 +3055,36 @@ dependencies = [ "futures-util", ] +[[package]] +name = "futures-intrusive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" +dependencies = [ + "futures-core", + "lock_api", + "parking_lot", +] + [[package]] name = "futures-io" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +[[package]] +name = "futures-lite" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + [[package]] name = "futures-macro" version = "0.3.31" @@ -2778,7 +3114,7 @@ version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" dependencies = [ - "gloo-timers", + "gloo-timers 0.2.6", "send_wrapper 0.4.0", ] @@ -2911,6 +3247,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "gloo-utils" version = "0.2.0" @@ -2965,6 +3313,9 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.8", +] [[package]] name = "hashbrown" @@ -2978,7 +3329,7 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash", + "ahash 0.8.11", ] [[package]] @@ -3002,6 +3353,15 @@ dependencies = [ "hashbrown 0.14.5", ] +[[package]] +name = "hashlink" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" +dependencies = [ + "hashbrown 0.15.2", +] + [[package]] name = "hdrhistogram" version = "7.5.4" @@ -3012,6 +3372,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + [[package]] name = "heck" version = "0.5.0" @@ -3024,6 +3390,12 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + [[package]] name = "hex" version = "0.4.3" @@ -3130,12 +3502,21 @@ dependencies = [ ] [[package]] -name = "hostname" -version = "0.3.1" +name = "home" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" dependencies = [ - "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", "match_cfg", "winapi", ] @@ -3526,6 +3907,17 @@ version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" +[[package]] +name = "inherent" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c38228f24186d9cc68c729accb4d413be9eaed6ad07ff79e0270d9e56f3de13" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "inotify" version = "0.11.0" @@ -3791,7 +4183,7 @@ version = "0.24.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fcae0c6c159e11541080f1f829873d8f374f81eda0abc67695a13fc8dc1a580" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro-crate", "proc-macro2", "quote", @@ -3930,6 +4322,15 @@ dependencies = [ "libc", ] +[[package]] +name = "kv-log-macro" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +dependencies = [ + "log", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -3952,7 +4353,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]] @@ -4050,6 +4451,17 @@ dependencies = [ "libsecp256k1-core", ] +[[package]] +name = "libsqlite3-sys" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + [[package]] name = "linked-hash-map" version = "0.5.6" @@ -4100,6 +4512,9 @@ name = "log" version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" +dependencies = [ + "value-bag", +] [[package]] name = "loom" @@ -4162,6 +4577,16 @@ dependencies = [ "regex-automata 0.1.10", ] +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + [[package]] name = "memchr" version = "2.7.4" @@ -4183,7 +4608,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a7deb012b3b2767169ff203fadb4c6b0b82b947512e5eb9e0b78c2e186ad9e3" dependencies = [ - "ahash", + "ahash 0.8.11", "portable-atomic", ] @@ -4389,6 +4814,23 @@ dependencies = [ "unsigned-varint", ] +[[package]] +name = "native-tls" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework 2.11.1", + "security-framework-sys", + "tempfile", +] + [[package]] name = "nom" version = "7.1.3" @@ -4470,6 +4912,23 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + [[package]] name = "num-complex" version = "0.4.6" @@ -4532,7 +4991,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.9", "libc", ] @@ -4654,18 +5113,89 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "openssl" +version = "0.10.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" +dependencies = [ + "bitflags 2.9.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "openssl-probe" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" +[[package]] +name = "openssl-sys" +version = "0.9.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "option-ext" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +[[package]] +name = "ordered-float" +version = "3.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc" +dependencies = [ + "num-traits", +] + +[[package]] +name = "ouroboros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0f050db9c44b97a94723127e6be766ac5c340c48f2c4bb3ffa11713744be59" +dependencies = [ + "aliasable", + "ouroboros_macro", + "static_assertions", +] + +[[package]] +name = "ouroboros_macro" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c7028bdd3d43083f6d8d4d5187680d0d3560d54df4cc9d752005268b41e64d0" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "proc-macro2-diagnostics", + "quote", + "syn 2.0.100", +] + [[package]] name = "overload" version = "0.1.1" @@ -4724,6 +5254,12 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + [[package]] name = "parking_lot" version = "0.12.3" @@ -4773,6 +5309,15 @@ dependencies = [ "serde", ] +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -4790,6 +5335,15 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "pgvector" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0e8871b6d7ca78348c6cd29b911b94851f3429f0cd403130ca17f26c1fb91a6" +dependencies = [ + "serde", +] + [[package]] name = "pharos" version = "0.5.3" @@ -4832,6 +5386,28 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "piper" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + [[package]] name = "pkcs8" version = "0.10.2" @@ -4857,6 +5433,21 @@ dependencies = [ "crunchy", ] +[[package]] +name = "polling" +version = "3.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi 0.4.0", + "pin-project-lite", + "rustix 0.38.44", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "polyval" version = "0.6.2" @@ -4960,6 +5551,19 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "proc-macro2-diagnostics" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", + "version_check", + "yansi", +] + [[package]] name = "procfs" version = "0.17.0" @@ -5026,6 +5630,26 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "pulldown-cmark" version = "0.9.6" @@ -5333,6 +5957,15 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + [[package]] name = "reqwest" version = "0.12.13" @@ -5481,7 +6114,7 @@ name = "reth-cli-commands" version = "1.2.2" source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" dependencies = [ - "ahash", + "ahash 0.8.11", "alloy-consensus", "alloy-eips", "alloy-primitives", @@ -8245,6 +8878,35 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "rkyv" +version = "0.7.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "rlimit" version = "0.10.2" @@ -8332,6 +8994,7 @@ version = "0.0.1" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", + "arbitrary", "derive_more 2.0.1", "scroll-alloy-consensus", ] @@ -8369,6 +9032,26 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" +[[package]] +name = "rsa" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" +dependencies = [ + "const-oid", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "signature", + "spki", + "subtle", + "zeroize", +] + [[package]] name = "ruint" version = "1.13.1" @@ -8402,6 +9085,22 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" +[[package]] +name = "rust_decimal" +version = "1.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b082d80e3e3cc52b2ed634388d436fe1f4de6af5786cc2de9ba9737527bdf555" +dependencies = [ + "arrayvec", + "borsh", + "bytes", + "num-traits", + "rand 0.8.5", + "rkyv", + "serde", + "serde_json", +] + [[package]] name = "rustc-demangle" version = "0.1.24" @@ -8617,7 +9316,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "356285bbf17bea63d9e52e96bd18f039672ac92b55b8cb997d6162a2a37d1649" dependencies = [ - "ahash", + "ahash 0.8.11", "cfg-if", "hashbrown 0.13.2", ] @@ -8789,6 +9488,22 @@ dependencies = [ "tracing", ] +[[package]] +name = "scroll-db" +version = "0.0.1" +dependencies = [ + "alloy-primitives", + "arbitrary", + "rand 0.8.5", + "rollup-node-primitives", + "scroll-alloy-consensus", + "scroll-migration", + "sea-orm", + "serde", + "serde_json", + "tokio", +] + [[package]] name = "scroll-engine" version = "0.0.1" @@ -8826,8 +9541,16 @@ dependencies = [ ] [[package]] -name = "scroll-network" -version = "0.0.1" +name = "scroll-migration" +version = "0.1.0" +dependencies = [ + "async-std", + "sea-orm-migration", +] + +[[package]] +name = "scroll-network" +version = "0.0.1" dependencies = [ "alloy-primitives", "futures", @@ -8866,6 +9589,171 @@ dependencies = [ "tracing", ] +[[package]] +name = "sea-bae" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f694a6ab48f14bc063cfadff30ab551d3c7e46d8f81836c51989d548f44a2a25" +dependencies = [ + "heck 0.4.1", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "sea-orm" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3417812d38049e8ec3d588c03570f8c60de811d2453fb48e424045a1600ffd86" +dependencies = [ + "async-stream", + "async-trait", + "bigdecimal", + "chrono", + "futures-util", + "log", + "ouroboros", + "pgvector", + "rust_decimal", + "sea-orm-macros", + "sea-query", + "sea-query-binder", + "serde", + "serde_json", + "sqlx", + "strum 0.26.3", + "thiserror 1.0.69", + "time", + "tracing", + "url", + "uuid", +] + +[[package]] +name = "sea-orm-cli" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf2a390d6528f8e5c9ecd327bbb1a4c6cd7ab8333ef0da97010d5dc8f83f01c4" +dependencies = [ + "chrono", + "clap", + "dotenvy", + "glob", + "regex", + "sea-schema", + "tracing", + "tracing-subscriber", + "url", +] + +[[package]] +name = "sea-orm-macros" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d705ba84e1c74c8ac27784e4ac6f21584058c1dc0cadb9d39b43e109fcf8139c" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "sea-bae", + "syn 2.0.100", + "unicode-ident", +] + +[[package]] +name = "sea-orm-migration" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c38451d5112e3a518a02251b5e6d3bc72e626957a44a79264716808a4c28ee0" +dependencies = [ + "async-trait", + "clap", + "dotenvy", + "sea-orm", + "sea-orm-cli", + "sea-schema", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "sea-query" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b731192738ebf56d20580fc8ba2d23940333befe900b04dd08a26a77cd056f02" +dependencies = [ + "bigdecimal", + "chrono", + "inherent", + "ordered-float", + "rust_decimal", + "sea-query-derive", + "serde_json", + "time", + "uuid", +] + +[[package]] +name = "sea-query-binder" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0019f47430f7995af63deda77e238c17323359af241233ec768aba1faea7608" +dependencies = [ + "bigdecimal", + "chrono", + "rust_decimal", + "sea-query", + "serde_json", + "sqlx", + "time", + "uuid", +] + +[[package]] +name = "sea-query-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9834af2c4bd8c5162f00c89f1701fb6886119a88062cf76fe842ea9e232b9839" +dependencies = [ + "darling", + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 2.0.100", + "thiserror 1.0.69", +] + +[[package]] +name = "sea-schema" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ef5dd7848c993f3789d09a2616484c72c9330cae2b048df59d8c9b8c0343e95" +dependencies = [ + "futures", + "sea-query", + "sea-schema-derive", +] + +[[package]] +name = "sea-schema-derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "debdc8729c37fdbf88472f97fd470393089f997a909e535ff67c544d18cfccf0" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + [[package]] name = "sec1" version = "0.7.3" @@ -9201,6 +10089,12 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + [[package]] name = "simple_asn1" version = "0.6.3" @@ -9290,6 +10184,9 @@ name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] [[package]] name = "spki" @@ -9301,6 +10198,213 @@ dependencies = [ "der", ] +[[package]] +name = "sqlx" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f" +dependencies = [ + "sqlx-core", + "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", +] + +[[package]] +name = "sqlx-core" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0" +dependencies = [ + "bigdecimal", + "bytes", + "chrono", + "crc", + "crossbeam-queue", + "either", + "event-listener 5.4.0", + "futures-core", + "futures-intrusive", + "futures-io", + "futures-util", + "hashbrown 0.15.2", + "hashlink 0.10.0", + "indexmap 2.8.0", + "log", + "memchr", + "native-tls", + "once_cell", + "percent-encoding", + "rust_decimal", + "serde", + "serde_json", + "sha2 0.10.8", + "smallvec", + "thiserror 2.0.12", + "time", + "tokio", + "tokio-stream", + "tracing", + "url", + "uuid", +] + +[[package]] +name = "sqlx-macros" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310" +dependencies = [ + "proc-macro2", + "quote", + "sqlx-core", + "sqlx-macros-core", + "syn 2.0.100", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad" +dependencies = [ + "dotenvy", + "either", + "heck 0.5.0", + "hex", + "once_cell", + "proc-macro2", + "quote", + "serde", + "serde_json", + "sha2 0.10.8", + "sqlx-core", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", + "syn 2.0.100", + "tempfile", + "tokio", + "url", +] + +[[package]] +name = "sqlx-mysql" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4560278f0e00ce64938540546f59f590d60beee33fffbd3b9cd47851e5fff233" +dependencies = [ + "atoi", + "base64 0.22.1", + "bigdecimal", + "bitflags 2.9.0", + "byteorder", + "bytes", + "chrono", + "crc", + "digest 0.10.7", + "dotenvy", + "either", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "generic-array", + "hex", + "hkdf", + "hmac 0.12.1", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "percent-encoding", + "rand 0.8.5", + "rsa", + "rust_decimal", + "serde", + "sha1", + "sha2 0.10.8", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror 2.0.12", + "time", + "tracing", + "uuid", + "whoami", +] + +[[package]] +name = "sqlx-postgres" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613" +dependencies = [ + "atoi", + "base64 0.22.1", + "bigdecimal", + "bitflags 2.9.0", + "byteorder", + "chrono", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-util", + "hex", + "hkdf", + "hmac 0.12.1", + "home", + "itoa", + "log", + "md-5", + "memchr", + "num-bigint", + "once_cell", + "rand 0.8.5", + "rust_decimal", + "serde", + "serde_json", + "sha2 0.10.8", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror 2.0.12", + "time", + "tracing", + "uuid", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540" +dependencies = [ + "atoi", + "chrono", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "serde_urlencoded", + "sqlx-core", + "time", + "tracing", + "url", + "uuid", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -9313,6 +10417,17 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + [[package]] name = "strsim" version = "0.11.1" @@ -9343,7 +10458,7 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "rustversion", @@ -9356,7 +10471,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "rustversion", @@ -10030,12 +11145,33 @@ version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" +[[package]] +name = "unicode-bidi" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" + [[package]] name = "unicode-ident" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" + [[package]] name = "unicode-segmentation" version = "1.12.0" @@ -10136,6 +11272,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587" dependencies = [ "getrandom 0.3.1", + "serde", ] [[package]] @@ -10144,6 +11281,18 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" +[[package]] +name = "value-bag" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "vergen" version = "8.3.2" @@ -10218,6 +11367,12 @@ dependencies = [ "wit-bindgen-rt", ] +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + [[package]] name = "wasm-bindgen" version = "0.2.100" @@ -10332,6 +11487,16 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "whoami" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" +dependencies = [ + "redox_syscall", + "wasite", +] + [[package]] name = "widestring" version = "1.1.0" @@ -10360,7 +11525,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 025f9c34..271b88aa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,8 @@ exclude = [".github/"] [workspace] members = [ "bin/bridge", + "crates/database/db", + "crates/database/migration", "crates/engine", "crates/l1", "crates/node", @@ -149,6 +151,7 @@ scroll-engine = { path = "crates/engine" } scroll-l1 = { path = "crates/l1" } scroll-network = { path = "crates/network" } scroll-wire = { path = "crates/scroll-wire" } +scroll-migration = { path = "crates/database/migration" } # misc arbitrary = "1.4" diff --git a/crates/database/db/Cargo.toml b/crates/database/db/Cargo.toml new file mode 100644 index 00000000..46440410 --- /dev/null +++ b/crates/database/db/Cargo.toml @@ -0,0 +1,35 @@ +[package] +name = "scroll-db" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +exclude.workspace = true + +[dependencies] +# alloy +alloy-primitives.workspace = true + +# scroll-alloy +scroll-alloy-consensus.workspace = true + +# scroll +rollup-node-primitives.workspace = true + +# misc +sea-orm = { version = "1.1.0", features = ["sqlx-sqlite", "runtime-tokio-native-tls", "macros"] } +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" +tokio = { workspace = true, features = ["macros", "sync"] } + +[dev-dependencies] +# scroll +scroll-migration.workspace = true +rollup-node-primitives = { workspace = true, features = ["arbitrary"] } + +# misc +arbitrary = { workspace = true } +rand = { version = "0.8", features = ["std"] } + +[lints] +workspace = true diff --git a/crates/database/db/src/db.rs b/crates/database/db/src/db.rs new file mode 100644 index 00000000..e840298b --- /dev/null +++ b/crates/database/db/src/db.rs @@ -0,0 +1,130 @@ +use super::models; +use rollup_node_primitives::{BatchInput, L1MessageWithBlockNumber}; +use sea_orm::{ + ActiveModelTrait, Database as SeaOrmDatabase, DatabaseConnection, DbErr, EntityTrait, +}; + +/// The [`Database`] struct is responsible for interacting with the database. +#[derive(Debug)] +pub struct Database { + connection: DatabaseConnection, +} + +impl Database { + /// Creates a new [`Database`] instance associated with the provided database URL. + pub async fn new(database_url: &str) -> Result { + let connection = SeaOrmDatabase::connect(database_url).await?; + Ok(Self { connection }) + } + + /// Insert a [`BatchInput`] into the database. + pub async fn insert_batch_input( + &self, + batch_input: BatchInput, + ) -> Result { + let batch_input: models::batch_input::ActiveModel = batch_input.into(); + batch_input.insert(&self.connection).await + } + + /// Get a [`BatchInput`] from the database by its batch index. + pub async fn get_batch_input_by_batch_index( + &self, + batch_index: u64, + ) -> Result, DbErr> { + models::batch_input::Entity::find_by_id( + TryInto::::try_into(batch_index).expect("index should fit in i64"), + ) + .one(&self.connection) + .await + .map(|x| x.map(Into::into)) + } + + /// Insert an [`L1MessageWithBlockNumber`] into the database. + pub async fn insert_l1_message( + &self, + l1_message: L1MessageWithBlockNumber, + ) -> Result<(), DbErr> { + let l1_message: models::l1_message::ActiveModel = l1_message.into(); + l1_message.insert(&self.connection).await?; + Ok(()) + } + + /// Get a [`L1MessageWithBlockNumber`] from the database by its message queue index. + pub async fn get_l1_message( + &self, + queue_index: u64, + ) -> Result, DbErr> { + models::l1_message::Entity::find_by_id(queue_index as i64) + .one(&self.connection) + .await + .map(|x| x.map(Into::into)) + } +} + +#[cfg(test)] +mod test { + use super::*; + use arbitrary::{Arbitrary, Unstructured}; + use migration::{Migrator, MigratorTrait}; + use rand::Rng; + use rollup_node_primitives::{BatchInputV1, BatchInputV2}; + + async fn setup_test_db() -> Database { + let database_url = "sqlite::memory:"; + let connection = sea_orm::Database::connect(database_url).await.unwrap(); + Migrator::up(&connection, None).await.unwrap(); + let db = Database { connection }; + db + } + + #[tokio::test] + async fn test_database_round_trip_batch_input() { + // Set up the test database. + let db = setup_test_db().await; + + // Generate unstructured bytes. + let mut bytes = [0u8; 1024]; + rand::thread_rng().fill(bytes.as_mut_slice()); + let mut u = Unstructured::new(&bytes); + + // Generate a random BatchInputV1. + let batch_input_v1 = BatchInputV1::arbitrary(&mut u).unwrap(); + let batch_input = BatchInput::BatchInputDataV1(batch_input_v1); + + // Round trip the BatchInput through the database. + db.insert_batch_input(batch_input.clone()).await.unwrap(); + let batch_input_from_db = + db.get_batch_input_by_batch_index(batch_input.batch_index()).await.unwrap().unwrap(); + assert_eq!(batch_input, batch_input_from_db); + + // Generate a random BatchInputV2. + let batch_input_v2 = BatchInputV2::arbitrary(&mut u).unwrap(); + let batch_input = BatchInput::BatchInputDataV2(batch_input_v2); + + // Round trip the BatchInput through the database. + db.insert_batch_input(batch_input.clone()).await.unwrap(); + let batch_input_from_db = + db.get_batch_input_by_batch_index(batch_input.batch_index()).await.unwrap().unwrap(); + assert_eq!(batch_input, batch_input_from_db); + } + + #[tokio::test] + async fn test_database_round_trip_l1_message() { + // Set up the test database. + let db = setup_test_db().await; + + // Generate unstructured bytes. + let mut bytes = [0u8; 1024]; + rand::thread_rng().fill(bytes.as_mut_slice()); + let mut u = Unstructured::new(&bytes); + + // Generate a random L1MessageWithBlockNumber. + let l1_message = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); + + // Round trip the L1MessageWithBlockNumber through the database. + db.insert_l1_message(l1_message.clone()).await.unwrap(); + let l1_message_from_db = + db.get_l1_message(l1_message.transaction.queue_index).await.unwrap().unwrap(); + assert_eq!(l1_message, l1_message_from_db); + } +} diff --git a/crates/database/db/src/lib.rs b/crates/database/db/src/lib.rs new file mode 100644 index 00000000..56bfbfe3 --- /dev/null +++ b/crates/database/db/src/lib.rs @@ -0,0 +1,7 @@ +//! A library responsible for interacting with the database. + +mod models; +pub use models::*; + +mod db; +pub use db::Database; diff --git a/crates/database/db/src/models/batch_input.rs b/crates/database/db/src/models/batch_input.rs new file mode 100644 index 00000000..266677a8 --- /dev/null +++ b/crates/database/db/src/models/batch_input.rs @@ -0,0 +1,148 @@ +use std::ops::Deref; + +use rollup_node_primitives::{BatchInput as BatchInputPrimitive, BatchInputV1, BatchInputV2}; +use sea_orm::{entity::prelude::*, ActiveValue, FromJsonQueryResult}; + +/// A database model that represents a batch input. +#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)] +#[sea_orm(table_name = "batch_input")] +pub struct Model { + #[sea_orm(primary_key)] + index: i64, + version: u8, + codec_version: u8, + hash: Vec, + block_number: i64, + parent_batch_header: Vec, + #[sea_orm(column_type = "JsonBinary")] + chunks: Chunks, + skipped_l1_message_bitmap: Vec, + blob_hash: Vec, +} + +/// The relation for the batch input model. +#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] +pub enum Relation {} + +/// The active model behavior for the batch input model. +impl ActiveModelBehavior for ActiveModel {} + +/// A wrapper for a list of chunks. +#[derive( + Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize, FromJsonQueryResult, +)] +pub struct Chunks(pub Vec>); + +impl Deref for Chunks { + type Target = Vec>; + + fn deref(&self) -> &Self::Target { + &self.0 + } +} + +impl From for ActiveModel { + fn from(batch_input: BatchInputPrimitive) -> Self { + match batch_input { + BatchInputPrimitive::BatchInputDataV1(batch_input) => Self { + index: ActiveValue::Set( + batch_input.batch_index.try_into().expect("index should fit in i64"), + ), + version: ActiveValue::Set(1), + codec_version: ActiveValue::Set(batch_input.version as u8), + hash: ActiveValue::Set(batch_input.batch_hash.to_vec()), + block_number: ActiveValue::Set( + batch_input.block_number.try_into().expect("block number should fit in i64"), + ), + parent_batch_header: ActiveValue::Set(batch_input.parent_batch_header), + chunks: ActiveValue::Set(Chunks(batch_input.chunks)), + skipped_l1_message_bitmap: ActiveValue::Set(batch_input.skipped_l1_message_bitmap), + blob_hash: ActiveValue::Set(vec![]), + }, + BatchInputPrimitive::BatchInputDataV2(batch_input) => Self { + index: ActiveValue::Set( + batch_input + .batch_input_data + .batch_index + .try_into() + .expect("index should fit in i64"), + ), + version: ActiveValue::Set(2), + codec_version: ActiveValue::Set(batch_input.batch_input_data.version as u8), + hash: ActiveValue::Set(batch_input.batch_input_data.batch_hash.to_vec()), + block_number: ActiveValue::Set( + batch_input + .batch_input_data + .block_number + .try_into() + .expect("block number should fit in i64"), + ), + parent_batch_header: ActiveValue::Set( + batch_input.batch_input_data.parent_batch_header, + ), + chunks: ActiveValue::Set(Chunks(batch_input.batch_input_data.chunks)), + skipped_l1_message_bitmap: ActiveValue::Set( + batch_input.batch_input_data.skipped_l1_message_bitmap, + ), + blob_hash: ActiveValue::Set(batch_input.blob_hash.to_vec()), + }, + } + } +} + +impl From for BatchInputPrimitive { + fn from(value: Model) -> Self { + let chunks = value.chunks.0; + if value.version == 1 { + BatchInputPrimitive::BatchInputDataV1(BatchInputV1 { + batch_index: value.index.try_into().expect("data persisted in database is valid"), + version: value + .codec_version + .try_into() + .expect("data persisted in database is valid"), + batch_hash: value + .hash + .as_slice() + .try_into() + .expect("data persisted in database is valid"), + block_number: value + .block_number + .try_into() + .expect("data persisted in database is valid"), + parent_batch_header: value.parent_batch_header, + chunks, + skipped_l1_message_bitmap: value.skipped_l1_message_bitmap, + }) + } else { + BatchInputPrimitive::BatchInputDataV2(BatchInputV2 { + batch_input_data: BatchInputV1 { + batch_index: value + .index + .try_into() + .expect("data persisted in database is valid"), + version: value + .codec_version + .try_into() + .expect("data persisted in database is valid"), + batch_hash: value + .hash + .as_slice() + .try_into() + .expect("data persisted in database is valid"), + block_number: value + .block_number + .try_into() + .expect("data persisted in database is valid"), + parent_batch_header: value.parent_batch_header, + chunks, + skipped_l1_message_bitmap: value.skipped_l1_message_bitmap, + }, + blob_hash: value + .blob_hash + .as_slice() + .try_into() + .expect("data persisted in database is valid"), + }) + } + } +} diff --git a/crates/database/db/src/models/l1_message.rs b/crates/database/db/src/models/l1_message.rs new file mode 100644 index 00000000..5d959b74 --- /dev/null +++ b/crates/database/db/src/models/l1_message.rs @@ -0,0 +1,55 @@ +use alloy_primitives::{Address, U256}; +use rollup_node_primitives::L1MessageWithBlockNumber; +use scroll_alloy_consensus::TxL1Message; +use sea_orm::{entity::prelude::*, ActiveValue}; + +/// A database model that represents a L1 message. +#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)] +#[sea_orm(table_name = "l1_message")] +pub struct Model { + #[sea_orm(primary_key)] + queue_index: i64, + block_number: i64, + gas_limit: String, + to: Vec, + value: Vec, + sender: Vec, + input: Vec, +} + +/// The relation for the L1 message model. +#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] +pub enum Relation {} + +/// The active model behavior for the L1 message model. +impl ActiveModelBehavior for ActiveModel {} + +impl From for ActiveModel { + fn from(value: L1MessageWithBlockNumber) -> Self { + Self { + queue_index: ActiveValue::Set(value.transaction.queue_index as i64), + block_number: ActiveValue::Set(value.block_number as i64), + gas_limit: ActiveValue::Set(value.transaction.gas_limit.to_string()), + to: ActiveValue::Set(value.transaction.to.to_vec()), + value: ActiveValue::Set(value.transaction.value.to_le_bytes_vec()), + sender: ActiveValue::Set(value.transaction.sender.to_vec()), + input: ActiveValue::Set(value.transaction.input.to_vec()), + } + } +} + +impl From for L1MessageWithBlockNumber { + fn from(value: Model) -> Self { + Self { + block_number: value.block_number as u64, + transaction: TxL1Message { + queue_index: value.queue_index as u64, + gas_limit: value.gas_limit.parse().expect("gas limit is valid"), + to: Address::from_slice(&value.to), + value: U256::from_le_slice(&value.value), + sender: Address::from_slice(&value.sender), + input: value.input.into(), + }, + } + } +} diff --git a/crates/database/db/src/models/mod.rs b/crates/database/db/src/models/mod.rs new file mode 100644 index 00000000..97eb8b6d --- /dev/null +++ b/crates/database/db/src/models/mod.rs @@ -0,0 +1,5 @@ +/// This module contains the batch input database model. +pub mod batch_input; + +/// This module contains the L1 message database model. +pub mod l1_message; diff --git a/crates/database/migration/Cargo.toml b/crates/database/migration/Cargo.toml new file mode 100644 index 00000000..84a35158 --- /dev/null +++ b/crates/database/migration/Cargo.toml @@ -0,0 +1,24 @@ +[package] +name = "scroll-migration" +version = "0.1.0" +edition = "2021" +publish = false + +[lib] +name = "migration" +path = "src/lib.rs" + +[dependencies] +async-std = { version = "1", features = ["attributes", "tokio1"] } + +[dependencies.sea-orm-migration] +version = "1.1.0" +features = [ + # Enable at least one `ASYNC_RUNTIME` and `DATABASE_DRIVER` feature if you want to run migration via CLI. + # View the list of supported features at https://www.sea-ql.org/SeaORM/docs/install-and-config/database-and-async-runtime. + # e.g. + # "runtime-tokio-rustls", # `ASYNC_RUNTIME` feature + # "sqlx-postgres", # `DATABASE_DRIVER` feature + "runtime-tokio-native-tls", + "sqlx-sqlite", +] diff --git a/crates/database/migration/README.md b/crates/database/migration/README.md new file mode 100644 index 00000000..3b438d89 --- /dev/null +++ b/crates/database/migration/README.md @@ -0,0 +1,41 @@ +# Running Migrator CLI + +- Generate a new migration file + ```sh + cargo run -- generate MIGRATION_NAME + ``` +- Apply all pending migrations + ```sh + cargo run + ``` + ```sh + cargo run -- up + ``` +- Apply first 10 pending migrations + ```sh + cargo run -- up -n 10 + ``` +- Rollback last applied migrations + ```sh + cargo run -- down + ``` +- Rollback last 10 applied migrations + ```sh + cargo run -- down -n 10 + ``` +- Drop all tables from the database, then reapply all migrations + ```sh + cargo run -- fresh + ``` +- Rollback all applied migrations, then reapply all migrations + ```sh + cargo run -- refresh + ``` +- Rollback all applied migrations + ```sh + cargo run -- reset + ``` +- Check the status of all migrations + ```sh + cargo run -- status + ``` diff --git a/crates/database/migration/src/lib.rs b/crates/database/migration/src/lib.rs new file mode 100644 index 00000000..4485aaf2 --- /dev/null +++ b/crates/database/migration/src/lib.rs @@ -0,0 +1,16 @@ +pub use sea_orm_migration::prelude::*; + +mod m20220101_000001_create_batch_input_table; +mod m20250304_125946_add_l1_msg_table; + +pub struct Migrator; + +#[async_trait::async_trait] +impl MigratorTrait for Migrator { + fn migrations() -> Vec> { + vec![ + Box::new(m20220101_000001_create_batch_input_table::Migration), + Box::new(m20250304_125946_add_l1_msg_table::Migration), + ] + } +} diff --git a/crates/database/migration/src/m20220101_000001_create_batch_input_table.rs b/crates/database/migration/src/m20220101_000001_create_batch_input_table.rs new file mode 100644 index 00000000..bc12df20 --- /dev/null +++ b/crates/database/migration/src/m20220101_000001_create_batch_input_table.rs @@ -0,0 +1,55 @@ +use sea_orm_migration::{prelude::*, schema::*}; + +// TODO: migrate these to a constants module +// CONSTANTS +const BATCH_HEADER_LENGTH: u32 = 32; + +const CHUNKS_LENGTH: u32 = 1024; + +const HASH_LENGTH: u32 = 32; + +#[derive(DeriveMigrationName)] +pub struct Migration; + +#[async_trait::async_trait] +impl MigrationTrait for Migration { + async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager + .create_table( + Table::create() + .table(BatchInput::Table) + .if_not_exists() + .col(pk_auto(BatchInput::Index)) + .col(tiny_integer(BatchInput::Version)) + .col(tiny_integer(BatchInput::CodecVersion)) + .col(binary_len(BatchInput::Hash, HASH_LENGTH)) + .col(big_unsigned(BatchInput::BlockNumber)) + .col(binary_len(BatchInput::ParentBatchHeader, BATCH_HEADER_LENGTH)) + .col(var_binary(BatchInput::Chunks, CHUNKS_LENGTH)) + .col(var_binary(BatchInput::SkippedL1MessageBitmap, HASH_LENGTH)) + // TODO: Set the blob hash as nullable + .col(binary_len(BatchInput::BlobHash, HASH_LENGTH)) + .to_owned(), + ) + .await + } + + async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.drop_table(Table::drop().table(BatchInput::Table).to_owned()).await + } +} + +#[derive(DeriveIden)] +enum BatchInput { + Table, + Version, + Index, + CodecVersion, + Hash, + BlockNumber, + ParentBatchHeader, + Chunks, + SkippedL1MessageBitmap, + BlobHash, + // TODO: Do we need the blob proof? +} diff --git a/crates/database/migration/src/m20250304_125946_add_l1_msg_table.rs b/crates/database/migration/src/m20250304_125946_add_l1_msg_table.rs new file mode 100644 index 00000000..81e76a17 --- /dev/null +++ b/crates/database/migration/src/m20250304_125946_add_l1_msg_table.rs @@ -0,0 +1,41 @@ +use sea_orm_migration::{prelude::*, schema::*}; + +#[derive(DeriveMigrationName)] +pub struct Migration; + +#[async_trait::async_trait] +impl MigrationTrait for Migration { + async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager + .create_table( + Table::create() + .table(L1Message::Table) + .if_not_exists() + .col(pk_auto(L1Message::QueueIndex)) + .col(unsigned(L1Message::BlockNumber)) + .col(text(L1Message::GasLimit)) + .col(binary_len(L1Message::To, 20)) + .col(binary_len(L1Message::Value, 32)) + .col(binary_len(L1Message::Sender, 20)) + .col(var_binary(L1Message::Input, 1024)) + .to_owned(), + ) + .await + } + + async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.drop_table(Table::drop().table(L1Message::Table).to_owned()).await + } +} + +#[derive(DeriveIden)] +enum L1Message { + Table, + QueueIndex, + BlockNumber, + GasLimit, + To, + Value, + Sender, + Input, +} diff --git a/crates/database/migration/src/main.rs b/crates/database/migration/src/main.rs new file mode 100644 index 00000000..c6b6e48d --- /dev/null +++ b/crates/database/migration/src/main.rs @@ -0,0 +1,6 @@ +use sea_orm_migration::prelude::*; + +#[async_std::main] +async fn main() { + cli::run_cli(migration::Migrator).await; +} diff --git a/crates/primitives/Cargo.toml b/crates/primitives/Cargo.toml index 313a0a11..86d5fec7 100644 --- a/crates/primitives/Cargo.toml +++ b/crates/primitives/Cargo.toml @@ -18,4 +18,8 @@ alloy-rpc-types-engine.workspace = true scroll-alloy-consensus.workspace = true # misc +arbitrary = { workspace = true, optional = true } derive_more = { workspace = true, features = ["from"] } + +[features] +arbitrary = ["dep:arbitrary"] \ No newline at end of file diff --git a/crates/primitives/src/batch.rs b/crates/primitives/src/batch.rs index 1ce98142..f6f02eaf 100644 --- a/crates/primitives/src/batch.rs +++ b/crates/primitives/src/batch.rs @@ -4,7 +4,7 @@ use alloy_primitives::{BlockNumber, B256}; /// /// This is used as input for the derivation pipeline. All data remains in its raw serialized form. /// The data is then deserialized, enriched and processed in the derivation pipeline. -#[derive(Debug, PartialEq, Eq, derive_more::From)] +#[derive(Debug, Clone, PartialEq, Eq, derive_more::From)] pub enum BatchInput { /// The input data for a batch. BatchInputDataV1(BatchInputV1), @@ -12,8 +12,26 @@ pub enum BatchInput { BatchInputDataV2(BatchInputV2), } +impl BatchInput { + /// Returns the coded (protocol) version of the batch input. + pub fn version(&self) -> u8 { + match self { + BatchInput::BatchInputDataV1(data) => data.version, + BatchInput::BatchInputDataV2(data) => data.batch_input_data.version, + } + } + + /// Returns the index of the batch. + pub fn batch_index(&self) -> u64 { + match self { + BatchInput::BatchInputDataV1(data) => data.batch_index, + BatchInput::BatchInputDataV2(data) => data.batch_input_data.batch_index, + } + } +} + /// The input data for a batch. -#[derive(Debug, PartialEq, Eq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct BatchInputV1 { /// The version of the batch input data. pub version: u8, @@ -32,7 +50,7 @@ pub struct BatchInputV1 { } /// The input data for a batch including the L1 blob hash. -#[derive(Debug, PartialEq, Eq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct BatchInputV2 { /// The base input data for the batch. pub batch_input_data: BatchInputV1, @@ -146,3 +164,47 @@ impl BatchInputBuilder { } } } + +#[cfg(feature = "arbitrary")] +mod arbitrary_impl { + use super::*; + + impl arbitrary::Arbitrary<'_> for BatchInput { + fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result { + let version = u.arbitrary::()? % 8; + match version { + 0 => Ok(BatchInput::BatchInputDataV1(u.arbitrary()?)), + 1 => Ok(BatchInput::BatchInputDataV2(u.arbitrary()?)), + _ => unreachable!(), + } + } + } + + impl arbitrary::Arbitrary<'_> for BatchInputV1 { + fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result { + let version = 0; + let batch_index = u.arbitrary::()? as u64; + let batch_hash = u.arbitrary::()?; + let block_number = u.arbitrary::()? as u64; + let parent_batch_header = u.arbitrary::>()?; + let chunks = u.arbitrary::>>()?; + let skipped_l1_message_bitmap = u.arbitrary::>()?; + + Ok(BatchInputV1 { + version, + batch_index, + batch_hash, + block_number, + parent_batch_header, + chunks, + skipped_l1_message_bitmap, + }) + } + } + + impl arbitrary::Arbitrary<'_> for BatchInputV2 { + fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result { + Ok(BatchInputV2 { batch_input_data: u.arbitrary()?, blob_hash: u.arbitrary()? }) + } + } +} diff --git a/crates/primitives/src/transaction.rs b/crates/primitives/src/transaction.rs index 9a0c2cef..33831f4b 100644 --- a/crates/primitives/src/transaction.rs +++ b/crates/primitives/src/transaction.rs @@ -1,7 +1,7 @@ use scroll_alloy_consensus::TxL1Message; /// A L1 message that is part of the L1 message queue. -#[derive(Debug, PartialEq, Eq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct L1MessageWithBlockNumber { /// The L1 block number at which the L1 message was generated. pub block_number: u64, @@ -15,3 +15,20 @@ impl L1MessageWithBlockNumber { Self { block_number, transaction } } } + +#[cfg(feature = "arbitrary")] +impl arbitrary::Arbitrary<'_> for L1MessageWithBlockNumber { + fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result { + Ok(Self { + block_number: u.arbitrary::()? as u64, + transaction: TxL1Message { + queue_index: u.arbitrary::()? as u64, + gas_limit: u.arbitrary()?, + to: u.arbitrary()?, + value: u.arbitrary()?, + sender: u.arbitrary()?, + input: u.arbitrary()?, + }, + }) + } +} From 1f820cb43eeb7478708f87e784bc8a9209bf5ba0 Mon Sep 17 00:00:00 2001 From: frisitano Date: Thu, 13 Mar 2025 14:53:17 +0700 Subject: [PATCH 26/63] add database iterator --- Cargo.lock | 4 +- Cargo.toml | 1 + crates/database/db/Cargo.toml | 14 +++- crates/database/db/src/db.rs | 119 ++++++++++++++++++++------- crates/database/db/src/iterator.rs | 40 +++++++++ crates/database/db/src/lib.rs | 6 ++ crates/database/db/src/test_utils.rs | 14 ++++ crates/watcher/Cargo.toml | 4 +- 8 files changed, 166 insertions(+), 36 deletions(-) create mode 100644 crates/database/db/src/iterator.rs create mode 100644 crates/database/db/src/test_utils.rs diff --git a/Cargo.lock b/Cargo.lock index f9f42951..1cd585ee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9494,7 +9494,9 @@ version = "0.0.1" dependencies = [ "alloy-primitives", "arbitrary", - "rand 0.8.5", + "async-trait", + "futures", + "rand 0.9.0", "rollup-node-primitives", "scroll-alloy-consensus", "scroll-migration", diff --git a/Cargo.toml b/Cargo.toml index 271b88aa..77c7e1ad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -159,6 +159,7 @@ async-trait = "0.1" derive_more = "2.0" eyre = "0.6" futures = { version = "0.3", default-features = false } +rand = { version = "0.9" } secp256k1 = { version = "0.29", default-features = false } thiserror = "2.0" tokio = { version = "1.39", default-features = false } diff --git a/crates/database/db/Cargo.toml b/crates/database/db/Cargo.toml index 46440410..140de1d0 100644 --- a/crates/database/db/Cargo.toml +++ b/crates/database/db/Cargo.toml @@ -6,6 +6,9 @@ rust-version.workspace = true license.workspace = true exclude.workspace = true +[lints] +workspace = true + [dependencies] # alloy alloy-primitives.workspace = true @@ -14,9 +17,12 @@ alloy-primitives.workspace = true scroll-alloy-consensus.workspace = true # scroll +scroll-migration = { workspace = true, optional = true } rollup-node-primitives.workspace = true # misc +async-trait.workspace = true +futures.workspace = true sea-orm = { version = "1.1.0", features = ["sqlx-sqlite", "runtime-tokio-native-tls", "macros"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" @@ -28,8 +34,8 @@ scroll-migration.workspace = true rollup-node-primitives = { workspace = true, features = ["arbitrary"] } # misc -arbitrary = { workspace = true } -rand = { version = "0.8", features = ["std"] } +arbitrary.workspace = true +rand.workspace = true -[lints] -workspace = true +[features] +test-utils = ["dep:scroll-migration"] \ No newline at end of file diff --git a/crates/database/db/src/db.rs b/crates/database/db/src/db.rs index e840298b..57451716 100644 --- a/crates/database/db/src/db.rs +++ b/crates/database/db/src/db.rs @@ -1,13 +1,16 @@ +use crate::DatabaseEntryStream; + use super::models; use rollup_node_primitives::{BatchInput, L1MessageWithBlockNumber}; use sea_orm::{ - ActiveModelTrait, Database as SeaOrmDatabase, DatabaseConnection, DbErr, EntityTrait, + ActiveModelTrait, ColumnTrait, ConnectionTrait, Database as SeaOrmDatabase, DatabaseConnection, + DatabaseTransaction, DbErr, EntityTrait, QueryFilter, TransactionTrait, }; /// The [`Database`] struct is responsible for interacting with the database. #[derive(Debug)] pub struct Database { - connection: DatabaseConnection, + pub(crate) connection: DatabaseConnection, } impl Database { @@ -17,39 +20,89 @@ impl Database { Ok(Self { connection }) } + /// Returns a reference to the underlying database connection. + pub fn connection(&self) -> &DatabaseConnection { + &self.connection + } + + /// Creates a new transaction against the provided database. + pub async fn tx(&self) -> Result { + self.connection.begin().await + } + /// Insert a [`BatchInput`] into the database. - pub async fn insert_batch_input( + pub async fn insert_batch_input( &self, + conn: &C, batch_input: BatchInput, ) -> Result { let batch_input: models::batch_input::ActiveModel = batch_input.into(); - batch_input.insert(&self.connection).await + batch_input.insert(conn).await } /// Get a [`BatchInput`] from the database by its batch index. - pub async fn get_batch_input_by_batch_index( + pub async fn get_batch_input_by_batch_index( &self, + conn: &C, batch_index: u64, ) -> Result, DbErr> { models::batch_input::Entity::find_by_id( TryInto::::try_into(batch_index).expect("index should fit in i64"), ) - .one(&self.connection) + .one(conn) .await .map(|x| x.map(Into::into)) } + /// Delete all [`BatchInput`]s with a block number greater than the provided block number. + pub async fn delete_batch_inputs_gt( + &self, + conn: &C, + block_number: u64, + ) -> Result<(), DbErr> { + models::batch_input::Entity::delete_many() + .filter(models::batch_input::Column::BlockNumber.gt(block_number as i64)) + .exec(conn) + .await + .map(|_| ()) + } + + /// Get an iterator over all [`BatchInput`]s in the database. + pub async fn get_batch_inputs( + &self, + ) -> Result< + impl DatabaseEntryStream + '_, + DbErr, + > { + models::batch_input::Entity::find().stream(&self.connection).await + } + /// Insert an [`L1MessageWithBlockNumber`] into the database. - pub async fn insert_l1_message( + pub async fn insert_l1_message( &self, + conn: &C, l1_message: L1MessageWithBlockNumber, ) -> Result<(), DbErr> { let l1_message: models::l1_message::ActiveModel = l1_message.into(); - l1_message.insert(&self.connection).await?; + l1_message.insert(conn).await?; Ok(()) } - /// Get a [`L1MessageWithBlockNumber`] from the database by its message queue index. + /// Delete all [`L1MessageWithBlockNumber`]s with a block number greater than the provided block + /// number. + pub async fn delete_l1_messages_gt( + &self, + conn: &C, + block_number: u64, + ) -> Result<(), DbErr> { + models::l1_message::Entity::delete_many() + .filter(models::l1_message::Column::BlockNumber.gt(block_number as i64)) + .exec(conn) + .await + .map(|_| ()) + } + + /// Get a [`L1Message`] from the database by its message queue index. pub async fn get_l1_message( &self, queue_index: u64, @@ -59,24 +112,26 @@ impl Database { .await .map(|x| x.map(Into::into)) } + + /// Gets an iterator over all [`L1Message`]s in the database. + pub async fn get_l1_messages( + &self, + ) -> Result< + impl DatabaseEntryStream + '_, + DbErr, + > { + models::l1_message::Entity::find().stream(&self.connection).await + } } #[cfg(test)] mod test { use super::*; + use crate::test_utils::setup_test_db; use arbitrary::{Arbitrary, Unstructured}; - use migration::{Migrator, MigratorTrait}; use rand::Rng; use rollup_node_primitives::{BatchInputV1, BatchInputV2}; - async fn setup_test_db() -> Database { - let database_url = "sqlite::memory:"; - let connection = sea_orm::Database::connect(database_url).await.unwrap(); - Migrator::up(&connection, None).await.unwrap(); - let db = Database { connection }; - db - } - #[tokio::test] async fn test_database_round_trip_batch_input() { // Set up the test database. @@ -84,7 +139,7 @@ mod test { // Generate unstructured bytes. let mut bytes = [0u8; 1024]; - rand::thread_rng().fill(bytes.as_mut_slice()); + rand::rng().fill(bytes.as_mut_slice()); let mut u = Unstructured::new(&bytes); // Generate a random BatchInputV1. @@ -92,9 +147,12 @@ mod test { let batch_input = BatchInput::BatchInputDataV1(batch_input_v1); // Round trip the BatchInput through the database. - db.insert_batch_input(batch_input.clone()).await.unwrap(); - let batch_input_from_db = - db.get_batch_input_by_batch_index(batch_input.batch_index()).await.unwrap().unwrap(); + db.insert_batch_input(db.connection(), batch_input.clone()).await.unwrap(); + let batch_input_from_db = db + .get_batch_input_by_batch_index(db.connection(), batch_input.batch_index()) + .await + .unwrap() + .unwrap(); assert_eq!(batch_input, batch_input_from_db); // Generate a random BatchInputV2. @@ -102,9 +160,12 @@ mod test { let batch_input = BatchInput::BatchInputDataV2(batch_input_v2); // Round trip the BatchInput through the database. - db.insert_batch_input(batch_input.clone()).await.unwrap(); - let batch_input_from_db = - db.get_batch_input_by_batch_index(batch_input.batch_index()).await.unwrap().unwrap(); + db.insert_batch_input(db.connection(), batch_input.clone()).await.unwrap(); + let batch_input_from_db = db + .get_batch_input_by_batch_index(db.connection(), batch_input.batch_index()) + .await + .unwrap() + .unwrap(); assert_eq!(batch_input, batch_input_from_db); } @@ -115,14 +176,14 @@ mod test { // Generate unstructured bytes. let mut bytes = [0u8; 1024]; - rand::thread_rng().fill(bytes.as_mut_slice()); + rand::rng().fill(bytes.as_mut_slice()); let mut u = Unstructured::new(&bytes); - // Generate a random L1MessageWithBlockNumber. + // Generate a random L1Message. let l1_message = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); - // Round trip the L1MessageWithBlockNumber through the database. - db.insert_l1_message(l1_message.clone()).await.unwrap(); + // Round trip the L1Message through the database. + db.insert_l1_message(db.connection(), l1_message.clone()).await.unwrap(); let l1_message_from_db = db.get_l1_message(l1_message.transaction.queue_index).await.unwrap().unwrap(); assert_eq!(l1_message, l1_message_from_db); diff --git a/crates/database/db/src/iterator.rs b/crates/database/db/src/iterator.rs new file mode 100644 index 00000000..b1b7bbb3 --- /dev/null +++ b/crates/database/db/src/iterator.rs @@ -0,0 +1,40 @@ +use super::models; +use futures::{Stream, StreamExt}; +use rollup_node_primitives::{BatchInput, L1MessageWithBlockNumber}; +use sea_orm::DbErr; + +/// A database entry stream that can be used to iterate over database entries. +#[async_trait::async_trait] +pub trait DatabaseEntryStream: Stream> { + /// The type of the stream item. + type StreamItem: From + std::fmt::Debug; + + /// Get the next entry from the stream. + async fn next_entry(&mut self) -> Option>; +} + +#[async_trait::async_trait] +impl DatabaseEntryStream for T +where + T: Stream> + Unpin + Send, +{ + type StreamItem = BatchInput; + + async fn next_entry(&mut self) -> Option> { + let next = self.next().await; + next.map(|x| x.map(Into::into)) + } +} + +#[async_trait::async_trait] +impl DatabaseEntryStream for T +where + T: Stream> + Unpin + Send, +{ + type StreamItem = L1MessageWithBlockNumber; + + async fn next_entry(&mut self) -> Option> { + let next = self.next().await; + next.map(|x| x.map(Into::into)) + } +} diff --git a/crates/database/db/src/lib.rs b/crates/database/db/src/lib.rs index 56bfbfe3..efc86b1c 100644 --- a/crates/database/db/src/lib.rs +++ b/crates/database/db/src/lib.rs @@ -1,7 +1,13 @@ //! A library responsible for interacting with the database. +mod iterator; +pub use iterator::DatabaseEntryStream; + mod models; pub use models::*; mod db; pub use db::Database; + +#[cfg(test)] +pub mod test_utils; diff --git a/crates/database/db/src/test_utils.rs b/crates/database/db/src/test_utils.rs new file mode 100644 index 00000000..7b8d101d --- /dev/null +++ b/crates/database/db/src/test_utils.rs @@ -0,0 +1,14 @@ +//! Test utilities for the database crate. + +use super::Database; +use migration::{Migrator, MigratorTrait}; + +/// Instantiates a new in-memory database and runs the migrations +/// to set up the schema. +pub async fn setup_test_db() -> Database { + let database_url = "sqlite::memory:"; + let connection = sea_orm::Database::connect(database_url).await.unwrap(); + Migrator::up(&connection, None).await.unwrap(); + let db = Database { connection }; + db +} diff --git a/crates/watcher/Cargo.toml b/crates/watcher/Cargo.toml index a77cde80..f209165f 100644 --- a/crates/watcher/Cargo.toml +++ b/crates/watcher/Cargo.toml @@ -32,7 +32,7 @@ scroll-alloy-consensus.workspace = true arbitrary = { workspace = true, optional = true } async-trait.workspace = true derive_more = { workspace = true, features = ["from"] } -rand = { version = "0.9", optional = true } +rand = { workspace = true, optional = true } thiserror.workspace = true tokio = { workspace = true, features = ["full"] } tracing.workspace = true @@ -43,7 +43,7 @@ alloy-eips.workspace = true alloy-rpc-types-eth = { workspace = true, features = ["arbitrary"] } arbitrary.workspace = true eyre.workspace = true -rand = "0.9" +rand.workspace = true scroll-l1 = { workspace = true, features = ["test-utils"] } tracing-subscriber = "0.3" From 041b354d00e2cf631d73ff5025ec8ee623352041 Mon Sep 17 00:00:00 2001 From: frisitano Date: Thu, 13 Mar 2025 15:09:46 +0700 Subject: [PATCH 27/63] add test --- crates/database/db/src/db.rs | 65 +++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/crates/database/db/src/db.rs b/crates/database/db/src/db.rs index 57451716..08af3898 100644 --- a/crates/database/db/src/db.rs +++ b/crates/database/db/src/db.rs @@ -25,7 +25,7 @@ impl Database { &self.connection } - /// Creates a new transaction against the provided database. + /// Creates a new transaction against the database. pub async fn tx(&self) -> Result { self.connection.begin().await } @@ -129,6 +129,7 @@ mod test { use super::*; use crate::test_utils::setup_test_db; use arbitrary::{Arbitrary, Unstructured}; + use futures::StreamExt; use rand::Rng; use rollup_node_primitives::{BatchInputV1, BatchInputV2}; @@ -188,4 +189,66 @@ mod test { db.get_l1_message(l1_message.transaction.queue_index).await.unwrap().unwrap(); assert_eq!(l1_message, l1_message_from_db); } + + #[tokio::test] + async fn test_database_tx() { + // Setup the test database. + let db = setup_test_db().await; + + // Generate unstructured bytes. + let mut bytes = [0u8; 2048]; + rand::rng().fill(bytes.as_mut_slice()); + let mut u = Unstructured::new(&bytes); + + // Generate 2 random L1Messages. + let l1_message_1 = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); + let l1_message_2 = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); + + // Insert the L1Messages into the database in a transaction. + let tx = db.tx().await.unwrap(); + db.insert_l1_message(&tx, l1_message_1.clone()).await.unwrap(); + db.insert_l1_message(&tx, l1_message_2.clone()).await.unwrap(); + tx.commit().await.unwrap(); + + // Check that the L1Messages are in the database. + let l1_message_1_from_db = + db.get_l1_message(l1_message_1.transaction.queue_index).await.unwrap().unwrap(); + assert_eq!(l1_message_1, l1_message_1_from_db); + let l1_message_2_from_db = + db.get_l1_message(l1_message_2.transaction.queue_index).await.unwrap().unwrap(); + assert_eq!(l1_message_2, l1_message_2_from_db); + } + + #[tokio::test] + async fn test_database_iterator() { + // Setup the test database. + let db = setup_test_db().await; + + // Generate unstructured bytes. + let mut bytes = [0u8; 2048]; + rand::rng().fill(bytes.as_mut_slice()); + let mut u = Unstructured::new(&bytes); + + // Generate 2 random L1Messages. + let l1_message_1 = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); + let l1_message_2 = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); + + // Insert the L1Messages into the database. + db.insert_l1_message(db.connection(), l1_message_1.clone()).await.unwrap(); + db.insert_l1_message(db.connection(), l1_message_2.clone()).await.unwrap(); + + // collect the L1Messages + let l1_messages = { + let mut l1_message_stream = db.get_l1_messages().await.unwrap(); + let mut l1_messages = vec![]; + while let Some(l1_message) = l1_message_stream.next_entry().await { + l1_messages.push(l1_message.unwrap()); + } + l1_messages + }; + + // Apply the assertions. + assert!(l1_messages.contains(&l1_message_1)); + assert!(l1_messages.contains(&l1_message_2)); + } } From 1bf3042885a319b84393342f5703ae7eebd00207 Mon Sep 17 00:00:00 2001 From: frisitano Date: Thu, 13 Mar 2025 15:34:34 +0700 Subject: [PATCH 28/63] update streaming implementation --- crates/database/db/src/db.rs | 33 ++++++++++-------------- crates/database/db/src/iterator.rs | 40 ------------------------------ crates/database/db/src/lib.rs | 3 --- 3 files changed, 13 insertions(+), 63 deletions(-) delete mode 100644 crates/database/db/src/iterator.rs diff --git a/crates/database/db/src/db.rs b/crates/database/db/src/db.rs index 08af3898..df1d2cb3 100644 --- a/crates/database/db/src/db.rs +++ b/crates/database/db/src/db.rs @@ -1,6 +1,5 @@ -use crate::DatabaseEntryStream; - use super::models; +use futures::{Stream, StreamExt}; use rollup_node_primitives::{BatchInput, L1MessageWithBlockNumber}; use sea_orm::{ ActiveModelTrait, ColumnTrait, ConnectionTrait, Database as SeaOrmDatabase, DatabaseConnection, @@ -70,11 +69,11 @@ impl Database { /// Get an iterator over all [`BatchInput`]s in the database. pub async fn get_batch_inputs( &self, - ) -> Result< - impl DatabaseEntryStream + '_, - DbErr, - > { - models::batch_input::Entity::find().stream(&self.connection).await + ) -> Result> + use<'_>, DbErr> { + Ok(models::batch_input::Entity::find() + .stream(&self.connection) + .await? + .map(|res| res.map(Into::into))) } /// Insert an [`L1MessageWithBlockNumber`] into the database. @@ -116,11 +115,11 @@ impl Database { /// Gets an iterator over all [`L1Message`]s in the database. pub async fn get_l1_messages( &self, - ) -> Result< - impl DatabaseEntryStream + '_, - DbErr, - > { - models::l1_message::Entity::find().stream(&self.connection).await + ) -> Result> + use<'_>, DbErr> { + Ok(models::l1_message::Entity::find() + .stream(&self.connection) + .await? + .map(|res| res.map(Into::into))) } } @@ -238,14 +237,8 @@ mod test { db.insert_l1_message(db.connection(), l1_message_2.clone()).await.unwrap(); // collect the L1Messages - let l1_messages = { - let mut l1_message_stream = db.get_l1_messages().await.unwrap(); - let mut l1_messages = vec![]; - while let Some(l1_message) = l1_message_stream.next_entry().await { - l1_messages.push(l1_message.unwrap()); - } - l1_messages - }; + let l1_messages = + db.get_l1_messages().await.unwrap().map(|res| res.unwrap()).collect::>().await; // Apply the assertions. assert!(l1_messages.contains(&l1_message_1)); diff --git a/crates/database/db/src/iterator.rs b/crates/database/db/src/iterator.rs deleted file mode 100644 index b1b7bbb3..00000000 --- a/crates/database/db/src/iterator.rs +++ /dev/null @@ -1,40 +0,0 @@ -use super::models; -use futures::{Stream, StreamExt}; -use rollup_node_primitives::{BatchInput, L1MessageWithBlockNumber}; -use sea_orm::DbErr; - -/// A database entry stream that can be used to iterate over database entries. -#[async_trait::async_trait] -pub trait DatabaseEntryStream: Stream> { - /// The type of the stream item. - type StreamItem: From + std::fmt::Debug; - - /// Get the next entry from the stream. - async fn next_entry(&mut self) -> Option>; -} - -#[async_trait::async_trait] -impl DatabaseEntryStream for T -where - T: Stream> + Unpin + Send, -{ - type StreamItem = BatchInput; - - async fn next_entry(&mut self) -> Option> { - let next = self.next().await; - next.map(|x| x.map(Into::into)) - } -} - -#[async_trait::async_trait] -impl DatabaseEntryStream for T -where - T: Stream> + Unpin + Send, -{ - type StreamItem = L1MessageWithBlockNumber; - - async fn next_entry(&mut self) -> Option> { - let next = self.next().await; - next.map(|x| x.map(Into::into)) - } -} diff --git a/crates/database/db/src/lib.rs b/crates/database/db/src/lib.rs index efc86b1c..140db1f3 100644 --- a/crates/database/db/src/lib.rs +++ b/crates/database/db/src/lib.rs @@ -1,8 +1,5 @@ //! A library responsible for interacting with the database. -mod iterator; -pub use iterator::DatabaseEntryStream; - mod models; pub use models::*; From 55945e1a2d468624ea7c26b56f6779f2a2c8f721 Mon Sep 17 00:00:00 2001 From: frisitano Date: Thu, 13 Mar 2025 18:48:59 +0700 Subject: [PATCH 29/63] init indexer --- Cargo.lock | 15 ++ Cargo.toml | 2 + crates/database/db/Cargo.toml | 1 + crates/database/db/src/db.rs | 32 ++- crates/database/db/src/lib.rs | 4 +- crates/database/db/src/models/batch_input.rs | 3 + ...0220101_000001_create_batch_input_table.rs | 2 + crates/indexer/Cargo.toml | 30 +++ crates/indexer/src/lib.rs | 191 ++++++++++++++++++ crates/primitives/src/batch.rs | 12 +- 10 files changed, 288 insertions(+), 4 deletions(-) create mode 100644 crates/indexer/Cargo.toml create mode 100644 crates/indexer/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 1cd585ee..fda3d855 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8967,6 +8967,20 @@ dependencies = [ "chrono", ] +[[package]] +name = "rollup-node-indexer" +version = "0.0.1" +dependencies = [ + "alloy-primitives", + "arbitrary", + "futures", + "rand 0.9.0", + "rollup-node-primitives", + "rollup-node-watcher", + "scroll-db", + "tokio", +] + [[package]] name = "rollup-node-manager" version = "0.0.1" @@ -9504,6 +9518,7 @@ dependencies = [ "serde", "serde_json", "tokio", + "tracing", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 77c7e1ad..7cc9a3d6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,6 +11,7 @@ members = [ "crates/database/db", "crates/database/migration", "crates/engine", + "crates/indexer", "crates/l1", "crates/node", "crates/network", @@ -147,6 +148,7 @@ reth-scroll-primitives = { git = "https://github.com/scroll-tech/reth.git", defa rollup-node-manager = { path = "crates/node" } rollup-node-primitives = { path = "crates/primitives" } rollup-node-watcher = { path = "crates/watcher" } +scroll-db = { path = "crates/database/db" } scroll-engine = { path = "crates/engine" } scroll-l1 = { path = "crates/l1" } scroll-network = { path = "crates/network" } diff --git a/crates/database/db/Cargo.toml b/crates/database/db/Cargo.toml index 140de1d0..04d487e6 100644 --- a/crates/database/db/Cargo.toml +++ b/crates/database/db/Cargo.toml @@ -27,6 +27,7 @@ sea-orm = { version = "1.1.0", features = ["sqlx-sqlite", "runtime-tokio-native- serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" tokio = { workspace = true, features = ["macros", "sync"] } +tracing.workspace = true [dev-dependencies] # scroll diff --git a/crates/database/db/src/db.rs b/crates/database/db/src/db.rs index df1d2cb3..797d7881 100644 --- a/crates/database/db/src/db.rs +++ b/crates/database/db/src/db.rs @@ -1,9 +1,10 @@ use super::models; +use alloy_primitives::B256; use futures::{Stream, StreamExt}; use rollup_node_primitives::{BatchInput, L1MessageWithBlockNumber}; use sea_orm::{ ActiveModelTrait, ColumnTrait, ConnectionTrait, Database as SeaOrmDatabase, DatabaseConnection, - DatabaseTransaction, DbErr, EntityTrait, QueryFilter, TransactionTrait, + DatabaseTransaction, DbErr, EntityTrait, QueryFilter, Set, TransactionTrait, }; /// The [`Database`] struct is responsible for interacting with the database. @@ -39,6 +40,35 @@ impl Database { batch_input.insert(conn).await } + /// Finalize a [`BatchInput`] in the database and set the finalized block number to the provided + /// block number. + pub async fn finalize_batch_input( + &self, + conn: &C, + batch_hash: B256, + block_number: u64, + ) -> Result<(), DbErr> { + if let Some(batch) = models::batch_input::Entity::find() + .filter(models::batch_input::Column::Hash.eq(batch_hash.to_vec())) // Filter by batch_hash + .one(conn) + .await? + // Retrieve single row + { + let mut batch: models::batch_input::ActiveModel = batch.into(); + batch.finalized_block_number = Set(Some(block_number as i64)); + batch.update(conn).await?; // Update only this field + } else { + tracing::warn!( + target: "scroll::db", + batch_hash = ?batch_hash, + block_number, + "Batch not found in DB when trying to finalize." + ); + } + + Ok(()) + } + /// Get a [`BatchInput`] from the database by its batch index. pub async fn get_batch_input_by_batch_index( &self, diff --git a/crates/database/db/src/lib.rs b/crates/database/db/src/lib.rs index 140db1f3..2a0f8940 100644 --- a/crates/database/db/src/lib.rs +++ b/crates/database/db/src/lib.rs @@ -6,5 +6,7 @@ pub use models::*; mod db; pub use db::Database; -#[cfg(test)] +#[cfg(feature = "test-utils")] pub mod test_utils; + +pub use sea_orm::DbErr; diff --git a/crates/database/db/src/models/batch_input.rs b/crates/database/db/src/models/batch_input.rs index 266677a8..51237d5c 100644 --- a/crates/database/db/src/models/batch_input.rs +++ b/crates/database/db/src/models/batch_input.rs @@ -18,6 +18,7 @@ pub struct Model { chunks: Chunks, skipped_l1_message_bitmap: Vec, blob_hash: Vec, + finalized_block_number: Option, } /// The relation for the batch input model. @@ -58,6 +59,7 @@ impl From for ActiveModel { chunks: ActiveValue::Set(Chunks(batch_input.chunks)), skipped_l1_message_bitmap: ActiveValue::Set(batch_input.skipped_l1_message_bitmap), blob_hash: ActiveValue::Set(vec![]), + finalized_block_number: ActiveValue::Unchanged(None), }, BatchInputPrimitive::BatchInputDataV2(batch_input) => Self { index: ActiveValue::Set( @@ -85,6 +87,7 @@ impl From for ActiveModel { batch_input.batch_input_data.skipped_l1_message_bitmap, ), blob_hash: ActiveValue::Set(batch_input.blob_hash.to_vec()), + finalized_block_number: ActiveValue::Unchanged(None), }, } } diff --git a/crates/database/migration/src/m20220101_000001_create_batch_input_table.rs b/crates/database/migration/src/m20220101_000001_create_batch_input_table.rs index bc12df20..a0a22e02 100644 --- a/crates/database/migration/src/m20220101_000001_create_batch_input_table.rs +++ b/crates/database/migration/src/m20220101_000001_create_batch_input_table.rs @@ -29,6 +29,7 @@ impl MigrationTrait for Migration { .col(var_binary(BatchInput::SkippedL1MessageBitmap, HASH_LENGTH)) // TODO: Set the blob hash as nullable .col(binary_len(BatchInput::BlobHash, HASH_LENGTH)) + .col(boolean_null(BatchInput::FinalizedBlockNumber)) .to_owned(), ) .await @@ -51,5 +52,6 @@ enum BatchInput { Chunks, SkippedL1MessageBitmap, BlobHash, + FinalizedBlockNumber, // TODO: Do we need the blob proof? } diff --git a/crates/indexer/Cargo.toml b/crates/indexer/Cargo.toml new file mode 100644 index 00000000..ca780b71 --- /dev/null +++ b/crates/indexer/Cargo.toml @@ -0,0 +1,30 @@ +[package] +name = "rollup-node-indexer" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +exclude.workspace = true + +[lints] +workspace = true + +[dependencies] +# alloy +alloy-primitives.workspace = true + +# rollup-node +scroll-db.workspace = true +rollup-node-primitives.workspace = true +rollup-node-watcher.workspace = true + +[dev-dependencies] +# rollup-node +scroll-db = { workspace = true, features = ["test-utils"] } +rollup-node-primitives = { workspace = true, features = ["arbitrary"] } + +# misc +arbitrary.workspace = true +futures.workspace = true +rand.workspace = true +tokio.workspace = true diff --git a/crates/indexer/src/lib.rs b/crates/indexer/src/lib.rs new file mode 100644 index 00000000..9cc959cb --- /dev/null +++ b/crates/indexer/src/lib.rs @@ -0,0 +1,191 @@ +//! A library responsible for indexing data relevant to the L1. +use alloy_primitives::B256; +use rollup_node_primitives::{BatchInput, L1MessageWithBlockNumber}; +use rollup_node_watcher::L1Notification; +use scroll_db::{Database, DbErr}; +use std::sync::Arc; + +/// The indexer is responsible for indexing data relevant to the L1. +#[derive(Debug)] +pub struct Indexer { + database: Arc, +} + +impl Indexer { + /// Creates a new indexer with the given database. + pub fn new(database: Arc) -> Self { + Self { database } + } + + /// Handles an event from the L1. + pub async fn handle_l1_event(&self, event: L1Notification) -> Result<(), DbErr> { + match event { + L1Notification::Reorg(block_number) => self.handle_reorg(block_number).await, + L1Notification::NewBlock(_block_number) | L1Notification::Finalized(_block_number) => { + Ok(()) + } + L1Notification::BatchCommit(batch_input) => self.handle_batch_input(batch_input).await, + L1Notification::L1Message(l1_message) => self.handle_l1_message(l1_message).await, + L1Notification::BatchFinalization { hash, block_number } => { + self.handle_batch_finalization(hash, block_number).await + } + } + } + + /// Handles a reorganization event by deleting all indexed data which is greater than the + /// provided block number. + async fn handle_reorg(&self, block_number: u64) -> Result<(), DbErr> { + // create a database transaction so this operation is atomic + let txn = self.database.tx().await?; + + // delete batch inputs and l1 messages + self.database.delete_batch_inputs_gt(&txn, block_number).await?; + self.database.delete_l1_messages_gt(&txn, block_number).await?; + + // commit the transaction + txn.commit().await?; + Ok(()) + } + + /// Handles an L1 message by inserting it into the database. + async fn handle_l1_message(&self, l1_message: L1MessageWithBlockNumber) -> Result<(), DbErr> { + self.database.insert_l1_message(self.database.connection(), l1_message).await.map(|_| ()) + } + + /// Handles a batch input by inserting it into the database. + async fn handle_batch_input(&self, batch_input: BatchInput) -> Result<(), DbErr> { + self.database.insert_batch_input(self.database.connection(), batch_input).await.map(|_| ()) + } + + /// Handles a batch finalization event by updating the batch input in the database. + async fn handle_batch_finalization( + &self, + batch_hash: B256, + block_number: u64, + ) -> Result<(), DbErr> { + self.database + .finalize_batch_input(self.database.connection(), batch_hash, block_number) + .await + } +} + +#[cfg(test)] +mod test { + use super::*; + use arbitrary::{Arbitrary, Unstructured}; + use futures::StreamExt; + use rand::Rng; + use rollup_node_primitives::BatchInput; + use scroll_db::test_utils::setup_test_db; + + async fn setup_test_indexer() -> (Indexer, Arc) { + let db = Arc::new(setup_test_db().await); + (Indexer::new(db.clone()), db) + } + + #[tokio::test] + async fn test_handle_commit_batch() { + // Instantiate indexer and db + let (indexer, db) = setup_test_indexer().await; + + // Generate unstructured bytes. + let mut bytes = [0u8; 1024]; + rand::rng().fill(bytes.as_mut_slice()); + let mut u = Unstructured::new(&bytes); + + let batch_input = BatchInput::arbitrary(&mut u).unwrap(); + indexer.handle_batch_input(batch_input.clone()).await.unwrap(); + + let batch_input_result = db + .get_batch_input_by_batch_index(db.connection(), batch_input.batch_index()) + .await + .unwrap() + .unwrap(); + + assert_eq!(batch_input, batch_input_result); + } + + #[tokio::test] + async fn test_handle_l1_message() { + // Instantiate indexer and db + let (indexer, db) = setup_test_indexer().await; + + // Generate unstructured bytes. + let mut bytes = [0u8; 1024]; + rand::rng().fill(bytes.as_mut_slice()); + let mut u = Unstructured::new(&bytes); + + let l1_message = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); + indexer.handle_l1_message(l1_message.clone()).await.unwrap(); + + let l1_message_result = + db.get_l1_message(l1_message.transaction.queue_index).await.unwrap().unwrap(); + + assert_eq!(l1_message, l1_message_result); + } + + #[tokio::test] + async fn test_handle_reorg() { + // Instantiate indexer and db + let (indexer, db) = setup_test_indexer().await; + + // Generate unstructured bytes. + let mut bytes = [0u8; 1024]; + rand::rng().fill(bytes.as_mut_slice()); + let mut u = Unstructured::new(&bytes); + + // Generate a 3 random batch inputs and set their block numbers + let mut batch_input_block_1 = BatchInput::arbitrary(&mut u).unwrap(); + batch_input_block_1.set_block_number(1); + let batch_input_block_1 = batch_input_block_1; + + let mut batch_input_block_20 = BatchInput::arbitrary(&mut u).unwrap(); + batch_input_block_20.set_block_number(20); + let batch_input_block_20 = batch_input_block_20; + + let mut batch_input_block_30 = BatchInput::arbitrary(&mut u).unwrap(); + batch_input_block_30.set_block_number(30); + let batch_input_block_30 = batch_input_block_30; + + // Index batch inputs + indexer.handle_batch_input(batch_input_block_1.clone()).await.unwrap(); + indexer.handle_batch_input(batch_input_block_20.clone()).await.unwrap(); + indexer.handle_batch_input(batch_input_block_30.clone()).await.unwrap(); + + // Generate 3 random L1 messages and set their block numbers + let mut l1_message_block_1 = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); + l1_message_block_1.block_number = 1; + let l1_message_block_1 = l1_message_block_1; + + let mut l1_message_block_20 = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); + l1_message_block_20.block_number = 20; + let l1_message_block_20 = l1_message_block_20; + + let mut l1_message_block_30 = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); + l1_message_block_30.block_number = 30; + let l1_message_block_30 = l1_message_block_30; + + // Index L1 messages + indexer.handle_l1_message(l1_message_block_1.clone()).await.unwrap(); + indexer.handle_l1_message(l1_message_block_20.clone()).await.unwrap(); + indexer.handle_l1_message(l1_message_block_30.clone()).await.unwrap(); + + // Reorg at block 20 + indexer.handle_reorg(20).await.unwrap(); + + // Check that the batch input at block 30 is deleted + let batch_inputs = + db.get_batch_inputs().await.unwrap().map(|res| res.unwrap()).collect::>().await; + + assert_eq!(2, batch_inputs.len()); + assert!(batch_inputs.contains(&batch_input_block_1)); + assert!(batch_inputs.contains(&batch_input_block_20)); + + // check that the L1 message at block 30 is deleted + let l1_messages = + db.get_l1_messages().await.unwrap().map(|res| res.unwrap()).collect::>().await; + assert_eq!(2, l1_messages.len()); + assert!(l1_messages.contains(&l1_message_block_1)); + assert!(l1_messages.contains(&l1_message_block_20)); + } +} diff --git a/crates/primitives/src/batch.rs b/crates/primitives/src/batch.rs index f6f02eaf..43bcc8f4 100644 --- a/crates/primitives/src/batch.rs +++ b/crates/primitives/src/batch.rs @@ -28,6 +28,14 @@ impl BatchInput { BatchInput::BatchInputDataV2(data) => data.batch_input_data.batch_index, } } + + /// Sets the block number of the batch. + pub fn set_block_number(&mut self, block_number: BlockNumber) { + match self { + BatchInput::BatchInputDataV1(data) => data.block_number = block_number, + BatchInput::BatchInputDataV2(data) => data.batch_input_data.block_number = block_number, + } + } } /// The input data for a batch. @@ -171,7 +179,7 @@ mod arbitrary_impl { impl arbitrary::Arbitrary<'_> for BatchInput { fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result { - let version = u.arbitrary::()? % 8; + let version = u.arbitrary::()? % 2; match version { 0 => Ok(BatchInput::BatchInputDataV1(u.arbitrary()?)), 1 => Ok(BatchInput::BatchInputDataV2(u.arbitrary()?)), @@ -182,7 +190,7 @@ mod arbitrary_impl { impl arbitrary::Arbitrary<'_> for BatchInputV1 { fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result { - let version = 0; + let version = u.arbitrary::()? % 8; let batch_index = u.arbitrary::()? as u64; let batch_hash = u.arbitrary::()?; let block_number = u.arbitrary::()? as u64; From 15257a2925e5fb8b2a70bc30562c6017bc744f05 Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Thu, 13 Mar 2025 15:11:08 +0100 Subject: [PATCH 30/63] fix: answer comments --- crates/watcher/src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index 6ecd0d5f..bf065e14 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -78,7 +78,7 @@ pub struct L1Watcher { pub enum L1Notification { /// A notification for a reorg of the L1 up to a given block number. Reorg(u64), - /// A new batch has been commited on the L1 rollup contract. + /// A new batch has been committed on the L1 rollup contract. BatchCommit(BatchInput), /// A new batch has been finalized on the L1 rollup contract. BatchFinalization { @@ -202,9 +202,9 @@ where let tail_block = self.unfinalized_blocks.back().expect("tail exists"); if tail_block.number < finalized.number { - // drain all, the finalized block is past the tail. + // clear, the finalized block is past the tail. tracing::trace!(target: "scroll::watcher", tail = ?tail_block.number, finalized = ?finalized.number, "draining all unfinalized blocks"); - let _ = self.unfinalized_blocks.drain(0..); + self.unfinalized_blocks.clear(); return } From fc498fbd32481592e2fdb03dc64fa933503c28e0 Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Thu, 13 Mar 2025 15:11:13 +0100 Subject: [PATCH 31/63] fix: lints --- .github/workflows/lint.yaml | 4 +- Cargo.lock | 238 ++++++++++++++++++------------------ crates/l1/Cargo.toml | 3 +- crates/watcher/Cargo.toml | 3 +- crates/watcher/src/lib.rs | 9 +- 5 files changed, 128 insertions(+), 129 deletions(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 2602a22f..0ca11a3e 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -127,10 +127,10 @@ jobs: include: - type: wasm target: wasm32-unknown-unknown - exclude: scroll-engine,scroll-wire,scroll-bridge,scroll-network,rollup-node-manager + exclude: scroll-engine,scroll-wire,scroll-bridge,scroll-network,rollup-node-manager,rollup-node-watcher - type: riscv target: riscv32imac-unknown-none-elf - exclude: scroll-engine,scroll-wire,scroll-bridge,scroll-network,rollup-node-manager + exclude: scroll-engine,scroll-wire,scroll-bridge,scroll-network,rollup-node-manager,rollup-node-watcher steps: - uses: actions/checkout@v4 - uses: rui314/setup-mold@v1 diff --git a/Cargo.lock b/Cargo.lock index 5754a7fb..dbf1e666 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3952,7 +3952,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]] @@ -5391,7 +5391,7 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5415,7 +5415,7 @@ dependencies = [ [[package]] name = "reth-chain-state" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5445,7 +5445,7 @@ dependencies = [ [[package]] name = "reth-chainspec" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-chains", "alloy-consensus", @@ -5465,7 +5465,7 @@ dependencies = [ [[package]] name = "reth-cli" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-genesis", "clap", @@ -5479,7 +5479,7 @@ dependencies = [ [[package]] name = "reth-cli-commands" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "ahash", "alloy-consensus", @@ -5541,7 +5541,7 @@ dependencies = [ [[package]] name = "reth-cli-runner" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "reth-tasks", "tokio", @@ -5551,7 +5551,7 @@ dependencies = [ [[package]] name = "reth-cli-util" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-eips", "alloy-primitives", @@ -5568,7 +5568,7 @@ dependencies = [ [[package]] name = "reth-codecs" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5587,7 +5587,7 @@ dependencies = [ [[package]] name = "reth-codecs-derive" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "convert_case 0.7.1", "proc-macro2", @@ -5598,7 +5598,7 @@ dependencies = [ [[package]] name = "reth-config" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "eyre", "humantime-serde", @@ -5612,7 +5612,7 @@ dependencies = [ [[package]] name = "reth-consensus" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -5625,7 +5625,7 @@ dependencies = [ [[package]] name = "reth-consensus-common" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5637,7 +5637,7 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5660,7 +5660,7 @@ dependencies = [ [[package]] name = "reth-db" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "derive_more 2.0.1", @@ -5686,7 +5686,7 @@ dependencies = [ [[package]] name = "reth-db-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -5715,7 +5715,7 @@ dependencies = [ [[package]] name = "reth-db-common" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -5743,7 +5743,7 @@ dependencies = [ [[package]] name = "reth-db-models" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-eips", "alloy-primitives", @@ -5758,7 +5758,7 @@ dependencies = [ [[package]] name = "reth-discv4" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5784,7 +5784,7 @@ dependencies = [ [[package]] name = "reth-discv5" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5808,7 +5808,7 @@ dependencies = [ [[package]] name = "reth-dns-discovery" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "data-encoding", @@ -5832,7 +5832,7 @@ dependencies = [ [[package]] name = "reth-downloaders" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5867,7 +5867,7 @@ dependencies = [ [[package]] name = "reth-e2e-test-utils" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5916,7 +5916,7 @@ dependencies = [ [[package]] name = "reth-ecies" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "aes", "alloy-primitives", @@ -5947,7 +5947,7 @@ dependencies = [ [[package]] name = "reth-engine-local" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -5977,7 +5977,7 @@ dependencies = [ [[package]] name = "reth-engine-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6002,7 +6002,7 @@ dependencies = [ [[package]] name = "reth-engine-service" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "futures", "pin-project", @@ -6025,7 +6025,7 @@ dependencies = [ [[package]] name = "reth-engine-tree" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6075,7 +6075,7 @@ dependencies = [ [[package]] name = "reth-engine-util" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -6103,7 +6103,7 @@ dependencies = [ [[package]] name = "reth-errors" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -6115,7 +6115,7 @@ dependencies = [ [[package]] name = "reth-eth-wire" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-chains", "alloy-primitives", @@ -6143,7 +6143,7 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-chains", "alloy-consensus", @@ -6164,7 +6164,7 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "eyre", "reth-chainspec", @@ -6174,7 +6174,7 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6191,7 +6191,7 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6207,7 +6207,7 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -6221,7 +6221,7 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6245,7 +6245,7 @@ dependencies = [ [[package]] name = "reth-etl" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "rayon", "reth-db-api", @@ -6255,7 +6255,7 @@ dependencies = [ [[package]] name = "reth-evm" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6283,7 +6283,7 @@ dependencies = [ [[package]] name = "reth-execution-errors" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-evm", "alloy-primitives", @@ -6296,7 +6296,7 @@ dependencies = [ [[package]] name = "reth-execution-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6315,7 +6315,7 @@ dependencies = [ [[package]] name = "reth-exex" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6353,7 +6353,7 @@ dependencies = [ [[package]] name = "reth-exex-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6368,7 +6368,7 @@ dependencies = [ [[package]] name = "reth-fs-util" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "serde", "serde_json", @@ -6378,7 +6378,7 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6405,7 +6405,7 @@ dependencies = [ [[package]] name = "reth-ipc" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "async-trait", "bytes", @@ -6426,7 +6426,7 @@ dependencies = [ [[package]] name = "reth-libmdbx" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "bitflags 2.9.0", "byteorder", @@ -6443,7 +6443,7 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "bindgen", "cc", @@ -6452,7 +6452,7 @@ dependencies = [ [[package]] name = "reth-metrics" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "futures", "metrics", @@ -6464,7 +6464,7 @@ dependencies = [ [[package]] name = "reth-net-banlist" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", ] @@ -6472,7 +6472,7 @@ dependencies = [ [[package]] name = "reth-net-nat" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "futures-util", "if-addrs", @@ -6486,7 +6486,7 @@ dependencies = [ [[package]] name = "reth-network" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6542,7 +6542,7 @@ dependencies = [ [[package]] name = "reth-network-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "alloy-rpc-types-admin", @@ -6565,7 +6565,7 @@ dependencies = [ [[package]] name = "reth-network-p2p" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6588,7 +6588,7 @@ dependencies = [ [[package]] name = "reth-network-peers" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6603,7 +6603,7 @@ dependencies = [ [[package]] name = "reth-network-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -6617,7 +6617,7 @@ dependencies = [ [[package]] name = "reth-nippy-jar" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "anyhow", "bincode", @@ -6634,7 +6634,7 @@ dependencies = [ [[package]] name = "reth-node-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -6658,7 +6658,7 @@ dependencies = [ [[package]] name = "reth-node-builder" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6722,7 +6722,7 @@ dependencies = [ [[package]] name = "reth-node-core" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6771,7 +6771,7 @@ dependencies = [ [[package]] name = "reth-node-events" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6795,7 +6795,7 @@ dependencies = [ [[package]] name = "reth-node-metrics" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "eyre", "http", @@ -6815,7 +6815,7 @@ dependencies = [ [[package]] name = "reth-node-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "reth-chainspec", "reth-db-api", @@ -6828,7 +6828,7 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6854,7 +6854,7 @@ dependencies = [ [[package]] name = "reth-payload-builder" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6876,7 +6876,7 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "pin-project", "reth-payload-primitives", @@ -6888,7 +6888,7 @@ dependencies = [ [[package]] name = "reth-payload-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6908,7 +6908,7 @@ dependencies = [ [[package]] name = "reth-payload-util" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6918,7 +6918,7 @@ dependencies = [ [[package]] name = "reth-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "arbitrary", @@ -6933,7 +6933,7 @@ dependencies = [ [[package]] name = "reth-primitives-traits" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6967,7 +6967,7 @@ dependencies = [ [[package]] name = "reth-provider" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7013,7 +7013,7 @@ dependencies = [ [[package]] name = "reth-prune" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7041,7 +7041,7 @@ dependencies = [ [[package]] name = "reth-prune-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "arbitrary", @@ -7055,7 +7055,7 @@ dependencies = [ [[package]] name = "reth-revm" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -7070,7 +7070,7 @@ dependencies = [ [[package]] name = "reth-rpc" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -7141,7 +7141,7 @@ dependencies = [ [[package]] name = "reth-rpc-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-eips", "alloy-genesis", @@ -7167,7 +7167,7 @@ dependencies = [ [[package]] name = "reth-rpc-builder" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-network", "alloy-provider", @@ -7204,7 +7204,7 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7234,7 +7234,7 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -7279,7 +7279,7 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7323,7 +7323,7 @@ dependencies = [ [[package]] name = "reth-rpc-layer" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-rpc-types-engine", "http", @@ -7337,7 +7337,7 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7353,7 +7353,7 @@ dependencies = [ [[package]] name = "reth-rpc-types-compat" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7367,7 +7367,7 @@ dependencies = [ [[package]] name = "reth-scroll-chainspec" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-chains", "alloy-consensus", @@ -7391,7 +7391,7 @@ dependencies = [ [[package]] name = "reth-scroll-cli" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "clap", "eyre", @@ -7414,7 +7414,7 @@ dependencies = [ [[package]] name = "reth-scroll-consensus" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7434,7 +7434,7 @@ dependencies = [ [[package]] name = "reth-scroll-engine-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7459,7 +7459,7 @@ dependencies = [ [[package]] name = "reth-scroll-evm" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7487,7 +7487,7 @@ dependencies = [ [[package]] name = "reth-scroll-forks" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-chains", "alloy-primitives", @@ -7501,7 +7501,7 @@ dependencies = [ [[package]] name = "reth-scroll-node" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7543,7 +7543,7 @@ dependencies = [ [[package]] name = "reth-scroll-payload" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "reth-basic-payload-builder", "reth-payload-primitives", @@ -7556,7 +7556,7 @@ dependencies = [ [[package]] name = "reth-scroll-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7584,7 +7584,7 @@ dependencies = [ [[package]] name = "reth-scroll-rpc" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7619,7 +7619,7 @@ dependencies = [ [[package]] name = "reth-stages" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7664,7 +7664,7 @@ dependencies = [ [[package]] name = "reth-stages-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7691,7 +7691,7 @@ dependencies = [ [[package]] name = "reth-stages-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "arbitrary", @@ -7705,7 +7705,7 @@ dependencies = [ [[package]] name = "reth-static-file" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "parking_lot", @@ -7726,7 +7726,7 @@ dependencies = [ [[package]] name = "reth-static-file-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "clap", @@ -7738,7 +7738,7 @@ dependencies = [ [[package]] name = "reth-storage-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7762,7 +7762,7 @@ dependencies = [ [[package]] name = "reth-storage-errors" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7778,7 +7778,7 @@ dependencies = [ [[package]] name = "reth-tasks" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "auto_impl", "dyn-clone", @@ -7796,7 +7796,7 @@ dependencies = [ [[package]] name = "reth-testing-utils" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7811,7 +7811,7 @@ dependencies = [ [[package]] name = "reth-tokio-util" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "tokio", "tokio-stream", @@ -7821,7 +7821,7 @@ dependencies = [ [[package]] name = "reth-tracing" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "clap", "eyre", @@ -7836,7 +7836,7 @@ dependencies = [ [[package]] name = "reth-transaction-pool" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7875,7 +7875,7 @@ dependencies = [ [[package]] name = "reth-trie" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7900,7 +7900,7 @@ dependencies = [ [[package]] name = "reth-trie-common" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7926,7 +7926,7 @@ dependencies = [ [[package]] name = "reth-trie-db" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7946,7 +7946,7 @@ dependencies = [ [[package]] name = "reth-trie-parallel" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7970,7 +7970,7 @@ dependencies = [ [[package]] name = "reth-trie-sparse" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7985,7 +7985,7 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "zstd", ] @@ -8637,7 +8637,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll-alloy-consensus" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8656,7 +8656,7 @@ dependencies = [ [[package]] name = "scroll-alloy-evm" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8673,7 +8673,7 @@ dependencies = [ [[package]] name = "scroll-alloy-hardforks" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-hardforks", "auto_impl", @@ -8683,7 +8683,7 @@ dependencies = [ [[package]] name = "scroll-alloy-network" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-network", @@ -8697,7 +8697,7 @@ dependencies = [ [[package]] name = "scroll-alloy-provider" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "alloy-provider", @@ -8718,7 +8718,7 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8735,7 +8735,7 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types-engine" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2dd9bf7858ca84c2c7eea63cb8a9814e5dc7042c" +source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", @@ -10360,7 +10360,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] diff --git a/crates/l1/Cargo.toml b/crates/l1/Cargo.toml index 059a3a24..4877a8eb 100644 --- a/crates/l1/Cargo.toml +++ b/crates/l1/Cargo.toml @@ -22,5 +22,4 @@ arbitrary = { workspace = true, optional = true } derive_more.workspace = true [features] -test-utils = ["arbitrary"] - +test-utils = ["dep:arbitrary"] diff --git a/crates/watcher/Cargo.toml b/crates/watcher/Cargo.toml index a77cde80..af886574 100644 --- a/crates/watcher/Cargo.toml +++ b/crates/watcher/Cargo.toml @@ -48,7 +48,7 @@ scroll-l1 = { workspace = true, features = ["test-utils"] } tracing-subscriber = "0.3" [features] -test-utils = ["arbitrary", "alloy-eips", "rand"] +test-utils = ["arbitrary", "alloy-eips", "rand", "scroll-l1/test-utils"] arbitrary = [ "dep:arbitrary", "alloy-consensus/arbitrary", @@ -56,4 +56,5 @@ arbitrary = [ "alloy-primitives/arbitrary", "alloy-rpc-types-eth/arbitrary", "scroll-alloy-consensus/arbitrary", + "alloy-sol-types/arbitrary", ] diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index bf065e14..d66a38e8 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -87,7 +87,7 @@ pub enum L1Notification { /// The block number the batch was finalized at. block_number: BlockNumber, }, - /// A new [`L1Message`] has been added to the L1 message queue. + /// A new `L1Message` has been added to the L1 message queue. L1Message(L1MessageWithBlockNumber), /// A new block has been added to the L1. NewBlock(u64), @@ -454,10 +454,9 @@ where .expect("finalized block should always exist")) } - /// Returns the next range of logs, using the filter provider in - /// [`L1Watcher`](field@L1Watcher::filter), for the block range in - /// \[[`current_block`](field@WatcherSyncStatus::current_block); - /// [`current_block`](field@WatcherSyncStatus::current_block) + [`LOGS_QUERY_BLOCK_RANGE`]\] + /// Returns the next range of logs, filtering using [`L1_WATCHER_LOG_FILTER`], + /// for the block range in \[[`current_block`](field@L1Watcher::current_block); + /// [`current_block`](field@L1Watcher::current_block) + [`LOGS_QUERY_BLOCK_RANGE`]\] async fn next_filtered_logs(&self) -> L1WatcherResult> { // set the block range for the query let mut filter = L1_WATCHER_LOG_FILTER.clone(); From fff498ceef27bd79eaac790cf1cb4c9ed7cf9086 Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Fri, 14 Mar 2025 11:15:33 +0100 Subject: [PATCH 32/63] fix: no std issues --- Cargo.lock | 235 ++++++++++++++++----------------- Cargo.toml | 8 +- crates/l1/Cargo.toml | 6 +- crates/l1/src/abi/calls.rs | 2 + crates/l1/src/lib.rs | 5 + crates/primitives/Cargo.toml | 4 + crates/primitives/src/batch.rs | 2 + crates/primitives/src/lib.rs | 4 + crates/watcher/src/lib.rs | 4 +- 9 files changed, 144 insertions(+), 126 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dbf1e666..fa2df1cd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5391,7 +5391,7 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5415,7 +5415,7 @@ dependencies = [ [[package]] name = "reth-chain-state" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5445,7 +5445,7 @@ dependencies = [ [[package]] name = "reth-chainspec" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-chains", "alloy-consensus", @@ -5465,7 +5465,7 @@ dependencies = [ [[package]] name = "reth-cli" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-genesis", "clap", @@ -5479,7 +5479,7 @@ dependencies = [ [[package]] name = "reth-cli-commands" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "ahash", "alloy-consensus", @@ -5541,7 +5541,7 @@ dependencies = [ [[package]] name = "reth-cli-runner" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "reth-tasks", "tokio", @@ -5551,7 +5551,7 @@ dependencies = [ [[package]] name = "reth-cli-util" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -5568,7 +5568,7 @@ dependencies = [ [[package]] name = "reth-codecs" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5587,7 +5587,7 @@ dependencies = [ [[package]] name = "reth-codecs-derive" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "convert_case 0.7.1", "proc-macro2", @@ -5598,7 +5598,7 @@ dependencies = [ [[package]] name = "reth-config" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "eyre", "humantime-serde", @@ -5612,7 +5612,7 @@ dependencies = [ [[package]] name = "reth-consensus" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -5625,7 +5625,7 @@ dependencies = [ [[package]] name = "reth-consensus-common" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5637,7 +5637,7 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5660,7 +5660,7 @@ dependencies = [ [[package]] name = "reth-db" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "derive_more 2.0.1", @@ -5686,7 +5686,7 @@ dependencies = [ [[package]] name = "reth-db-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -5715,7 +5715,7 @@ dependencies = [ [[package]] name = "reth-db-common" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -5743,7 +5743,7 @@ dependencies = [ [[package]] name = "reth-db-models" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -5758,7 +5758,7 @@ dependencies = [ [[package]] name = "reth-discv4" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5784,7 +5784,7 @@ dependencies = [ [[package]] name = "reth-discv5" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5808,7 +5808,7 @@ dependencies = [ [[package]] name = "reth-dns-discovery" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "data-encoding", @@ -5832,7 +5832,7 @@ dependencies = [ [[package]] name = "reth-downloaders" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5867,7 +5867,7 @@ dependencies = [ [[package]] name = "reth-e2e-test-utils" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5916,7 +5916,7 @@ dependencies = [ [[package]] name = "reth-ecies" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "aes", "alloy-primitives", @@ -5947,7 +5947,7 @@ dependencies = [ [[package]] name = "reth-engine-local" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -5977,7 +5977,7 @@ dependencies = [ [[package]] name = "reth-engine-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6002,7 +6002,7 @@ dependencies = [ [[package]] name = "reth-engine-service" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "futures", "pin-project", @@ -6025,7 +6025,7 @@ dependencies = [ [[package]] name = "reth-engine-tree" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6075,7 +6075,7 @@ dependencies = [ [[package]] name = "reth-engine-util" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -6103,7 +6103,7 @@ dependencies = [ [[package]] name = "reth-errors" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -6115,7 +6115,7 @@ dependencies = [ [[package]] name = "reth-eth-wire" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-chains", "alloy-primitives", @@ -6143,7 +6143,7 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-chains", "alloy-consensus", @@ -6164,7 +6164,7 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "eyre", "reth-chainspec", @@ -6174,7 +6174,7 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6191,7 +6191,7 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6207,7 +6207,7 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -6221,7 +6221,7 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6245,7 +6245,7 @@ dependencies = [ [[package]] name = "reth-etl" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "rayon", "reth-db-api", @@ -6255,7 +6255,7 @@ dependencies = [ [[package]] name = "reth-evm" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6283,7 +6283,7 @@ dependencies = [ [[package]] name = "reth-execution-errors" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-evm", "alloy-primitives", @@ -6296,7 +6296,7 @@ dependencies = [ [[package]] name = "reth-execution-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6315,7 +6315,7 @@ dependencies = [ [[package]] name = "reth-exex" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6353,7 +6353,7 @@ dependencies = [ [[package]] name = "reth-exex-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6368,7 +6368,7 @@ dependencies = [ [[package]] name = "reth-fs-util" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "serde", "serde_json", @@ -6378,7 +6378,7 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6405,7 +6405,7 @@ dependencies = [ [[package]] name = "reth-ipc" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "async-trait", "bytes", @@ -6426,7 +6426,7 @@ dependencies = [ [[package]] name = "reth-libmdbx" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "bitflags 2.9.0", "byteorder", @@ -6443,7 +6443,7 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "bindgen", "cc", @@ -6452,7 +6452,7 @@ dependencies = [ [[package]] name = "reth-metrics" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "futures", "metrics", @@ -6464,7 +6464,7 @@ dependencies = [ [[package]] name = "reth-net-banlist" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", ] @@ -6472,7 +6472,7 @@ dependencies = [ [[package]] name = "reth-net-nat" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "futures-util", "if-addrs", @@ -6486,7 +6486,7 @@ dependencies = [ [[package]] name = "reth-network" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6542,7 +6542,7 @@ dependencies = [ [[package]] name = "reth-network-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "alloy-rpc-types-admin", @@ -6565,7 +6565,7 @@ dependencies = [ [[package]] name = "reth-network-p2p" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6588,7 +6588,7 @@ dependencies = [ [[package]] name = "reth-network-peers" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6603,7 +6603,7 @@ dependencies = [ [[package]] name = "reth-network-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -6617,7 +6617,7 @@ dependencies = [ [[package]] name = "reth-nippy-jar" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "anyhow", "bincode", @@ -6634,7 +6634,7 @@ dependencies = [ [[package]] name = "reth-node-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -6658,7 +6658,7 @@ dependencies = [ [[package]] name = "reth-node-builder" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6722,7 +6722,7 @@ dependencies = [ [[package]] name = "reth-node-core" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6771,7 +6771,7 @@ dependencies = [ [[package]] name = "reth-node-events" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6795,7 +6795,7 @@ dependencies = [ [[package]] name = "reth-node-metrics" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "eyre", "http", @@ -6815,7 +6815,7 @@ dependencies = [ [[package]] name = "reth-node-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "reth-chainspec", "reth-db-api", @@ -6828,7 +6828,7 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6854,7 +6854,7 @@ dependencies = [ [[package]] name = "reth-payload-builder" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6876,7 +6876,7 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "pin-project", "reth-payload-primitives", @@ -6888,7 +6888,7 @@ dependencies = [ [[package]] name = "reth-payload-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6908,7 +6908,7 @@ dependencies = [ [[package]] name = "reth-payload-util" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6918,7 +6918,7 @@ dependencies = [ [[package]] name = "reth-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "arbitrary", @@ -6933,7 +6933,7 @@ dependencies = [ [[package]] name = "reth-primitives-traits" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6967,7 +6967,7 @@ dependencies = [ [[package]] name = "reth-provider" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7013,7 +7013,7 @@ dependencies = [ [[package]] name = "reth-prune" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7041,7 +7041,7 @@ dependencies = [ [[package]] name = "reth-prune-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "arbitrary", @@ -7055,7 +7055,7 @@ dependencies = [ [[package]] name = "reth-revm" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -7070,7 +7070,7 @@ dependencies = [ [[package]] name = "reth-rpc" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -7141,7 +7141,7 @@ dependencies = [ [[package]] name = "reth-rpc-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-eips", "alloy-genesis", @@ -7167,7 +7167,7 @@ dependencies = [ [[package]] name = "reth-rpc-builder" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-network", "alloy-provider", @@ -7204,7 +7204,7 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7234,7 +7234,7 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -7279,7 +7279,7 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7323,7 +7323,7 @@ dependencies = [ [[package]] name = "reth-rpc-layer" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-rpc-types-engine", "http", @@ -7337,7 +7337,7 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7353,7 +7353,7 @@ dependencies = [ [[package]] name = "reth-rpc-types-compat" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7367,7 +7367,7 @@ dependencies = [ [[package]] name = "reth-scroll-chainspec" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-chains", "alloy-consensus", @@ -7391,7 +7391,7 @@ dependencies = [ [[package]] name = "reth-scroll-cli" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "clap", "eyre", @@ -7414,7 +7414,7 @@ dependencies = [ [[package]] name = "reth-scroll-consensus" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7434,7 +7434,7 @@ dependencies = [ [[package]] name = "reth-scroll-engine-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7459,7 +7459,7 @@ dependencies = [ [[package]] name = "reth-scroll-evm" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7487,7 +7487,7 @@ dependencies = [ [[package]] name = "reth-scroll-forks" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-chains", "alloy-primitives", @@ -7501,7 +7501,7 @@ dependencies = [ [[package]] name = "reth-scroll-node" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7543,7 +7543,7 @@ dependencies = [ [[package]] name = "reth-scroll-payload" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "reth-basic-payload-builder", "reth-payload-primitives", @@ -7556,7 +7556,7 @@ dependencies = [ [[package]] name = "reth-scroll-primitives" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7584,7 +7584,7 @@ dependencies = [ [[package]] name = "reth-scroll-rpc" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7619,7 +7619,7 @@ dependencies = [ [[package]] name = "reth-stages" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7664,7 +7664,7 @@ dependencies = [ [[package]] name = "reth-stages-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7691,7 +7691,7 @@ dependencies = [ [[package]] name = "reth-stages-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "arbitrary", @@ -7705,7 +7705,7 @@ dependencies = [ [[package]] name = "reth-static-file" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "parking_lot", @@ -7726,7 +7726,7 @@ dependencies = [ [[package]] name = "reth-static-file-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "clap", @@ -7738,7 +7738,7 @@ dependencies = [ [[package]] name = "reth-storage-api" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7762,7 +7762,7 @@ dependencies = [ [[package]] name = "reth-storage-errors" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7778,7 +7778,7 @@ dependencies = [ [[package]] name = "reth-tasks" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "auto_impl", "dyn-clone", @@ -7796,7 +7796,7 @@ dependencies = [ [[package]] name = "reth-testing-utils" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7811,7 +7811,7 @@ dependencies = [ [[package]] name = "reth-tokio-util" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "tokio", "tokio-stream", @@ -7821,7 +7821,7 @@ dependencies = [ [[package]] name = "reth-tracing" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "clap", "eyre", @@ -7836,7 +7836,7 @@ dependencies = [ [[package]] name = "reth-transaction-pool" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7875,7 +7875,7 @@ dependencies = [ [[package]] name = "reth-trie" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7900,7 +7900,7 @@ dependencies = [ [[package]] name = "reth-trie-common" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7926,7 +7926,7 @@ dependencies = [ [[package]] name = "reth-trie-db" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7946,7 +7946,7 @@ dependencies = [ [[package]] name = "reth-trie-parallel" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7970,7 +7970,7 @@ dependencies = [ [[package]] name = "reth-trie-sparse" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7985,7 +7985,7 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "zstd", ] @@ -8637,7 +8637,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll-alloy-consensus" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8650,13 +8650,12 @@ dependencies = [ "reth-codecs", "reth-codecs-derive", "serde", - "serde_with", ] [[package]] name = "scroll-alloy-evm" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8673,7 +8672,7 @@ dependencies = [ [[package]] name = "scroll-alloy-hardforks" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-hardforks", "auto_impl", @@ -8683,7 +8682,7 @@ dependencies = [ [[package]] name = "scroll-alloy-network" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-network", @@ -8697,7 +8696,7 @@ dependencies = [ [[package]] name = "scroll-alloy-provider" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "alloy-provider", @@ -8718,7 +8717,7 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8735,7 +8734,7 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types-engine" version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#4f177490c6c9069d473c900027326de0040c1df0" +source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", diff --git a/Cargo.toml b/Cargo.toml index 025f9c34..b3e3ca25 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -122,8 +122,8 @@ alloy-sol-types = { version = "0.8.20", default-features = false } alloy-transport = { version = "0.12.2", default-features = false } # scroll-alloy -scroll-alloy-consensus = { git = "https://github.com/scroll-tech/reth.git" } -scroll-alloy-provider = { git = "https://github.com/scroll-tech/reth.git" } +scroll-alloy-consensus = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +scroll-alloy-provider = { git = "https://github.com/scroll-tech/reth.git", default-features = false } scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", default-features = false } # reth @@ -151,9 +151,9 @@ scroll-network = { path = "crates/network" } scroll-wire = { path = "crates/scroll-wire" } # misc -arbitrary = "1.4" +arbitrary = { version = "1.4", default-features = false } async-trait = "0.1" -derive_more = "2.0" +derive_more = { version = "2.0", default-features = false } eyre = "0.6" futures = { version = "0.3", default-features = false } secp256k1 = { version = "0.29", default-features = false } diff --git a/crates/l1/Cargo.toml b/crates/l1/Cargo.toml index 4877a8eb..f6827c3f 100644 --- a/crates/l1/Cargo.toml +++ b/crates/l1/Cargo.toml @@ -18,8 +18,10 @@ alloy-sol-types.workspace = true scroll-alloy-consensus.workspace = true # misc -arbitrary = { workspace = true, optional = true } +arbitrary = { workspace = true, optional = true, features = ["derive"] } derive_more.workspace = true [features] -test-utils = ["dep:arbitrary"] +default = ["std"] +std = ["alloy-primitives/std", "scroll-alloy-consensus/std", "alloy-sol-types/std", "derive_more/std"] +test-utils = ["dep:arbitrary", "alloy-primitives/arbitrary"] diff --git a/crates/l1/src/abi/calls.rs b/crates/l1/src/abi/calls.rs index a96766e6..e3423205 100644 --- a/crates/l1/src/abi/calls.rs +++ b/crates/l1/src/abi/calls.rs @@ -1,3 +1,5 @@ +use std::vec::Vec; + use alloy_primitives::Bytes; use alloy_sol_types::{sol, SolCall}; diff --git a/crates/l1/src/lib.rs b/crates/l1/src/lib.rs index c5af0950..3cc80f99 100644 --- a/crates/l1/src/lib.rs +++ b/crates/l1/src/lib.rs @@ -1,4 +1,9 @@ //! All L1 related primitives. +#![cfg_attr(not(feature = "std"), no_std)] + +#[cfg(not(feature = "std"))] +extern crate alloc as std; + /// L1 contracts Abi. pub mod abi; diff --git a/crates/primitives/Cargo.toml b/crates/primitives/Cargo.toml index 313a0a11..6b49602d 100644 --- a/crates/primitives/Cargo.toml +++ b/crates/primitives/Cargo.toml @@ -19,3 +19,7 @@ scroll-alloy-consensus.workspace = true # misc derive_more = { workspace = true, features = ["from"] } + +[features] +default = ["std"] +std = ["alloy-primitives/std", "alloy-rpc-types-engine/std", "scroll-alloy-consensus/std", "derive_more/std"] diff --git a/crates/primitives/src/batch.rs b/crates/primitives/src/batch.rs index 1ce98142..c358236e 100644 --- a/crates/primitives/src/batch.rs +++ b/crates/primitives/src/batch.rs @@ -1,3 +1,5 @@ +use std::vec::Vec; + use alloy_primitives::{BlockNumber, B256}; /// The input data for a batch. diff --git a/crates/primitives/src/lib.rs b/crates/primitives/src/lib.rs index ff72ed2d..a67469fa 100644 --- a/crates/primitives/src/lib.rs +++ b/crates/primitives/src/lib.rs @@ -1,5 +1,9 @@ //! Primitive types for the Rollup Node. +#![cfg_attr(not(feature = "std"), no_std)] +#[cfg(not(feature = "std"))] +extern crate alloc as std; + pub use block::BlockInfo; mod block; diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index d66a38e8..2eab2124 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -455,8 +455,8 @@ where } /// Returns the next range of logs, filtering using [`L1_WATCHER_LOG_FILTER`], - /// for the block range in \[[`current_block`](field@L1Watcher::current_block); - /// [`current_block`](field@L1Watcher::current_block) + [`LOGS_QUERY_BLOCK_RANGE`]\] + /// for the block range in \[[`current_block`](field@L1Watcher::current_block_number); + /// [`current_block`](field@L1Watcher::current_block_number) + [`LOGS_QUERY_BLOCK_RANGE`]\] async fn next_filtered_logs(&self) -> L1WatcherResult> { // set the block range for the query let mut filter = L1_WATCHER_LOG_FILTER.clone(); From efeb80ca73b80f451e63f34174c5c857469b8ff9 Mon Sep 17 00:00:00 2001 From: Gregory Edison Date: Fri, 14 Mar 2025 11:25:03 +0100 Subject: [PATCH 33/63] fix: cargo features check --- crates/l1/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/l1/Cargo.toml b/crates/l1/Cargo.toml index f6827c3f..31758e41 100644 --- a/crates/l1/Cargo.toml +++ b/crates/l1/Cargo.toml @@ -24,4 +24,4 @@ derive_more.workspace = true [features] default = ["std"] std = ["alloy-primitives/std", "scroll-alloy-consensus/std", "alloy-sol-types/std", "derive_more/std"] -test-utils = ["dep:arbitrary", "alloy-primitives/arbitrary"] +test-utils = ["std", "dep:arbitrary", "alloy-primitives/arbitrary"] From 88cf5fe3726a6bea42651af625a94db3692579a5 Mon Sep 17 00:00:00 2001 From: frisitano Date: Fri, 14 Mar 2025 21:22:29 +0700 Subject: [PATCH 34/63] extend indexer --- Cargo.lock | 2 + Cargo.toml | 1 + crates/indexer/Cargo.toml | 9 ++++ crates/indexer/src/event.rs | 6 +++ crates/indexer/src/handle.rs | 28 +++++++++++ crates/indexer/src/lib.rs | 95 +++++++++++++++++++++++++++++------- crates/node/Cargo.toml | 2 +- 7 files changed, 124 insertions(+), 19 deletions(-) create mode 100644 crates/indexer/src/event.rs create mode 100644 crates/indexer/src/handle.rs diff --git a/Cargo.lock b/Cargo.lock index fda3d855..0cccba0d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8975,10 +8975,12 @@ dependencies = [ "arbitrary", "futures", "rand 0.9.0", + "reth-tokio-util", "rollup-node-primitives", "rollup-node-watcher", "scroll-db", "tokio", + "tracing", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 7cc9a3d6..db058ca3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -137,6 +137,7 @@ reth-network-peers = { git = "https://github.com/scroll-tech/reth.git", default- reth-primitives = { git = "https://github.com/scroll-tech/reth.git", default-features = false } reth-provider = { git = "https://github.com/scroll-tech/reth.git", default-features = false } reth-tasks = { git = "https://github.com/scroll-tech/reth.git" } +reth-tokio-util = { git = "https://github.com/scroll-tech/reth.git", default-features = false } # reth-scroll reth-scroll-chainspec = { git = "https://github.com/scroll-tech/reth.git", default-features = false } diff --git a/crates/indexer/Cargo.toml b/crates/indexer/Cargo.toml index ca780b71..1a3c23e5 100644 --- a/crates/indexer/Cargo.toml +++ b/crates/indexer/Cargo.toml @@ -13,12 +13,21 @@ workspace = true # alloy alloy-primitives.workspace = true +# reth +reth-tokio-util.workspace = true + # rollup-node scroll-db.workspace = true rollup-node-primitives.workspace = true rollup-node-watcher.workspace = true +# misc +tokio.workspace = true +tracing.workspace = true + [dev-dependencies] +alloy-primitives = { workspace = true, features = ["arbitrary"]} + # rollup-node scroll-db = { workspace = true, features = ["test-utils"] } rollup-node-primitives = { workspace = true, features = ["arbitrary"] } diff --git a/crates/indexer/src/event.rs b/crates/indexer/src/event.rs new file mode 100644 index 00000000..effc5ed7 --- /dev/null +++ b/crates/indexer/src/event.rs @@ -0,0 +1,6 @@ +/// An event emitted by the indexer. +#[derive(Debug, Clone, Copy)] +pub enum IndexerEvent { + /// An event indicating that an L1Notification has been indexed. + L1NotificationIndexed, +} diff --git a/crates/indexer/src/handle.rs b/crates/indexer/src/handle.rs new file mode 100644 index 00000000..4f5eece8 --- /dev/null +++ b/crates/indexer/src/handle.rs @@ -0,0 +1,28 @@ +use rollup_node_watcher::L1Notification; +use tokio::sync::mpsc::UnboundedSender; + +/// A command to the indexer. +#[derive(Debug)] +pub enum IndexerCommand { + /// A request to index an L1 notification. + IndexL1Notification(L1Notification), +} + +/// A handle which is used to send commands to the indexer. +#[derive(Debug)] +pub struct IndexerHandle { + /// The sender half of the channel used to send commands to the indexer. + cmd_tx: UnboundedSender, +} + +impl IndexerHandle { + /// Creates a new indexer handle with the given command sender. + pub fn new(cmd_tx: UnboundedSender) -> Self { + Self { cmd_tx } + } + + /// Sends a command to the indexer to index an L1 notification. + pub fn index_l1_notification(&self, notification: L1Notification) { + let _ = self.cmd_tx.send(IndexerCommand::IndexL1Notification(notification)); + } +} diff --git a/crates/indexer/src/lib.rs b/crates/indexer/src/lib.rs index 9cc959cb..650799d6 100644 --- a/crates/indexer/src/lib.rs +++ b/crates/indexer/src/lib.rs @@ -1,25 +1,69 @@ //! A library responsible for indexing data relevant to the L1. use alloy_primitives::B256; +use reth_tokio_util::{EventSender, EventStream}; use rollup_node_primitives::{BatchInput, L1MessageWithBlockNumber}; use rollup_node_watcher::L1Notification; use scroll_db::{Database, DbErr}; use std::sync::Arc; +use tokio::sync::mpsc; + +mod event; +pub use event::IndexerEvent; + +mod handle; +use handle::IndexerCommand; +pub use handle::IndexerHandle; /// The indexer is responsible for indexing data relevant to the L1. #[derive(Debug)] pub struct Indexer { + /// A reference to the database used to persist the indexed data. database: Arc, + /// A channel to receive commands to index data. + cmd_rx: mpsc::UnboundedReceiver, + /// An event sender for sending events to subscribers of the rollup node manager. + event_sender: Option>, } impl Indexer { - /// Creates a new indexer with the given database. - pub fn new(database: Arc) -> Self { - Self { database } + /// Creates a new indexer with the given database and returns the [`IndexerHandle`] . + pub fn spawn(database: Arc) -> IndexerHandle { + let (cmd_tx, cmd_rx) = mpsc::unbounded_channel(); + let indexer = Indexer { database, cmd_rx, event_sender: None }; + tokio::spawn(indexer.run()); + IndexerHandle::new(cmd_tx) + } + + /// Creates a new indexer with the given database and returns an [`IndexerHandle`] and + /// [`EventStream`]. + pub fn spawn_with_event_stream( + database: Arc, + ) -> (IndexerHandle, EventStream) { + let (cmd_tx, cmd_rx) = mpsc::unbounded_channel(); + let event_sender = EventSender::new(2000); + let event_listener = event_sender.new_listener(); + let indexer = Indexer { database, cmd_rx, event_sender: Some(event_sender) }; + tokio::spawn(indexer.run()); + (IndexerHandle::new(cmd_tx), event_listener) + } + + /// The main loop of the indexer. + async fn run(mut self) { + loop { + if let Some(IndexerCommand::IndexL1Notification(event)) = self.cmd_rx.recv().await { + if let Err(err) = self.handle_l1_event(event).await { + tracing::error!(target: "rollup_node_indexer", "error handling L1 event {:?}", err); + } + } else { + tracing::trace!(target: "rollup_node_indexer", "indexer command channel closed - shutting down"); + break; + } + } } /// Handles an event from the L1. pub async fn handle_l1_event(&self, event: L1Notification) -> Result<(), DbErr> { - match event { + let result = match event { L1Notification::Reorg(block_number) => self.handle_reorg(block_number).await, L1Notification::NewBlock(_block_number) | L1Notification::Finalized(_block_number) => { Ok(()) @@ -29,7 +73,13 @@ impl Indexer { L1Notification::BatchFinalization { hash, block_number } => { self.handle_batch_finalization(hash, block_number).await } + }; + + if let Some(event_sender) = &self.event_sender { + event_sender.notify(IndexerEvent::L1NotificationIndexed); } + + result } /// Handles a reorganization event by deleting all indexed data which is greater than the @@ -78,15 +128,16 @@ mod test { use rollup_node_primitives::BatchInput; use scroll_db::test_utils::setup_test_db; - async fn setup_test_indexer() -> (Indexer, Arc) { + async fn setup_test_indexer() -> (IndexerHandle, EventStream, Arc) { let db = Arc::new(setup_test_db().await); - (Indexer::new(db.clone()), db) + let (handle, event_stream) = Indexer::spawn_with_event_stream(db.clone()); + (handle, event_stream, db) } #[tokio::test] async fn test_handle_commit_batch() { // Instantiate indexer and db - let (indexer, db) = setup_test_indexer().await; + let (handle, mut event_stream, db) = setup_test_indexer().await; // Generate unstructured bytes. let mut bytes = [0u8; 1024]; @@ -94,7 +145,9 @@ mod test { let mut u = Unstructured::new(&bytes); let batch_input = BatchInput::arbitrary(&mut u).unwrap(); - indexer.handle_batch_input(batch_input.clone()).await.unwrap(); + handle.index_l1_notification(L1Notification::BatchCommit(batch_input.clone())); + + let _ = event_stream.next().await; let batch_input_result = db .get_batch_input_by_batch_index(db.connection(), batch_input.batch_index()) @@ -108,7 +161,7 @@ mod test { #[tokio::test] async fn test_handle_l1_message() { // Instantiate indexer and db - let (indexer, db) = setup_test_indexer().await; + let (handle, mut event_stream, db) = setup_test_indexer().await; // Generate unstructured bytes. let mut bytes = [0u8; 1024]; @@ -116,7 +169,9 @@ mod test { let mut u = Unstructured::new(&bytes); let l1_message = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); - indexer.handle_l1_message(l1_message.clone()).await.unwrap(); + handle.index_l1_notification(L1Notification::L1Message(l1_message.clone())); + + let _ = event_stream.next().await; let l1_message_result = db.get_l1_message(l1_message.transaction.queue_index).await.unwrap().unwrap(); @@ -127,7 +182,7 @@ mod test { #[tokio::test] async fn test_handle_reorg() { // Instantiate indexer and db - let (indexer, db) = setup_test_indexer().await; + let (handle, mut event_stream, db) = setup_test_indexer().await; // Generate unstructured bytes. let mut bytes = [0u8; 1024]; @@ -148,9 +203,9 @@ mod test { let batch_input_block_30 = batch_input_block_30; // Index batch inputs - indexer.handle_batch_input(batch_input_block_1.clone()).await.unwrap(); - indexer.handle_batch_input(batch_input_block_20.clone()).await.unwrap(); - indexer.handle_batch_input(batch_input_block_30.clone()).await.unwrap(); + handle.index_l1_notification(L1Notification::BatchCommit(batch_input_block_1.clone())); + handle.index_l1_notification(L1Notification::BatchCommit(batch_input_block_20.clone())); + handle.index_l1_notification(L1Notification::BatchCommit(batch_input_block_30.clone())); // Generate 3 random L1 messages and set their block numbers let mut l1_message_block_1 = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); @@ -166,12 +221,16 @@ mod test { let l1_message_block_30 = l1_message_block_30; // Index L1 messages - indexer.handle_l1_message(l1_message_block_1.clone()).await.unwrap(); - indexer.handle_l1_message(l1_message_block_20.clone()).await.unwrap(); - indexer.handle_l1_message(l1_message_block_30.clone()).await.unwrap(); + handle.index_l1_notification(L1Notification::L1Message(l1_message_block_1.clone())); + handle.index_l1_notification(L1Notification::L1Message(l1_message_block_20.clone())); + handle.index_l1_notification(L1Notification::L1Message(l1_message_block_30.clone())); // Reorg at block 20 - indexer.handle_reorg(20).await.unwrap(); + handle.index_l1_notification(L1Notification::Reorg(20)); + + for _ in 0..7 { + event_stream.next().await; + } // Check that the batch input at block 30 is deleted let batch_inputs = diff --git a/crates/node/Cargo.toml b/crates/node/Cargo.toml index e7d13797..7a7fac9e 100644 --- a/crates/node/Cargo.toml +++ b/crates/node/Cargo.toml @@ -16,7 +16,7 @@ scroll-alloy-network.workspace = true scroll-alloy-provider.workspace = true # reth -reth-tokio-util = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-tokio-util.workspace = true # reth-scroll reth-scroll-primitives.workspace = true From 5a35b98c19c8ae5490f5689afc3cfa3771b7c90b Mon Sep 17 00:00:00 2001 From: frisitano Date: Mon, 17 Mar 2025 18:28:17 +0700 Subject: [PATCH 35/63] integrate and refactor --- Cargo.lock | 100 ++++++++++-------- Cargo.toml | 3 +- bin/bridge/src/main.rs | 47 -------- bin/{bridge => rollup}/Cargo.toml | 7 +- bin/{bridge => rollup}/assets/block_1.json | 0 bin/{bridge => rollup}/assets/block_2.json | 0 bin/{bridge => rollup}/assets/block_3.json | 0 bin/{bridge => rollup}/assets/block_4.json | 0 bin/{bridge => rollup}/assets/block_5.json | 0 bin/{bridge => rollup}/assets/genesis.json | 0 bin/{bridge => rollup}/assets/jwt.hex | 0 .../assets/reth-mainnet.service | 0 bin/rollup/src/args.rs | 12 +++ bin/{bridge => rollup}/src/import.rs | 0 bin/{bridge => rollup}/src/lib.rs | 5 +- bin/rollup/src/main.rs | 49 +++++++++ bin/{bridge => rollup}/src/network.rs | 76 ++++++++++--- bin/{bridge => rollup}/tests/e2e.rs | 9 +- crates/database/db/src/db.rs | 12 ++- crates/database/migration/Cargo.toml | 1 + crates/database/migration/src/main.rs | 2 + crates/indexer/src/lib.rs | 4 +- crates/node/Cargo.toml | 2 + crates/node/src/lib.rs | 34 ++++-- crates/primitives/src/batch.rs | 8 ++ crates/watcher/src/lib.rs | 12 +-- 26 files changed, 254 insertions(+), 129 deletions(-) delete mode 100644 bin/bridge/src/main.rs rename bin/{bridge => rollup}/Cargo.toml (94%) rename bin/{bridge => rollup}/assets/block_1.json (100%) rename bin/{bridge => rollup}/assets/block_2.json (100%) rename bin/{bridge => rollup}/assets/block_3.json (100%) rename bin/{bridge => rollup}/assets/block_4.json (100%) rename bin/{bridge => rollup}/assets/block_5.json (100%) rename bin/{bridge => rollup}/assets/genesis.json (100%) rename bin/{bridge => rollup}/assets/jwt.hex (100%) rename bin/{bridge => rollup}/assets/reth-mainnet.service (100%) create mode 100644 bin/rollup/src/args.rs rename bin/{bridge => rollup}/src/import.rs (100%) rename bin/{bridge => rollup}/src/lib.rs (52%) create mode 100644 bin/rollup/src/main.rs rename bin/{bridge => rollup}/src/network.rs (57%) rename bin/{bridge => rollup}/tests/e2e.rs (94%) diff --git a/Cargo.lock b/Cargo.lock index 0cccba0d..5cced3c4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8967,6 +8967,57 @@ dependencies = [ "chrono", ] +[[package]] +name = "rollup-node" +version = "0.0.1" +dependencies = [ + "alloy-chains", + "alloy-primitives", + "alloy-provider", + "alloy-rpc-types-engine", + "clap", + "eyre", + "futures", + "reth-cli-util", + "reth-e2e-test-utils", + "reth-engine-local", + "reth-eth-wire-types", + "reth-network", + "reth-network-peers", + "reth-node-api", + "reth-node-builder", + "reth-node-core", + "reth-node-types", + "reth-payload-builder", + "reth-primitives", + "reth-provider", + "reth-rpc-builder", + "reth-rpc-server-types", + "reth-scroll-chainspec", + "reth-scroll-cli", + "reth-scroll-engine-primitives", + "reth-scroll-node", + "reth-scroll-primitives", + "reth-tasks", + "reth-tracing", + "reth-transaction-pool", + "rollup-node-indexer", + "rollup-node-manager", + "rollup-node-watcher", + "scroll-alloy-consensus", + "scroll-alloy-provider", + "scroll-alloy-rpc-types-engine", + "scroll-db", + "scroll-engine", + "scroll-migration", + "scroll-network", + "scroll-wire", + "secp256k1 0.29.1", + "serde_json", + "tokio", + "tracing", +] + [[package]] name = "rollup-node-indexer" version = "0.0.1" @@ -8992,7 +9043,9 @@ dependencies = [ "futures", "reth-scroll-primitives", "reth-tokio-util", + "rollup-node-indexer", "rollup-node-primitives", + "rollup-node-watcher", "scroll-alloy-network", "scroll-alloy-provider", "scroll-engine", @@ -9458,52 +9511,6 @@ dependencies = [ "serde", ] -[[package]] -name = "scroll-bridge" -version = "0.0.1" -dependencies = [ - "alloy-chains", - "alloy-primitives", - "alloy-rpc-types-engine", - "clap", - "eyre", - "futures", - "reth-cli-util", - "reth-e2e-test-utils", - "reth-engine-local", - "reth-eth-wire-types", - "reth-network", - "reth-network-peers", - "reth-node-api", - "reth-node-builder", - "reth-node-core", - "reth-node-types", - "reth-payload-builder", - "reth-primitives", - "reth-provider", - "reth-rpc-builder", - "reth-rpc-server-types", - "reth-scroll-chainspec", - "reth-scroll-cli", - "reth-scroll-engine-primitives", - "reth-scroll-node", - "reth-scroll-primitives", - "reth-tasks", - "reth-tracing", - "reth-transaction-pool", - "rollup-node-manager", - "scroll-alloy-consensus", - "scroll-alloy-provider", - "scroll-alloy-rpc-types-engine", - "scroll-engine", - "scroll-network", - "scroll-wire", - "secp256k1 0.29.1", - "serde_json", - "tokio", - "tracing", -] - [[package]] name = "scroll-db" version = "0.0.1" @@ -9565,6 +9572,7 @@ version = "0.1.0" dependencies = [ "async-std", "sea-orm-migration", + "tracing", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index db058ca3..d3615d77 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ exclude = [".github/"] [workspace] members = [ - "bin/bridge", + "bin/rollup", "crates/database/db", "crates/database/migration", "crates/engine", @@ -146,6 +146,7 @@ reth-scroll-node = { git = "https://github.com/scroll-tech/reth.git", default-fe reth-scroll-primitives = { git = "https://github.com/scroll-tech/reth.git", default-features = false } # rollup node +rollup-node-indexer = { path = "crates/indexer" } rollup-node-manager = { path = "crates/node" } rollup-node-primitives = { path = "crates/primitives" } rollup-node-watcher = { path = "crates/watcher" } diff --git a/bin/bridge/src/main.rs b/bin/bridge/src/main.rs deleted file mode 100644 index 8f77958c..00000000 --- a/bin/bridge/src/main.rs +++ /dev/null @@ -1,47 +0,0 @@ -#[global_allocator] -static ALLOC: reth_cli_util::allocator::Allocator = reth_cli_util::allocator::new_allocator(); - -fn main() { - use clap::Parser; - use reth_node_builder::{engine_tree_config::TreeConfig, EngineNodeLauncher}; - use reth_provider::providers::BlockchainProvider; - use reth_scroll_cli::{Cli, ScrollChainSpecParser, ScrollRollupArgs}; - use reth_scroll_node::{ScrollAddOns, ScrollNode}; - reth_cli_util::sigsegv_handler::install(); - - // Enable backtraces unless a RUST_BACKTRACE value has already been explicitly provided. - if std::env::var_os("RUST_BACKTRACE").is_none() { - std::env::set_var("RUST_BACKTRACE", "1"); - } - - if let Err(err) = Cli::::parse() - .run::<_, _, ScrollNode>(|builder, _| async move { - let engine_tree_config = TreeConfig::default() - .with_persistence_threshold(builder.config().engine.persistence_threshold) - .with_memory_block_buffer_target( - builder.config().engine.memory_block_buffer_target, - ); - let handle = builder - .with_types_and_provider::>() - // Override the network builder with the `ScrollBridgeNetworkBuilder` - .with_components( - ScrollNode::components().network(scroll_bridge::ScrollBridgeNetworkBuilder), - ) - .with_add_ons(ScrollAddOns::default()) - .launch_with_fn(|builder| { - let launcher = EngineNodeLauncher::new( - builder.task_executor().clone(), - builder.config().datadir(), - engine_tree_config, - ); - builder.launch_with(launcher) - }) - .await?; - - handle.node_exit_future.await - }) - { - eprintln!("Error: {err:?}"); - std::process::exit(1); - } -} diff --git a/bin/bridge/Cargo.toml b/bin/rollup/Cargo.toml similarity index 94% rename from bin/bridge/Cargo.toml rename to bin/rollup/Cargo.toml index ee8da682..61f366eb 100644 --- a/bin/bridge/Cargo.toml +++ b/bin/rollup/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "scroll-bridge" +name = "rollup-node" version.workspace = true edition.workspace = true rust-version.workspace = true @@ -9,6 +9,7 @@ exclude.workspace = true [dependencies] # alloy alloy-chains.workspace = true +alloy-provider.workspace = true alloy-rpc-types-engine.workspace = true # scroll-alloy @@ -41,9 +42,13 @@ reth-scroll-primitives = { workspace = true } scroll-wire.workspace = true scroll-network.workspace = true scroll-engine = { workspace = true, features = ["test-utils"] } +scroll-db = { workspace = true } +scroll-migration.workspace = true # rollup-node rollup-node-manager.workspace = true +rollup-node-indexer.workspace = true +rollup-node-watcher.workspace = true # misc clap = { version = "4", features = ["derive", "env"] } diff --git a/bin/bridge/assets/block_1.json b/bin/rollup/assets/block_1.json similarity index 100% rename from bin/bridge/assets/block_1.json rename to bin/rollup/assets/block_1.json diff --git a/bin/bridge/assets/block_2.json b/bin/rollup/assets/block_2.json similarity index 100% rename from bin/bridge/assets/block_2.json rename to bin/rollup/assets/block_2.json diff --git a/bin/bridge/assets/block_3.json b/bin/rollup/assets/block_3.json similarity index 100% rename from bin/bridge/assets/block_3.json rename to bin/rollup/assets/block_3.json diff --git a/bin/bridge/assets/block_4.json b/bin/rollup/assets/block_4.json similarity index 100% rename from bin/bridge/assets/block_4.json rename to bin/rollup/assets/block_4.json diff --git a/bin/bridge/assets/block_5.json b/bin/rollup/assets/block_5.json similarity index 100% rename from bin/bridge/assets/block_5.json rename to bin/rollup/assets/block_5.json diff --git a/bin/bridge/assets/genesis.json b/bin/rollup/assets/genesis.json similarity index 100% rename from bin/bridge/assets/genesis.json rename to bin/rollup/assets/genesis.json diff --git a/bin/bridge/assets/jwt.hex b/bin/rollup/assets/jwt.hex similarity index 100% rename from bin/bridge/assets/jwt.hex rename to bin/rollup/assets/jwt.hex diff --git a/bin/bridge/assets/reth-mainnet.service b/bin/rollup/assets/reth-mainnet.service similarity index 100% rename from bin/bridge/assets/reth-mainnet.service rename to bin/rollup/assets/reth-mainnet.service diff --git a/bin/rollup/src/args.rs b/bin/rollup/src/args.rs new file mode 100644 index 00000000..d7de68ae --- /dev/null +++ b/bin/rollup/src/args.rs @@ -0,0 +1,12 @@ +use std::path::PathBuf; + +#[derive(Debug, clap::Args)] +pub struct ScrollBridgeNodeArgs { + /// A bool to represent if new blocks should be bridged from the eth wire protocol to the + /// scroll wire protocol. + pub enable_eth_scroll_wire_bridge: bool, + /// A bool that represets if the scroll wire protocol should be enabled. + pub enable_scroll_wire: bool, + /// Database path + pub database_path: Option, +} diff --git a/bin/bridge/src/import.rs b/bin/rollup/src/import.rs similarity index 100% rename from bin/bridge/src/import.rs rename to bin/rollup/src/import.rs diff --git a/bin/bridge/src/lib.rs b/bin/rollup/src/lib.rs similarity index 52% rename from bin/bridge/src/lib.rs rename to bin/rollup/src/lib.rs index bf3577b1..66ea71f9 100644 --- a/bin/bridge/src/lib.rs +++ b/bin/rollup/src/lib.rs @@ -1,7 +1,10 @@ //! Scroll Network Bridge Components. +mod args; +pub use args::ScrollBridgeNodeArgs; + mod import; pub use import::BridgeBlockImport; mod network; -pub use network::ScrollBridgeNetworkBuilder; +pub use network::ScrollRollupNetworkBuilder; diff --git a/bin/rollup/src/main.rs b/bin/rollup/src/main.rs new file mode 100644 index 00000000..0390c76b --- /dev/null +++ b/bin/rollup/src/main.rs @@ -0,0 +1,49 @@ +#[global_allocator] +static ALLOC: reth_cli_util::allocator::Allocator = reth_cli_util::allocator::new_allocator(); + +fn main() { + use clap::Parser; + use reth_node_builder::{engine_tree_config::TreeConfig, EngineNodeLauncher}; + use reth_provider::providers::BlockchainProvider; + use reth_scroll_cli::{Cli, ScrollChainSpecParser}; + use reth_scroll_node::{ScrollAddOns, ScrollNode}; + reth_cli_util::sigsegv_handler::install(); + use rollup_node::ScrollBridgeNodeArgs; + + // Enable backtraces unless a RUST_BACKTRACE value has already been explicitly provided. + if std::env::var_os("RUST_BACKTRACE").is_none() { + std::env::set_var("RUST_BACKTRACE", "1"); + } + + if let Err(err) = Cli::::parse() + .run::<_, _, ScrollNode>(|builder, scroll_bridge_node_args| async move { + let engine_tree_config = TreeConfig::default() + .with_persistence_threshold(builder.config().engine.persistence_threshold) + .with_memory_block_buffer_target( + builder.config().engine.memory_block_buffer_target, + ); + let handle = + builder + .with_types_and_provider::>() + // Override the network builder with the `ScrollBridgeNetworkBuilder` + .with_components(ScrollNode::components().network( + rollup_node::ScrollRollupNetworkBuilder::new(scroll_bridge_node_args), + )) + .with_add_ons(ScrollAddOns::default()) + .launch_with_fn(|builder| { + let launcher = EngineNodeLauncher::new( + builder.task_executor().clone(), + builder.config().datadir(), + engine_tree_config, + ); + builder.launch_with(launcher) + }) + .await?; + + handle.node_exit_future.await + }) + { + eprintln!("Error: {err:?}"); + std::process::exit(1); + } +} diff --git a/bin/bridge/src/network.rs b/bin/rollup/src/network.rs similarity index 57% rename from bin/bridge/src/network.rs rename to bin/rollup/src/network.rs index d867f866..71f39293 100644 --- a/bin/bridge/src/network.rs +++ b/bin/rollup/src/network.rs @@ -1,4 +1,6 @@ -use reth_network::{config::NetworkMode, NetworkConfig, NetworkManager, PeersInfo}; +use alloy_provider::ProviderBuilder; +use migration::MigratorTrait; +use reth_network::{config::NetworkMode, NetworkManager, PeersInfo}; use reth_node_api::TxTy; use reth_node_builder::{components::NetworkBuilder, BuilderContext, FullNodeTypes}; use reth_node_types::NodeTypes; @@ -6,18 +8,33 @@ use reth_rpc_builder::config::RethRpcServerConfig; use reth_scroll_chainspec::ScrollChainSpec; use reth_scroll_primitives::ScrollPrimitives; use reth_transaction_pool::{PoolTransaction, TransactionPool}; +use rollup_node_indexer::Indexer; use rollup_node_manager::{PoAConsensus, RollupNodeManager}; +use rollup_node_watcher::L1Watcher; use scroll_alloy_provider::ScrollAuthEngineApiProvider; +use scroll_db::Database; use scroll_engine::{test_utils::NoopExecutionPayloadProvider, EngineDriver, ForkchoiceState}; use scroll_network::NetworkManager as ScrollNetworkManager; use scroll_wire::{ProtocolHandler, ScrollWireConfig}; +use std::{path::PathBuf, sync::Arc}; use tracing::info; +use crate::ScrollBridgeNodeArgs; + /// The network builder for the eth-wire to scroll-wire bridge. -#[derive(Debug, Default)] -pub struct ScrollBridgeNetworkBuilder; +#[derive(Debug)] +pub struct ScrollRollupNetworkBuilder { + config: ScrollBridgeNodeArgs, +} -impl NetworkBuilder for ScrollBridgeNetworkBuilder +impl ScrollRollupNetworkBuilder { + /// Returns a new [`ScrollRollupNetworkBuilder`] instance with the provided config. + pub fn new(config: ScrollBridgeNodeArgs) -> Self { + Self { config } + } +} + +impl NetworkBuilder for ScrollRollupNetworkBuilder where Node: FullNodeTypes>, @@ -37,21 +54,28 @@ where pool: Pool, ) -> eyre::Result> { // Create a new block channel to bridge between eth-wire and scroll-wire protocols. - let (new_block_tx, new_block_rx) = tokio::sync::mpsc::unbounded_channel(); + let (block_tx, block_rx) = + if self.config.enable_eth_scroll_wire_bridge & self.config.enable_scroll_wire { + let (tx, rx) = tokio::sync::mpsc::unbounded_channel(); + (Some(tx), Some(rx)) + } else { + (None, None) + }; // Create a scroll-wire protocol handler. let (scroll_wire_handler, events) = ProtocolHandler::new(ScrollWireConfig::new(true)); // Create the network configuration. - let config = ctx.network_config()?; - let mut config = NetworkConfig { - network_mode: NetworkMode::Work, - block_import: Box::new(super::BridgeBlockImport::new(new_block_tx.clone())), - ..config - }; + let mut config = ctx.network_config()?; + config.network_mode = NetworkMode::Work; + if let Some(tx) = block_tx { + config.block_import = Box::new(super::BridgeBlockImport::new(tx.clone())) + } // Add the scroll-wire protocol handler to the network config. - config.extra_protocols.push(scroll_wire_handler); + if self.config.enable_scroll_wire { + config.extra_protocols.push(scroll_wire_handler); + } // Create the network manager. let network = NetworkManager::::builder(config).await?; @@ -73,14 +97,40 @@ where ); let engine = EngineDriver::new(engine_api, payload_provider); + // Instantiate the database + let database_path = if let Some(db_path) = self.config.database_path { + db_path + } else { + PathBuf::from("sqlite://").join(ctx.config().datadir().db().join("scroll.db")) + }; + let db = Database::new(database_path.to_str().unwrap()).await?; + + // Run the database migrations + migration::Migrator::up(db.connection(), None).await?; + + // Wrap the database in an Arc + let db = Arc::new(db); + + // Spawn the indexer + let indexer = Indexer::spawn(db.clone()); + + // Spawn the L1Watcher + let l1_rpc = ProviderBuilder::new().on_http( + "https://eth-mainnet.g.alchemy.com/v2/_JqpVl1eGmQwkZ666pMpQTKJnsoblTtJ".parse()?, + ); + let l1_notification_rx = L1Watcher::spawn(l1_rpc, 20035952).await; + + // Spawn the rollup node manager let rollup_node_manager = RollupNodeManager::new( scroll_network_manager, engine, + l1_notification_rx, + indexer, ForkchoiceState::genesis( ctx.config().chain.chain.try_into().expect("must be a named chain"), ), consensus, - new_block_rx, + block_rx, ); ctx.task_executor().spawn(rollup_node_manager); diff --git a/bin/bridge/tests/e2e.rs b/bin/rollup/tests/e2e.rs similarity index 94% rename from bin/bridge/tests/e2e.rs rename to bin/rollup/tests/e2e.rs index 5a9fd159..5e4016ca 100644 --- a/bin/bridge/tests/e2e.rs +++ b/bin/rollup/tests/e2e.rs @@ -14,6 +14,7 @@ use reth_scroll_chainspec::ScrollChainSpec; use reth_scroll_engine_primitives::ScrollPayloadBuilderAttributes; use reth_scroll_node::{ScrollNetworkPrimitives, ScrollNode}; use reth_tasks::TaskManager; +use rollup_node::ScrollBridgeNodeArgs; use scroll_alloy_rpc_types_engine::ScrollPayloadAttributes; use scroll_network::{NewBlockWithPeer, SCROLL_MAINNET}; use scroll_wire::ScrollWireConfig; @@ -131,12 +132,18 @@ pub async fn build_bridge_node( // Create the node for a bridge node that will bridge messages from the eth-wire protocol // to the scroll-wire protocol. + let node_args = ScrollBridgeNodeArgs { + enable_eth_scroll_wire_bridge: true, + enable_scroll_wire: true, + database_path: Some(PathBuf::from("sqlite::memory:")), + }; let node = ScrollNode; let NodeHandle { node, node_exit_future: _ } = NodeBuilder::new(node_config.clone()) .testing_node(exec.clone()) .with_types_and_provider::>() .with_components( - node.components_builder().network(scroll_bridge::ScrollBridgeNetworkBuilder), + node.components_builder() + .network(rollup_node::ScrollRollupNetworkBuilder::new(node_args)), ) .with_add_ons(node.add_ons()) .launch() diff --git a/crates/database/db/src/db.rs b/crates/database/db/src/db.rs index 797d7881..2bed0323 100644 --- a/crates/database/db/src/db.rs +++ b/crates/database/db/src/db.rs @@ -36,6 +36,7 @@ impl Database { conn: &C, batch_input: BatchInput, ) -> Result { + tracing::trace!(target: "scroll::db", batch_hash = ?batch_input.batch_hash(), batch_index = batch_input.batch_index(), "Inserting batch input into database."); let batch_input: models::batch_input::ActiveModel = batch_input.into(); batch_input.insert(conn).await } @@ -49,16 +50,16 @@ impl Database { block_number: u64, ) -> Result<(), DbErr> { if let Some(batch) = models::batch_input::Entity::find() - .filter(models::batch_input::Column::Hash.eq(batch_hash.to_vec())) // Filter by batch_hash + .filter(models::batch_input::Column::Hash.eq(batch_hash.to_vec())) .one(conn) .await? - // Retrieve single row { + tracing::trace!(target: "scroll::db", batch_hash = ?batch_hash, block_number, "Finalizing batch input in database."); let mut batch: models::batch_input::ActiveModel = batch.into(); batch.finalized_block_number = Set(Some(block_number as i64)); - batch.update(conn).await?; // Update only this field + batch.update(conn).await?; } else { - tracing::warn!( + tracing::error!( target: "scroll::db", batch_hash = ?batch_hash, block_number, @@ -89,6 +90,7 @@ impl Database { conn: &C, block_number: u64, ) -> Result<(), DbErr> { + tracing::trace!(target: "scroll::db", block_number, "Deleting batch inputs greater than block number."); models::batch_input::Entity::delete_many() .filter(models::batch_input::Column::BlockNumber.gt(block_number as i64)) .exec(conn) @@ -112,6 +114,7 @@ impl Database { conn: &C, l1_message: L1MessageWithBlockNumber, ) -> Result<(), DbErr> { + tracing::trace!(target: "scroll::db", queue_index = l1_message.transaction.queue_index, "Inserting L1 message into database."); let l1_message: models::l1_message::ActiveModel = l1_message.into(); l1_message.insert(conn).await?; Ok(()) @@ -124,6 +127,7 @@ impl Database { conn: &C, block_number: u64, ) -> Result<(), DbErr> { + tracing::trace!(target: "scroll::db", block_number, "Deleting L1 messages greater than block number."); models::l1_message::Entity::delete_many() .filter(models::l1_message::Column::BlockNumber.gt(block_number as i64)) .exec(conn) diff --git a/crates/database/migration/Cargo.toml b/crates/database/migration/Cargo.toml index 84a35158..53c91bc1 100644 --- a/crates/database/migration/Cargo.toml +++ b/crates/database/migration/Cargo.toml @@ -10,6 +10,7 @@ path = "src/lib.rs" [dependencies] async-std = { version = "1", features = ["attributes", "tokio1"] } +tracing.workspace = true [dependencies.sea-orm-migration] version = "1.1.0" diff --git a/crates/database/migration/src/main.rs b/crates/database/migration/src/main.rs index c6b6e48d..e1a4dcf2 100644 --- a/crates/database/migration/src/main.rs +++ b/crates/database/migration/src/main.rs @@ -2,5 +2,7 @@ use sea_orm_migration::prelude::*; #[async_std::main] async fn main() { + tracing::info!(target: "scroll::migration", "Running database migrations."); cli::run_cli(migration::Migrator).await; + tracing::info!(target: "scroll::migration", "Database migrations complete.") } diff --git a/crates/indexer/src/lib.rs b/crates/indexer/src/lib.rs index 650799d6..4706a26a 100644 --- a/crates/indexer/src/lib.rs +++ b/crates/indexer/src/lib.rs @@ -14,14 +14,14 @@ mod handle; use handle::IndexerCommand; pub use handle::IndexerHandle; -/// The indexer is responsible for indexing data relevant to the L1. +/// The indexer is responsible for indexing data relevant to the rollup node. #[derive(Debug)] pub struct Indexer { /// A reference to the database used to persist the indexed data. database: Arc, /// A channel to receive commands to index data. cmd_rx: mpsc::UnboundedReceiver, - /// An event sender for sending events to subscribers of the rollup node manager. + /// An event sender for sending events to subscribers of the indexer. event_sender: Option>, } diff --git a/crates/node/Cargo.toml b/crates/node/Cargo.toml index 7a7fac9e..86e8e1ac 100644 --- a/crates/node/Cargo.toml +++ b/crates/node/Cargo.toml @@ -28,6 +28,8 @@ scroll-wire.workspace = true # rollup node rollup-node-primitives.workspace = true +rollup-node-indexer.workspace = true +rollup-node-watcher.workspace = true # misc futures.workspace = true diff --git a/crates/node/src/lib.rs b/crates/node/src/lib.rs index 85ee1dba..bd046725 100644 --- a/crates/node/src/lib.rs +++ b/crates/node/src/lib.rs @@ -6,6 +6,8 @@ use alloy_rpc_types_engine::{ }; use futures::{stream::FuturesOrdered, StreamExt}; use reth_tokio_util::{EventSender, EventStream}; +use rollup_node_indexer::IndexerHandle; +use rollup_node_watcher::L1Notification; use scroll_alloy_network::Scroll as ScrollNetwork; use scroll_alloy_provider::ScrollEngineApi; use scroll_engine::{EngineDriver, EngineDriverError, ExecutionPayloadProvider, ForkchoiceState}; @@ -20,8 +22,8 @@ use std::{ sync::Arc, task::{Context, Poll}, }; -use tokio::sync::mpsc::UnboundedReceiver; -use tokio_stream::wrappers::UnboundedReceiverStream; +use tokio::sync::mpsc::{Receiver, UnboundedReceiver}; +use tokio_stream::wrappers::{ReceiverStream, UnboundedReceiverStream}; use tracing::{error, trace}; mod event; @@ -58,10 +60,14 @@ pub struct RollupNodeManager { network: NetworkManager, /// The engine driver used to communicate with the engine. engine: Arc>, + /// A receiver for [`L1Notification`]s from the [`L1Watcher`]. + l1_notification_rx: ReceiverStream>, + /// A handle to the indexer. + indexer: IndexerHandle, /// The consensus algorithm used by the rollup node. consensus: C, /// The receiver for new blocks received from the network (used to bridge from eth-wire). - new_block_rx: UnboundedReceiverStream, + new_block_rx: Option>, /// The forkchoice state of the rollup node. forkchoice_state: ForkchoiceState, /// A collection of pending block imports. @@ -80,15 +86,19 @@ where pub fn new( network: NetworkManager, engine: EngineDriver, + l1_notification_rx: Receiver>, + indexer: IndexerHandle, forkchoice_state: ForkchoiceState, consensus: C, - new_block_rx: UnboundedReceiver, + new_block_rx: Option>, ) -> Self { Self { network, engine: Arc::new(engine), + l1_notification_rx: l1_notification_rx.into(), + indexer, consensus, - new_block_rx: new_block_rx.into(), + new_block_rx: new_block_rx.map(Into::into), forkchoice_state, pending_block_imports: FuturesOrdered::new(), event_sender: None, @@ -211,6 +221,11 @@ where self.network.handle().block_import_outcome(outcome); } } + + /// Handles an [`L1Notification`] from the L1 watcher. + fn handle_l1_notification(&self, notification: L1Notification) { + self.indexer.index_l1_notification(notification); + } } impl Future for RollupNodeManager @@ -231,8 +246,15 @@ where this.handle_block_import_outcome(block_info, outcome); } + // Drain all L1 notifications. + while let Poll::Ready(Some(event)) = this.l1_notification_rx.poll_next_unpin(cx) { + this.handle_l1_notification((*event).clone()); + } + // Handle blocks received from the eth-wire protocol. - while let Poll::Ready(Some(block)) = this.new_block_rx.poll_next_unpin(cx) { + while let Some(Poll::Ready(Some(block))) = + this.new_block_rx.as_mut().map(|new_block_rx| new_block_rx.poll_next_unpin(cx)) + { this.handle_new_block(block, cx); } diff --git a/crates/primitives/src/batch.rs b/crates/primitives/src/batch.rs index 43bcc8f4..66f00744 100644 --- a/crates/primitives/src/batch.rs +++ b/crates/primitives/src/batch.rs @@ -29,6 +29,14 @@ impl BatchInput { } } + /// Returns the hash of the batch. + pub fn batch_hash(&self) -> &B256 { + match self { + BatchInput::BatchInputDataV1(data) => &data.batch_hash, + BatchInput::BatchInputDataV2(data) => &data.batch_input_data.batch_hash, + } + } + /// Sets the block number of the batch. pub fn set_block_number(&mut self, block_number: BlockNumber) { match self { diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index 6ecd0d5f..3d2e0d4e 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -29,7 +29,7 @@ use tokio::sync::mpsc; /// The block range used to fetch L1 logs. /// TODO(greg): evaluate the performance using various block ranges. -pub const LOGS_QUERY_BLOCK_RANGE: u64 = 1000; +pub const LOGS_QUERY_BLOCK_RANGE: u64 = 10000; /// The maximum count of unfinalized blocks we can have in Ethereum. pub const MAX_UNFINALIZED_BLOCK_COUNT: usize = 96; @@ -74,7 +74,7 @@ pub struct L1Watcher { } /// The L1 notification type yielded by the [`L1Watcher`]. -#[derive(Debug, PartialEq, Eq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum L1Notification { /// A notification for a reorg of the L1 up to a given block number. Reorg(u64), @@ -147,11 +147,9 @@ where .inspect_err(|err| tracing::error!(target: "scroll::watcher", ?err)); // update loop interval if needed. - let loop_interval = - if self.is_synced() { SLOW_SYNC_INTERVAL } else { FAST_SYNC_INTERVAL }; - - // sleep the appropriate amount of time. - tokio::time::sleep(loop_interval).await; + if self.is_synced() { + tokio::time::sleep(SLOW_SYNC_INTERVAL).await; + }; } } From 204a0d1d34a05177d20252c4b95fe98bc36d4a54 Mon Sep 17 00:00:00 2001 From: frisitano Date: Mon, 17 Mar 2025 18:51:18 +0700 Subject: [PATCH 36/63] extend and refactor database, migrations and batch primitive --- Cargo.lock | 2 ++ crates/database/db/Cargo.toml | 1 + crates/database/db/src/db.rs | 36 ++++++++++++++++++- crates/database/db/src/lib.rs | 4 ++- crates/database/db/src/models/batch_input.rs | 3 ++ crates/database/migration/Cargo.toml | 1 + ...0220101_000001_create_batch_input_table.rs | 2 ++ crates/database/migration/src/main.rs | 2 ++ crates/primitives/src/batch.rs | 22 +++++++++--- 9 files changed, 67 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b986021d..80e8b3fd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9503,6 +9503,7 @@ dependencies = [ "serde", "serde_json", "tokio", + "tracing", ] [[package]] @@ -9547,6 +9548,7 @@ version = "0.1.0" dependencies = [ "async-std", "sea-orm-migration", + "tracing", ] [[package]] diff --git a/crates/database/db/Cargo.toml b/crates/database/db/Cargo.toml index 140de1d0..04d487e6 100644 --- a/crates/database/db/Cargo.toml +++ b/crates/database/db/Cargo.toml @@ -27,6 +27,7 @@ sea-orm = { version = "1.1.0", features = ["sqlx-sqlite", "runtime-tokio-native- serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" tokio = { workspace = true, features = ["macros", "sync"] } +tracing.workspace = true [dev-dependencies] # scroll diff --git a/crates/database/db/src/db.rs b/crates/database/db/src/db.rs index df1d2cb3..2bed0323 100644 --- a/crates/database/db/src/db.rs +++ b/crates/database/db/src/db.rs @@ -1,9 +1,10 @@ use super::models; +use alloy_primitives::B256; use futures::{Stream, StreamExt}; use rollup_node_primitives::{BatchInput, L1MessageWithBlockNumber}; use sea_orm::{ ActiveModelTrait, ColumnTrait, ConnectionTrait, Database as SeaOrmDatabase, DatabaseConnection, - DatabaseTransaction, DbErr, EntityTrait, QueryFilter, TransactionTrait, + DatabaseTransaction, DbErr, EntityTrait, QueryFilter, Set, TransactionTrait, }; /// The [`Database`] struct is responsible for interacting with the database. @@ -35,10 +36,40 @@ impl Database { conn: &C, batch_input: BatchInput, ) -> Result { + tracing::trace!(target: "scroll::db", batch_hash = ?batch_input.batch_hash(), batch_index = batch_input.batch_index(), "Inserting batch input into database."); let batch_input: models::batch_input::ActiveModel = batch_input.into(); batch_input.insert(conn).await } + /// Finalize a [`BatchInput`] in the database and set the finalized block number to the provided + /// block number. + pub async fn finalize_batch_input( + &self, + conn: &C, + batch_hash: B256, + block_number: u64, + ) -> Result<(), DbErr> { + if let Some(batch) = models::batch_input::Entity::find() + .filter(models::batch_input::Column::Hash.eq(batch_hash.to_vec())) + .one(conn) + .await? + { + tracing::trace!(target: "scroll::db", batch_hash = ?batch_hash, block_number, "Finalizing batch input in database."); + let mut batch: models::batch_input::ActiveModel = batch.into(); + batch.finalized_block_number = Set(Some(block_number as i64)); + batch.update(conn).await?; + } else { + tracing::error!( + target: "scroll::db", + batch_hash = ?batch_hash, + block_number, + "Batch not found in DB when trying to finalize." + ); + } + + Ok(()) + } + /// Get a [`BatchInput`] from the database by its batch index. pub async fn get_batch_input_by_batch_index( &self, @@ -59,6 +90,7 @@ impl Database { conn: &C, block_number: u64, ) -> Result<(), DbErr> { + tracing::trace!(target: "scroll::db", block_number, "Deleting batch inputs greater than block number."); models::batch_input::Entity::delete_many() .filter(models::batch_input::Column::BlockNumber.gt(block_number as i64)) .exec(conn) @@ -82,6 +114,7 @@ impl Database { conn: &C, l1_message: L1MessageWithBlockNumber, ) -> Result<(), DbErr> { + tracing::trace!(target: "scroll::db", queue_index = l1_message.transaction.queue_index, "Inserting L1 message into database."); let l1_message: models::l1_message::ActiveModel = l1_message.into(); l1_message.insert(conn).await?; Ok(()) @@ -94,6 +127,7 @@ impl Database { conn: &C, block_number: u64, ) -> Result<(), DbErr> { + tracing::trace!(target: "scroll::db", block_number, "Deleting L1 messages greater than block number."); models::l1_message::Entity::delete_many() .filter(models::l1_message::Column::BlockNumber.gt(block_number as i64)) .exec(conn) diff --git a/crates/database/db/src/lib.rs b/crates/database/db/src/lib.rs index 140db1f3..2a0f8940 100644 --- a/crates/database/db/src/lib.rs +++ b/crates/database/db/src/lib.rs @@ -6,5 +6,7 @@ pub use models::*; mod db; pub use db::Database; -#[cfg(test)] +#[cfg(feature = "test-utils")] pub mod test_utils; + +pub use sea_orm::DbErr; diff --git a/crates/database/db/src/models/batch_input.rs b/crates/database/db/src/models/batch_input.rs index 266677a8..51237d5c 100644 --- a/crates/database/db/src/models/batch_input.rs +++ b/crates/database/db/src/models/batch_input.rs @@ -18,6 +18,7 @@ pub struct Model { chunks: Chunks, skipped_l1_message_bitmap: Vec, blob_hash: Vec, + finalized_block_number: Option, } /// The relation for the batch input model. @@ -58,6 +59,7 @@ impl From for ActiveModel { chunks: ActiveValue::Set(Chunks(batch_input.chunks)), skipped_l1_message_bitmap: ActiveValue::Set(batch_input.skipped_l1_message_bitmap), blob_hash: ActiveValue::Set(vec![]), + finalized_block_number: ActiveValue::Unchanged(None), }, BatchInputPrimitive::BatchInputDataV2(batch_input) => Self { index: ActiveValue::Set( @@ -85,6 +87,7 @@ impl From for ActiveModel { batch_input.batch_input_data.skipped_l1_message_bitmap, ), blob_hash: ActiveValue::Set(batch_input.blob_hash.to_vec()), + finalized_block_number: ActiveValue::Unchanged(None), }, } } diff --git a/crates/database/migration/Cargo.toml b/crates/database/migration/Cargo.toml index 84a35158..53c91bc1 100644 --- a/crates/database/migration/Cargo.toml +++ b/crates/database/migration/Cargo.toml @@ -10,6 +10,7 @@ path = "src/lib.rs" [dependencies] async-std = { version = "1", features = ["attributes", "tokio1"] } +tracing.workspace = true [dependencies.sea-orm-migration] version = "1.1.0" diff --git a/crates/database/migration/src/m20220101_000001_create_batch_input_table.rs b/crates/database/migration/src/m20220101_000001_create_batch_input_table.rs index bc12df20..a0a22e02 100644 --- a/crates/database/migration/src/m20220101_000001_create_batch_input_table.rs +++ b/crates/database/migration/src/m20220101_000001_create_batch_input_table.rs @@ -29,6 +29,7 @@ impl MigrationTrait for Migration { .col(var_binary(BatchInput::SkippedL1MessageBitmap, HASH_LENGTH)) // TODO: Set the blob hash as nullable .col(binary_len(BatchInput::BlobHash, HASH_LENGTH)) + .col(boolean_null(BatchInput::FinalizedBlockNumber)) .to_owned(), ) .await @@ -51,5 +52,6 @@ enum BatchInput { Chunks, SkippedL1MessageBitmap, BlobHash, + FinalizedBlockNumber, // TODO: Do we need the blob proof? } diff --git a/crates/database/migration/src/main.rs b/crates/database/migration/src/main.rs index c6b6e48d..e1a4dcf2 100644 --- a/crates/database/migration/src/main.rs +++ b/crates/database/migration/src/main.rs @@ -2,5 +2,7 @@ use sea_orm_migration::prelude::*; #[async_std::main] async fn main() { + tracing::info!(target: "scroll::migration", "Running database migrations."); cli::run_cli(migration::Migrator).await; + tracing::info!(target: "scroll::migration", "Database migrations complete.") } diff --git a/crates/primitives/src/batch.rs b/crates/primitives/src/batch.rs index 35e64f38..66f00744 100644 --- a/crates/primitives/src/batch.rs +++ b/crates/primitives/src/batch.rs @@ -1,5 +1,3 @@ -use std::vec::Vec; - use alloy_primitives::{BlockNumber, B256}; /// The input data for a batch. @@ -30,6 +28,22 @@ impl BatchInput { BatchInput::BatchInputDataV2(data) => data.batch_input_data.batch_index, } } + + /// Returns the hash of the batch. + pub fn batch_hash(&self) -> &B256 { + match self { + BatchInput::BatchInputDataV1(data) => &data.batch_hash, + BatchInput::BatchInputDataV2(data) => &data.batch_input_data.batch_hash, + } + } + + /// Sets the block number of the batch. + pub fn set_block_number(&mut self, block_number: BlockNumber) { + match self { + BatchInput::BatchInputDataV1(data) => data.block_number = block_number, + BatchInput::BatchInputDataV2(data) => data.batch_input_data.block_number = block_number, + } + } } /// The input data for a batch. @@ -173,7 +187,7 @@ mod arbitrary_impl { impl arbitrary::Arbitrary<'_> for BatchInput { fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result { - let version = u.arbitrary::()? % 8; + let version = u.arbitrary::()? % 2; match version { 0 => Ok(BatchInput::BatchInputDataV1(u.arbitrary()?)), 1 => Ok(BatchInput::BatchInputDataV2(u.arbitrary()?)), @@ -184,7 +198,7 @@ mod arbitrary_impl { impl arbitrary::Arbitrary<'_> for BatchInputV1 { fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result { - let version = 0; + let version = u.arbitrary::()? % 8; let batch_index = u.arbitrary::()? as u64; let batch_hash = u.arbitrary::()?; let block_number = u.arbitrary::()? as u64; From fb95b893845b58fe5673e3926899191868cb404d Mon Sep 17 00:00:00 2001 From: frisitano Date: Mon, 17 Mar 2025 18:56:03 +0700 Subject: [PATCH 37/63] lint --- crates/database/db/Cargo.toml | 4 ++-- crates/database/migration/Cargo.toml | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/crates/database/db/Cargo.toml b/crates/database/db/Cargo.toml index 04d487e6..6ffaf214 100644 --- a/crates/database/db/Cargo.toml +++ b/crates/database/db/Cargo.toml @@ -35,8 +35,8 @@ scroll-migration.workspace = true rollup-node-primitives = { workspace = true, features = ["arbitrary"] } # misc -arbitrary.workspace = true +arbitrary.workspace = true rand.workspace = true [features] -test-utils = ["dep:scroll-migration"] \ No newline at end of file +test-utils = ["dep:scroll-migration"] diff --git a/crates/database/migration/Cargo.toml b/crates/database/migration/Cargo.toml index 53c91bc1..5821f2f2 100644 --- a/crates/database/migration/Cargo.toml +++ b/crates/database/migration/Cargo.toml @@ -15,11 +15,11 @@ tracing.workspace = true [dependencies.sea-orm-migration] version = "1.1.0" features = [ - # Enable at least one `ASYNC_RUNTIME` and `DATABASE_DRIVER` feature if you want to run migration via CLI. - # View the list of supported features at https://www.sea-ql.org/SeaORM/docs/install-and-config/database-and-async-runtime. - # e.g. - # "runtime-tokio-rustls", # `ASYNC_RUNTIME` feature - # "sqlx-postgres", # `DATABASE_DRIVER` feature - "runtime-tokio-native-tls", - "sqlx-sqlite", + # Enable at least one `ASYNC_RUNTIME` and `DATABASE_DRIVER` feature if you want to run migration via CLI. + # View the list of supported features at https://www.sea-ql.org/SeaORM/docs/install-and-config/database-and-async-runtime. + # e.g. + # "runtime-tokio-rustls", # `ASYNC_RUNTIME` feature + # "sqlx-postgres", # `DATABASE_DRIVER` feature + "runtime-tokio-native-tls", + "sqlx-sqlite", ] From 3aedc2810ae6777b59b21e28db0559d12c537cd2 Mon Sep 17 00:00:00 2001 From: frisitano Date: Mon, 17 Mar 2025 19:09:01 +0700 Subject: [PATCH 38/63] lint --- Makefile | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Makefile b/Makefile index 0bcee135..a2e79074 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,18 @@ clippy: --all-features \ -- -D warnings +.PHONY: clippy-fix +clippy-fix: + cargo +nightly clippy \ + --workspace \ + --lib \ + --examples \ + --tests \ + --benches \ + --all-features \ + --fix \ + -- -D warnings + .PHONY: udeps udeps: cargo +nightly udeps --workspace --lib --examples --tests --benches --all-features --locked From 43ab06c2fab6607f4d10945dde5ae30550236bee Mon Sep 17 00:00:00 2001 From: frisitano Date: Mon, 17 Mar 2025 19:12:13 +0700 Subject: [PATCH 39/63] lint --- crates/database/db/src/db.rs | 2 +- crates/database/db/src/models/batch_input.rs | 18 ++++-------- crates/database/db/src/test_utils.rs | 4 +-- crates/primitives/src/batch.rs | 30 ++++++++++---------- 4 files changed, 24 insertions(+), 30 deletions(-) diff --git a/crates/database/db/src/db.rs b/crates/database/db/src/db.rs index 2bed0323..5f2f6a17 100644 --- a/crates/database/db/src/db.rs +++ b/crates/database/db/src/db.rs @@ -21,7 +21,7 @@ impl Database { } /// Returns a reference to the underlying database connection. - pub fn connection(&self) -> &DatabaseConnection { + pub const fn connection(&self) -> &DatabaseConnection { &self.connection } diff --git a/crates/database/db/src/models/batch_input.rs b/crates/database/db/src/models/batch_input.rs index 51237d5c..ffb7738c 100644 --- a/crates/database/db/src/models/batch_input.rs +++ b/crates/database/db/src/models/batch_input.rs @@ -50,7 +50,7 @@ impl From for ActiveModel { batch_input.batch_index.try_into().expect("index should fit in i64"), ), version: ActiveValue::Set(1), - codec_version: ActiveValue::Set(batch_input.version as u8), + codec_version: ActiveValue::Set(batch_input.version), hash: ActiveValue::Set(batch_input.batch_hash.to_vec()), block_number: ActiveValue::Set( batch_input.block_number.try_into().expect("block number should fit in i64"), @@ -70,7 +70,7 @@ impl From for ActiveModel { .expect("index should fit in i64"), ), version: ActiveValue::Set(2), - codec_version: ActiveValue::Set(batch_input.batch_input_data.version as u8), + codec_version: ActiveValue::Set(batch_input.batch_input_data.version), hash: ActiveValue::Set(batch_input.batch_input_data.batch_hash.to_vec()), block_number: ActiveValue::Set( batch_input @@ -97,12 +97,9 @@ impl From for BatchInputPrimitive { fn from(value: Model) -> Self { let chunks = value.chunks.0; if value.version == 1 { - BatchInputPrimitive::BatchInputDataV1(BatchInputV1 { + Self::BatchInputDataV1(BatchInputV1 { batch_index: value.index.try_into().expect("data persisted in database is valid"), - version: value - .codec_version - .try_into() - .expect("data persisted in database is valid"), + version: value.codec_version, batch_hash: value .hash .as_slice() @@ -117,16 +114,13 @@ impl From for BatchInputPrimitive { skipped_l1_message_bitmap: value.skipped_l1_message_bitmap, }) } else { - BatchInputPrimitive::BatchInputDataV2(BatchInputV2 { + Self::BatchInputDataV2(BatchInputV2 { batch_input_data: BatchInputV1 { batch_index: value .index .try_into() .expect("data persisted in database is valid"), - version: value - .codec_version - .try_into() - .expect("data persisted in database is valid"), + version: value.codec_version, batch_hash: value .hash .as_slice() diff --git a/crates/database/db/src/test_utils.rs b/crates/database/db/src/test_utils.rs index 7b8d101d..47970624 100644 --- a/crates/database/db/src/test_utils.rs +++ b/crates/database/db/src/test_utils.rs @@ -9,6 +9,6 @@ pub async fn setup_test_db() -> Database { let database_url = "sqlite::memory:"; let connection = sea_orm::Database::connect(database_url).await.unwrap(); Migrator::up(&connection, None).await.unwrap(); - let db = Database { connection }; - db + + Database { connection } } diff --git a/crates/primitives/src/batch.rs b/crates/primitives/src/batch.rs index 66f00744..ac8aedda 100644 --- a/crates/primitives/src/batch.rs +++ b/crates/primitives/src/batch.rs @@ -14,34 +14,34 @@ pub enum BatchInput { impl BatchInput { /// Returns the coded (protocol) version of the batch input. - pub fn version(&self) -> u8 { + pub const fn version(&self) -> u8 { match self { - BatchInput::BatchInputDataV1(data) => data.version, - BatchInput::BatchInputDataV2(data) => data.batch_input_data.version, + Self::BatchInputDataV1(data) => data.version, + Self::BatchInputDataV2(data) => data.batch_input_data.version, } } /// Returns the index of the batch. - pub fn batch_index(&self) -> u64 { + pub const fn batch_index(&self) -> u64 { match self { - BatchInput::BatchInputDataV1(data) => data.batch_index, - BatchInput::BatchInputDataV2(data) => data.batch_input_data.batch_index, + Self::BatchInputDataV1(data) => data.batch_index, + Self::BatchInputDataV2(data) => data.batch_input_data.batch_index, } } /// Returns the hash of the batch. - pub fn batch_hash(&self) -> &B256 { + pub const fn batch_hash(&self) -> &B256 { match self { - BatchInput::BatchInputDataV1(data) => &data.batch_hash, - BatchInput::BatchInputDataV2(data) => &data.batch_input_data.batch_hash, + Self::BatchInputDataV1(data) => &data.batch_hash, + Self::BatchInputDataV2(data) => &data.batch_input_data.batch_hash, } } /// Sets the block number of the batch. pub fn set_block_number(&mut self, block_number: BlockNumber) { match self { - BatchInput::BatchInputDataV1(data) => data.block_number = block_number, - BatchInput::BatchInputDataV2(data) => data.batch_input_data.block_number = block_number, + Self::BatchInputDataV1(data) => data.block_number = block_number, + Self::BatchInputDataV2(data) => data.batch_input_data.block_number = block_number, } } } @@ -189,8 +189,8 @@ mod arbitrary_impl { fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result { let version = u.arbitrary::()? % 2; match version { - 0 => Ok(BatchInput::BatchInputDataV1(u.arbitrary()?)), - 1 => Ok(BatchInput::BatchInputDataV2(u.arbitrary()?)), + 0 => Ok(Self::BatchInputDataV1(u.arbitrary()?)), + 1 => Ok(Self::BatchInputDataV2(u.arbitrary()?)), _ => unreachable!(), } } @@ -206,7 +206,7 @@ mod arbitrary_impl { let chunks = u.arbitrary::>>()?; let skipped_l1_message_bitmap = u.arbitrary::>()?; - Ok(BatchInputV1 { + Ok(Self { version, batch_index, batch_hash, @@ -220,7 +220,7 @@ mod arbitrary_impl { impl arbitrary::Arbitrary<'_> for BatchInputV2 { fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result { - Ok(BatchInputV2 { batch_input_data: u.arbitrary()?, blob_hash: u.arbitrary()? }) + Ok(Self { batch_input_data: u.arbitrary()?, blob_hash: u.arbitrary()? }) } } } From e61626b359168d8c216656a7f39cfabeb629e56a Mon Sep 17 00:00:00 2001 From: frisitano Date: Mon, 17 Mar 2025 23:29:44 +0700 Subject: [PATCH 40/63] improve database implementation --- Cargo.lock | 1 + crates/database/db/Cargo.toml | 1 + crates/database/db/src/db.rs | 162 ++++++++++++++------------- crates/database/db/src/error.rs | 12 ++ crates/database/db/src/lib.rs | 9 +- crates/database/db/src/test_utils.rs | 3 +- 6 files changed, 108 insertions(+), 80 deletions(-) create mode 100644 crates/database/db/src/error.rs diff --git a/Cargo.lock b/Cargo.lock index 80e8b3fd..04719053 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9502,6 +9502,7 @@ dependencies = [ "sea-orm", "serde", "serde_json", + "thiserror 2.0.12", "tokio", "tracing", ] diff --git a/crates/database/db/Cargo.toml b/crates/database/db/Cargo.toml index 6ffaf214..cce33a32 100644 --- a/crates/database/db/Cargo.toml +++ b/crates/database/db/Cargo.toml @@ -26,6 +26,7 @@ futures.workspace = true sea-orm = { version = "1.1.0", features = ["sqlx-sqlite", "runtime-tokio-native-tls", "macros"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" +thiserror.workspace = true tokio = { workspace = true, features = ["macros", "sync"] } tracing.workspace = true diff --git a/crates/database/db/src/db.rs b/crates/database/db/src/db.rs index 5f2f6a17..4a13ffca 100644 --- a/crates/database/db/src/db.rs +++ b/crates/database/db/src/db.rs @@ -1,63 +1,89 @@ +use crate::error::DatabaseError; + use super::models; use alloy_primitives::B256; use futures::{Stream, StreamExt}; use rollup_node_primitives::{BatchInput, L1MessageWithBlockNumber}; use sea_orm::{ ActiveModelTrait, ColumnTrait, ConnectionTrait, Database as SeaOrmDatabase, DatabaseConnection, - DatabaseTransaction, DbErr, EntityTrait, QueryFilter, Set, TransactionTrait, + DatabaseTransaction, DbErr, EntityTrait, QueryFilter, Set, StreamTrait, TransactionTrait, }; /// The [`Database`] struct is responsible for interacting with the database. +/// +/// The [`Database`] type wraps a generic DB and provides methods for +/// interacting with the database. The DB abstracts the underlying +/// database connection and provides a high-level API for interacting with the database. We have +/// implemented support for [`Database`] and [`Database`]. +/// The [`Database`] struct provides methods for inserting and querying [`BatchInput`]s and +/// [`L1MessageWithBlockNumber`]s from the database. Atomic transaction support is provided by the +/// [`Database::tx`] method, which returns a [`Database`] instance with support for +/// [`Database::commit`] and [`Database::rollback`] that can be used to execute multiple database +/// operations in a single transaction. #[derive(Debug)] -pub struct Database { - pub(crate) connection: DatabaseConnection, +pub struct Database { + /// The underlying database connection. + pub(crate) connection: DB, } -impl Database { +impl Database { /// Creates a new [`Database`] instance associated with the provided database URL. - pub async fn new(database_url: &str) -> Result { + pub async fn new(database_url: &str) -> Result { let connection = SeaOrmDatabase::connect(database_url).await?; Ok(Self { connection }) } - /// Returns a reference to the underlying database connection. - pub const fn connection(&self) -> &DatabaseConnection { - &self.connection + /// Creates a new [`DatabaseTransaction`] which can be used for atomic operations. + pub async fn tx(&self) -> Result, DatabaseError> { + Ok(Database:: { connection: self.connection.begin().await? }) + } +} + +impl Database { + /// Commits the transaction. + pub async fn commit(self) -> Result<(), DatabaseError> { + self.connection.commit().await?; + Ok(()) } - /// Creates a new transaction against the database. - pub async fn tx(&self) -> Result { - self.connection.begin().await + /// Rolls back the transaction. + pub async fn rollback(self) -> Result<(), DatabaseError> { + self.connection.rollback().await?; + Ok(()) } +} - /// Insert a [`BatchInput`] into the database. - pub async fn insert_batch_input( +impl Database { + /// Insert a [`BatchInput`] into the database and returns the batch input model + /// ([`models::batch_input::Model`]). + pub async fn insert_batch_input( &self, - conn: &C, batch_input: BatchInput, - ) -> Result { + ) -> Result { tracing::trace!(target: "scroll::db", batch_hash = ?batch_input.batch_hash(), batch_index = batch_input.batch_index(), "Inserting batch input into database."); let batch_input: models::batch_input::ActiveModel = batch_input.into(); - batch_input.insert(conn).await + Ok(batch_input.insert(&self.connection).await?) } - /// Finalize a [`BatchInput`] in the database and set the finalized block number to the provided - /// block number. - pub async fn finalize_batch_input( + /// Finalize a [`BatchInput`] with the provided `batch_hash` in the database and set the + /// finalized block number to the provided block number. + /// + /// Errors if the [`BatchInput`] associated with the provided `batch_hash` is not found in the + /// database, this method logs and returns an error. + pub async fn finalize_batch_input( &self, - conn: &C, batch_hash: B256, block_number: u64, - ) -> Result<(), DbErr> { + ) -> Result<(), DatabaseError> { if let Some(batch) = models::batch_input::Entity::find() .filter(models::batch_input::Column::Hash.eq(batch_hash.to_vec())) - .one(conn) + .one(&self.connection) .await? { tracing::trace!(target: "scroll::db", batch_hash = ?batch_hash, block_number, "Finalizing batch input in database."); let mut batch: models::batch_input::ActiveModel = batch.into(); batch.finalized_block_number = Set(Some(block_number as i64)); - batch.update(conn).await?; + batch.update(&self.connection).await?; } else { tracing::error!( target: "scroll::db", @@ -65,43 +91,39 @@ impl Database { block_number, "Batch not found in DB when trying to finalize." ); + return Err(DatabaseError::BatchNotFound(batch_hash)); } Ok(()) } /// Get a [`BatchInput`] from the database by its batch index. - pub async fn get_batch_input_by_batch_index( + pub async fn get_batch_input_by_batch_index( &self, - conn: &C, batch_index: u64, - ) -> Result, DbErr> { - models::batch_input::Entity::find_by_id( + ) -> Result, DatabaseError> { + Ok(models::batch_input::Entity::find_by_id( TryInto::::try_into(batch_index).expect("index should fit in i64"), ) - .one(conn) + .one(&self.connection) .await - .map(|x| x.map(Into::into)) + .map(|x| x.map(Into::into))?) } /// Delete all [`BatchInput`]s with a block number greater than the provided block number. - pub async fn delete_batch_inputs_gt( - &self, - conn: &C, - block_number: u64, - ) -> Result<(), DbErr> { + pub async fn delete_batch_inputs_gt(&self, block_number: u64) -> Result<(), DatabaseError> { tracing::trace!(target: "scroll::db", block_number, "Deleting batch inputs greater than block number."); - models::batch_input::Entity::delete_many() + Ok(models::batch_input::Entity::delete_many() .filter(models::batch_input::Column::BlockNumber.gt(block_number as i64)) - .exec(conn) + .exec(&self.connection) .await - .map(|_| ()) + .map(|_| ())?) } /// Get an iterator over all [`BatchInput`]s in the database. - pub async fn get_batch_inputs( - &self, - ) -> Result> + use<'_>, DbErr> { + pub async fn get_batch_inputs<'a>( + &'a self, + ) -> Result> + 'a, DbErr> { Ok(models::batch_input::Entity::find() .stream(&self.connection) .await? @@ -109,47 +131,43 @@ impl Database { } /// Insert an [`L1MessageWithBlockNumber`] into the database. - pub async fn insert_l1_message( + pub async fn insert_l1_message( &self, - conn: &C, l1_message: L1MessageWithBlockNumber, - ) -> Result<(), DbErr> { + ) -> Result<(), DatabaseError> { tracing::trace!(target: "scroll::db", queue_index = l1_message.transaction.queue_index, "Inserting L1 message into database."); let l1_message: models::l1_message::ActiveModel = l1_message.into(); - l1_message.insert(conn).await?; + l1_message.insert(&self.connection).await?; Ok(()) } /// Delete all [`L1MessageWithBlockNumber`]s with a block number greater than the provided block /// number. - pub async fn delete_l1_messages_gt( - &self, - conn: &C, - block_number: u64, - ) -> Result<(), DbErr> { + pub async fn delete_l1_messages_gt(&self, block_number: u64) -> Result<(), DatabaseError> { tracing::trace!(target: "scroll::db", block_number, "Deleting L1 messages greater than block number."); - models::l1_message::Entity::delete_many() + Ok(models::l1_message::Entity::delete_many() .filter(models::l1_message::Column::BlockNumber.gt(block_number as i64)) - .exec(conn) + .exec(&self.connection) .await - .map(|_| ()) + .map(|_| ())?) } /// Get a [`L1Message`] from the database by its message queue index. pub async fn get_l1_message( &self, queue_index: u64, - ) -> Result, DbErr> { - models::l1_message::Entity::find_by_id(queue_index as i64) + ) -> Result, DatabaseError> { + Ok(models::l1_message::Entity::find_by_id(queue_index as i64) .one(&self.connection) .await - .map(|x| x.map(Into::into)) + .map(|x| x.map(Into::into))?) } /// Gets an iterator over all [`L1Message`]s in the database. - pub async fn get_l1_messages( - &self, - ) -> Result> + use<'_>, DbErr> { + pub async fn get_l1_messages<'a>( + &'a self, + ) -> Result> + 'a, DatabaseError> + { Ok(models::l1_message::Entity::find() .stream(&self.connection) .await? @@ -181,12 +199,9 @@ mod test { let batch_input = BatchInput::BatchInputDataV1(batch_input_v1); // Round trip the BatchInput through the database. - db.insert_batch_input(db.connection(), batch_input.clone()).await.unwrap(); - let batch_input_from_db = db - .get_batch_input_by_batch_index(db.connection(), batch_input.batch_index()) - .await - .unwrap() - .unwrap(); + db.insert_batch_input(batch_input.clone()).await.unwrap(); + let batch_input_from_db = + db.get_batch_input_by_batch_index(batch_input.batch_index()).await.unwrap().unwrap(); assert_eq!(batch_input, batch_input_from_db); // Generate a random BatchInputV2. @@ -194,12 +209,9 @@ mod test { let batch_input = BatchInput::BatchInputDataV2(batch_input_v2); // Round trip the BatchInput through the database. - db.insert_batch_input(db.connection(), batch_input.clone()).await.unwrap(); - let batch_input_from_db = db - .get_batch_input_by_batch_index(db.connection(), batch_input.batch_index()) - .await - .unwrap() - .unwrap(); + db.insert_batch_input(batch_input.clone()).await.unwrap(); + let batch_input_from_db = + db.get_batch_input_by_batch_index(batch_input.batch_index()).await.unwrap().unwrap(); assert_eq!(batch_input, batch_input_from_db); } @@ -217,7 +229,7 @@ mod test { let l1_message = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); // Round trip the L1Message through the database. - db.insert_l1_message(db.connection(), l1_message.clone()).await.unwrap(); + db.insert_l1_message(l1_message.clone()).await.unwrap(); let l1_message_from_db = db.get_l1_message(l1_message.transaction.queue_index).await.unwrap().unwrap(); assert_eq!(l1_message, l1_message_from_db); @@ -239,8 +251,8 @@ mod test { // Insert the L1Messages into the database in a transaction. let tx = db.tx().await.unwrap(); - db.insert_l1_message(&tx, l1_message_1.clone()).await.unwrap(); - db.insert_l1_message(&tx, l1_message_2.clone()).await.unwrap(); + tx.insert_l1_message(l1_message_1.clone()).await.unwrap(); + tx.insert_l1_message(l1_message_2.clone()).await.unwrap(); tx.commit().await.unwrap(); // Check that the L1Messages are in the database. @@ -267,8 +279,8 @@ mod test { let l1_message_2 = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); // Insert the L1Messages into the database. - db.insert_l1_message(db.connection(), l1_message_1.clone()).await.unwrap(); - db.insert_l1_message(db.connection(), l1_message_2.clone()).await.unwrap(); + db.insert_l1_message(l1_message_1.clone()).await.unwrap(); + db.insert_l1_message(l1_message_2.clone()).await.unwrap(); // collect the L1Messages let l1_messages = diff --git a/crates/database/db/src/error.rs b/crates/database/db/src/error.rs new file mode 100644 index 00000000..702a3483 --- /dev/null +++ b/crates/database/db/src/error.rs @@ -0,0 +1,12 @@ +use alloy_primitives::B256; + +/// The error type for database operations. +#[derive(Debug, thiserror::Error)] +pub enum DatabaseError { + /// A database error occurred. + #[error("database error: {0}")] + DatabaseError(#[from] sea_orm::DbErr), + /// A batch was not found in the database. + #[error("batch with hash [{0}] not found in database")] + BatchNotFound(B256), +} diff --git a/crates/database/db/src/lib.rs b/crates/database/db/src/lib.rs index 2a0f8940..56ce3233 100644 --- a/crates/database/db/src/lib.rs +++ b/crates/database/db/src/lib.rs @@ -1,12 +1,13 @@ //! A library responsible for interacting with the database. -mod models; -pub use models::*; +mod error; +pub use error::DatabaseError; mod db; pub use db::Database; +mod models; +pub use models::*; + #[cfg(feature = "test-utils")] pub mod test_utils; - -pub use sea_orm::DbErr; diff --git a/crates/database/db/src/test_utils.rs b/crates/database/db/src/test_utils.rs index 47970624..240ef535 100644 --- a/crates/database/db/src/test_utils.rs +++ b/crates/database/db/src/test_utils.rs @@ -2,10 +2,11 @@ use super::Database; use migration::{Migrator, MigratorTrait}; +use sea_orm::DatabaseConnection; /// Instantiates a new in-memory database and runs the migrations /// to set up the schema. -pub async fn setup_test_db() -> Database { +pub async fn setup_test_db() -> Database { let database_url = "sqlite::memory:"; let connection = sea_orm::Database::connect(database_url).await.unwrap(); Migrator::up(&connection, None).await.unwrap(); From 046565c16304edba18ab652c9dc8d61048c8db95 Mon Sep 17 00:00:00 2001 From: frisitano Date: Mon, 17 Mar 2025 23:31:18 +0700 Subject: [PATCH 41/63] lint --- crates/engine/Cargo.toml | 1 + crates/primitives/Cargo.toml | 6 +++++- crates/watcher/Cargo.toml | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/engine/Cargo.toml b/crates/engine/Cargo.toml index e05e09f6..a78a706e 100644 --- a/crates/engine/Cargo.toml +++ b/crates/engine/Cargo.toml @@ -54,6 +54,7 @@ arbitrary = [ "reth-scroll-primitives/arbitrary", "scroll-alloy-rpc-types-engine/arbitrary", "alloy-chains/arbitrary", + "rollup-node-primitives/arbitrary", ] test-utils = [ "arbitrary", diff --git a/crates/primitives/Cargo.toml b/crates/primitives/Cargo.toml index 7beb27b6..8a404a5e 100644 --- a/crates/primitives/Cargo.toml +++ b/crates/primitives/Cargo.toml @@ -24,4 +24,8 @@ derive_more = { workspace = true, features = ["from"] } [features] default = ["std"] std = ["alloy-primitives/std", "alloy-rpc-types-engine/std", "scroll-alloy-consensus/std", "derive_more/std"] -arbitrary = ["dep:arbitrary"] +arbitrary = [ + "dep:arbitrary", + "alloy-primitives/arbitrary", + "scroll-alloy-consensus/arbitrary", +] diff --git a/crates/watcher/Cargo.toml b/crates/watcher/Cargo.toml index 244839ac..21b2d4d5 100644 --- a/crates/watcher/Cargo.toml +++ b/crates/watcher/Cargo.toml @@ -57,4 +57,5 @@ arbitrary = [ "alloy-rpc-types-eth/arbitrary", "scroll-alloy-consensus/arbitrary", "alloy-sol-types/arbitrary", + "rollup-node-primitives/arbitrary", ] From cf49aba8121716656a4cb75961e64f54f02bad07 Mon Sep 17 00:00:00 2001 From: frisitano Date: Mon, 17 Mar 2025 23:45:32 +0700 Subject: [PATCH 42/63] lint --- .github/workflows/lint.yaml | 4 ++-- crates/database/db/src/db.rs | 4 ++-- crates/primitives/src/batch.rs | 3 +++ crates/primitives/src/lib.rs | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 0ca11a3e..b00a4bd6 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -127,10 +127,10 @@ jobs: include: - type: wasm target: wasm32-unknown-unknown - exclude: scroll-engine,scroll-wire,scroll-bridge,scroll-network,rollup-node-manager,rollup-node-watcher + exclude: scroll-engine,scroll-wire,scroll-bridge,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration - type: riscv target: riscv32imac-unknown-none-elf - exclude: scroll-engine,scroll-wire,scroll-bridge,scroll-network,rollup-node-manager,rollup-node-watcher + exclude: scroll-engine,scroll-wire,scroll-bridge,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration steps: - uses: actions/checkout@v4 - uses: rui314/setup-mold@v1 diff --git a/crates/database/db/src/db.rs b/crates/database/db/src/db.rs index 4a13ffca..7eb6b7fd 100644 --- a/crates/database/db/src/db.rs +++ b/crates/database/db/src/db.rs @@ -152,7 +152,7 @@ impl Database { .map(|_| ())?) } - /// Get a [`L1Message`] from the database by its message queue index. + /// Get a [`L1MessageWithBlockNumber`] from the database by its message queue index. pub async fn get_l1_message( &self, queue_index: u64, @@ -163,7 +163,7 @@ impl Database { .map(|x| x.map(Into::into))?) } - /// Gets an iterator over all [`L1Message`]s in the database. + /// Gets an iterator over all [`L1MessageWithBlockNumber`]s in the database. pub async fn get_l1_messages<'a>( &'a self, ) -> Result> + 'a, DatabaseError> diff --git a/crates/primitives/src/batch.rs b/crates/primitives/src/batch.rs index ac8aedda..5062d2a8 100644 --- a/crates/primitives/src/batch.rs +++ b/crates/primitives/src/batch.rs @@ -1,5 +1,8 @@ use alloy_primitives::{BlockNumber, B256}; +#[cfg(not(feature = "std"))] +use alloc::vec::Vec; + /// The input data for a batch. /// /// This is used as input for the derivation pipeline. All data remains in its raw serialized form. diff --git a/crates/primitives/src/lib.rs b/crates/primitives/src/lib.rs index a67469fa..19b9271c 100644 --- a/crates/primitives/src/lib.rs +++ b/crates/primitives/src/lib.rs @@ -2,7 +2,7 @@ #![cfg_attr(not(feature = "std"), no_std)] #[cfg(not(feature = "std"))] -extern crate alloc as std; +extern crate alloc; pub use block::BlockInfo; mod block; From 75026874bc7ab115268e72ef5bd1d7a7653f7014 Mon Sep 17 00:00:00 2001 From: frisitano Date: Tue, 18 Mar 2025 00:09:26 +0700 Subject: [PATCH 43/63] database transaction refactor --- crates/database/db/src/connection.rs | 7 ++ crates/database/db/src/db.rs | 161 +++----------------------- crates/database/db/src/lib.rs | 13 ++- crates/database/db/src/operations.rs | 132 +++++++++++++++++++++ crates/database/db/src/test_utils.rs | 6 +- crates/database/db/src/transaction.rs | 38 ++++++ 6 files changed, 207 insertions(+), 150 deletions(-) create mode 100644 crates/database/db/src/connection.rs create mode 100644 crates/database/db/src/operations.rs create mode 100644 crates/database/db/src/transaction.rs diff --git a/crates/database/db/src/connection.rs b/crates/database/db/src/connection.rs new file mode 100644 index 00000000..c9db426d --- /dev/null +++ b/crates/database/db/src/connection.rs @@ -0,0 +1,7 @@ +/// The [`DatabaseConnectionProvider`] trait provides a way to get a connection to the database. +/// This will be implemented by the [`Database`] and [`DatabaseTransaction`] types. +pub trait DatabaseConnectionProvider { + /// Returns a reference to the database connection that implements the `ConnectionTrait` and + /// `StreamTrait` traits. + fn get_connection(&self) -> &(impl sea_orm::ConnectionTrait + sea_orm::StreamTrait); +} diff --git a/crates/database/db/src/db.rs b/crates/database/db/src/db.rs index 7eb6b7fd..419cd029 100644 --- a/crates/database/db/src/db.rs +++ b/crates/database/db/src/db.rs @@ -1,12 +1,8 @@ +use super::{transaction::DatabaseTransaction, DatabaseConnectionProvider}; use crate::error::DatabaseError; -use super::models; -use alloy_primitives::B256; -use futures::{Stream, StreamExt}; -use rollup_node_primitives::{BatchInput, L1MessageWithBlockNumber}; use sea_orm::{ - ActiveModelTrait, ColumnTrait, ConnectionTrait, Database as SeaOrmDatabase, DatabaseConnection, - DatabaseTransaction, DbErr, EntityTrait, QueryFilter, Set, StreamTrait, TransactionTrait, + ConnectionTrait, Database as SeaOrmDatabase, DatabaseConnection, StreamTrait, TransactionTrait, }; /// The [`Database`] struct is responsible for interacting with the database. @@ -21,12 +17,12 @@ use sea_orm::{ /// [`Database::commit`] and [`Database::rollback`] that can be used to execute multiple database /// operations in a single transaction. #[derive(Debug)] -pub struct Database { +pub struct Database { /// The underlying database connection. - pub(crate) connection: DB, + connection: DatabaseConnection, } -impl Database { +impl Database { /// Creates a new [`Database`] instance associated with the provided database URL. pub async fn new(database_url: &str) -> Result { let connection = SeaOrmDatabase::connect(database_url).await?; @@ -34,155 +30,32 @@ impl Database { } /// Creates a new [`DatabaseTransaction`] which can be used for atomic operations. - pub async fn tx(&self) -> Result, DatabaseError> { - Ok(Database:: { connection: self.connection.begin().await? }) + pub async fn tx(&self) -> Result { + Ok(DatabaseTransaction::new(self.connection.begin().await?)) } } -impl Database { - /// Commits the transaction. - pub async fn commit(self) -> Result<(), DatabaseError> { - self.connection.commit().await?; - Ok(()) - } - - /// Rolls back the transaction. - pub async fn rollback(self) -> Result<(), DatabaseError> { - self.connection.rollback().await?; - Ok(()) +impl DatabaseConnectionProvider for Database { + fn get_connection(&self) -> &(impl ConnectionTrait + StreamTrait) { + &self.connection } } -impl Database { - /// Insert a [`BatchInput`] into the database and returns the batch input model - /// ([`models::batch_input::Model`]). - pub async fn insert_batch_input( - &self, - batch_input: BatchInput, - ) -> Result { - tracing::trace!(target: "scroll::db", batch_hash = ?batch_input.batch_hash(), batch_index = batch_input.batch_index(), "Inserting batch input into database."); - let batch_input: models::batch_input::ActiveModel = batch_input.into(); - Ok(batch_input.insert(&self.connection).await?) - } - - /// Finalize a [`BatchInput`] with the provided `batch_hash` in the database and set the - /// finalized block number to the provided block number. - /// - /// Errors if the [`BatchInput`] associated with the provided `batch_hash` is not found in the - /// database, this method logs and returns an error. - pub async fn finalize_batch_input( - &self, - batch_hash: B256, - block_number: u64, - ) -> Result<(), DatabaseError> { - if let Some(batch) = models::batch_input::Entity::find() - .filter(models::batch_input::Column::Hash.eq(batch_hash.to_vec())) - .one(&self.connection) - .await? - { - tracing::trace!(target: "scroll::db", batch_hash = ?batch_hash, block_number, "Finalizing batch input in database."); - let mut batch: models::batch_input::ActiveModel = batch.into(); - batch.finalized_block_number = Set(Some(block_number as i64)); - batch.update(&self.connection).await?; - } else { - tracing::error!( - target: "scroll::db", - batch_hash = ?batch_hash, - block_number, - "Batch not found in DB when trying to finalize." - ); - return Err(DatabaseError::BatchNotFound(batch_hash)); - } - - Ok(()) - } - - /// Get a [`BatchInput`] from the database by its batch index. - pub async fn get_batch_input_by_batch_index( - &self, - batch_index: u64, - ) -> Result, DatabaseError> { - Ok(models::batch_input::Entity::find_by_id( - TryInto::::try_into(batch_index).expect("index should fit in i64"), - ) - .one(&self.connection) - .await - .map(|x| x.map(Into::into))?) - } - - /// Delete all [`BatchInput`]s with a block number greater than the provided block number. - pub async fn delete_batch_inputs_gt(&self, block_number: u64) -> Result<(), DatabaseError> { - tracing::trace!(target: "scroll::db", block_number, "Deleting batch inputs greater than block number."); - Ok(models::batch_input::Entity::delete_many() - .filter(models::batch_input::Column::BlockNumber.gt(block_number as i64)) - .exec(&self.connection) - .await - .map(|_| ())?) - } - - /// Get an iterator over all [`BatchInput`]s in the database. - pub async fn get_batch_inputs<'a>( - &'a self, - ) -> Result> + 'a, DbErr> { - Ok(models::batch_input::Entity::find() - .stream(&self.connection) - .await? - .map(|res| res.map(Into::into))) - } - - /// Insert an [`L1MessageWithBlockNumber`] into the database. - pub async fn insert_l1_message( - &self, - l1_message: L1MessageWithBlockNumber, - ) -> Result<(), DatabaseError> { - tracing::trace!(target: "scroll::db", queue_index = l1_message.transaction.queue_index, "Inserting L1 message into database."); - let l1_message: models::l1_message::ActiveModel = l1_message.into(); - l1_message.insert(&self.connection).await?; - Ok(()) - } - - /// Delete all [`L1MessageWithBlockNumber`]s with a block number greater than the provided block - /// number. - pub async fn delete_l1_messages_gt(&self, block_number: u64) -> Result<(), DatabaseError> { - tracing::trace!(target: "scroll::db", block_number, "Deleting L1 messages greater than block number."); - Ok(models::l1_message::Entity::delete_many() - .filter(models::l1_message::Column::BlockNumber.gt(block_number as i64)) - .exec(&self.connection) - .await - .map(|_| ())?) - } - - /// Get a [`L1MessageWithBlockNumber`] from the database by its message queue index. - pub async fn get_l1_message( - &self, - queue_index: u64, - ) -> Result, DatabaseError> { - Ok(models::l1_message::Entity::find_by_id(queue_index as i64) - .one(&self.connection) - .await - .map(|x| x.map(Into::into))?) - } - - /// Gets an iterator over all [`L1MessageWithBlockNumber`]s in the database. - pub async fn get_l1_messages<'a>( - &'a self, - ) -> Result> + 'a, DatabaseError> - { - Ok(models::l1_message::Entity::find() - .stream(&self.connection) - .await? - .map(|res| res.map(Into::into))) +impl From for Database { + fn from(connection: DatabaseConnection) -> Self { + Self { connection } } } #[cfg(test)] mod test { - use super::*; - use crate::test_utils::setup_test_db; + use crate::{operations::DatabaseOperations, test_utils::setup_test_db}; use arbitrary::{Arbitrary, Unstructured}; use futures::StreamExt; use rand::Rng; - use rollup_node_primitives::{BatchInputV1, BatchInputV2}; + use rollup_node_primitives::{ + BatchInput, BatchInputV1, BatchInputV2, L1MessageWithBlockNumber, + }; #[tokio::test] async fn test_database_round_trip_batch_input() { diff --git a/crates/database/db/src/lib.rs b/crates/database/db/src/lib.rs index 56ce3233..cee41638 100644 --- a/crates/database/db/src/lib.rs +++ b/crates/database/db/src/lib.rs @@ -1,13 +1,22 @@ //! A library responsible for interacting with the database. -mod error; -pub use error::DatabaseError; +mod connection; +pub use connection::DatabaseConnectionProvider; mod db; pub use db::Database; +mod error; +pub use error::DatabaseError; + mod models; pub use models::*; +mod operations; +pub use operations::DatabaseOperations; + +mod transaction; +pub use transaction::DatabaseTransaction; + #[cfg(feature = "test-utils")] pub mod test_utils; diff --git a/crates/database/db/src/operations.rs b/crates/database/db/src/operations.rs new file mode 100644 index 00000000..35d15a9d --- /dev/null +++ b/crates/database/db/src/operations.rs @@ -0,0 +1,132 @@ +use super::{models, DatabaseError}; +use crate::DatabaseConnectionProvider; +use alloy_primitives::B256; +use futures::{Stream, StreamExt}; +use rollup_node_primitives::{BatchInput, L1MessageWithBlockNumber}; +use sea_orm::{ActiveModelTrait, ColumnTrait, DbErr, EntityTrait, QueryFilter, Set}; + +/// The [`DatabaseOperations`] trait provides methods for interacting with the database. +#[async_trait::async_trait] +pub trait DatabaseOperations: DatabaseConnectionProvider { + /// Insert a [`BatchInput`] into the database and returns the batch input model + /// ([`models::batch_input::Model`]). + async fn insert_batch_input( + &self, + batch_input: BatchInput, + ) -> Result { + tracing::trace!(target: "scroll::db", batch_hash = ?batch_input.batch_hash(), batch_index = batch_input.batch_index(), "Inserting batch input into database."); + let batch_input: models::batch_input::ActiveModel = batch_input.into(); + Ok(batch_input.insert(self.get_connection()).await?) + } + + /// Finalize a [`BatchInput`] with the provided `batch_hash` in the database and set the + /// finalized block number to the provided block number. + /// + /// Errors if the [`BatchInput`] associated with the provided `batch_hash` is not found in the + /// database, this method logs and returns an error. + async fn finalize_batch_input( + &self, + batch_hash: B256, + block_number: u64, + ) -> Result<(), DatabaseError> { + if let Some(batch) = models::batch_input::Entity::find() + .filter(models::batch_input::Column::Hash.eq(batch_hash.to_vec())) + .one(self.get_connection()) + .await? + { + tracing::trace!(target: "scroll::db", batch_hash = ?batch_hash, block_number, "Finalizing batch input in database."); + let mut batch: models::batch_input::ActiveModel = batch.into(); + batch.finalized_block_number = Set(Some(block_number as i64)); + batch.update(self.get_connection()).await?; + } else { + tracing::error!( + target: "scroll::db", + batch_hash = ?batch_hash, + block_number, + "Batch not found in DB when trying to finalize." + ); + return Err(DatabaseError::BatchNotFound(batch_hash)); + } + + Ok(()) + } + + /// Get a [`BatchInput`] from the database by its batch index. + async fn get_batch_input_by_batch_index( + &self, + batch_index: u64, + ) -> Result, DatabaseError> { + Ok(models::batch_input::Entity::find_by_id( + TryInto::::try_into(batch_index).expect("index should fit in i64"), + ) + .one(self.get_connection()) + .await + .map(|x| x.map(Into::into))?) + } + + /// Delete all [`BatchInput`]s with a block number greater than the provided block number. + async fn delete_batch_inputs_gt(&self, block_number: u64) -> Result<(), DatabaseError> { + tracing::trace!(target: "scroll::db", block_number, "Deleting batch inputs greater than block number."); + Ok(models::batch_input::Entity::delete_many() + .filter(models::batch_input::Column::BlockNumber.gt(block_number as i64)) + .exec(self.get_connection()) + .await + .map(|_| ())?) + } + + /// Get an iterator over all [`BatchInput`]s in the database. + async fn get_batch_inputs<'a>( + &'a self, + ) -> Result> + 'a, DbErr> { + Ok(models::batch_input::Entity::find() + .stream(self.get_connection()) + .await? + .map(|res| res.map(Into::into))) + } + + /// Insert an [`L1MessageWithBlockNumber`] into the database. + async fn insert_l1_message( + &self, + l1_message: L1MessageWithBlockNumber, + ) -> Result<(), DatabaseError> { + tracing::trace!(target: "scroll::db", queue_index = l1_message.transaction.queue_index, "Inserting L1 message into database."); + let l1_message: models::l1_message::ActiveModel = l1_message.into(); + l1_message.insert(self.get_connection()).await?; + Ok(()) + } + + /// Delete all [`L1MessageWithBlockNumber`]s with a block number greater than the provided block + /// number. + async fn delete_l1_messages_gt(&self, block_number: u64) -> Result<(), DatabaseError> { + tracing::trace!(target: "scroll::db", block_number, "Deleting L1 messages greater than block number."); + Ok(models::l1_message::Entity::delete_many() + .filter(models::l1_message::Column::BlockNumber.gt(block_number as i64)) + .exec(self.get_connection()) + .await + .map(|_| ())?) + } + + /// Get a [`L1MessageWithBlockNumber`] from the database by its message queue index. + async fn get_l1_message( + &self, + queue_index: u64, + ) -> Result, DatabaseError> { + Ok(models::l1_message::Entity::find_by_id(queue_index as i64) + .one(self.get_connection()) + .await + .map(|x| x.map(Into::into))?) + } + + /// Gets an iterator over all [`L1MessageWithBlockNumber`]s in the database. + async fn get_l1_messages<'a>( + &'a self, + ) -> Result> + 'a, DatabaseError> + { + Ok(models::l1_message::Entity::find() + .stream(self.get_connection()) + .await? + .map(|res| res.map(Into::into))) + } +} + +impl DatabaseOperations for T where T: DatabaseConnectionProvider {} diff --git a/crates/database/db/src/test_utils.rs b/crates/database/db/src/test_utils.rs index 240ef535..af05e399 100644 --- a/crates/database/db/src/test_utils.rs +++ b/crates/database/db/src/test_utils.rs @@ -2,14 +2,12 @@ use super::Database; use migration::{Migrator, MigratorTrait}; -use sea_orm::DatabaseConnection; /// Instantiates a new in-memory database and runs the migrations /// to set up the schema. -pub async fn setup_test_db() -> Database { +pub async fn setup_test_db() -> Database { let database_url = "sqlite::memory:"; let connection = sea_orm::Database::connect(database_url).await.unwrap(); Migrator::up(&connection, None).await.unwrap(); - - Database { connection } + connection.into() } diff --git a/crates/database/db/src/transaction.rs b/crates/database/db/src/transaction.rs new file mode 100644 index 00000000..1bbffa38 --- /dev/null +++ b/crates/database/db/src/transaction.rs @@ -0,0 +1,38 @@ +use super::{DatabaseConnectionProvider, DatabaseError}; + +/// A type that represents a database transaction. +/// +/// This type is used to perform operations on the database within a single atomic transaction. +#[derive(Debug)] +pub struct DatabaseTransaction { + /// The underlying database transaction. + tx: sea_orm::DatabaseTransaction, +} + +impl DatabaseTransaction { + /// Creates a new [`DatabaseTransaction`] instance associated with the provided database + /// transaction. + pub fn new(tx: sea_orm::DatabaseTransaction) -> Self { + Self { tx } + } +} + +impl DatabaseTransaction { + /// Commits the transaction. + pub async fn commit(self) -> Result<(), DatabaseError> { + self.tx.commit().await?; + Ok(()) + } + + /// Rolls back the transaction. + pub async fn rollback(self) -> Result<(), DatabaseError> { + self.tx.rollback().await?; + Ok(()) + } +} + +impl DatabaseConnectionProvider for DatabaseTransaction { + fn get_connection(&self) -> &(impl sea_orm::ConnectionTrait + sea_orm::StreamTrait) { + &self.tx + } +} From 59be87ac8b41bd13dd9c8c3969b8bd48b6cd10f1 Mon Sep 17 00:00:00 2001 From: frisitano Date: Tue, 18 Mar 2025 00:20:13 +0700 Subject: [PATCH 44/63] lint: --- crates/database/db/src/connection.rs | 2 +- crates/database/db/src/db.rs | 14 +++++--------- crates/database/db/src/transaction.rs | 2 +- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/crates/database/db/src/connection.rs b/crates/database/db/src/connection.rs index c9db426d..f4ba0872 100644 --- a/crates/database/db/src/connection.rs +++ b/crates/database/db/src/connection.rs @@ -1,5 +1,5 @@ /// The [`DatabaseConnectionProvider`] trait provides a way to get a connection to the database. -/// This will be implemented by the [`Database`] and [`DatabaseTransaction`] types. +/// This is implemented by the [`crate::Database`] and [`crate::DatabaseTransaction`] types. pub trait DatabaseConnectionProvider { /// Returns a reference to the database connection that implements the `ConnectionTrait` and /// `StreamTrait` traits. diff --git a/crates/database/db/src/db.rs b/crates/database/db/src/db.rs index 419cd029..0252afaa 100644 --- a/crates/database/db/src/db.rs +++ b/crates/database/db/src/db.rs @@ -7,15 +7,11 @@ use sea_orm::{ /// The [`Database`] struct is responsible for interacting with the database. /// -/// The [`Database`] type wraps a generic DB and provides methods for -/// interacting with the database. The DB abstracts the underlying -/// database connection and provides a high-level API for interacting with the database. We have -/// implemented support for [`Database`] and [`Database`]. -/// The [`Database`] struct provides methods for inserting and querying [`BatchInput`]s and -/// [`L1MessageWithBlockNumber`]s from the database. Atomic transaction support is provided by the -/// [`Database::tx`] method, which returns a [`Database`] instance with support for -/// [`Database::commit`] and [`Database::rollback`] that can be used to execute multiple database -/// operations in a single transaction. +/// The [`Database`] type wraps a [`sea_orm::DatabaseConnection`]. We implement +/// [`DatabaseConnectionProvider`] for [`Database`] such that it can be used to perform the +/// operations defined in [`crate::DatabaseOperations`]. Atomic operations can be performed using +/// the [`Database::tx`] method which returns a [`DatabaseTransaction`] that also implements the +/// [`DatabaseConnectionProvider`] trait and also the [`crate::DatabaseOperations`] trait. #[derive(Debug)] pub struct Database { /// The underlying database connection. diff --git a/crates/database/db/src/transaction.rs b/crates/database/db/src/transaction.rs index 1bbffa38..1e3fa8b5 100644 --- a/crates/database/db/src/transaction.rs +++ b/crates/database/db/src/transaction.rs @@ -12,7 +12,7 @@ pub struct DatabaseTransaction { impl DatabaseTransaction { /// Creates a new [`DatabaseTransaction`] instance associated with the provided database /// transaction. - pub fn new(tx: sea_orm::DatabaseTransaction) -> Self { + pub const fn new(tx: sea_orm::DatabaseTransaction) -> Self { Self { tx } } } From d550fd25484f9eefc2059d022b525920fb6c6f17 Mon Sep 17 00:00:00 2001 From: frisitano Date: Tue, 18 Mar 2025 00:27:12 +0700 Subject: [PATCH 45/63] use GAT for DatabaseConnectionProvider trait --- crates/database/db/src/connection.rs | 5 ++++- crates/database/db/src/db.rs | 8 ++++---- crates/database/db/src/transaction.rs | 4 +++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/crates/database/db/src/connection.rs b/crates/database/db/src/connection.rs index f4ba0872..27afad12 100644 --- a/crates/database/db/src/connection.rs +++ b/crates/database/db/src/connection.rs @@ -1,7 +1,10 @@ /// The [`DatabaseConnectionProvider`] trait provides a way to get a connection to the database. /// This is implemented by the [`crate::Database`] and [`crate::DatabaseTransaction`] types. pub trait DatabaseConnectionProvider { + /// The type of the database connection. + type Connection: sea_orm::ConnectionTrait + sea_orm::StreamTrait; + /// Returns a reference to the database connection that implements the `ConnectionTrait` and /// `StreamTrait` traits. - fn get_connection(&self) -> &(impl sea_orm::ConnectionTrait + sea_orm::StreamTrait); + fn get_connection(&self) -> &Self::Connection; } diff --git a/crates/database/db/src/db.rs b/crates/database/db/src/db.rs index 0252afaa..1e27998a 100644 --- a/crates/database/db/src/db.rs +++ b/crates/database/db/src/db.rs @@ -1,9 +1,7 @@ use super::{transaction::DatabaseTransaction, DatabaseConnectionProvider}; use crate::error::DatabaseError; -use sea_orm::{ - ConnectionTrait, Database as SeaOrmDatabase, DatabaseConnection, StreamTrait, TransactionTrait, -}; +use sea_orm::{Database as SeaOrmDatabase, DatabaseConnection, TransactionTrait}; /// The [`Database`] struct is responsible for interacting with the database. /// @@ -32,7 +30,9 @@ impl Database { } impl DatabaseConnectionProvider for Database { - fn get_connection(&self) -> &(impl ConnectionTrait + StreamTrait) { + type Connection = DatabaseConnection; + + fn get_connection(&self) -> &Self::Connection { &self.connection } } diff --git a/crates/database/db/src/transaction.rs b/crates/database/db/src/transaction.rs index 1e3fa8b5..e970440d 100644 --- a/crates/database/db/src/transaction.rs +++ b/crates/database/db/src/transaction.rs @@ -32,7 +32,9 @@ impl DatabaseTransaction { } impl DatabaseConnectionProvider for DatabaseTransaction { - fn get_connection(&self) -> &(impl sea_orm::ConnectionTrait + sea_orm::StreamTrait) { + type Connection = sea_orm::DatabaseTransaction; + + fn get_connection(&self) -> &Self::Connection { &self.tx } } From 36abac76a91adf958288a70f6ea2f98a78b1cd39 Mon Sep 17 00:00:00 2001 From: frisitano Date: Tue, 18 Mar 2025 12:29:58 +0700 Subject: [PATCH 46/63] refactor & lint --- crates/database/db/src/models/batch_input.rs | 120 +++++++------------ crates/primitives/src/batch.rs | 14 +-- 2 files changed, 47 insertions(+), 87 deletions(-) diff --git a/crates/database/db/src/models/batch_input.rs b/crates/database/db/src/models/batch_input.rs index ffb7738c..9ba77d91 100644 --- a/crates/database/db/src/models/batch_input.rs +++ b/crates/database/db/src/models/batch_input.rs @@ -44,51 +44,27 @@ impl Deref for Chunks { impl From for ActiveModel { fn from(batch_input: BatchInputPrimitive) -> Self { - match batch_input { - BatchInputPrimitive::BatchInputDataV1(batch_input) => Self { - index: ActiveValue::Set( - batch_input.batch_index.try_into().expect("index should fit in i64"), - ), - version: ActiveValue::Set(1), - codec_version: ActiveValue::Set(batch_input.version), - hash: ActiveValue::Set(batch_input.batch_hash.to_vec()), - block_number: ActiveValue::Set( - batch_input.block_number.try_into().expect("block number should fit in i64"), - ), - parent_batch_header: ActiveValue::Set(batch_input.parent_batch_header), - chunks: ActiveValue::Set(Chunks(batch_input.chunks)), - skipped_l1_message_bitmap: ActiveValue::Set(batch_input.skipped_l1_message_bitmap), - blob_hash: ActiveValue::Set(vec![]), - finalized_block_number: ActiveValue::Unchanged(None), - }, - BatchInputPrimitive::BatchInputDataV2(batch_input) => Self { - index: ActiveValue::Set( - batch_input - .batch_input_data - .batch_index - .try_into() - .expect("index should fit in i64"), - ), - version: ActiveValue::Set(2), - codec_version: ActiveValue::Set(batch_input.batch_input_data.version), - hash: ActiveValue::Set(batch_input.batch_input_data.batch_hash.to_vec()), - block_number: ActiveValue::Set( - batch_input - .batch_input_data - .block_number - .try_into() - .expect("block number should fit in i64"), - ), - parent_batch_header: ActiveValue::Set( - batch_input.batch_input_data.parent_batch_header, - ), - chunks: ActiveValue::Set(Chunks(batch_input.batch_input_data.chunks)), - skipped_l1_message_bitmap: ActiveValue::Set( - batch_input.batch_input_data.skipped_l1_message_bitmap, - ), - blob_hash: ActiveValue::Set(batch_input.blob_hash.to_vec()), - finalized_block_number: ActiveValue::Unchanged(None), - }, + let (version, batch_input_v1, blob_hash) = match batch_input { + BatchInputPrimitive::BatchInputDataV1(batch_input) => (1, batch_input, vec![]), + BatchInputPrimitive::BatchInputDataV2(batch_input) => { + (2, batch_input.batch_input_base, batch_input.blob_hash.to_vec()) + } + }; + Self { + index: ActiveValue::Set( + batch_input_v1.batch_index.try_into().expect("index should fit in i64"), + ), + version: ActiveValue::Set(version), + codec_version: ActiveValue::Set(batch_input_v1.version), + hash: ActiveValue::Set(batch_input_v1.batch_hash.to_vec()), + block_number: ActiveValue::Set( + batch_input_v1.block_number.try_into().expect("block number should fit in i64"), + ), + parent_batch_header: ActiveValue::Set(batch_input_v1.parent_batch_header), + chunks: ActiveValue::Set(Chunks(batch_input_v1.chunks)), + skipped_l1_message_bitmap: ActiveValue::Set(batch_input_v1.skipped_l1_message_bitmap), + blob_hash: ActiveValue::Set(blob_hash), + finalized_block_number: ActiveValue::Unchanged(None), } } } @@ -96,44 +72,28 @@ impl From for ActiveModel { impl From for BatchInputPrimitive { fn from(value: Model) -> Self { let chunks = value.chunks.0; + let batch_input_v1 = BatchInputV1 { + version: value.codec_version, + batch_index: value.index.try_into().expect("data persisted in database is valid"), + batch_hash: value + .hash + .as_slice() + .try_into() + .expect("data persisted in database is valid"), + block_number: value + .block_number + .try_into() + .expect("data persisted in database is valid"), + parent_batch_header: value.parent_batch_header, + chunks, + skipped_l1_message_bitmap: value.skipped_l1_message_bitmap, + }; + if value.version == 1 { - Self::BatchInputDataV1(BatchInputV1 { - batch_index: value.index.try_into().expect("data persisted in database is valid"), - version: value.codec_version, - batch_hash: value - .hash - .as_slice() - .try_into() - .expect("data persisted in database is valid"), - block_number: value - .block_number - .try_into() - .expect("data persisted in database is valid"), - parent_batch_header: value.parent_batch_header, - chunks, - skipped_l1_message_bitmap: value.skipped_l1_message_bitmap, - }) + Self::BatchInputDataV1(batch_input_v1) } else { Self::BatchInputDataV2(BatchInputV2 { - batch_input_data: BatchInputV1 { - batch_index: value - .index - .try_into() - .expect("data persisted in database is valid"), - version: value.codec_version, - batch_hash: value - .hash - .as_slice() - .try_into() - .expect("data persisted in database is valid"), - block_number: value - .block_number - .try_into() - .expect("data persisted in database is valid"), - parent_batch_header: value.parent_batch_header, - chunks, - skipped_l1_message_bitmap: value.skipped_l1_message_bitmap, - }, + batch_input_base: batch_input_v1, blob_hash: value .blob_hash .as_slice() diff --git a/crates/primitives/src/batch.rs b/crates/primitives/src/batch.rs index 5062d2a8..d8282667 100644 --- a/crates/primitives/src/batch.rs +++ b/crates/primitives/src/batch.rs @@ -20,7 +20,7 @@ impl BatchInput { pub const fn version(&self) -> u8 { match self { Self::BatchInputDataV1(data) => data.version, - Self::BatchInputDataV2(data) => data.batch_input_data.version, + Self::BatchInputDataV2(data) => data.batch_input_base.version, } } @@ -28,7 +28,7 @@ impl BatchInput { pub const fn batch_index(&self) -> u64 { match self { Self::BatchInputDataV1(data) => data.batch_index, - Self::BatchInputDataV2(data) => data.batch_input_data.batch_index, + Self::BatchInputDataV2(data) => data.batch_input_base.batch_index, } } @@ -36,7 +36,7 @@ impl BatchInput { pub const fn batch_hash(&self) -> &B256 { match self { Self::BatchInputDataV1(data) => &data.batch_hash, - Self::BatchInputDataV2(data) => &data.batch_input_data.batch_hash, + Self::BatchInputDataV2(data) => &data.batch_input_base.batch_hash, } } @@ -44,7 +44,7 @@ impl BatchInput { pub fn set_block_number(&mut self, block_number: BlockNumber) { match self { Self::BatchInputDataV1(data) => data.block_number = block_number, - Self::BatchInputDataV2(data) => data.batch_input_data.block_number = block_number, + Self::BatchInputDataV2(data) => data.batch_input_base.block_number = block_number, } } } @@ -72,7 +72,7 @@ pub struct BatchInputV1 { #[derive(Debug, Clone, PartialEq, Eq)] pub struct BatchInputV2 { /// The base input data for the batch. - pub batch_input_data: BatchInputV1, + pub batch_input_base: BatchInputV1, /// The L1 blob hash associated with the batch. pub blob_hash: B256, } @@ -173,7 +173,7 @@ impl BatchInputBuilder { skipped_l1_message_bitmap, }; let blob_hash = blob.first().copied()?; - Some(BatchInputV2 { batch_input_data, blob_hash }.into()) + Some(BatchInputV2 { batch_input_base: batch_input_data, blob_hash }.into()) } (None, None, Some(_blobs)) => { // TODO(greg): for now None but this will be used in Euclid. @@ -223,7 +223,7 @@ mod arbitrary_impl { impl arbitrary::Arbitrary<'_> for BatchInputV2 { fn arbitrary(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result { - Ok(Self { batch_input_data: u.arbitrary()?, blob_hash: u.arbitrary()? }) + Ok(Self { batch_input_base: u.arbitrary()?, blob_hash: u.arbitrary()? }) } } } From 6d52d5d61db80ac637381e95638e2327c767ee5d Mon Sep 17 00:00:00 2001 From: frisitano Date: Tue, 18 Mar 2025 14:29:16 +0700 Subject: [PATCH 47/63] merge database and refactor --- crates/indexer/src/error.rs | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 crates/indexer/src/error.rs diff --git a/crates/indexer/src/error.rs b/crates/indexer/src/error.rs new file mode 100644 index 00000000..ea0dd5b5 --- /dev/null +++ b/crates/indexer/src/error.rs @@ -0,0 +1,9 @@ +use scroll_db::DatabaseError; + +/// A type that represents an error that occurred during indexing. +#[derive(Debug, thiserror::Error)] +pub enum IndexerError { + /// An error occurred while interacting with the database. + #[error("indexing failed due to database error: {0}")] + DatabaseError(#[from] DatabaseError), +} From a44b6a23e49513088e501c6c088993c41613538b Mon Sep 17 00:00:00 2001 From: frisitano Date: Tue, 18 Mar 2025 14:31:20 +0700 Subject: [PATCH 48/63] clippy fix --- crates/indexer/src/event.rs | 2 +- crates/indexer/src/handle.rs | 2 +- crates/indexer/src/lib.rs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/indexer/src/event.rs b/crates/indexer/src/event.rs index effc5ed7..24c1cd36 100644 --- a/crates/indexer/src/event.rs +++ b/crates/indexer/src/event.rs @@ -1,6 +1,6 @@ /// An event emitted by the indexer. #[derive(Debug, Clone, Copy)] pub enum IndexerEvent { - /// An event indicating that an L1Notification has been indexed. + /// An event indicating that an `L1Notification` has been indexed. L1NotificationIndexed, } diff --git a/crates/indexer/src/handle.rs b/crates/indexer/src/handle.rs index 4f5eece8..e412f8b4 100644 --- a/crates/indexer/src/handle.rs +++ b/crates/indexer/src/handle.rs @@ -17,7 +17,7 @@ pub struct IndexerHandle { impl IndexerHandle { /// Creates a new indexer handle with the given command sender. - pub fn new(cmd_tx: UnboundedSender) -> Self { + pub const fn new(cmd_tx: UnboundedSender) -> Self { Self { cmd_tx } } diff --git a/crates/indexer/src/lib.rs b/crates/indexer/src/lib.rs index d8fb6769..8546921d 100644 --- a/crates/indexer/src/lib.rs +++ b/crates/indexer/src/lib.rs @@ -32,7 +32,7 @@ impl Indexer { /// Creates a new indexer with the given database and returns the [`IndexerHandle`] . pub fn spawn(database: Arc) -> IndexerHandle { let (cmd_tx, cmd_rx) = mpsc::unbounded_channel(); - let indexer = Indexer { database, cmd_rx, event_sender: None }; + let indexer = Self { database, cmd_rx, event_sender: None }; tokio::spawn(indexer.run()); IndexerHandle::new(cmd_tx) } @@ -45,7 +45,7 @@ impl Indexer { let (cmd_tx, cmd_rx) = mpsc::unbounded_channel(); let event_sender = EventSender::new(2000); let event_listener = event_sender.new_listener(); - let indexer = Indexer { database, cmd_rx, event_sender: Some(event_sender) }; + let indexer = Self { database, cmd_rx, event_sender: Some(event_sender) }; tokio::spawn(indexer.run()); (IndexerHandle::new(cmd_tx), event_listener) } From 25ebfeec28c1387e1d440ec20e4283616dc10452 Mon Sep 17 00:00:00 2001 From: frisitano Date: Tue, 18 Mar 2025 14:37:57 +0700 Subject: [PATCH 49/63] skip rolllup-node-indexer no_std --- .github/workflows/lint.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index b00a4bd6..5bdc964e 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -127,10 +127,10 @@ jobs: include: - type: wasm target: wasm32-unknown-unknown - exclude: scroll-engine,scroll-wire,scroll-bridge,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration + exclude: scroll-engine,scroll-wire,scroll-bridge,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration,rollup-node-indexer - type: riscv target: riscv32imac-unknown-none-elf - exclude: scroll-engine,scroll-wire,scroll-bridge,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration + exclude: scroll-engine,scroll-wire,scroll-bridge,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration,rollup-node-indexer steps: - uses: actions/checkout@v4 - uses: rui314/setup-mold@v1 From d15e438d73c78267286b7ca51829ba7ffdf64e52 Mon Sep 17 00:00:00 2001 From: frisitano Date: Tue, 18 Mar 2025 14:41:09 +0700 Subject: [PATCH 50/63] refactor databse interface for insert_batch_input --- crates/database/db/src/operations.rs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/crates/database/db/src/operations.rs b/crates/database/db/src/operations.rs index 35d15a9d..e28d3f3b 100644 --- a/crates/database/db/src/operations.rs +++ b/crates/database/db/src/operations.rs @@ -8,15 +8,12 @@ use sea_orm::{ActiveModelTrait, ColumnTrait, DbErr, EntityTrait, QueryFilter, Se /// The [`DatabaseOperations`] trait provides methods for interacting with the database. #[async_trait::async_trait] pub trait DatabaseOperations: DatabaseConnectionProvider { - /// Insert a [`BatchInput`] into the database and returns the batch input model - /// ([`models::batch_input::Model`]). - async fn insert_batch_input( - &self, - batch_input: BatchInput, - ) -> Result { + /// Insert a [`BatchInput`] into the database. + async fn insert_batch_input(&self, batch_input: BatchInput) -> Result<(), DatabaseError> { tracing::trace!(target: "scroll::db", batch_hash = ?batch_input.batch_hash(), batch_index = batch_input.batch_index(), "Inserting batch input into database."); let batch_input: models::batch_input::ActiveModel = batch_input.into(); - Ok(batch_input.insert(self.get_connection()).await?) + batch_input.insert(self.get_connection()).await?; + Ok(()) } /// Finalize a [`BatchInput`] with the provided `batch_hash` in the database and set the From 27b14a78e3fec5a865e33cae7ee24eef49b61086 Mon Sep 17 00:00:00 2001 From: frisitano Date: Tue, 18 Mar 2025 15:09:02 +0700 Subject: [PATCH 51/63] lint and refactor --- bin/rollup/Cargo.toml | 4 ++++ bin/rollup/src/args.rs | 2 +- bin/rollup/src/network.rs | 4 ++-- crates/node/src/lib.rs | 2 +- crates/primitives/src/batch.rs | 8 -------- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/bin/rollup/Cargo.toml b/bin/rollup/Cargo.toml index 61f366eb..f5e0e6d8 100644 --- a/bin/rollup/Cargo.toml +++ b/bin/rollup/Cargo.toml @@ -84,6 +84,10 @@ test-utils = [ "scroll-engine/test-utils", "reth-payload-builder/test-utils", "reth-payload-builder/test-utils", + "rollup-node-watcher/test-utils", + "scroll-db/test-utils", + "rollup-node-watcher/test-utils", + "scroll-db/test-utils", ] serde = [ "alloy-primitives/serde", diff --git a/bin/rollup/src/args.rs b/bin/rollup/src/args.rs index d7de68ae..fb1991c3 100644 --- a/bin/rollup/src/args.rs +++ b/bin/rollup/src/args.rs @@ -5,7 +5,7 @@ pub struct ScrollBridgeNodeArgs { /// A bool to represent if new blocks should be bridged from the eth wire protocol to the /// scroll wire protocol. pub enable_eth_scroll_wire_bridge: bool, - /// A bool that represets if the scroll wire protocol should be enabled. + /// A bool that represents if the scroll wire protocol should be enabled. pub enable_scroll_wire: bool, /// Database path pub database_path: Option, diff --git a/bin/rollup/src/network.rs b/bin/rollup/src/network.rs index 71f39293..eaa37628 100644 --- a/bin/rollup/src/network.rs +++ b/bin/rollup/src/network.rs @@ -12,7 +12,7 @@ use rollup_node_indexer::Indexer; use rollup_node_manager::{PoAConsensus, RollupNodeManager}; use rollup_node_watcher::L1Watcher; use scroll_alloy_provider::ScrollAuthEngineApiProvider; -use scroll_db::Database; +use scroll_db::{Database, DatabaseConnectionProvider}; use scroll_engine::{test_utils::NoopExecutionPayloadProvider, EngineDriver, ForkchoiceState}; use scroll_network::NetworkManager as ScrollNetworkManager; use scroll_wire::{ProtocolHandler, ScrollWireConfig}; @@ -106,7 +106,7 @@ where let db = Database::new(database_path.to_str().unwrap()).await?; // Run the database migrations - migration::Migrator::up(db.connection(), None).await?; + migration::Migrator::up(db.get_connection(), None).await?; // Wrap the database in an Arc let db = Arc::new(db); diff --git a/crates/node/src/lib.rs b/crates/node/src/lib.rs index bd046725..7ed69660 100644 --- a/crates/node/src/lib.rs +++ b/crates/node/src/lib.rs @@ -60,7 +60,7 @@ pub struct RollupNodeManager { network: NetworkManager, /// The engine driver used to communicate with the engine. engine: Arc>, - /// A receiver for [`L1Notification`]s from the [`L1Watcher`]. + /// A receiver for [`L1Notification`]s from the [`rollup_node_watcher::L1Watcher`]. l1_notification_rx: ReceiverStream>, /// A handle to the indexer. indexer: IndexerHandle, diff --git a/crates/primitives/src/batch.rs b/crates/primitives/src/batch.rs index b2b8d265..d8282667 100644 --- a/crates/primitives/src/batch.rs +++ b/crates/primitives/src/batch.rs @@ -40,14 +40,6 @@ impl BatchInput { } } - /// Returns the hash of the batch. - pub fn batch_hash(&self) -> &B256 { - match self { - BatchInput::BatchInputDataV1(data) => &data.batch_hash, - BatchInput::BatchInputDataV2(data) => &data.batch_input_data.batch_hash, - } - } - /// Sets the block number of the batch. pub fn set_block_number(&mut self, block_number: BlockNumber) { match self { From 55cb8ef76dab0cce046f0cf19913600d30e92cf0 Mon Sep 17 00:00:00 2001 From: frisitano Date: Tue, 18 Mar 2025 18:31:33 +0700 Subject: [PATCH 52/63] refactor and lint --- Cargo.lock | 1 + bin/rollup/Cargo.toml | 1 + bin/rollup/src/args.rs | 7 ++++++- bin/rollup/src/lib.rs | 2 +- bin/rollup/src/main.rs | 4 ++-- bin/rollup/src/network.rs | 17 +++++++++-------- bin/rollup/tests/e2e.rs | 6 ++++-- crates/node/src/lib.rs | 10 ++++++---- 8 files changed, 30 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7432a210..4d8cd696 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8978,6 +8978,7 @@ dependencies = [ "clap", "eyre", "futures", + "reqwest", "reth-cli-util", "reth-e2e-test-utils", "reth-engine-local", diff --git a/bin/rollup/Cargo.toml b/bin/rollup/Cargo.toml index f5e0e6d8..72368cd7 100644 --- a/bin/rollup/Cargo.toml +++ b/bin/rollup/Cargo.toml @@ -53,6 +53,7 @@ rollup-node-watcher.workspace = true # misc clap = { version = "4", features = ["derive", "env"] } eyre.workspace = true +reqwest = { version = "0.12", default-features = false } secp256k1 = { workspace = true, features = ["global-context", "recovery"] } tokio = { workspace = true, features = ["full"] } tracing.workspace = true diff --git a/bin/rollup/src/args.rs b/bin/rollup/src/args.rs index fb1991c3..8c31a4b4 100644 --- a/bin/rollup/src/args.rs +++ b/bin/rollup/src/args.rs @@ -1,7 +1,8 @@ use std::path::PathBuf; +/// A struct that represents the arguments for the rollup node. #[derive(Debug, clap::Args)] -pub struct ScrollBridgeNodeArgs { +pub struct ScrollRollupNodeArgs { /// A bool to represent if new blocks should be bridged from the eth wire protocol to the /// scroll wire protocol. pub enable_eth_scroll_wire_bridge: bool, @@ -9,4 +10,8 @@ pub struct ScrollBridgeNodeArgs { pub enable_scroll_wire: bool, /// Database path pub database_path: Option, + /// The URL for the L1 RPC URL. + pub l1_rpc_url: Option, + /// The EngineAPI URL. + pub engine_api_url: Option, } diff --git a/bin/rollup/src/lib.rs b/bin/rollup/src/lib.rs index 66ea71f9..038f7e16 100644 --- a/bin/rollup/src/lib.rs +++ b/bin/rollup/src/lib.rs @@ -1,7 +1,7 @@ //! Scroll Network Bridge Components. mod args; -pub use args::ScrollBridgeNodeArgs; +pub use args::ScrollRollupNodeArgs; mod import; pub use import::BridgeBlockImport; diff --git a/bin/rollup/src/main.rs b/bin/rollup/src/main.rs index 0390c76b..aeda75b3 100644 --- a/bin/rollup/src/main.rs +++ b/bin/rollup/src/main.rs @@ -8,14 +8,14 @@ fn main() { use reth_scroll_cli::{Cli, ScrollChainSpecParser}; use reth_scroll_node::{ScrollAddOns, ScrollNode}; reth_cli_util::sigsegv_handler::install(); - use rollup_node::ScrollBridgeNodeArgs; + use rollup_node::ScrollRollupNodeArgs; // Enable backtraces unless a RUST_BACKTRACE value has already been explicitly provided. if std::env::var_os("RUST_BACKTRACE").is_none() { std::env::set_var("RUST_BACKTRACE", "1"); } - if let Err(err) = Cli::::parse() + if let Err(err) = Cli::::parse() .run::<_, _, ScrollNode>(|builder, scroll_bridge_node_args| async move { let engine_tree_config = TreeConfig::default() .with_persistence_threshold(builder.config().engine.persistence_threshold) diff --git a/bin/rollup/src/network.rs b/bin/rollup/src/network.rs index eaa37628..ee5de862 100644 --- a/bin/rollup/src/network.rs +++ b/bin/rollup/src/network.rs @@ -19,17 +19,17 @@ use scroll_wire::{ProtocolHandler, ScrollWireConfig}; use std::{path::PathBuf, sync::Arc}; use tracing::info; -use crate::ScrollBridgeNodeArgs; +use crate::ScrollRollupNodeArgs; /// The network builder for the eth-wire to scroll-wire bridge. #[derive(Debug)] pub struct ScrollRollupNetworkBuilder { - config: ScrollBridgeNodeArgs, + config: ScrollRollupNodeArgs, } impl ScrollRollupNetworkBuilder { /// Returns a new [`ScrollRollupNetworkBuilder`] instance with the provided config. - pub fn new(config: ScrollBridgeNodeArgs) -> Self { + pub fn new(config: ScrollRollupNodeArgs) -> Self { Self { config } } } @@ -93,7 +93,7 @@ where let engine_api = ScrollAuthEngineApiProvider::new( auth_secret, - format!("http://localhost:{auth_port}").parse()?, + self.config.engine_api_url.unwrap_or(format!("http://localhost:{auth_port}").parse()?), ); let engine = EngineDriver::new(engine_api, payload_provider); @@ -115,10 +115,11 @@ where let indexer = Indexer::spawn(db.clone()); // Spawn the L1Watcher - let l1_rpc = ProviderBuilder::new().on_http( - "https://eth-mainnet.g.alchemy.com/v2/_JqpVl1eGmQwkZ666pMpQTKJnsoblTtJ".parse()?, - ); - let l1_notification_rx = L1Watcher::spawn(l1_rpc, 20035952).await; + let l1_notification_rx = if let Some(l1_rpc_url) = self.config.l1_rpc_url { + Some(L1Watcher::spawn(ProviderBuilder::new().on_http(l1_rpc_url), 20035952).await) + } else { + None + }; // Spawn the rollup node manager let rollup_node_manager = RollupNodeManager::new( diff --git a/bin/rollup/tests/e2e.rs b/bin/rollup/tests/e2e.rs index 5e4016ca..42ace7dd 100644 --- a/bin/rollup/tests/e2e.rs +++ b/bin/rollup/tests/e2e.rs @@ -14,7 +14,7 @@ use reth_scroll_chainspec::ScrollChainSpec; use reth_scroll_engine_primitives::ScrollPayloadBuilderAttributes; use reth_scroll_node::{ScrollNetworkPrimitives, ScrollNode}; use reth_tasks::TaskManager; -use rollup_node::ScrollBridgeNodeArgs; +use rollup_node::ScrollRollupNodeArgs; use scroll_alloy_rpc_types_engine::ScrollPayloadAttributes; use scroll_network::{NewBlockWithPeer, SCROLL_MAINNET}; use scroll_wire::ScrollWireConfig; @@ -132,10 +132,12 @@ pub async fn build_bridge_node( // Create the node for a bridge node that will bridge messages from the eth-wire protocol // to the scroll-wire protocol. - let node_args = ScrollBridgeNodeArgs { + let node_args = ScrollRollupNodeArgs { enable_eth_scroll_wire_bridge: true, enable_scroll_wire: true, database_path: Some(PathBuf::from("sqlite::memory:")), + l1_rpc_url: None, + engine_api_url: None, }; let node = ScrollNode; let NodeHandle { node, node_exit_future: _ } = NodeBuilder::new(node_config.clone()) diff --git a/crates/node/src/lib.rs b/crates/node/src/lib.rs index 7ed69660..7184a17e 100644 --- a/crates/node/src/lib.rs +++ b/crates/node/src/lib.rs @@ -61,7 +61,7 @@ pub struct RollupNodeManager { /// The engine driver used to communicate with the engine. engine: Arc>, /// A receiver for [`L1Notification`]s from the [`rollup_node_watcher::L1Watcher`]. - l1_notification_rx: ReceiverStream>, + l1_notification_rx: Option>>, /// A handle to the indexer. indexer: IndexerHandle, /// The consensus algorithm used by the rollup node. @@ -86,7 +86,7 @@ where pub fn new( network: NetworkManager, engine: EngineDriver, - l1_notification_rx: Receiver>, + l1_notification_rx: Option>>, indexer: IndexerHandle, forkchoice_state: ForkchoiceState, consensus: C, @@ -95,7 +95,7 @@ where Self { network, engine: Arc::new(engine), - l1_notification_rx: l1_notification_rx.into(), + l1_notification_rx: l1_notification_rx.map(Into::into), indexer, consensus, new_block_rx: new_block_rx.map(Into::into), @@ -247,7 +247,9 @@ where } // Drain all L1 notifications. - while let Poll::Ready(Some(event)) = this.l1_notification_rx.poll_next_unpin(cx) { + while let Some(Poll::Ready(Some(event))) = + this.l1_notification_rx.as_mut().map(|x| x.poll_next_unpin(cx)) + { this.handle_l1_notification((*event).clone()); } From 67a14e12f71c3859ba1a7301dd43fdc4f3c80dd4 Mon Sep 17 00:00:00 2001 From: frisitano Date: Tue, 18 Mar 2025 18:36:43 +0700 Subject: [PATCH 53/63] lint --- .github/workflows/lint.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 5bdc964e..b97e38ee 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -127,10 +127,10 @@ jobs: include: - type: wasm target: wasm32-unknown-unknown - exclude: scroll-engine,scroll-wire,scroll-bridge,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration,rollup-node-indexer + exclude: scroll-engine,scroll-wire,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration,rollup-node-indexer,rollup-node - type: riscv target: riscv32imac-unknown-none-elf - exclude: scroll-engine,scroll-wire,scroll-bridge,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration,rollup-node-indexer + exclude: scroll-engine,scroll-wire,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration,rollup-node-indexer,rollup-node steps: - uses: actions/checkout@v4 - uses: rui314/setup-mold@v1 From 7420c9f8d59873253e22d218f34885df13b81f58 Mon Sep 17 00:00:00 2001 From: frisitano Date: Wed, 19 Mar 2025 15:10:43 +0700 Subject: [PATCH 54/63] refactor --- crates/indexer/Cargo.toml | 1 + crates/indexer/src/event.rs | 10 +- crates/indexer/src/handle.rs | 28 ----- crates/indexer/src/lib.rs | 210 ++++++++++++++++++++--------------- 4 files changed, 131 insertions(+), 118 deletions(-) delete mode 100644 crates/indexer/src/handle.rs diff --git a/crates/indexer/Cargo.toml b/crates/indexer/Cargo.toml index 245a3e50..3e70a316 100644 --- a/crates/indexer/Cargo.toml +++ b/crates/indexer/Cargo.toml @@ -22,6 +22,7 @@ rollup-node-primitives.workspace = true rollup-node-watcher.workspace = true # misc +futures.workspace = true thiserror.workspace = true tokio.workspace = true tracing.workspace = true diff --git a/crates/indexer/src/event.rs b/crates/indexer/src/event.rs index 24c1cd36..eb6d55f7 100644 --- a/crates/indexer/src/event.rs +++ b/crates/indexer/src/event.rs @@ -1,6 +1,12 @@ /// An event emitted by the indexer. #[derive(Debug, Clone, Copy)] pub enum IndexerEvent { - /// An event indicating that an `L1Notification` has been indexed. - L1NotificationIndexed, + /// A `BatchCommit` event has been indexed returning the batch index. + BatchCommitIndexed(u64), + /// A `BatchFinalization` event has been indexed returning the batch index. + BatchFinalizationIndexed(u64), + /// A `L1Message` event has been indexed returning the message queue index. + L1MessageIndexed(u64), + /// A `Reorg` event has been indexed returning the reorg block number. + ReorgIndexed(u64), } diff --git a/crates/indexer/src/handle.rs b/crates/indexer/src/handle.rs deleted file mode 100644 index e412f8b4..00000000 --- a/crates/indexer/src/handle.rs +++ /dev/null @@ -1,28 +0,0 @@ -use rollup_node_watcher::L1Notification; -use tokio::sync::mpsc::UnboundedSender; - -/// A command to the indexer. -#[derive(Debug)] -pub enum IndexerCommand { - /// A request to index an L1 notification. - IndexL1Notification(L1Notification), -} - -/// A handle which is used to send commands to the indexer. -#[derive(Debug)] -pub struct IndexerHandle { - /// The sender half of the channel used to send commands to the indexer. - cmd_tx: UnboundedSender, -} - -impl IndexerHandle { - /// Creates a new indexer handle with the given command sender. - pub const fn new(cmd_tx: UnboundedSender) -> Self { - Self { cmd_tx } - } - - /// Sends a command to the indexer to index an L1 notification. - pub fn index_l1_notification(&self, notification: L1Notification) { - let _ = self.cmd_tx.send(IndexerCommand::IndexL1Notification(notification)); - } -} diff --git a/crates/indexer/src/lib.rs b/crates/indexer/src/lib.rs index 8546921d..b8466f7d 100644 --- a/crates/indexer/src/lib.rs +++ b/crates/indexer/src/lib.rs @@ -1,11 +1,17 @@ //! A library responsible for indexing data relevant to the L1. use alloy_primitives::B256; -use reth_tokio_util::{EventSender, EventStream}; +use futures::Stream; use rollup_node_primitives::{BatchInput, L1MessageWithBlockNumber}; use rollup_node_watcher::L1Notification; use scroll_db::{Database, DatabaseOperations}; -use std::sync::Arc; -use tokio::sync::mpsc; +use std::{ + collections::VecDeque, + fmt, + future::Future, + pin::Pin, + sync::Arc, + task::{Context, Poll}, +}; mod event; pub use event::IndexerEvent; @@ -13,83 +19,75 @@ pub use event::IndexerEvent; mod error; use error::IndexerError; -mod handle; -use handle::IndexerCommand; -pub use handle::IndexerHandle; +/// A future that resolves to a tuple of the block info and the block import outcome. +type PendingIndexerFuture = + Pin> + Send>>; /// The indexer is responsible for indexing data relevant to the L1. -#[derive(Debug)] pub struct Indexer { /// A reference to the database used to persist the indexed data. database: Arc, - /// A channel to receive commands to index data. - cmd_rx: mpsc::UnboundedReceiver, - /// An event sender for sending events to subscribers of the rollup node manager. - event_sender: Option>, + /// A queue of pending futures. + pending_futures: VecDeque, } -impl Indexer { - /// Creates a new indexer with the given database and returns the [`IndexerHandle`] . - pub fn spawn(database: Arc) -> IndexerHandle { - let (cmd_tx, cmd_rx) = mpsc::unbounded_channel(); - let indexer = Self { database, cmd_rx, event_sender: None }; - tokio::spawn(indexer.run()); - IndexerHandle::new(cmd_tx) - } +enum IndexerAction { + HandleReorg(PendingIndexerFuture), + HandleBatchCommit(PendingIndexerFuture), + HandleBatchFinalization(PendingIndexerFuture), + HandleL1Message(PendingIndexerFuture), +} - /// Creates a new indexer with the given database and returns an [`IndexerHandle`] and - /// [`EventStream`]. - pub fn spawn_with_event_stream( - database: Arc, - ) -> (IndexerHandle, EventStream) { - let (cmd_tx, cmd_rx) = mpsc::unbounded_channel(); - let event_sender = EventSender::new(2000); - let event_listener = event_sender.new_listener(); - let indexer = Self { database, cmd_rx, event_sender: Some(event_sender) }; - tokio::spawn(indexer.run()); - (IndexerHandle::new(cmd_tx), event_listener) +impl IndexerAction { + fn poll(&mut self, cx: &mut Context<'_>) -> Poll> { + match self { + IndexerAction::HandleReorg(fut) => fut.as_mut().poll(cx), + IndexerAction::HandleBatchCommit(fut) => fut.as_mut().poll(cx), + IndexerAction::HandleBatchFinalization(fut) => fut.as_mut().poll(cx), + IndexerAction::HandleL1Message(fut) => fut.as_mut().poll(cx), + } } +} - /// The main loop of the indexer. - async fn run(mut self) { - loop { - if let Some(IndexerCommand::IndexL1Notification(event)) = self.cmd_rx.recv().await { - if let Err(err) = self.handle_l1_event(event).await { - tracing::error!(target: "rollup_node_indexer", "error handling L1 event {:?}", err); - } - } else { - tracing::trace!(target: "rollup_node_indexer", "indexer command channel closed - shutting down"); - break; - } - } +impl Indexer { + /// Creates a new indexer with the given [`Database`]. + pub fn new(database: Arc) -> Self { + Self { database, pending_futures: Default::default() } } /// Handles an event from the L1. - pub async fn handle_l1_event(&self, event: L1Notification) -> Result<(), IndexerError> { - let result = match event { - L1Notification::Reorg(block_number) => self.handle_reorg(block_number).await, - L1Notification::NewBlock(_block_number) | L1Notification::Finalized(_block_number) => { - Ok(()) - } - L1Notification::BatchCommit(batch_input) => self.handle_batch_input(batch_input).await, - L1Notification::L1Message(l1_message) => self.handle_l1_message(l1_message).await, - L1Notification::BatchFinalization { hash, block_number } => { - self.handle_batch_finalization(hash, block_number).await - } - }; - - if let Some(event_sender) = &self.event_sender { - event_sender.notify(IndexerEvent::L1NotificationIndexed); - } + pub fn handle_l1_notification(&mut self, event: L1Notification) { + let fut = + match event { + L1Notification::Reorg(block_number) => IndexerAction::HandleReorg(Box::pin( + Self::handle_reorg(self.database.clone(), block_number), + )), + L1Notification::NewBlock(_block_number) | + L1Notification::Finalized(_block_number) => return, + L1Notification::BatchCommit(batch_input) => IndexerAction::HandleBatchCommit( + Box::pin(Self::handle_batch_commit(self.database.clone(), batch_input)), + ), + L1Notification::L1Message(l1_message) => IndexerAction::HandleL1Message(Box::pin( + Self::handle_l1_message(self.database.clone(), l1_message), + )), + L1Notification::BatchFinalization { hash, block_number } => { + IndexerAction::HandleBatchFinalization(Box::pin( + Self::handle_batch_finalization(self.database.clone(), hash, block_number), + )) + } + }; - result + self.pending_futures.push_back(fut); } /// Handles a reorganization event by deleting all indexed data which is greater than the /// provided block number. - async fn handle_reorg(&self, block_number: u64) -> Result<(), IndexerError> { + async fn handle_reorg( + database: Arc, + block_number: u64, + ) -> Result { // create a database transaction so this operation is atomic - let txn = self.database.tx().await?; + let txn = database.tx().await?; // delete batch inputs and l1 messages txn.delete_batch_inputs_gt(block_number).await?; @@ -97,29 +95,66 @@ impl Indexer { // commit the transaction txn.commit().await?; - Ok(()) + Ok(IndexerEvent::ReorgIndexed(block_number)) } /// Handles an L1 message by inserting it into the database. async fn handle_l1_message( - &self, + database: Arc, l1_message: L1MessageWithBlockNumber, - ) -> Result<(), IndexerError> { - Ok(self.database.insert_l1_message(l1_message).await.map(|_| ())?) + ) -> Result { + let event = IndexerEvent::L1MessageIndexed(l1_message.transaction.queue_index); + let _ = database.insert_l1_message(l1_message).await?; + Ok(event) } /// Handles a batch input by inserting it into the database. - async fn handle_batch_input(&self, batch_input: BatchInput) -> Result<(), IndexerError> { - Ok(self.database.insert_batch_input(batch_input).await.map(|_| ())?) + async fn handle_batch_commit( + database: Arc, + batch_input: BatchInput, + ) -> Result { + let event = IndexerEvent::BatchCommitIndexed(batch_input.batch_index()); + let _ = database.insert_batch_input(batch_input).await?; + Ok(event) } /// Handles a batch finalization event by updating the batch input in the database. async fn handle_batch_finalization( - &self, + database: Arc, batch_hash: B256, block_number: u64, - ) -> Result<(), IndexerError> { - Ok(self.database.finalize_batch_input(batch_hash, block_number).await?) + ) -> Result { + let event = IndexerEvent::BatchFinalizationIndexed(block_number); + let _ = database.finalize_batch_input(batch_hash, block_number).await?; + Ok(event) + } +} + +impl Stream for Indexer { + type Item = Result; + + fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { + // Remove and poll the next future in the queue + while let Some(mut action) = self.pending_futures.pop_front() { + match action.poll(cx) { + Poll::Ready(result) => return Poll::Ready(Some(result)), + Poll::Pending => { + self.pending_futures.push_front(action); + return Poll::Pending; + } + } + } + + Poll::Pending + } +} +impl fmt::Debug for Indexer { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Indexer") + .field("database", &"Arc") // Hide actual DB details + .field("cmd_rx", &"mpsc::UnboundedReceiver") // Hide channel details + .field("pending_futures_len", &self.pending_futures.len()) // Only print the queue length + .finish() } } @@ -132,16 +167,15 @@ mod test { use rollup_node_primitives::BatchInput; use scroll_db::test_utils::setup_test_db; - async fn setup_test_indexer() -> (IndexerHandle, EventStream, Arc) { + async fn setup_test_indexer() -> (Indexer, Arc) { let db = Arc::new(setup_test_db().await); - let (handle, event_stream) = Indexer::spawn_with_event_stream(db.clone()); - (handle, event_stream, db) + (Indexer::new(db.clone()), db) } #[tokio::test] async fn test_handle_commit_batch() { // Instantiate indexer and db - let (handle, mut event_stream, db) = setup_test_indexer().await; + let (mut indexer, db) = setup_test_indexer().await; // Generate unstructured bytes. let mut bytes = [0u8; 1024]; @@ -149,9 +183,9 @@ mod test { let mut u = Unstructured::new(&bytes); let batch_input = BatchInput::arbitrary(&mut u).unwrap(); - handle.index_l1_notification(L1Notification::BatchCommit(batch_input.clone())); + indexer.handle_l1_notification(L1Notification::BatchCommit(batch_input.clone())); - let _ = event_stream.next().await; + let _ = indexer.next().await; let batch_input_result = db.get_batch_input_by_batch_index(batch_input.batch_index()).await.unwrap().unwrap(); @@ -162,7 +196,7 @@ mod test { #[tokio::test] async fn test_handle_l1_message() { // Instantiate indexer and db - let (handle, mut event_stream, db) = setup_test_indexer().await; + let (mut indexer, db) = setup_test_indexer().await; // Generate unstructured bytes. let mut bytes = [0u8; 1024]; @@ -170,9 +204,9 @@ mod test { let mut u = Unstructured::new(&bytes); let l1_message = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); - handle.index_l1_notification(L1Notification::L1Message(l1_message.clone())); + indexer.handle_l1_notification(L1Notification::L1Message(l1_message.clone())); - let _ = event_stream.next().await; + let _ = indexer.next().await; let l1_message_result = db.get_l1_message(l1_message.transaction.queue_index).await.unwrap().unwrap(); @@ -183,7 +217,7 @@ mod test { #[tokio::test] async fn test_handle_reorg() { // Instantiate indexer and db - let (handle, mut event_stream, db) = setup_test_indexer().await; + let (mut indexer, db) = setup_test_indexer().await; // Generate unstructured bytes. let mut bytes = [0u8; 1024]; @@ -204,9 +238,9 @@ mod test { let batch_input_block_30 = batch_input_block_30; // Index batch inputs - handle.index_l1_notification(L1Notification::BatchCommit(batch_input_block_1.clone())); - handle.index_l1_notification(L1Notification::BatchCommit(batch_input_block_20.clone())); - handle.index_l1_notification(L1Notification::BatchCommit(batch_input_block_30.clone())); + indexer.handle_l1_notification(L1Notification::BatchCommit(batch_input_block_1.clone())); + indexer.handle_l1_notification(L1Notification::BatchCommit(batch_input_block_20.clone())); + indexer.handle_l1_notification(L1Notification::BatchCommit(batch_input_block_30.clone())); // Generate 3 random L1 messages and set their block numbers let mut l1_message_block_1 = L1MessageWithBlockNumber::arbitrary(&mut u).unwrap(); @@ -222,15 +256,15 @@ mod test { let l1_message_block_30 = l1_message_block_30; // Index L1 messages - handle.index_l1_notification(L1Notification::L1Message(l1_message_block_1.clone())); - handle.index_l1_notification(L1Notification::L1Message(l1_message_block_20.clone())); - handle.index_l1_notification(L1Notification::L1Message(l1_message_block_30.clone())); + indexer.handle_l1_notification(L1Notification::L1Message(l1_message_block_1.clone())); + indexer.handle_l1_notification(L1Notification::L1Message(l1_message_block_20.clone())); + indexer.handle_l1_notification(L1Notification::L1Message(l1_message_block_30.clone())); // Reorg at block 20 - handle.index_l1_notification(L1Notification::Reorg(20)); + indexer.handle_l1_notification(L1Notification::Reorg(20)); for _ in 0..7 { - event_stream.next().await; + indexer.next().await; } // Check that the batch input at block 30 is deleted From 67f8477873dabc04bd07142aa75e35efd5415dbf Mon Sep 17 00:00:00 2001 From: frisitano Date: Wed, 19 Mar 2025 15:27:53 +0700 Subject: [PATCH 55/63] lint --- Cargo.lock | 1 - crates/indexer/Cargo.toml | 3 --- crates/indexer/src/lib.rs | 31 ++++++++++++++++--------------- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e705a730..e0ac85ea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8975,7 +8975,6 @@ dependencies = [ "arbitrary", "futures", "rand 0.9.0", - "reth-tokio-util", "rollup-node-primitives", "rollup-node-watcher", "scroll-db", diff --git a/crates/indexer/Cargo.toml b/crates/indexer/Cargo.toml index 3e70a316..90b14ab1 100644 --- a/crates/indexer/Cargo.toml +++ b/crates/indexer/Cargo.toml @@ -13,9 +13,6 @@ workspace = true # alloy alloy-primitives.workspace = true -# reth -reth-tokio-util.workspace = true - # rollup-node scroll-db.workspace = true rollup-node-primitives.workspace = true diff --git a/crates/indexer/src/lib.rs b/crates/indexer/src/lib.rs index b8466f7d..7f9ec86d 100644 --- a/crates/indexer/src/lib.rs +++ b/crates/indexer/src/lib.rs @@ -23,6 +23,13 @@ use error::IndexerError; type PendingIndexerFuture = Pin> + Send>>; +enum IndexerAction { + HandleReorg(PendingIndexerFuture), + HandleBatchCommit(PendingIndexerFuture), + HandleBatchFinalization(PendingIndexerFuture), + HandleL1Message(PendingIndexerFuture), +} + /// The indexer is responsible for indexing data relevant to the L1. pub struct Indexer { /// A reference to the database used to persist the indexed data. @@ -31,20 +38,13 @@ pub struct Indexer { pending_futures: VecDeque, } -enum IndexerAction { - HandleReorg(PendingIndexerFuture), - HandleBatchCommit(PendingIndexerFuture), - HandleBatchFinalization(PendingIndexerFuture), - HandleL1Message(PendingIndexerFuture), -} - impl IndexerAction { fn poll(&mut self, cx: &mut Context<'_>) -> Poll> { match self { - IndexerAction::HandleReorg(fut) => fut.as_mut().poll(cx), - IndexerAction::HandleBatchCommit(fut) => fut.as_mut().poll(cx), - IndexerAction::HandleBatchFinalization(fut) => fut.as_mut().poll(cx), - IndexerAction::HandleL1Message(fut) => fut.as_mut().poll(cx), + Self::HandleReorg(fut) | + Self::HandleBatchCommit(fut) | + Self::HandleBatchFinalization(fut) | + Self::HandleL1Message(fut) => fut.as_mut().poll(cx), } } } @@ -104,7 +104,7 @@ impl Indexer { l1_message: L1MessageWithBlockNumber, ) -> Result { let event = IndexerEvent::L1MessageIndexed(l1_message.transaction.queue_index); - let _ = database.insert_l1_message(l1_message).await?; + database.insert_l1_message(l1_message).await?; Ok(event) } @@ -114,7 +114,7 @@ impl Indexer { batch_input: BatchInput, ) -> Result { let event = IndexerEvent::BatchCommitIndexed(batch_input.batch_index()); - let _ = database.insert_batch_input(batch_input).await?; + database.insert_batch_input(batch_input).await?; Ok(event) } @@ -125,7 +125,7 @@ impl Indexer { block_number: u64, ) -> Result { let event = IndexerEvent::BatchFinalizationIndexed(block_number); - let _ = database.finalize_batch_input(batch_hash, block_number).await?; + database.finalize_batch_input(batch_hash, block_number).await?; Ok(event) } } @@ -135,7 +135,7 @@ impl Stream for Indexer { fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { // Remove and poll the next future in the queue - while let Some(mut action) = self.pending_futures.pop_front() { + if let Some(mut action) = self.pending_futures.pop_front() { match action.poll(cx) { Poll::Ready(result) => return Poll::Ready(Some(result)), Poll::Pending => { @@ -148,6 +148,7 @@ impl Stream for Indexer { Poll::Pending } } + impl fmt::Debug for Indexer { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Indexer") From afdbc39ab84c085315875c202cfa95c9f9ed974e Mon Sep 17 00:00:00 2001 From: frisitano Date: Wed, 19 Mar 2025 15:34:33 +0700 Subject: [PATCH 56/63] merge indexer refactor --- bin/rollup/src/network.rs | 2 +- crates/node/src/lib.rs | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/bin/rollup/src/network.rs b/bin/rollup/src/network.rs index ee5de862..385974b7 100644 --- a/bin/rollup/src/network.rs +++ b/bin/rollup/src/network.rs @@ -112,7 +112,7 @@ where let db = Arc::new(db); // Spawn the indexer - let indexer = Indexer::spawn(db.clone()); + let indexer = Indexer::new(db.clone()); // Spawn the L1Watcher let l1_notification_rx = if let Some(l1_rpc_url) = self.config.l1_rpc_url { diff --git a/crates/node/src/lib.rs b/crates/node/src/lib.rs index 7184a17e..91f96a59 100644 --- a/crates/node/src/lib.rs +++ b/crates/node/src/lib.rs @@ -6,7 +6,7 @@ use alloy_rpc_types_engine::{ }; use futures::{stream::FuturesOrdered, StreamExt}; use reth_tokio_util::{EventSender, EventStream}; -use rollup_node_indexer::IndexerHandle; +use rollup_node_indexer::Indexer; use rollup_node_watcher::L1Notification; use scroll_alloy_network::Scroll as ScrollNetwork; use scroll_alloy_provider::ScrollEngineApi; @@ -62,8 +62,8 @@ pub struct RollupNodeManager { engine: Arc>, /// A receiver for [`L1Notification`]s from the [`rollup_node_watcher::L1Watcher`]. l1_notification_rx: Option>>, - /// A handle to the indexer. - indexer: IndexerHandle, + /// An indexer used to index data for the rollup node. + indexer: Indexer, /// The consensus algorithm used by the rollup node. consensus: C, /// The receiver for new blocks received from the network (used to bridge from eth-wire). @@ -87,7 +87,7 @@ where network: NetworkManager, engine: EngineDriver, l1_notification_rx: Option>>, - indexer: IndexerHandle, + indexer: Indexer, forkchoice_state: ForkchoiceState, consensus: C, new_block_rx: Option>, @@ -223,8 +223,8 @@ where } /// Handles an [`L1Notification`] from the L1 watcher. - fn handle_l1_notification(&self, notification: L1Notification) { - self.indexer.index_l1_notification(notification); + fn handle_l1_notification(&mut self, notification: L1Notification) { + self.indexer.handle_l1_notification(notification); } } @@ -253,6 +253,11 @@ where this.handle_l1_notification((*event).clone()); } + // Drain all Indexer events + while let Poll::Ready(Some(event)) = this.indexer.poll_next_unpin(cx) { + tracing::trace!(target: "scroll::node::manager", "Received indexer event: {:?}", event); + } + // Handle blocks received from the eth-wire protocol. while let Some(Poll::Ready(Some(block))) = this.new_block_rx.as_mut().map(|new_block_rx| new_block_rx.poll_next_unpin(cx)) From f62de3b6cac7c77259a80023990b3223f59043aa Mon Sep 17 00:00:00 2001 From: frisitano Date: Wed, 19 Mar 2025 15:46:06 +0700 Subject: [PATCH 57/63] refactor indexer --- crates/indexer/src/action.rs | 44 ++++++++++++++++++++++++++++++++++++ crates/indexer/src/lib.rs | 38 ++++--------------------------- 2 files changed, 48 insertions(+), 34 deletions(-) create mode 100644 crates/indexer/src/action.rs diff --git a/crates/indexer/src/action.rs b/crates/indexer/src/action.rs new file mode 100644 index 00000000..87c1e8a6 --- /dev/null +++ b/crates/indexer/src/action.rs @@ -0,0 +1,44 @@ +use super::{IndexerError, IndexerEvent}; +use std::{ + fmt, + future::Future, + pin::Pin, + task::{Context, Poll}, +}; + +/// A future that resolves to a tuple of the block info and the block import outcome. +type PendingIndexerFuture = + Pin> + Send>>; + +pub(super) enum IndexerAction { + HandleReorg(PendingIndexerFuture), + HandleBatchCommit(PendingIndexerFuture), + HandleBatchFinalization(PendingIndexerFuture), + HandleL1Message(PendingIndexerFuture), +} + +impl IndexerAction { + /// Polls the future to completion. + pub(super) fn poll( + &mut self, + cx: &mut Context<'_>, + ) -> Poll> { + match self { + Self::HandleReorg(fut) | + Self::HandleBatchCommit(fut) | + Self::HandleBatchFinalization(fut) | + Self::HandleL1Message(fut) => fut.as_mut().poll(cx), + } + } +} + +impl fmt::Debug for IndexerAction { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::HandleReorg(_) => write!(f, "HandleReorg"), + Self::HandleBatchCommit(_) => write!(f, "HandleBatchCommit"), + Self::HandleBatchFinalization(_) => write!(f, "HandleBatchFinalization"), + Self::HandleL1Message(_) => write!(f, "HandleL1Message"), + } + } +} diff --git a/crates/indexer/src/lib.rs b/crates/indexer/src/lib.rs index 7f9ec86d..b3310d59 100644 --- a/crates/indexer/src/lib.rs +++ b/crates/indexer/src/lib.rs @@ -6,31 +6,22 @@ use rollup_node_watcher::L1Notification; use scroll_db::{Database, DatabaseOperations}; use std::{ collections::VecDeque, - fmt, - future::Future, pin::Pin, sync::Arc, task::{Context, Poll}, }; +mod action; +use action::IndexerAction; + mod event; pub use event::IndexerEvent; mod error; use error::IndexerError; -/// A future that resolves to a tuple of the block info and the block import outcome. -type PendingIndexerFuture = - Pin> + Send>>; - -enum IndexerAction { - HandleReorg(PendingIndexerFuture), - HandleBatchCommit(PendingIndexerFuture), - HandleBatchFinalization(PendingIndexerFuture), - HandleL1Message(PendingIndexerFuture), -} - /// The indexer is responsible for indexing data relevant to the L1. +#[derive(Debug)] pub struct Indexer { /// A reference to the database used to persist the indexed data. database: Arc, @@ -38,17 +29,6 @@ pub struct Indexer { pending_futures: VecDeque, } -impl IndexerAction { - fn poll(&mut self, cx: &mut Context<'_>) -> Poll> { - match self { - Self::HandleReorg(fut) | - Self::HandleBatchCommit(fut) | - Self::HandleBatchFinalization(fut) | - Self::HandleL1Message(fut) => fut.as_mut().poll(cx), - } - } -} - impl Indexer { /// Creates a new indexer with the given [`Database`]. pub fn new(database: Arc) -> Self { @@ -149,16 +129,6 @@ impl Stream for Indexer { } } -impl fmt::Debug for Indexer { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("Indexer") - .field("database", &"Arc") // Hide actual DB details - .field("cmd_rx", &"mpsc::UnboundedReceiver") // Hide channel details - .field("pending_futures_len", &self.pending_futures.len()) // Only print the queue length - .finish() - } -} - #[cfg(test)] mod test { use super::*; From c7b2412db65a1e6274d0c645bdff1478e0ed5a54 Mon Sep 17 00:00:00 2001 From: frisitano Date: Wed, 19 Mar 2025 16:06:32 +0700 Subject: [PATCH 58/63] refactor indexer --- crates/indexer/src/action.rs | 11 +++++++---- crates/indexer/src/event.rs | 4 +++- crates/indexer/src/lib.rs | 14 +++++++------- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/crates/indexer/src/action.rs b/crates/indexer/src/action.rs index 87c1e8a6..8bb09a60 100644 --- a/crates/indexer/src/action.rs +++ b/crates/indexer/src/action.rs @@ -6,18 +6,19 @@ use std::{ task::{Context, Poll}, }; -/// A future that resolves to a tuple of the block info and the block import outcome. +/// A future that resolves to a `Result`. type PendingIndexerFuture = Pin> + Send>>; -pub(super) enum IndexerAction { +/// A type that represents a future that is being executed by the indexer. +pub(super) enum IndexerFuture { HandleReorg(PendingIndexerFuture), HandleBatchCommit(PendingIndexerFuture), HandleBatchFinalization(PendingIndexerFuture), HandleL1Message(PendingIndexerFuture), } -impl IndexerAction { +impl IndexerFuture { /// Polls the future to completion. pub(super) fn poll( &mut self, @@ -32,7 +33,9 @@ impl IndexerAction { } } -impl fmt::Debug for IndexerAction { +// We implement the Debug trait for IndexerFuture to provide a human-readable representation of the +// enum variants. +impl fmt::Debug for IndexerFuture { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { Self::HandleReorg(_) => write!(f, "HandleReorg"), diff --git a/crates/indexer/src/event.rs b/crates/indexer/src/event.rs index eb6d55f7..a0256dfd 100644 --- a/crates/indexer/src/event.rs +++ b/crates/indexer/src/event.rs @@ -1,10 +1,12 @@ +use alloy_primitives::B256; + /// An event emitted by the indexer. #[derive(Debug, Clone, Copy)] pub enum IndexerEvent { /// A `BatchCommit` event has been indexed returning the batch index. BatchCommitIndexed(u64), /// A `BatchFinalization` event has been indexed returning the batch index. - BatchFinalizationIndexed(u64), + BatchFinalizationIndexed(B256), /// A `L1Message` event has been indexed returning the message queue index. L1MessageIndexed(u64), /// A `Reorg` event has been indexed returning the reorg block number. diff --git a/crates/indexer/src/lib.rs b/crates/indexer/src/lib.rs index b3310d59..286ccc8b 100644 --- a/crates/indexer/src/lib.rs +++ b/crates/indexer/src/lib.rs @@ -12,7 +12,7 @@ use std::{ }; mod action; -use action::IndexerAction; +use action::IndexerFuture; mod event; pub use event::IndexerEvent; @@ -26,7 +26,7 @@ pub struct Indexer { /// A reference to the database used to persist the indexed data. database: Arc, /// A queue of pending futures. - pending_futures: VecDeque, + pending_futures: VecDeque, } impl Indexer { @@ -39,19 +39,19 @@ impl Indexer { pub fn handle_l1_notification(&mut self, event: L1Notification) { let fut = match event { - L1Notification::Reorg(block_number) => IndexerAction::HandleReorg(Box::pin( + L1Notification::Reorg(block_number) => IndexerFuture::HandleReorg(Box::pin( Self::handle_reorg(self.database.clone(), block_number), )), L1Notification::NewBlock(_block_number) | L1Notification::Finalized(_block_number) => return, - L1Notification::BatchCommit(batch_input) => IndexerAction::HandleBatchCommit( + L1Notification::BatchCommit(batch_input) => IndexerFuture::HandleBatchCommit( Box::pin(Self::handle_batch_commit(self.database.clone(), batch_input)), ), - L1Notification::L1Message(l1_message) => IndexerAction::HandleL1Message(Box::pin( + L1Notification::L1Message(l1_message) => IndexerFuture::HandleL1Message(Box::pin( Self::handle_l1_message(self.database.clone(), l1_message), )), L1Notification::BatchFinalization { hash, block_number } => { - IndexerAction::HandleBatchFinalization(Box::pin( + IndexerFuture::HandleBatchFinalization(Box::pin( Self::handle_batch_finalization(self.database.clone(), hash, block_number), )) } @@ -104,7 +104,7 @@ impl Indexer { batch_hash: B256, block_number: u64, ) -> Result { - let event = IndexerEvent::BatchFinalizationIndexed(block_number); + let event = IndexerEvent::BatchFinalizationIndexed(batch_hash); database.finalize_batch_input(batch_hash, block_number).await?; Ok(event) } From 4d47046c1a9fb7bbca950bfe8441db072003aa0a Mon Sep 17 00:00:00 2001 From: frisitano Date: Mon, 24 Mar 2025 14:30:51 +0700 Subject: [PATCH 59/63] chore: integrate upstream --- Cargo.lock | 1619 +++++++++++++++++++-------------- Cargo.toml | 46 +- bin/rollup/Cargo.toml | 33 +- bin/rollup/src/import.rs | 22 +- bin/rollup/src/main.rs | 2 +- crates/engine/Cargo.toml | 8 +- crates/network/Cargo.toml | 4 +- crates/scroll-wire/Cargo.toml | 3 +- crates/watcher/src/lib.rs | 2 +- 9 files changed, 965 insertions(+), 774 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7df86de7..d742c9f0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -114,9 +114,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.1.64" +version = "0.1.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "963fc7ac17f25d92c237448632330eb87b39ba8aa0209d4b517069a05b57db62" +checksum = "f8e42c54af787e3521229df1787d7b8300910dc6d9d04d378eb593b26388bd11" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -129,9 +129,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.12.2" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dc8ccab88e40f1fba5d097fecdaa5cd830858aead9b588a8d099e7faf57e97c" +checksum = "6fbf458101ed6c389e9bb70a34ebc56039868ad10472540614816cdedc8f5265" dependencies = [ "alloy-eips", "alloy-primitives", @@ -153,9 +153,9 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "0.12.2" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24cc796a6379d3df47b4c42a447bda1871db7f134e8dddc5c724f69206b4b931" +checksum = "fc982af629e511292310fe85b433427fd38cb3105147632b574abc997db44c91" dependencies = [ "alloy-consensus", "alloy-eips", @@ -167,9 +167,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.8.22" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e08c581811006021970bf07f2ecf3213f6237c125f7fd99607004b23627b61" +checksum = "ada55b5ab26624766bb8c65f72516dee93eaf28d5d87fc18ff4324cd8c2a948d" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -229,9 +229,9 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "0.12.2" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3321230d9d9813227ad26c8f5c80a74011d629823715c0ab2d1afdea1fc204d" +checksum = "6e86967eb559920e4b9102e4cb825fe30f2e9467988353ce4809f0d3f2c90cd4" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -253,8 +253,9 @@ dependencies = [ [[package]] name = "alloy-evm" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/evm?rev=f9ed4d3#f9ed4d335b2e0002e257ead3198eb463a84c5219" +version = "0.1.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40fe575395f20dc9527c2dc65350786492e9723d2035e9f716269b65be34c9c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -262,7 +263,7 @@ dependencies = [ "alloy-primitives", "alloy-sol-types", "auto_impl", - "derive_more 1.0.0", + "derive_more 2.0.1", "op-revm", "revm", "thiserror 2.0.12", @@ -270,9 +271,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b11774716152a5204aff0e86a8c841df499ea81464e2b1f82b3f72d6a2ef32" +checksum = "a40de6f5b53ecf5fd7756072942f41335426d9a3704cd961f77d854739933bcf" dependencies = [ "alloy-eips", "alloy-primitives", @@ -283,8 +284,9 @@ dependencies = [ [[package]] name = "alloy-hardforks" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/hardforks?rev=ae4176c#ae4176c0027171d38832644f63f05f4f80861c6e" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1692158e9d100486fa6c2429edb42680298678ee74644b058c44f8484a278fea" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -296,9 +298,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.22" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125601804507fef5ae7debcbf800906b12741f19800c1c05b953d0f1b990131a" +checksum = "df4054f177d1600f17e2bc152f6a927592641b19861e6005cc51bdf7d4fa27a6" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -308,9 +310,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.12.2" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed237ef5c3910deb2ff7c9a33e856ada57ec44b58562f0354ba4640319906c" +checksum = "27434beae2514d4a2aa90f53832cbdf6f23e4b5e2656d95eaf15f9276e2418b6" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -322,9 +324,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.12.2" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15bb3faed4de77ebc2137d3167ef409b2300432e5fe0b191e3308d3740ff4add" +checksum = "26a33a38c7486b1945f8d093ff027add2f3a8f83c7300dbad6165cc49150085e" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -348,9 +350,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c06932646544ea341f0fda48d2c0fe4fda75bc132379cb84019cdfb6ddcb0fb" +checksum = "db973a7a23cbe96f2958e5687c51ce2d304b5c6d0dc5ccb3de8667ad8476f50b" dependencies = [ "alloy-consensus", "alloy-eips", @@ -361,9 +363,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.22" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c66bb6715b7499ea755bde4c96223ae8eb74e05c014ab38b9db602879ffb825" +checksum = "7283185baefbe66136649dc316c9dcc6f0e9f1d635ae19783615919f83bc298a" dependencies = [ "alloy-rlp", "arbitrary", @@ -392,9 +394,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.12.2" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b08759415890ed63d3f09a3147d5ad8333c1b2a3eb9697604a6c1d54071213d1" +checksum = "8b03bde77ad73feae14aa593bcabb932c8098c0f0750ead973331cfc0003a4e1" dependencies = [ "alloy-chains", "alloy-consensus", @@ -432,9 +434,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1cf194abddb88b034d22ab41449ed8532e5113e58699cd055bf21d98a0991ab" +checksum = "721aca709a9231815ad5903a2d284042cc77e7d9d382696451b30c9ee0950001" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -473,9 +475,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.12.2" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c0d94c4a8f4c094e37799d6576db2f65d1b8640fbf5c82954b13e968c9aaaf" +checksum = "445a3298c14fae7afb5b9f2f735dead989f3dd83020c2ab8e48ed95d7b6d1acb" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -484,6 +486,7 @@ dependencies = [ "alloy-transport-http", "alloy-transport-ipc", "alloy-transport-ws", + "async-stream", "futures", "pin-project", "reqwest", @@ -493,15 +496,16 @@ dependencies = [ "tokio-stream", "tower 0.5.2", "tracing", + "tracing-futures", "url", "wasmtimer", ] [[package]] name = "alloy-rpc-types" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a153db94cf231b03238fe4da48f59dc6f36e01b5e4d5a2e30de33b95395380fa" +checksum = "9157deaec6ba2ad7854f16146e4cd60280e76593eed79fdcb06e0fa8b6c60f77" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", @@ -512,9 +516,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5275d2e24dbdd82032c3b305db359fb2681069cc75add7feb66863ce50b5cb5" +checksum = "25c053dc0acbdb922d1d088b3457eae249263ccd06d459aa68c3f9dcf6962632" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -524,9 +528,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5462937f088889c337c236c2509226e87a26301d2b01f9fafee246bd84cb0407" +checksum = "3a80ee83ef97e7ffd667a81ebdb6154558dfd5e8f20d8249a10a12a1671a04b3" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -536,9 +540,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cd4ceea38ea27eeb26f021df34ed5b7b793704ad7a2a009f16137a19461e7ca" +checksum = "604dea1f00fd646debe8033abe8e767c732868bf8a5ae9df6321909ccbc99c56" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -547,9 +551,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c14f3c5747750f7373ec9f633230923ff149c2e31960513e31593bcfcf916be" +checksum = "645455186916281e0b3f063fd07d007711257cf90c3499ff3569a39ffdfc9d2f" dependencies = [ "alloy-eips", "alloy-primitives", @@ -565,9 +569,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fa8f6e27d47b4c56c627cb03dc91624c26bd814f6609bb1d1a836148b76fc9b" +checksum = "08b113a0087d226291b9768ed331818fa0b0744cc1207ae7c150687cf3fde1bd" dependencies = [ "alloy-primitives", "serde", @@ -575,9 +579,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "0.12.2" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "467888f02b5f70a3f12a8e5c211df5abd05895f7aebe10c2f73d51241de66b44" +checksum = "874ac9d1249ece0453e262d9ba72da9dbb3b7a2866220ded5940c2e47f1aa04d" dependencies = [ "alloy-consensus", "alloy-eips", @@ -596,9 +600,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "0.12.2" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8e76553a98e04b20d8ac55d95cd6c8aad741958a23949132a4a5f12ca137059" +checksum = "7e13d71eac04513a71af4b3df580f52f2b4dcbff9d971cc9a52519acf55514cb" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -618,9 +622,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ec941a4b3eedf15daef2b7aeb7848dfc6e677f58b2a21eab0ac1efef1ffac62" +checksum = "505d73db6217e6abcdeba4bf025fb9db79577d6b06e092d24e7c11ed0360743b" dependencies = [ "alloy-eips", "alloy-primitives", @@ -632,9 +636,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef4bba67ec601730ceb23e542980d73ae9f718819604dfdd8289b13a506e762" +checksum = "4747763aee39c1b0f5face79bde9be8932be05b2db7d8bdcebb93490f32c889c" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -646,9 +650,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8edc8512f919feb79dd30864ef7574d2877e71b73e30b5de4925ba9bc6bd4f96" +checksum = "70132ebdbea1eaa68c4d6f7a62c2fadf0bdce83b904f895ab90ca4ec96f63468" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -658,9 +662,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9824e1bf92cd7848ca6fabb01c9aca15c9c5fb0ab96da5514ef0543f021c69f6" +checksum = "3a1cd73fc054de6353c7f22ff9b846b0f0f145cd0112da07d4119e41e9959207" dependencies = [ "alloy-primitives", "arbitrary", @@ -670,9 +674,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81755ed6a6a33061302ac95e9bb7b40ebf7078e4568397168024242bc31a3e58" +checksum = "c96fbde54bee943cd94ebacc8a62c50b38c7dfd2552dcd79ff61aea778b1bfcc" dependencies = [ "alloy-primitives", "async-trait", @@ -685,9 +689,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa857621a5c95c13e640e18bb9c4720f4338a666d6276f55446477a6bc3912ff" +checksum = "cc6e72002cc1801d8b41e9892165e3a6551b7bd382bd9d0414b21e90c0c62551" dependencies = [ "alloy-consensus", "alloy-network", @@ -703,9 +707,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.22" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f9c3c7bc1f4e334e5c5fc59ec8dac894973a71b11da09065affc6094025049" +checksum = "f99b007e002f1082b28827cc47d9c72562d412a98c06f29aa438118ff3036c43" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -717,9 +721,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.22" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46ff7aa715eb2404cb87fa94390d2c5d5addd70d9617e20b2398ee6f48cb21f0" +checksum = "6c0a9cb9b1afbcd3325e0fff9fdf98e6d095643fae9e5584e80597f0b79b6d6e" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -735,13 +739,14 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.8.22" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f105fa700140c0cc6e2c3377adef650c389ac57b8ead8318a2e6bd52f1ae841" +checksum = "530c4863e707b95f99b37792cdfa94d30004ec552aed41e200a1d9264d44e669" dependencies = [ "const-hex", "dunce", "heck 0.5.0", + "macro-string", "proc-macro2", "quote", "syn 2.0.100", @@ -750,9 +755,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.8.22" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c649acc6c9d3893e392c737faeadce30b4a1751eed148ae43bc2f27f29c4480c" +checksum = "74b210dd863afa9da93c488601a1f23bee1e3ce47e15519582320c205645a7a0" dependencies = [ "serde", "winnow", @@ -760,9 +765,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.22" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f819635439ebb06aa13c96beac9b2e7360c259e90f5160a6848ae0d94d10452" +checksum = "4f5ff802859e2797d022dc812b5b4ee40d829e0fb446c269a87826c7f0021976" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -773,13 +778,16 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.12.2" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579917e55a64a5f88b2f46f21480095b0fa8c303716c0c58075a796e89ed0084" +checksum = "9aec325c2af8562ef355c02aeb527c755a07e9d8cf6a1e65dda8d0bf23e29b2c" dependencies = [ "alloy-json-rpc", "base64 0.22.1", + "derive_more 2.0.1", + "futures", "futures-utils-wasm", + "parking_lot", "serde", "serde_json", "thiserror 2.0.12", @@ -792,9 +800,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcd2f8ab2f053cd848ead5d625cb1b63716562951101588c1fa49300e3c6418" +checksum = "a082c9473c6642cce8b02405a979496126a03b096997888e86229afad05db06c" dependencies = [ "alloy-json-rpc", "alloy-rpc-types-engine", @@ -812,9 +820,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e61e2b5cbf16f7588e4420848b61824f6514944773732534f4129ba6a251e059" +checksum = "45a78cfda2cac16fa83f6b5dd8b4643caec6161433b25b67e484ce05d2194513" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -832,9 +840,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ddcf4b98b3448eb998e057dc5a27345997863d6544ee7f0f79957616768dd3" +checksum = "ae865917bdabaae21f418010fe7e8837c6daa6611fde25f8d78a1778d6ecb523" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -1142,9 +1150,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "310c9bcae737a48ef5cdee3174184e6d548b292739ede61a1f955ef76a738861" +checksum = "c0cf008e5e1a9e9e22a7d3c9a4992e21a350290069e36d8fb72304ed17e8f2d2" dependencies = [ "brotli", "flate2", @@ -1226,34 +1234,6 @@ dependencies = [ "syn 2.0.100", ] -[[package]] -name = "async-std" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c634475f29802fde2b8f0b505b1bd00dfe4df7d4a000f0b36f7671197d5c3615" -dependencies = [ - "async-attributes", - "async-channel 1.9.0", - "async-global-executor", - "async-io", - "async-lock", - "crossbeam-utils", - "futures-channel", - "futures-core", - "futures-io", - "futures-lite", - "gloo-timers 0.3.0", - "kv-log-macro", - "log", - "memchr", - "once_cell", - "pin-project-lite", - "pin-utils", - "slab", - "wasm-bindgen-futures", - "syn 2.0.100", -] - [[package]] name = "async-std" version = "1.13.1" @@ -1311,9 +1291,9 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.87" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", @@ -1375,9 +1355,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backon" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49fef586913a57ff189f25c9b3d034356a5bf6b3fa9a7f067588fe1698ba1f5d" +checksum = "970d91570c01a8a5959b36ad7dd1c30642df24b6b3068710066f6809f7033bb7" dependencies = [ "fastrand", "tokio", @@ -1410,12 +1390,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.7" @@ -1430,9 +1404,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.7.1" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb97d56060ee67d285efb8001fec9d2a4c710c32efd2e14b5cbb5ba71930fc2d" +checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" [[package]] name = "bech32" @@ -1548,9 +1522,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "675f87afced0413c9bb02843499dbbd3882a237645883f71a2b59644a6d2f753" +checksum = "b17679a8d69b6d7fd9cd9801a536cec9fa5e5970b69f9d4747f70b39b031f5e7" dependencies = [ "arrayref", "arrayvec", @@ -1613,9 +1587,9 @@ dependencies = [ [[package]] name = "borsh" -version = "1.5.5" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5430e3be710b68d984d1391c854eb431a9d548640711faa54eecb1df93db91cc" +checksum = "b2b74d67a0fc0af8e9823b79fd1c43a0900e5a8f0e0f4cc9210796bf3a820126" dependencies = [ "borsh-derive", "cfg_aliases", @@ -1623,9 +1597,9 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.5" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8b668d39970baad5356d7c83a86fee3a539e6f93bf6764c97368243e17a0487" +checksum = "2d37ed1b2c9b78421218a0b4f6d8349132d6ec2cfeba1cfb0118b0a8e268df9e" dependencies = [ "once_cell", "proc-macro-crate", @@ -1783,16 +1757,16 @@ dependencies = [ [[package]] name = "cargo_metadata" -version = "0.18.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" dependencies = [ "camino", "cargo-platform", "semver 1.0.26", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.12", ] [[package]] @@ -1812,9 +1786,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.16" +version = "1.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +checksum = "c736e259eea577f443d5c86c304f9f4ae0295c43f3ba05c21f1d66b5f06001af" dependencies = [ "jobserver", "libc", @@ -2079,15 +2053,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" -[[package]] -name = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "convert_case" version = "0.7.1" @@ -2374,7 +2339,6 @@ dependencies = [ "lock_api", "once_cell", "parking_lot_core", - "serde", ] [[package]] @@ -2411,9 +2375,9 @@ checksum = "f578e8e2c440e7297e008bb5486a3a8a194775224bbc23729b0dbdfaeebf162e" [[package]] name = "delay_map" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df941644b671f05f59433e481ba0d31ac10e3667de725236a4c0d587c496fba1" +checksum = "88e365f083a5cb5972d50ce8b1b2c9f125dc5ec0f50c0248cfb568ae59efcf0b" dependencies = [ "futures", "tokio", @@ -2433,9 +2397,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.11" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", "serde", @@ -2474,6 +2438,37 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "derive_builder" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "derive_builder_macro" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" +dependencies = [ + "derive_builder_core", + "syn 2.0.100", +] + [[package]] name = "derive_more" version = "1.0.0" @@ -2498,7 +2493,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ - "convert_case 0.6.0", "proc-macro2", "quote", "syn 2.0.100", @@ -2511,7 +2505,7 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ - "convert_case 0.7.1", + "convert_case", "proc-macro2", "quote", "syn 2.0.100", @@ -2998,9 +2992,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foldhash" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "foreign-types" @@ -3210,14 +3204,16 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" dependencies = [ "cfg-if", + "js-sys", "libc", - "wasi 0.13.3+wasi-0.2.2", - "windows-targets 0.52.6", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", ] [[package]] @@ -3236,6 +3232,19 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +[[package]] +name = "git2" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5220b8ba44c68a9a7f7a7659e864dd73692e417ef0211bea133c7b74e031eeb9" +dependencies = [ + "bitflags 2.9.0", + "libc", + "libgit2-sys", + "log", + "url", +] + [[package]] name = "glob" version = "0.3.2" @@ -3444,13 +3453,14 @@ dependencies = [ [[package]] name = "hickory-proto" -version = "0.25.0-alpha.5" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d00147af6310f4392a31680db52a3ed45a2e0f68eb18e8c3fe5537ecc96d9e2" +checksum = "6d844af74f7b799e41c78221be863bade11c430d46042c3b49ca8ae0c6d27287" dependencies = [ "async-recursion", "async-trait", "cfg-if", + "critical-section", "data-encoding", "enum-as-inner", "futures-channel", @@ -3460,6 +3470,7 @@ dependencies = [ "ipnet", "once_cell", "rand 0.9.0", + "ring", "serde", "thiserror 2.0.12", "tinyvec", @@ -3470,9 +3481,9 @@ dependencies = [ [[package]] name = "hickory-resolver" -version = "0.25.0-alpha.5" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5762f69ebdbd4ddb2e975cd24690bf21fe6b2604039189c26acddbc427f12887" +checksum = "a128410b38d6f931fcc6ca5c107a3b02cabd6c05967841269a4ad65d23c44331" dependencies = [ "cfg-if", "futures-util", @@ -3540,13 +3551,13 @@ dependencies = [ [[package]] name = "hostname" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" dependencies = [ + "cfg-if", "libc", - "match_cfg", - "winapi", + "windows 0.52.0", ] [[package]] @@ -3609,9 +3620,9 @@ checksum = "91f255a4535024abf7640cb288260811fc14794f62b063652ed349f9a6c2348e" [[package]] name = "humantime" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" [[package]] name = "humantime-serde" @@ -3656,7 +3667,7 @@ dependencies = [ "hyper-util", "log", "rustls", - "rustls-native-certs 0.8.1", + "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-rustls", @@ -3853,12 +3864,12 @@ dependencies = [ [[package]] name = "if-addrs" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78a89907582615b19f6f0da1af18abf6ff08be259395669b834b057a7ee92d8" +checksum = "69b2eeee38fef3aa9b4cc5f1beea8a2444fc00e7377cafae396de3f5c2065e24" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4024,9 +4035,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iri-string" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc0f0a572e8ffe56e2ff4f769f32ffe919282c3916799f8b68688b6030063bea" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" dependencies = [ "memchr", "serde", @@ -4073,16 +4084,18 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jni" -version = "0.19.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", + "cfg-if", "combine", "jni-sys", "log", "thiserror 1.0.69", "walkdir", + "windows-sys 0.45.0", ] [[package]] @@ -4112,9 +4125,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "834af00800e962dee8f7bfc0f60601de215e73e78e5497d733a2919da837d3c8" +checksum = "37b26c20e2178756451cfeb0661fb74c47dd5988cb7e3939de7e9241fd604d42" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -4130,9 +4143,9 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "def0fd41e2f53118bd1620478d12305b2c75feef57ea1f93ef70568c98081b7e" +checksum = "bacb85abf4117092455e1573625e21b8f8ef4dec8aff13361140b2dc266cdff2" dependencies = [ "base64 0.22.1", "futures-channel", @@ -4155,9 +4168,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76637f6294b04e747d68e69336ef839a3493ca62b35bf488ead525f7da75c5bb" +checksum = "456196007ca3a14db478346f58c7238028d55ee15c1df15115596e411ff27925" dependencies = [ "async-trait", "bytes", @@ -4182,9 +4195,9 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87c24e981ad17798bbca852b0738bfb7b94816ed687bd0d5da60bfa35fa0fdc3" +checksum = "c872b6c9961a4ccc543e321bb5b89f6b2d2c7fe8b61906918273a3333c95400c" dependencies = [ "async-trait", "base64 0.22.1", @@ -4207,9 +4220,9 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcae0c6c159e11541080f1f829873d8f374f81eda0abc67695a13fc8dc1a580" +checksum = "5e65763c942dfc9358146571911b0cd1c361c2d63e2d2305622d40d36376ca80" dependencies = [ "heck 0.5.0", "proc-macro-crate", @@ -4220,9 +4233,9 @@ dependencies = [ [[package]] name = "jsonrpsee-server" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66b7a3df90a1a60c3ed68e7ca63916b53e9afa928e33531e87f61a9c8e9ae87b" +checksum = "55e363146da18e50ad2b51a0a7925fc423137a0b1371af8235b1c231a0647328" dependencies = [ "futures-util", "http", @@ -4247,9 +4260,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddb81adb1a5ae9182df379e374a79e24e992334e7346af4d065ae5b2acb8d4c6" +checksum = "08a8e70baf945b6b5752fc8eb38c918a48f1234daf11355e07106d963f860089" dependencies = [ "http", "serde", @@ -4259,9 +4272,9 @@ dependencies = [ [[package]] name = "jsonrpsee-wasm-client" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42e41af42ca39657313748174d02766e5287d3a57356f16756dbd8065b933977" +checksum = "e6558a9586cad43019dafd0b6311d0938f46efc116b34b28c74778bc11a2edf6" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -4270,9 +4283,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f4f3642a292f5b76d8a16af5c88c16a0860f2ccc778104e5c848b28183d9538" +checksum = "01b3323d890aa384f12148e8d2a1fd18eb66e9e7e825f9de4fa53bcc19b93eef" dependencies = [ "http", "jsonrpsee-client-transport", @@ -4374,6 +4387,18 @@ version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +[[package]] +name = "libgit2-sys" +version = "0.18.1+1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1dcb20f84ffcdd825c7a311ae347cce604a6f084a767dec4a4929829645290e" +dependencies = [ + "cc", + "libc", + "libz-sys", + "pkg-config", +] + [[package]] name = "libloading" version = "0.8.6" @@ -4433,12 +4458,12 @@ dependencies = [ [[package]] name = "libsecp256k1" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" dependencies = [ "arrayref", - "base64 0.13.1", + "base64 0.22.1", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", @@ -4490,6 +4515,18 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "libz-sys" +version = "1.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "linked-hash-map" version = "0.5.6" @@ -4514,9 +4551,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" +checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" [[package]] name = "litemap" @@ -4591,10 +4628,15 @@ dependencies = [ ] [[package]] -name = "match_cfg" -version = "0.1.0" +name = "macro-string" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" +checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] [[package]] name = "matchers" @@ -4893,9 +4935,6 @@ name = "notify-types" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d" -dependencies = [ - "serde", -] [[package]] name = "ntapi" @@ -5077,9 +5116,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.0" +version = "1.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde51589ab56b20a6f686b2c68f7a0bd6add753d697abf720d63f8db3ab7b1ad" +checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" dependencies = [ "critical-section", "portable-atomic", @@ -5087,9 +5126,9 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.11.0" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d297150146a63778a29400320700e804ec6e1e4d6ec99857cdbbaf17b3de9241" +checksum = "971eaae9cfc8b6aabb62cef8d7d49640d2e8e948e5aa3177788c4dea3d226452" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5105,9 +5144,9 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types-engine" -version = "0.11.0" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955a7d0ef9161f4a2a8461ef5d784526741c325410103d654706863cf4a32736" +checksum = "b59251cd112cb10792a041ea68d9423391e0e9e3576605ee52800890fdaa483c" dependencies = [ "alloy-consensus", "alloy-eips", @@ -5124,14 +5163,13 @@ dependencies = [ [[package]] name = "op-revm" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "983c408745202267f1f483d091fb498986613ccd6c95e44d634cc0d7a2a9f275" dependencies = [ "auto_impl", "once_cell", "revm", - "revm-inspector", - "revm-precompile", "serde", ] @@ -5193,9 +5231,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "ordered-float" -version = "3.9.2" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" dependencies = [ "num-traits", ] @@ -5382,6 +5420,49 @@ dependencies = [ "rustc_version 0.4.1", ] +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_macros", + "phf_shared", + "serde", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher", +] + [[package]] name = "pin-project" version = "1.1.10" @@ -5506,7 +5587,7 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.8.23", + "zerocopy 0.8.24", ] [[package]] @@ -5721,11 +5802,12 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.6" +version = "0.11.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" +checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012" dependencies = [ "bytes", + "cfg_aliases", "pin-project-lite", "quinn-proto", "quinn-udp", @@ -5735,17 +5817,18 @@ dependencies = [ "thiserror 2.0.12", "tokio", "tracing", + "web-time", ] [[package]] name = "quinn-proto" -version = "0.11.9" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" +checksum = "b820744eb4dc9b57a3398183639c511b5a26d2ed702cedd3febaa1393caa22cc" dependencies = [ "bytes", - "getrandom 0.2.15", - "rand 0.8.5", + "getrandom 0.3.2", + "rand 0.9.0", "ring", "rustc-hash 2.1.1", "rustls", @@ -5780,6 +5863,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + [[package]] name = "radium" version = "0.7.0" @@ -5806,7 +5895,7 @@ checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", - "zerocopy 0.8.23", + "zerocopy 0.8.24", ] [[package]] @@ -5844,7 +5933,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.1", + "getrandom 0.3.2", ] [[package]] @@ -5996,9 +6085,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.13" +version = "0.12.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389a89e494bbc88bebf30e23da98742c843863a16a352647716116aa71fae80a" +checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" dependencies = [ "base64 0.22.1", "bytes", @@ -6020,7 +6109,7 @@ dependencies = [ "pin-project-lite", "quinn", "rustls", - "rustls-native-certs 0.8.1", + "rustls-native-certs", "rustls-pemfile", "rustls-pki-types", "serde", @@ -6041,18 +6130,17 @@ dependencies = [ [[package]] name = "resolv-conf" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +checksum = "48375394603e3dd4b2d64371f7148fd8c7baa2680e28741f2cb8d23b59e3d4c4" dependencies = [ "hostname", - "quick-error", ] [[package]] name = "reth-basic-payload-builder" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6060,14 +6148,14 @@ dependencies = [ "futures-core", "futures-util", "metrics", + "reth-chain-state", "reth-metrics", "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", - "reth-primitives", "reth-primitives-traits", - "reth-provider", "reth-revm", + "reth-storage-api", "reth-tasks", "tokio", "tracing", @@ -6075,8 +6163,8 @@ dependencies = [ [[package]] name = "reth-chain-state" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6090,9 +6178,9 @@ dependencies = [ "rand 0.8.5", "reth-chainspec", "reth-errors", + "reth-ethereum-primitives", "reth-execution-types", "reth-metrics", - "reth-primitives", "reth-primitives-traits", "reth-storage-api", "reth-trie", @@ -6105,8 +6193,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-chains", "alloy-consensus", @@ -6125,8 +6213,8 @@ dependencies = [ [[package]] name = "reth-cli" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-genesis", "clap", @@ -6139,8 +6227,8 @@ dependencies = [ [[package]] name = "reth-cli-commands" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "ahash 0.8.11", "alloy-consensus", @@ -6182,7 +6270,6 @@ dependencies = [ "reth-node-core", "reth-node-events", "reth-node-metrics", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-prune", @@ -6201,8 +6288,8 @@ dependencies = [ [[package]] name = "reth-cli-runner" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "reth-tasks", "tokio", @@ -6211,8 +6298,8 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6228,8 +6315,8 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6241,16 +6328,17 @@ dependencies = [ "modular-bitfield", "op-alloy-consensus", "reth-codecs-derive", + "reth-zstd-compressors", "serde", "visibility", ] [[package]] name = "reth-codecs-derive" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ - "convert_case 0.7.1", + "convert_case", "proc-macro2", "quote", "syn 2.0.100", @@ -6258,8 +6346,8 @@ dependencies = [ [[package]] name = "reth-config" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "eyre", "humantime-serde", @@ -6272,8 +6360,8 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6285,8 +6373,8 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6297,8 +6385,8 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6320,8 +6408,8 @@ dependencies = [ [[package]] name = "reth-db" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "derive_more 2.0.1", @@ -6334,7 +6422,7 @@ dependencies = [ "reth-libmdbx", "reth-metrics", "reth-nippy-jar", - "reth-primitives", + "reth-static-file-types", "reth-storage-errors", "reth-tracing", "rustc-hash 2.1.1", @@ -6346,8 +6434,8 @@ dependencies = [ [[package]] name = "reth-db-api" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -6361,8 +6449,8 @@ dependencies = [ "proptest", "reth-codecs", "reth-db-models", + "reth-ethereum-primitives", "reth-optimism-primitives", - "reth-primitives", "reth-primitives-traits", "reth-prune-types", "reth-scroll-primitives", @@ -6375,8 +6463,8 @@ dependencies = [ [[package]] name = "reth-db-common" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -6390,9 +6478,10 @@ dependencies = [ "reth-etl", "reth-fs-util", "reth-node-types", - "reth-primitives", + "reth-primitives-traits", "reth-provider", "reth-stages-types", + "reth-static-file-types", "reth-trie", "reth-trie-db", "serde", @@ -6403,8 +6492,8 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6418,8 +6507,8 @@ dependencies = [ [[package]] name = "reth-discv4" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6444,8 +6533,8 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6468,8 +6557,8 @@ dependencies = [ [[package]] name = "reth-dns-discovery" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "data-encoding", @@ -6492,8 +6581,8 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6509,10 +6598,10 @@ dependencies = [ "reth-consensus", "reth-db", "reth-db-api", + "reth-ethereum-primitives", "reth-metrics", "reth-network-p2p", "reth-network-peers", - "reth-primitives", "reth-primitives-traits", "reth-storage-api", "reth-tasks", @@ -6527,8 +6616,8 @@ dependencies = [ [[package]] name = "reth-e2e-test-utils" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6547,18 +6636,21 @@ dependencies = [ "reth-chainspec", "reth-db", "reth-engine-local", + "reth-ethereum-primitives", "reth-network", "reth-network-api", "reth-network-peers", "reth-node-api", "reth-node-builder", "reth-node-core", + "reth-node-ethereum", "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", - "reth-primitives", + "reth-primitives-traits", "reth-provider", "reth-rpc-api", + "reth-rpc-builder", "reth-rpc-eth-api", "reth-rpc-layer", "reth-rpc-server-types", @@ -6576,8 +6668,8 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "aes", "alloy-primitives", @@ -6607,8 +6699,8 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6637,21 +6729,20 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", - "alloy-eips", "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", "futures", "reth-chain-state", "reth-errors", + "reth-ethereum-primitives", "reth-execution-types", "reth-payload-builder-primitives", "reth-payload-primitives", - "reth-primitives", "reth-primitives-traits", "reth-trie", "reth-trie-common", @@ -6662,8 +6753,8 @@ dependencies = [ [[package]] name = "reth-engine-service" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "futures", "pin-project", @@ -6671,11 +6762,11 @@ dependencies = [ "reth-consensus", "reth-engine-primitives", "reth-engine-tree", + "reth-ethereum-primitives", "reth-evm", "reth-network-p2p", "reth-node-types", "reth-payload-builder", - "reth-primitives", "reth-provider", "reth-prune", "reth-stages-api", @@ -6685,8 +6776,8 @@ dependencies = [ [[package]] name = "reth-engine-tree" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6735,8 +6826,8 @@ dependencies = [ [[package]] name = "reth-engine-util" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -6750,10 +6841,9 @@ dependencies = [ "reth-evm", "reth-fs-util", "reth-payload-primitives", - "reth-primitives", "reth-primitives-traits", - "reth-provider", "reth-revm", + "reth-storage-api", "serde", "serde_json", "tokio", @@ -6763,8 +6853,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -6775,8 +6865,8 @@ dependencies = [ [[package]] name = "reth-eth-wire" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-chains", "alloy-primitives", @@ -6803,19 +6893,19 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", + "alloy-hardforks", "alloy-primitives", "alloy-rlp", "bytes", "derive_more 2.0.1", "reth-chainspec", "reth-codecs-derive", - "reth-ethereum-forks", "reth-ethereum-primitives", "reth-primitives-traits", "serde", @@ -6824,8 +6914,8 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "eyre", "reth-chainspec", @@ -6834,8 +6924,8 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6844,31 +6934,31 @@ dependencies = [ "reth-consensus", "reth-consensus-common", "reth-execution-types", - "reth-primitives", "reth-primitives-traits", "tracing", ] [[package]] name = "reth-ethereum-engine-primitives" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", "reth-engine-primitives", + "reth-ethereum-primitives", "reth-payload-primitives", - "reth-primitives", + "reth-primitives-traits", "serde", "sha2 0.10.8", ] [[package]] name = "reth-ethereum-forks" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -6880,13 +6970,40 @@ dependencies = [ ] [[package]] -name = "reth-ethereum-primitives" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +name = "reth-ethereum-payload-builder" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm", + "alloy-primitives", + "alloy-rpc-types-engine", + "reth-basic-payload-builder", + "reth-chainspec", + "reth-errors", + "reth-ethereum-primitives", + "reth-evm", + "reth-evm-ethereum", + "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-payload-validator", + "reth-primitives-traits", + "reth-revm", + "reth-storage-api", + "reth-transaction-pool", + "revm", + "tracing", +] + +[[package]] +name = "reth-ethereum-primitives" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-evm", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", @@ -6901,12 +7018,13 @@ dependencies = [ "revm-context", "secp256k1 0.30.0", "serde", + "serde_with", ] [[package]] name = "reth-etl" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "rayon", "reth-db-api", @@ -6915,8 +7033,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6937,14 +7055,31 @@ dependencies = [ "reth-storage-errors", "reth-trie-common", "revm", - "revm-database", "scroll-alloy-evm", ] +[[package]] +name = "reth-evm-ethereum" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-evm", + "alloy-primitives", + "reth-chainspec", + "reth-ethereum-forks", + "reth-ethereum-primitives", + "reth-evm", + "reth-execution-types", + "reth-primitives-traits", + "revm", +] + [[package]] name = "reth-execution-errors" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-evm", "alloy-primitives", @@ -6956,8 +7091,8 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6968,15 +7103,14 @@ dependencies = [ "reth-primitives-traits", "reth-trie-common", "revm", - "revm-database", "serde", "serde_with", ] [[package]] name = "reth-exex" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6989,6 +7123,7 @@ dependencies = [ "reth-chain-state", "reth-chainspec", "reth-config", + "reth-ethereum-primitives", "reth-evm", "reth-exex-types", "reth-fs-util", @@ -6996,7 +7131,6 @@ dependencies = [ "reth-node-api", "reth-node-core", "reth-payload-builder", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-prune-types", @@ -7013,14 +7147,13 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-eips", "alloy-primitives", "reth-chain-state", "reth-execution-types", - "reth-primitives", "reth-primitives-traits", "serde", "serde_with", @@ -7028,8 +7161,8 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "serde", "serde_json", @@ -7038,8 +7171,8 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7052,7 +7185,6 @@ dependencies = [ "reth-chainspec", "reth-engine-primitives", "reth-evm", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-revm", @@ -7065,8 +7197,8 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "async-trait", "bytes", @@ -7086,8 +7218,8 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "bitflags 2.9.0", "byteorder", @@ -7103,8 +7235,8 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "bindgen", "cc", @@ -7112,8 +7244,8 @@ dependencies = [ [[package]] name = "reth-metrics" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "futures", "metrics", @@ -7124,16 +7256,16 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", ] [[package]] name = "reth-net-nat" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "futures-util", "if-addrs", @@ -7146,8 +7278,8 @@ dependencies = [ [[package]] name = "reth-network" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7170,6 +7302,7 @@ dependencies = [ "reth-discv5", "reth-dns-discovery", "reth-ecies", + "reth-engine-primitives", "reth-eth-wire", "reth-eth-wire-types", "reth-ethereum-forks", @@ -7181,7 +7314,6 @@ dependencies = [ "reth-network-p2p", "reth-network-peers", "reth-network-types", - "reth-primitives", "reth-primitives-traits", "reth-storage-api", "reth-tasks", @@ -7202,8 +7334,8 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "alloy-rpc-types-admin", @@ -7225,8 +7357,8 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7248,8 +7380,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7263,8 +7395,8 @@ dependencies = [ [[package]] name = "reth-network-types" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -7277,8 +7409,8 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "anyhow", "bincode", @@ -7294,8 +7426,8 @@ dependencies = [ [[package]] name = "reth-node-api" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -7318,8 +7450,8 @@ dependencies = [ [[package]] name = "reth-node-builder" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7359,7 +7491,6 @@ dependencies = [ "reth-node-events", "reth-node-metrics", "reth-payload-builder", - "reth-primitives", "reth-provider", "reth-prune", "reth-rpc", @@ -7382,8 +7513,8 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7403,12 +7534,12 @@ dependencies = [ "reth-db", "reth-discv4", "reth-discv5", + "reth-engine-primitives", "reth-ethereum-forks", "reth-net-nat", "reth-network", "reth-network-p2p", "reth-network-peers", - "reth-primitives", "reth-primitives-traits", "reth-prune-types", "reth-rpc-eth-types", @@ -7427,12 +7558,49 @@ dependencies = [ "toml", "tracing", "vergen", + "vergen-git2", +] + +[[package]] +name = "reth-node-ethereum" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +dependencies = [ + "alloy-eips", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", + "eyre", + "reth-chainspec", + "reth-consensus", + "reth-engine-primitives", + "reth-ethereum-consensus", + "reth-ethereum-engine-primitives", + "reth-ethereum-payload-builder", + "reth-ethereum-primitives", + "reth-evm", + "reth-evm-ethereum", + "reth-network", + "reth-node-api", + "reth-node-builder", + "reth-payload-primitives", + "reth-primitives-traits", + "reth-provider", + "reth-revm", + "reth-rpc", + "reth-rpc-api", + "reth-rpc-builder", + "reth-rpc-eth-types", + "reth-rpc-server-types", + "reth-tracing", + "reth-transaction-pool", + "reth-trie-db", + "revm", ] [[package]] name = "reth-node-events" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7455,8 +7623,8 @@ dependencies = [ [[package]] name = "reth-node-metrics" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "eyre", "http", @@ -7475,8 +7643,8 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "reth-chainspec", "reth-db-api", @@ -7488,8 +7656,8 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7510,12 +7678,13 @@ dependencies = [ "revm-context", "secp256k1 0.30.0", "serde", + "serde_with", ] [[package]] name = "reth-payload-builder" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7527,7 +7696,6 @@ dependencies = [ "reth-metrics", "reth-payload-builder-primitives", "reth-payload-primitives", - "reth-primitives", "reth-primitives-traits", "tokio", "tokio-stream", @@ -7536,8 +7704,8 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "pin-project", "reth-payload-primitives", @@ -7548,8 +7716,8 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7559,7 +7727,7 @@ dependencies = [ "reth-chain-state", "reth-chainspec", "reth-errors", - "reth-primitives", + "reth-primitives-traits", "scroll-alloy-rpc-types-engine", "serde", "thiserror 2.0.12", @@ -7568,18 +7736,28 @@ dependencies = [ [[package]] name = "reth-payload-util" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-primitives", "reth-transaction-pool", ] +[[package]] +name = "reth-payload-validator" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +dependencies = [ + "alloy-consensus", + "alloy-rpc-types-engine", + "reth-primitives-traits", +] + [[package]] name = "reth-primitives" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "arbitrary", @@ -7593,8 +7771,8 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7627,8 +7805,8 @@ dependencies = [ [[package]] name = "reth-provider" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7673,8 +7851,8 @@ dependencies = [ [[package]] name = "reth-prune" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7701,8 +7879,8 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "arbitrary", @@ -7715,8 +7893,8 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -7724,14 +7902,12 @@ dependencies = [ "reth-storage-errors", "reth-trie", "revm", - "revm-database", - "revm-inspector", ] [[package]] name = "reth-rpc" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -7768,13 +7944,13 @@ dependencies = [ "reth-consensus", "reth-engine-primitives", "reth-errors", + "reth-ethereum-primitives", "reth-evm", "reth-metrics", "reth-network-api", "reth-network-peers", "reth-network-types", "reth-node-api", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-revm", @@ -7801,8 +7977,8 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-eips", "alloy-genesis", @@ -7827,8 +8003,8 @@ dependencies = [ [[package]] name = "reth-rpc-builder" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-network", "alloy-provider", @@ -7843,7 +8019,7 @@ dependencies = [ "reth-metrics", "reth-network-api", "reth-node-core", - "reth-primitives", + "reth-primitives-traits", "reth-provider", "reth-rpc", "reth-rpc-api", @@ -7864,8 +8040,8 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7883,6 +8059,7 @@ dependencies = [ "reth-payload-primitives", "reth-primitives-traits", "reth-rpc-api", + "reth-rpc-server-types", "reth-storage-api", "reth-tasks", "reth-transaction-pool", @@ -7894,8 +8071,8 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -7920,7 +8097,6 @@ dependencies = [ "reth-network-api", "reth-node-api", "reth-payload-builder", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-revm", @@ -7932,15 +8108,14 @@ dependencies = [ "reth-trie-common", "revm", "revm-inspectors", - "revm-primitives", "tokio", "tracing", ] [[package]] name = "reth-rpc-eth-types" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7957,10 +8132,10 @@ dependencies = [ "reth-chain-state", "reth-chainspec", "reth-errors", + "reth-ethereum-primitives", "reth-evm", "reth-execution-types", "reth-metrics", - "reth-primitives", "reth-primitives-traits", "reth-revm", "reth-rpc-server-types", @@ -7970,9 +8145,7 @@ dependencies = [ "reth-transaction-pool", "reth-trie", "revm", - "revm-database", "revm-inspectors", - "revm-primitives", "schnellru", "serde", "thiserror 2.0.12", @@ -7983,8 +8156,8 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-rpc-types-engine", "http", @@ -7997,8 +8170,8 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8013,22 +8186,21 @@ dependencies = [ [[package]] name = "reth-rpc-types-compat" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-primitives", "alloy-rpc-types-eth", "jsonrpsee-types", - "reth-primitives", "reth-primitives-traits", "serde", ] [[package]] name = "reth-scroll-chainspec" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-chains", "alloy-consensus", @@ -8051,8 +8223,8 @@ dependencies = [ [[package]] name = "reth-scroll-cli" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "clap", "eyre", @@ -8074,8 +8246,8 @@ dependencies = [ [[package]] name = "reth-scroll-consensus" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8094,8 +8266,8 @@ dependencies = [ [[package]] name = "reth-scroll-engine-primitives" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8119,8 +8291,8 @@ dependencies = [ [[package]] name = "reth-scroll-evm" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8147,8 +8319,8 @@ dependencies = [ [[package]] name = "reth-scroll-forks" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-chains", "alloy-primitives", @@ -8161,8 +8333,8 @@ dependencies = [ [[package]] name = "reth-scroll-node" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8203,8 +8375,8 @@ dependencies = [ [[package]] name = "reth-scroll-payload" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "reth-basic-payload-builder", "reth-payload-primitives", @@ -8216,8 +8388,8 @@ dependencies = [ [[package]] name = "reth-scroll-primitives" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8244,8 +8416,8 @@ dependencies = [ [[package]] name = "reth-scroll-rpc" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8279,8 +8451,8 @@ dependencies = [ [[package]] name = "reth-stages" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8298,19 +8470,20 @@ dependencies = [ "reth-consensus", "reth-db", "reth-db-api", + "reth-ethereum-primitives", "reth-etl", "reth-evm", "reth-execution-types", "reth-exex", "reth-fs-util", "reth-network-p2p", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-prune", "reth-prune-types", "reth-revm", "reth-stages-api", + "reth-static-file-types", "reth-storage-errors", "reth-testing-utils", "reth-trie", @@ -8324,8 +8497,8 @@ dependencies = [ [[package]] name = "reth-stages-api" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8351,8 +8524,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "arbitrary", @@ -8365,8 +8538,8 @@ dependencies = [ [[package]] name = "reth-static-file" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "parking_lot", @@ -8386,8 +8559,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "clap", @@ -8398,8 +8571,8 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8422,8 +8595,8 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8438,8 +8611,8 @@ dependencies = [ [[package]] name = "reth-tasks" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "auto_impl", "dyn-clone", @@ -8456,8 +8629,8 @@ dependencies = [ [[package]] name = "reth-testing-utils" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8471,8 +8644,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "tokio", "tokio-stream", @@ -8481,8 +8654,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "clap", "eyre", @@ -8496,8 +8669,8 @@ dependencies = [ [[package]] name = "reth-transaction-pool" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8522,7 +8695,7 @@ dependencies = [ "reth-storage-api", "reth-tasks", "revm-interpreter", - "revm-specification", + "revm-primitives", "rustc-hash 2.1.1", "schnellru", "serde", @@ -8535,8 +8708,8 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8560,8 +8733,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8586,8 +8759,8 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8599,15 +8772,14 @@ dependencies = [ "reth-primitives-traits", "reth-trie", "revm", - "serde", "tracing", "triehash", ] [[package]] name = "reth-trie-parallel" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8615,14 +8787,15 @@ dependencies = [ "itertools 0.14.0", "metrics", "rayon", + "reth-db-api", "reth-execution-errors", "reth-metrics", - "reth-primitives", "reth-provider", "reth-storage-errors", "reth-trie", "reth-trie-common", "reth-trie-db", + "reth-trie-sparse", "thiserror 2.0.12", "tokio", "tracing", @@ -8630,12 +8803,15 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "alloy-rlp", + "auto_impl", + "metrics", "reth-execution-errors", + "reth-metrics", "reth-primitives-traits", "reth-tracing", "reth-trie-common", @@ -8645,16 +8821,17 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "20.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "20.0.0-alpha.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4502328b029ff68ddbbe42994faf7384c8aac0a47d53c3323ea52c7696fe2154" dependencies = [ "revm-bytecode", "revm-context", @@ -8666,59 +8843,59 @@ dependencies = [ "revm-interpreter", "revm-precompile", "revm-primitives", - "revm-specification", "revm-state", ] [[package]] name = "revm-bytecode" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f018d50979559e6c0fcad3f0e5c5bd54e4ebff3d6f0d4da82ac83fe7f5bc3ac0" dependencies = [ "bitvec", + "phf", "revm-primitives", - "revm-specification", "serde", ] [[package]] name = "revm-context" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "247e37d3df5918952a004f637b6b6a018daee83163c540f8b2c3b14ae05e9e78" dependencies = [ - "auto_impl", "cfg-if", "derive-where", "revm-bytecode", "revm-context-interface", "revm-database-interface", - "revm-interpreter", "revm-primitives", - "revm-specification", "revm-state", "serde", ] [[package]] name = "revm-context-interface" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef08da7b423908efbfd5733bb3fb08916319fdec0a879f6d1fb5c8ae1994b239" dependencies = [ "alloy-eip2930", "alloy-eip7702", "auto_impl", "revm-database-interface", "revm-primitives", - "revm-specification", "revm-state", "serde", ] [[package]] name = "revm-database" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cefe6672af9849f9fd6ef836aff4b32020952992454e66597d32da68341fb89e" dependencies = [ + "alloy-eips", "auto_impl", "revm-bytecode", "revm-database-interface", @@ -8729,8 +8906,9 @@ dependencies = [ [[package]] name = "revm-database-interface" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8b4ab0ff9891593c719abdfadc8968450e1e2e0a8320339dd6968813a23db9d" dependencies = [ "auto_impl", "revm-primitives", @@ -8740,8 +8918,9 @@ dependencies = [ [[package]] name = "revm-handler" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12d95e6f9ccc5e9129d2ee3672125f0e1d7cc4c6a488d99818f7c6559e2bf4bc" dependencies = [ "auto_impl", "revm-bytecode", @@ -8751,31 +8930,32 @@ dependencies = [ "revm-interpreter", "revm-precompile", "revm-primitives", - "revm-specification", "revm-state", "serde", ] [[package]] name = "revm-inspector" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5289f17f28b3ab3be2d1be9e604eca7a1a554e7da336ddbe8860798e2bea88bc" dependencies = [ "auto_impl", "revm-context", "revm-database-interface", "revm-handler", "revm-interpreter", - "revm-precompile", "revm-primitives", "revm-state", "serde", + "serde_json", ] [[package]] name = "revm-inspectors" -version = "0.16.0" -source = "git+https://github.com/paradigmxyz/revm-inspectors?rev=9219073#9219073cb04a774d6ea12b44655bba92b08c1293" +version = "0.17.0-alpha.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1504e2851a11562fb350a9f408e5783351650aef11790aea0b0d0d9ab961c40" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -8791,20 +8971,21 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "16.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "16.0.0-alpha.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a97985e55a551d5d86c07a4469ecdd3b8c0d793cb330bb4a4f747e1ee0af864" dependencies = [ "revm-bytecode", "revm-context-interface", "revm-primitives", - "revm-specification", "serde", ] [[package]] name = "revm-precompile" -version = "17.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "17.0.0-alpha.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5d46dad4a7db8e6de9015f2419c160b41fa5e721345c1678a66db6d9f5ef619" dependencies = [ "aurora-engine-modexp", "blst", @@ -8814,9 +8995,7 @@ dependencies = [ "libsecp256k1", "once_cell", "p256", - "revm-context-interface", "revm-primitives", - "revm-specification", "ripemd", "secp256k1 0.30.0", "sha2 0.10.8", @@ -8825,16 +9004,19 @@ dependencies = [ [[package]] name = "revm-primitives" -version = "16.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "16.0.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b385df11c27aa339c2d80cb22b8d5621ad95e7464cd319c8b5343448ea8ad673" dependencies = [ "alloy-primitives", + "enumn", + "serde", ] [[package]] name = "revm-scroll" version = "0.1.0" -source = "git+https://github.com/scroll-tech/scroll-revm#12557ed8a512240228d18c4fae85477bf47fbbe3" +source = "git+https://github.com/scroll-tech/scroll-revm?branch=chore/upstream-merge-20.0.0-alpha.7#19eab25013eea391ce203bceb10f690ba5c6e814" dependencies = [ "auto_impl", "enumn", @@ -8845,25 +9027,15 @@ dependencies = [ "serde", ] -[[package]] -name = "revm-specification" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" -dependencies = [ - "enumn", - "revm-primitives", - "serde", -] - [[package]] name = "revm-state" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=19a5f3b#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "217e158f471dd39065b14db956c3d40437f311163efd05254dc9a66b9dc426ba" dependencies = [ "bitflags 2.9.0", "revm-bytecode", "revm-primitives", - "revm-specification", "serde", ] @@ -8995,22 +9167,6 @@ dependencies = [ "chrono", ] -[[package]] -name = "rollup-node-indexer" -version = "0.0.1" -dependencies = [ - "alloy-primitives", - "arbitrary", - "futures", - "rand 0.9.0", - "rollup-node-primitives", - "rollup-node-watcher", - "scroll-db", - "thiserror 2.0.12", - "tokio", - "tracing", -] - [[package]] name = "rollup-node" version = "0.0.1" @@ -9018,7 +9174,6 @@ dependencies = [ "alloy-chains", "alloy-primitives", "alloy-provider", - "alloy-eips", "alloy-rpc-types-engine", "clap", "eyre", @@ -9092,7 +9247,6 @@ dependencies = [ "rollup-node-indexer", "rollup-node-primitives", "rollup-node-watcher", - "rollup-node-primitives", "scroll-alloy-network", "scroll-alloy-provider", "scroll-engine", @@ -9203,9 +9357,9 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rust_decimal" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b082d80e3e3cc52b2ed634388d436fe1f4de6af5786cc2de9ba9737527bdf555" +checksum = "5c24af6e7ac43c88a8a458d1139d0246fdce2f6cd2f1ac6cb51eb88b29c978af" dependencies = [ "arrayvec", "borsh", @@ -9277,22 +9431,22 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" +checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" dependencies = [ "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys 0.9.2", + "linux-raw-sys 0.9.3", "windows-sys 0.59.0", ] [[package]] name = "rustls" -version = "0.23.23" +version = "0.23.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" +checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" dependencies = [ "log", "once_cell", @@ -9303,19 +9457,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" -dependencies = [ - "openssl-probe", - "rustls-pemfile", - "rustls-pki-types", - "schannel", - "security-framework 2.11.1", -] - [[package]] name = "rustls-native-certs" version = "0.8.1" @@ -9348,23 +9489,23 @@ dependencies = [ [[package]] name = "rustls-platform-verifier" -version = "0.3.4" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afbb878bdfdf63a336a5e63561b1835e7a8c91524f51621db870169eac84b490" +checksum = "4a5467026f437b4cb2a533865eaa73eb840019a0916f4b9ec563c6e617e086c9" dependencies = [ - "core-foundation 0.9.4", + "core-foundation 0.10.0", "core-foundation-sys", "jni", "log", "once_cell", "rustls", - "rustls-native-certs 0.7.3", + "rustls-native-certs", "rustls-platform-verifier-android", "rustls-webpki", - "security-framework 2.11.1", + "security-framework 3.2.0", "security-framework-sys", - "webpki-roots", - "winapi", + "webpki-root-certs", + "windows-sys 0.59.0", ] [[package]] @@ -9375,9 +9516,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.102.8" +version = "0.103.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +checksum = "0aa4eeac2588ffff23e9d7a7e9b3f971c5fb5b7ebc9452745e0c232c64f83b2f" dependencies = [ "ring", "rustls-pki-types", @@ -9451,8 +9592,8 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll-alloy-consensus" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9469,8 +9610,8 @@ dependencies = [ [[package]] name = "scroll-alloy-evm" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9486,8 +9627,8 @@ dependencies = [ [[package]] name = "scroll-alloy-hardforks" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-hardforks", "auto_impl", @@ -9496,8 +9637,8 @@ dependencies = [ [[package]] name = "scroll-alloy-network" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-network", @@ -9510,8 +9651,8 @@ dependencies = [ [[package]] name = "scroll-alloy-provider" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "alloy-provider", @@ -9531,8 +9672,8 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9548,8 +9689,8 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types-engine" -version = "1.2.2" -source = "git+https://github.com/scroll-tech/reth.git#2de81fce858e35ed374c8105c45f02831887ff0a" +version = "1.3.4" +source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", @@ -9557,56 +9698,6 @@ dependencies = [ "serde", ] -[[package]] -name = "scroll-db" -version = "0.0.1" -dependencies = [ - "alloy-primitives", - "arbitrary", - "async-trait", - "futures", - "rand 0.9.0", - "rollup-node-primitives", - "reth-cli-util", - "reth-e2e-test-utils", - "reth-engine-local", - "reth-eth-wire-types", - "reth-network", - "reth-network-peers", - "reth-node-api", - "reth-node-builder", - "reth-node-core", - "reth-node-types", - "reth-payload-builder", - "reth-primitives", - "reth-provider", - "reth-rpc-builder", - "reth-rpc-server-types", - "reth-scroll-chainspec", - "reth-scroll-cli", - "reth-scroll-engine-primitives", - "reth-scroll-node", - "reth-scroll-primitives", - "reth-tasks", - "reth-tracing", - "reth-transaction-pool", - "rollup-node-manager", - "scroll-alloy-consensus", - "scroll-migration", - "sea-orm", - "serde", - "scroll-alloy-provider", - "scroll-alloy-rpc-types-engine", - "scroll-engine", - "scroll-network", - "scroll-wire", - "secp256k1 0.29.1", - "serde_json", - "thiserror 2.0.12", - "tokio", - "tracing", -] - [[package]] name = "scroll-db" version = "0.0.1" @@ -9705,7 +9796,6 @@ dependencies = [ "reth-eth-wire", "reth-network", "reth-network-api", - "reth-primitives", "reth-scroll-primitives", "secp256k1 0.29.1", "tokio", @@ -9804,9 +9894,9 @@ dependencies = [ [[package]] name = "sea-query" -version = "0.32.2" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b731192738ebf56d20580fc8ba2d23940333befe900b04dd08a26a77cd056f02" +checksum = "f5a24d8b9fcd2674a6c878a3d871f4f1380c6c43cc3718728ac96864d888458e" dependencies = [ "bigdecimal", "chrono", @@ -9837,16 +9927,16 @@ dependencies = [ [[package]] name = "sea-query-derive" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9834af2c4bd8c5162f00c89f1701fb6886119a88062cf76fe842ea9e232b9839" +checksum = "bae0cbad6ab996955664982739354128c58d16e126114fe88c2a493642502aab" dependencies = [ "darling", "heck 0.4.1", "proc-macro2", "quote", "syn 2.0.100", - "thiserror 1.0.69", + "thiserror 2.0.12", ] [[package]] @@ -9935,7 +10025,6 @@ dependencies = [ "core-foundation 0.9.4", "core-foundation-sys", "libc", - "num-bigint", "security-framework-sys", ] @@ -10027,6 +10116,7 @@ version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ + "indexmap 2.8.0", "itoa", "memchr", "ryu", @@ -10231,6 +10321,12 @@ dependencies = [ "time", ] +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + [[package]] name = "skeptic" version = "0.13.7" @@ -10645,9 +10741,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.22" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac9f9798a84bca5cd4d1760db691075fda8f2c3a5d9647e8bfd29eb9b3fabb87" +checksum = "36dbbf0d465ab9fdfea3093e755ae8839bdc1263dbe18d35064d02d6060f949e" dependencies = [ "paste", "proc-macro2", @@ -10702,15 +10798,14 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.18.0" +version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c317e0a526ee6120d8dabad239c8dadca62b24b6f168914bbbc8e2fb1f0e567" +checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" dependencies = [ - "cfg-if", "fastrand", - "getrandom 0.3.1", + "getrandom 0.3.2", "once_cell", - "rustix 1.0.2", + "rustix 1.0.3", "windows-sys 0.59.0", ] @@ -10775,9 +10870,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.39" +version = "0.3.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad298b01a40a23aac4580b67e3dbedb7cc8402f3592d7f49469de2ea4aecdd8" +checksum = "9d9c75b47bdff86fa3334a3db91356b8d7d86a9b839dab7d0bdc5c3d3a077618" dependencies = [ "deranged", "itoa", @@ -10792,15 +10887,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "765c97a5b985b7c11d7bc27fa927dc4fe6af3a6dfb021d28deb60d3bf51e76ef" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "time-macros" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8093bc3e81c3bc5f7879de09619d06c9a5a5e45ca44dfeeb7225bae38005c5c" +checksum = "29aa485584182073ed57fd5004aa09c371f021325014694e432313345865fd04" dependencies = [ "num-conv", "time-core", @@ -10842,9 +10937,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.44.0" +version = "1.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9975ea0f48b5aa3972bf2d888c238182458437cc2a19374b81b25cdf1023fb3a" +checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" dependencies = [ "backtrace", "bytes", @@ -10909,9 +11004,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.13" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" +checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" dependencies = [ "bytes", "futures-core", @@ -11086,6 +11181,8 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ + "futures", + "futures-task", "pin-project", "tracing", ] @@ -11391,11 +11488,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.15.1" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587" +checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" dependencies = [ - "getrandom 0.3.1", + "getrandom 0.3.2", "serde", ] @@ -11419,16 +11516,43 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "vergen" -version = "8.3.2" +version = "9.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2990d9ea5967266ea0ccf413a4aa5c42a93dbcfda9cb49a97de6931726b12566" +checksum = "e0d2f179f8075b805a43a2a21728a46f0cc2921b3c58695b28fa8817e103cd9a" dependencies = [ "anyhow", - "cargo_metadata 0.18.1", - "cfg-if", + "cargo_metadata 0.19.2", + "derive_builder", "regex", "rustversion", "time", + "vergen-lib", +] + +[[package]] +name = "vergen-git2" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86bae87104cb2790cdee615c2bb54729804d307191732ab27b1c5357ea6ddc5" +dependencies = [ + "anyhow", + "derive_builder", + "git2", + "rustversion", + "time", + "vergen", + "vergen-lib", +] + +[[package]] +name = "vergen-lib" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b07e6010c0f3e59fcb164e0163834597da68d1f864e2b8ca49f74de01e9c166" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", ] [[package]] @@ -11484,9 +11608,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi" -version = "0.13.3+wasi-0.2.2" +version = "0.14.2+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" dependencies = [ "wit-bindgen-rt", ] @@ -11602,6 +11726,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-root-certs" +version = "0.26.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09aed61f5e8d2c18344b3faa33a4c837855fe56642757754775548fee21386c4" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webpki-roots" version = "0.26.8" @@ -11623,9 +11756,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" +checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" [[package]] name = "winapi" @@ -11658,6 +11791,16 @@ 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" @@ -11758,9 +11901,9 @@ dependencies = [ [[package]] name = "windows-link" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" +checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" [[package]] name = "windows-registry" @@ -11768,7 +11911,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" dependencies = [ - "windows-result 0.3.1", + "windows-result 0.3.2", "windows-strings 0.3.1", "windows-targets 0.53.0", ] @@ -11793,9 +11936,9 @@ dependencies = [ [[package]] name = "windows-result" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06374efe858fab7e4f881500e6e86ec8bc28f9462c47e5a9941a0142ad86b189" +checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" dependencies = [ "windows-link", ] @@ -11819,6 +11962,15 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -11846,6 +11998,21 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -11893,6 +12060,12 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -11911,6 +12084,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -11929,6 +12108,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -11959,6 +12144,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -11977,6 +12168,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -11995,6 +12192,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -12013,6 +12216,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -12033,9 +12242,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" dependencies = [ "memchr", ] @@ -12052,9 +12261,9 @@ dependencies = [ [[package]] name = "wit-bindgen-rt" -version = "0.33.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ "bitflags 2.9.0", ] @@ -12140,11 +12349,11 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.23" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" dependencies = [ - "zerocopy-derive 0.8.23", + "zerocopy-derive 0.8.24", ] [[package]] @@ -12160,9 +12369,9 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.8.23" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" dependencies = [ "proc-macro2", "quote", @@ -12243,18 +12452,18 @@ dependencies = [ [[package]] name = "zstd-safe" -version = "7.2.3" +version = "7.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3051792fbdc2e1e143244dc28c60f73d8470e93f3f9cbd0ead44da5ed802722" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.14+zstd.1.5.7" +version = "2.0.15+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb060d4926e4ac3a3ad15d864e99ceb5f343c6b34f5bd6d81ae6ed417311be5" +checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index f6df4342..ae3a07c7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -125,25 +125,25 @@ alloy-sol-types = { version = "0.8.20", default-features = false } alloy-transport = { version = "0.12.2", default-features = false } # scroll-alloy -scroll-alloy-consensus = { git = "https://github.com/scroll-tech/reth.git", default-features = false } -scroll-alloy-provider = { git = "https://github.com/scroll-tech/reth.git", default-features = false } -scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +scroll-alloy-consensus = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } +scroll-alloy-provider = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } +scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } # reth -reth-eth-wire-types = { git = "https://github.com/scroll-tech/reth.git" } -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 } -reth-network-peers = { git = "https://github.com/scroll-tech/reth.git", default-features = false } -reth-primitives = { git = "https://github.com/scroll-tech/reth.git", default-features = false } -reth-provider = { git = "https://github.com/scroll-tech/reth.git", default-features = false } -reth-tasks = { git = "https://github.com/scroll-tech/reth.git" } -reth-tokio-util = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-eth-wire-types = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-network = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } +reth-network-api = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } +reth-network-peers = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } +reth-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } +reth-provider = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } +reth-tasks = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-tokio-util = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } # reth-scroll -reth-scroll-chainspec = { git = "https://github.com/scroll-tech/reth.git", default-features = false } -reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", default-features = false } -reth-scroll-node = { git = "https://github.com/scroll-tech/reth.git", default-features = false } -reth-scroll-primitives = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-scroll-chainspec = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } +reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } +reth-scroll-node = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } +reth-scroll-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } # rollup node rollup-node-indexer = { path = "crates/indexer" } @@ -169,19 +169,3 @@ thiserror = "2.0" tokio = { version = "1.39", default-features = false } tokio-stream = { version = "0.1", default-features = false } tracing = "0.1.0" - -[patch.crates-io] -revm = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } -revm-bytecode = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } -revm-database = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } -revm-state = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } -revm-primitives = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } -revm-interpreter = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } -revm-inspector = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } -revm-context = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } -revm-context-interface = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } -revm-database-interface = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } -revm-specification = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } -op-revm = { git = "https://github.com/bluealloy/revm", rev = "19a5f3b" } - -revm-inspectors = { git = "https://github.com/paradigmxyz/revm-inspectors", rev = "9219073" } diff --git a/bin/rollup/Cargo.toml b/bin/rollup/Cargo.toml index 72368cd7..b9bd2476 100644 --- a/bin/rollup/Cargo.toml +++ b/bin/rollup/Cargo.toml @@ -14,29 +14,29 @@ alloy-rpc-types-engine.workspace = true # scroll-alloy scroll-alloy-consensus.workspace = true -scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git" } +scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } scroll-alloy-provider.workspace = true # reth -reth-cli-util = { git = "https://github.com/scroll-tech/reth.git" } +reth-cli-util = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } # keep this import as it is needed for correct compilation. -reth-engine-local = { git = "https://github.com/scroll-tech/reth.git", features = ["scroll-alloy-traits"] } +reth-engine-local = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", features = ["scroll-alloy-traits"] } reth-eth-wire-types.workspace = true reth-network.workspace = true reth-network-peers.workspace = true -reth-node-api = { git = "https://github.com/scroll-tech/reth.git" } -reth-node-builder = { git = "https://github.com/scroll-tech/reth.git", features = ["skip-state-root-validation"] } -reth-node-core = { git = "https://github.com/scroll-tech/reth.git" } -reth-node-types = { git = "https://github.com/scroll-tech/reth.git" } +reth-node-api = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-node-builder = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", features = ["skip-state-root-validation"] } +reth-node-core = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-node-types = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } reth-primitives.workspace = true reth-provider = { workspace = true, features = ["skip-state-root-validation"] } -reth-rpc-builder = { git = "https://github.com/scroll-tech/reth.git" } -reth-transaction-pool = { git = "https://github.com/scroll-tech/reth.git" } +reth-rpc-builder = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-transaction-pool = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } # scroll reth-scroll-chainspec.workspace = true -reth-scroll-cli = { git = "https://github.com/scroll-tech/reth.git" } -reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git" } +reth-scroll-cli = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } reth-scroll-node = { workspace = true, features = ["skip-state-root-validation"] } reth-scroll-primitives = { workspace = true } scroll-wire.workspace = true @@ -64,11 +64,11 @@ 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-payload-builder = { git = "https://github.com/scroll-tech/reth.git" } -reth-rpc-server-types = { git = "https://github.com/scroll-tech/reth.git" } +reth-e2e-test-utils = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-payload-builder = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-rpc-server-types = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } reth-tasks.workspace = true -reth-tracing = { git = "https://github.com/scroll-tech/reth.git" } +reth-tracing = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } # misc futures.workspace = true @@ -87,7 +87,6 @@ test-utils = [ "reth-payload-builder/test-utils", "rollup-node-watcher/test-utils", "scroll-db/test-utils", - "rollup-node-watcher/test-utils", "scroll-db/test-utils", ] serde = [ @@ -95,7 +94,6 @@ serde = [ "alloy-rpc-types-engine/serde", "reth-eth-wire-types/serde", "reth-network/serde", - "reth-provider/serde", "reth-scroll-primitives/serde", "scroll-alloy-consensus/serde", "scroll-alloy-rpc-types-engine/serde", @@ -105,6 +103,7 @@ serde = [ "secp256k1/serde", "rollup-node-manager/serde", "alloy-chains/serde", + "reth-transaction-pool/serde", ] [[bin]] diff --git a/bin/rollup/src/import.rs b/bin/rollup/src/import.rs index 34c2f806..5e4b350d 100644 --- a/bin/rollup/src/import.rs +++ b/bin/rollup/src/import.rs @@ -1,6 +1,5 @@ -use reth_network::{import::BlockImport as RethBlockImport, NetworkPrimitives}; +use reth_network::import::{BlockImport as RethBlockImport, NewBlockEvent}; use reth_network_peers::PeerId; -use reth_scroll_node::ScrollNetworkPrimitives; use reth_scroll_primitives::ScrollBlock; use scroll_network::NewBlockWithPeer; use secp256k1::ecdsa::Signature; @@ -63,22 +62,23 @@ impl RethBlockImport for BridgeBlockImport fn on_new_block( &mut self, peer_id: PeerId, - incoming_block: reth_network::message::NewBlockMessage< - ::Block, - >, + incoming_block: NewBlockEvent, ) { // We then delegate the block import to the inner block import. - self.bridge_new_block_to_scroll_wire(peer_id, incoming_block.block); + match incoming_block { + NewBlockEvent::Block(block) => { + self.bridge_new_block_to_scroll_wire(peer_id, block.block) + } + NewBlockEvent::Hashes(_) => { + warn!(target: "scroll::bridge::import", peer_id = %peer_id, "Received NewBlockHashes event, expected NewBlock event"); + } + } } fn poll( &mut self, _cx: &mut Context<'_>, - ) -> Poll< - reth_network::import::BlockImportOutcome< - ::Block, - >, - > { + ) -> Poll> { Poll::Pending } } diff --git a/bin/rollup/src/main.rs b/bin/rollup/src/main.rs index aeda75b3..5373ca99 100644 --- a/bin/rollup/src/main.rs +++ b/bin/rollup/src/main.rs @@ -3,7 +3,7 @@ static ALLOC: reth_cli_util::allocator::Allocator = reth_cli_util::allocator::ne fn main() { use clap::Parser; - use reth_node_builder::{engine_tree_config::TreeConfig, EngineNodeLauncher}; + use reth_node_builder::{EngineNodeLauncher, TreeConfig}; use reth_provider::providers::BlockchainProvider; use reth_scroll_cli::{Cli, ScrollChainSpecParser}; use reth_scroll_node::{ScrollAddOns, ScrollNode}; diff --git a/crates/engine/Cargo.toml b/crates/engine/Cargo.toml index a78a706e..23b14b9e 100644 --- a/crates/engine/Cargo.toml +++ b/crates/engine/Cargo.toml @@ -19,16 +19,16 @@ alloy-rpc-types-engine.workspace = true # scroll-alloy scroll-alloy-network.workspace = true scroll-alloy-provider.workspace = true -scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git" } +scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } # reth -reth-payload-primitives = { git = "https://github.com/scroll-tech/reth.git" } +reth-payload-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } reth-primitives = { workspace = true } # reth-scroll reth-scroll-chainspec.workspace = true reth-scroll-primitives.workspace = true -reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } # rollup-node rollup-node-primitives.workspace = true @@ -44,7 +44,7 @@ arbitrary = { workspace = true, optional = true } [dev-dependencies] arbitrary.workspace = true -reth-testing-utils = { git = "https://github.com/scroll-tech/reth.git" } +reth-testing-utils = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } [features] arbitrary = [ diff --git a/crates/network/Cargo.toml b/crates/network/Cargo.toml index cd4ac226..df4d9055 100644 --- a/crates/network/Cargo.toml +++ b/crates/network/Cargo.toml @@ -14,9 +14,9 @@ alloy-primitives = { workspace = true, features = ["map-foldhash"] } reth-eth-wire-types.workspace = true reth-network.workspace = true reth-network-api.workspace = true -reth-network-types = { git = "https://github.com/scroll-tech/reth.git" } +reth-network-types = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } reth-network-peers.workspace = true -reth-storage-api = { git = "https://github.com/scroll-tech/reth.git" } +reth-storage-api = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } # scroll reth-scroll-chainspec.workspace = true diff --git a/crates/scroll-wire/Cargo.toml b/crates/scroll-wire/Cargo.toml index 1d2a1d90..7ac4fc7f 100644 --- a/crates/scroll-wire/Cargo.toml +++ b/crates/scroll-wire/Cargo.toml @@ -15,10 +15,9 @@ alloy-primitives = { workspace = true, features = ["map-foldhash"] } alloy-rlp = { version = "0.3.10", default-features = false } # reth -reth-eth-wire = { git = "https://github.com/scroll-tech/reth.git" } +reth-eth-wire = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } reth-network.workspace = true reth-network-api.workspace = true -reth-primitives.workspace = true # scroll reth-scroll-primitives = { workspace = true, features = ["serde"] } diff --git a/crates/watcher/src/lib.rs b/crates/watcher/src/lib.rs index e007d187..41fe8576 100644 --- a/crates/watcher/src/lib.rs +++ b/crates/watcher/src/lib.rs @@ -79,7 +79,7 @@ pub struct L1Watcher { } /// The L1 notification type yielded by the [`L1Watcher`]. -#[derive(Debug, PartialEq, Eq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum L1Notification { /// A notification for a reorg of the L1 up to a given block number. Reorg(u64), From 6a3a0c7276f635fa12146b93265a41aefcbed09c Mon Sep 17 00:00:00 2001 From: frisitano Date: Mon, 24 Mar 2025 16:19:21 +0700 Subject: [PATCH 60/63] fix: fix no_std for scroll-wire --- Cargo.toml | 2 +- crates/scroll-wire/Cargo.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index ae3a07c7..16e805a4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -130,7 +130,7 @@ scroll-alloy-provider = { git = "https://github.com/scroll-tech/reth.git", branc scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } # reth -reth-eth-wire-types = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-eth-wire-types = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } reth-network = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } reth-network-api = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } reth-network-peers = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } diff --git a/crates/scroll-wire/Cargo.toml b/crates/scroll-wire/Cargo.toml index 7ac4fc7f..b62a0363 100644 --- a/crates/scroll-wire/Cargo.toml +++ b/crates/scroll-wire/Cargo.toml @@ -15,12 +15,12 @@ alloy-primitives = { workspace = true, features = ["map-foldhash"] } alloy-rlp = { version = "0.3.10", default-features = false } # reth -reth-eth-wire = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-eth-wire = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } reth-network.workspace = true reth-network-api.workspace = true # scroll -reth-scroll-primitives = { workspace = true, features = ["serde"] } +reth-scroll-primitives = { workspace = true } # misc futures.workspace = true From b3a356c1efb21e8913441868c2103a99088a3b1d Mon Sep 17 00:00:00 2001 From: frisitano Date: Mon, 24 Mar 2025 16:25:43 +0700 Subject: [PATCH 61/63] chore: point reth dep and rename rollup-node binary --- Cargo.lock | 244 +++++++++++++++++----------------- Cargo.toml | 30 ++--- bin/rollup/Cargo.toml | 32 ++--- crates/engine/Cargo.toml | 8 +- crates/network/Cargo.toml | 4 +- crates/scroll-wire/Cargo.toml | 2 +- 6 files changed, 160 insertions(+), 160 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d742c9f0..0e2bd0cb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6140,7 +6140,7 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6164,7 +6164,7 @@ dependencies = [ [[package]] name = "reth-chain-state" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6194,7 +6194,7 @@ dependencies = [ [[package]] name = "reth-chainspec" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-chains", "alloy-consensus", @@ -6214,7 +6214,7 @@ dependencies = [ [[package]] name = "reth-cli" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-genesis", "clap", @@ -6228,7 +6228,7 @@ dependencies = [ [[package]] name = "reth-cli-commands" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "ahash 0.8.11", "alloy-consensus", @@ -6289,7 +6289,7 @@ dependencies = [ [[package]] name = "reth-cli-runner" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "reth-tasks", "tokio", @@ -6299,7 +6299,7 @@ dependencies = [ [[package]] name = "reth-cli-util" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6316,7 +6316,7 @@ dependencies = [ [[package]] name = "reth-codecs" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6336,7 +6336,7 @@ dependencies = [ [[package]] name = "reth-codecs-derive" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "convert_case", "proc-macro2", @@ -6347,7 +6347,7 @@ dependencies = [ [[package]] name = "reth-config" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "eyre", "humantime-serde", @@ -6361,7 +6361,7 @@ dependencies = [ [[package]] name = "reth-consensus" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6374,7 +6374,7 @@ dependencies = [ [[package]] name = "reth-consensus-common" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6386,7 +6386,7 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6409,7 +6409,7 @@ dependencies = [ [[package]] name = "reth-db" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "derive_more 2.0.1", @@ -6435,7 +6435,7 @@ dependencies = [ [[package]] name = "reth-db-api" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -6464,7 +6464,7 @@ dependencies = [ [[package]] name = "reth-db-common" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -6493,7 +6493,7 @@ dependencies = [ [[package]] name = "reth-db-models" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6508,7 +6508,7 @@ dependencies = [ [[package]] name = "reth-discv4" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6534,7 +6534,7 @@ dependencies = [ [[package]] name = "reth-discv5" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6558,7 +6558,7 @@ dependencies = [ [[package]] name = "reth-dns-discovery" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "data-encoding", @@ -6582,7 +6582,7 @@ dependencies = [ [[package]] name = "reth-downloaders" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6617,7 +6617,7 @@ dependencies = [ [[package]] name = "reth-e2e-test-utils" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6669,7 +6669,7 @@ dependencies = [ [[package]] name = "reth-ecies" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "aes", "alloy-primitives", @@ -6700,7 +6700,7 @@ dependencies = [ [[package]] name = "reth-engine-local" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6730,7 +6730,7 @@ dependencies = [ [[package]] name = "reth-engine-primitives" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6754,7 +6754,7 @@ dependencies = [ [[package]] name = "reth-engine-service" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "futures", "pin-project", @@ -6777,7 +6777,7 @@ dependencies = [ [[package]] name = "reth-engine-tree" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6827,7 +6827,7 @@ dependencies = [ [[package]] name = "reth-engine-util" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -6854,7 +6854,7 @@ dependencies = [ [[package]] name = "reth-errors" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -6866,7 +6866,7 @@ dependencies = [ [[package]] name = "reth-eth-wire" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-chains", "alloy-primitives", @@ -6894,7 +6894,7 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-chains", "alloy-consensus", @@ -6915,7 +6915,7 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "eyre", "reth-chainspec", @@ -6925,7 +6925,7 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6941,7 +6941,7 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6958,7 +6958,7 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -6972,7 +6972,7 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6999,7 +6999,7 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7024,7 +7024,7 @@ dependencies = [ [[package]] name = "reth-etl" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "rayon", "reth-db-api", @@ -7034,7 +7034,7 @@ dependencies = [ [[package]] name = "reth-evm" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7061,7 +7061,7 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7079,7 +7079,7 @@ dependencies = [ [[package]] name = "reth-execution-errors" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-evm", "alloy-primitives", @@ -7092,7 +7092,7 @@ dependencies = [ [[package]] name = "reth-execution-types" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7110,7 +7110,7 @@ dependencies = [ [[package]] name = "reth-exex" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7148,7 +7148,7 @@ dependencies = [ [[package]] name = "reth-exex-types" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7162,7 +7162,7 @@ dependencies = [ [[package]] name = "reth-fs-util" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "serde", "serde_json", @@ -7172,7 +7172,7 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7198,7 +7198,7 @@ dependencies = [ [[package]] name = "reth-ipc" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "async-trait", "bytes", @@ -7219,7 +7219,7 @@ dependencies = [ [[package]] name = "reth-libmdbx" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "bitflags 2.9.0", "byteorder", @@ -7236,7 +7236,7 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "bindgen", "cc", @@ -7245,7 +7245,7 @@ dependencies = [ [[package]] name = "reth-metrics" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "futures", "metrics", @@ -7257,7 +7257,7 @@ dependencies = [ [[package]] name = "reth-net-banlist" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", ] @@ -7265,7 +7265,7 @@ dependencies = [ [[package]] name = "reth-net-nat" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "futures-util", "if-addrs", @@ -7279,7 +7279,7 @@ dependencies = [ [[package]] name = "reth-network" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7335,7 +7335,7 @@ dependencies = [ [[package]] name = "reth-network-api" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "alloy-rpc-types-admin", @@ -7358,7 +7358,7 @@ dependencies = [ [[package]] name = "reth-network-p2p" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7381,7 +7381,7 @@ dependencies = [ [[package]] name = "reth-network-peers" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7396,7 +7396,7 @@ dependencies = [ [[package]] name = "reth-network-types" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -7410,7 +7410,7 @@ dependencies = [ [[package]] name = "reth-nippy-jar" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "anyhow", "bincode", @@ -7427,7 +7427,7 @@ dependencies = [ [[package]] name = "reth-node-api" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -7451,7 +7451,7 @@ dependencies = [ [[package]] name = "reth-node-builder" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7514,7 +7514,7 @@ dependencies = [ [[package]] name = "reth-node-core" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7564,7 +7564,7 @@ dependencies = [ [[package]] name = "reth-node-ethereum" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-eips", "alloy-rpc-types-engine", @@ -7600,7 +7600,7 @@ dependencies = [ [[package]] name = "reth-node-events" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7624,7 +7624,7 @@ dependencies = [ [[package]] name = "reth-node-metrics" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "eyre", "http", @@ -7644,7 +7644,7 @@ dependencies = [ [[package]] name = "reth-node-types" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "reth-chainspec", "reth-db-api", @@ -7657,7 +7657,7 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7684,7 +7684,7 @@ dependencies = [ [[package]] name = "reth-payload-builder" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7705,7 +7705,7 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "pin-project", "reth-payload-primitives", @@ -7717,7 +7717,7 @@ dependencies = [ [[package]] name = "reth-payload-primitives" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7737,7 +7737,7 @@ dependencies = [ [[package]] name = "reth-payload-util" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7747,7 +7747,7 @@ dependencies = [ [[package]] name = "reth-payload-validator" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -7757,7 +7757,7 @@ dependencies = [ [[package]] name = "reth-primitives" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "arbitrary", @@ -7772,7 +7772,7 @@ dependencies = [ [[package]] name = "reth-primitives-traits" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7806,7 +7806,7 @@ dependencies = [ [[package]] name = "reth-provider" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7852,7 +7852,7 @@ dependencies = [ [[package]] name = "reth-prune" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7880,7 +7880,7 @@ dependencies = [ [[package]] name = "reth-prune-types" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "arbitrary", @@ -7894,7 +7894,7 @@ dependencies = [ [[package]] name = "reth-revm" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -7907,7 +7907,7 @@ dependencies = [ [[package]] name = "reth-rpc" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -7978,7 +7978,7 @@ dependencies = [ [[package]] name = "reth-rpc-api" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-eips", "alloy-genesis", @@ -8004,7 +8004,7 @@ dependencies = [ [[package]] name = "reth-rpc-builder" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-network", "alloy-provider", @@ -8041,7 +8041,7 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8072,7 +8072,7 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -8115,7 +8115,7 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8157,7 +8157,7 @@ dependencies = [ [[package]] name = "reth-rpc-layer" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-rpc-types-engine", "http", @@ -8171,7 +8171,7 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8187,7 +8187,7 @@ dependencies = [ [[package]] name = "reth-rpc-types-compat" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8200,7 +8200,7 @@ dependencies = [ [[package]] name = "reth-scroll-chainspec" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-chains", "alloy-consensus", @@ -8224,7 +8224,7 @@ dependencies = [ [[package]] name = "reth-scroll-cli" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "clap", "eyre", @@ -8247,7 +8247,7 @@ dependencies = [ [[package]] name = "reth-scroll-consensus" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8267,7 +8267,7 @@ dependencies = [ [[package]] name = "reth-scroll-engine-primitives" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8292,7 +8292,7 @@ dependencies = [ [[package]] name = "reth-scroll-evm" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8320,7 +8320,7 @@ dependencies = [ [[package]] name = "reth-scroll-forks" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-chains", "alloy-primitives", @@ -8334,7 +8334,7 @@ dependencies = [ [[package]] name = "reth-scroll-node" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8376,7 +8376,7 @@ dependencies = [ [[package]] name = "reth-scroll-payload" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "reth-basic-payload-builder", "reth-payload-primitives", @@ -8389,7 +8389,7 @@ dependencies = [ [[package]] name = "reth-scroll-primitives" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8417,7 +8417,7 @@ dependencies = [ [[package]] name = "reth-scroll-rpc" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8452,7 +8452,7 @@ dependencies = [ [[package]] name = "reth-stages" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8498,7 +8498,7 @@ dependencies = [ [[package]] name = "reth-stages-api" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8525,7 +8525,7 @@ dependencies = [ [[package]] name = "reth-stages-types" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "arbitrary", @@ -8539,7 +8539,7 @@ dependencies = [ [[package]] name = "reth-static-file" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "parking_lot", @@ -8560,7 +8560,7 @@ dependencies = [ [[package]] name = "reth-static-file-types" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "clap", @@ -8572,7 +8572,7 @@ dependencies = [ [[package]] name = "reth-storage-api" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8596,7 +8596,7 @@ dependencies = [ [[package]] name = "reth-storage-errors" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8612,7 +8612,7 @@ dependencies = [ [[package]] name = "reth-tasks" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "auto_impl", "dyn-clone", @@ -8630,7 +8630,7 @@ dependencies = [ [[package]] name = "reth-testing-utils" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8645,7 +8645,7 @@ dependencies = [ [[package]] name = "reth-tokio-util" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "tokio", "tokio-stream", @@ -8655,7 +8655,7 @@ dependencies = [ [[package]] name = "reth-tracing" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "clap", "eyre", @@ -8670,7 +8670,7 @@ dependencies = [ [[package]] name = "reth-transaction-pool" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8709,7 +8709,7 @@ dependencies = [ [[package]] name = "reth-trie" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8734,7 +8734,7 @@ dependencies = [ [[package]] name = "reth-trie-common" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8760,7 +8760,7 @@ dependencies = [ [[package]] name = "reth-trie-db" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8779,7 +8779,7 @@ dependencies = [ [[package]] name = "reth-trie-parallel" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8804,7 +8804,7 @@ dependencies = [ [[package]] name = "reth-trie-sparse" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8822,7 +8822,7 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "zstd", ] @@ -9016,7 +9016,7 @@ dependencies = [ [[package]] name = "revm-scroll" version = "0.1.0" -source = "git+https://github.com/scroll-tech/scroll-revm?branch=chore/upstream-merge-20.0.0-alpha.7#19eab25013eea391ce203bceb10f690ba5c6e814" +source = "git+https://github.com/scroll-tech/scroll-revm#da81341ae9027a46114b16ff98937686bb417bab" dependencies = [ "auto_impl", "enumn", @@ -9593,7 +9593,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll-alloy-consensus" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9611,7 +9611,7 @@ dependencies = [ [[package]] name = "scroll-alloy-evm" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9628,7 +9628,7 @@ dependencies = [ [[package]] name = "scroll-alloy-hardforks" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-hardforks", "auto_impl", @@ -9638,7 +9638,7 @@ dependencies = [ [[package]] name = "scroll-alloy-network" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-network", @@ -9652,7 +9652,7 @@ dependencies = [ [[package]] name = "scroll-alloy-provider" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "alloy-provider", @@ -9673,7 +9673,7 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9690,7 +9690,7 @@ dependencies = [ [[package]] name = "scroll-alloy-rpc-types-engine" version = "1.3.4" -source = "git+https://github.com/scroll-tech/reth.git?branch=chore-merge-upstream-90513dfe3#774496d5fae7311bbbafb264ad04674a97c8184a" +source = "git+https://github.com/scroll-tech/reth.git#112588276c4efe2383d636ed418387d69057bbeb" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", diff --git a/Cargo.toml b/Cargo.toml index 16e805a4..0a518975 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -125,25 +125,25 @@ alloy-sol-types = { version = "0.8.20", default-features = false } alloy-transport = { version = "0.12.2", default-features = false } # scroll-alloy -scroll-alloy-consensus = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } -scroll-alloy-provider = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } -scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } +scroll-alloy-consensus = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +scroll-alloy-provider = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +scroll-alloy-network = { git = "https://github.com/scroll-tech/reth.git", default-features = false } # reth -reth-eth-wire-types = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } -reth-network = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } -reth-network-api = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } -reth-network-peers = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } -reth-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } -reth-provider = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } -reth-tasks = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } -reth-tokio-util = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } +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 } +reth-network-peers = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-primitives = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-provider = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-tasks = { git = "https://github.com/scroll-tech/reth.git" } +reth-tokio-util = { git = "https://github.com/scroll-tech/reth.git", default-features = false } # reth-scroll -reth-scroll-chainspec = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } -reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } -reth-scroll-node = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } -reth-scroll-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } +reth-scroll-chainspec = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-scroll-node = { git = "https://github.com/scroll-tech/reth.git", default-features = false } +reth-scroll-primitives = { git = "https://github.com/scroll-tech/reth.git", default-features = false } # rollup node rollup-node-indexer = { path = "crates/indexer" } diff --git a/bin/rollup/Cargo.toml b/bin/rollup/Cargo.toml index b9bd2476..6077a21e 100644 --- a/bin/rollup/Cargo.toml +++ b/bin/rollup/Cargo.toml @@ -14,29 +14,29 @@ alloy-rpc-types-engine.workspace = true # scroll-alloy scroll-alloy-consensus.workspace = true -scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git" } scroll-alloy-provider.workspace = true # reth -reth-cli-util = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-cli-util = { git = "https://github.com/scroll-tech/reth.git" } # keep this import as it is needed for correct compilation. -reth-engine-local = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", features = ["scroll-alloy-traits"] } +reth-engine-local = { git = "https://github.com/scroll-tech/reth.git", features = ["scroll-alloy-traits"] } reth-eth-wire-types.workspace = true reth-network.workspace = true reth-network-peers.workspace = true -reth-node-api = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } -reth-node-builder = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", features = ["skip-state-root-validation"] } -reth-node-core = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } -reth-node-types = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-node-api = { git = "https://github.com/scroll-tech/reth.git" } +reth-node-builder = { git = "https://github.com/scroll-tech/reth.git", features = ["skip-state-root-validation"] } +reth-node-core = { git = "https://github.com/scroll-tech/reth.git" } +reth-node-types = { git = "https://github.com/scroll-tech/reth.git" } reth-primitives.workspace = true reth-provider = { workspace = true, features = ["skip-state-root-validation"] } -reth-rpc-builder = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } -reth-transaction-pool = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-rpc-builder = { git = "https://github.com/scroll-tech/reth.git" } +reth-transaction-pool = { git = "https://github.com/scroll-tech/reth.git" } # scroll reth-scroll-chainspec.workspace = true -reth-scroll-cli = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } -reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-scroll-cli = { git = "https://github.com/scroll-tech/reth.git" } +reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git" } reth-scroll-node = { workspace = true, features = ["skip-state-root-validation"] } reth-scroll-primitives = { workspace = true } scroll-wire.workspace = true @@ -64,11 +64,11 @@ 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", branch = "chore-merge-upstream-90513dfe3" } -reth-payload-builder = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } -reth-rpc-server-types = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-e2e-test-utils = { git = "https://github.com/scroll-tech/reth.git" } +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 -reth-tracing = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-tracing = { git = "https://github.com/scroll-tech/reth.git" } # misc futures.workspace = true @@ -107,6 +107,6 @@ serde = [ ] [[bin]] -name = "bridge" +name = "rollup-node" path = "src/main.rs" required-features = ["serde"] diff --git a/crates/engine/Cargo.toml b/crates/engine/Cargo.toml index 23b14b9e..a78a706e 100644 --- a/crates/engine/Cargo.toml +++ b/crates/engine/Cargo.toml @@ -19,16 +19,16 @@ alloy-rpc-types-engine.workspace = true # scroll-alloy scroll-alloy-network.workspace = true scroll-alloy-provider.workspace = true -scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +scroll-alloy-rpc-types-engine = { git = "https://github.com/scroll-tech/reth.git" } # reth -reth-payload-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-payload-primitives = { git = "https://github.com/scroll-tech/reth.git" } reth-primitives = { workspace = true } # reth-scroll reth-scroll-chainspec.workspace = true reth-scroll-primitives.workspace = true -reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } +reth-scroll-engine-primitives = { git = "https://github.com/scroll-tech/reth.git", default-features = false } # rollup-node rollup-node-primitives.workspace = true @@ -44,7 +44,7 @@ arbitrary = { workspace = true, optional = true } [dev-dependencies] arbitrary.workspace = true -reth-testing-utils = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-testing-utils = { git = "https://github.com/scroll-tech/reth.git" } [features] arbitrary = [ diff --git a/crates/network/Cargo.toml b/crates/network/Cargo.toml index df4d9055..cd4ac226 100644 --- a/crates/network/Cargo.toml +++ b/crates/network/Cargo.toml @@ -14,9 +14,9 @@ alloy-primitives = { workspace = true, features = ["map-foldhash"] } reth-eth-wire-types.workspace = true reth-network.workspace = true reth-network-api.workspace = true -reth-network-types = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-network-types = { git = "https://github.com/scroll-tech/reth.git" } reth-network-peers.workspace = true -reth-storage-api = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3" } +reth-storage-api = { git = "https://github.com/scroll-tech/reth.git" } # scroll reth-scroll-chainspec.workspace = true diff --git a/crates/scroll-wire/Cargo.toml b/crates/scroll-wire/Cargo.toml index b62a0363..05cfcfb9 100644 --- a/crates/scroll-wire/Cargo.toml +++ b/crates/scroll-wire/Cargo.toml @@ -15,7 +15,7 @@ alloy-primitives = { workspace = true, features = ["map-foldhash"] } alloy-rlp = { version = "0.3.10", default-features = false } # reth -reth-eth-wire = { git = "https://github.com/scroll-tech/reth.git", branch = "chore-merge-upstream-90513dfe3", default-features = false } +reth-eth-wire = { git = "https://github.com/scroll-tech/reth.git", default-features = false } reth-network.workspace = true reth-network-api.workspace = true From 0c78e7a6d9d6f4ee21cf93c742cba32b3a5ee0b6 Mon Sep 17 00:00:00 2001 From: frisitano Date: Mon, 24 Mar 2025 17:55:36 +0700 Subject: [PATCH 62/63] lint --- Cargo.lock | 44 +++++++++++++------ crates/codec/Cargo.toml | 2 +- crates/codec/src/decoding/macros.rs | 4 +- crates/codec/src/decoding/transaction.rs | 2 +- crates/codec/src/decoding/v0/block_context.rs | 4 +- crates/codec/src/decoding/v0/mod.rs | 4 +- crates/codec/src/decoding/v1/mod.rs | 10 ++--- crates/codec/src/decoding/v2/mod.rs | 8 ++-- crates/codec/src/decoding/v4/mod.rs | 8 ++-- crates/codec/src/decoding/v7/block_context.rs | 4 +- crates/codec/src/decoding/v7/mod.rs | 10 ++--- 11 files changed, 59 insertions(+), 41 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0e2bd0cb..d40311e5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2397,9 +2397,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "28cfac68e08048ae1883171632c2aef3ebc555621ae56fbccce1cbf22dd7f058" dependencies = [ "powerfmt", "serde", @@ -3696,14 +3696,15 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.61" +version = "0.1.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +checksum = "b2fd658b06e56721792c5df4475705b6cda790e9298d19d2f8af083457bcd127" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", "windows-core 0.52.0", ] @@ -4574,9 +4575,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.26" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" dependencies = [ "value-bag", ] @@ -9357,9 +9358,9 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rust_decimal" -version = "1.37.0" +version = "1.37.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c24af6e7ac43c88a8a458d1139d0246fdce2f6cd2f1ac6cb51eb88b29c978af" +checksum = "faa7de2ba56ac291bd90c6b9bece784a52ae1411f9506544b3eae36dd2356d50" dependencies = [ "arrayvec", "borsh", @@ -9698,6 +9699,21 @@ dependencies = [ "serde", ] +[[package]] +name = "scroll-codec" +version = "0.1.0" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-sol-types", + "derive_more 2.0.1", + "eyre", + "scroll-l1", + "thiserror 2.0.12", + "zstd", +] + [[package]] name = "scroll-db" version = "0.0.1" @@ -10870,9 +10886,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.40" +version = "0.3.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d9c75b47bdff86fa3334a3db91356b8d7d86a9b839dab7d0bdc5c3d3a077618" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "itoa", @@ -10893,9 +10909,9 @@ checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "time-macros" -version = "0.2.21" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29aa485584182073ed57fd5004aa09c371f021325014694e432313345865fd04" +checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" dependencies = [ "num-conv", "time-core", @@ -11746,9 +11762,9 @@ dependencies = [ [[package]] name = "whoami" -version = "1.5.2" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" +checksum = "6994d13118ab492c3c80c1f81928718159254c53c472bf9ce36f8dae4add02a7" dependencies = [ "redox_syscall", "wasite", diff --git a/crates/codec/Cargo.toml b/crates/codec/Cargo.toml index a7fcf846..f0b9a243 100644 --- a/crates/codec/Cargo.toml +++ b/crates/codec/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "scroll-codec" version = "0.1.0" -edition = "2024" +edition = "2021" [dependencies] # alloy diff --git a/crates/codec/src/decoding/macros.rs b/crates/codec/src/decoding/macros.rs index ca2fee94..93434b1a 100644 --- a/crates/codec/src/decoding/macros.rs +++ b/crates/codec/src/decoding/macros.rs @@ -1,7 +1,9 @@ /// Copies the provided slice into $ty using $ty::from_be_bytes and advances the buffer. #[macro_export] macro_rules! from_be_bytes_slice_and_advance_buf { - ($ty: ty, $slice: expr) => {{ $crate::from_be_bytes_slice_and_advance_buf!($ty, ::std::mem::size_of::<$ty>(), $slice) }}; + ($ty: ty, $slice: expr) => {{ + $crate::from_be_bytes_slice_and_advance_buf!($ty, ::std::mem::size_of::<$ty>(), $slice) + }}; ($ty:ty, $size: expr, $slice: expr) => {{ let mut arr = [0u8; ::std::mem::size_of::<$ty>()]; let size = $size; diff --git a/crates/codec/src/decoding/transaction.rs b/crates/codec/src/decoding/transaction.rs index c8967f90..ae116988 100644 --- a/crates/codec/src/decoding/transaction.rs +++ b/crates/codec/src/decoding/transaction.rs @@ -1,4 +1,4 @@ -use alloy_primitives::{Bytes, bytes::Buf}; +use alloy_primitives::{bytes::Buf, Bytes}; use alloy_rlp::Header; /// A RLP encoded transaction. diff --git a/crates/codec/src/decoding/v0/block_context.rs b/crates/codec/src/decoding/v0/block_context.rs index 4b3759ba..586112e2 100644 --- a/crates/codec/src/decoding/v0/block_context.rs +++ b/crates/codec/src/decoding/v0/block_context.rs @@ -1,6 +1,6 @@ -use crate::{BlockContext, from_be_bytes_slice_and_advance_buf}; +use crate::{from_be_bytes_slice_and_advance_buf, BlockContext}; -use alloy_primitives::{U256, bytes::Buf}; +use alloy_primitives::{bytes::Buf, U256}; #[derive(Debug)] pub(crate) struct BlockContextV0 { diff --git a/crates/codec/src/decoding/v0/mod.rs b/crates/codec/src/decoding/v0/mod.rs index 7acfb611..924be9e5 100644 --- a/crates/codec/src/decoding/v0/mod.rs +++ b/crates/codec/src/decoding/v0/mod.rs @@ -3,7 +3,7 @@ pub(crate) use block_context::BlockContextV0; mod block_context; -use crate::{L2Block, decoding::transaction::Transaction, error::DecodingError}; +use crate::{decoding::transaction::Transaction, error::DecodingError, L2Block}; use std::vec::Vec; use alloy_primitives::bytes::Buf; @@ -57,7 +57,7 @@ mod tests { use super::*; use crate::BlockContext; - use alloy_primitives::{U256, bytes}; + use alloy_primitives::{bytes, U256}; #[test] fn test_should_decode_v0() -> eyre::Result<()> { diff --git a/crates/codec/src/decoding/v1/mod.rs b/crates/codec/src/decoding/v1/mod.rs index fc212b8f..b2a777ce 100644 --- a/crates/codec/src/decoding/v1/mod.rs +++ b/crates/codec/src/decoding/v1/mod.rs @@ -1,12 +1,12 @@ use crate::{ - L2Block, check_buf_len, + check_buf_len, decoding::{blob::BlobSliceIter, transaction::Transaction, v0::BlockContextV0}, error::DecodingError, - from_be_bytes_slice_and_advance_buf, + from_be_bytes_slice_and_advance_buf, L2Block, }; use std::vec::Vec; -use alloy_primitives::{Bytes, bytes::Buf}; +use alloy_primitives::{bytes::Buf, Bytes}; use alloy_sol_types::SolCall; use scroll_l1::abi::calls::commitBatchCall; @@ -89,9 +89,9 @@ pub(crate) fn decode_v1_chunk( #[cfg(test)] mod tests { use super::*; - use crate::{BlockContext, decoding::test_utils::read_to_bytes}; + use crate::{decoding::test_utils::read_to_bytes, BlockContext}; - use alloy_primitives::{U256, bytes}; + use alloy_primitives::{bytes, U256}; #[test] fn test_should_decode_v1() -> eyre::Result<()> { diff --git a/crates/codec/src/decoding/v2/mod.rs b/crates/codec/src/decoding/v2/mod.rs index 644b7177..27fdc607 100644 --- a/crates/codec/src/decoding/v2/mod.rs +++ b/crates/codec/src/decoding/v2/mod.rs @@ -1,10 +1,10 @@ pub mod zstd; use crate::{ - L2Block, check_buf_len, + check_buf_len, decoding::{blob::BlobSliceIter, v1::decode_v1_chunk, v2::zstd::decompress_blob_data}, error::DecodingError, - from_be_bytes_slice_and_advance_buf, + from_be_bytes_slice_and_advance_buf, L2Block, }; use std::vec::Vec; @@ -47,9 +47,9 @@ pub fn decode_v2(calldata: &[u8], blob: &[u8]) -> Result, DecodingE #[cfg(test)] mod tests { use super::*; - use crate::{BlockContext, decoding::test_utils::read_to_bytes}; + use crate::{decoding::test_utils::read_to_bytes, BlockContext}; - use alloy_primitives::{U256, bytes}; + use alloy_primitives::{bytes, U256}; #[test] fn test_should_decode_v2() -> eyre::Result<()> { diff --git a/crates/codec/src/decoding/v4/mod.rs b/crates/codec/src/decoding/v4/mod.rs index fc583147..834a4134 100644 --- a/crates/codec/src/decoding/v4/mod.rs +++ b/crates/codec/src/decoding/v4/mod.rs @@ -1,8 +1,8 @@ use crate::{ - L2Block, check_buf_len, + check_buf_len, decoding::{blob::BlobSliceIter, v1::decode_v1_chunk, v2::zstd::decompress_blob_data}, error::DecodingError, - from_be_bytes_slice_and_advance_buf, + from_be_bytes_slice_and_advance_buf, L2Block, }; use std::vec::Vec; @@ -45,9 +45,9 @@ pub fn decode_v4(calldata: &[u8], blob: &[u8]) -> Result, DecodingE #[cfg(test)] mod tests { use super::*; - use crate::{BlockContext, decoding::test_utils::read_to_bytes}; + use crate::{decoding::test_utils::read_to_bytes, BlockContext}; - use alloy_primitives::{U256, bytes}; + use alloy_primitives::{bytes, U256}; #[test] fn test_should_decode_v4_uncompressed() -> eyre::Result<()> { diff --git a/crates/codec/src/decoding/v7/block_context.rs b/crates/codec/src/decoding/v7/block_context.rs index 76b592b0..04b37ecf 100644 --- a/crates/codec/src/decoding/v7/block_context.rs +++ b/crates/codec/src/decoding/v7/block_context.rs @@ -1,6 +1,6 @@ -use crate::{BlockContext, from_be_bytes_slice_and_advance_buf}; +use crate::{from_be_bytes_slice_and_advance_buf, BlockContext}; -use alloy_primitives::{U256, bytes::Buf}; +use alloy_primitives::{bytes::Buf, U256}; #[derive(Debug)] pub(crate) struct BlockContextV7 { diff --git a/crates/codec/src/decoding/v7/mod.rs b/crates/codec/src/decoding/v7/mod.rs index 686c4424..542ce6ae 100644 --- a/crates/codec/src/decoding/v7/mod.rs +++ b/crates/codec/src/decoding/v7/mod.rs @@ -2,14 +2,14 @@ pub(crate) use block_context::BlockContextV7; mod block_context; use crate::{ - L2Block, check_buf_len, + check_buf_len, decoding::{blob::BlobSliceIter, transaction::Transaction, v2::zstd::decompress_blob_data}, error::DecodingError, - from_be_bytes_slice_and_advance_buf, + from_be_bytes_slice_and_advance_buf, L2Block, }; use std::vec::Vec; -use alloy_primitives::{B256, bytes::Buf}; +use alloy_primitives::{bytes::Buf, B256}; /// The offset in the blob to the payload envelope. const BLOB_ENVELOPE_V7_OFFSET_PAYLOAD: usize = 5; @@ -96,9 +96,9 @@ pub(crate) fn decode_v7_payload(blob: &[u8]) -> Result<(Vec, B256, B256 #[cfg(test)] mod tests { use super::*; - use crate::{BlockContext, decoding::test_utils::read_to_bytes}; + use crate::{decoding::test_utils::read_to_bytes, BlockContext}; - use alloy_primitives::{U256, bytes}; + use alloy_primitives::{bytes, U256}; #[test] fn test_should_decode_v7_uncompressed() -> eyre::Result<()> { From 024f48c278c413302410e9ef4e82d2c0458e169f Mon Sep 17 00:00:00 2001 From: frisitano Date: Mon, 24 Mar 2025 18:03:41 +0700 Subject: [PATCH 63/63] fix: re-add scroll-codec to riscV skip lint --- .github/workflows/lint.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index b97e38ee..fcef400a 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -130,7 +130,7 @@ jobs: exclude: scroll-engine,scroll-wire,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration,rollup-node-indexer,rollup-node - type: riscv target: riscv32imac-unknown-none-elf - exclude: scroll-engine,scroll-wire,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration,rollup-node-indexer,rollup-node + exclude: scroll-engine,scroll-wire,scroll-network,rollup-node-manager,rollup-node-watcher,scroll-db,scroll-migration,rollup-node-indexer,rollup-node,scroll-codec steps: - uses: actions/checkout@v4 - uses: rui314/setup-mold@v1