diff --git a/.github/actions/install-risc0/action.yml b/.github/actions/install-risc0/action.yml index 6548716642..2a93430015 100644 --- a/.github/actions/install-risc0/action.yml +++ b/.github/actions/install-risc0/action.yml @@ -14,7 +14,7 @@ runs: uses: ubicloud/cache@v4 with: path: ~/.risc0 - key: risc0-${{ runner.os }}-cargo-risczero-3.0.3-r0vm-3.0.3-rust-1.88.0 + key: risc0-${{ runner.os }}-cargo-risczero-3.0.3-r0vm-3.0.3-rust-1.91.1 - name: Install risc0 if: steps.cache-risc0.outputs.cache-hit != 'true' @@ -27,7 +27,7 @@ runs: rzup install cargo-risczero 3.0.3 rzup install cpp rzup install r0vm 3.0.3 - rzup install rust 1.88.0 + rzup install rust 1.91.1 - name: Add risc0 to PATH shell: bash @@ -38,4 +38,4 @@ runs: run: | rzup default cargo-risczero 3.0.3 rzup default r0vm 3.0.3 - rzup default rust 1.88.0 + rzup default rust 1.91.1 diff --git a/.github/workflows/build_and_push.yml b/.github/workflows/build_and_push.yml index 6b0956a911..2e246231d8 100644 --- a/.github/workflows/build_and_push.yml +++ b/.github/workflows/build_and_push.yml @@ -31,8 +31,8 @@ jobs: - name: Install Rust run: | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y - rustup install 1.88.0 - rustup default 1.88.0 + rustup install 1.91.1 + rustup default 1.91.1 rustup toolchain install 1.88-x86_64-unknown-linux-gnu - name: Install risc0 diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index ede02e3525..36eae8bc92 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -201,7 +201,7 @@ jobs: runs-on: ubicloud-standard-30 steps: - uses: actions/checkout@v5 - - uses: dtolnay/rust-toolchain@1.88.0 + - uses: dtolnay/rust-toolchain@1.91.1 with: components: llvm-tools-preview - name: Rust Cache @@ -380,7 +380,7 @@ jobs: - uses: actions/checkout@v5 - uses: rui314/setup-mold@v1 - name: Toolchain - uses: dtolnay/rust-toolchain@1.88.0 + uses: dtolnay/rust-toolchain@1.91.1 - name: Rust Cache uses: ubicloud/rust-cache@v2 - name: Setup env @@ -539,7 +539,7 @@ jobs: proving-stats: name: Proving stats - runs-on: ubicloud-standard-2 + runs-on: ubicloud-standard-4 needs: [build, docker-setup] if: github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'guest-code') steps: diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index 15d698e959..ad85075a2a 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -25,7 +25,7 @@ jobs: version: "23.2" repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Toolchain - uses: dtolnay/rust-toolchain@1.88.0 + uses: dtolnay/rust-toolchain@1.91.1 with: override: true components: rustfmt, clippy diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1a204ea91c..c7066ed2a2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,8 +20,8 @@ jobs: - name: Install Rust run: | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y - rustup install 1.88.0 - rustup default 1.88.0 + rustup install 1.91.1 + rustup default 1.91.1 - name: Build Project env: @@ -55,8 +55,8 @@ jobs: - name: Install Rust run: | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y - rustup install 1.88.0 - rustup default 1.88.0 + rustup install 1.91.1 + rustup default 1.91.1 - name: Build Project env: @@ -85,8 +85,8 @@ jobs: - name: Install Rust run: | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y - rustup install 1.88.0 - rustup default 1.88.0 + rustup install 1.91.1 + rustup default 1.91.1 - name: Build Project env: diff --git a/Cargo.lock b/Cargo.lock index b0bb1e4722..76e899a76a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -62,7 +62,7 @@ dependencies = [ "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy 0.7.35", + "zerocopy", ] [[package]] @@ -74,6 +74,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "aligned-vec" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc890384c8602f339876ded803c97ad529f3842aba97f6392b3dba0dd171769b" +dependencies = [ + "equator", +] + [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -97,106 +106,54 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239e728d663a3bdababa24dfdc697faec987593161c5ff54d72ee01df6721d59" -dependencies = [ - "alloy-consensus 0.13.0", - "alloy-core 0.8.23", - "alloy-eips 0.13.0", - "alloy-network 0.13.0", - "alloy-provider 0.13.0", - "alloy-rpc-client 0.13.0", - "alloy-rpc-types 0.13.0", - "alloy-serde 0.13.0", - "alloy-signer 0.13.0", - "alloy-signer-local 0.13.0", - "alloy-transport 0.13.0", - "alloy-transport-http 0.13.0", -] - -[[package]] -name = "alloy" -version = "1.0.9" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0093d23bf026b580c1f66ed3a053d8209c104a446c5264d3ad99587f6edef24e" +checksum = "4973038846323e4e69a433916522195dce2947770076c03078fc21c80ea0f1c4" dependencies = [ - "alloy-consensus 1.0.9", + "alloy-consensus", "alloy-contract", - "alloy-core 1.1.2", - "alloy-eips 1.0.9", - "alloy-network 1.0.9", + "alloy-core", + "alloy-eips", + "alloy-network", "alloy-node-bindings", - "alloy-provider 1.0.9", - "alloy-rpc-client 1.0.9", - "alloy-rpc-types 1.0.9", - "alloy-serde 1.0.9", - "alloy-signer 1.0.9", - "alloy-signer-local 1.0.9", - "alloy-transport 1.0.9", - "alloy-transport-http 1.0.9", + "alloy-provider", + "alloy-rpc-client", + "alloy-rpc-types", + "alloy-serde", + "alloy-signer", + "alloy-signer-local", + "alloy-transport", + "alloy-transport-http", + "alloy-trie", ] [[package]] name = "alloy-chains" -version = "0.1.69" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28e2652684758b0d9b389d248b209ed9fd9989ef489a550265fe4bb8454fe7eb" +checksum = "90f374d3c6d729268bbe2d0e0ff992bb97898b2df756691a62ee1d5f0506bc39" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "alloy-rlp", "num_enum", "serde", "strum", ] -[[package]] -name = "alloy-chains" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5848366a4f08dca1caca0a6151294a4799fe2e59ba25df100491d92e0b921b1c" -dependencies = [ - "alloy-primitives 1.3.1", - "num_enum", - "serde", - "strum", -] - -[[package]] -name = "alloy-consensus" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27d301f5bcfd37e3aac727c360d8b50c33ddff9169ce0370198dedda36a9927d" -dependencies = [ - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", - "alloy-rlp", - "alloy-serde 0.13.0", - "alloy-trie 0.7.9", - "auto_impl", - "c-kzg", - "derive_more 2.0.1", - "either", - "k256", - "once_cell", - "rand 0.8.5", - "serde", - "serde_with", - "thiserror 2.0.12", -] - [[package]] name = "alloy-consensus" -version = "1.0.9" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad451f9a70c341d951bca4e811d74dbe1e193897acd17e9dbac1353698cc430b" +checksum = "b0c0dc44157867da82c469c13186015b86abef209bf0e41625e4b68bac61d728" dependencies = [ - "alloy-eips 1.0.9", - "alloy-primitives 1.3.1", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-serde 1.0.9", - "alloy-trie 0.8.1", + "alloy-serde", + "alloy-trie", + "alloy-tx-macros", "auto_impl", + "borsh", "c-kzg", "derive_more 2.0.1", "either", @@ -205,91 +162,70 @@ dependencies = [ "rand 0.8.5", "secp256k1 0.30.0", "serde", + "serde_json", "serde_with", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-consensus-any" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f4f97a85a45965e0e4f9f5b94bbafaa3e4ee6868bdbcf2e4a9acb4b358038fe" -dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", - "alloy-rlp", - "alloy-serde 0.13.0", - "serde", + "thiserror 2.0.18", ] [[package]] name = "alloy-consensus-any" -version = "1.0.9" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "142daffb15d5be1a2b20d2cd540edbcef03037b55d4ff69dc06beb4d06286dba" +checksum = "ba4cdb42df3871cd6b346d6a938ec2ba69a9a0f49d1f82714bc5c48349268434" dependencies = [ - "alloy-consensus 1.0.9", - "alloy-eips 1.0.9", - "alloy-primitives 1.3.1", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-serde 1.0.9", + "alloy-serde", "serde", ] [[package]] name = "alloy-contract" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebf25443920ecb9728cb087fe4dc04a0b290bd6ac85638c58fe94aba70f1a44e" -dependencies = [ - "alloy-consensus 1.0.9", - "alloy-dyn-abi 1.1.2", - "alloy-json-abi 1.3.1", - "alloy-network 1.0.9", - "alloy-network-primitives 1.0.9", - "alloy-primitives 1.3.1", - "alloy-provider 1.0.9", - "alloy-rpc-types-eth 1.0.9", - "alloy-sol-types 1.3.1", - "alloy-transport 1.0.9", +version = "1.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca63b7125a981415898ffe2a2a696c83696c9c6bdb1671c8a912946bbd8e49e7" +dependencies = [ + "alloy-consensus", + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives 1.5.7", + "alloy-provider", + "alloy-rpc-types-eth", + "alloy-sol-types", + "alloy-transport", "futures", "futures-util", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-core" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca1380cc3c81b83d5234865779494970c83b5893b423c59cdd68c3cd1ed0b671" -dependencies = [ - "alloy-primitives 0.8.26", + "serde_json", + "thiserror 2.0.18", ] [[package]] name = "alloy-core" -version = "1.1.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3c5a28f166629752f2e7246b813cdea3243cca59aab2d4264b1fd68392c10eb" +checksum = "dcfbc46fa201350bf859add798d818bbe68b84882a8af832e4433791d28a975d" dependencies = [ - "alloy-dyn-abi 1.1.2", - "alloy-json-abi 1.3.1", - "alloy-primitives 1.3.1", - "alloy-sol-types 1.3.1", + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives 1.5.7", + "alloy-rlp", + "alloy-sol-types", ] [[package]] name = "alloy-dyn-abi" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf69d3061e2e908a4370bda5d8d6529d5080232776975489eec0b49ce971027e" +checksum = "cc2db5c583aaef0255aa63a4fe827f826090142528bba48d1bf4119b62780cad" dependencies = [ - "alloy-json-abi 0.8.26", - "alloy-primitives 0.8.26", - "alloy-sol-type-parser 0.8.26", - "alloy-sol-types 0.8.26", - "const-hex", + "alloy-json-abi", + "alloy-primitives 1.5.7", + "alloy-sol-type-parser", + "alloy-sol-types", "derive_more 2.0.1", "itoa", "serde", @@ -297,357 +233,231 @@ dependencies = [ "winnow", ] -[[package]] -name = "alloy-dyn-abi" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18cc14d832bc3331ca22a1c7819de1ede99f58f61a7d123952af7dde8de124a6" -dependencies = [ - "alloy-json-abi 1.3.1", - "alloy-primitives 1.3.1", - "alloy-sol-type-parser 1.3.1", - "alloy-sol-types 1.3.1", - "itoa", - "serde", - "serde_json", - "winnow", -] - -[[package]] -name = "alloy-eip2124" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "675264c957689f0fd75f5993a73123c2cc3b5c235a38f5b9037fe6c826bfb2c0" -dependencies = [ - "alloy-primitives 0.8.26", - "alloy-rlp", - "crc", - "serde", - "thiserror 2.0.12", -] - [[package]] name = "alloy-eip2124" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.5.7", "alloy-rlp", "crc", "serde", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-eip2930" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" -dependencies = [ - "alloy-primitives 0.8.26", - "alloy-rlp", - "serde", + "thiserror 2.0.18", ] [[package]] name = "alloy-eip2930" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b82752a889170df67bbb36d42ca63c531eb16274f0d7299ae2a680facba17bd" +checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.5.7", "alloy-rlp", + "borsh", "serde", ] [[package]] name = "alloy-eip7702" -version = "0.5.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b15b13d38b366d01e818fe8e710d4d702ef7499eacd44926a06171dd9585d0c" +checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "alloy-rlp", + "borsh", "k256", "serde", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] -name = "alloy-eip7702" -version = "0.6.1" +name = "alloy-eip7928" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d4769c6ffddca380b0070d71c8b7f30bed375543fe76bb2f74ec0acf4b7cd16" +checksum = "d3231de68d5d6e75332b7489cfcc7f4dfabeba94d990a10e4b923af0e6623540" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.5.7", "alloy-rlp", + "borsh", "serde", - "thiserror 2.0.12", ] [[package]] name = "alloy-eips" -version = "0.13.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10b11c382ca8075128d1ae6822b60921cf484c911d9a5831797a01218f98125f" +checksum = "b9f7ef09f21bd1e9cb8a686f168cb4a206646804567f0889eadb8dcc4c9288c8" dependencies = [ - "alloy-eip2124 0.1.0", - "alloy-eip2930 0.1.0", - "alloy-eip7702 0.5.1", - "alloy-primitives 0.8.26", + "alloy-eip2124", + "alloy-eip2930", + "alloy-eip7702", + "alloy-eip7928", + "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-serde 0.13.0", + "alloy-serde", "auto_impl", + "borsh", "c-kzg", "derive_more 2.0.1", "either", "ethereum_ssz", "ethereum_ssz_derive", "serde", - "sha2 0.10.8", -] - -[[package]] -name = "alloy-eips" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3056872f6da48046913e76edb5ddced272861f6032f09461aea1a2497be5ae5d" -dependencies = [ - "alloy-eip2124 0.2.0", - "alloy-eip2930 0.2.1", - "alloy-eip7702 0.6.1", - "alloy-primitives 1.3.1", - "alloy-rlp", - "alloy-serde 1.0.9", - "auto_impl", - "c-kzg", - "derive_more 2.0.1", - "either", - "serde", - "sha2 0.10.8", + "serde_with", + "sha2 0.10.9", + "thiserror 2.0.18", ] [[package]] name = "alloy-evm" -version = "0.3.1" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e158fd08c4be4fafe8c9fb7cb661f3b9585038446df0cd20b3d99e71f4166748" +checksum = "d2ccfe6d724ceabd5518350cfb34f17dd3a6c3cc33579eee94d98101d3a511ff" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-hardforks 0.1.3", - "alloy-primitives 0.8.26", - "alloy-sol-types 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-hardforks 0.4.7", + "alloy-primitives 1.5.7", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", + "alloy-sol-types", "auto_impl", "derive_more 2.0.1", - "op-alloy-consensus", + "op-alloy", "op-revm", "revm", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "alloy-genesis" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd9e75c5dd40319ebbe807ebe9dfb10c24e4a70d9c7d638e62921d8dd093c8b" -dependencies = [ - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", - "alloy-serde 0.13.0", - "alloy-trie 0.7.9", - "serde", -] - -[[package]] -name = "alloy-genesis" -version = "1.0.9" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c98fb40f07997529235cc474de814cd7bd9de561e101716289095696c0e4639d" +checksum = "7c9cf3b99f46615fbf7dc1add0c96553abb7bf88fc9ec70dfbe7ad0b47ba7fe8" dependencies = [ - "alloy-eips 1.0.9", - "alloy-primitives 1.3.1", - "alloy-serde 1.0.9", - "alloy-trie 0.8.1", + "alloy-eips", + "alloy-primitives 1.5.7", + "alloy-serde", + "alloy-trie", + "borsh", "serde", + "serde_with", ] [[package]] name = "alloy-hardforks" -version = "0.1.3" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3a420b513e00937442db75c5c9c8287fd0615a1f60cc3335d7246c870440ed" +checksum = "b40cc82a2283e3ce6317bc1f0134ea50d20e8c1965393045ee952fb28a65ddbd" dependencies = [ - "alloy-chains 0.1.69", - "alloy-eip2124 0.1.0", - "alloy-primitives 0.8.26", + "alloy-chains", + "alloy-eip2124", + "alloy-primitives 1.5.7", "auto_impl", "dyn-clone", - "serde", ] [[package]] name = "alloy-hardforks" -version = "0.2.2" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b40cc82a2283e3ce6317bc1f0134ea50d20e8c1965393045ee952fb28a65ddbd" +checksum = "83ba208044232d14d4adbfa77e57d6329f51bc1acc21f5667bb7db72d88a0831" dependencies = [ - "alloy-chains 0.2.1", - "alloy-eip2124 0.2.0", - "alloy-primitives 1.3.1", + "alloy-chains", + "alloy-eip2124", + "alloy-primitives 1.5.7", "auto_impl", "dyn-clone", -] - -[[package]] -name = "alloy-json-abi" -version = "0.8.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4584e3641181ff073e9d5bec5b3b8f78f9749d9fb108a1cfbc4399a4a139c72a" -dependencies = [ - "alloy-primitives 0.8.26", - "alloy-sol-type-parser 0.8.26", "serde", - "serde_json", ] [[package]] name = "alloy-json-abi" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125a1c373261b252e53e04d6e92c37d881833afc1315fceab53fd46045695640" -dependencies = [ - "alloy-primitives 1.3.1", - "alloy-sol-type-parser 1.3.1", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-json-rpc" -version = "0.13.0" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbcf26d02a72e23d5bc245425ea403c93ba17d254f20f9c23556a249c6c7e143" +checksum = "e9dbe713da0c737d9e5e387b0ba790eb98b14dd207fe53eef50e19a5a8ec3dac" dependencies = [ - "alloy-primitives 0.8.26", - "alloy-sol-types 0.8.26", + "alloy-primitives 1.5.7", + "alloy-sol-type-parser", "serde", "serde_json", - "thiserror 2.0.12", - "tracing", ] [[package]] name = "alloy-json-rpc" -version = "1.0.9" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc08b31ebf9273839bd9a01f9333cbb7a3abb4e820c312ade349dd18bdc79581" +checksum = "ff42cd777eea61f370c0b10f2648a1c81e0b783066cd7269228aa993afd487f7" dependencies = [ - "alloy-primitives 1.3.1", - "alloy-sol-types 1.3.1", + "alloy-primitives 1.5.7", + "alloy-sol-types", + "http 1.2.0", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", ] [[package]] name = "alloy-network" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b44dd4429e190f727358571175ebf323db360a303bf4e1731213f510ced1c2e6" -dependencies = [ - "alloy-consensus 0.13.0", - "alloy-consensus-any 0.13.0", - "alloy-eips 0.13.0", - "alloy-json-rpc 0.13.0", - "alloy-network-primitives 0.13.0", - "alloy-primitives 0.8.26", - "alloy-rpc-types-any 0.13.0", - "alloy-rpc-types-eth 0.13.0", - "alloy-serde 0.13.0", - "alloy-signer 0.13.0", - "alloy-sol-types 0.8.26", - "async-trait", - "auto_impl", - "derive_more 2.0.1", - "futures-utils-wasm", - "serde", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-network" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed117b08f0cc190312bf0c38c34cf4f0dabfb4ea8f330071c587cd7160a88cb2" -dependencies = [ - "alloy-consensus 1.0.9", - "alloy-consensus-any 1.0.9", - "alloy-eips 1.0.9", - "alloy-json-rpc 1.0.9", - "alloy-network-primitives 1.0.9", - "alloy-primitives 1.3.1", - "alloy-rpc-types-any 1.0.9", - "alloy-rpc-types-eth 1.0.9", - "alloy-serde 1.0.9", - "alloy-signer 1.0.9", - "alloy-sol-types 1.3.1", +version = "1.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cbca04f9b410fdc51aaaf88433cbac761213905a65fe832058bcf6690585762" +dependencies = [ + "alloy-consensus", + "alloy-consensus-any", + "alloy-eips", + "alloy-json-rpc", + "alloy-network-primitives", + "alloy-primitives 1.5.7", + "alloy-rpc-types-any", + "alloy-rpc-types-eth", + "alloy-serde", + "alloy-signer", + "alloy-sol-types", "async-trait", "auto_impl", "derive_more 2.0.1", "futures-utils-wasm", "serde", "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-network-primitives" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f736e1d1eb1b770dbd32919bdf46d4dcd4617f2eed07947dfb32649962baba" -dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", - "alloy-serde 0.13.0", - "serde", + "thiserror 2.0.18", ] [[package]] name = "alloy-network-primitives" -version = "1.0.9" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7162ff7be8649c0c391f4e248d1273e85c62076703a1f3ec7daf76b283d886d" +checksum = "42d6d15e069a8b11f56bef2eccbad2a873c6dd4d4c81d04dda29710f5ea52f04" dependencies = [ - "alloy-consensus 1.0.9", - "alloy-eips 1.0.9", - "alloy-primitives 1.3.1", - "alloy-serde 1.0.9", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", + "alloy-serde", "serde", ] [[package]] name = "alloy-node-bindings" -version = "1.0.9" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eec6d2e7743d2bcb3e7dfc9cb7a7322bc0f808fddd48f4aab5d974260f2ae0cf" +checksum = "091dc8117d84de3a9ac7ec97f2c4d83987e24d485b478d26aa1ec455d7d52f7d" dependencies = [ - "alloy-genesis 1.0.9", + "alloy-genesis", "alloy-hardforks 0.2.2", - "alloy-network 1.0.9", - "alloy-primitives 1.3.1", - "alloy-signer 1.0.9", - "alloy-signer-local 1.0.9", + "alloy-network", + "alloy-primitives 1.5.7", + "alloy-signer", + "alloy-signer-local", "k256", + "libc", "rand 0.8.5", "serde_json", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", "url", ] @@ -658,48 +468,42 @@ version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "777d58b30eb9a4db0e5f59bc30e8c2caef877fee7dc8734cf242a51a60f22e05" dependencies = [ - "alloy-rlp", "bytes", "cfg-if", "const-hex", "derive_more 2.0.1", - "foldhash", - "getrandom 0.3.2", "hashbrown 0.15.2", - "indexmap 2.7.1", + "indexmap 2.13.0", "itoa", - "k256", - "keccak-asm", "paste", - "proptest", "rand 0.8.5", "ruint", - "rustc-hash 2.1.1", "serde", - "sha3", "tiny-keccak", ] [[package]] name = "alloy-primitives" -version = "1.3.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9485c56de23438127a731a6b4c87803d49faf1a7068dcd1d8768aca3a9edb9" +checksum = "de3b431b4e72cd8bd0ec7a50b4be18e73dab74de0dba180eef171055e5d5926e" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", "derive_more 2.0.1", - "foldhash", - "hashbrown 0.15.2", - "indexmap 2.7.1", + "foldhash 0.2.0", + "getrandom 0.4.1", + "hashbrown 0.16.1", + "indexmap 2.13.0", "itoa", "k256", "keccak-asm", "paste", "proptest", - "rand 0.9.0", + "rand 0.9.2", + "rapidhash", "ruint", "rustc-hash 2.1.1", "serde", @@ -709,63 +513,25 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a557f9e3ec89437b06db3bfc97d20782b1f7cc55b5b602b6a82bf3f64d7efb0e" -dependencies = [ - "alloy-chains 0.1.69", - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-json-rpc 0.13.0", - "alloy-network 0.13.0", - "alloy-network-primitives 0.13.0", - "alloy-primitives 0.8.26", - "alloy-rpc-client 0.13.0", - "alloy-rpc-types-eth 0.13.0", - "alloy-signer 0.13.0", - "alloy-sol-types 0.8.26", - "alloy-transport 0.13.0", - "alloy-transport-http 0.13.0", - "async-stream", - "async-trait", - "auto_impl", - "dashmap", - "either", - "futures", - "futures-utils-wasm", - "lru 0.13.0", - "parking_lot", - "pin-project", - "serde", - "serde_json", - "thiserror 2.0.12", - "tokio", - "tracing", - "url", - "wasmtimer", -] - -[[package]] -name = "alloy-provider" -version = "1.0.9" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d84eba1fd8b6fe8b02f2acd5dd7033d0f179e304bd722d11e817db570d1fa6c4" +checksum = "d181c8cc7cf4805d7e589bf4074d56d55064fa1a979f005a45a62b047616d870" dependencies = [ - "alloy-chains 0.2.1", - "alloy-consensus 1.0.9", - "alloy-eips 1.0.9", - "alloy-json-rpc 1.0.9", - "alloy-network 1.0.9", - "alloy-network-primitives 1.0.9", + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-network-primitives", "alloy-node-bindings", - "alloy-primitives 1.3.1", - "alloy-rpc-client 1.0.9", - "alloy-rpc-types-anvil 1.0.9", - "alloy-rpc-types-eth 1.0.9", - "alloy-signer 1.0.9", - "alloy-sol-types 1.3.1", - "alloy-transport 1.0.9", - "alloy-transport-http 1.0.9", + "alloy-primitives 1.5.7", + "alloy-rpc-client", + "alloy-rpc-types-anvil", + "alloy-rpc-types-eth", + "alloy-signer", + "alloy-sol-types", + "alloy-transport", + "alloy-transport-http", "async-stream", "async-trait", "auto_impl", @@ -773,13 +539,13 @@ dependencies = [ "either", "futures", "futures-utils-wasm", - "lru 0.13.0", + "lru 0.16.3", "parking_lot", "pin-project", - "reqwest", + "reqwest 0.12.15", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", "url", @@ -788,9 +554,9 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6c1d995bff8d011f7cd6c81820d51825e6e06d6db73914c1630ecf544d83d6" +checksum = "e93e50f64a77ad9c5470bf2ad0ca02f228da70c792a8f06634801e202579f35e" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -799,190 +565,132 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a40e1ef334153322fd878d07e86af7a529bcb86b2439525920a88eba87bcf943" +checksum = "ce8849c74c9ca0f5a03da1c865e3eb6f768df816e67dd3721a398a8a7e398011" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", -] - -[[package]] -name = "alloy-rpc-client" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec6dc89c4c3ef166f9fa436d1831f8142c16cf2e637647c936a6aaaabd8d898" -dependencies = [ - "alloy-json-rpc 0.13.0", - "alloy-primitives 0.8.26", - "alloy-transport 0.13.0", - "alloy-transport-http 0.13.0", - "async-stream", - "futures", - "pin-project", - "serde", - "serde_json", - "tokio", - "tokio-stream", - "tower 0.5.2", - "tracing", - "tracing-futures", - "url", - "wasmtimer", + "syn 2.0.114", ] [[package]] name = "alloy-rpc-client" -version = "1.0.9" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518a699422a3eab800f3dac2130d8f2edba8e4fff267b27a9c7dc6a2b0d313ee" +checksum = "f2792758a93ae32a32e9047c843d536e1448044f78422d71bf7d7c05149e103f" dependencies = [ - "alloy-json-rpc 1.0.9", - "alloy-primitives 1.3.1", - "alloy-transport 1.0.9", - "alloy-transport-http 1.0.9", - "async-stream", + "alloy-json-rpc", + "alloy-primitives 1.5.7", + "alloy-transport", + "alloy-transport-http", "futures", "pin-project", - "reqwest", + "reqwest 0.12.15", "serde", "serde_json", "tokio", "tokio-stream", "tower 0.5.2", "tracing", - "tracing-futures", "url", "wasmtimer", ] [[package]] name = "alloy-rpc-types" -version = "0.13.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3849f8131a18cc5d7f95f301d68a6af5aa2db28ad8522fb9db1f27b3794e8b68" +checksum = "7bdcbf9dfd5eea8bfeb078b1d906da8cd3a39c4d4dbe7a628025648e323611f6" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "alloy-rpc-types-engine", - "alloy-rpc-types-eth 0.13.0", - "alloy-serde 0.13.0", - "serde", -] - -[[package]] -name = "alloy-rpc-types" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c000cab4ec26a4b3e29d144e999e1c539c2fa0abed871bf90311eb3466187ca8" -dependencies = [ - "alloy-primitives 1.3.1", - "alloy-rpc-types-eth 1.0.9", - "alloy-serde 1.0.9", + "alloy-rpc-types-eth", + "alloy-serde", "serde", ] [[package]] name = "alloy-rpc-types-admin" -version = "0.13.0" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d13e905b0348666e10119d39b1ffb7ab4e000b4f4e5ffed920b57f8745b2440" +checksum = "564afceae126df73b95f78c81eb46e2ef689a45ace0fcdaf5c9a178693a5ccca" dependencies = [ - "alloy-genesis 0.13.0", - "alloy-primitives 0.8.26", + "alloy-genesis", + "alloy-primitives 1.5.7", "serde", "serde_json", ] [[package]] name = "alloy-rpc-types-anvil" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19051fd5e8de7e1f95ec228c9303debd776dcc7caf8d1ece3191f711f5c06541" -dependencies = [ - "alloy-primitives 0.8.26", - "alloy-rpc-types-eth 0.13.0", - "alloy-serde 0.13.0", - "serde", -] - -[[package]] -name = "alloy-rpc-types-anvil" -version = "1.0.9" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8abecc34549a208b5f91bc7f02df3205c36e2aa6586f1d9375c3382da1066b3b" +checksum = "e0a3100b76987c1b1dc81f3abe592b7edc29e92b1242067a69d65e0030b35cf9" dependencies = [ - "alloy-primitives 1.3.1", - "alloy-rpc-types-eth 1.0.9", - "alloy-serde 1.0.9", + "alloy-primitives 1.5.7", + "alloy-rpc-types-eth", + "alloy-serde", "serde", ] [[package]] name = "alloy-rpc-types-any" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd6d480e4e6e456f30eeeb3aef1512aaecb68df2a35d1f78865dbc4d20dc0fd" -dependencies = [ - "alloy-consensus-any 0.13.0", - "alloy-rpc-types-eth 0.13.0", - "alloy-serde 0.13.0", -] - -[[package]] -name = "alloy-rpc-types-any" -version = "1.0.9" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "508b2fbe66d952089aa694e53802327798806498cd29ff88c75135770ecaabfc" +checksum = "dd720b63f82b457610f2eaaf1f32edf44efffe03ae25d537632e7d23e7929e1a" dependencies = [ - "alloy-consensus-any 1.0.9", - "alloy-rpc-types-eth 1.0.9", - "alloy-serde 1.0.9", + "alloy-consensus-any", + "alloy-rpc-types-eth", + "alloy-serde", ] [[package]] name = "alloy-rpc-types-beacon" -version = "0.13.0" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b821fd7c93738d5ec972d4d329eb05c896721f467556fbae171294ddd9ac829" +checksum = "625af0c3ebd3c31322edb1fb6b8e3e518acc39e164ed07e422eaff05310ff2fa" dependencies = [ - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rpc-types-engine", + "derive_more 2.0.1", "ethereum_ssz", "ethereum_ssz_derive", "serde", + "serde_json", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.18", "tree_hash", "tree_hash_derive", ] [[package]] name = "alloy-rpc-types-debug" -version = "0.13.0" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "805eb9fa07f92f1225253e842b5454b4b3e258813445c1a1c9d8dd0fd90817c1" +checksum = "779f70ab16a77e305571881b07a9bc6b0068ae6f962497baf5762825c5b839fb" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", + "derive_more 2.0.1", "serde", + "serde_with", ] [[package]] name = "alloy-rpc-types-engine" -version = "0.13.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "689521777149dabe210ef122605fb00050e038f2e85b8c9897534739f1a904f8" +checksum = "e4ac61f03f1edabccde1c687b5b25fff28f183afee64eaa2e767def3929e4457" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-serde 0.13.0", + "alloy-serde", "derive_more 2.0.1", "ethereum_ssz", "ethereum_ssz_derive", - "jsonrpsee-types", "jsonwebtoken", "rand 0.8.5", "serde", @@ -991,260 +699,151 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8b6d55bdaa0c4a08650d4b32f174494cbade56adf6f2fcfa2a4f3490cb5511" -dependencies = [ - "alloy-consensus 0.13.0", - "alloy-consensus-any 0.13.0", - "alloy-eips 0.13.0", - "alloy-network-primitives 0.13.0", - "alloy-primitives 0.8.26", - "alloy-rlp", - "alloy-serde 0.13.0", - "alloy-sol-types 0.8.26", - "itertools 0.14.0", - "jsonrpsee-types", - "serde", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-rpc-types-eth" -version = "1.0.9" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcaf7dff0fdd756a714d58014f4f8354a1706ebf9fa2cf73431e0aeec3c9431e" +checksum = "9b2dc411f13092f237d2bf6918caf80977fc2f51485f9b90cb2a2f956912c8c9" dependencies = [ - "alloy-consensus 1.0.9", - "alloy-consensus-any 1.0.9", - "alloy-eips 1.0.9", - "alloy-network-primitives 1.0.9", - "alloy-primitives 1.3.1", + "alloy-consensus", + "alloy-consensus-any", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-serde 1.0.9", - "alloy-sol-types 1.3.1", + "alloy-serde", + "alloy-sol-types", "itertools 0.14.0", "serde", "serde_json", - "thiserror 2.0.12", + "serde_with", + "thiserror 2.0.18", ] [[package]] name = "alloy-rpc-types-mev" -version = "0.13.0" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d1e3fbbf9b2eb2509546b4e47f67ee8a3b246ef3f7eb678bcb97d399c755b4" +checksum = "375e4bf001135fe4f344db6197fafed8c2b61e99fa14d3597f44cd413f79e45b" dependencies = [ - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", - "alloy-rpc-types-eth 0.13.0", - "alloy-serde 0.13.0", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", + "alloy-rpc-types-eth", + "alloy-serde", "serde", "serde_json", ] [[package]] name = "alloy-rpc-types-trace" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6019cd6a89230d765a621a7b1bc8af46a6a9cde2d2e540e6f9ce930e0fb7c6db" -dependencies = [ - "alloy-primitives 0.8.26", - "alloy-rpc-types-eth 0.13.0", - "alloy-serde 0.13.0", - "serde", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-rpc-types-txpool" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee36e5404642696af511f09991f9f54a11b90e86e55efad868f8f56350eff5b0" -dependencies = [ - "alloy-primitives 0.8.26", - "alloy-rpc-types-eth 0.13.0", - "alloy-serde 0.13.0", - "serde", -] - -[[package]] -name = "alloy-serde" -version = "0.13.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1824791912f468a481dedc1db50feef3e85a078f6d743a62db2ee9c2ca674882" +checksum = "1ad79f1e27e161943b5a4f99fe5534ef0849876214be411e0032c12f38e94daa" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", + "alloy-rpc-types-eth", + "alloy-serde", "serde", "serde_json", + "thiserror 2.0.18", ] [[package]] -name = "alloy-serde" -version = "1.0.9" +name = "alloy-rpc-types-txpool" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730e8f2edf2fc224cabd1c25d090e1655fa6137b2e409f92e5eec735903f1507" +checksum = "d459f902a2313737bc66d18ed094c25d2aeb268b74d98c26bbbda2aa44182ab0" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.5.7", + "alloy-rpc-types-eth", + "alloy-serde", "serde", - "serde_json", ] [[package]] -name = "alloy-signer" -version = "0.13.0" +name = "alloy-serde" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d087fe5aea96a93fbe71be8aaed5c57c3caac303c09e674bc5b1647990d648b" +checksum = "e2ce1e0dbf7720eee747700e300c99aac01b1a95bb93f493a01e78ee28bb1a37" dependencies = [ - "alloy-primitives 0.8.26", - "async-trait", - "auto_impl", - "either", - "elliptic-curve 0.13.8", - "k256", - "thiserror 2.0.12", + "alloy-primitives 1.5.7", + "serde", + "serde_json", ] [[package]] name = "alloy-signer" -version = "1.0.9" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b0d2428445ec13edc711909e023d7779618504c4800be055a5b940025dbafe3" +checksum = "2425c6f314522c78e8198979c8cbf6769362be4da381d4152ea8eefce383535d" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.5.7", "async-trait", "auto_impl", "either", - "elliptic-curve 0.13.8", - "k256", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-signer-local" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2940353d2425bb75965cd5101075334e6271051e35610f903bf8099a52b0b1a9" -dependencies = [ - "alloy-consensus 0.13.0", - "alloy-network 0.13.0", - "alloy-primitives 0.8.26", - "alloy-signer 0.13.0", - "async-trait", + "elliptic-curve", "k256", - "rand 0.8.5", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "alloy-signer-local" -version = "1.0.9" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14fe6fedb7fe6e0dfae47fe020684f1d8e063274ef14bca387ddb7a6efa8ec1" +checksum = "c3ecb71ee53d8d9c3fa7bac17542c8116ebc7a9726c91b1bf333ec3d04f5a789" dependencies = [ - "alloy-consensus 1.0.9", - "alloy-network 1.0.9", - "alloy-primitives 1.3.1", - "alloy-signer 1.0.9", + "alloy-consensus", + "alloy-network", + "alloy-primitives 1.5.7", + "alloy-signer", "async-trait", + "coins-bip32", + "coins-bip39", "k256", "rand 0.8.5", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-sol-macro" -version = "0.8.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e68b32b6fa0d09bb74b4cefe35ccc8269d711c26629bc7cd98a47eeb12fe353f" -dependencies = [ - "alloy-sol-macro-expander 0.8.26", - "alloy-sol-macro-input 0.8.26", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.98", + "thiserror 2.0.18", + "zeroize", ] [[package]] name = "alloy-sol-macro" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d20d867dcf42019d4779519a1ceb55eba8d7f3d0e4f0a89bcba82b8f9eb01e48" -dependencies = [ - "alloy-sol-macro-expander 1.3.1", - "alloy-sol-macro-input 1.3.1", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.98", -] - -[[package]] -name = "alloy-sol-macro-expander" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2afe6879ac373e58fd53581636f2cce843998ae0b058ebe1e4f649195e2bd23c" +checksum = "ab81bab693da9bb79f7a95b64b394718259fdd7e41dceeced4cad57cb71c4f6a" dependencies = [ - "alloy-json-abi 0.8.26", - "alloy-sol-macro-input 0.8.26", - "const-hex", - "heck", - "indexmap 2.7.1", + "alloy-sol-macro-expander", + "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.98", - "syn-solidity 0.8.26", - "tiny-keccak", + "syn 2.0.114", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.3.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" +checksum = "489f1620bb7e2483fb5819ed01ab6edc1d2f93939dce35a5695085a1afd1d699" dependencies = [ - "alloy-json-abi 1.3.1", - "alloy-sol-macro-input 1.3.1", + "alloy-json-abi", + "alloy-sol-macro-input", "const-hex", "heck", - "indexmap 2.7.1", + "indexmap 2.13.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.98", - "syn-solidity 1.3.1", - "tiny-keccak", -] - -[[package]] -name = "alloy-sol-macro-input" -version = "0.8.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ba01aee235a8c699d07e5be97ba215607564e71be72f433665329bec307d28" -dependencies = [ - "alloy-json-abi 0.8.26", - "const-hex", - "dunce", - "heck", - "macro-string", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.98", - "syn-solidity 0.8.26", + "sha3", + "syn 2.0.114", + "syn-solidity", ] [[package]] name = "alloy-sol-macro-input" -version = "1.3.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" +checksum = "56cef806ad22d4392c5fc83cf8f2089f988eb99c7067b4e0c6f1971fc1cca318" dependencies = [ - "alloy-json-abi 1.3.1", + "alloy-json-abi", "const-hex", "dunce", "heck", @@ -1252,25 +851,15 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.98", - "syn-solidity 1.3.1", -] - -[[package]] -name = "alloy-sol-type-parser" -version = "0.8.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c13fc168b97411e04465f03e632f31ef94cad1c7c8951bf799237fd7870d535" -dependencies = [ - "serde", - "winnow", + "syn 2.0.114", + "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "1.3.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" +checksum = "a6df77fea9d6a2a75c0ef8d2acbdfd92286cc599983d3175ccdc170d3433d249" dependencies = [ "serde", "winnow", @@ -1278,59 +867,24 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e960c4b52508ef2ae1e37cae5058e905e9ae099b107900067a503f8c454036f" -dependencies = [ - "alloy-json-abi 0.8.26", - "alloy-primitives 0.8.26", - "alloy-sol-macro 0.8.26", - "const-hex", - "serde", -] - -[[package]] -name = "alloy-sol-types" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5383d34ea00079e6dd89c652bcbdb764db160cef84e6250926961a0b2295d04" -dependencies = [ - "alloy-json-abi 1.3.1", - "alloy-primitives 1.3.1", - "alloy-sol-macro 1.3.1", - "serde", -] - -[[package]] -name = "alloy-transport" -version = "0.13.0" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6818b4c82a474cc01ac9e88ccfcd9f9b7bc893b2f8aea7e890a28dcd55c0a7aa" +checksum = "64612d29379782a5dde6f4b6570d9c756d734d760c0c94c254d361e678a6591f" dependencies = [ - "alloy-json-rpc 0.13.0", - "base64 0.22.1", - "derive_more 2.0.1", - "futures", - "futures-utils-wasm", - "parking_lot", + "alloy-json-abi", + "alloy-primitives 1.5.7", + "alloy-sol-macro", "serde", - "serde_json", - "thiserror 2.0.12", - "tokio", - "tower 0.5.2", - "tracing", - "url", - "wasmtimer", ] [[package]] name = "alloy-transport" -version = "1.0.9" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a712bdfeff42401a7dd9518f72f617574c36226a9b5414537fedc34350b73bf9" +checksum = "fa186e560d523d196580c48bf00f1bf62e63041f28ecf276acc22f8b27bb9f53" dependencies = [ - "alloy-json-rpc 1.0.9", - "alloy-primitives 1.3.1", + "alloy-json-rpc", + "auto_impl", "base64 0.22.1", "derive_more 2.0.1", "futures", @@ -1338,7 +892,7 @@ dependencies = [ "parking_lot", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tower 0.5.2", "tracing", @@ -1348,30 +902,18 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.13.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cc3079a33483afa1b1365a3add3ea3e21c75b10f704870198ba7846627d10f2" +checksum = "aa501ad58dd20acddbfebc65b52e60f05ebf97c52fa40d1b35e91f5e2da0ad0e" dependencies = [ - "alloy-json-rpc 0.13.0", - "alloy-transport 0.13.0", + "alloy-json-rpc", + "alloy-transport", "http-body-util", - "hyper 1.6.0", + "hyper", + "hyper-tls", "hyper-util", - "serde_json", - "tower 0.5.2", - "tracing", - "url", -] - -[[package]] -name = "alloy-transport-http" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ea5a76d7f2572174a382aedf36875bedf60bcc41116c9f031cf08040703a2dc" -dependencies = [ - "alloy-json-rpc 1.0.9", - "alloy-transport 1.0.9", - "reqwest", + "itertools 0.14.0", + "reqwest 0.12.15", "serde_json", "tower 0.5.2", "tracing", @@ -1380,34 +922,31 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.7.9" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a94854e420f07e962f7807485856cde359ab99ab6413883e15235ad996e8b" +checksum = "4d7fd448ab0a017de542de1dcca7a58e7019fe0e7a34ed3f9543ebddf6aceffa" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "alloy-rlp", "arrayvec", - "derive_more 1.0.0", + "derive_more 2.0.1", "nybbles", "serde", "smallvec", + "thiserror 2.0.18", "tracing", ] [[package]] -name = "alloy-trie" -version = "0.8.1" +name = "alloy-tx-macros" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "983d99aa81f586cef9dae38443245e585840fcf0fc58b09aee0b1f27aed1d500" +checksum = "6fa0c53e8c1e1ef4d01066b01c737fb62fc9397ab52c6e7bb5669f97d281b9bc" dependencies = [ - "alloy-primitives 1.3.1", - "alloy-rlp", - "arrayvec", - "derive_more 2.0.1", - "nybbles", - "serde", - "smallvec", - "tracing", + "darling 0.21.3", + "proc-macro2", + "quote", + "syn 2.0.114", ] [[package]] @@ -1483,9 +1022,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.96" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4" +checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" [[package]] name = "aquamarine" @@ -1498,7 +1037,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -1544,7 +1083,7 @@ dependencies = [ "digest 0.10.7", "fnv", "merlin", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] @@ -1555,7 +1094,7 @@ checksum = "e7e89fe77d1f0f4fe5b96dfc940923d88d17b6a773808124f21e764dfb063c6a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -1664,7 +1203,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -1702,7 +1241,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -1806,7 +1345,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -1872,15 +1411,6 @@ dependencies = [ "serde", ] -[[package]] -name = "ascii-canvas" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" -dependencies = [ - "term", -] - [[package]] name = "asn1_der" version = "0.7.6" @@ -1888,190 +1418,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] -name = "assert-json-diff" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12" -dependencies = [ - "serde", - "serde_json", -] - -[[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-executor" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "pin-project-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", -] - -[[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-object-pool" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "333c456b97c3f2d50604e8b2624253b7f787208cb72eb75e64b0ad11b221652c" -dependencies = [ - "async-std", -] - -[[package]] -name = "async-process" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" -dependencies = [ - "async-channel 2.3.1", - "async-io", - "async-lock", - "async-signal", - "async-task", - "blocking", - "cfg-if", - "event-listener 5.4.0", - "futures-lite", - "rustix 0.38.44", - "tracing", -] - -[[package]] -name = "async-recursion" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.98", -] - -[[package]] -name = "async-signal" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" -dependencies = [ - "async-io", - "async-lock", - "atomic-waker", - "cfg-if", - "futures-core", - "futures-io", - "rustix 0.38.44", - "signal-hook-registry", - "slab", - "windows-sys 0.59.0", +name = "async-lock" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +dependencies = [ + "event-listener", + "event-listener-strategy", + "pin-project-lite", ] [[package]] -name = "async-std" -version = "1.13.1" +name = "async-recursion" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730294c1c08c2e0f85759590518f6333f0d5a0a766a27d519c1b244c3dfd8a24" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ - "async-attributes", - "async-channel 1.9.0", - "async-global-executor", - "async-io", - "async-lock", - "async-process", - "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", + "proc-macro2", + "quote", + "syn 2.0.114", ] [[package]] @@ -2093,24 +1458,18 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] -[[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.86" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -2131,13 +1490,13 @@ dependencies = [ [[package]] name = "auto_impl" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12882f59de5360c748c4cbf569a042d5fb0eb515f7bea9c1f470b47f6ffbd73" +checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -2146,11 +1505,36 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +[[package]] +name = "aws-config" +version = "1.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c478f5b10ce55c9a33f87ca3404ca92768b144fc1bfdede7c0121214a8283a25" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-sdk-sts", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "fastrand", + "http 1.2.0", + "time", + "tokio", + "tracing", + "url", +] + [[package]] name = "aws-credential-types" -version = "1.2.6" +version = "1.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d025db5d9f52cbc413b167136afb3d8aeea708c0d8884783cf6253be5e22f6f2" +checksum = "3cd362783681b15d136480ad555a099e82ecd8e2d10a841e14dfd0078d67fee3" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", @@ -2210,9 +1594,9 @@ dependencies = [ [[package]] name = "aws-sdk-s3" -version = "1.102.0" +version = "1.103.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ddb925e840f49446aa6338b67abdbec04b4ebf923b7da038ec4c35afb916cd" +checksum = "af040a86ae4378b7ed2f62c83b36be1848709bbbf5757ec850d0e08596a26be9" dependencies = [ "aws-credential-types", "aws-runtime", @@ -2237,16 +1621,39 @@ dependencies = [ "lru 0.12.5", "percent-encoding", "regex-lite", - "sha2 0.10.8", + "sha2 0.10.9", "tracing", "url", ] +[[package]] +name = "aws-sdk-sts" +version = "1.84.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91abcdbfb48c38a0419eb75e0eac772a4783a96750392680e4f3c25a8a0535b9" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-query", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "fastrand", + "http 0.2.12", + "regex-lite", + "tracing", +] + [[package]] name = "aws-sigv4" -version = "1.3.4" +version = "1.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "084c34162187d39e3740cb635acd73c4e3a551a36146ad6fe8883c929c9f876c" +checksum = "69e523e1c4e8e7e8ff219d732988e22bfeae8a1cafdbe6d9eca1546fa080be7c" dependencies = [ "aws-credential-types", "aws-smithy-eventstream", @@ -2254,27 +1661,22 @@ dependencies = [ "aws-smithy-runtime-api", "aws-smithy-types", "bytes", - "crypto-bigint 0.5.5", "form_urlencoded", "hex", "hmac 0.12.1", "http 0.2.12", "http 1.2.0", - "p256 0.11.1", "percent-encoding", - "ring", - "sha2 0.10.8", - "subtle", + "sha2 0.10.9", "time", "tracing", - "zeroize", ] [[package]] name = "aws-smithy-async" -version = "1.2.5" +version = "1.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e190749ea56f8c42bf15dd76c65e14f8f765233e6df9b0506d9d934ebef867c" +checksum = "9ee19095c7c4dda59f1697d028ce704c24b2d33c6718790c7f1d5a3015b4107c" dependencies = [ "futures-util", "pin-project-lite", @@ -2283,9 +1685,9 @@ dependencies = [ [[package]] name = "aws-smithy-checksums" -version = "0.63.6" +version = "0.63.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9054b4cc5eda331cde3096b1576dec45365c5cbbca61d1fffa5f236e251dfce7" +checksum = "87294a084b43d649d967efe58aa1f9e0adc260e13a6938eb904c0ae9b45824ae" dependencies = [ "aws-smithy-http", "aws-smithy-types", @@ -2297,15 +1699,15 @@ dependencies = [ "md-5", "pin-project-lite", "sha1", - "sha2 0.10.8", + "sha2 0.10.9", "tracing", ] [[package]] name = "aws-smithy-eventstream" -version = "0.60.11" +version = "0.60.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "182b03393e8c677347fb5705a04a9392695d47d20ef0a2f8cfe28c8e6b9b9778" +checksum = "dc12f8b310e38cad85cf3bef45ad236f470717393c613266ce0a89512286b650" dependencies = [ "aws-smithy-types", "bytes", @@ -2314,9 +1716,9 @@ dependencies = [ [[package]] name = "aws-smithy-http" -version = "0.62.3" +version = "0.62.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c4dacf2d38996cf729f55e7a762b30918229917eca115de45dfa8dfb97796c9" +checksum = "826141069295752372f8203c17f28e30c464d22899a43a0c9fd9c458d469c88b" dependencies = [ "aws-smithy-eventstream", "aws-smithy-runtime-api", @@ -2324,6 +1726,7 @@ dependencies = [ "bytes", "bytes-utils", "futures-core", + "futures-util", "http 0.2.12", "http 1.2.0", "http-body 0.4.6", @@ -2342,20 +1745,14 @@ dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", "aws-smithy-types", - "h2 0.3.26", - "h2 0.4.8", - "http 0.2.12", + "h2", "http 1.2.0", - "http-body 0.4.6", - "hyper 0.14.32", - "hyper 1.6.0", - "hyper-rustls 0.24.2", - "hyper-rustls 0.27.5", + "hyper", + "hyper-rustls", "hyper-util", "pin-project-lite", - "rustls 0.21.12", - "rustls 0.23.25", - "rustls-native-certs 0.8.1", + "rustls", + "rustls-native-certs", "rustls-pki-types", "tokio", "tower 0.5.2", @@ -2364,22 +1761,32 @@ dependencies = [ [[package]] name = "aws-smithy-json" -version = "0.61.5" +version = "0.61.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaa31b350998e703e9826b2104dd6f63be0508666e1aba88137af060e8944047" +checksum = "49fa1213db31ac95288d981476f78d05d9cbb0353d22cdf3472cc05bb02f6551" dependencies = [ "aws-smithy-types", ] [[package]] name = "aws-smithy-observability" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9364d5989ac4dd918e5cc4c4bdcc61c9be17dcd2586ea7f69e348fc7c6cab393" +checksum = "17f616c3f2260612fe44cede278bafa18e73e6479c4e393e2c4518cf2a9a228a" dependencies = [ "aws-smithy-runtime-api", ] +[[package]] +name = "aws-smithy-query" +version = "0.60.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae5d689cf437eae90460e944a58b5668530d433b4ff85789e69d2f2a556e057d" +dependencies = [ + "aws-smithy-types", + "urlencoding", +] + [[package]] name = "aws-smithy-runtime" version = "1.8.6" @@ -2406,9 +1813,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07f5e0fc8a6b3f2303f331b94504bbf754d85488f402d6f1dd7a6080f99afe56" +checksum = "efce7aaaf59ad53c5412f14fc19b2d5c6ab2c3ec688d272fd31f76ec12f44fb0" dependencies = [ "aws-smithy-async", "aws-smithy-types", @@ -2423,9 +1830,9 @@ dependencies = [ [[package]] name = "aws-smithy-types" -version = "1.3.2" +version = "1.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d498595448e43de7f4296b7b7a18a8a02c61ec9349128c80a368f7c3b4ab11a8" +checksum = "65f172bcb02424eb94425db8aed1b6d583b5104d4d5ddddf22402c661a320048" dependencies = [ "base64-simd", "bytes", @@ -2449,18 +1856,18 @@ dependencies = [ [[package]] name = "aws-smithy-xml" -version = "0.60.10" +version = "0.60.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db87b96cb1b16c024980f133968d52882ca0daaee3a086c6decc500f6c99728" +checksum = "b53543b4b86ed43f051644f704a98c7291b3618b67adf057ee77a366fa52fcaa" dependencies = [ "xmlparser", ] [[package]] name = "aws-types" -version = "1.3.8" +version = "1.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b069d19bf01e46298eaedd7c6f283fe565a59263e53eebec945f3e6398f42390" +checksum = "1d980627d2dd7bfc32a3c025685a033eeab8d365cc840c631ef59d1b8f428164" dependencies = [ "aws-credential-types", "aws-smithy-async", @@ -2505,12 +1912,6 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" -[[package]] -name = "base16ct" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" - [[package]] name = "base16ct" version = "0.2.0" @@ -2564,17 +1965,6 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" -[[package]] -name = "basic-cookies" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67bd8fd42c16bdb08688243dc5f0cc117a3ca9efeeaba3a345a18a6159ad96f7" -dependencies = [ - "lalrpop", - "lalrpop-util", - "regex", -] - [[package]] name = "bcs" version = "0.1.6" @@ -2612,7 +2002,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "cexpr", "clang-sys", "itertools 0.11.0", @@ -2625,35 +2015,26 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.98", + "syn 2.0.114", "which", ] [[package]] name = "bindgen" -version = "0.70.1" +version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "cexpr", "clang-sys", "itertools 0.13.0", "proc-macro2", "quote", "regex", - "rustc-hash 1.1.0", + "rustc-hash 2.1.1", "shlex", - "syn 2.0.98", -] - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec 0.6.3", + "syn 2.0.114", ] [[package]] @@ -2662,15 +2043,9 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ - "bit-vec 0.8.0", + "bit-vec", ] -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - [[package]] name = "bit-vec" version = "0.8.0" @@ -2707,24 +2082,24 @@ dependencies = [ "borsh", "citrea-common", "citrea-primitives", - "crypto-bigint 0.5.5", + "crypto-bigint", "futures", "hex", "itertools 0.13.0", - "jsonrpsee", + "jsonrpsee 0.26.0", "k256", "lru 0.13.0", "metrics", "metrics-derive", "rand 0.8.5", - "reqwest", + "reqwest 0.12.15", "reth-tasks", "secp256k1 0.29.0", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "sov-rollup-interface", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", ] @@ -2774,7 +2149,7 @@ dependencies = [ "bitcoincore-rpc-json", "jsonrpc-async", "log", - "reqwest", + "reqwest 0.12.15", "serde", "serde_json", "url", @@ -2798,11 +2173,11 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.8.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -2873,24 +2248,11 @@ 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" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47c79a94619fade3c0b887670333513a67ac28a6a7e653eb260bf0d4103db38d" +checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" dependencies = [ "cc", "glob", @@ -2900,87 +2262,93 @@ dependencies = [ [[package]] name = "boa_ast" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c340fe0f0b267787095cbe35240c6786ff19da63ec7b69367ba338eace8169b" +checksum = "bc119a5ad34c3f459062a96907f53358989b173d104258891bb74f95d93747e8" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "boa_interner", "boa_macros", "boa_string", - "indexmap 2.7.1", + "indexmap 2.13.0", "num-bigint", "rustc-hash 2.1.1", ] [[package]] name = "boa_engine" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f620c3f06f51e65c0504ddf04978be1b814ac6586f0b45f6019801ab5efd37f9" +checksum = "e637ec52ea66d76b0ca86180c259d6c7bb6e6a6e14b2f36b85099306d8b00cc3" dependencies = [ + "aligned-vec", "arrayvec", - "bitflags 2.8.0", + "bitflags 2.10.0", "boa_ast", "boa_gc", "boa_interner", "boa_macros", "boa_parser", - "boa_profiler", "boa_string", "bytemuck", "cfg-if", + "cow-utils", "dashmap", + "dynify", "fast-float2", - "hashbrown 0.15.2", - "icu_normalizer", - "indexmap 2.7.1", + "float16", + "futures-channel", + "futures-concurrency", + "futures-lite", + "hashbrown 0.16.1", + "icu_normalizer 2.0.1", + "indexmap 2.13.0", "intrusive-collections", - "itertools 0.13.0", + "itertools 0.14.0", "num-bigint", "num-integer", "num-traits", "num_enum", - "once_cell", - "pollster", + "paste", "portable-atomic", - "rand 0.8.5", + "rand 0.9.2", "regress", "rustc-hash 2.1.1", "ryu-js", "serde", "serde_json", - "sptr", + "small_btree", "static_assertions", + "tag_ptr", "tap", "thin-vec", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", + "xsum", ] [[package]] name = "boa_gc" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2425c0b7720d42d73eaa6a883fbb77a5c920da8694964a3d79a67597ac55cce2" +checksum = "f1179f690cbfcbe5364cceee5f1cb577265bb6f07b0be6f210aabe270adcf9da" dependencies = [ "boa_macros", - "boa_profiler", "boa_string", - "hashbrown 0.15.2", + "hashbrown 0.16.1", "thin-vec", ] [[package]] name = "boa_interner" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42407a3b724cfaecde8f7d4af566df4b56af32a2f11f0956f5570bb974e7f749" +checksum = "9626505d33dc63d349662437297df1d3afd9d5fc4a2b3ad34e5e1ce879a78848" dependencies = [ "boa_gc", "boa_macros", - "hashbrown 0.15.2", - "indexmap 2.7.1", + "hashbrown 0.16.1", + "indexmap 2.13.0", "once_cell", "phf", "rustc-hash 2.1.1", @@ -2989,51 +2357,47 @@ dependencies = [ [[package]] name = "boa_macros" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fd3f870829131332587f607a7ff909f1af5fc523fd1b192db55fbbdf52e8d3c" +checksum = "7f36418a46544b152632c141b0a0b7a453cd69ca150caeef83aee9e2f4b48b7d" dependencies = [ + "cfg-if", + "cow-utils", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", "synstructure", ] [[package]] name = "boa_parser" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cc142dac798cdc6e2dbccfddeb50f36d2523bb977a976e19bdb3ae19b740804" +checksum = "02f99bf5b684f0de946378fcfe5f38c3a0fbd51cbf83a0f39ff773a0e218541f" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "boa_ast", "boa_interner", "boa_macros", - "boa_profiler", "fast-float2", - "icu_properties", + "icu_properties 2.0.2", "num-bigint", "num-traits", "regress", "rustc-hash 2.1.1", ] -[[package]] -name = "boa_profiler" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4064908e7cdf9b6317179e9b04dcb27f1510c1c144aeab4d0394014f37a0f922" - [[package]] name = "boa_string" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7debc13fbf7997bf38bf8e9b20f1ad5e2a7d27a900e1f6039fe244ce30f589b5" +checksum = "45ce9d7aa5563a2e14eab111e2ae1a06a69a812f6c0c3d843196c9d03fbef440" dependencies = [ "fast-float2", + "itoa", "paste", "rustc-hash 2.1.1", - "sptr", + "ryu-js", "static_assertions", ] @@ -3051,7 +2415,7 @@ dependencies = [ "hex", "http 1.2.0", "http-body-util", - "hyper 1.6.0", + "hyper", "hyper-named-pipe", "hyper-util", "hyperlocal", @@ -3062,7 +2426,7 @@ dependencies = [ "serde_json", "serde_repr", "serde_urlencoded", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-util", "tower-service", @@ -3090,9 +2454,9 @@ checksum = "21055e2f49cbbdbfe9f8f96d597c5527b0c6ab7933341fdc2f147180e48a988e" dependencies = [ "duplicate", "maybe-async", - "reqwest", + "reqwest 0.12.15", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -3116,24 +2480,28 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] name = "boundless-market" -version = "1.0.0" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e939949e2749b619d344203780648f4d85433a623199adc314807ad11bb6338a" +checksum = "1f56a871828b537886d3425879a6f6d5f83033a55a2f75cbd7c7c3298efd13eb" dependencies = [ - "alloy 1.0.9", - "alloy-chains 0.2.1", - "alloy-primitives 1.3.1", - "alloy-sol-types 1.3.1", + "alloy", + "alloy-chains", + "alloy-primitives 1.5.7", + "alloy-sol-types", "anyhow", "async-stream", "async-trait", + "auto_impl", + "aws-config", "aws-sdk-s3", + "borsh", "bytemuck", + "bytes", "chrono", "clap", "dashmap", @@ -3141,26 +2509,31 @@ dependencies = [ "futures", "futures-util", "hex", - "httpmock", - "rand 0.9.0", - "reqwest", + "moka", + "rand 0.9.2", + "reqwest 0.13.2", + "reqwest-middleware", + "reqwest-retry", "risc0-aggregation", + "risc0-binfmt", "risc0-ethereum-contracts", "risc0-zkvm", "rmp-serde", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "siwe", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", "time", "tokio", "tokio-tungstenite", + "toml 0.8.20", + "tower 0.5.2", "tracing", - "tracing-subscriber 0.3.20", "url", "utoipa", + "uuid", ] [[package]] @@ -3190,6 +2563,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ + "sha2 0.10.9", "tinyvec", ] @@ -3207,22 +2581,22 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "bytemuck" -version = "1.21.0" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.8.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -3263,9 +2637,9 @@ dependencies = [ [[package]] name = "c-kzg" -version = "2.1.1" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7318cfa722931cb5fe0838b98d3ce5621e75f6a6408abc21721d80de9223f2e4" +checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687" dependencies = [ "blst", "cc", @@ -3278,11 +2652,11 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.9" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -3294,6 +2668,16 @@ dependencies = [ "serde", ] +[[package]] +name = "cargo-platform" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87a0c0e6148f11f01f32650a2ea02d532b2ad4e81d8bd41e6e565b5adc5e6082" +dependencies = [ + "serde", + "serde_core", +] + [[package]] name = "cargo_metadata" version = "0.18.1" @@ -3301,8 +2685,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", - "cargo-platform", - "semver 1.0.25", + "cargo-platform 0.1.9", + "semver 1.0.27", "serde", "serde_json", "thiserror 1.0.69", @@ -3315,11 +2699,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" dependencies = [ "camino", - "cargo-platform", - "semver 1.0.25", + "cargo-platform 0.1.9", + "semver 1.0.27", + "serde", + "serde_json", + "thiserror 2.0.18", +] + +[[package]] +name = "cargo_metadata" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef987d17b0a113becdd19d3d0022d04d7ef41f9efe4f3fb63ac44ba61df3ade9" +dependencies = [ + "camino", + "cargo-platform 0.3.2", + "semver 1.0.27", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -3356,9 +2754,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -3422,15 +2820,15 @@ dependencies = [ name = "citrea" version = "2.1.0" dependencies = [ - "alloy 0.13.0", - "alloy-primitives 0.8.26", + "alloy", + "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-rpc-types 0.13.0", + "alloy-rpc-types", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-signer 0.13.0", - "alloy-signer-local 0.13.0", - "alloy-sol-types 0.8.26", + "alloy-signer", + "alloy-signer-local", + "alloy-sol-types", "anyhow", "async-trait", "base64 0.22.1", @@ -3458,7 +2856,7 @@ dependencies = [ "futures", "hex", "jmt", - "jsonrpsee", + "jsonrpsee 0.26.0", "k256", "l2-block-rule-enforcer", "log", @@ -3469,7 +2867,7 @@ dependencies = [ "prover-services", "rand 0.8.5", "regex", - "reqwest", + "reqwest 0.12.15", "reth-primitives", "reth-tasks", "reth-transaction-pool", @@ -3480,7 +2878,7 @@ dependencies = [ "rustc_version_runtime", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "short-header-proof-provider", "sov-db", "sov-keys", @@ -3497,7 +2895,7 @@ dependencies = [ "tempfile", "tokio", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", "uuid", ] @@ -3505,7 +2903,7 @@ dependencies = [ name = "citrea-batch-prover" version = "2.1.0" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "anyhow", "async-trait", "backoff", @@ -3518,7 +2916,7 @@ dependencies = [ "faster-hex", "futures", "hex", - "jsonrpsee", + "jsonrpsee 0.26.0", "metrics", "metrics-derive", "parking_lot", @@ -3543,9 +2941,9 @@ dependencies = [ "sov-state", "tempfile", "tokio", - "tower 0.4.13", + "tower 0.5.2", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", "uuid", ] @@ -3565,16 +2963,16 @@ dependencies = [ "sov-db", "tokio", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", ] [[package]] name = "citrea-common" version = "2.1.0" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-primitives 0.8.26", - "alloy-sol-types 0.8.26", + "alloy-consensus", + "alloy-primitives 1.5.7", + "alloy-sol-types", "anyhow", "async-trait", "backoff", @@ -3584,8 +2982,8 @@ dependencies = [ "citrea-stf", "futures", "hex", - "hyper 1.6.0", - "jsonrpsee", + "hyper", + "jsonrpsee 0.26.0", "lru 0.13.0", "metrics", "reth-primitives", @@ -3606,9 +3004,9 @@ dependencies = [ "sov-state", "tempfile", "tokio", - "toml", - "tower 0.4.13", - "tower-http", + "toml 0.8.20", + "tower 0.5.2", + "tower-http 0.5.2", "tracing", ] @@ -3625,40 +3023,40 @@ dependencies = [ "bollard", "futures", "hex", - "jsonrpsee", + "jsonrpsee 0.24.10", "nix", "rand 0.8.5", "serde", "serde_json", "tempfile", "tokio", - "toml", + "toml 0.8.20", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", ] [[package]] name = "citrea-evm" version = "2.1.0" dependencies = [ - "alloy 0.13.0", - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-network 0.13.0", - "alloy-primitives 0.8.26", + "alloy", + "alloy-consensus", + "alloy-eips", + "alloy-network", + "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-rpc-types 0.13.0", - "alloy-rpc-types-eth 0.13.0", + "alloy-rpc-types", + "alloy-rpc-types-eth", "alloy-rpc-types-trace", - "alloy-serde 0.13.0", - "alloy-sol-types 0.8.26", + "alloy-serde", + "alloy-sol-types", "bcs", "borsh", "bytes", "citrea-primitives", "hex", "itertools 0.13.0", - "jsonrpsee", + "jsonrpsee 0.26.0", "k256", "metrics", "metrics-derive", @@ -3671,10 +3069,10 @@ dependencies = [ "reth-primitives-traits", "reth-provider", "reth-rpc", + "reth-rpc-convert", "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-rpc-types-compat", "reth-tasks", "reth-transaction-pool", "revm", @@ -3684,7 +3082,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "short-header-proof-provider", "sov-db", "sov-keys", @@ -3693,10 +3091,10 @@ dependencies = [ "sov-rollup-interface", "sov-state", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", "walkdir", ] @@ -3704,7 +3102,7 @@ dependencies = [ name = "citrea-fullnode" version = "2.1.0" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "anyhow", "async-trait", "backoff", @@ -3715,7 +3113,7 @@ dependencies = [ "citrea-stf", "citrea-storage-ops", "hex", - "jsonrpsee", + "jsonrpsee 0.26.0", "metrics", "metrics-derive", "reth-tasks", @@ -3729,7 +3127,7 @@ dependencies = [ "sov-prover-storage-manager", "sov-rollup-interface", "sov-state", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", ] @@ -3738,9 +3136,9 @@ dependencies = [ name = "citrea-light-client-prover" version = "2.1.0" dependencies = [ - "alloy-primitives 0.8.26", - "alloy-signer 0.13.0", - "alloy-signer-local 0.13.0", + "alloy-primitives 1.5.7", + "alloy-signer", + "alloy-signer-local", "anyhow", "async-trait", "bitcoin-da", @@ -3751,7 +3149,7 @@ dependencies = [ "const-hex", "constmuck", "hex", - "jsonrpsee", + "jsonrpsee 0.26.0", "k256", "metrics", "metrics-derive", @@ -3775,10 +3173,10 @@ dependencies = [ name = "citrea-primitives" version = "2.1.0" dependencies = [ - "alloy-eips 0.13.0", + "alloy-eips", "brotli", "rs_merkle", - "sha2 0.10.8", + "sha2 0.10.9", "sov-rollup-interface", ] @@ -3786,7 +3184,7 @@ dependencies = [ name = "citrea-risc0-adapter" version = "2.1.0" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "anyhow", "async-trait", "backoff", @@ -3797,14 +3195,14 @@ dependencies = [ "citrea-common", "hex", "metrics", - "reqwest", + "reqwest 0.12.15", "risc0-zkp", "risc0-zkvm", "rzup", "serde", "sov-db", "sov-rollup-interface", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", "url", @@ -3830,16 +3228,16 @@ dependencies = [ name = "citrea-sequencer" version = "2.1.0" dependencies = [ - "alloy-eips 0.13.0", - "alloy-genesis 0.13.0", - "alloy-network 0.13.0", - "alloy-primitives 0.8.26", + "alloy-eips", + "alloy-genesis", + "alloy-network", + "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-rpc-types 0.13.0", - "alloy-rpc-types-eth 0.13.0", + "alloy-rpc-types", + "alloy-rpc-types-eth", "alloy-rpc-types-txpool", - "alloy-serde 0.13.0", - "alloy-sol-types 0.8.26", + "alloy-serde", + "alloy-sol-types", "anyhow", "async-trait", "backoff", @@ -3851,20 +3249,21 @@ dependencies = [ "citrea-stf", "digest 0.10.7", "hex", - "jsonrpsee", + "jsonrpsee 0.26.0", "l2-block-rule-enforcer", "metrics", "metrics-derive", "parking_lot", "reth-chainspec", "reth-db", + "reth-evm-ethereum", "reth-execution-types", "reth-primitives", "reth-provider", "reth-rpc", + "reth-rpc-convert", "reth-rpc-eth-api", "reth-rpc-eth-types", - "reth-rpc-types-compat", "reth-tasks", "reth-transaction-pool", "reth-trie", @@ -3882,7 +3281,7 @@ dependencies = [ "tokio", "tokio-stream", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", ] [[package]] @@ -3894,7 +3293,7 @@ dependencies = [ "citrea-evm", "citrea-primitives", "citrea-stf", - "jsonrpsee", + "jsonrpsee 0.26.0", "l2-block-rule-enforcer", "rs_merkle", "serde", @@ -3950,9 +3349,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.31" +version = "4.5.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "027bb0d98429ae334a8698531da7077bdf906419543a35a55c2cb1b66437d767" +checksum = "a75ca66430e33a14957acc24c5077b503e7d374151b2b4b3a10c83b4ceb4be0e" dependencies = [ "clap_builder", "clap_derive", @@ -3960,9 +3359,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.31" +version = "4.5.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5589e0cba072e0f3d23791efac0fd8627b49c829c196a492e88168e6a669d863" +checksum = "793207c7fa6300a0608d1080b858e5fdbe713cdc1c8db9fb17777d8a13e63df0" dependencies = [ "anstream", "anstyle", @@ -3972,14 +3371,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.28" +version = "4.5.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" +checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -4003,6 +3402,57 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" +[[package]] +name = "coins-bip32" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2073678591747aed4000dd468b97b14d7007f7936851d3f2f01846899f5ebf08" +dependencies = [ + "bs58", + "coins-core", + "digest 0.10.7", + "hmac 0.12.1", + "k256", + "serde", + "sha2 0.10.9", + "thiserror 1.0.69", +] + +[[package]] +name = "coins-bip39" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74b169b26623ff17e9db37a539fe4f15342080df39f129ef7631df7683d6d9d4" +dependencies = [ + "bitvec", + "coins-bip32", + "hmac 0.12.1", + "once_cell", + "pbkdf2", + "rand 0.8.5", + "sha2 0.10.9", + "thiserror 1.0.69", +] + +[[package]] +name = "coins-core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b962ad8545e43a28e14e87377812ba9ae748dd4fd963f4c10e9fcc6d13475b" +dependencies = [ + "base64 0.21.7", + "bech32 0.9.1", + "bs58", + "const-hex", + "digest 0.10.7", + "generic-array", + "ripemd", + "serde", + "sha2 0.10.9", + "sha3", + "thiserror 1.0.69", +] + [[package]] name = "colorchoice" version = "1.0.3" @@ -4144,6 +3594,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "cow-utils" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "417bef24afe1460300965a25ff4a24b8b45ad011948302ec221e8a0a81eb2c79" + [[package]] name = "cpufeatures" version = "0.2.17" @@ -4170,23 +3626,22 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crc-fast" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61dd931a9d071dc6e36b8735c501601428c5aa5dfd6d2506b935498ef57e0098" +checksum = "6ddc2d09feefeee8bd78101665bd8645637828fa9317f9f292496dbbd8c65ff3" dependencies = [ "crc", "digest 0.10.7", - "libc", - "rand 0.9.0", + "rand 0.9.2", "regex", "rustversion", ] [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] @@ -4271,18 +3726,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" -[[package]] -name = "crypto-bigint" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" -dependencies = [ - "generic-array", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - [[package]] name = "crypto-bigint" version = "0.5.5" @@ -4349,31 +3792,56 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core 0.20.10", + "darling_macro 0.20.10", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core 0.21.3", + "darling_macro 0.21.3", ] [[package]] -name = "darling" +name = "darling_core" version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ - "darling_core", - "darling_macro", + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.114", ] [[package]] name = "darling_core" -version = "0.20.10" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", + "serde", "strsim", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -4382,9 +3850,20 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core", + "darling_core 0.20.10", + "quote", + "syn 2.0.114", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core 0.21.3", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -4399,6 +3878,7 @@ dependencies = [ "lock_api", "once_cell", "parking_lot_core", + "serde", ] [[package]] @@ -4424,7 +3904,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18e4fdb82bd54a12e42fb58a800dcae6b9e13982238ce2296dc3570b92148e1f" dependencies = [ "data-encoding", - "syn 1.0.109", + "syn 2.0.114", ] [[package]] @@ -4438,16 +3918,6 @@ dependencies = [ "tokio-util", ] -[[package]] -name = "der" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" -dependencies = [ - "const-oid", - "zeroize", -] - [[package]] name = "der" version = "0.7.9" @@ -4461,12 +3931,12 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.11" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" dependencies = [ "powerfmt", - "serde", + "serde_core", ] [[package]] @@ -4482,13 +3952,13 @@ dependencies = [ [[package]] name = "derive-where" -version = "1.2.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" +checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -4506,10 +3976,10 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" dependencies = [ - "darling", + "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -4519,7 +3989,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -4548,7 +4018,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", "unicode-xid", ] @@ -4561,7 +4031,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", "unicode-xid", ] @@ -4635,7 +4105,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -4651,9 +4121,9 @@ dependencies = [ [[package]] name = "discv5" -version = "0.9.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4b4e7798d2ff74e29cee344dc490af947ae657d6ab5273dde35d58ce06a4d71" +checksum = "f170f4f6ed0e1df52bf43b403899f0081917ecf1500bfe312505cc3b515a8899" dependencies = [ "aes", "aes-gcm", @@ -4675,7 +4145,7 @@ dependencies = [ "parking_lot", "rand 0.8.5", "smallvec", - "socket2", + "socket2 0.5.8", "tokio", "tracing", "uint 0.10.0", @@ -4690,7 +4160,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -4729,15 +4199,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "feeef44e73baff3a26d371801df019877a9866a8c493d315ab00177843314f35" [[package]] -name = "ecdsa" -version = "0.14.8" +name = "dynify" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +checksum = "81acb15628a3e22358bf73de5e7e62360b8a777dbcb5fc9ac7dfa9ae73723747" dependencies = [ - "der 0.6.1", - "elliptic-curve 0.12.3", - "rfc6979 0.3.1", - "signature 1.6.4", + "dynify-macros", +] + +[[package]] +name = "dynify-macros" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec431cd708430d5029356535259c5d645d60edd3d39c54e5eea9782d46caa7d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.114", ] [[package]] @@ -4746,13 +4224,13 @@ version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ - "der 0.7.9", + "der", "digest 0.10.7", - "elliptic-curve 0.13.8", - "rfc6979 0.4.0", + "elliptic-curve", + "rfc6979", "serdect", - "signature 2.2.0", - "spki 0.7.3", + "signature", + "spki", ] [[package]] @@ -4761,8 +4239,8 @@ version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ - "pkcs8 0.10.2", - "signature 2.2.0", + "pkcs8", + "signature", ] [[package]] @@ -4775,7 +4253,7 @@ dependencies = [ "ed25519", "rand_core 0.6.4", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "subtle", "zeroize", ] @@ -4789,7 +4267,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -4807,42 +4285,22 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b" -[[package]] -name = "elliptic-curve" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" -dependencies = [ - "base16ct 0.1.1", - "crypto-bigint 0.4.9", - "der 0.6.1", - "digest 0.10.7", - "ff 0.12.1", - "generic-array", - "group 0.12.1", - "pkcs8 0.9.0", - "rand_core 0.6.4", - "sec1 0.3.0", - "subtle", - "zeroize", -] - [[package]] name = "elliptic-curve" version = "0.13.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" dependencies = [ - "base16ct 0.2.0", - "crypto-bigint 0.5.5", + "base16ct", + "crypto-bigint", "digest 0.10.7", - "ff 0.13.0", + "ff", "generic-array", - "group 0.13.0", + "group", "pem-rfc7468", - "pkcs8 0.10.2", + "pkcs8", "rand_core 0.6.4", - "sec1 0.7.3", + "sec1", "serdect", "subtle", "zeroize", @@ -4860,15 +4318,6 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" -[[package]] -name = "ena" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" -dependencies = [ - "log", -] - [[package]] name = "encoding_rs" version = "0.8.35" @@ -4913,7 +4362,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -4933,18 +4382,27 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", +] + +[[package]] +name = "equator" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4711b213838dfee0117e3be6ac926007d7f433d7bbe33595975d4190cb07e6fc" +dependencies = [ + "equator-macro", ] [[package]] -name = "enumn" -version = "0.1.14" +name = "equator-macro" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" +checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -4967,13 +4425,13 @@ dependencies = [ name = "ethereum-rpc" version = "2.1.0" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-network 0.13.0", - "alloy-primitives 0.8.26", - "alloy-rpc-types 0.13.0", - "alloy-rpc-types-eth 0.13.0", + "alloy-consensus", + "alloy-network", + "alloy-primitives 1.5.7", + "alloy-rpc-types", + "alloy-rpc-types-eth", "alloy-rpc-types-trace", - "alloy-serde 0.13.0", + "alloy-serde", "async-trait", "borsh", "citrea-common", @@ -4981,12 +4439,12 @@ dependencies = [ "citrea-primitives", "citrea-sequencer", "futures", - "jsonrpsee", + "jsonrpsee 0.26.0", "parking_lot", "reth-primitives", + "reth-rpc-convert", "reth-rpc-eth-api", "reth-rpc-eth-types", - "reth-rpc-types-compat", "reth-tasks", "rustc_version_runtime", "schnellru", @@ -5009,16 +4467,16 @@ checksum = "c853bd72c9e5787f8aafc3df2907c2ed03cff3150c3acd94e2e53a98ab70a8ab" dependencies = [ "cpufeatures", "ring", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] name = "ethereum_serde_utils" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70cbccfccf81d67bff0ab36e591fa536c8a935b078a7b0e58c1d00d418332fc9" +checksum = "3dc1355dbb41fbbd34ec28d4fb2a57d9a70c67ac3c19f6a5ca4d4a176b9e997a" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "hex", "serde", "serde_derive", @@ -5027,11 +4485,11 @@ dependencies = [ [[package]] name = "ethereum_ssz" -version = "0.8.3" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86da3096d1304f5f28476ce383005385459afeaf0eea08592b65ddbc9b258d16" +checksum = "0dcddb2554d19cde19b099fadddde576929d7a4d0c1cd3512d1fd95cf174375c" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "ethereum_serde_utils", "itertools 0.13.0", "serde", @@ -5042,22 +4500,16 @@ dependencies = [ [[package]] name = "ethereum_ssz_derive" -version = "0.8.3" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d832a5c38eba0e7ad92592f7a22d693954637fbb332b4f669590d66a5c3183e5" +checksum = "a657b6b3b7e153637dc6bdc6566ad9279d9ee11a15b12cfb24a2e04360637e9f" dependencies = [ - "darling", + "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] -[[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" @@ -5075,7 +4527,7 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ - "event-listener 5.4.0", + "event-listener", "pin-project-lite", ] @@ -5145,16 +4597,6 @@ dependencies = [ "bytes", ] -[[package]] -name = "ff" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" -dependencies = [ - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "ff" version = "0.13.0" @@ -5195,11 +4637,42 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "fixed-map" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86ed19add84e8cb9e8cc5f7074de0324247149ffef0b851e215fb0edc50c229b" +dependencies = [ + "fixed-map-derive", + "serde", +] + +[[package]] +name = "fixed-map-derive" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dc7a9cb3326bafb80642c5ce99b39a2c0702d4bfa8ee8a3e773791a6cbe2407" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "fixedbitset" -version = "0.4.2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + +[[package]] +name = "float16" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +checksum = "7bffafbd079d520191c7c2779ae9cf757601266cf4167d3f659ff09617ff8483" +dependencies = [ + "cfg-if", + "rustc_version 0.2.3", +] [[package]] name = "fnv" @@ -5213,6 +4686,12 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "foreign-types" version = "0.3.2" @@ -5240,7 +4719,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -5310,6 +4789,19 @@ dependencies = [ "futures-sink", ] +[[package]] +name = "futures-concurrency" +version = "7.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175cd8cca9e1d45b87f18ffa75088f2099e3c4fe5e2f83e42de112560bea8ea6" +dependencies = [ + "fixedbitset", + "futures-core", + "futures-lite", + "pin-project", + "smallvec", +] + [[package]] name = "futures-core" version = "0.3.31" @@ -5335,9 +4827,9 @@ checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" dependencies = [ "fastrand", "futures-core", @@ -5354,7 +4846,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -5375,7 +4867,7 @@ version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" dependencies = [ - "gloo-timers 0.2.6", + "gloo-timers", "send_wrapper", ] @@ -5403,26 +4895,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" -[[package]] -name = "generator" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" -dependencies = [ - "cfg-if", - "libc", - "log", - "rustversion", - "windows 0.58.0", -] - [[package]] name = "generic-array" version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ - "serde", "typenum", "version_check", "zeroize", @@ -5448,9 +4926,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi", "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", + "wasip3", ] [[package]] @@ -5475,7 +4968,7 @@ version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5220b8ba44c68a9a7f7a7659e864dd73692e417ef0211bea133c7b74e031eeb9" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "libc", "libgit2-sys", "log", @@ -5521,18 +5014,6 @@ 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" @@ -5546,47 +5027,17 @@ dependencies = [ "web-sys", ] -[[package]] -name = "group" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" -dependencies = [ - "ff 0.12.1", - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "group" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ - "ff 0.13.0", + "ff", "rand_core 0.6.4", "subtle", ] -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.7.1", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "h2" version = "0.4.8" @@ -5599,7 +5050,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.2.0", - "indexmap 2.7.1", + "indexmap 2.13.0", "slab", "tokio", "tokio-util", @@ -5647,7 +5098,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", - "allocator-api2", ] [[package]] @@ -5658,8 +5108,21 @@ checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.1.4", + "serde", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", "serde", + "serde_core", ] [[package]] @@ -5756,10 +5219,10 @@ dependencies = [ "idna", "ipnet", "once_cell", - "rand 0.9.0", + "rand 0.9.2", "ring", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "tinyvec", "tokio", "tracing", @@ -5779,11 +5242,11 @@ dependencies = [ "moka", "once_cell", "parking_lot", - "rand 0.9.0", + "rand 0.9.2", "resolv-conf", "serde", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", ] @@ -5915,34 +5378,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "httpmock" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08ec9586ee0910472dec1a1f0f8acf52f0fdde93aea74d70d4a3107b4be0fd5b" -dependencies = [ - "assert-json-diff", - "async-object-pool", - "async-std", - "async-trait", - "base64 0.21.7", - "basic-cookies", - "crossbeam-utils", - "form_urlencoded", - "futures-util", - "hyper 0.14.32", - "lazy_static", - "levenshtein", - "log", - "regex", - "serde", - "serde_json", - "serde_regex", - "similar", - "tokio", - "url", -] - [[package]] name = "humantime" version = "2.1.0" @@ -5959,30 +5394,6 @@ dependencies = [ "serde", ] -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.6.0" @@ -5992,7 +5403,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.8", + "h2", "http 1.2.0", "http-body 1.0.1", "httparse", @@ -6010,29 +5421,13 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73b7d8abf35697b81a825e386fc151e0d503e8cb5fcb93cc8669c376dfd6f278" dependencies = [ - "hex", - "hyper 1.6.0", - "hyper-util", - "pin-project-lite", - "tokio", - "tower-service", - "winapi", -] - -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.32", - "log", - "rustls 0.21.12", - "rustls-native-certs 0.6.3", + "hex", + "hyper", + "hyper-util", + "pin-project-lite", "tokio", - "tokio-rustls 0.24.1", + "tower-service", + "winapi", ] [[package]] @@ -6043,18 +5438,31 @@ checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", "http 1.2.0", - "hyper 1.6.0", + "hyper", "hyper-util", "log", - "rustls 0.23.25", - "rustls-native-certs 0.8.1", + "rustls", + "rustls-native-certs", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.1", + "tokio-rustls", "tower-service", "webpki-roots", ] +[[package]] +name = "hyper-timeout" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" +dependencies = [ + "hyper", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + [[package]] name = "hyper-tls" version = "0.6.0" @@ -6063,7 +5471,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.6.0", + "hyper", "hyper-util", "native-tls", "tokio", @@ -6073,21 +5481,28 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.10" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ + "base64 0.22.1", "bytes", "futures-channel", + "futures-core", "futures-util", "http 1.2.0", "http-body 1.0.1", - "hyper 1.6.0", + "hyper", + "ipnet", + "libc", + "percent-encoding", "pin-project-lite", - "socket2", + "socket2 0.6.2", + "system-configuration", "tokio", "tower-service", "tracing", + "windows-registry 0.5.3", ] [[package]] @@ -6098,7 +5513,7 @@ checksum = "986c5ce3b994526b3cd75578e62554abd09f0899d6206de48b3e96ab34ccc8c7" dependencies = [ "hex", "http-body-util", - "hyper 1.6.0", + "hyper", "hyper-util", "pin-project-lite", "tokio", @@ -6140,10 +5555,10 @@ dependencies = [ "bytes", "hex", "informalsystems-pbjson", - "prost", + "prost 0.13.5", "ripemd", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", ] @@ -6154,9 +5569,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" dependencies = [ "displaydoc", - "yoke", + "yoke 0.7.5", + "zerofrom", + "zerovec 0.10.4", +] + +[[package]] +name = "icu_collections" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke 0.8.1", "zerofrom", - "zerovec", + "zerovec 0.11.5", +] + +[[package]] +name = "icu_locale_core" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +dependencies = [ + "displaydoc", + "litemap 0.8.1", + "serde", + "tinystr 0.8.2", + "writeable 0.6.2", + "zerovec 0.11.5", ] [[package]] @@ -6166,10 +5608,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", + "litemap 0.7.4", + "tinystr 0.7.6", + "writeable 0.5.5", + "zerovec 0.10.4", ] [[package]] @@ -6181,9 +5623,9 @@ dependencies = [ "displaydoc", "icu_locid", "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", + "icu_provider 1.5.0", + "tinystr 0.7.6", + "zerovec 0.10.4", ] [[package]] @@ -6199,15 +5641,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" dependencies = [ "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", + "icu_collections 1.5.0", + "icu_normalizer_data 1.5.0", + "icu_properties 1.5.1", + "icu_provider 1.5.0", "smallvec", "utf16_iter", "utf8_iter", "write16", - "zerovec", + "zerovec 0.10.4", +] + +[[package]] +name = "icu_normalizer" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b24a59706036ba941c9476a55cd57b82b77f38a3c667d637ee7cabbc85eaedc" +dependencies = [ + "displaydoc", + "icu_collections 2.0.0", + "icu_normalizer_data 2.0.0", + "icu_properties 2.0.2", + "icu_provider 2.1.1", + "smallvec", + "utf16_iter", + "write16", + "zerovec 0.11.5", ] [[package]] @@ -6216,6 +5675,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +[[package]] +name = "icu_normalizer_data" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" + [[package]] name = "icu_properties" version = "1.5.1" @@ -6223,12 +5688,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ "displaydoc", - "icu_collections", + "icu_collections 1.5.0", "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", + "icu_properties_data 1.5.0", + "icu_provider 1.5.0", + "tinystr 0.7.6", + "zerovec 0.10.4", +] + +[[package]] +name = "icu_properties" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5a97b8ac6235e69506e8dacfb2adf38461d2ce6d3e9bd9c94c4cbc3cd4400a4" +dependencies = [ + "displaydoc", + "icu_collections 2.0.0", + "icu_locale_core", + "icu_properties_data 2.0.1", + "icu_provider 2.1.1", + "potential_utf", + "zerotrie", + "zerovec 0.11.5", ] [[package]] @@ -6237,6 +5718,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +[[package]] +name = "icu_properties_data" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" + [[package]] name = "icu_provider" version = "1.5.0" @@ -6247,11 +5734,28 @@ dependencies = [ "icu_locid", "icu_provider_macros", "stable_deref_trait", - "tinystr", - "writeable", - "yoke", + "tinystr 0.7.6", + "writeable 0.5.5", + "yoke 0.7.5", + "zerofrom", + "zerovec 0.10.4", +] + +[[package]] +name = "icu_provider" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +dependencies = [ + "displaydoc", + "icu_locale_core", + "serde", + "stable_deref_trait", + "writeable 0.6.2", + "yoke 0.8.1", "zerofrom", - "zerovec", + "zerotrie", + "zerovec 0.11.5", ] [[package]] @@ -6262,9 +5766,15 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + [[package]] name = "ident_case" version = "1.0.1" @@ -6288,18 +5798,18 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ - "icu_normalizer", - "icu_properties", + "icu_normalizer 1.5.0", + "icu_properties 1.5.1", ] [[package]] name = "if-addrs" -version = "0.13.3" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78a89907582615b19f6f0da1af18abf6ff08be259395669b834b057a7ee92d8" +checksum = "bf39cc0423ee66021dc5eccface85580e4a001e0c5288bae8bea7ecb69225e90" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -6319,7 +5829,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -6366,13 +5876,14 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown 0.16.1", "serde", + "serde_core", ] [[package]] @@ -6391,7 +5902,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "inotify-sys", "libc", ] @@ -6430,7 +5941,7 @@ version = "2.1.0" dependencies = [ "anyhow", "borsh", - "jsonrpsee", + "jsonrpsee 0.26.0", "serde", "sov-modules-api", "sov-prover-storage-manager", @@ -6455,7 +5966,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2", + "socket2 0.5.8", "widestring", "windows-sys 0.48.0", "winreg", @@ -6532,9 +6043,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.14" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "jmt" @@ -6552,7 +6063,7 @@ dependencies = [ "num-derive", "num-traits", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "thiserror 1.0.69", "tracing", ] @@ -6590,9 +6101,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "14dc6f6450b3f6d4ed5b16327f38fed626d375a886159ca555bd7822c0c3a5a6" dependencies = [ "once_cell", "wasm-bindgen", @@ -6614,16 +6125,27 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.24.9" +version = "0.24.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e281ae70cc3b98dac15fced3366a880949e65fc66e345ce857a5682d152f3e62" +dependencies = [ + "jsonrpsee-core 0.24.10", + "jsonrpsee-http-client 0.24.10", + "jsonrpsee-types 0.24.10", +] + +[[package]] +name = "jsonrpsee" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b26c20e2178756451cfeb0661fb74c47dd5988cb7e3939de7e9241fd604d42" +checksum = "3f3f48dc3e6b8bd21e15436c1ddd0bc22a6a54e8ec46fedd6adf3425f396ec6a" dependencies = [ "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-http-client", + "jsonrpsee-core 0.26.0", + "jsonrpsee-http-client 0.26.0", "jsonrpsee-proc-macros", "jsonrpsee-server", - "jsonrpsee-types", + "jsonrpsee-types 0.26.0", "jsonrpsee-wasm-client", "jsonrpsee-ws-client", "tokio", @@ -6632,24 +6154,24 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.24.9" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bacb85abf4117092455e1573625e21b8f8ef4dec8aff13361140b2dc266cdff2" +checksum = "cf36eb27f8e13fa93dcb50ccb44c417e25b818cfa1a481b5470cd07b19c60b98" dependencies = [ "base64 0.22.1", "futures-channel", "futures-util", "gloo-net", "http 1.2.0", - "jsonrpsee-core", + "jsonrpsee-core 0.26.0", "pin-project", - "rustls 0.23.25", + "rustls", "rustls-pki-types", - "rustls-platform-verifier", + "rustls-platform-verifier 0.5.1", "soketto", - "thiserror 1.0.69", + "thiserror 2.0.18", "tokio", - "tokio-rustls 0.26.1", + "tokio-rustls", "tokio-util", "tracing", "url", @@ -6657,9 +6179,29 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.24.9" +version = "0.24.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "348ee569eaed52926b5e740aae20863762b16596476e943c9e415a6479021622" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "jsonrpsee-types 0.24.10", + "serde", + "serde_json", + "thiserror 1.0.69", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456196007ca3a14db478346f58c7238028d55ee15c1df15115596e411ff27925" +checksum = "316c96719901f05d1137f19ba598b5fe9c9bc39f4335f67f6be8613921946480" dependencies = [ "async-trait", "bytes", @@ -6668,36 +6210,37 @@ dependencies = [ "http 1.2.0", "http-body 1.0.1", "http-body-util", - "jsonrpsee-types", + "jsonrpsee-types 0.26.0", "parking_lot", "pin-project", - "rand 0.8.5", + "rand 0.9.2", "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.18", "tokio", "tokio-stream", + "tower 0.5.2", "tracing", "wasm-bindgen-futures", ] [[package]] name = "jsonrpsee-http-client" -version = "0.24.9" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c872b6c9961a4ccc543e321bb5b89f6b2d2c7fe8b61906918273a3333c95400c" +checksum = "f50c389d6e6a52eb7c3548a6600c90cf74d9b71cb5912209833f00a5479e9a01" dependencies = [ "async-trait", "base64 0.22.1", "http-body 1.0.1", - "hyper 1.6.0", - "hyper-rustls 0.27.5", + "hyper", + "hyper-rustls", "hyper-util", - "jsonrpsee-core", - "jsonrpsee-types", - "rustls 0.23.25", - "rustls-platform-verifier", + "jsonrpsee-core 0.24.10", + "jsonrpsee-types 0.24.10", + "rustls", + "rustls-platform-verifier 0.5.1", "serde", "serde_json", "thiserror 1.0.69", @@ -6707,51 +6250,74 @@ dependencies = [ "url", ] +[[package]] +name = "jsonrpsee-http-client" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790bedefcec85321e007ff3af84b4e417540d5c87b3c9779b9e247d1bcc3dab8" +dependencies = [ + "base64 0.22.1", + "http-body 1.0.1", + "hyper", + "hyper-rustls", + "hyper-util", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", + "rustls", + "rustls-platform-verifier 0.5.1", + "serde", + "serde_json", + "thiserror 2.0.18", + "tokio", + "tower 0.5.2", + "url", +] + [[package]] name = "jsonrpsee-proc-macros" -version = "0.24.9" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e65763c942dfc9358146571911b0cd1c361c2d63e2d2305622d40d36376ca80" +checksum = "2da3f8ab5ce1bb124b6d082e62dffe997578ceaf0aeb9f3174a214589dc00f07" dependencies = [ "heck", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] name = "jsonrpsee-server" -version = "0.24.9" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55e363146da18e50ad2b51a0a7925fc423137a0b1371af8235b1c231a0647328" +checksum = "4c51b7c290bb68ce3af2d029648148403863b982f138484a73f02a9dd52dbd7f" dependencies = [ "futures-util", "http 1.2.0", "http-body 1.0.1", "http-body-util", - "hyper 1.6.0", + "hyper", "hyper-util", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "pin-project", "route-recognizer", "serde", "serde_json", "soketto", - "thiserror 1.0.69", + "thiserror 2.0.18", "tokio", "tokio-stream", "tokio-util", - "tower 0.4.13", + "tower 0.5.2", "tracing", ] [[package]] name = "jsonrpsee-types" -version = "0.24.9" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a8e70baf945b6b5752fc8eb38c918a48f1234daf11355e07106d963f860089" +checksum = "b0f05e0028e55b15dbd2107163b3c744cd3bb4474f193f95d9708acbf5677e44" dependencies = [ "http 1.2.0", "serde", @@ -6759,27 +6325,41 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "jsonrpsee-types" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc88ff4688e43cc3fa9883a8a95c6fa27aa2e76c96e610b737b6554d650d7fd5" +dependencies = [ + "http 1.2.0", + "serde", + "serde_json", + "thiserror 2.0.18", +] + [[package]] name = "jsonrpsee-wasm-client" -version = "0.24.9" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6558a9586cad43019dafd0b6311d0938f46efc116b34b28c74778bc11a2edf6" +checksum = "7902885de4779f711a95d82c8da2d7e5f9f3a7c7cfa44d51c067fd1c29d72a3c" dependencies = [ "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", + "tower 0.5.2", ] [[package]] name = "jsonrpsee-ws-client" -version = "0.24.9" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b3323d890aa384f12148e8d2a1fd18eb66e9e7e825f9de4fa53bcc19b93eef" +checksum = "9b6fceceeb05301cc4c065ab3bd2fa990d41ff4eb44e4ca1b30fa99c057c3e79" dependencies = [ "http 1.2.0", "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", + "tower 0.5.2", "url", ] @@ -6805,12 +6385,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", - "ecdsa 0.16.9", - "elliptic-curve 0.13.8", + "ecdsa", + "elliptic-curve", "once_cell", "serdect", - "sha2 0.10.8", - "signature 2.2.0", + "sha2 0.10.9", + "signature", ] [[package]] @@ -6824,9 +6404,9 @@ dependencies = [ [[package]] name = "keccak-asm" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" +checksum = "b646a74e746cd25045aa0fd42f4f7f78aa6d119380182c7e63a5593c4ab8df6f" dependencies = [ "digest 0.10.7", "sha3-asm", @@ -6852,15 +6432,6 @@ 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 = "l2-block-rule-enforcer" version = "2.1.0" @@ -6869,7 +6440,7 @@ dependencies = [ "chrono", "citrea-evm", "hex", - "jsonrpsee", + "jsonrpsee 0.26.0", "serde", "sov-db", "sov-keys", @@ -6882,37 +6453,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "lalrpop" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" -dependencies = [ - "ascii-canvas", - "bit-set 0.5.3", - "ena", - "itertools 0.11.0", - "lalrpop-util", - "petgraph", - "pico-args", - "regex", - "regex-syntax", - "string_cache", - "term", - "tiny-keccak", - "unicode-xid", - "walkdir", -] - -[[package]] -name = "lalrpop-util" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" -dependencies = [ - "regex-automata", -] - [[package]] name = "lazy-regex" version = "3.4.1" @@ -6933,7 +6473,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -6952,16 +6492,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] -name = "levenshtein" -version = "1.0.5" +name = "leb128fmt" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.170" +version = "0.2.181" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" +checksum = "459427e2af2b9c839b132acb702a1c654d95e10f8c326bfc2ad11310e458b1c5" [[package]] name = "libgit2-sys" @@ -7004,7 +6544,7 @@ dependencies = [ "libsecp256k1", "multihash", "quick-protobuf", - "sha2 0.10.8", + "sha2 0.10.9", "thiserror 1.0.69", "tracing", "zeroize", @@ -7016,7 +6556,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "libc", "redox_syscall", ] @@ -7141,6 +6681,12 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" +[[package]] +name = "litemap" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" + [[package]] name = "lock_api" version = "0.4.12" @@ -7157,9 +6703,6 @@ name = "log" version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" -dependencies = [ - "value-bag", -] [[package]] name = "log-panics" @@ -7171,19 +6714,6 @@ dependencies = [ "log", ] -[[package]] -name = "loom" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" -dependencies = [ - "cfg-if", - "generator", - "scoped-tls", - "tracing", - "tracing-subscriber 0.3.20", -] - [[package]] name = "lru" version = "0.12.5" @@ -7202,6 +6732,21 @@ dependencies = [ "hashbrown 0.15.2", ] +[[package]] +name = "lru" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" +dependencies = [ + "hashbrown 0.16.1", +] + +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + [[package]] name = "lz4-sys" version = "1.11.1+lz4-1.10.0" @@ -7214,9 +6759,18 @@ dependencies = [ [[package]] name = "lz4_flex" -version = "0.11.3" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab6473172471198271ff72e9379150e9dfd70d8e533e0752a27e515b48dd375e" + +[[package]] +name = "mach2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75761162ae2b0e580d7e7c390558127e5f01b4194debd6221fd8c207fc80e3f5" +checksum = "6a1b95cd5421ec55b445b5ae102f5ea0e768de1f82bd3001e11f426c269c3aea" +dependencies = [ + "libc", +] [[package]] name = "macro-string" @@ -7226,7 +6780,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -7255,7 +6809,7 @@ checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -7276,9 +6830,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memmap2" -version = "0.9.5" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" dependencies = [ "libc", ] @@ -7310,7 +6864,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "block", "core-graphics-types", "foreign-types 0.5.0", @@ -7331,14 +6885,13 @@ dependencies = [ [[package]] name = "metrics-derive" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3dbdd96ed57d565ec744cba02862d707acf373c5772d152abae6ec5c4e24f6c" +checksum = "161ab904c2c62e7bda0f7562bf22f96440ca35ff79e66c800cbac298f2f4f5ec" dependencies = [ "proc-macro2", "quote", - "regex", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -7349,10 +6902,10 @@ checksum = "dd7399781913e5393588a8d8c6a2867bf85fb38eaf2502fdce465aad2dc6f034" dependencies = [ "base64 0.22.1", "http-body-util", - "hyper 1.6.0", - "hyper-rustls 0.27.5", + "hyper", + "hyper-rustls", "hyper-util", - "indexmap 2.7.1", + "indexmap 2.13.0", "ipnet", "metrics", "metrics-util", @@ -7372,12 +6925,12 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.15.2", - "indexmap 2.7.1", + "indexmap 2.13.0", "metrics", "ordered-float", "quanta", "radix_trie", - "rand 0.9.0", + "rand 0.9.2", "rand_xoshiro", "sketches-ddsketch", ] @@ -7433,9 +6986,9 @@ checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" [[package]] name = "modular-bitfield" -version = "0.11.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" +checksum = "2956e537fc68236d2aa048f55704f231cc93f1c4de42fe1ecb5bd7938061fc4a" dependencies = [ "modular-bitfield-impl", "static_assertions", @@ -7443,31 +6996,32 @@ dependencies = [ [[package]] name = "modular-bitfield-impl" -version = "0.11.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" +checksum = "59b43b4fd69e3437618106f7754f34021b831a514f9e1a98ae863cabcd8d8dad" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.114", ] [[package]] name = "moka" -version = "0.12.10" +version = "0.12.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" +checksum = "b4ac832c50ced444ef6be0767a008b02c106a909ba79d1d830501e94b96f6b7e" dependencies = [ + "async-lock", "crossbeam-channel", "crossbeam-epoch", "crossbeam-utils", - "loom", + "equivalent", + "event-listener", + "futures-util", "parking_lot", "portable-atomic", - "rustc_version 0.4.1", "smallvec", "tagptr", - "thiserror 1.0.69", "uuid", ] @@ -7534,12 +7088,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - [[package]] name = "nibble_vec" version = "0.1.0" @@ -7555,7 +7103,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "cfg-if", "cfg_aliases", "libc", @@ -7583,7 +7131,7 @@ version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "filetime", "fsevent-sys", "inotify", @@ -7673,9 +7221,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" [[package]] name = "num-derive" @@ -7758,7 +7306,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -7772,13 +7320,14 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.3.4" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8983bb634df7248924ee0c4c3a749609b5abcb082c28fffe3254b3eb3602b307" +checksum = "0d49ff0c0d00d4a502b39df9af3a525e1efeb14b9dabb5bb83335284c1309210" dependencies = [ "alloy-rlp", - "const-hex", + "cfg-if", "proptest", + "ruint", "serde", "smallvec", ] @@ -7792,6 +7341,25 @@ dependencies = [ "malloc_buf", ] +[[package]] +name = "objc2-core-foundation" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" +dependencies = [ + "bitflags 2.10.0", +] + +[[package]] +name = "objc2-io-kit" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71c1c64d6120e51cd86033f67176b1cb66780c2efe34dec55176f77befd93c0a" +dependencies = [ + "libc", + "objc2-core-foundation", +] + [[package]] name = "object" version = "0.36.7" @@ -7803,9 +7371,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.1" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" dependencies = [ "critical-section", "portable-atomic", @@ -7817,47 +7385,116 @@ version = "11.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9" +[[package]] +name = "op-alloy" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9b8fee21003dd4f076563de9b9d26f8c97840157ef78593cd7f262c5ca99848" +dependencies = [ + "op-alloy-consensus", + "op-alloy-network", + "op-alloy-provider", + "op-alloy-rpc-types", + "op-alloy-rpc-types-engine", +] + [[package]] name = "op-alloy-consensus" -version = "0.12.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91764ebe0eddf6e3cfff41650332ff4e01defe372386027703f2e7e334734a05" +checksum = "736381a95471d23e267263cfcee9e1d96d30b9754a94a2819148f83379de8a86" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-network", + "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-serde 0.13.0", + "alloy-rpc-types-eth", + "alloy-serde", + "derive_more 2.0.1", + "serde", + "thiserror 2.0.18", +] + +[[package]] +name = "op-alloy-network" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4034183dca6bff6632e7c24c92e75ff5f0eabb58144edb4d8241814851334d47" +dependencies = [ + "alloy-consensus", + "alloy-network", + "alloy-primitives 1.5.7", + "alloy-provider", + "alloy-rpc-types-eth", + "alloy-signer", + "op-alloy-consensus", + "op-alloy-rpc-types", +] + +[[package]] +name = "op-alloy-provider" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6753d90efbaa8ea8bcb89c1737408ca85fa60d7adb875049d3f382c063666f86" +dependencies = [ + "alloy-network", + "alloy-primitives 1.5.7", + "alloy-provider", + "alloy-rpc-types-engine", + "alloy-transport", + "async-trait", + "op-alloy-rpc-types-engine", +] + +[[package]] +name = "op-alloy-rpc-types" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd87c6b9e5b6eee8d6b76f41b04368dca0e9f38d83338e5b00e730c282098a4" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives 1.5.7", + "alloy-rpc-types-eth", + "alloy-serde", "derive_more 2.0.1", + "op-alloy-consensus", "serde", - "thiserror 2.0.12", + "serde_json", + "thiserror 2.0.18", ] [[package]] name = "op-alloy-rpc-types-engine" -version = "0.12.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc26f8288839926d0137d39d70628bb5ac00fca449bab24c54cebd66c71b9cf4" +checksum = "77727699310a18cdeed32da3928c709e2704043b6584ed416397d5da65694efc" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", + "alloy-rlp", "alloy-rpc-types-engine", + "alloy-serde", "derive_more 2.0.1", "ethereum_ssz", + "ethereum_ssz_derive", "op-alloy-consensus", + "serde", + "sha2 0.10.9", "snap", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "op-revm" -version = "2.0.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e981d234dcfd3a3de7480e5a5cf7439071af39d15b7d258188cc4c69b9d1f26e" +checksum = "79c92b75162c2ed1661849fa51683b11254a5b661798360a2c24be918edafd40" dependencies = [ "auto_impl", - "once_cell", "revm", "serde", ] @@ -7874,7 +7511,7 @@ version = "0.10.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "cfg-if", "foreign-types 0.3.2", "libc", @@ -7891,7 +7528,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -7912,6 +7549,86 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "opentelemetry" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b84bcd6ae87133e903af7ef497404dda70c60d0ea14895fc8a5e6722754fc2a0" +dependencies = [ + "futures-core", + "futures-sink", + "js-sys", + "pin-project-lite", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "opentelemetry-http" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a6d09a73194e6b66df7c8f1b680f156d916a1a942abf2de06823dd02b7855d" +dependencies = [ + "async-trait", + "bytes", + "http 1.2.0", + "opentelemetry", + "reqwest 0.12.15", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2366db2dca4d2ad033cad11e6ee42844fd727007af5ad04a1730f4cb8163bf" +dependencies = [ + "http 1.2.0", + "opentelemetry", + "opentelemetry-http", + "opentelemetry-proto", + "opentelemetry_sdk", + "prost 0.14.3", + "reqwest 0.12.15", + "thiserror 2.0.18", + "tokio", + "tonic", + "tracing", +] + +[[package]] +name = "opentelemetry-proto" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7175df06de5eaee9909d4805a3d07e28bb752c34cab57fa9cff549da596b30f" +dependencies = [ + "opentelemetry", + "opentelemetry_sdk", + "prost 0.14.3", + "tonic", + "tonic-prost", +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e62e29dfe041afb8ed2a6c9737ab57db4907285d999ef8ad3a59092a36bdc846" + +[[package]] +name = "opentelemetry_sdk" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ae4f5991976fd48df6d843de219ca6d31b01daaab2dad5af2badeded372bd" +dependencies = [ + "futures-channel", + "futures-executor", + "futures-util", + "opentelemetry", + "percent-encoding", + "rand 0.9.2", + "thiserror 2.0.18", +] + [[package]] name = "option-ext" version = "0.2.0" @@ -7933,27 +7650,16 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" -[[package]] -name = "p256" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" -dependencies = [ - "ecdsa 0.14.8", - "elliptic-curve 0.12.3", - "sha2 0.10.8", -] - [[package]] name = "p256" version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" dependencies = [ - "ecdsa 0.16.9", - "elliptic-curve 0.13.8", + "ecdsa", + "elliptic-curve", "primeorder", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] @@ -8028,6 +7734,16 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac 0.12.1", +] + [[package]] name = "pem" version = "3.0.5" @@ -8064,21 +7780,11 @@ dependencies = [ "ucd-trie", ] -[[package]] -name = "petgraph" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = [ - "fixedbitset", - "indexmap 2.7.1", -] - [[package]] name = "phf" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" dependencies = [ "phf_macros", "phf_shared", @@ -8087,42 +7793,36 @@ dependencies = [ [[package]] name = "phf_generator" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" dependencies = [ + "fastrand", "phf_shared", - "rand 0.8.5", ] [[package]] name = "phf_macros" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" dependencies = [ "phf_generator", "phf_shared", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] name = "phf_shared" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" dependencies = [ "siphasher", ] -[[package]] -name = "pico-args" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" - [[package]] name = "pin-project" version = "1.1.9" @@ -8140,7 +7840,7 @@ checksum = "f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -8155,36 +7855,15 @@ 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 0.7.9", - "pkcs8 0.10.2", - "spki 0.7.3", -] - -[[package]] -name = "pkcs8" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" -dependencies = [ - "der 0.6.1", - "spki 0.6.0", + "der", + "pkcs8", + "spki", ] [[package]] @@ -8193,8 +7872,8 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "der 0.7.9", - "spki 0.7.3", + "der", + "spki", ] [[package]] @@ -8203,27 +7882,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" -[[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 = "pollster" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" - [[package]] name = "polyval" version = "0.6.2" @@ -8254,6 +7912,15 @@ dependencies = [ "serde", ] +[[package]] +name = "potential_utf" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +dependencies = [ + "zerovec 0.11.5", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -8266,15 +7933,9 @@ version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy 0.7.35", + "zerocopy", ] -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - [[package]] name = "prettyplease" version = "0.2.29" @@ -8282,7 +7943,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" dependencies = [ "proc-macro2", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -8291,7 +7952,7 @@ version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" dependencies = [ - "elliptic-curve 0.13.8", + "elliptic-curve", ] [[package]] @@ -8333,14 +7994,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -8353,7 +8014,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", "version_check", "yansi", ] @@ -8364,9 +8025,9 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ - "bit-set 0.8.0", - "bit-vec 0.8.0", - "bitflags 2.8.0", + "bit-set", + "bit-vec", + "bitflags 2.10.0", "lazy_static", "num-traits", "rand 0.8.5", @@ -8385,7 +8046,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.13.5", +] + +[[package]] +name = "prost" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568" +dependencies = [ + "bytes", + "prost-derive 0.14.3", ] [[package]] @@ -8398,7 +8069,20 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", +] + +[[package]] +name = "prost-derive" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" +dependencies = [ + "anyhow", + "itertools 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.114", ] [[package]] @@ -8452,37 +8136,44 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.5" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", + "cfg_aliases", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls 0.23.25", - "socket2", - "thiserror 1.0.69", + "rustls", + "socket2 0.6.2", + "thiserror 2.0.18", "tokio", "tracing", + "web-time", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ + "aws-lc-rs", "bytes", - "rand 0.8.5", + "getrandom 0.3.2", + "lru-slab", + "rand 0.9.2", "ring", "rustc-hash 2.1.1", - "rustls 0.23.25", + "rustls", + "rustls-pki-types", "slab", - "thiserror 1.0.69", + "thiserror 2.0.18", "tinyvec", "tracing", + "web-time", ] [[package]] @@ -8494,16 +8185,16 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2", + "socket2 0.5.8", "tracing", "windows-sys 0.59.0", ] [[package]] name = "quote" -version = "1.0.38" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" dependencies = [ "proc-macro2", ] @@ -8544,14 +8235,13 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", "serde", - "zerocopy 0.8.23", ] [[package]] @@ -8611,13 +8301,23 @@ dependencies = [ "rand_core 0.9.3", ] +[[package]] +name = "rapidhash" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84816e4c99c467e92cf984ee6328caa976dfecd33a673544489d79ca2caaefe5" +dependencies = [ + "rand 0.9.2", + "rustversion", +] + [[package]] name = "raw-cpuid" version = "11.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "529468c1335c1c03919960dfefdb1b3648858c20d7ec2d0663e728e4a717efbc" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", ] [[package]] @@ -8646,7 +8346,7 @@ version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", ] [[package]] @@ -8668,14 +8368,14 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.15", "libredox", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "regex" -version = "1.11.1" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -8685,9 +8385,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -8696,9 +8396,9 @@ dependencies = [ [[package]] name = "regex-lite" -version = "0.1.6" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" +checksum = "cab834c73d247e67f4fae452806d17d3c7501756d98c8808d7c9c7aa7d18f973" [[package]] name = "regex-syntax" @@ -8708,11 +8408,11 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "regress" -version = "0.10.1" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1541daf4e4ed43a0922b7969bdc2170178bcacc5dabf7e39bc508a9fa3953a7a" +checksum = "2057b2325e68a893284d1538021ab90279adac1139957ca2a74426c6f118fb48" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.16.1", "memchr", ] @@ -8730,49 +8430,120 @@ checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" dependencies = [ "base64 0.22.1", "bytes", - "encoding_rs", "futures-channel", "futures-core", "futures-util", - "h2 0.4.8", + "h2", "http 1.2.0", "http-body 1.0.1", "http-body-util", - "hyper 1.6.0", - "hyper-rustls 0.27.5", - "hyper-tls", + "hyper", + "hyper-rustls", "hyper-util", "ipnet", "js-sys", "log", "mime", - "mime_guess", - "native-tls", "once_cell", "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.25", - "rustls-pemfile 2.2.0", + "rustls", + "rustls-native-certs", + "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper", - "system-configuration", "tokio", - "tokio-native-tls", - "tokio-rustls 0.26.1", + "tokio-rustls", "tokio-util", "tower 0.5.2", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams", + "wasm-streams 0.4.2", "web-sys", "webpki-roots", - "windows-registry", + "windows-registry 0.4.0", +] + +[[package]] +name = "reqwest" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "rustls-platform-verifier 0.6.2", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tokio-util", + "tower 0.5.2", + "tower-http 0.6.8", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams 0.5.0", + "web-sys", +] + +[[package]] +name = "reqwest-middleware" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "199dda04a536b532d0cc04d7979e39b1c763ea749bf91507017069c00b96056f" +dependencies = [ + "anyhow", + "async-trait", + "http 1.2.0", + "reqwest 0.13.2", + "thiserror 2.0.18", + "tower-service", +] + +[[package]] +name = "reqwest-retry" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe2412db2af7d2268e7a5406be0431f37d9eb67ff390f35b395716f5f06c2eaa" +dependencies = [ + "anyhow", + "async-trait", + "futures", + "getrandom 0.2.15", + "http 1.2.0", + "hyper", + "reqwest 0.13.2", + "reqwest-middleware", + "retry-policies", + "thiserror 2.0.18", + "tokio", + "tracing", + "wasmtimer", ] [[package]] @@ -8786,12 +8557,12 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", "futures-core", "futures-util", "metrics", @@ -8810,16 +8581,17 @@ dependencies = [ [[package]] name = "reth-chain-state" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", "derive_more 2.0.1", "metrics", "parking_lot", "pin-project", + "rand 0.9.2", "reth-chainspec", "reth-errors", "reth-ethereum-primitives", @@ -8829,6 +8601,8 @@ dependencies = [ "reth-storage-api", "reth-trie", "revm-database", + "revm-state", + "serde", "tokio", "tokio-stream", "tracing", @@ -8836,16 +8610,16 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-chains 0.1.69", - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", + "alloy-chains", + "alloy-consensus", + "alloy-eips", "alloy-evm", - "alloy-genesis 0.13.0", - "alloy-primitives 0.8.26", - "alloy-trie 0.7.9", + "alloy-genesis", + "alloy-primitives 1.5.7", + "alloy-trie", "auto_impl", "derive_more 2.0.1", "reth-ethereum-forks", @@ -8856,11 +8630,11 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-eips", + "alloy-primitives 1.5.7", "cfg-if", "eyre", "libc", @@ -8868,19 +8642,19 @@ dependencies = [ "reth-fs-util", "secp256k1 0.30.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "reth-codecs" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-genesis 0.13.0", - "alloy-primitives 0.8.26", - "alloy-trie 0.7.9", + "alloy-consensus", + "alloy-eips", + "alloy-genesis", + "alloy-primitives 1.5.7", + "alloy-trie", "bytes", "modular-bitfield", "op-alloy-consensus", @@ -8891,48 +8665,61 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "convert_case", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] name = "reth-config" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "eyre", "humantime-serde", "reth-network-types", "reth-prune-types", "reth-stages-types", + "reth-static-file-types", "serde", - "toml", + "toml 0.9.12+spec-1.1.0", + "url", ] [[package]] name = "reth-consensus" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-primitives 1.5.7", "auto_impl", "reth-execution-types", "reth-primitives-traits", - "thiserror 2.0.12", + "thiserror 2.0.18", +] + +[[package]] +name = "reth-consensus-common" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "reth-chainspec", + "reth-consensus", + "reth-primitives-traits", ] [[package]] name = "reth-db" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "derive_more 2.0.1", "eyre", "metrics", @@ -8948,17 +8735,19 @@ dependencies = [ "rustc-hash 2.1.1", "strum", "sysinfo", - "thiserror 2.0.12", + "thiserror 2.0.18", + "tracing", ] [[package]] name = "reth-db-api" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-genesis 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-genesis", + "alloy-primitives 1.5.7", + "arrayvec", "bytes", "derive_more 2.0.1", "metrics", @@ -8978,11 +8767,11 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-eips", + "alloy-primitives 1.5.7", "bytes", "modular-bitfield", "reth-codecs", @@ -8992,14 +8781,13 @@ dependencies = [ [[package]] name = "reth-discv4" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "alloy-rlp", "discv5", "enr", - "generic-array", "itertools 0.14.0", "parking_lot", "rand 0.8.5", @@ -9010,7 +8798,7 @@ dependencies = [ "schnellru", "secp256k1 0.30.0", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-stream", "tracing", @@ -9018,10 +8806,10 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "alloy-rlp", "derive_more 2.0.1", "discv5", @@ -9029,28 +8817,28 @@ dependencies = [ "futures", "itertools 0.14.0", "metrics", - "rand 0.8.5", + "rand 0.9.2", "reth-chainspec", "reth-ethereum-forks", "reth-metrics", "reth-network-peers", "secp256k1 0.30.0", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", ] [[package]] name = "reth-dns-discovery" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", + "dashmap", "data-encoding", "enr", "hickory-resolver", "linked_hash_set", - "parking_lot", "reth-ethereum-forks", "reth-network-peers", "reth-tokio-util", @@ -9058,7 +8846,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-stream", "tracing", @@ -9066,11 +8854,11 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "aes", - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "alloy-rlp", "block-padding", "byteorder", @@ -9079,65 +8867,85 @@ dependencies = [ "ctr", "digest 0.10.7", "futures", - "generic-array", "hmac 0.12.1", "pin-project", "rand 0.8.5", "reth-network-peers", "secp256k1 0.30.0", - "sha2 0.10.8", - "sha3", - "thiserror 2.0.12", + "sha2 0.10.9", + "thiserror 2.0.18", "tokio", "tokio-stream", "tokio-util", "tracing", - "typenum", +] + +[[package]] +name = "reth-engine-local" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" +dependencies = [ + "alloy-consensus", + "alloy-primitives 1.5.7", + "alloy-rpc-types-engine", + "eyre", + "futures-util", + "reth-chainspec", + "reth-engine-primitives", + "reth-ethereum-engine-primitives", + "reth-payload-builder", + "reth-payload-primitives", + "reth-primitives-traits", + "reth-storage-api", + "reth-transaction-pool", + "tokio", + "tokio-stream", + "tracing", ] [[package]] name = "reth-engine-primitives" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rpc-types-engine", "auto_impl", "futures", "reth-chain-state", "reth-errors", "reth-ethereum-primitives", + "reth-evm", "reth-execution-types", "reth-payload-builder-primitives", "reth-payload-primitives", "reth-primitives-traits", - "reth-trie", "reth-trie-common", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", ] [[package]] name = "reth-errors" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "reth-consensus", "reth-execution-errors", - "reth-fs-util", "reth-storage-errors", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "reth-eth-wire" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-chains 0.1.69", - "alloy-primitives 0.8.26", + "alloy-chains", + "alloy-primitives 1.5.7", "alloy-rlp", "bytes", "derive_more 2.0.1", @@ -9152,7 +8960,7 @@ dependencies = [ "reth-primitives-traits", "serde", "snap", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-stream", "tokio-util", @@ -9161,14 +8969,14 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-chains 0.1.69", - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-hardforks 0.1.3", - "alloy-primitives 0.8.26", + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-hardforks 0.4.7", + "alloy-primitives 1.5.7", "alloy-rlp", "bytes", "derive_more 2.0.1", @@ -9177,16 +8985,16 @@ dependencies = [ "reth-ethereum-primitives", "reth-primitives-traits", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "reth-ethereum-engine-primitives" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rlp", "alloy-rpc-types-engine", "reth-engine-primitives", @@ -9194,17 +9002,18 @@ dependencies = [ "reth-payload-primitives", "reth-primitives-traits", "serde", - "sha2 0.10.8", + "sha2 0.10.9", + "thiserror 2.0.18", ] [[package]] name = "reth-ethereum-forks" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-eip2124 0.1.0", - "alloy-hardforks 0.1.3", - "alloy-primitives 0.8.26", + "alloy-eip2124", + "alloy-hardforks 0.4.7", + "alloy-primitives 1.5.7", "auto_impl", "once_cell", "rustc-hash 2.1.1", @@ -9212,39 +9021,36 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-evm", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-rpc-types-eth 0.13.0", - "derive_more 2.0.1", + "alloy-rpc-types-eth", + "alloy-serde", "modular-bitfield", - "rand 0.8.5", "reth-codecs", "reth-primitives-traits", "reth-zstd-compressors", - "revm-context", - "secp256k1 0.30.0", "serde", "serde_with", ] [[package]] name = "reth-evm" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", + "alloy-consensus", + "alloy-eips", "alloy-evm", - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "auto_impl", "derive_more 2.0.1", "futures-util", + "rayon", "reth-execution-errors", "reth-execution-types", "reth-primitives-traits", @@ -9254,28 +9060,49 @@ dependencies = [ "revm", ] +[[package]] +name = "reth-evm-ethereum" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-evm", + "alloy-primitives 1.5.7", + "alloy-rpc-types-engine", + "derive_more 2.0.1", + "reth-chainspec", + "reth-ethereum-forks", + "reth-ethereum-primitives", + "reth-evm", + "reth-execution-types", + "reth-primitives-traits", + "reth-storage-errors", + "revm", +] + [[package]] name = "reth-execution-errors" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "alloy-evm", - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "alloy-rlp", "nybbles", "reth-storage-errors", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "reth-execution-types" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", + "alloy-consensus", + "alloy-eips", "alloy-evm", - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "derive_more 2.0.1", "reth-ethereum-primitives", "reth-primitives-traits", @@ -9287,44 +9114,43 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "reth-libmdbx" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "byteorder", "dashmap", "derive_more 2.0.1", - "indexmap 2.7.1", "parking_lot", "reth-mdbx-sys", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", ] [[package]] name = "reth-mdbx-sys" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "bindgen 0.70.1", + "bindgen 0.72.1", "cc", ] [[package]] name = "reth-metrics" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "futures", "metrics", @@ -9335,34 +9161,35 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", + "ipnet", ] [[package]] name = "reth-net-nat" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "futures-util", "if-addrs", - "reqwest", + "reqwest 0.12.15", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", ] [[package]] name = "reth-network" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rlp", "aquamarine", "auto_impl", @@ -9375,6 +9202,8 @@ dependencies = [ "parking_lot", "pin-project", "rand 0.8.5", + "rand 0.9.2", + "rayon", "reth-chainspec", "reth-consensus", "reth-discv4", @@ -9402,7 +9231,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-stream", "tokio-util", @@ -9411,11 +9240,13 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-primitives 1.5.7", "alloy-rpc-types-admin", + "alloy-rpc-types-eth", "auto_impl", "derive_more 2.0.1", "enr", @@ -9427,19 +9258,19 @@ dependencies = [ "reth-network-types", "reth-tokio-util", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-stream", ] [[package]] name = "reth-network-p2p" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", "auto_impl", "derive_more 2.0.1", "futures", @@ -9456,25 +9287,25 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "alloy-rlp", "enr", "secp256k1 0.30.0", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "url", ] [[package]] name = "reth-network-types" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-eip2124 0.1.0", + "alloy-eip2124", "humantime-serde", "reth-net-banlist", "reth-network-peers", @@ -9485,8 +9316,8 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "anyhow", "bincode", @@ -9495,15 +9326,15 @@ dependencies = [ "memmap2", "reth-fs-util", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", "zstd", ] [[package]] name = "reth-node-api" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -9526,12 +9357,12 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rpc-types-engine", "clap", "derive_more 2.0.1", @@ -9539,7 +9370,8 @@ dependencies = [ "eyre", "futures", "humantime", - "rand 0.8.5", + "ipnet", + "rand 0.9.2", "reth-chainspec", "reth-cli-util", "reth-config", @@ -9547,53 +9379,57 @@ dependencies = [ "reth-db", "reth-discv4", "reth-discv5", + "reth-engine-local", "reth-engine-primitives", "reth-ethereum-forks", + "reth-net-banlist", "reth-net-nat", "reth-network", "reth-network-p2p", "reth-network-peers", "reth-primitives-traits", "reth-prune-types", + "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-rpc-types-compat", "reth-stages-types", "reth-storage-api", "reth-storage-errors", "reth-tracing", + "reth-tracing-otlp", "reth-transaction-pool", "secp256k1 0.30.0", "serde", "shellexpand", "strum", - "thiserror 2.0.12", - "toml", + "thiserror 2.0.18", + "toml 0.9.12+spec-1.1.0", "tracing", + "url", "vergen", "vergen-git2", ] [[package]] name = "reth-node-types" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "reth-chainspec", "reth-db-api", "reth-engine-primitives", "reth-payload-primitives", "reth-primitives-traits", - "reth-trie-db", ] [[package]] name = "reth-payload-builder" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-rpc-types 0.13.0", + "alloy-consensus", + "alloy-primitives 1.5.7", + "alloy-rpc-types", "futures-util", "metrics", "reth-chain-state", @@ -9609,8 +9445,8 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "pin-project", "reth-payload-primitives", @@ -9621,29 +9457,33 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rpc-types-engine", "auto_impl", + "either", "op-alloy-rpc-types-engine", "reth-chain-state", "reth-chainspec", "reth-errors", + "reth-execution-types", "reth-primitives-traits", + "reth-trie-common", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", ] [[package]] name = "reth-primitives" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", + "alloy-consensus", "once_cell", "reth-ethereum-forks", "reth-ethereum-primitives", @@ -9653,20 +9493,21 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-genesis 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-genesis", + "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-trie 0.7.9", + "alloy-rpc-types-eth", + "alloy-trie", "auto_impl", "byteorder", "bytes", + "dashmap", "derive_more 2.0.1", - "k256", "modular-bitfield", "once_cell", "op-alloy-consensus", @@ -9678,20 +9519,18 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "reth-provider" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rpc-types-engine", - "auto_impl", - "dashmap", "eyre", "itertools 0.14.0", "metrics", @@ -9705,11 +9544,9 @@ dependencies = [ "reth-db-api", "reth-errors", "reth-ethereum-primitives", - "reth-evm", "reth-execution-types", "reth-fs-util", "reth-metrics", - "reth-network-p2p", "reth-nippy-jar", "reth-node-types", "reth-primitives-traits", @@ -9718,33 +9555,35 @@ dependencies = [ "reth-static-file-types", "reth-storage-api", "reth-storage-errors", + "reth-tasks", "reth-trie", "reth-trie-db", "revm-database", "strum", - "tokio", "tracing", ] [[package]] name = "reth-prune-types" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "derive_more 2.0.1", "modular-bitfield", "reth-codecs", "serde", - "thiserror 2.0.12", + "strum", + "thiserror 2.0.18", + "tracing", ] [[package]] name = "reth-revm" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "reth-primitives-traits", "reth-storage-api", "reth-storage-errors", @@ -9754,47 +9593,50 @@ dependencies = [ [[package]] name = "reth-rpc" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-dyn-abi 0.8.26", - "alloy-eips 0.13.0", + "alloy-consensus", + "alloy-dyn-abi", + "alloy-eip7928", + "alloy-eips", "alloy-evm", - "alloy-genesis 0.13.0", - "alloy-network 0.13.0", - "alloy-primitives 0.8.26", + "alloy-genesis", + "alloy-network", + "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-rpc-types 0.13.0", + "alloy-rpc-client", + "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-beacon", "alloy-rpc-types-debug", "alloy-rpc-types-engine", - "alloy-rpc-types-eth 0.13.0", + "alloy-rpc-types-eth", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-serde 0.13.0", - "alloy-signer 0.13.0", - "alloy-signer-local 0.13.0", + "alloy-serde", + "alloy-signer", + "alloy-signer-local", "async-trait", "derive_more 2.0.1", + "dyn-clone", "futures", - "http 1.2.0", - "http-body 1.0.1", - "hyper 1.6.0", - "jsonrpsee", - "jsonwebtoken", + "itertools 0.14.0", + "jsonrpsee 0.26.0", + "jsonrpsee-types 0.26.0", "parking_lot", "pin-project", - "rand 0.8.5", "reth-chain-state", "reth-chainspec", "reth-consensus", + "reth-consensus-common", "reth-engine-primitives", "reth-errors", + "reth-ethereum-engine-primitives", "reth-ethereum-primitives", "reth-evm", + "reth-evm-ethereum", "reth-execution-types", "reth-metrics", "reth-network-api", @@ -9804,118 +9646,144 @@ dependencies = [ "reth-primitives-traits", "reth-revm", "reth-rpc-api", + "reth-rpc-convert", "reth-rpc-engine-api", "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-rpc-types-compat", "reth-storage-api", "reth-tasks", "reth-transaction-pool", + "reth-trie-common", "revm", "revm-inspectors", "revm-primitives", "serde", "serde_json", - "thiserror 2.0.12", + "sha2 0.10.9", + "thiserror 2.0.18", "tokio", "tokio-stream", - "tower 0.4.13", "tracing", "tracing-futures", ] [[package]] name = "reth-rpc-api" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" -dependencies = [ - "alloy-eips 0.13.0", - "alloy-genesis 0.13.0", - "alloy-json-rpc 0.13.0", - "alloy-primitives 0.8.26", - "alloy-rpc-types 0.13.0", +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" +dependencies = [ + "alloy-eip7928", + "alloy-eips", + "alloy-genesis", + "alloy-json-rpc", + "alloy-primitives 1.5.7", + "alloy-rpc-types", "alloy-rpc-types-admin", - "alloy-rpc-types-anvil 0.13.0", + "alloy-rpc-types-anvil", "alloy-rpc-types-beacon", "alloy-rpc-types-debug", "alloy-rpc-types-engine", - "alloy-rpc-types-eth 0.13.0", + "alloy-rpc-types-eth", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-serde 0.13.0", - "jsonrpsee", + "alloy-serde", + "jsonrpsee 0.26.0", + "reth-chain-state", "reth-engine-primitives", "reth-network-peers", "reth-rpc-eth-api", + "reth-trie-common", + "serde_json", +] + +[[package]] +name = "reth-rpc-convert" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" +dependencies = [ + "alloy-consensus", + "alloy-evm", + "alloy-json-rpc", + "alloy-network", + "alloy-primitives 1.5.7", + "alloy-rpc-types-eth", + "alloy-signer", + "auto_impl", + "dyn-clone", + "jsonrpsee-types 0.26.0", + "reth-ethereum-primitives", + "reth-evm", + "reth-primitives-traits", + "thiserror 2.0.18", ] [[package]] name = "reth-rpc-engine-api" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rpc-types-engine", "async-trait", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "metrics", - "parking_lot", "reth-chainspec", "reth-engine-primitives", "reth-metrics", + "reth-network-api", "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", "reth-primitives-traits", "reth-rpc-api", - "reth-rpc-server-types", "reth-storage-api", "reth-tasks", "reth-transaction-pool", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", ] [[package]] name = "reth-rpc-eth-api" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-dyn-abi 0.8.26", - "alloy-eips 0.13.0", - "alloy-json-rpc 0.13.0", - "alloy-network 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-dyn-abi", + "alloy-eips", + "alloy-evm", + "alloy-json-rpc", + "alloy-network", + "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-rpc-types-eth 0.13.0", + "alloy-rpc-types-eth", "alloy-rpc-types-mev", - "alloy-serde 0.13.0", + "alloy-serde", "async-trait", "auto_impl", "dyn-clone", "futures", - "jsonrpsee", - "jsonrpsee-types", + "jsonrpsee 0.26.0", + "jsonrpsee-types 0.26.0", "parking_lot", + "reth-chain-state", "reth-chainspec", "reth-errors", "reth-evm", "reth-network-api", "reth-node-api", - "reth-payload-builder", "reth-primitives-traits", - "reth-provider", "reth-revm", + "reth-rpc-convert", "reth-rpc-eth-types", "reth-rpc-server-types", - "reth-rpc-types-compat", + "reth-storage-api", "reth-tasks", "reth-transaction-pool", "reth-trie-common", @@ -9927,21 +9795,26 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", - "alloy-rpc-types-eth 0.13.0", - "alloy-sol-types 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-evm", + "alloy-network", + "alloy-primitives 1.5.7", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-sol-types", + "alloy-transport", "derive_more 2.0.1", "futures", "itertools 0.14.0", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "metrics", - "rand 0.8.5", + "rand 0.9.2", + "reqwest 0.12.15", "reth-chain-state", "reth-chainspec", "reth-errors", @@ -9951,8 +9824,8 @@ dependencies = [ "reth-metrics", "reth-primitives-traits", "reth-revm", + "reth-rpc-convert", "reth-rpc-server-types", - "reth-rpc-types-compat", "reth-storage-api", "reth-tasks", "reth-transaction-pool", @@ -9961,47 +9834,35 @@ dependencies = [ "revm-inspectors", "schnellru", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-stream", "tracing", + "url", ] [[package]] name = "reth-rpc-server-types" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rpc-types-engine", - "jsonrpsee-core", - "jsonrpsee-types", + "jsonrpsee-core 0.26.0", + "jsonrpsee-types 0.26.0", "reth-errors", "reth-network-api", "serde", "strum", ] -[[package]] -name = "reth-rpc-types-compat" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" -dependencies = [ - "alloy-consensus 0.13.0", - "alloy-primitives 0.8.26", - "alloy-rpc-types-eth 0.13.0", - "jsonrpsee-types", - "reth-primitives-traits", - "serde", -] - [[package]] name = "reth-stages-types" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "bytes", "modular-bitfield", "reth-codecs", @@ -10011,23 +9872,26 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "derive_more 2.0.1", + "fixed-map", + "reth-stages-types", "serde", "strum", + "tracing", ] [[package]] name = "reth-storage-api" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rpc-types-engine", "auto_impl", "reth-chainspec", @@ -10040,30 +9904,31 @@ dependencies = [ "reth-stages-types", "reth-storage-errors", "reth-trie-common", - "reth-trie-db", "revm-database", + "serde_json", ] [[package]] name = "reth-storage-errors" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rlp", "derive_more 2.0.1", "reth-primitives-traits", "reth-prune-types", "reth-static-file-types", "revm-database-interface", - "thiserror 2.0.12", + "revm-state", + "thiserror 2.0.18", ] [[package]] name = "reth-tasks" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "auto_impl", "dyn-clone", @@ -10072,7 +9937,7 @@ dependencies = [ "pin-project", "rayon", "reth-metrics", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", "tracing-futures", @@ -10080,8 +9945,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "tokio", "tokio-stream", @@ -10090,8 +9955,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "clap", "eyre", @@ -10100,42 +9965,65 @@ dependencies = [ "tracing-appender", "tracing-journald", "tracing-logfmt", - "tracing-subscriber 0.3.20", + "tracing-samply", + "tracing-subscriber 0.3.22", +] + +[[package]] +name = "reth-tracing-otlp" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" +dependencies = [ + "clap", + "eyre", + "opentelemetry", + "opentelemetry-otlp", + "opentelemetry-semantic-conventions", + "opentelemetry_sdk", + "tracing", + "tracing-opentelemetry", + "tracing-subscriber 0.3.22", + "url", ] [[package]] name = "reth-transaction-pool" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rlp", "aquamarine", "auto_impl", - "bitflags 2.8.0", + "bitflags 2.10.0", "futures-util", "metrics", "parking_lot", - "rand 0.8.5", + "pin-project", + "rand 0.9.2", "reth-chain-state", "reth-chainspec", "reth-eth-wire-types", "reth-ethereum-primitives", + "reth-evm", + "reth-evm-ethereum", "reth-execution-types", "reth-fs-util", "reth-metrics", "reth-primitives-traits", "reth-storage-api", "reth-tasks", + "revm", "revm-interpreter", "revm-primitives", "rustc-hash 2.1.1", "schnellru", "serde", + "serde_json", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-stream", "tracing", @@ -10143,17 +10031,18 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-eips 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-trie 0.7.9", + "alloy-trie", "auto_impl", "itertools 0.14.0", "metrics", + "parking_lot", "reth-execution-errors", "reth-metrics", "reth-primitives-traits", @@ -10167,15 +10056,16 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-consensus 0.13.0", - "alloy-primitives 0.8.26", + "alloy-consensus", + "alloy-primitives 1.5.7", "alloy-rlp", - "alloy-rpc-types-eth 0.13.0", - "alloy-serde 0.13.0", - "alloy-trie 0.7.9", + "alloy-rpc-types-eth", + "alloy-serde", + "alloy-trie", + "arrayvec", "bytes", "derive_more 2.0.1", "itertools 0.14.0", @@ -10190,47 +10080,62 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", + "metrics", + "parking_lot", "reth-db-api", "reth-execution-errors", + "reth-metrics", "reth-primitives-traits", + "reth-stages-types", + "reth-storage-api", + "reth-storage-errors", "reth-trie", + "reth-trie-common", "tracing", ] [[package]] name = "reth-trie-sparse" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "alloy-rlp", + "alloy-trie", "auto_impl", - "metrics", "reth-execution-errors", - "reth-metrics", "reth-primitives-traits", - "reth-tracing", "reth-trie-common", "smallvec", + "tracing", ] [[package]] name = "reth-zstd-compressors" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "zstd", ] +[[package]] +name = "retry-policies" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a4bd6027df676bcb752d3724db0ea3c0c5fc1dd0376fec51ac7dcaf9cc69be" +dependencies = [ + "rand 0.9.2", +] + [[package]] name = "revm" -version = "21.0.0" +version = "34.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7db41167e2a1fddb734984cc26e4bf0a0cb298829d1c488b4de37bda764e1d47" +checksum = "c2aabdebaa535b3575231a88d72b642897ae8106cf6b0d12eafc6bfdf50abfc7" dependencies = [ "revm-bytecode", "revm-context", @@ -10247,9 +10152,9 @@ dependencies = [ [[package]] name = "revm-bytecode" -version = "2.0.0" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc3ae92c0c071f4a5ac3ef398fed50bacf8ebd5495d2afded34c60874afa7a3" +checksum = "74d1e5c1eaa44d39d537f668bc5c3409dc01e5c8be954da6c83370bbdf006457" dependencies = [ "bitvec", "phf", @@ -10259,10 +10164,11 @@ dependencies = [ [[package]] name = "revm-context" -version = "2.0.0" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5fd5d8a35cf33d2494e32a966ebee6bc23dea9b1fbc3477c5b58e42ddceaa5b" +checksum = "892ff3e6a566cf8d72ffb627fdced3becebbd9ba64089c25975b9b028af326a5" dependencies = [ + "bitvec", "cfg-if", "derive-where", "revm-bytecode", @@ -10275,13 +10181,14 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "2.0.0" +version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8253163a7868c86b88dc76a193724b8c6252bf260dc1cf11d814a5f4fa7a804" +checksum = "57f61cc6d23678c4840af895b19f8acfbbd546142ec8028b6526c53cc1c16c98" dependencies = [ - "alloy-eip2930 0.1.0", - "alloy-eip7702 0.5.1", + "alloy-eip2930", + "alloy-eip7702", "auto_impl", + "either", "revm-database-interface", "revm-primitives", "revm-state", @@ -10290,12 +10197,11 @@ dependencies = [ [[package]] name = "revm-database" -version = "2.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb40baf1ec91bfda68a37a9be72c5d089e2b662532689209cb2e0febe1eb64c" +checksum = "529528d0b05fe646be86223032c3e77aa8b05caa2a35447d538c55965956a511" dependencies = [ - "alloy-eips 0.13.0", - "auto_impl", + "alloy-eips", "revm-bytecode", "revm-database-interface", "revm-primitives", @@ -10305,23 +10211,26 @@ dependencies = [ [[package]] name = "revm-database-interface" -version = "2.0.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c541612673da04df1ab3a6a56127851e93a5d05539eb915a6c541d24e7c5902" +checksum = "b7bf93ac5b91347c057610c0d96e923db8c62807e03f036762d03e981feddc1d" dependencies = [ "auto_impl", + "either", "revm-primitives", "revm-state", "serde", + "thiserror 2.0.18", ] [[package]] name = "revm-handler" -version = "2.0.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f55164c03c05eace53cf7f64df5dff14c7769956e6f2b9e4acb88301dc7537c" +checksum = "0cd0e43e815a85eded249df886c4badec869195e70cdd808a13cfca2794622d2" dependencies = [ "auto_impl", + "derive-where", "revm-bytecode", "revm-context", "revm-context-interface", @@ -10335,11 +10244,12 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "2.0.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f67d36e1abebe20b891b7ef57de3af2addfbc2d9cd4ea3f49ade8a67d0e79d" +checksum = "4f3ccad59db91ef93696536a0dbaf2f6f17cfe20d4d8843ae118edb7e97947ef" dependencies = [ "auto_impl", + "either", "revm-context", "revm-database-interface", "revm-handler", @@ -10352,13 +10262,14 @@ dependencies = [ [[package]] name = "revm-inspectors" -version = "0.18.1" -source = "git+https://github.com/chainwayxyz/revm-inspectors?rev=574d614ce505d3c0c4534d8b8e62d8acb3fa9651#574d614ce505d3c0c4534d8b8e62d8acb3fa9651" +version = "0.34.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e435414e9de50a1b930da602067c76365fea2fea11e80ceb50783c94ddd127f" dependencies = [ - "alloy-primitives 0.8.26", - "alloy-rpc-types-eth 0.13.0", + "alloy-primitives 1.5.7", + "alloy-rpc-types-eth", "alloy-rpc-types-trace", - "alloy-sol-types 0.8.26", + "alloy-sol-types", "anstyle", "boa_engine", "boa_gc", @@ -10366,81 +10277,72 @@ dependencies = [ "revm", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "revm-interpreter" -version = "17.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd45ea4fdee2c3f430df4ddb4936dc85c49dc5a7ce9838a8b9ad6861ab153c6" +checksum = "11406408597bc249392d39295831c4b641b3a6f5c471a7c41104a7a1e3564c07" dependencies = [ "revm-bytecode", "revm-context-interface", "revm-primitives", + "revm-state", "serde", ] [[package]] name = "revm-precompile" -version = "18.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac48995560dd5ea15e3788106bdf8893186d945bd40d674fb63aa351cf2e58fa" +checksum = "50c1285c848d240678bf69cb0f6179ff5a4aee6fc8e921d89708087197a0aff3" dependencies = [ "ark-bls12-381", "ark-bn254", "ark-ec", "ark-ff 0.5.0", "ark-serialize 0.5.0", + "arrayref", "aurora-engine-modexp", "blst", "c-kzg", "cfg-if", "k256", - "libsecp256k1", - "once_cell", - "p256 0.13.2", + "p256", "revm-primitives", "ripemd", - "secp256k1 0.30.0", - "sha2 0.10.8", + "secp256k1 0.31.1", + "sha2 0.10.9", "substrate-bn", ] [[package]] name = "revm-primitives" -version = "17.0.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb9b235b3c03299a531717ae4f9ee6bdb4c1a1755c9f8ce751298d1c99d95fc3" +checksum = "ba580c56a8ec824a64f8a1683577876c2e1dbe5247044199e9b881421ad5dcf9" dependencies = [ - "alloy-primitives 0.8.26", - "enumn", + "alloy-primitives 1.5.7", + "num_enum", + "once_cell", "serde", ] [[package]] name = "revm-state" -version = "2.0.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfdff0435bd0cb9e1f9dcc44eaea581973b0550cb897ce368d43259922b1c241" +checksum = "311720d4f0f239b041375e7ddafdbd20032a33b7bae718562ea188e188ed9fd3" dependencies = [ - "bitflags 2.8.0", + "alloy-eip7928", + "bitflags 2.10.0", "revm-bytecode", "revm-primitives", "serde", ] -[[package]] -name = "rfc6979" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" -dependencies = [ - "crypto-bigint 0.4.9", - "hmac 0.12.1", - "zeroize", -] - [[package]] name = "rfc6979" version = "0.4.0" @@ -10480,22 +10382,32 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b37f9050c74d66eb953591e88a60f2d347e99b121e7330eabb0f29c4053d2a36" dependencies = [ - "alloy-primitives 1.3.1", - "alloy-sol-types 1.3.1", + "alloy-primitives 1.5.7", + "alloy-sol-types", "bytemuck", "hex", "risc0-binfmt", "risc0-zkp", "risc0-zkvm", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", +] + +[[package]] +name = "risc0-bigint2" +version = "1.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af3997ed5c8a35afd2fa39055f1b841e19571379e55ee634a06c41d7b924052d" +dependencies = [ + "include_bytes_aligned", + "stability", ] [[package]] name = "risc0-binfmt" -version = "3.0.2" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c8f97f81bcdead4101bca06469ecef481a2695cd04e7e877b49dea56a7f6f2a" +checksum = "1883f0c5d19b865f395209a137dcb29e56dc49951424967b8d0114c129f46e77" dependencies = [ "anyhow", "borsh", @@ -10504,20 +10416,20 @@ dependencies = [ "elf", "lazy_static", "postcard", - "rand 0.9.0", + "rand 0.9.2", "risc0-zkp", "risc0-zkvm-platform", "ruint", - "semver 1.0.25", + "semver 1.0.27", "serde", "tracing", ] [[package]] name = "risc0-build" -version = "3.0.3" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bbb512d728e011d03ce0958ca7954624ee13a215bcafd859623b3c63b2a3f60" +checksum = "f89937fa1c424b188cc4cabf65335736eca9c1e3df79c127f48636f55682f3a4" dependencies = [ "anyhow", "cargo_metadata 0.19.2", @@ -10530,7 +10442,7 @@ dependencies = [ "risc0-zkp", "risc0-zkvm-platform", "rzup", - "semver 1.0.25", + "semver 1.0.27", "serde", "serde_json", "stability", @@ -10539,9 +10451,9 @@ dependencies = [ [[package]] name = "risc0-circuit-keccak" -version = "4.0.2" +version = "4.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f195f865ac1afdc21a172d7756fdcc21be18e13eb01d78d3d7f2b128fa881ba" +checksum = "5f543c60287fece797a5da4209384ab1bfebd9644fcfe591e11b1aa85f1a02f8" dependencies = [ "anyhow", "bytemuck", @@ -10555,9 +10467,9 @@ dependencies = [ [[package]] name = "risc0-circuit-recursion" -version = "4.0.2" +version = "4.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca8f15c8abc0fd8c097aa7459879110334d191c63dd51d4c28881c4a497279e" +checksum = "2347e909c6b2a65584b5898f3802eec5b8c1b4b45329edfdd8587b6a04dd3357" dependencies = [ "anyhow", "bytemuck", @@ -10570,12 +10482,12 @@ dependencies = [ [[package]] name = "risc0-circuit-rv32im" -version = "4.0.2" +version = "4.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1b0689f4a270a2f247b04397ebb431b8f64fe5170e98ee4f9d71bd04825205" +checksum = "61676419814a818fdb5e10066b13c5488b3f54aa9668794bd06c99bc91bff1f2" dependencies = [ "anyhow", - "bit-vec 0.8.0", + "bit-vec", "bytemuck", "derive_more 2.0.1", "paste", @@ -10588,9 +10500,9 @@ dependencies = [ [[package]] name = "risc0-core" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f2723fedace48c6c5a505bd8f97ac4e1712bc4cb769083e10536d862b66987" +checksum = "b5b956a976b8ce4713694dcc6c370b522a42ccef4ba45da5b6e57dbf26cdb7b1" dependencies = [ "bytemuck", "rand_core 0.9.3", @@ -10602,24 +10514,24 @@ version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a604f09f459f456fd9ef4919c6efcaa6a787a6f9ffcd76cfc81eae1860584a1" dependencies = [ - "alloy 1.0.9", - "alloy-primitives 1.3.1", - "alloy-sol-types 1.3.1", + "alloy", + "alloy-primitives 1.5.7", + "alloy-sol-types", "anyhow", "cfg-if", "hex", "risc0-aggregation", "risc0-zkvm", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", ] [[package]] name = "risc0-groth16" -version = "3.0.2" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "724285dc79604abfb2d40feaefe3e335420a6b293511661f77d6af62f1f5fae9" +checksum = "dc57e76bb87193d154ac5ee6ee352fbd7edabddab36f02a81f40a048e5ca14f9" dependencies = [ "anyhow", "ark-bn254", @@ -10638,9 +10550,9 @@ dependencies = [ [[package]] name = "risc0-zkos-v1compat" -version = "2.2.0" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "840c2228803557a8b7dc035a8f196516b6fd68c9dc6ac092f0c86241b5b1bafb" +checksum = "8bd70cb45b5d37d025f25663b87c6b9dc9df7f413ee2068531a57f50b0eb95db" dependencies = [ "include_bytes_aligned", "no_std_strings", @@ -10649,9 +10561,9 @@ dependencies = [ [[package]] name = "risc0-zkp" -version = "3.0.2" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb6bf356f469bb8744f72a07a37134c5812c1d55d6271bba80e87bdb7a58c8e" +checksum = "1f40d362a6c146ec6dc69208f539b92fd86e47b0dbc2083801423034a38155a2" dependencies = [ "anyhow", "blake2", @@ -10667,16 +10579,16 @@ dependencies = [ "risc0-core", "risc0-zkvm-platform", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "stability", "tracing", ] [[package]] name = "risc0-zkvm" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fcce11648a9ff60b8e7af2f0ce7fbf8d25275ab6d414cc91b9da69ee75bc978" +checksum = "c39d9943fe71decea1e8b6a99480cefa33799ab08b5abfccd7e2a18fb07121c1" dependencies = [ "anyhow", "bincode", @@ -10687,7 +10599,7 @@ dependencies = [ "derive_more 2.0.1", "hex", "lazy-regex", - "prost", + "prost 0.13.5", "risc0-binfmt", "risc0-build", "risc0-circuit-keccak", @@ -10700,9 +10612,9 @@ dependencies = [ "risc0-zkvm-platform", "rrs-lib", "rzup", - "semver 1.0.25", + "semver 1.0.27", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "stability", "tempfile", "tracing", @@ -10710,9 +10622,9 @@ dependencies = [ [[package]] name = "risc0-zkvm-platform" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfaa10feba15828c788837ddde84b994393936d8f5715228627cfe8625122a40" +checksum = "4db893788c416287e2e1a87e6b8f5302511a04a45329e699d6a32a16874fd24f" dependencies = [ "bytemuck", "cfg-if", @@ -10767,9 +10679,9 @@ dependencies = [ [[package]] name = "roaring" -version = "0.10.10" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a652edd001c53df0b3f96a36a8dc93fce6866988efc16808235653c6bcac8bf2" +checksum = "8ba9ce64a8f45d7fc86358410bb1a82e8c987504c0d4900e9141d69a9f26c885" dependencies = [ "bytemuck", "byteorder", @@ -10816,7 +10728,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb09b49230ba22e8c676e7b75dfe2887dea8121f18b530ae0ba519ce442d2b21" dependencies = [ - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] @@ -10831,10 +10743,10 @@ dependencies = [ "num-integer", "num-traits", "pkcs1", - "pkcs8 0.10.2", + "pkcs8", "rand_core 0.6.4", - "signature 2.2.0", - "spki 0.7.3", + "signature", + "spki", "subtle", "zeroize", ] @@ -10865,19 +10777,20 @@ dependencies = [ "regex", "relative-path", "rustc_version 0.4.1", - "syn 2.0.98", + "syn 2.0.114", "unicode-ident", ] [[package]] name = "ruint" -version = "1.16.0" +version = "1.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" +checksum = "c141e807189ad38a07276942c6623032d3753c8859c146104ac2e4d68865945a" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", + "ark-ff 0.5.0", "borsh", "bytes", "fastrlp 0.3.1", @@ -10889,10 +10802,10 @@ dependencies = [ "primitive-types", "proptest", "rand 0.8.5", - "rand 0.9.0", + "rand 0.9.2", "rlp", "ruint-macro", - "serde", + "serde_core", "valuable", "zeroize", ] @@ -10909,7 +10822,7 @@ version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37e34486da88d8e051c7c0e23c3f15fd806ea8546260aa2fec247e97242ec143" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "fallible-iterator", "fallible-streaming-iterator", "hashlink 0.10.0", @@ -10944,6 +10857,15 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + [[package]] name = "rustc_version" version = "0.3.3" @@ -10959,7 +10881,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.27", ] [[package]] @@ -10969,7 +10891,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dd18cd2bae1820af0b6ad5e54f4a51d0f3fcc53b05f845675074efcc7af071d" dependencies = [ "rustc_version 0.4.1", - "semver 1.0.25", + "semver 1.0.27", ] [[package]] @@ -10978,7 +10900,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys 0.4.15", @@ -10991,7 +10913,7 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys 0.9.4", @@ -11000,44 +10922,20 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.23.25" +version = "0.23.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" +checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643" dependencies = [ "aws-lc-rs", "log", "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.103.0", + "rustls-webpki", "subtle", "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" -dependencies = [ - "openssl-probe", - "rustls-pemfile 1.0.4", - "schannel", - "security-framework 2.11.1", -] - [[package]] name = "rustls-native-certs" version = "0.8.1" @@ -11047,16 +10945,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.2.0", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", + "security-framework 3.6.0", ] [[package]] @@ -11073,6 +10962,9 @@ name = "rustls-pki-types" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" +dependencies = [ + "web-time", +] [[package]] name = "rustls-platform-verifier" @@ -11085,37 +10977,48 @@ dependencies = [ "jni", "log", "once_cell", - "rustls 0.23.25", - "rustls-native-certs 0.8.1", + "rustls", + "rustls-native-certs", "rustls-platform-verifier-android", - "rustls-webpki 0.103.0", - "security-framework 3.2.0", + "rustls-webpki", + "security-framework 3.6.0", "security-framework-sys", - "webpki-root-certs", + "webpki-root-certs 0.26.8", "windows-sys 0.59.0", ] [[package]] -name = "rustls-platform-verifier-android" -version = "0.1.1" +name = "rustls-platform-verifier" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" +checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" +dependencies = [ + "core-foundation 0.10.0", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework 3.6.0", + "security-framework-sys", + "webpki-root-certs 1.0.6", + "windows-sys 0.60.2", +] [[package]] -name = "rustls-webpki" -version = "0.101.7" +name = "rustls-platform-verifier-android" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring", - "untrusted", -] +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.103.0" +version = "0.103.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aa4eeac2588ffff23e9d7a7e9b3f971c5fb5b7ebc9452745e0c232c64f83b2f" +checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" dependencies = [ "aws-lc-rs", "ring", @@ -11125,9 +11028,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.19" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-fork" @@ -11149,9 +11052,9 @@ checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" [[package]] name = "ryu-js" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad97d4ce1560a5e27cec89519dc8300d1aa6035b099821261c651486a19e44d5" +checksum = "dd29631678d6fb0903b69223673e122c32e9ae559d0960a38d574695ebc0ea15" [[package]] name = "rzup" @@ -11161,14 +11064,14 @@ checksum = "5d2aed296f203fa64bcb4b52069356dd86d6ec578593985b919b6995bee1f0ae" dependencies = [ "hex", "rsa", - "semver 1.0.25", + "semver 1.0.27", "serde", "serde_with", - "sha2 0.10.8", + "sha2 0.10.9", "strum", "tempfile", - "thiserror 2.0.12", - "toml", + "thiserror 2.0.18", + "toml 0.8.20", "yaml-rust2", ] @@ -11211,7 +11114,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -11225,52 +11128,22 @@ dependencies = [ "hashbrown 0.13.2", ] -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "sec1" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" -dependencies = [ - "base16ct 0.1.1", - "der 0.6.1", - "generic-array", - "pkcs8 0.9.0", - "subtle", - "zeroize", -] - [[package]] name = "sec1" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ - "base16ct 0.2.0", - "der 0.7.9", + "base16ct", + "der", "generic-array", - "pkcs8 0.10.2", + "pkcs8", "serdect", "subtle", "zeroize", @@ -11284,7 +11157,7 @@ checksum = "0e0cc0f1cf93f4969faf3ea1c7d8a9faed25918d96affa959720823dfe86d4f3" dependencies = [ "bitcoin_hashes", "rand 0.8.5", - "secp256k1-sys", + "secp256k1-sys 0.10.1", "serde", ] @@ -11296,15 +11169,35 @@ checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ "bitcoin_hashes", "rand 0.8.5", - "secp256k1-sys", + "secp256k1-sys 0.10.1", "serde", ] +[[package]] +name = "secp256k1" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" +dependencies = [ + "bitcoin_hashes", + "rand 0.9.2", + "secp256k1-sys 0.11.0", +] + [[package]] name = "secp256k1-sys" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" +dependencies = [ + "cc", +] + +[[package]] +name = "secp256k1-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb913707158fadaf0d8702c2db0e857de66eb003ccfdda5924b5f5ac98efb38" dependencies = [ "cc", ] @@ -11315,7 +11208,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -11324,11 +11217,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.2.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +checksum = "d17b898a6d6948c3a8ee4372c17cb384f90d2e6e912ef00895b14fd7ab54ec38" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -11337,32 +11230,48 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", ] +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser 0.7.0", +] + [[package]] name = "semver" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" dependencies = [ - "semver-parser", + "semver-parser 0.10.3", ] [[package]] name = "semver" -version = "1.0.25" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" dependencies = [ "serde", + "serde_core", ] +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + [[package]] name = "semver-parser" version = "0.10.3" @@ -11380,22 +11289,32 @@ checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" [[package]] name = "serde" -version = "1.0.218" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.218" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -11406,30 +11325,21 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] name = "serde_json" -version = "1.0.139" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ - "indexmap 2.7.1", + "indexmap 2.13.0", "itoa", "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_regex" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf" -dependencies = [ - "regex", "serde", + "serde_core", + "zmij", ] [[package]] @@ -11440,7 +11350,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -11452,6 +11362,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" +dependencies = [ + "serde_core", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -11474,7 +11393,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.7.1", + "indexmap 2.13.0", "serde", "serde_derive", "serde_json", @@ -11488,10 +11407,10 @@ version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ - "darling", + "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -11500,7 +11419,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" dependencies = [ - "base16ct 0.2.0", + "base16ct", "serde", ] @@ -11530,9 +11449,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -11561,9 +11480,9 @@ dependencies = [ [[package]] name = "sha3-asm" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" +checksum = "b31139435f327c93c6038ed350ae4588e2c70a13d50599509fee6349967ba35a" dependencies = [ "cc", "cfg-if", @@ -11605,7 +11524,7 @@ dependencies = [ "sov-modules-api", "sov-rollup-interface", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -11617,16 +11536,6 @@ dependencies = [ "libc", ] -[[package]] -name = "signature" -version = "1.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" -dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", -] - [[package]] name = "signature" version = "2.2.0" @@ -11637,12 +11546,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "similar" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" - [[package]] name = "simple_asn1" version = "0.6.2" @@ -11693,6 +11596,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "small_btree" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ba60d2df92ba73864714808ca68c059734853e6ab722b40e1cf543ebb3a057a" +dependencies = [ + "arrayvec", +] + [[package]] name = "smallvec" version = "1.14.0" @@ -11718,6 +11630,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + [[package]] name = "soketto" version = "0.8.1" @@ -11740,7 +11662,7 @@ version = "2.1.0" dependencies = [ "borsh", "hex", - "jsonrpsee", + "jsonrpsee 0.26.0", "schemars", "serde", "serde_json", @@ -11751,14 +11673,14 @@ dependencies = [ "sov-rollup-interface", "sov-state", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "sov-db" version = "2.1.0" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "anyhow", "bincode", "borsh", @@ -11769,7 +11691,7 @@ dependencies = [ "rlimit", "rocksdb", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "sov-rollup-interface", "sov-schema-db", "tempfile", @@ -11790,18 +11712,18 @@ dependencies = [ "schemars", "serde", "serde_json", - "sha2 0.10.8", - "thiserror 2.0.12", + "sha2 0.10.9", + "thiserror 2.0.18", ] [[package]] name = "sov-ledger-rpc" version = "2.1.0" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "anyhow", "faster-hex", - "jsonrpsee", + "jsonrpsee 0.26.0", "serde", "sov-db", "sov-modules-api", @@ -11822,7 +11744,7 @@ dependencies = [ "rusqlite", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "sov-rollup-interface", "tempfile", "tokio", @@ -11855,12 +11777,12 @@ dependencies = [ "digest 0.10.7", "hex", "jmt", - "jsonrpsee", + "jsonrpsee 0.26.0", "rand 0.8.5", "schemars", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "sov-db", "sov-keys", "sov-modules-api", @@ -11870,7 +11792,7 @@ dependencies = [ "sov-rollup-interface", "sov-state", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -11888,14 +11810,14 @@ dependencies = [ "schemars", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "sov-keys", "sov-modules-core", "sov-prover-storage-manager", "sov-rollup-interface", "sov-state", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", "tinyvec", ] @@ -11904,12 +11826,12 @@ name = "sov-modules-macros" version = "2.1.0" dependencies = [ "borsh", - "jsonrpsee", + "jsonrpsee 0.26.0", "proc-macro2", "quote", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "sov-modules-api", "sov-modules-core", "sov-state", @@ -11926,7 +11848,7 @@ dependencies = [ "citrea-common", "citrea-stf", "derive_more 1.0.0", - "jsonrpsee", + "jsonrpsee 0.26.0", "prover-services", "reth-tasks", "sov-db", @@ -11948,7 +11870,7 @@ dependencies = [ "citrea-primitives", "hex", "jmt", - "jsonrpsee", + "jsonrpsee 0.26.0", "rs_merkle", "serde", "sov-db", @@ -11977,7 +11899,7 @@ dependencies = [ name = "sov-rollup-interface" version = "2.1.0" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "anyhow", "async-trait", "borsh", @@ -11989,9 +11911,9 @@ dependencies = [ "risc0-zkp", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "sov-keys", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", "uuid", @@ -12008,7 +11930,7 @@ dependencies = [ "rocksdb", "sov-schema-db", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tracing", ] @@ -12017,7 +11939,7 @@ dependencies = [ name = "sov-state" version = "2.1.0" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "alloy-rlp", "anyhow", "bcs", @@ -12026,7 +11948,7 @@ dependencies = [ "jmt", "proptest", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "sov-db", "sov-keys", "sov-modules-core", @@ -12063,16 +11985,6 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -[[package]] -name = "spki" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" -dependencies = [ - "base64ct", - "der 0.6.1", -] - [[package]] name = "spki" version = "0.7.3" @@ -12080,15 +11992,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ "base64ct", - "der 0.7.9", + "der", ] -[[package]] -name = "sptr" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" - [[package]] name = "stability" version = "0.2.1" @@ -12096,7 +12002,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" dependencies = [ "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -12111,18 +12017,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "string_cache" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" -dependencies = [ - "new_debug_unreachable", - "parking_lot", - "phf_shared", - "precomputed-hash", -] - [[package]] name = "strsim" version = "0.11.1" @@ -12148,19 +12042,21 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] name = "substrate-bn" version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b5bbfa79abbae15dd642ea8176a21a635ff3c00059961d1ea27ad04e5b441c" +source = "git+https://github.com/risc0/paritytech-bn?tag=v0.6.0-risczero.0#22108fe8c6ea1ebc1358fc4fd6854a6bf46e3509" dependencies = [ + "bytemuck", "byteorder", "crunchy", + "crypto-bigint", "lazy_static", "rand 0.8.5", + "risc0-bigint2", "rustc-hex", ] @@ -12183,9 +12079,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.98" +version = "2.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" dependencies = [ "proc-macro2", "quote", @@ -12194,26 +12090,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4e6eed052a117409a1a744c8bda9c3ea6934597cf7419f791cb7d590871c4c" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.98", -] - -[[package]] -name = "syn-solidity" -version = "1.3.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" +checksum = "53f425ae0b12e2f5ae65542e00898d500d4d318b4baf09f40fd0d410454e9947" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -12233,20 +12117,21 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] name = "sysinfo" -version = "0.33.1" +version = "0.38.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fc858248ea01b66f19d8e8a6d55f41deaf91e9d495246fd01368d99935c6c01" +checksum = "1efc19935b4b66baa6f654ac7924c192f55b175c00a7ab72410fc24284dacda8" dependencies = [ - "core-foundation-sys", "libc", "memchr", "ntapi", - "windows 0.57.0", + "objc2-core-foundation", + "objc2-io-kit", + "windows 0.62.2", ] [[package]] @@ -12255,7 +12140,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -12270,6 +12155,12 @@ dependencies = [ "libc", ] +[[package]] +name = "tag_ptr" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0e973b34477b7823833469eb0f5a3a60370fef7a453e02d751b59180d0a5a05" + [[package]] name = "tagptr" version = "0.2.0" @@ -12301,17 +12192,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "term" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" -dependencies = [ - "dirs-next", - "rustversion", - "winapi", -] - [[package]] name = "termcolor" version = "1.4.1" @@ -12323,9 +12203,9 @@ dependencies = [ [[package]] name = "thin-vec" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a38c90d48152c236a3ab59271da4f4ae63d678c5d7ad6b7714d7cb9760be5e4b" +checksum = "144f754d318415ac792f9d69fc87abbbfc043ce2ef041c60f16ad828f638717d" [[package]] name = "thiserror" @@ -12338,11 +12218,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.18", ] [[package]] @@ -12353,18 +12233,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -12388,9 +12268,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.37" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "itoa", @@ -12399,22 +12279,22 @@ dependencies = [ "num-conv", "num_threads", "powerfmt", - "serde", + "serde_core", "time-core", "time-macros", ] [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "time-macros" -version = "0.2.19" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" dependencies = [ "num-conv", "time-core", @@ -12436,7 +12316,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" dependencies = [ "displaydoc", - "zerovec", + "zerovec 0.10.4", +] + +[[package]] +name = "tinystr" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +dependencies = [ + "displaydoc", + "serde_core", + "zerovec 0.11.5", ] [[package]] @@ -12478,7 +12369,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.8", "tokio-macros", "windows-sys 0.52.0", ] @@ -12491,7 +12382,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -12504,23 +12395,13 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ - "rustls 0.23.25", + "rustls", "tokio", ] @@ -12572,11 +12453,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" dependencies = [ "serde", - "serde_spanned", - "toml_datetime", + "serde_spanned 0.6.8", + "toml_datetime 0.6.8", "toml_edit", ] +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.13.0", + "serde_core", + "serde_spanned 1.0.4", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow", +] + [[package]] name = "toml_datetime" version = "0.6.8" @@ -12586,19 +12482,80 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_edit" version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "indexmap 2.7.1", + "indexmap 2.13.0", "serde", - "serde_spanned", - "toml_datetime", + "serde_spanned 0.6.8", + "toml_datetime 0.6.8", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.9+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" +dependencies = [ "winnow", ] +[[package]] +name = "toml_writer" +version = "1.0.6+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" + +[[package]] +name = "tonic" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a286e33f82f8a1ee2df63f4fa35c0becf4a85a0cb03091a15fd7bf0b402dc94a" +dependencies = [ + "async-trait", + "base64 0.22.1", + "bytes", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "hyper", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "sync_wrapper", + "tokio", + "tokio-stream", + "tower 0.5.2", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-prost" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c55a2d6a14174563de34409c9f92ff981d006f56da9c6ecd40d9d4a31500b0" +dependencies = [ + "bytes", + "prost 0.14.3", + "tonic", +] + [[package]] name = "tower" version = "0.4.13" @@ -12609,7 +12566,6 @@ dependencies = [ "futures-util", "pin-project", "pin-project-lite", - "tokio", "tower-layer", "tower-service", "tracing", @@ -12623,11 +12579,15 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", + "indexmap 2.13.0", "pin-project-lite", + "slab", "sync_wrapper", "tokio", + "tokio-util", "tower-layer", "tower-service", + "tracing", ] [[package]] @@ -12636,7 +12596,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "bytes", "http 1.2.0", "http-body 1.0.1", @@ -12646,6 +12606,24 @@ dependencies = [ "tower-service", ] +[[package]] +name = "tower-http" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +dependencies = [ + "bitflags 2.10.0", + "bytes", + "futures-util", + "http 1.2.0", + "http-body 1.0.1", + "iri-string", + "pin-project-lite", + "tower 0.5.2", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -12660,9 +12638,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "log", "pin-project-lite", @@ -12679,25 +12657,25 @@ dependencies = [ "crossbeam-channel", "thiserror 1.0.69", "time", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", ] [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", "valuable", @@ -12709,8 +12687,6 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "futures", - "futures-task", "pin-project", "tracing", ] @@ -12723,7 +12699,7 @@ checksum = "fc0b4143302cf1022dac868d521e36e8b27691f72c84b3311750d5188ebba657" dependencies = [ "libc", "tracing-core", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", ] [[package]] @@ -12746,7 +12722,37 @@ dependencies = [ "time", "tracing", "tracing-core", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.22", +] + +[[package]] +name = "tracing-opentelemetry" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ac28f2d093c6c477eaa76b23525478f38de514fa9aeb1285738d4b97a9552fc" +dependencies = [ + "js-sys", + "opentelemetry", + "smallvec", + "tracing", + "tracing-core", + "tracing-log", + "tracing-subscriber 0.3.22", + "web-time", +] + +[[package]] +name = "tracing-samply" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f02a08a5ec5bdf88e3fec4be6def8365ed7b539698b38c16ad6ee47ce0899b7" +dependencies = [ + "cfg-if", + "libc", + "mach2", + "memmap2", + "tracing-core", + "tracing-subscriber 0.3.22", ] [[package]] @@ -12770,9 +12776,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" dependencies = [ "matchers", "nu-ansi-term", @@ -12791,11 +12797,11 @@ dependencies = [ [[package]] name = "tree_hash" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c58eb0f518840670270d90d97ffee702d8662d9c5494870c9e1e9e0fa00f668" +checksum = "ee44f4cef85f88b4dea21c0b1f58320bdf35715cf56d840969487cff00613321" dependencies = [ - "alloy-primitives 0.8.26", + "alloy-primitives 1.5.7", "ethereum_hashing", "ethereum_ssz", "smallvec", @@ -12804,14 +12810,14 @@ dependencies = [ [[package]] name = "tree_hash_derive" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "699e7fb6b3fdfe0c809916f251cf5132d64966858601695c3736630a87e7166a" +checksum = "0bee2ea1551f90040ab0e34b6fb7f2fa3bad8acc925837ac654f2c78a13e3089" dependencies = [ - "darling", + "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -12832,7 +12838,7 @@ dependencies = [ "serde_json", "target-triple", "termcolor", - "toml", + "toml 0.8.20", ] [[package]] @@ -12960,6 +12966,12 @@ dependencies = [ "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "utf-8" version = "0.7.6" @@ -12990,7 +13002,7 @@ version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "435c6f69ef38c9017b4b4eea965dfb91e71e53d869e896db40d1cf2441dd75c0" dependencies = [ - "indexmap 2.7.1", + "indexmap 2.13.0", "serde", "serde_json", "utoipa-gen", @@ -13004,7 +13016,7 @@ checksum = "a77d306bc75294fd52f3e99b13ece67c02c1a2789190a6f31d32f736624326f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -13025,12 +13037,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" -[[package]] -name = "value-bag" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943ce29a8a743eb10d6082545d861b24f9d1b160b7d741e0f2cdf726bec909c5" - [[package]] name = "vcpkg" version = "0.2.15" @@ -13039,12 +13045,12 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "vergen" -version = "9.0.4" +version = "9.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0d2f179f8075b805a43a2a21728a46f0cc2921b3c58695b28fa8817e103cd9a" +checksum = "b849a1f6d8639e8de261e81ee0fc881e3e3620db1af9f2e0da015d4382ceaf75" dependencies = [ "anyhow", - "cargo_metadata 0.19.2", + "cargo_metadata 0.23.1", "derive_builder", "regex", "rustversion", @@ -13054,9 +13060,9 @@ dependencies = [ [[package]] name = "vergen-git2" -version = "1.0.5" +version = "9.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86bae87104cb2790cdee615c2bb54729804d307191732ab27b1c5357ea6ddc5" +checksum = "d51ab55ddf1188c8d679f349775362b0fa9e90bd7a4ac69838b2a087623f0d57" dependencies = [ "anyhow", "derive_builder", @@ -13069,9 +13075,9 @@ dependencies = [ [[package]] name = "vergen-lib" -version = "0.1.6" +version = "9.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b07e6010c0f3e59fcb164e0163834597da68d1f864e2b8ca49f74de01e9c166" +checksum = "b34a29ba7e9c59e62f229ae1932fb1b8fb8a6fdcc99215a641913f5f5a59a569" dependencies = [ "anyhow", "derive_builder", @@ -13119,53 +13125,59 @@ dependencies = [ ] [[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "wasip2" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] [[package]] -name = "wasi" -version = "0.14.2+wasi-0.2.4" +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "60722a937f594b7fde9adb894d7c092fc1bb6612897c46368d18e7a20208eff2" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.98", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "8a89f4650b770e4521aa6573724e2aed4704372151bd0de9d16a3bbabb87441a" dependencies = [ "cfg-if", + "futures-util", "js-sys", "once_cell", "wasm-bindgen", @@ -13174,9 +13186,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "0fac8c6395094b6b91c4af293f4c79371c163f9a6f56184d2c9a85f5a95f3950" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -13184,26 +13196,48 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "ab3fabce6159dc20728033842636887e4877688ae94382766e00b180abac9d60" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.98", - "wasm-bindgen-backend", + "syn 2.0.114", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "de0e091bdb824da87dc01d967388880d017a0a9bc4f3bdc0d86ee9f9336e3bb5" dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.13.0", + "wasm-encoder", + "wasmparser", +] + [[package]] name = "wasm-streams" version = "0.4.2" @@ -13217,11 +13251,36 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.10.0", + "hashbrown 0.15.2", + "indexmap 2.13.0", + "semver 1.0.27", +] + [[package]] name = "wasmtimer" -version = "0.4.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0048ad49a55b9deb3953841fa1fc5858f0efbcb7a18868c899a360269fac1b23" +checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" dependencies = [ "futures", "js-sys", @@ -13233,9 +13292,19 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "705eceb4ce901230f8625bd1d665128056ccbe4b7408faa625eec1ba80f59a97" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -13250,6 +13319,15 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "webpki-root-certs" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webpki-roots" version = "0.26.8" @@ -13320,22 +13398,23 @@ dependencies = [ [[package]] name = "windows" -version = "0.57.0" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" dependencies = [ - "windows-core 0.57.0", - "windows-targets 0.52.6", + "windows-collections", + "windows-core 0.62.2", + "windows-future", + "windows-numerics", ] [[package]] -name = "windows" -version = "0.58.0" +name = "windows-collections" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" dependencies = [ - "windows-core 0.58.0", - "windows-targets 0.52.6", + "windows-core 0.62.2", ] [[package]] @@ -13349,78 +13428,71 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.57.0" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ - "windows-implement 0.57.0", - "windows-interface 0.57.0", - "windows-result 0.1.2", - "windows-targets 0.52.6", + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", ] [[package]] -name = "windows-core" -version = "0.58.0" +name = "windows-future" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" dependencies = [ - "windows-implement 0.58.0", - "windows-interface 0.58.0", - "windows-result 0.2.0", - "windows-strings 0.1.0", - "windows-targets 0.52.6", + "windows-core 0.62.2", + "windows-link 0.2.1", + "windows-threading", ] [[package]] name = "windows-implement" -version = "0.57.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] -name = "windows-implement" -version = "0.58.0" +name = "windows-interface" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] -name = "windows-interface" -version = "0.57.0" +name = "windows-link" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.98", -] +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] -name = "windows-interface" -version = "0.58.0" +name = "windows-link" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.98", -] +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] -name = "windows-link" -version = "0.1.3" +name = "windows-numerics" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" +dependencies = [ + "windows-core 0.62.2", + "windows-link 0.2.1", +] [[package]] name = "windows-registry" @@ -13434,49 +13506,59 @@ dependencies = [ ] [[package]] -name = "windows-result" -version = "0.1.2" +name = "windows-registry" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ - "windows-targets 0.52.6", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", ] [[package]] name = "windows-result" -version = "0.2.0" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-targets 0.52.6", + "windows-link 0.1.3", ] [[package]] name = "windows-result" -version = "0.3.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link", + "windows-link 0.2.1", ] [[package]] name = "windows-strings" -version = "0.1.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" dependencies = [ - "windows-result 0.2.0", - "windows-targets 0.52.6", + "windows-link 0.1.3", ] [[package]] name = "windows-strings" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link", + "windows-link 0.2.1", ] [[package]] @@ -13515,6 +13597,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.3", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -13567,7 +13658,7 @@ version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -13578,6 +13669,15 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows-threading" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" +dependencies = [ + "windows-link 0.2.1", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -13760,9 +13860,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.3" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" dependencies = [ "memchr", ] @@ -13777,13 +13877,101 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck", + "wit-parser", +] + [[package]] name = "wit-bindgen-rt" version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck", + "indexmap 2.13.0", + "prettyplease", + "syn 2.0.114", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.114", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.10.0", + "indexmap 2.13.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.13.0", + "log", + "semver 1.0.27", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", ] [[package]] @@ -13798,6 +13986,12 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +[[package]] +name = "writeable" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" + [[package]] name = "wyz" version = "0.5.1" @@ -13813,6 +14007,12 @@ version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" +[[package]] +name = "xsum" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0637d3a5566a82fa5214bae89087bc8c9fb94cd8e8a3c07feb691bb8d9c632db" + [[package]] name = "yaml-rust2" version = "0.10.4" @@ -13838,7 +14038,18 @@ checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", - "yoke-derive", + "yoke-derive 0.7.5", + "zerofrom", +] + +[[package]] +name = "yoke" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +dependencies = [ + "stable_deref_trait", + "yoke-derive 0.8.1", "zerofrom", ] @@ -13850,27 +14061,30 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", "synstructure", ] [[package]] -name = "zerocopy" -version = "0.7.35" +name = "yoke-derive" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ - "byteorder", - "zerocopy-derive 0.7.35", + "proc-macro2", + "quote", + "syn 2.0.114", + "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.23" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ - "zerocopy-derive 0.8.23", + "byteorder", + "zerocopy-derive", ] [[package]] @@ -13881,18 +14095,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.98", + "syn 2.0.114", ] [[package]] @@ -13912,7 +14115,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", "synstructure", ] @@ -13933,7 +14136,18 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", +] + +[[package]] +name = "zerotrie" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +dependencies = [ + "displaydoc", + "yoke 0.8.1", + "zerofrom", ] [[package]] @@ -13942,9 +14156,21 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" dependencies = [ - "yoke", + "yoke 0.7.5", + "zerofrom", + "zerovec-derive 0.10.3", +] + +[[package]] +name = "zerovec" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +dependencies = [ + "serde", + "yoke 0.8.1", "zerofrom", - "zerovec-derive", + "zerovec-derive 0.11.2", ] [[package]] @@ -13955,9 +14181,26 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.114", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.114", ] +[[package]] +name = "zmij" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4de98dfa5d5b7fef4ee834d0073d560c9ca7b6c46a71d058c48db7960f8cfaf7" + [[package]] name = "zstd" version = "0.13.3" diff --git a/Cargo.toml b/Cargo.toml index 536a5a9693..2f8e6af377 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -81,7 +81,7 @@ futures = "0.3" hyper = "1.6.0" itertools = { version = "0.13.0", default-features = false } jmt = { git = "https://github.com/penumbra-zone/jmt.git", rev = "550a2f2" } -jsonrpsee = { version = "0.24.8", features = ["jsonrpsee-types"] } +jsonrpsee = { version = "0.26.0", features = ["jsonrpsee-types"] } k256 = { version = "0.13.4" } lru = "0.13" hex = { version = "0.4.3", default-features = false, features = ["alloc", "serde"] } @@ -101,9 +101,9 @@ rustc_version_runtime = { version = "0.3.0", default-features = false } rs_merkle = "1.4.2" reqwest = { version = "0.12.12", features = ["rustls-tls", "json", "http2"], default-features = false } rocksdb = { version = "0.22.0", features = ["lz4"], default-features = false } -serde = { version = "=1.0.218", default-features = false, features = ["alloc", "derive"] } +serde = { version = "1.0", default-features = false, features = ["alloc", "derive"] } serde_json = { version = "1", default-features = false, features = ["alloc"] } -sha2 = { version = "0.10.8", default-features = false, features = ["asm"] } +sha2 = { version = "0.10.9", default-features = false, features = ["asm"] } schemars = { version = "0.8.16", features = ["derive"] } secp256k1 = { version = "0.30.0", default-features = false, features = ["global-context", "recovery"] } thiserror = { version = "2", default-features = false } @@ -115,12 +115,12 @@ tempfile = "3.8" tokio = { version = "1.44.2", features = ["macros", "rt", "rt-multi-thread", "sync", "time", "fs"] } tokio-stream = { version = "0.1" } tower-http = { version = "0.5.0", features = ["cors"] } -tower = { version = "0.4.13", features = ["util", "timeout"] } +tower = { version = "0.5.2", features = ["util", "timeout"] } url = { version = "2.5.4" } # Risc0 dependencies bonsai-sdk = { version = "1.4.1" } -boundless-market = { version = "1.0.0", default-features = false } +boundless-market = { version = "1.3.3", default-features = false, features = ["s3"] } risc0-ethereum-contracts = { version = "3.0.1" } risc0-binfmt = "3.0.2" risc0-zkvm = { version = "3.0.3", default-features = false } @@ -131,53 +131,52 @@ risc0-build = "3.0.3" rzup = { version = "0.5.1", default-features = false } # EVM dependencies -revm-inspectors = { version = "0.18.0", default-features = false } -reth-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-execution-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-rpc-server-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-rpc-types-compat = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-node-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-provider = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-tasks = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-trie = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-rpc = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } -reth-stages = { git = "https://github.com/paradigmxyz/reth", tag = "v1.3.7", default-features = false } +revm-inspectors = { version = "=0.34.2", default-features = false } +reth-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } +reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } +reth-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } +reth-execution-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } +reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0" } +reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false, features = ["js-tracer"] } +reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } +reth-rpc-server-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } +reth-rpc-types-compat = { package = "reth-rpc-convert", git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } +reth-node-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } +reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } +reth-provider = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } +reth-tasks = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } +reth-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } +reth-trie = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } +reth-rpc = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } +reth-stages = { git = "https://github.com/paradigmxyz/reth", tag = "v1.11.0", default-features = false } -revm = { version = "21.0.0", features = ["serde"], default-features = false } -revm-precompile = { version = "18.0.0", default-features = false, features = ['secp256r1', 'blst', 'bn'] } -revm-primitives = { version = "17.0.0", default-features = false } -revm-bytecode = { version = "2.0.0", default-features = false } -alloy-genesis = { version = "0.13", default-features = false } -alloy-trie = { version = "0.7.9", default-features = false } +revm = { version = "34.0.0", features = ["serde"], default-features = false } +revm-precompile = { version = "32.0.0", default-features = false, features = ["blst", "bn"] } +revm-primitives = { version = "22.0.0", default-features = false } +revm-bytecode = { version = "8.0.0", default-features = false } +alloy-genesis = { version = "1.7.3", default-features = false } +alloy-trie = { version = "0.9.2", default-features = false } alloy-rlp = { version = "0.3.10", default-features = false } -alloy-rpc-types = { version = "0.13", features = ["eth"], default-features = false } -alloy-rpc-types-eth = { version = "0.13", default-features = false } -alloy-rpc-types-trace = { version = "0.13", default-features = false } -alloy-rpc-types-txpool = { version = "0.13", default-features = false } -alloy-primitives = { version = "0.8.26", default-features = false, features = ["serde", "tiny-keccak", "k256"] } -alloy-serde = { version = "0.13", default-features = false } -alloy-sol-types = { version = "0.8.26", default-features = false, features = ["json"] } -alloy = { version = "0.13", default-features = false } -alloy-eips = { version = "0.13", default-features = false } -alloy-consensus = { version = "0.13", default-features = false, features = ["serde", "serde-bincode-compat"] } -alloy-network = { version = "0.13", default-features = false } -alloy-signer = { version = "0.13", default-features = false } -alloy-signer-local = { version = "0.13.0", default-features = false } +alloy-rpc-types = { version = "1.7.3", features = ["eth"], default-features = false } +alloy-rpc-types-eth = { version = "1.7.3", default-features = false } +alloy-rpc-types-trace = { version = "1.7.3", default-features = false } +alloy-rpc-types-txpool = { version = "1.7.3", default-features = false } +alloy-primitives = { version = "1.5.7", default-features = false, features = ["serde", "tiny-keccak", "k256"] } +alloy-serde = { version = "1.7.3", default-features = false } +alloy-sol-types = { version = "1.5.7", default-features = false, features = ["json"] } +alloy = { version = "1.7.3", default-features = false } +alloy-eips = { version = "1.7.3", default-features = false } +alloy-consensus = { version = "1.7.3", default-features = false, features = ["serde", "serde-bincode-compat"] } +alloy-network = { version = "1.7.3", default-features = false } +alloy-signer = { version = "1.7.3", default-features = false } +alloy-signer-local = { version = "1.7.3", default-features = false } citrea-e2e = { git = "https://github.com/chainwayxyz/citrea-e2e", rev = "143d76086591006d2424bda027512bd03565229a" } [patch.crates-io] bitcoincore-rpc = { version = "0.18.0", git = "https://github.com/chainwayxyz/rust-bitcoincore-rpc.git", rev = "a6e011a" } -# Use our fork of revm-inspectors to apply fixes after v0.18.1 -# Cannot update to latest as it requires latest revm, which we cannot use yet -revm-inspectors = { git = "https://github.com/chainwayxyz/revm-inspectors", rev = "574d614ce505d3c0c4534d8b8e62d8acb3fa9651" } +substrate-bn = { git = "https://github.com/risc0/paritytech-bn", tag = "v0.6.0-risczero.0" } [profile.release] opt-level = 3 diff --git a/Makefile b/Makefile index 82ba4a1f8c..45fee27c0a 100644 --- a/Makefile +++ b/Makefile @@ -76,10 +76,10 @@ install-risc0: rzup install cargo-risczero 3.0.3 && \ rzup install cpp && \ rzup install r0vm 3.0.3 && \ - rzup install rust 1.88.0 && \ + rzup install rust 1.91.1 && \ rzup default cargo-risczero 3.0.3 && \ rzup default r0vm 3.0.3 && \ - rzup default rust 1.88.0 + rzup default rust 1.91.1 install-sp1: ## Install necessary SP1 toolchain curl -L https://sp1.succinct.xyz | bash diff --git a/bin/citrea/src/main.rs b/bin/citrea/src/main.rs index cc9f2cdc79..a7290af9a4 100644 --- a/bin/citrea/src/main.rs +++ b/bin/citrea/src/main.rs @@ -19,7 +19,7 @@ use citrea_stf::genesis_config::GenesisPaths; use citrea_stf::runtime::{CitreaRuntime, DefaultContext}; use clap::Parser; use metrics_exporter_prometheus::PrometheusBuilder; -use reth_tasks::TaskManager; +use reth_tasks::TaskExecutor; use short_header_proof_provider::{ NativeShortHeaderProofProviderService, SHORT_HEADER_PROOF_PROVIDER, }; @@ -239,7 +239,7 @@ where rollup_config.rpc.clone(), )?; - let task_executor = task_manager.executor(); + let task_executor = task_manager.clone(); if matches!(node_type, NodeWithConfig::LightClientProver(_)) { register_healthcheck_rpc_light_client_prover(&mut rpc_module, da_service.clone()) @@ -412,19 +412,34 @@ where } /// Wait for a termination signal and cancel all running tasks -pub async fn wait_shutdown(mut task_manager: TaskManager) { +pub async fn wait_shutdown(task_manager: TaskExecutor) { let mut term_signal = signal(SignalKind::terminate()).expect("Failed to create termination signal"); let mut interrupt_signal = signal(SignalKind::interrupt()).expect("Failed to create interrupt signal"); let wait_duration = Duration::from_secs(5); - - tokio::select! { - _ = signal::ctrl_c() => {} - _ = term_signal.recv() => {}, - _ = interrupt_signal.recv() => {} - _= &mut task_manager => {} + let mut task_manager_handle = task_manager.take_task_manager_handle(); + + if let Some(handle) = &mut task_manager_handle { + tokio::select! { + _ = signal::ctrl_c() => {} + _ = term_signal.recv() => {}, + _ = interrupt_signal.recv() => {} + task_result = handle => { + match task_result { + Ok(Ok(())) => {} + Ok(Err(err)) => error!("Critical task panic detected: {err}"), + Err(err) => error!("Task manager join error: {err}"), + } + } + } + } else { + tokio::select! { + _ = signal::ctrl_c() => {} + _ = term_signal.recv() => {}, + _ = interrupt_signal.recv() => {} + } } info!("Graceful shutdown initiated..."); diff --git a/bin/citrea/src/rollup/mod.rs b/bin/citrea/src/rollup/mod.rs index 74dd385600..78fabdb7e8 100644 --- a/bin/citrea/src/rollup/mod.rs +++ b/bin/citrea/src/rollup/mod.rs @@ -20,7 +20,7 @@ use citrea_stf::runtime::{CitreaRuntime, DefaultContext}; use citrea_storage_ops::pruning::PrunerService; use citrea_storage_ops::rollback::Rollback; use jsonrpsee::RpcModule; -use reth_tasks::{TaskExecutor, TaskManager}; +use reth_tasks::TaskExecutor; use sov_db::ledger_db::migrations::{LedgerDBMigrator, Migrations}; use sov_db::ledger_db::{LedgerDB, SharedLedgerOps}; use sov_db::native_db::NativeDB; @@ -61,7 +61,7 @@ pub struct Storage { /// Group for initialization dependencies pub struct Dependencies { /// The task manager - pub task_manager: TaskManager, + pub task_manager: TaskExecutor, /// The DA service pub da_service: Arc<::DaService>, /// The channel on which L2 block number is broadcasted. @@ -78,12 +78,12 @@ pub trait CitreaRollupBlueprint: RollupBlueprint { require_da_wallet: bool, network: Network, ) -> Result> { - let task_manager = TaskManager::current(); + let task_manager = TaskExecutor::with_existing_handle(tokio::runtime::Handle::current())?; let da_service = self .create_da_service( rollup_config, require_da_wallet, - task_manager.executor(), + task_manager.clone(), network, ) .await?; @@ -184,9 +184,7 @@ pub trait CitreaRollupBlueprint: RollupBlueprint { ); } else { anyhow::bail!( - "Storage is corrupted, LedgerDB version: {}, StateDB version: {}", - ledger_version, - state_version + "Storage is corrupted, LedgerDB version: {ledger_version}, StateDB version: {state_version}" ); } return Ok(()); @@ -210,7 +208,7 @@ pub trait CitreaRollupBlueprint: RollupBlueprint { ) -> Result<(CitreaSequencer, RpcModule<()>)> { let current_l2_height = ledger_db .get_head_l2_block() - .map_err(|e| anyhow!("Failed to get head l2 block: {}", e))? + .map_err(|e| anyhow!("Failed to get head l2 block: {e}"))? .map(|(l2_height, _)| l2_height) .unwrap_or(L2BlockNumber(0)); @@ -268,7 +266,7 @@ pub trait CitreaRollupBlueprint: RollupBlueprint { let current_l2_height = ledger_db .get_head_l2_block_height() - .map_err(|e| anyhow!("Failed to get head l2 block: {}", e))? + .map_err(|e| anyhow!("Failed to get head l2 block: {e}"))? .unwrap_or(0); let mut fork_manager = ForkManager::new(get_forks(), current_l2_height); @@ -326,7 +324,7 @@ pub trait CitreaRollupBlueprint: RollupBlueprint { let current_l2_height = ledger_db .get_head_l2_block_height() - .map_err(|e| anyhow!("Failed to get head l2 block: {}", e))? + .map_err(|e| anyhow!("Failed to get head l2 block: {e}"))? .unwrap_or(0); let mut fork_manager = ForkManager::new(get_forks(), current_l2_height); diff --git a/bin/citrea/tests/bitcoin/batch_prover_test.rs b/bin/citrea/tests/bitcoin/batch_prover_test.rs index 1dd7d8d95f..82c5b2be11 100644 --- a/bin/citrea/tests/bitcoin/batch_prover_test.rs +++ b/bin/citrea/tests/bitcoin/batch_prover_test.rs @@ -1332,8 +1332,7 @@ impl TestCase for BatchProverCreateInputTest { let error_msg = result.unwrap_err().to_string(); assert!( error_msg.contains("No commitments found"), - "Expected error about no commitments found, got: {}", - error_msg + "Expected error about no commitments found, got: {error_msg}" ); sequencer.wait_until_stopped().await?; diff --git a/bin/citrea/tests/bitcoin/bitcoin_service.rs b/bin/citrea/tests/bitcoin/bitcoin_service.rs index 00f35b8462..018b81ff7e 100644 --- a/bin/citrea/tests/bitcoin/bitcoin_service.rs +++ b/bin/citrea/tests/bitcoin/bitcoin_service.rs @@ -13,7 +13,7 @@ use citrea_e2e::framework::TestFramework; use citrea_e2e::test_case::{TestCase, TestCaseRunner}; use citrea_e2e::Result; use citrea_primitives::REVEAL_TX_PREFIX; -use reth_tasks::TaskManager; +use reth_tasks::TaskExecutor as TaskManager; use sov_rollup_interface::da::{BlobReaderTrait, DaVerifier}; use sov_rollup_interface::services::da::DaService; use sov_rollup_interface::Network; @@ -49,7 +49,7 @@ impl TestCase for BitcoinServiceTest { } async fn run_test(&mut self, f: &mut TestFramework) -> Result<()> { - let task_executor = self.task_manager.executor(); + let task_executor = self.task_manager.clone(); let da_node = f.bitcoin_nodes.get(0).unwrap(); @@ -165,7 +165,8 @@ impl TestCase for BitcoinServiceTest { #[tokio::test] async fn test_bitcoin_service() -> Result<()> { TestCaseRunner::new(BitcoinServiceTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() diff --git a/bin/citrea/tests/bitcoin/bitcoin_verifier.rs b/bin/citrea/tests/bitcoin/bitcoin_verifier.rs index a97674338b..2e7d175549 100644 --- a/bin/citrea/tests/bitcoin/bitcoin_verifier.rs +++ b/bin/citrea/tests/bitcoin/bitcoin_verifier.rs @@ -25,7 +25,7 @@ use citrea_e2e::framework::TestFramework; use citrea_e2e::test_case::{TestCase, TestCaseRunner}; use citrea_e2e::Result; use citrea_primitives::REVEAL_TX_PREFIX; -use reth_tasks::TaskManager; +use reth_tasks::TaskExecutor as TaskManager; use sov_rollup_interface::da::{BlobReaderTrait, BlockHeaderTrait, DaVerifier}; use sov_rollup_interface::services::da::DaService; use sov_rollup_interface::Network; @@ -111,7 +111,7 @@ impl TestCase for BitcoinVerifierTest { } async fn run_test(&mut self, f: &mut TestFramework) -> Result<()> { - let task_executor = self.task_manager.executor(); + let task_executor = self.task_manager.clone(); let da_node = f.bitcoin_nodes.get(0).unwrap(); @@ -747,7 +747,8 @@ impl BitcoinVerifierTest { #[tokio::test] async fn test_bitcoin_verifier() -> Result<()> { TestCaseRunner::new(BitcoinVerifierTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() diff --git a/bin/citrea/tests/bitcoin/da_queue.rs b/bin/citrea/tests/bitcoin/da_queue.rs index 960c73dace..e9ed3bd757 100644 --- a/bin/citrea/tests/bitcoin/da_queue.rs +++ b/bin/citrea/tests/bitcoin/da_queue.rs @@ -12,7 +12,7 @@ use citrea_e2e::config::{BitcoinConfig, TestCaseConfig}; use citrea_e2e::framework::TestFramework; use citrea_e2e::test_case::{TestCase, TestCaseRunner}; use citrea_e2e::Result; -use reth_tasks::TaskManager; +use reth_tasks::TaskExecutor as TaskManager; use sov_ledger_rpc::LedgerRpcClient; use sov_rollup_interface::da::{DaTxRequest, SequencerCommitment}; use sov_rollup_interface::services::da::DaService; @@ -270,7 +270,7 @@ impl TestCase for DaTransactionQueueingTest { } async fn run_test(&mut self, f: &mut TestFramework) -> Result<()> { - let task_executor = self.task_manager.executor(); + let task_executor = self.task_manager.clone(); let da = f.bitcoin_nodes.get_mut(0).unwrap(); let sequencer = f.sequencer.as_mut().unwrap(); @@ -354,7 +354,8 @@ impl TestCase for DaTransactionQueueingTest { #[tokio::test] async fn test_queue_da_transactions() -> Result<()> { TestCaseRunner::new(DaTransactionQueueingTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .set_citrea_cli_path(get_citrea_cli_path()) @@ -607,7 +608,7 @@ impl TestCase for DaTransactionQueueingUtxoSelectionModeOldestTest { } async fn run_test(&mut self, f: &mut TestFramework) -> Result<()> { - let task_executor = self.task_manager.executor(); + let task_executor = self.task_manager.clone(); let da = f.bitcoin_nodes.get_mut(0).unwrap(); let sequencer = f.sequencer.as_mut().unwrap(); @@ -695,7 +696,8 @@ impl TestCase for DaTransactionQueueingUtxoSelectionModeOldestTest { #[tokio::test] async fn test_queue_da_transactions_oldest_mode() -> Result<()> { TestCaseRunner::new(DaTransactionQueueingUtxoSelectionModeOldestTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .set_citrea_cli_path(get_citrea_cli_path()) diff --git a/bin/citrea/tests/bitcoin/full_node.rs b/bin/citrea/tests/bitcoin/full_node.rs index 14fcc67f23..5a01c3ea2a 100644 --- a/bin/citrea/tests/bitcoin/full_node.rs +++ b/bin/citrea/tests/bitcoin/full_node.rs @@ -17,7 +17,7 @@ use citrea_e2e::Result; use citrea_fullnode::rpc::FullNodeRpcClient; use citrea_light_client_prover::circuit::initial_values::bitcoinda::NIGHTLY_INITIAL_BATCH_PROOF_METHOD_IDS; use citrea_light_client_prover::rpc::LightClientProverRpcClient; -use reth_tasks::TaskManager; +use reth_tasks::TaskExecutor as TaskManager; use risc0_zkvm::{FakeReceipt, InnerReceipt, MaybePruned, ReceiptClaim}; use sov_db::schema::types::L2HeightAndIndex; use sov_ledger_rpc::LedgerRpcClient; @@ -70,7 +70,7 @@ impl TestCase for PreStateRootMismatchTest { } async fn run_test(&mut self, f: &mut TestFramework) -> Result<()> { - let task_executor = self.task_manager.executor(); + let task_executor = self.task_manager.clone(); let da = f.bitcoin_nodes.get_mut(0).unwrap(); let sequencer = f.sequencer.as_ref().unwrap(); @@ -243,7 +243,8 @@ impl TestCase for PreStateRootMismatchTest { #[tokio::test] async fn test_pre_state_root_mismatch() -> Result<()> { TestCaseRunner::new(PreStateRootMismatchTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() @@ -281,7 +282,7 @@ impl TestCase for SequencerCommitmentHashMismatchTest { } async fn run_test(&mut self, f: &mut TestFramework) -> Result<()> { - let task_executor = self.task_manager.executor(); + let task_executor = self.task_manager.clone(); let da = f.bitcoin_nodes.get_mut(0).unwrap(); let sequencer = f.sequencer.as_ref().unwrap(); @@ -421,7 +422,8 @@ impl TestCase for SequencerCommitmentHashMismatchTest { #[tokio::test] async fn test_sequencer_commitment_hash_mismatch() -> Result<()> { TestCaseRunner::new(SequencerCommitmentHashMismatchTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() @@ -452,7 +454,7 @@ impl TestCase for PendingCommitmentHaltingErrorTest { } async fn run_test(&mut self, f: &mut TestFramework) -> Result<()> { - let task_executor = self.task_manager.executor(); + let task_executor = self.task_manager.clone(); let da = f.bitcoin_nodes.get_mut(0).unwrap(); let sequencer = f.sequencer.as_ref().unwrap(); @@ -548,7 +550,8 @@ impl TestCase for PendingCommitmentHaltingErrorTest { #[tokio::test] async fn test_halting_pending_commitment_merkle_root_mismatch() -> Result<()> { TestCaseRunner::new(PendingCommitmentHaltingErrorTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() @@ -875,7 +878,7 @@ impl TestCase for OutOfOrderCommitmentsTest { } async fn run_test(&mut self, f: &mut TestFramework) -> Result<()> { - let task_executor = self.task_manager.executor(); + let task_executor = self.task_manager.clone(); let da = f.bitcoin_nodes.get_mut(0).unwrap(); let sequencer = f.sequencer.as_ref().unwrap(); @@ -1029,7 +1032,8 @@ impl TestCase for OutOfOrderCommitmentsTest { #[tokio::test] async fn test_out_of_order_commitments() -> Result<()> { TestCaseRunner::new(OutOfOrderCommitmentsTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() @@ -1068,7 +1072,7 @@ impl TestCase for ConflictingCommitmentsTest { } async fn run_test(&mut self, f: &mut TestFramework) -> Result<()> { - let task_executor = self.task_manager.executor(); + let task_executor = self.task_manager.clone(); let da = f.bitcoin_nodes.get_mut(0).unwrap(); let sequencer = f.sequencer.as_ref().unwrap(); @@ -1255,7 +1259,8 @@ impl TestCase for ConflictingCommitmentsTest { #[tokio::test] async fn test_conflicting_commitments() -> Result<()> { TestCaseRunner::new(ConflictingCommitmentsTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() @@ -1304,7 +1309,7 @@ impl TestCase for OutOfRangeProofTest { } async fn run_test(&mut self, f: &mut TestFramework) -> Result<()> { - let task_executor = self.task_manager.executor(); + let task_executor = self.task_manager.clone(); let da = f.bitcoin_nodes.get_mut(0).unwrap(); let sequencer = f.sequencer.as_ref().unwrap(); @@ -1854,7 +1859,8 @@ impl TestCase for OutOfRangeProofTest { #[tokio::test] async fn test_out_of_range_proof() -> Result<()> { TestCaseRunner::new(OutOfRangeProofTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .set_citrea_cli_path(get_citrea_cli_path()) @@ -1903,7 +1909,7 @@ impl TestCase for OverlappingProofRangesTest { } async fn run_test(&mut self, f: &mut TestFramework) -> Result<()> { - let task_executor = self.task_manager.executor(); + let task_executor = self.task_manager.clone(); let da = f.bitcoin_nodes.get_mut(0).unwrap(); let sequencer = f.sequencer.as_ref().unwrap(); @@ -2408,7 +2414,8 @@ impl TestCase for OverlappingProofRangesTest { #[tokio::test] async fn test_overlapping_proof_ranges() -> Result<()> { TestCaseRunner::new(OverlappingProofRangesTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .set_citrea_cli_path(get_citrea_cli_path()) @@ -2480,7 +2487,7 @@ impl TestCase for UnsyncedCommitmentL2RangeTest { They should be the latest ones */ - let task_executor = self.task_manager.executor(); + let task_executor = self.task_manager.clone(); let da = f.bitcoin_nodes.get_mut(0).unwrap(); let sequencer = f.sequencer.as_mut().unwrap(); @@ -2828,7 +2835,8 @@ impl TestCase for UnsyncedCommitmentL2RangeTest { #[tokio::test] async fn test_unsynced_commitment_l2_range_test() -> Result<()> { TestCaseRunner::new(UnsyncedCommitmentL2RangeTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .set_citrea_cli_path(get_citrea_cli_path()) @@ -2922,7 +2930,7 @@ impl TestCase for FullNodeLcpChunkProofTest { mine chunk 2 to block m+2 see that because the order is wrong the proof is not processed for both lcp and full node */ - let task_executor = self.task_manager.executor(); + let task_executor = self.task_manager.clone(); let da = f.bitcoin_nodes.get_mut(0).unwrap(); let sequencer = f.sequencer.as_mut().unwrap(); @@ -3545,7 +3553,8 @@ impl TestCase for FullNodeLcpChunkProofTest { #[tokio::test] async fn test_full_node_lcp_chunk_proof() -> Result<()> { TestCaseRunner::new(FullNodeLcpChunkProofTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .set_citrea_cli_path(get_citrea_cli_path()) @@ -3619,7 +3628,7 @@ impl TestCase for FullNodeL1SyncHaltOnMerkleRootMismatch { l2_end_block_number: 5, merkle_root, }; - let task_executor = self.task_manager.executor(); + let task_executor = self.task_manager.clone(); let sequencer_da_service = spawn_bitcoin_da_sequencer_service(&task_executor, &da.config, Self::test_config().dir) .await; @@ -3727,7 +3736,8 @@ impl TestCase for FullNodeL1SyncHaltOnMerkleRootMismatch { #[tokio::test] async fn test_full_node_l1_sync_halt_on_merkle_root_mismatch() -> Result<()> { TestCaseRunner::new(FullNodeL1SyncHaltOnMerkleRootMismatch { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .set_citrea_cli_path(get_citrea_cli_path()) @@ -3836,7 +3846,8 @@ impl TestCase for UnsyncedFirstCommitmentTest { #[tokio::test] async fn test_unsynced_first_commitment() -> Result<()> { TestCaseRunner::new(UnsyncedFirstCommitmentTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .set_citrea_cli_path(get_citrea_cli_path()) diff --git a/bin/citrea/tests/bitcoin/guest_cycles.rs b/bin/citrea/tests/bitcoin/guest_cycles.rs index 2a517b3520..407c94aa9c 100644 --- a/bin/citrea/tests/bitcoin/guest_cycles.rs +++ b/bin/citrea/tests/bitcoin/guest_cycles.rs @@ -265,14 +265,13 @@ impl TestCase for GenerateProvingStatsDB { env!("CARGO_MANIFEST_DIR") )); let file = File::open(transactions_file_path) - .map_err(|e| anyhow::anyhow!("Failed to open transactions file: {}", e))?; + .map_err(|e| anyhow::anyhow!("Failed to open transactions file: {e}"))?; let reader = BufReader::new(file); // Send each transaction from the file let mut tx_count = 0; for (i, line) in reader.lines().enumerate() { - let signed_tx = - line.map_err(|e| anyhow::anyhow!("Failed to read line {}: {}", i, e))?; + let signed_tx = line.map_err(|e| anyhow::anyhow!("Failed to read line {i}: {e}"))?; // Skip empty lines if signed_tx.trim().is_empty() { continue; diff --git a/bin/citrea/tests/bitcoin/light_client_test.rs b/bin/citrea/tests/bitcoin/light_client_test.rs index c26e32bb2f..dd2d0fc49c 100644 --- a/bin/citrea/tests/bitcoin/light_client_test.rs +++ b/bin/citrea/tests/bitcoin/light_client_test.rs @@ -28,7 +28,7 @@ use citrea_light_client_prover::rpc::LightClientProverRpcClient; use citrea_primitives::compression::{compress_blob, decompress_blob}; use citrea_primitives::REVEAL_TX_PREFIX; use rand::{thread_rng, Rng}; -use reth_tasks::TaskManager; +use reth_tasks::TaskExecutor as TaskManager; use risc0_zkvm::{FakeReceipt, InnerReceipt, MaybePruned, ReceiptClaim}; use sov_modules_api::BlobReaderTrait; use sov_rollup_interface::da::{ @@ -583,7 +583,7 @@ impl TestCase for LightClientBatchProofMethodIdUpdateTest { let light_client_prover = f.light_client_prover.as_ref().unwrap(); let bitcoin_da_service = spawn_bitcoin_da_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, // Method id sender private key, can be any sender @@ -773,7 +773,8 @@ impl TestCase for LightClientBatchProofMethodIdUpdateTest { #[tokio::test] async fn test_light_client_batch_proof_method_id_update() -> Result<()> { TestCaseRunner::new(LightClientBatchProofMethodIdUpdateTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() @@ -835,7 +836,7 @@ impl TestCase for LightClientBatchProofMethodIdUpdateSecurityCouncilTest { let light_client_prover = f.light_client_prover.as_ref().unwrap(); let bitcoin_da_service = spawn_bitcoin_da_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, // Method id sender private key, can be any sender @@ -1187,7 +1188,8 @@ impl TestCase for LightClientBatchProofMethodIdUpdateSecurityCouncilTest { #[tokio::test] async fn test_light_client_batch_proof_method_id_update_security_council() -> Result<()> { TestCaseRunner::new(LightClientBatchProofMethodIdUpdateSecurityCouncilTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() @@ -1230,14 +1232,14 @@ impl TestCase for LightClientUnverifiableBatchProofTest { let light_client_prover = f.light_client_prover.as_ref().unwrap(); let bitcoin_da_service = spawn_bitcoin_da_prover_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) .await; let sequencer_bitcoin_da_service = spawn_bitcoin_da_sequencer_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) @@ -1447,7 +1449,8 @@ impl TestCase for LightClientUnverifiableBatchProofTest { #[tokio::test] async fn test_light_client_unverifiable_batch_proof() -> Result<()> { TestCaseRunner::new(LightClientUnverifiableBatchProofTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() @@ -1497,14 +1500,14 @@ impl TestCase for VerifyChunkedTxsInLightClient { let light_client_prover = f.light_client_prover.as_ref().unwrap(); let bitcoin_da_service = spawn_bitcoin_da_prover_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) .await; let sequencer_bitcoin_da_service = spawn_bitcoin_da_sequencer_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) @@ -1825,7 +1828,8 @@ impl TestCase for VerifyChunkedTxsInLightClient { #[tokio::test] async fn test_verify_chunked_txs_in_light_client() -> Result<()> { TestCaseRunner::new(VerifyChunkedTxsInLightClient { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() @@ -1875,14 +1879,14 @@ impl TestCase for UnchainedBatchProofsTest { let light_client_prover = f.light_client_prover.as_ref().unwrap(); let bitcoin_da_service = spawn_bitcoin_da_prover_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) .await; let sequencer_bitcoin_da_service = spawn_bitcoin_da_sequencer_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) @@ -2090,7 +2094,8 @@ impl TestCase for UnchainedBatchProofsTest { #[tokio::test] async fn test_unchained_batch_proofs_in_light_client() -> Result<()> { TestCaseRunner::new(UnchainedBatchProofsTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() @@ -2140,13 +2145,13 @@ impl TestCase for UnknownL1HashBatchProofTest { let light_client_prover = f.light_client_prover.as_ref().unwrap(); let bitcoin_da_service = spawn_bitcoin_da_prover_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) .await; let sequencer_bitcoin_da_service = spawn_bitcoin_da_sequencer_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) @@ -2240,7 +2245,8 @@ impl TestCase for UnknownL1HashBatchProofTest { #[tokio::test] async fn test_unknown_l1_hash_batch_proof_in_light_client() -> Result<()> { TestCaseRunner::new(UnknownL1HashBatchProofTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() @@ -2290,14 +2296,14 @@ impl TestCase for ChainProofByCommitmentIndex { let light_client_prover = f.light_client_prover.as_ref().unwrap(); let bitcoin_da_service = spawn_bitcoin_da_prover_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) .await; let sequencer_bitcoin_da_service = spawn_bitcoin_da_sequencer_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) @@ -2456,7 +2462,8 @@ impl TestCase for ChainProofByCommitmentIndex { #[tokio::test] async fn test_chain_proof_by_commitment_index() -> Result<()> { TestCaseRunner::new(ChainProofByCommitmentIndex { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() @@ -2506,7 +2513,7 @@ impl TestCase for ProofWithMissingCommitment { let light_client_prover = f.light_client_prover.as_ref().unwrap(); let bitcoin_da_service = spawn_bitcoin_da_prover_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) @@ -2605,7 +2612,8 @@ impl TestCase for ProofWithMissingCommitment { #[tokio::test] async fn test_proof_with_missing_commitment_is_discarded() -> Result<()> { TestCaseRunner::new(ProofWithMissingCommitment { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() @@ -2655,21 +2663,21 @@ impl TestCase for ProofAndCommitmentWithWrongDaPubkey { let light_client_prover = f.light_client_prover.as_ref().unwrap(); let batch_prover_bitcoin_da_service = spawn_bitcoin_da_prover_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) .await; let sequencer_bitcoin_da_service = spawn_bitcoin_da_sequencer_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) .await; let malicious_bitcoin_da_service = spawn_bitcoin_da_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, DaServiceKeyKind::Other( @@ -2924,7 +2932,8 @@ impl TestCase for ProofAndCommitmentWithWrongDaPubkey { #[tokio::test] async fn test_proof_and_commitment_with_wrong_da_pubkey() -> Result<()> { TestCaseRunner::new(ProofAndCommitmentWithWrongDaPubkey { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() @@ -2974,14 +2983,14 @@ impl TestCase for ProofWithWrongPreviousCommitmentHash { let light_client_prover = f.light_client_prover.as_ref().unwrap(); let batch_prover_bitcoin_da_service = spawn_bitcoin_da_prover_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) .await; let sequencer_bitcoin_da_service = spawn_bitcoin_da_sequencer_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) @@ -3163,7 +3172,8 @@ impl TestCase for ProofWithWrongPreviousCommitmentHash { #[tokio::test] async fn test_proof_with_wrong_previous_commitment_hash() -> Result<()> { TestCaseRunner::new(ProofWithWrongPreviousCommitmentHash { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() @@ -3503,7 +3513,7 @@ impl TestCase for UndecompressableBlobTest { let light_client_prover = f.light_client_prover.as_ref().unwrap(); let prover_da_service = spawn_bitcoin_da_prover_service( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, Self::test_config().dir, ) @@ -3665,7 +3675,8 @@ impl TestCase for UndecompressableBlobTest { #[tokio::test] async fn test_undecompressable_blob() -> Result<()> { TestCaseRunner::new(UndecompressableBlobTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() diff --git a/bin/citrea/tests/bitcoin/sequencer_commitments.rs b/bin/citrea/tests/bitcoin/sequencer_commitments.rs index 2f0b9ef3b1..b42265d2ba 100644 --- a/bin/citrea/tests/bitcoin/sequencer_commitments.rs +++ b/bin/citrea/tests/bitcoin/sequencer_commitments.rs @@ -16,7 +16,7 @@ use citrea_e2e::traits::Restart; use citrea_e2e::Result; use citrea_primitives::REVEAL_TX_PREFIX; use citrea_sequencer::SequencerRpcClient; -use reth_tasks::TaskManager; +use reth_tasks::TaskExecutor as TaskManager; use rs_merkle::algorithms::Sha256; use rs_merkle::MerkleTree; use sov_ledger_rpc::LedgerRpcClient; @@ -49,7 +49,7 @@ pub async fn wait_for_sequencer_commitments( { Ok(Some(commitments)) => return Ok(commitments), Ok(None) => sleep(Duration::from_millis(500)).await, - Err(e) => bail!("Error fetching sequencer commitments: {}", e), + Err(e) => bail!("Error fetching sequencer commitments: {e}"), } } } @@ -349,7 +349,7 @@ impl TestCase for SequencerCommitmentsFromDaTest { let da = f.bitcoin_nodes.get(0).expect("DA not running."); let da_service = spawn_bitcoin_da_with_wallet( - &self.task_manager.executor(), + &self.task_manager.clone(), &da.config, NodeKind::Sequencer.to_string(), ) @@ -451,7 +451,8 @@ impl TestCase for SequencerCommitmentsFromDaTest { #[tokio::test] async fn test_sequencer_commitments_from_da_layer() -> Result<()> { TestCaseRunner::new(SequencerCommitmentsFromDaTest { - task_manager: TaskManager::current(), + task_manager: TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"), }) .set_citrea_path(get_citrea_path()) .run() diff --git a/bin/citrea/tests/bitcoin/utils.rs b/bin/citrea/tests/bitcoin/utils.rs index 3756c73fc4..17a15caf55 100644 --- a/bin/citrea/tests/bitcoin/utils.rs +++ b/bin/citrea/tests/bitcoin/utils.rs @@ -309,7 +309,7 @@ pub async fn wait_for_prover_job( let now = Instant::now(); if start + timeout <= now { - bail!("Timeout. Failed to get prover job {}", job_id); + bail!("Timeout. Failed to get prover job {job_id}"); } sleep(Duration::from_secs(1)).await; @@ -326,10 +326,7 @@ pub async fn wait_for_prover_job_count( loop { if start.elapsed() >= timeout { - bail!( - "BatchProver failed to reach proving job count {} on time", - count - ); + bail!("BatchProver failed to reach proving job count {count} on time"); } let jobs = batch_prover diff --git a/bin/citrea/tests/common/client.rs b/bin/citrea/tests/common/client.rs index dc28295120..bc68943fba 100644 --- a/bin/citrea/tests/common/client.rs +++ b/bin/citrea/tests/common/client.rs @@ -68,7 +68,7 @@ impl TestClient { .with_chain_id(chain_id) // .with_recommended_fillers() .wallet(EthereumWallet::from(key)) - .on_hyper_http(http_host.parse().unwrap()); + .connect_hyper_http(http_host.parse().unwrap()); let client: Box> = Box::new(provider); diff --git a/bin/citrea/tests/common/helpers.rs b/bin/citrea/tests/common/helpers.rs index 5d00ec61a9..9044184473 100644 --- a/bin/citrea/tests/common/helpers.rs +++ b/bin/citrea/tests/common/helpers.rs @@ -16,7 +16,7 @@ use citrea_common::{ use citrea_light_client_prover::da_block_handler::StartVariant; use citrea_primitives::TEST_PRIVATE_KEY; use citrea_stf::genesis_config::GenesisPaths; -use reth_tasks::TaskManager; +use reth_tasks::TaskExecutor as TaskManager; use short_header_proof_provider::{ NativeShortHeaderProofProviderService, SHORT_HEADER_PROOF_PROVIDER, }; @@ -182,7 +182,7 @@ pub async fn start_rollup( Err(_) => tracing::error!("Short header proof provider already set"), } - let task_executor = task_manager.executor(); + let task_executor = task_manager.clone(); // I am sorry if let_hell_loose { @@ -567,7 +567,7 @@ pub async fn wait_for_prover_job( let now = SystemTime::now(); if start + timeout <= now { - bail!("Timeout. Failed to get prover job {}", job_id); + bail!("Timeout. Failed to get prover job {job_id}"); } sleep(Duration::from_secs(1)).await; @@ -593,7 +593,7 @@ pub async fn wait_for_prover_l1_height_proofs( let now = SystemTime::now(); if start + timeout <= now { - bail!("Timeout. Failed to get batch proofs on L1 height {}", num); + bail!("Timeout. Failed to get batch proofs on L1 height {num}"); } sleep(Duration::from_secs(1)).await; @@ -619,10 +619,7 @@ pub async fn wait_for_prover_l1_height( let now = SystemTime::now(); if start + timeout <= now { - bail!( - "Timeout. Failed to wait for batch prover to scan L1 height {}", - num - ); + bail!("Timeout. Failed to wait for batch prover to scan L1 height {num}"); } sleep(Duration::from_secs(1)).await; @@ -640,10 +637,7 @@ pub async fn wait_for_prover_job_count( loop { if start.elapsed() >= timeout { - bail!( - "BatchProver failed to reach proving job count {} on time", - count - ); + bail!("BatchProver failed to reach proving job count {count} on time"); } let jobs = prover_client.get_proving_jobs(count, None).await; diff --git a/bin/citrea/tests/mock/evm/precompiles.rs b/bin/citrea/tests/mock/evm/precompiles.rs index ddb0e32992..a4fffbc00f 100644 --- a/bin/citrea/tests/mock/evm/precompiles.rs +++ b/bin/citrea/tests/mock/evm/precompiles.rs @@ -50,10 +50,10 @@ async fn test_custom_precompiles() -> Result<(), anyhow::Error> { // p256 verify { // show eth_call uses the custom precompile - let addr = P256VERIFY.address(); + let addr = *P256VERIFY.address(); // correct input - let mut tx_req = TransactionRequest::default().to(*addr).input( + let mut tx_req = TransactionRequest::default().to(addr).input( TransactionInput::from( hex::decode("4cee90eb86eaa050036147a12d49004b6b9c72bd725d39d4785011fe190f0b4da73bd4903f0ce3b639bbbf6e8e80d16931ff4bcf5993d58468e8fb19086e8cac36dbcd03009df8c59286b162af3bd7fcc0450c9aa81be5d10d312af6c66b1d604aebd3099c618202fcfe16ae7770b0c49ab5eadf74b754204a3bb6060e44eff37618b065f9832de4ca6ca971a7a1adc826d0f7c00181a5fb2ddf79ae00b4e10e").unwrap() )); @@ -105,7 +105,8 @@ async fn test_custom_precompiles() -> Result<(), anyhow::Error> { } { - let addr = SCHNORRVERIFY.address(); + let schnorr_precompile = SCHNORRVERIFY; + let addr = schnorr_precompile.address(); // correct input let mut tx_req = TransactionRequest::default().to(*addr).input(TransactionInput::from( diff --git a/bin/citrea/tests/mock/evm/tracing.rs b/bin/citrea/tests/mock/evm/tracing.rs index bfd593c723..b0dbd32374 100644 --- a/bin/citrea/tests/mock/evm/tracing.rs +++ b/bin/citrea/tests/mock/evm/tracing.rs @@ -18,7 +18,7 @@ use alloy_rpc_types_trace::geth::{ use citrea_common::SequencerConfig; use citrea_evm::smart_contracts::{CallerContract, SimpleStorageContract}; use citrea_stf::genesis_config::GenesisPaths; -use reth_tasks::TaskManager; +use reth_tasks::TaskExecutor as TaskManager; use serde_json::{self, json}; use crate::common::client::{TestClient, MAX_FEE_PER_GAS}; diff --git a/bin/citrea/tests/mock/mempool/mod.rs b/bin/citrea/tests/mock/mempool/mod.rs index 6bbe601ecd..1c6868ff2f 100644 --- a/bin/citrea/tests/mock/mempool/mod.rs +++ b/bin/citrea/tests/mock/mempool/mod.rs @@ -7,7 +7,7 @@ use alloy_primitives::Address; use alloy_rpc_types::BlockNumberOrTag; use citrea_common::SequencerConfig; use citrea_stf::genesis_config::GenesisPaths; -use reth_tasks::TaskManager; +use reth_tasks::TaskExecutor as TaskManager; use crate::common::client::{TestClient, MAX_FEE_PER_GAS}; use crate::common::helpers::{ diff --git a/bin/citrea/tests/mock/mempool_maintenance.rs b/bin/citrea/tests/mock/mempool_maintenance.rs index a9ab1e148d..cf986cddb5 100644 --- a/bin/citrea/tests/mock/mempool_maintenance.rs +++ b/bin/citrea/tests/mock/mempool_maintenance.rs @@ -8,7 +8,7 @@ use alloy_primitives::Address; use alloy_rpc_types::BlockNumberOrTag; use citrea_common::SequencerConfig; use citrea_stf::genesis_config::GenesisPaths; -use reth_tasks::TaskManager; +use reth_tasks::TaskExecutor as TaskManager; use sov_db::ledger_db::migrations::copy_db_dir_recursive; use crate::common::client::TestClient; diff --git a/bin/citrea/tests/mock/mod.rs b/bin/citrea/tests/mock/mod.rs index 1ad4a0fe36..80ae10e914 100644 --- a/bin/citrea/tests/mock/mod.rs +++ b/bin/citrea/tests/mock/mod.rs @@ -9,7 +9,7 @@ use citrea_common::{BatchProverConfig, FromEnv, PruningConfig, SequencerConfig}; use citrea_evm::smart_contracts::SimpleStorageContract; use citrea_primitives::forks::fork_from_block_number; use citrea_stf::genesis_config::GenesisPaths; -use reth_tasks::TaskManager; +use reth_tasks::TaskExecutor as TaskManager; use sov_mock_da::{MockAddress, MockDaService}; use sov_rollup_interface::rpc::LastVerifiedBatchProofResponse; use sov_rollup_interface::spec::SpecId; diff --git a/bin/citrea/tests/mock/rollback.rs b/bin/citrea/tests/mock/rollback.rs index ca5717caf5..1f67c0ab28 100644 --- a/bin/citrea/tests/mock/rollback.rs +++ b/bin/citrea/tests/mock/rollback.rs @@ -13,7 +13,7 @@ use citrea_common::{BatchProverConfig, FromEnv, NodeType, SequencerConfig}; use citrea_stf::genesis_config::GenesisPaths; use citrea_storage_ops::rollback::Rollback; use futures::FutureExt; -use reth_tasks::TaskManager; +use reth_tasks::TaskExecutor as TaskManager; use sov_db::ledger_db::migrations::copy_db_dir_recursive; use sov_db::ledger_db::{LedgerDB, SharedLedgerOps}; use sov_db::native_db::NativeDB; diff --git a/crates/bitcoin-da/src/helpers/builders/body_builders.rs b/crates/bitcoin-da/src/helpers/builders/body_builders.rs index 6a425190c7..cc77d8a4dd 100644 --- a/crates/bitcoin-da/src/helpers/builders/body_builders.rs +++ b/crates/bitcoin-da/src/helpers/builders/body_builders.rs @@ -84,7 +84,7 @@ pub enum DaTxs { /// wtxid start from the `reveal_tx_prefix`. #[allow(clippy::too_many_arguments)] #[instrument(level = "trace", skip_all, err)] -pub fn create_inscription_transactions( +pub(crate) fn create_inscription_transactions( data: RawTxData, da_private_key: SecretKey, utxo_context: UtxoContext, @@ -260,7 +260,7 @@ pub fn create_inscription_type_0( let mut lock_time = LOCK_TIME_THRESHOLD; loop { let iterations = lock_time - LOCK_TIME_THRESHOLD; - if iterations > 0 && iterations % 1000 == 0 { + if iterations > 0 && iterations.is_multiple_of(1000) { trace!(iterations, "Mining for complete reveal tx prefix"); if iterations > 16384 { warn!("Too many iterations mining for complete reveal tx prefix"); @@ -431,7 +431,7 @@ pub fn create_inscription_type_1( let mut lock_time = LOCK_TIME_THRESHOLD; loop { let iterations = lock_time - LOCK_TIME_THRESHOLD; - if iterations > 0 && iterations % 1000 == 0 { + if iterations > 0 && iterations.is_multiple_of(1000) { trace!(iterations, "Mining for chunk reveal tx prefix"); if iterations > 16384 { warn!("Too many iterations mining for chunk reveal tx prefix"); @@ -616,7 +616,7 @@ pub fn create_inscription_type_1( let mut lock_time = LOCK_TIME_THRESHOLD; loop { let iterations = lock_time - LOCK_TIME_THRESHOLD; - if iterations > 0 && iterations % 1000 == 0 { + if iterations > 0 && iterations.is_multiple_of(1000) { trace!(iterations, "Mining for aggregate reveal tx prefix"); if iterations > 16384 { warn!("Too many iterations mining for aggregate reveal tx prefix"); @@ -788,7 +788,7 @@ pub fn create_inscription_type_3( let mut lock_time = LOCK_TIME_THRESHOLD; loop { let iterations = lock_time - LOCK_TIME_THRESHOLD; - if iterations > 0 && iterations % 1000 == 0 { + if iterations > 0 && iterations.is_multiple_of(1000) { trace!( iterations, "Mining for batch proof method id reveal tx prefix" @@ -968,7 +968,7 @@ pub fn create_inscription_type_4( let mut lock_time = LOCK_TIME_THRESHOLD; loop { let iterations = lock_time - LOCK_TIME_THRESHOLD; - if iterations > 0 && iterations % 1000 == 0 { + if iterations > 0 && iterations.is_multiple_of(1000) { trace!( iterations, "Mining for sequencer commitment reveal tx prefix" diff --git a/crates/bitcoin-da/src/helpers/merkle_tree.rs b/crates/bitcoin-da/src/helpers/merkle_tree.rs index 5d283c8642..4f102228c2 100644 --- a/crates/bitcoin-da/src/helpers/merkle_tree.rs +++ b/crates/bitcoin-da/src/helpers/merkle_tree.rs @@ -110,7 +110,7 @@ impl BitcoinMerkleTree { let mut index = idx; let mut level: u32 = 0; while level < merkle_proof.len() as u32 { - if index % 2 == 0 { + if index.is_multiple_of(2) { preimage[..32].copy_from_slice(&combined_hash); preimage[32..].copy_from_slice(&merkle_proof[level as usize]); combined_hash = calculate_double_sha256(&preimage); diff --git a/crates/bitcoin-da/src/utxo_manager.rs b/crates/bitcoin-da/src/utxo_manager.rs index aa33d181b1..53588d4364 100644 --- a/crates/bitcoin-da/src/utxo_manager.rs +++ b/crates/bitcoin-da/src/utxo_manager.rs @@ -24,20 +24,16 @@ use crate::REVEAL_OUTPUT_AMOUNT; /// UTXO selection strategy when queue has pending transactions. #[derive(Debug, Clone, PartialEq, Deserialize, Serialize)] #[serde(rename_all = "lowercase")] +#[derive(Default)] pub enum UtxoSelectionMode { /// Default behaviour, always use latest UTXO and keep transactions chained /// Maintain a single sequential transaction chain. + #[default] Chained, /// Choose the UTXO with the highest amount of confirmations and run parallel UTXO chains Oldest, } -impl Default for UtxoSelectionMode { - fn default() -> Self { - Self::Chained - } -} - #[derive(Debug, Clone)] /// UTXOs needed to build a transaction. pub struct UtxoContext { diff --git a/crates/common/src/backup/manager.rs b/crates/common/src/backup/manager.rs index 8ae3aea2b2..e2c90ab765 100644 --- a/crates/common/src/backup/manager.rs +++ b/crates/common/src/backup/manager.rs @@ -330,18 +330,18 @@ impl BackupManager { let backup_path = backup_path.as_ref(); if !backup_path.exists() { - bail!("Backup directory does not exist: {:?}", backup_path); + bail!("Backup directory does not exist: {backup_path:?}"); } let mut sizes = HashSet::new(); for dir in &self.config.backup_dirs { let path = backup_path.join(dir); if !path.exists() { - bail!("Missing required directory '{}' in backup", dir); + bail!("Missing required directory '{dir}' in backup"); } if path.read_dir()?.next().is_none() { - bail!("Directory '{}' is empty ", dir); + bail!("Directory '{dir}' is empty "); } let backup_size = validate_backup(&path)?; @@ -361,7 +361,7 @@ impl BackupManager { ) -> anyhow::Result>> { let backup_path = backup_path.as_ref(); if !backup_path.exists() { - bail!("Backup directory does not exist: {:?}", backup_path); + bail!("Backup directory does not exist: {backup_path:?}"); } let mut map = HashMap::new(); @@ -393,7 +393,7 @@ impl BackupManager { let _permit = self.create_backup_semaphore.acquire().await?; if !backup_path.exists() { - bail!("Backup directory does not exist: {:?}", backup_path); + bail!("Backup directory does not exist: {backup_path:?}"); } let start_time = Instant::now(); diff --git a/crates/common/src/backup/utils.rs b/crates/common/src/backup/utils.rs index 3236099d4b..b4590ed7ed 100644 --- a/crates/common/src/backup/utils.rs +++ b/crates/common/src/backup/utils.rs @@ -37,13 +37,13 @@ pub(super) fn restore_from_backup( pub(super) fn validate_backup(backup_path: impl AsRef) -> anyhow::Result { let backup_path = backup_path.as_ref(); if !backup_path.exists() { - bail!("Backup directory does not exist at {:?}", backup_path); + bail!("Backup directory does not exist at {backup_path:?}"); } let backup_engine = get_backup_engine(backup_path)?; let backups = backup_engine.get_backup_info(); if backups.is_empty() { - bail!("No backups found in {:?}", backup_path); + bail!("No backups found in {backup_path:?}"); } for backup_info in &backups { @@ -54,25 +54,25 @@ pub(super) fn validate_backup(backup_path: impl AsRef) -> anyhow::Result( .map_err(backoff::Error::transient) }) .await - .map_err(|e| anyhow!("Error while fetching L1 block: {}", e))?; + .map_err(|e| anyhow!("Error while fetching L1 block: {e}"))?; l1_block_cache .lock() .await diff --git a/crates/common/src/l2.rs b/crates/common/src/l2.rs index d9b07a37e0..14ae5ac685 100644 --- a/crates/common/src/l2.rs +++ b/crates/common/src/l2.rs @@ -69,7 +69,7 @@ pub async fn apply_l2_block( ); if current_l2_block_hash != l2_block_response.header.prev_hash { - bail!("Previous hash mismatch at height: {}", l2_height); + bail!("Previous hash mismatch at height: {l2_height}"); } let pre_state = storage_manager.create_storage_for_next_l2_height(); @@ -122,7 +122,7 @@ pub async fn apply_l2_block( let next_state_root = l2_block_result.state_root_transition.final_root; // Check if post state root is the same as the one in the l2 block if next_state_root.as_ref().to_vec() != l2_block.state_root() { - bail!("Post state root mismatch at height: {}", l2_height) + bail!("Post state root mismatch at height: {l2_height}") } storage_manager.finalize_storage(l2_block_result.change_set); diff --git a/crates/common/src/rpc/auth.rs b/crates/common/src/rpc/auth.rs index 9f75efc077..0250212239 100644 --- a/crates/common/src/rpc/auth.rs +++ b/crates/common/src/rpc/auth.rs @@ -1,10 +1,10 @@ use std::borrow::Cow; +use std::future::Future; -use futures::future::BoxFuture; -use jsonrpsee::server::middleware::rpc::RpcServiceT; +use jsonrpsee::server::middleware::rpc::{ + Batch, BatchEntry, BatchEntryErr, MethodResponse, Notification, Request, RpcServiceT, +}; use jsonrpsee::types::error::ErrorObjectOwned; -use jsonrpsee::types::Request; -use jsonrpsee::MethodResponse; use serde_json::value::RawValue; use serde_json::Value; @@ -22,74 +22,362 @@ impl Auth { } } -impl<'a, S> RpcServiceT<'a> for Auth +impl RpcServiceT for Auth where - S: RpcServiceT<'a> + Send + Sync + Clone + 'a, + S: RpcServiceT< + MethodResponse = MethodResponse, + NotificationResponse = MethodResponse, + BatchResponse = MethodResponse, + > + Send + + Sync + + Clone + + 'static, { - type Future = BoxFuture<'a, MethodResponse>; + type MethodResponse = MethodResponse; + type NotificationResponse = MethodResponse; + type BatchResponse = MethodResponse; - fn call(&self, req: Request<'a>) -> Self::Future { - let method = req.method_name(); + fn call<'a>(&self, req: Request<'a>) -> impl Future + Send + 'a { let service = self.service.clone(); let api_key = self.api_key.clone().map(Value::from); - - if !PROTECTED_METHODS.contains(&method) { - return Box::pin(service.call(req)); + async move { + let req_id = req.id().clone(); + match authorize_request(req, api_key.as_ref()) { + Ok(req) => service.call(req).await, + Err(err) => MethodResponse::error(req_id, err), + } } + } - let Some(api_key) = api_key else { - return Box::pin(async move { - MethodResponse::error( - req.id().clone(), - ErrorObjectOwned::owned(401, "Cannot access protected method", None::), - ) - }); - }; + fn batch<'a>(&self, batch: Batch<'a>) -> impl Future + Send + 'a { + let service = self.service.clone(); + let api_key = self.api_key.clone().map(Value::from); + async move { + let mut entries = Vec::with_capacity(batch.len()); + let mut saw_notification = false; - Box::pin(async move { - let (req, auth_param) = remove_last_param(req); + for batch_entry in batch { + match batch_entry { + Ok(BatchEntry::Call(req)) => { + let req_id = req.id().clone(); + match authorize_request(req, api_key.as_ref()) { + Ok(req) => entries.push(Ok(BatchEntry::Call(req))), + Err(err) => entries.push(Err(BatchEntryErr::new(req_id, err))), + } + } + Ok(BatchEntry::Notification(notification)) => { + saw_notification = true; + if let Some(notification) = + authorize_notification(notification, api_key.as_ref()) + { + entries.push(Ok(BatchEntry::Notification(notification))); + } + } + Err(err) => entries.push(Err(err)), + } + } - match auth_param { - Some(key) if key == api_key => service.call(req).await, - _ => MethodResponse::error( - req.id().clone(), - ErrorObjectOwned::owned(401, "Invalid or missing API key", None::), - ), + if entries.is_empty() && saw_notification { + MethodResponse::notification() + } else { + service.batch(Batch::from(entries)).await } - }) + } + } + + fn notification<'a>( + &self, + notification: Notification<'a>, + ) -> impl Future + Send + 'a { + let service = self.service.clone(); + let api_key = self.api_key.clone().map(Value::from); + async move { + match authorize_notification(notification, api_key.as_ref()) { + Some(notification) => service.notification(notification).await, + None => MethodResponse::notification(), + } + } + } +} + +fn authorize_request<'a>( + req: Request<'a>, + api_key: Option<&Value>, +) -> Result, ErrorObjectOwned> { + if !is_protected_method(req.method_name()) { + return Ok(req); + } + + let Some(api_key) = api_key else { + return Err(cannot_access_protected_method()); + }; + + let (req, auth_param) = remove_last_request_param(req); + match auth_param { + Some(key) if &key == api_key => Ok(req), + _ => Err(invalid_or_missing_api_key()), } } +fn authorize_notification<'a>( + notification: Notification<'a>, + api_key: Option<&Value>, +) -> Option> { + if !is_protected_method(notification.method_name()) { + return Some(notification); + } + + let api_key = api_key?; + + let (notification, auth_param) = remove_last_notification_param(notification); + match auth_param { + Some(key) if &key == api_key => Some(notification), + _ => None, + } +} + +fn is_protected_method(method: &str) -> bool { + PROTECTED_METHODS.contains(&method) +} + +fn cannot_access_protected_method() -> ErrorObjectOwned { + ErrorObjectOwned::owned(401, "Cannot access protected method", None::) +} + +fn invalid_or_missing_api_key() -> ErrorObjectOwned { + ErrorObjectOwned::owned(401, "Invalid or missing API key", None::) +} + // Extracts the last parameter from a JSON-RPC request. // Returns a new request without the last parameter and the last parameter itself. -// If params is not an array, it returns the original request without params at all. -fn remove_last_param(req: Request) -> (Request, Option) { - match req.params().parse::>() { - Ok(mut params) => { - let last_param = params.pop(); - let params = serde_json::to_string(¶ms).expect("Can't fail"); - let params_box = RawValue::from_string(params).expect("Can't fail"); - let params_cow = Cow::Owned(params_box); - let new_req = Request { - jsonrpc: req.jsonrpc, - id: req.id, - method: req.method, - params: Some(params_cow), - extensions: req.extensions, - }; - (new_req, last_param) +// If params is not an array, it returns the request with params cleared. +fn remove_last_request_param<'a>(req: Request<'a>) -> (Request<'a>, Option) { + let (params, last_param) = remove_last_raw_param(req.params); + let new_req = Request { + jsonrpc: req.jsonrpc, + id: req.id, + method: req.method, + params, + extensions: req.extensions, + }; + (new_req, last_param) +} + +// Extracts the last parameter from a JSON-RPC notification. +// Returns a new notification without the last parameter and the last parameter itself. +// If params is not an array, it returns the notification with params cleared. +fn remove_last_notification_param<'a>( + notification: Notification<'a>, +) -> (Notification<'a>, Option) { + let (params, last_param) = remove_last_raw_param(notification.params); + let new_notification = Notification { + jsonrpc: notification.jsonrpc, + method: notification.method, + params, + extensions: notification.extensions, + }; + (new_notification, last_param) +} + +fn remove_last_raw_param<'a>( + params: Option>, +) -> (Option>, Option) { + match params { + Some(params) => match serde_json::from_str::>(params.get()) { + Ok(mut params) => { + let last_param = params.pop(); + let params = serde_json::to_string(¶ms).expect("Can't fail"); + let params_box = RawValue::from_string(params).expect("Can't fail"); + (Some(Cow::Owned(params_box)), last_param) + } + Err(_) => (None, None), + }, + None => (None, None), + } +} + +#[cfg(test)] +mod tests { + use std::sync::{Arc, Mutex}; + + use jsonrpsee::types::Id; + + use super::*; + + #[derive(Default, Debug)] + struct Seen { + protected_calls_in_batch: usize, + protected_notifications_in_batch: usize, + batch_errs: usize, + notifications_forwarded: usize, + last_call_params_len: Option, + last_notification_params_len: Option, + } + + #[derive(Debug, Clone)] + struct DummyService { + seen: Arc>, + } + + impl RpcServiceT for DummyService { + type MethodResponse = MethodResponse; + type NotificationResponse = MethodResponse; + type BatchResponse = MethodResponse; + + fn call<'a>( + &self, + req: Request<'a>, + ) -> impl Future + Send + 'a { + let seen = self.seen.clone(); + async move { + seen.lock().expect("lock poisoned").last_call_params_len = req + .params() + .parse::>() + .ok() + .map(|params| params.len()); + MethodResponse::error( + req.id().clone(), + ErrorObjectOwned::owned(777, "inner call", None::), + ) + } + } + + fn batch<'a>( + &self, + batch: Batch<'a>, + ) -> impl Future + Send + 'a { + let seen = self.seen.clone(); + async move { + let mut seen = seen.lock().expect("lock poisoned"); + for entry in batch { + match entry { + Ok(BatchEntry::Call(req)) => { + if is_protected_method(req.method_name()) { + seen.protected_calls_in_batch += 1; + } + seen.last_call_params_len = req + .params() + .parse::>() + .ok() + .map(|params| params.len()); + } + Ok(BatchEntry::Notification(notification)) => { + if is_protected_method(notification.method_name()) { + seen.protected_notifications_in_batch += 1; + } + seen.last_notification_params_len = notification + .params() + .as_ref() + .and_then(|params| { + serde_json::from_str::>(params.get()).ok() + }) + .map(|params| params.len()); + } + Err(_) => { + seen.batch_errs += 1; + } + } + } + + MethodResponse::notification() + } } - Err(_e) => { - // Because params is not an array, - // we clear params and return method as is - let new_req = Request { - jsonrpc: req.jsonrpc, - id: req.id, - method: req.method, - params: None, - extensions: req.extensions, - }; - (new_req, None) + + fn notification<'a>( + &self, + notification: Notification<'a>, + ) -> impl Future + Send + 'a { + let seen = self.seen.clone(); + async move { + let mut seen = seen.lock().expect("lock poisoned"); + seen.notifications_forwarded += 1; + seen.last_notification_params_len = notification + .params() + .as_ref() + .and_then(|params| serde_json::from_str::>(params.get()).ok()) + .map(|params| params.len()); + MethodResponse::notification() + } } } + + fn raw(value: &str) -> Box { + RawValue::from_string(value.to_string()).expect("valid raw value") + } + + #[test] + fn batch_rejects_protected_calls_without_api_key() { + let seen = Arc::new(Mutex::new(Seen::default())); + let service = DummyService { seen: seen.clone() }; + let auth = Auth::new(service, None); + + let mut batch = Batch::new(); + batch.push(Request::owned( + "backup_info".to_string(), + Some(raw(r#"["/tmp/backup","secret"]"#)), + Id::Number(1), + )); + + futures::executor::block_on(auth.batch(batch)); + + let seen = seen.lock().expect("lock poisoned"); + assert_eq!(seen.protected_calls_in_batch, 0); + assert_eq!(seen.batch_errs, 1); + } + + #[test] + fn batch_allows_protected_calls_with_valid_api_key_and_strips_key() { + let seen = Arc::new(Mutex::new(Seen::default())); + let service = DummyService { seen: seen.clone() }; + let auth = Auth::new(service, Some("secret".to_string())); + + let mut batch = Batch::new(); + batch.push(Request::owned( + "backup_info".to_string(), + Some(raw(r#"["/tmp/backup","secret"]"#)), + Id::Number(1), + )); + + futures::executor::block_on(auth.batch(batch)); + + let seen = seen.lock().expect("lock poisoned"); + assert_eq!(seen.protected_calls_in_batch, 1); + assert_eq!(seen.batch_errs, 0); + assert_eq!(seen.last_call_params_len, Some(1)); + } + + #[test] + fn notification_rejects_protected_method_without_api_key() { + let seen = Arc::new(Mutex::new(Seen::default())); + let service = DummyService { seen: seen.clone() }; + let auth = Auth::new(service, None); + + let notification = Notification::new( + Cow::Borrowed("backup_info"), + Some(Cow::Owned(raw(r#"["/tmp/backup","secret"]"#))), + ); + + futures::executor::block_on(auth.notification(notification)); + + let seen = seen.lock().expect("lock poisoned"); + assert_eq!(seen.notifications_forwarded, 0); + } + + #[test] + fn notification_allows_protected_method_with_valid_api_key_and_strips_key() { + let seen = Arc::new(Mutex::new(Seen::default())); + let service = DummyService { seen: seen.clone() }; + let auth = Auth::new(service, Some("secret".to_string())); + + let notification = Notification::new( + Cow::Borrowed("backup_info"), + Some(Cow::Owned(raw(r#"["/tmp/backup","secret"]"#))), + ); + + futures::executor::block_on(auth.notification(notification)); + + let seen = seen.lock().expect("lock poisoned"); + assert_eq!(seen.notifications_forwarded, 1); + assert_eq!(seen.last_notification_params_len, Some(1)); + } } diff --git a/crates/common/src/rpc/metrics.rs b/crates/common/src/rpc/metrics.rs index 7e4b27c9de..8ea6d71027 100644 --- a/crates/common/src/rpc/metrics.rs +++ b/crates/common/src/rpc/metrics.rs @@ -1,23 +1,33 @@ +use std::collections::HashMap; +use std::future::Future; use std::time::Instant; -use futures::future::BoxFuture; -use futures::FutureExt; -use jsonrpsee::server::middleware::rpc::RpcServiceT; -use jsonrpsee::types::Request; -use jsonrpsee::MethodResponse; +use jsonrpsee::server::middleware::rpc::{ + Batch, BatchEntry, MethodResponse, Notification, Request, RpcServiceT, +}; use metrics::{counter, histogram}; +use serde_json::Value; /// Wraps an inner RPC service and records response times #[derive(Debug, Clone)] pub struct RpcMetrics(pub S); -impl<'a, S> RpcServiceT<'a> for RpcMetrics +impl RpcServiceT for RpcMetrics where - S: RpcServiceT<'a> + Send + Sync + Clone + 'a, + S: RpcServiceT< + MethodResponse = MethodResponse, + NotificationResponse = MethodResponse, + BatchResponse = MethodResponse, + > + Send + + Sync + + Clone + + 'static, { - type Future = BoxFuture<'a, MethodResponse>; + type MethodResponse = MethodResponse; + type NotificationResponse = MethodResponse; + type BatchResponse = MethodResponse; - fn call(&self, req: Request<'a>) -> Self::Future { + fn call<'a>(&self, req: Request<'a>) -> impl Future + Send + 'a { let service = self.0.clone(); let method_name = req.method_name().to_string(); let start = Instant::now(); @@ -26,23 +36,124 @@ where let response = service.call(req).await; let elapsed = start.elapsed().as_secs_f64(); - let success = response.is_success().to_string(); - - counter!( - "rpc_requests_total", - "method" => method_name.clone(), - "success" => success.clone(), - ) - .increment(1); - histogram!( - "rpc_response_time_seconds", - "method" => method_name, - "success" => success, - ) - .record(elapsed); + let success = response.is_success(); + record_rpc_metrics(method_name, success, elapsed); response } - .boxed() } + + fn batch<'a>(&self, batch: Batch<'a>) -> impl Future + Send + 'a { + let service = self.0.clone(); + let calls: Vec<(String, String)> = batch + .iter() + .filter_map(|entry| match entry { + Ok(BatchEntry::Call(req)) => { + let id = + serde_json::to_string(&req.id()).unwrap_or_else(|_| req.id().to_string()); + Some((id, req.method_name().to_string())) + } + _ => None, + }) + .collect(); + let start = Instant::now(); + + async move { + let response = service.batch(batch).await; + let elapsed = start.elapsed().as_secs_f64(); + if calls.is_empty() { + record_rpc_metrics("batch".to_string(), is_batch_success(&response), elapsed); + } else { + let success_by_id = batch_call_success_by_id(&response); + let batch_success = is_batch_success(&response); + + for (id, method_name) in calls { + let success = success_by_id + .as_ref() + .and_then(|success_by_id| success_by_id.get(&id).copied()) + .unwrap_or(batch_success); + record_rpc_metrics(method_name, success, elapsed); + } + } + + response + } + } + + fn notification<'a>( + &self, + notification: Notification<'a>, + ) -> impl Future + Send + 'a { + self.0.notification(notification) + } +} + +fn record_rpc_metrics(method_name: String, success: bool, elapsed: f64) { + let success = success.to_string(); + counter!( + "rpc_requests_total", + "method" => method_name.clone(), + "success" => success.clone(), + ) + .increment(1); + histogram!( + "rpc_response_time_seconds", + "method" => method_name, + "success" => success, + ) + .record(elapsed); +} + +fn is_batch_success(response: &MethodResponse) -> bool { + if response.is_notification() { + return true; + } + if !response.is_batch() { + return response.is_success(); + } + + let Ok(value) = serde_json::from_str::(response.as_json().get()) else { + return response.is_success(); + }; + + match value { + Value::Array(entries) => entries.iter().all(|entry| match entry { + Value::Object(entry) => !entry.contains_key("error"), + _ => false, + }), + Value::Object(entry) => !entry.contains_key("error"), + _ => false, + } +} + +fn batch_call_success_by_id(response: &MethodResponse) -> Option> { + if !response.is_batch() { + return None; + } + + let Ok(value) = serde_json::from_str::(response.as_json().get()) else { + return None; + }; + let Value::Array(entries) = value else { + return None; + }; + + let mut success_by_id = HashMap::new(); + for entry in entries { + let Value::Object(entry) = entry else { + continue; + }; + + let Some(id) = entry.get("id") else { + continue; + }; + + let Ok(id) = serde_json::to_string(id) else { + continue; + }; + + success_by_id.insert(id, !entry.contains_key("error")); + } + + Some(success_by_id) } diff --git a/crates/common/src/rpc/mod.rs b/crates/common/src/rpc/mod.rs index 219029dd7e..7ddc0fca9e 100644 --- a/crates/common/src/rpc/mod.rs +++ b/crates/common/src/rpc/mod.rs @@ -1,18 +1,19 @@ //! Common RPC crate provides helper methods that are needed in rpc servers +use std::future::Future; use std::sync::Arc; use std::time::Duration; use backoff::future::retry as retry_backoff; use backoff::ExponentialBackoff; -use futures::future::BoxFuture; -use futures::FutureExt; use hyper::Method; use jsonrpsee::core::RegisterMethodError; use jsonrpsee::server::middleware::http::ProxyGetRequestLayer; -use jsonrpsee::server::middleware::rpc::RpcServiceT; +use jsonrpsee::server::middleware::rpc::{ + Batch, MethodResponse, Notification, Request, RpcServiceT, +}; use jsonrpsee::types::error::{INTERNAL_ERROR_CODE, INTERNAL_ERROR_MSG}; -use jsonrpsee::types::{ErrorObjectOwned, Request}; -use jsonrpsee::{MethodResponse, RpcModule}; +use jsonrpsee::types::ErrorObjectOwned; +use jsonrpsee::RpcModule; use sov_db::ledger_db::{LedgerDB, SharedLedgerOps}; use sov_db::schema::types::L2BlockNumber; use sov_rollup_interface::services::da::DaService; @@ -120,7 +121,7 @@ pub fn register_healthcheck_rpc_light_client_prover ProxyGetRequestLayer { - ProxyGetRequestLayer::new("/health", "health_check").unwrap() + ProxyGetRequestLayer::new([("/health", "health_check")]).unwrap() } /// Returns cors layer to be used as http middleware @@ -134,14 +135,23 @@ pub fn get_cors_layer() -> CorsLayer { #[derive(Debug, Clone)] pub struct Logger(pub S); -impl<'a, S> RpcServiceT<'a> for Logger +impl RpcServiceT for Logger where - S: RpcServiceT<'a> + Send + Sync + Clone + 'a, + S: RpcServiceT< + MethodResponse = MethodResponse, + NotificationResponse = MethodResponse, + BatchResponse = MethodResponse, + > + Send + + Sync + + Clone + + 'static, { - type Future = BoxFuture<'a, MethodResponse>; + type MethodResponse = MethodResponse; + type NotificationResponse = MethodResponse; + type BatchResponse = MethodResponse; - fn call(&self, req: Request<'a>) -> Self::Future { - let req_id = req.id(); + fn call<'a>(&self, req: Request<'a>) -> impl Future + Send + 'a { + let req_id = req.id().clone(); let req_method = req.method_name().to_string(); tracing::debug!(id = ?req_id, method = ?req_method, params = ?req.params().as_str(), "rpc_request"); @@ -150,17 +160,38 @@ where async move { let resp = service.call(req).await; if resp.is_success() { - tracing::trace!(id = ?req_id, method = ?req_method, result = ?resp.as_result(), "rpc_success"); + tracing::trace!(id = ?req_id, method = ?req_method, result = %resp.as_json(), "rpc_success"); } else { match req_method.as_str() { - "eth_sendRawTransaction" | "eth_sendRawTransactionSync"=> tracing::debug!(id = ?req_id, method = ?req_method, result = ?resp.as_result(), "rpc_error"), - _ => tracing::warn!(id = ?req_id, method = ?req_method, result = ?resp.as_result(), "rpc_error") + "eth_sendRawTransaction" | "eth_sendRawTransactionSync" => tracing::debug!( + id = ?req_id, + method = ?req_method, + error_code = ?resp.as_error_code(), + result = %resp.as_json(), + "rpc_error" + ), + _ => tracing::warn!( + id = ?req_id, + method = ?req_method, + error_code = ?resp.as_error_code(), + result = %resp.as_json(), + "rpc_error" + ), } - } resp } - .boxed() + } + + fn batch<'a>(&self, batch: Batch<'a>) -> impl Future + Send + 'a { + self.0.batch(batch) + } + + fn notification<'a>( + &self, + notification: Notification<'a>, + ) -> impl Future + Send + 'a { + self.0.notification(notification) } } diff --git a/crates/common/src/rpc/server.rs b/crates/common/src/rpc/server.rs index 3659ef7ec7..4f1f2fb289 100644 --- a/crates/common/src/rpc/server.rs +++ b/crates/common/src/rpc/server.rs @@ -1,7 +1,8 @@ use std::net::SocketAddr; use std::time::Duration; -use jsonrpsee::server::{BatchRequestConfig, RpcServiceBuilder, ServerBuilder}; +use jsonrpsee::server::middleware::rpc::RpcServiceBuilder; +use jsonrpsee::server::{BatchRequestConfig, ServerBuilder, ServerConfig}; use jsonrpsee::RpcModule; use reth_tasks::TaskExecutor; use tokio::sync::oneshot; @@ -46,12 +47,16 @@ pub fn start_rpc_server( task_executor.spawn_with_signal(move |cancellation_token| { async move { - let server = ServerBuilder::default() + let server_config = ServerConfig::builder() .max_connections(max_connections) .max_subscriptions_per_connection(max_subscriptions_per_connection) .max_request_body_size(max_request_body_size) .max_response_body_size(max_response_body_size) .set_batch_request_config(BatchRequestConfig::Limit(batch_requests_limit)) + .build(); + + let server = ServerBuilder::default() + .set_config(server_config) .set_http_middleware(middleware) .set_rpc_middleware(rpc_middleware) .build([listen_address].as_ref()) diff --git a/crates/common/src/utils.rs b/crates/common/src/utils.rs index 6fe434380e..253e332458 100644 --- a/crates/common/src/utils.rs +++ b/crates/common/src/utils.rs @@ -91,7 +91,7 @@ async fn update_short_header_proof_from_sys_tx { tracing::warn!( - "Unexpected function selector at system tx: {unexpected_selector:?} , tx input: {:?}, tx hash: {:?}, tx nonce: {:?}", tx.inner().transaction().input(), tx.inner().hash(), tx.inner().transaction().nonce() + "Unexpected function selector at system tx: {unexpected_selector:?} , tx input: {:?}, tx hash: {:?}, tx nonce: {:?}", tx.inner().input(), tx.inner().hash(), tx.inner().nonce() ); } } @@ -139,7 +139,7 @@ pub async fn decode_sov_tx_and_update_short_header_proofs anyhow::Result { - env::var(key).map_err(|_| anyhow::anyhow!("Env {} missing or invalid UTF-8", key)) + env::var(key).map_err(|_| anyhow::anyhow!("Env {key} missing or invalid UTF-8")) } /// Non-blocking shutdown probe. diff --git a/crates/ethereum-rpc/src/subscription.rs b/crates/ethereum-rpc/src/subscription.rs index b21ac3875f..a0cde91a0d 100644 --- a/crates/ethereum-rpc/src/subscription.rs +++ b/crates/ethereum-rpc/src/subscription.rs @@ -5,7 +5,6 @@ use alloy_rpc_types::{Block, BlockNumHash, BlockNumberOrTag, Filter, FilteredPar use alloy_serde::WithOtherFields; use citrea_evm::Evm; use jsonrpsee::{SubscriptionMessage, SubscriptionSink}; -use reth_rpc_eth_types::logs_utils::log_matches_filter; use sov_db::ledger_db::LedgerDB; use sov_modules_api::WorkingSet; use tokio::sync::broadcast; @@ -121,7 +120,11 @@ async fn log_subscriber_task( let num_hash = BlockNumHash::new(log.block_number.unwrap(), log.block_hash.unwrap()); - if log_matches_filter(num_hash, &log.inner, &filtered_params) { + if filtered_params.filter_block_hash(num_hash.hash) + && filtered_params.filter_block_range(num_hash.number) + && filtered_params.filter_address(&log.inner.address) + && filtered_params.filter_topics(log.inner.topics()) + { let msg = SubscriptionMessage::new( sink.method_name(), sink.subscription_id(), diff --git a/crates/evm/src/call.rs b/crates/evm/src/call.rs index e0987cce9f..f55cba9322 100644 --- a/crates/evm/src/call.rs +++ b/crates/evm/src/call.rs @@ -54,7 +54,7 @@ impl Evm { let l1_fee_rate = context.l1_fee_rate(); let mut citrea_handler_ext = CitreaChain::new(l1_fee_rate); - let block_number = self.block_env.number; + let block_number = self.block_env.number.to::(); let mut cumulative_gas_used = 0; let mut log_index_start = 0; diff --git a/crates/evm/src/evm/call.rs b/crates/evm/src/evm/call.rs index 545c1797ad..ab30332e77 100644 --- a/crates/evm/src/evm/call.rs +++ b/crates/evm/src/evm/call.rs @@ -2,11 +2,12 @@ use std::cmp::min; +use alloy_consensus::transaction::Either; use alloy_consensus::TxType; use alloy_primitives::U256; use alloy_rpc_types::TransactionRequest; use reth_rpc_eth_types::error::{EthResult, RpcInvalidTransactionError}; -use reth_rpc_eth_types::revm_utils::CallFees; +use reth_rpc_types_compat::{CallFees, EthTxEnvError}; use revm::context::{BlockEnv, CfgEnv, TxEnv}; use crate::caller_gas_allowance; @@ -66,7 +67,8 @@ pub(crate) fn create_txn_env( None, None, None, - )?; + ) + .map_err(EthTxEnvError::from)?; // set gas limit initially to block gas limit let mut gas_limit = U256::from(block_env.gas_limit); @@ -120,7 +122,11 @@ pub(crate) fn create_txn_env( value: value.unwrap_or_default(), data: input.try_into_unique_input()?.unwrap_or_default(), access_list: access_list.unwrap_or_default(), - authorization_list: authorization_list.unwrap_or_default().to_vec(), + authorization_list: authorization_list + .unwrap_or_default() + .into_iter() + .map(Either::Left) + .collect(), // EIP-4844 related fields // as the `TxEnv` returned from this function is given to plain revm::Evm diff --git a/crates/evm/src/evm/conversions.rs b/crates/evm/src/evm/conversions.rs index c66bfa8545..95127d2a9c 100644 --- a/crates/evm/src/evm/conversions.rs +++ b/crates/evm/src/evm/conversions.rs @@ -7,6 +7,7 @@ use alloy_primitives::U256; use reth_primitives::{Recovered, TransactionSigned}; use reth_primitives_traits::SignedTransaction; use revm::context::{TransactTo, TxEnv}; +use revm::context_interface::either::Either; use revm::state::AccountInfo as ReVmAccountInfo; use super::primitive_types::{ @@ -23,6 +24,7 @@ impl From for ReVmAccountInfo { balance: info.balance, code: None, code_hash: info.code_hash.unwrap_or(KECCAK_EMPTY), + account_id: None, } } } @@ -73,7 +75,13 @@ pub(crate) fn create_tx_env(tx: &Recovered) -> TxEnv { // EIP-4844 related fields blob_hashes: tx.blob_versioned_hashes().unwrap_or_default().to_vec(), max_fee_per_blob_gas: tx.max_fee_per_blob_gas().unwrap_or_default(), - authorization_list: tx.authorization_list().unwrap_or_default().to_vec(), + authorization_list: tx + .authorization_list() + .unwrap_or_default() + .iter() + .cloned() + .map(Either::Left) + .collect(), }; tx_env @@ -127,15 +135,14 @@ pub(crate) fn sealed_block_to_block_env( ) -> revm::context::BlockEnv { use citrea_primitives::forks::fork_from_block_number; use revm::context_interface::block::BlobExcessGasAndPrice; - use revm::primitives::hardfork::SpecId::PRAGUE; use crate::citrea_spec_id_to_evm_spec_id; let evm_spec_id = citrea_spec_id_to_evm_spec_id(fork_from_block_number(sealed_header.number).spec_id); revm::context::BlockEnv { - number: sealed_header.number, + number: U256::from(sealed_header.number), beneficiary: sealed_header.beneficiary, - timestamp: sealed_header.timestamp, + timestamp: U256::from(sealed_header.timestamp), prevrandao: Some(sealed_header.mix_hash), basefee: sealed_header.base_fee_per_gas.unwrap_or_default(), gas_limit: sealed_header.gas_limit, @@ -143,7 +150,7 @@ pub(crate) fn sealed_block_to_block_env( blob_excess_gas_and_price: sealed_header .excess_blob_gas .or(Some(0)) - .map(|gas| BlobExcessGasAndPrice::new(gas, evm_spec_id.is_enabled_in(PRAGUE))), + .map(|gas| BlobExcessGasAndPrice::new_with_spec(gas, evm_spec_id)), } } diff --git a/crates/evm/src/evm/executor.rs b/crates/evm/src/evm/executor.rs index a860069092..e091799e36 100644 --- a/crates/evm/src/evm/executor.rs +++ b/crates/evm/src/evm/executor.rs @@ -4,7 +4,7 @@ use alloy_primitives::{keccak256, U256}; use alloy_sol_types::SolCall; use reth_primitives::{Recovered, TransactionSigned}; use revm::context::result::{EVMError, ExecutionResult, ResultAndState}; -use revm::context::{BlockEnv, Cfg, CfgEnv, ContextTr, JournalTr}; +use revm::context::{BlockEnv, CfgEnv, ContextTr, JournalTr}; use revm::handler::EvmTr; use revm::state::EvmState; use revm::{self, Context, Database, DatabaseCommit, ExecuteEvm, Journal}; @@ -31,11 +31,12 @@ where /// Creates a new Citrea EVM with the given parameters. pub fn new(db: DB, block_env: BlockEnv, config_env: CfgEnv, ext: &'a mut CitreaChain) -> Self { let mut journal = Journal::::new(db); - journal.set_spec_id(config_env.spec()); + journal.set_spec_id(*config_env.spec()); let evm = Context { block: block_env, cfg: config_env, chain: ext, + local: Default::default(), tx: Default::default(), error: Ok(()), journaled_state: journal, @@ -50,7 +51,7 @@ where &mut self, tx: &Recovered, ) -> Result> { - self.evm.ctx().chain().set_current_tx_hash(tx.hash()); + self.evm.ctx().chain_mut().set_current_tx_hash(tx.hash()); self.evm.transact(create_tx_env(tx)) } @@ -59,7 +60,7 @@ where where DB: DatabaseCommit, { - self.evm.ctx().db().commit(state) + self.evm.ctx().db_mut().commit(state) } } @@ -100,7 +101,7 @@ pub(crate) fn execute_multiple_tx( return Err(L2BlockModuleCallError::EvmSystemTransactionPlacedAfterUserTx); } - verify_system_tx(evm.evm.ctx().db(), tx, l2_height)?; + verify_system_tx(evm.evm.ctx().db_mut(), tx, l2_height)?; } else { // Set to true as soon as a user tx is found // If a sys tx is encountered after a user tx it is an error @@ -165,11 +166,8 @@ fn verify_system_tx( .map_err(|_| L2BlockModuleCallError::EvmSystemTxParseError)?; if function_selector == BitcoinLightClientContract::setBlockInfoCall::SELECTOR { - let call = BitcoinLightClientContract::setBlockInfoCall::abi_decode( - tx.input(), - /*validate*/ true, - ) - .map_err(|_| L2BlockModuleCallError::EvmSystemTxParseError)?; + let call = BitcoinLightClientContract::setBlockInfoCall::abi_decode_validate(tx.input()) + .map_err(|_| L2BlockModuleCallError::EvmSystemTxParseError)?; let l1_block_hash = call._blockHash; let txs_commitment = call._witnessRoot; diff --git a/crates/evm/src/evm/handler.rs b/crates/evm/src/evm/handler.rs index f69a537884..58d038bd4e 100644 --- a/crates/evm/src/evm/handler.rs +++ b/crates/evm/src/evm/handler.rs @@ -3,33 +3,31 @@ use std::collections::{BTreeMap, BTreeSet}; use std::sync::OnceLock; use revm::context::result::{ - EVMError, FromStringError, HaltReason, InvalidTransaction, ResultAndState, + EVMError, ExecResultAndState, ExecutionResult, FromStringError, HaltReason, InvalidTransaction, }; use revm::context::transaction::AuthorizationTr; use revm::context::{ - Block, BlockEnv, Cfg, CfgEnv, ContextSetters, ContextTr, Evm, EvmData, JournalTr, Transaction, - TxEnv, + Block, BlockEnv, Cfg, CfgEnv, ContextSetters, ContextTr, Evm, JournalTr, Transaction, TxEnv, }; -use revm::handler::instructions::{EthInstructions, InstructionProvider}; +use revm::context_interface::journaled_state::account::JournaledAccountTr; +use revm::context_interface::journaled_state::entry::SelfdestructionRevertStatus; +use revm::handler::instructions::EthInstructions; // use revm::handler::register::{EvmHandler, HandleRegisterBox, HandleRegisters}; use revm::handler::{ - EthFrame, EthPrecompiles, EvmTr, EvmTrError, Frame, FrameResult, Handler, MainnetHandler, + EthFrame, EthPrecompiles, EvmTr, EvmTrError, FrameResult, FrameTr, Handler, MainnetHandler, PrecompileProvider, }; #[cfg(feature = "native")] -use revm::inspector::{InspectorEvmTr, InspectorFrame, InspectorHandler}; +use revm::inspector::{InspectEvm, Inspector, InspectorEvmTr, InspectorFrame, InspectorHandler}; use revm::interpreter::interpreter::EthInterpreter; -use revm::interpreter::{ - FrameInput, InputsImpl, InstructionResult, Interpreter, InterpreterResult, InterpreterTypes, -}; +use revm::interpreter::interpreter_action::FrameInit; +use revm::interpreter::{CallInputs, InstructionResult, InterpreterResult}; +use revm::precompile::secp256r1::P256VERIFY; +use revm::precompile::{bls12_381, Precompiles}; use revm::primitives::hardfork::SpecId; use revm::primitives::{Address, B256, KECCAK_EMPTY, U256}; use revm::state::Bytecode; use revm::{Context, Database, ExecuteEvm, Journal, JournalEntry}; -#[cfg(feature = "native")] -use revm::{InspectEvm, Inspector}; -use revm_precompile::secp256r1::P256VERIFY; -use revm_precompile::{bls12_381, Precompiles}; use sov_modules_api::{native_debug, native_error}; #[cfg(feature = "native")] use tracing::instrument; @@ -177,54 +175,95 @@ impl CitreaCallExt for EVM { } pub struct CitreaEvm( - pub Evm, CitreaPrecompiles>, + pub Evm< + CTX, + INSP, + EthInstructions, + CitreaPrecompiles, + EthFrame, + >, ); impl CitreaEvm { pub fn new(ctx: CTX, inspector: INSP) -> Self { let spec = ctx.cfg().spec().into(); - Self(Evm { - data: EvmData { ctx, inspector }, - instruction: EthInstructions::new_mainnet(), - precompiles: CitreaPrecompiles::new_with_spec(spec), - }) + Self(Evm::new_with_inspector( + ctx, + inspector, + EthInstructions::new_mainnet(), + CitreaPrecompiles::new_with_spec(spec), + )) } } impl EvmTr for CitreaEvm where - CTX: CitreaContextTr, + CTX: CitreaContextTr + ContextSetters, { type Context = CTX; type Instructions = EthInstructions; type Precompiles = CitreaPrecompiles; + type Frame = EthFrame; - fn run_interpreter( + fn all( + &self, + ) -> ( + &Self::Context, + &Self::Instructions, + &Self::Precompiles, + &revm::context_interface::FrameStack, + ) { + ( + &self.0.ctx, + &self.0.instruction, + &self.0.precompiles, + &self.0.frame_stack, + ) + } + + fn all_mut( &mut self, - interpreter: &mut Interpreter< - ::InterpreterTypes, - >, - ) -> <::InterpreterTypes as InterpreterTypes>::Output - { - let context = &mut self.0.data.ctx; - let instructions = &mut self.0.instruction; - interpreter.run_plain(instructions.instruction_table(), context) - } - - fn ctx(&mut self) -> &mut Self::Context { - &mut self.0.data.ctx - } - - fn ctx_ref(&self) -> &Self::Context { - &self.0.data.ctx + ) -> ( + &mut Self::Context, + &mut Self::Instructions, + &mut Self::Precompiles, + &mut revm::context_interface::FrameStack, + ) { + ( + &mut self.0.ctx, + &mut self.0.instruction, + &mut self.0.precompiles, + &mut self.0.frame_stack, + ) + } + + fn frame_init( + &mut self, + frame_input: ::FrameInit, + ) -> Result< + revm::handler::evm::FrameInitResult<'_, Self::Frame>, + revm::handler::evm::ContextDbError, + > { + self.0.frame_init(frame_input) } - fn ctx_instructions(&mut self) -> (&mut Self::Context, &mut Self::Instructions) { - (&mut self.0.data.ctx, &mut self.0.instruction) + fn frame_run( + &mut self, + ) -> Result< + revm::handler::FrameInitOrResult, + revm::handler::evm::ContextDbError, + > { + self.0.frame_run() } - fn ctx_precompiles(&mut self) -> (&mut Self::Context, &mut Self::Precompiles) { - (&mut self.0.data.ctx, &mut self.0.precompiles) + fn frame_return_result( + &mut self, + result: ::FrameResult, + ) -> Result< + Option<::FrameResult>, + revm::handler::evm::ContextDbError, + > { + self.0.frame_return_result(result) } } @@ -232,26 +271,44 @@ where impl InspectorEvmTr for CitreaEvm where CTX: CitreaContextTr + ContextSetters, - INSP: Inspector, + INSP: Inspector, { type Inspector = INSP; - fn inspector(&mut self) -> &mut Self::Inspector { - &mut self.0.data.inspector - } - - fn ctx_inspector(&mut self) -> (&mut Self::Context, &mut Self::Inspector) { - (&mut self.0.data.ctx, &mut self.0.data.inspector) - } - - fn run_inspect_interpreter( + fn all_inspector( + &self, + ) -> ( + &Self::Context, + &Self::Instructions, + &Self::Precompiles, + &revm::context_interface::FrameStack, + &Self::Inspector, + ) { + ( + &self.0.ctx, + &self.0.instruction, + &self.0.precompiles, + &self.0.frame_stack, + &self.0.inspector, + ) + } + + fn all_mut_inspector( &mut self, - interpreter: &mut Interpreter< - ::InterpreterTypes, - >, - ) -> <::InterpreterTypes as InterpreterTypes>::Output - { - self.0.run_inspect_interpreter(interpreter) + ) -> ( + &mut Self::Context, + &mut Self::Instructions, + &mut Self::Precompiles, + &mut revm::context_interface::FrameStack, + &mut Self::Inspector, + ) { + ( + &mut self.0.ctx, + &mut self.0.instruction, + &mut self.0.precompiles, + &mut self.0.frame_stack, + &mut self.0.inspector, + ) } } @@ -259,27 +316,47 @@ where type CitreaError = EVMError<<::Db as Database>::Error /*CitreaTransactionError*/>; +#[cfg(feature = "native")] +type InspectReplayResult = Result< + ExecResultAndState< + ExecutionResult, + <::Journal as JournalTr>::State, + >, + CitreaError, +>; + impl ExecuteEvm for CitreaEvm where CTX: CitreaContextTr + ContextSetters, { - type Output = Result, CitreaError>; - + type ExecutionResult = ExecutionResult; + type State = ::State; + type Error = CitreaError; type Tx = ::Tx; - type Block = ::Block; - fn set_tx(&mut self, tx: Self::Tx) { - self.0.data.ctx.set_tx(tx); + fn transact_one(&mut self, tx: Self::Tx) -> Result { + self.0.ctx.set_tx(tx); + let mut h = CitreaHandler::<_, _, EthFrame>::new(); + h.run(self) + } + + fn finalize(&mut self) -> Self::State { + self.0.ctx.journal_mut().finalize() } fn set_block(&mut self, block: Self::Block) { - self.0.data.ctx.set_block(block); + self.0.ctx.set_block(block); } - fn replay(&mut self) -> Self::Output { - let mut h = CitreaHandler::<_, _, EthFrame<_, _, _>>::new(); - h.run(self) + fn replay( + &mut self, + ) -> Result, Self::Error> { + let mut h = CitreaHandler::<_, _, EthFrame>::new(); + h.run(self).map(|result| { + let state = self.finalize(); + ExecResultAndState::new(result, state) + }) } } @@ -287,20 +364,38 @@ where impl InspectEvm for CitreaEvm where CTX: CitreaContextTr + ContextSetters, - INSP: Inspector, + INSP: Inspector, { type Inspector = INSP; fn set_inspector(&mut self, inspector: Self::Inspector) { - self.0.data.inspector = inspector; + self.0.inspector = inspector; } - fn inspect_replay(&mut self) -> Self::Output { - let mut h = CitreaHandler::<_, _, EthFrame<_, _, _>>::new(); + fn inspect_one_tx(&mut self, tx: Self::Tx) -> Result { + self.0.ctx.set_tx(tx); + let mut h = CitreaHandler::<_, _, EthFrame>::new(); h.inspect_run(self) } } +#[cfg(feature = "native")] +impl CitreaEvm +where + CTX: CitreaContextTr + ContextSetters, + INSP: Inspector, +{ + /// Replays the currently configured transaction with the active inspector and returns + /// both execution result and finalized journal state. + pub fn inspect_replay(&mut self) -> InspectReplayResult { + let mut h = CitreaHandler::<_, _, EthFrame>::new(); + h.inspect_run(self).map(|result| { + let state = self.finalize(); + ExecResultAndState::new(result, state) + }) + } +} + /// Type alias for the default context type of the CitreaEvm. pub type CitreaContext<'a, DB> = Context, &'a mut CitreaChain>; @@ -421,13 +516,9 @@ where fn run( &mut self, context: &mut CTX, - address: &Address, - inputs: &InputsImpl, - is_static: bool, - gas_limit: u64, + inputs: &CallInputs, ) -> Result, String> { - self.inner - .run(context, address, inputs, is_static, gas_limit) + self.inner.run(context, inputs) } #[inline] @@ -461,70 +552,63 @@ impl CitreaHandler { impl Handler for CitreaHandler where - EVM: EvmTr, + EVM: EvmTr, ERROR: EvmTrError /*+ From*/ + FromStringError, /*+ IsTxError*/ - FRAME: Frame, + FRAME: FrameTr, { type Evm = EVM; type Error = ERROR; - type Frame = FRAME; type HaltReason = HaltReason; // TODO: CitreaHaltReason ?? - fn validate_tx_against_state(&self, evm: &mut Self::Evm) -> Result<(), Self::Error> { + fn validate_against_state_and_deduct_caller( + &self, + evm: &mut Self::Evm, + ) -> Result<(), Self::Error> { if evm.is_system_caller() { - // Don't verify balance but nonce only. + // System caller doesn't spend gas. Check nonce and bump it on calls. let context = evm.ctx(); - let tx_caller = context.tx().caller(); - let tx = context.tx().nonce(); - let caller_account = context.journal().load_account(tx_caller)?; + let caller = context.tx().caller(); + let tx_nonce = context.tx().nonce(); + let is_call = context.tx().kind().is_call(); + + let mut caller_account = context.journal_mut().load_account_mut(caller)?; // Check that the transaction's nonce is correct - let state = caller_account.info.nonce; - match tx.cmp(&state) { + let state_nonce = caller_account.nonce(); + match tx_nonce.cmp(&state_nonce) { Ordering::Greater => { - return Err(InvalidTransaction::NonceTooHigh { tx, state })?; + return Err(InvalidTransaction::NonceTooHigh { + tx: tx_nonce, + state: state_nonce, + })?; } Ordering::Less => { - return Err(InvalidTransaction::NonceTooLow { tx, state })?; + return Err(InvalidTransaction::NonceTooLow { + tx: tx_nonce, + state: state_nonce, + })?; } _ => {} } - return Ok(()); - } - self.mainnet.validate_tx_against_state(evm) - } - - #[cfg_attr(feature = "native", instrument(level = "trace", skip_all))] - fn deduct_caller(&self, evm: &mut Self::Evm) -> Result<(), Self::Error> { - if evm.is_system_caller() { - // System caller doesn't spend gas. - - let context = evm.ctx(); - - let is_call = context.tx().kind().is_call(); - let caller = context.tx().caller(); - - // Load caller's account. - let mut caller_account = context.journal().load_account(caller)?; // Bump the nonce for calls. Nonce for CREATE will be bumped in `handle_create`. if is_call { // Nonce is already checked - caller_account.info.nonce = caller_account.info.nonce.saturating_add(1); + caller_account.set_nonce(state_nonce.saturating_add(1)); } // Touch account so we know it is changed. - caller_account.mark_touch(); + caller_account.touch(); return Ok(()); } - self.mainnet.deduct_caller(evm) + self.mainnet.validate_against_state_and_deduct_caller(evm) } #[cfg_attr(feature = "native", instrument(level = "trace", skip_all))] fn reimburse_caller( &self, evm: &mut Self::Evm, - exec_result: &mut ::FrameResult, + exec_result: &mut <::Frame as FrameTr>::FrameResult, ) -> Result<(), Self::Error> { if evm.is_system_caller() { // System caller doesn't spend gas. @@ -540,7 +624,7 @@ where fn reward_beneficiary( &self, evm: &mut Self::Evm, - exec_result: &mut ::FrameResult, + exec_result: &mut <::Frame as FrameTr>::FrameResult, ) -> Result<(), Self::Error> { if evm.is_system_caller() { // System caller doesn't spend gas. @@ -564,20 +648,20 @@ where } #[cfg_attr(feature = "native", instrument(level = "trace", skip_all, fields(caller = %evm.ctx_ref().tx().caller())))] - fn output( - &self, + fn execution_result( + &mut self, evm: &mut Self::Evm, - result: ::FrameResult, - ) -> Result, Self::Error> { + result: <::Frame as FrameTr>::FrameResult, + ) -> Result, Self::Error> { let uncompressed_size = calc_diff_size(evm.ctx()); // Estimate the size of the state diff after the brotli compression and add L1 fee overhead let diff_size = (uncompressed_size * BROTLI_COMPRESSION_PERCENTAGE / 100) as u64 + L1_FEE_OVERHEAD as u64; - let l1_fee_rate = evm.ctx().chain().l1_fee_rate(); + let l1_fee_rate = evm.ctx_ref().chain().l1_fee_rate(); let l1_fee = U256::from(l1_fee_rate) * U256::from(diff_size); - evm.ctx().chain().set_tx_info(TxInfo { + evm.ctx().chain_mut().set_tx_info(TxInfo { l1_diff_size: diff_size, l1_fee, }); @@ -592,7 +676,7 @@ where change_balance(evm.ctx(), l1_fee, true, L1_FEE_VAULT)?; } - self.mainnet.output(evm, result) + self.mainnet.execution_result(evm, result) } } @@ -602,17 +686,10 @@ where EVM: InspectorEvmTr< Context: CitreaContextTr, Inspector: Inspector<<::Evm as EvmTr>::Context, EthInterpreter>, + Frame = FRAME, >, ERROR: EvmTrError + FromStringError, - // TODO `FrameResult` should be a generic trait. - // TODO `FrameInit` should be a generic. - FRAME: InspectorFrame< - Evm = EVM, - Error = ERROR, - FrameResult = FrameResult, - FrameInit = FrameInput, - IT = EthInterpreter, - >, + FRAME: InspectorFrame, { type IT = EthInterpreter; } @@ -627,20 +704,20 @@ where // For each call there is a journal entry. // We need to iterate over all journal entries to get the size of the diff. - let journal = journaled_state.journal.iter().flatten(); + let journal = journaled_state.journal.iter(); let state = &journaled_state.state; #[derive(Default)] - struct AccountChange<'a> { - storage_changes: BTreeSet<&'a U256>, + struct AccountChange { + storage_changes: BTreeSet, account_info_changed: bool, // implies balance, nonce or code_hash changed } - let mut account_changes: BTreeMap<&Address, AccountChange<'_>> = BTreeMap::new(); + let mut account_changes: BTreeMap = BTreeMap::new(); // tx.from always has `account_info_changed` because its nonce is incremented let tx_caller = tx.caller(); - let from = account_changes.entry(&tx_caller).or_default(); + let from = account_changes.entry(tx_caller).or_default(); from.account_info_changed = true; // Special handling for eip7702 transactions @@ -676,7 +753,7 @@ where .is_some_and(|code| *code == Bytecode::new_eip7702(*delegated_to)) { // we set account changed for the authority - let account = account_changes.entry(authority).or_default(); + let account = account_changes.entry(*authority).or_default(); account.account_info_changed = true; } } @@ -684,34 +761,34 @@ where for entry in journal { match entry { - JournalEntry::NonceChange { address } => { - let account = account_changes.entry(address).or_default(); + JournalEntry::NonceChange { address, .. } | JournalEntry::NonceBump { address } => { + let account = account_changes.entry(*address).or_default(); account.account_info_changed = true; } JournalEntry::BalanceTransfer { from, to, .. } => { // No need to check balance for 0 value sent, revm does not add it to the journal - let from = account_changes.entry(from).or_default(); + let from = account_changes.entry(*from).or_default(); from.account_info_changed = true; - let to = account_changes.entry(to).or_default(); + let to = account_changes.entry(*to).or_default(); to.account_info_changed = true; } JournalEntry::StorageChanged { address, key, .. } => { - let account = account_changes.entry(address).or_default(); - account.storage_changes.insert(key); + let account = account_changes.entry(*address).or_default(); + account.storage_changes.insert(*key); } JournalEntry::CodeChange { address } => { - let account = account_changes.entry(address).or_default(); + let account = account_changes.entry(*address).or_default(); account.account_info_changed = true; } // Only added to the journal on smart contract creation - JournalEntry::AccountCreated { address } => { - let account = account_changes.entry(address).or_default(); + JournalEntry::AccountCreated { address, .. } => { + let account = account_changes.entry(*address).or_default(); account.account_info_changed = true; } JournalEntry::AccountDestroyed { address, target, - was_destroyed, + destroyed_status, had_balance, } => { // This event is produced only if acc.is_created() || !is_cancun_enabled @@ -720,7 +797,10 @@ where // * Selfdestruct account that is created in the same transaction and // * Specify the target is same as selfdestructed account. The balance stays unchanged. - if *was_destroyed { + if matches!( + destroyed_status, + SelfdestructionRevertStatus::RepeatedSelfdestruction + ) { // It was already destroyed before in the log, no need to do anything. continue; } @@ -728,7 +808,7 @@ where // transferred balance causes account diff change on target if address != target && !had_balance.is_zero() { // mark changes to the target account - let target = account_changes.entry(target).or_default(); + let target = account_changes.entry(*target).or_default(); target.account_info_changed = true; } } @@ -748,12 +828,12 @@ where for (addr, account) in account_changes { // cloning addresses to avoid borrowing issues - addresses_to_check.push(*addr); + addresses_to_check.push(addr); // Apply size of account_info if account.account_info_changed { let db_account_size = { - let account = &state[addr]; + let account = &state[&addr]; if account.info.code_hash == KECCAK_EMPTY { DB_ACCOUNT_SIZE_EOA } else { @@ -774,7 +854,7 @@ where } let mut new_account_based_diff = 0usize; for addr in addresses_to_check { - if context.db().is_first_time_committing_address(&addr) { + if context.db_mut().is_first_time_committing_address(&addr) { new_account_based_diff += ACCOUNT_IDX_KEY_SIZE + ACCOUNT_IDX_SIZE; } } @@ -792,24 +872,20 @@ fn change_balance( positive: bool, address: Address, ) -> Result, <::Db as Database>::Error> { - let journaled_state = context.journal(); - - let mut account = journaled_state.load_account(address)?; - account.mark_touch(); - - let balance = &mut account.info.balance; + let journaled_state = context.journal_mut(); + let mut account = journaled_state.load_account_mut(address)?; + let balance = *account.balance(); native_debug!(%balance); - let new_balance = if positive { - balance.saturating_add(amount) + let is_success = if positive { + account.incr_balance(amount) } else { - let Some(new_balance) = balance.checked_sub(amount) else { - return Ok(Some(InstructionResult::OutOfFunds)); - }; - new_balance + account.decr_balance(amount) }; - *balance = new_balance; + if !is_success { + return Ok(Some(InstructionResult::OutOfFunds)); + } Ok(None) } diff --git a/crates/evm/src/evm/precompiles/schnorr.rs b/crates/evm/src/evm/precompiles/schnorr.rs index ce8047e8d0..b847b7d011 100644 --- a/crates/evm/src/evm/precompiles/schnorr.rs +++ b/crates/evm/src/evm/precompiles/schnorr.rs @@ -1,17 +1,23 @@ +use std::borrow::Cow; + use alloy_primitives::{Bytes, B256}; use k256::schnorr::signature::hazmat::PrehashVerifier; use k256::schnorr::{Signature, VerifyingKey}; -use revm_precompile::{ - u64_to_address, PrecompileError, PrecompileOutput, PrecompileResult, PrecompileWithAddress, +use revm::precompile::{ + u64_to_address, Precompile, PrecompileError, PrecompileId, PrecompileOutput, PrecompileResult, }; // Benchmarks show that the zk cycle counts for schnorr verification is // %33 more than p256r1 verification. So we set the base gas cost // to be 4600 as 4600 ~ 1.33 * 3450 (p256r1 base gas cost). const SCHNORRVERIFY_BASE: u64 = 4600; + /// Precompile for verifying Schnorr signatures. -pub const SCHNORRVERIFY: PrecompileWithAddress = - PrecompileWithAddress(u64_to_address(0x200), schnorr_verify); +pub const SCHNORRVERIFY: Precompile = Precompile::new( + PrecompileId::Custom(Cow::Borrowed("SCHNORRVERIFY")), + u64_to_address(0x200), + schnorr_verify, +); /// Schnorr signature verification over secp256k1 curve as described in [BIP340](https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki). /// @@ -22,7 +28,7 @@ pub const SCHNORRVERIFY: PrecompileWithAddress = /// - 32 bytes: public key /// - 32 bytes: message hash /// - 64 bytes: signature -pub fn schnorr_verify(input: &Bytes, gas_limit: u64) -> PrecompileResult { +pub fn schnorr_verify(input: &[u8], gas_limit: u64) -> PrecompileResult { if SCHNORRVERIFY_BASE > gas_limit { return Err(PrecompileError::OutOfGas); } @@ -31,7 +37,7 @@ pub fn schnorr_verify(input: &Bytes, gas_limit: u64) -> PrecompileResult { Ok(PrecompileOutput::new(SCHNORRVERIFY_BASE, result)) } -fn verify_sig(input: &Bytes) -> Option<()> { +fn verify_sig(input: &[u8]) -> Option<()> { if input.len() != 128 { return None; } @@ -44,8 +50,9 @@ fn verify_sig(input: &Bytes) -> Option<()> { #[cfg(test)] mod tests { use alloy::hex::FromHex; + use rand::RngCore; use rstest::rstest; - use secp256k1::{Keypair, XOnlyPublicKey, SECP256K1}; + use secp256k1::{Keypair, SecretKey, XOnlyPublicKey, SECP256K1}; use super::*; @@ -55,7 +62,15 @@ mod tests { ]; fn random_signature() -> (XOnlyPublicKey, [u8; 32], secp256k1::schnorr::Signature) { - let keypair = Keypair::new(SECP256K1, &mut rand::thread_rng()); + let mut rng = rand::thread_rng(); + let secret_key = loop { + let mut candidate = [0u8; 32]; + rng.fill_bytes(&mut candidate); + if let Ok(secret_key) = SecretKey::from_slice(&candidate) { + break secret_key; + } + }; + let keypair = Keypair::from_secret_key(SECP256K1, &secret_key); let message = [1; 32]; let signature = SECP256K1.sign_schnorr_no_aux_rand(&message, &keypair); let public_key = XOnlyPublicKey::from_keypair(&keypair).0; diff --git a/crates/evm/src/evm/primitive_types.rs b/crates/evm/src/evm/primitive_types.rs index 23998b738e..2b9e7fc6be 100644 --- a/crates/evm/src/evm/primitive_types.rs +++ b/crates/evm/src/evm/primitive_types.rs @@ -21,15 +21,7 @@ pub struct RlpEvmTransaction { } #[derive( - Debug, - PartialEq, - Clone, - serde::Serialize, - serde::Deserialize, - RlpEncodable, - RlpDecodable, - Default, - Eq, + Debug, PartialEq, Clone, serde::Serialize, serde::Deserialize, RlpEncodable, RlpDecodable, Eq, )] /// A signed transaction with recovered signer address and associated block number. pub struct TransactionSignedAndRecovered { diff --git a/crates/evm/src/evm/system_contracts/mod.rs b/crates/evm/src/evm/system_contracts/mod.rs index eadbb7238a..0e8f89bf63 100644 --- a/crates/evm/src/evm/system_contracts/mod.rs +++ b/crates/evm/src/evm/system_contracts/mod.rs @@ -159,9 +159,7 @@ impl WCBTC { } pub fn balance_of(account: Address) -> Bytes { - WCBTC9Contract::balanceOfCall { _0: account } - .abi_encode() - .into() + WCBTC9Contract::balanceOfCall(account).abi_encode().into() } pub fn deposit() -> Bytes { diff --git a/crates/evm/src/evm/system_events.rs b/crates/evm/src/evm/system_events.rs index e15a5fbe91..556774489a 100644 --- a/crates/evm/src/evm/system_events.rs +++ b/crates/evm/src/evm/system_events.rs @@ -1,5 +1,5 @@ use alloy_consensus::TxEip1559; -use alloy_primitives::{address, Address, PrimitiveSignature, TxKind, U256}; +use alloy_primitives::{address, Address, Signature, TxKind, U256}; use reth_primitives::{Recovered, Transaction, TransactionSigned}; use super::system_contracts::{BitcoinLightClient, BridgeWrapper}; @@ -8,8 +8,7 @@ use super::system_contracts::{BitcoinLightClient, BridgeWrapper}; pub const SYSTEM_SIGNER: Address = address!("deaddeaddeaddeaddeaddeaddeaddeaddeaddead"); /// This is a special signature to force tx.signer to be set to SYSTEM_SIGNER -pub const SYSTEM_SIGNATURE: PrimitiveSignature = - PrimitiveSignature::new(U256::ZERO, U256::ZERO, false); +pub const SYSTEM_SIGNATURE: Signature = Signature::new(U256::ZERO, U256::ZERO, false); /// A system event is an event that is emitted on special conditions by the EVM. /// There events will be transformed into Evm transactions and put in the beginning of the block. diff --git a/crates/evm/src/hooks.rs b/crates/evm/src/hooks.rs index 0498356c4b..9dbc70f022 100644 --- a/crates/evm/src/hooks.rs +++ b/crates/evm/src/hooks.rs @@ -76,15 +76,12 @@ impl Evm { let evm_spec = citrea_spec_id_to_evm_spec_id(l2_block_info.current_spec); - let blob_excess_gas_and_price = Some(BlobExcessGasAndPrice::new( - 0, - evm_spec.is_enabled_in(SpecId::PRAGUE), - )); + let blob_excess_gas_and_price = Some(BlobExcessGasAndPrice::new_with_spec(0, evm_spec)); let new_pending_env = BlockEnv { - number: parent_block_number + 1, + number: U256::from(parent_block_number + 1), beneficiary: cfg.coinbase, - timestamp: l2_block_info.timestamp(), + timestamp: U256::from(l2_block_info.timestamp()), prevrandao: Some(B256::ZERO), basefee, gas_limit: cfg.block_gas_limit, @@ -118,9 +115,11 @@ impl Evm { let expected_block_number = parent_block.header.number + 1; assert_eq!( - self.block_env.number, expected_block_number, + self.block_env.number, + U256::from(expected_block_number), "Pending head must be set to block {}, but found block {}", - expected_block_number, self.block_env.number + expected_block_number, + self.block_env.number ); let pending_transactions = &mut self.pending_transactions; @@ -140,8 +139,8 @@ impl Evm { let header = AlloyHeader { parent_hash: parent_block_hash, - timestamp: self.block_env.timestamp, - number: self.block_env.number, + timestamp: self.block_env.timestamp.to::(), + number: self.block_env.number.to::(), ommers_hash: EMPTY_OMMER_ROOT_HASH, beneficiary: parent_block.header.beneficiary, // This will be set in finalize_hook or in the next begin_slot_hook diff --git a/crates/evm/src/query.rs b/crates/evm/src/query.rs index 2bbfd1bf5d..8d92e52b85 100644 --- a/crates/evm/src/query.rs +++ b/crates/evm/src/query.rs @@ -28,12 +28,7 @@ use jsonrpsee::core::RpcResult; use reth_primitives::{Recovered, SealedHeader, TransactionSigned}; use reth_provider::ProviderError; use reth_rpc::eth::filter::EthFilterError; -use reth_rpc::eth::EthTxBuilder; -use reth_rpc_eth_api::TransactionCompat; -use reth_rpc_eth_types::error::{ - ensure_success, EthApiError, EthResult, RevertError, RpcInvalidTransactionError, -}; -use reth_rpc_eth_types::logs_utils::log_matches_filter; +use reth_rpc_eth_types::error::{EthApiError, EthResult, RevertError, RpcInvalidTransactionError}; use revm::context::result::{EVMError, ExecutionResult, HaltReason, InvalidTransaction}; use revm::context::{BlockEnv, Cfg, CfgEnv, TransactTo}; use revm::context_interface::block::BlobExcessGasAndPrice; @@ -177,12 +172,12 @@ impl Evm { let pending_env = get_pending_block_env(self, working_set); - let citrea_spec_id = fork_from_block_number(pending_env.number).spec_id; + let citrea_spec_id = fork_from_block_number(pending_env.number.to::()).spec_id; let evm_spec_id = citrea_spec_id_to_evm_spec_id(citrea_spec_id); let pending_consensus_header = AlloyConsensusHeader { - number: pending_env.number, - timestamp: pending_env.timestamp, + number: pending_env.number.to::(), + timestamp: pending_env.timestamp.to::(), base_fee_per_gas: Some(pending_env.basefee), gas_limit: latest_block.header.gas_limit, parent_hash: latest_block.header.hash(), @@ -273,9 +268,7 @@ impl Evm { base_fee: sealed_block.header.base_fee_per_gas, index: Some(idx as u64), }; - EthTxBuilder::default() - .fill(tx.clone().into(), tx_info) - .expect("EthTxBuilder fill can't fail") + to_rpc_transaction(tx.clone().into(), tx_info) }) .collect::>(), ), @@ -489,9 +482,7 @@ impl Evm { index: Some(tx_number - block.transactions.start), }; - let transaction = EthTxBuilder::default() - .fill(tx.clone().into(), tx_info) - .expect("EthTxBuilder fill can't fail"); + let transaction = to_rpc_transaction(tx.clone().into(), tx_info); Ok(Some(transaction)) } @@ -537,9 +528,7 @@ impl Evm { index: Some(tx_number - block.transactions.start), }; - let transaction = EthTxBuilder::default() - .fill(tx.into(), tx_info) - .expect("EthTxBuilder fill can't fail"); + let transaction = to_rpc_transaction(tx.into(), tx_info); Ok(Some(transaction)) } @@ -635,7 +624,7 @@ impl Evm { } }; - let block_num: u64 = block_env.number; + let block_num: u64 = block_env.number.to::(); // Set evm state to block if needed match block_number { @@ -693,7 +682,7 @@ impl Evm { } }; - Ok(ensure_success::<_, EthApiError>(result)?) + Ok(ensure_call_success(result)?) } /// Handler for: `eth_blockNumber` @@ -758,7 +747,7 @@ impl Evm { (block.l1_fee_rate, sealed_block_to_block_env(&block.header)) } }; - let block_num: u64 = block_env.number; + let block_num: u64 = block_env.number.to::(); match block_number { None | Some(BlockNumberOrTag::Pending | BlockNumberOrTag::Latest) => {} @@ -891,7 +880,7 @@ impl Evm { .get(working_set) .expect("EVM chain config should be set"); - let citrea_spec_id = fork_fn(block_env.number).spec_id; + let citrea_spec_id = fork_fn(block_env.number.to::()).spec_id; let evm_spec_id = citrea_spec_id_to_evm_spec_id(citrea_spec_id); let cfg_env = get_cfg_env(cfg, evm_spec_id); @@ -1397,9 +1386,7 @@ impl Evm { }; - EthTxBuilder::default() - .fill(tx.into(), tx_info) - .expect("EthTxBuilder fill can't fail") + to_rpc_transaction(tx.into(), tx_info) }); Ok(transaction) @@ -1517,7 +1504,7 @@ impl Evm { } }; - let block_num = block_env.number; + let block_num = block_env.number.to::(); // Set evm state to block if needed match block_number { @@ -1551,6 +1538,7 @@ impl Evm { tracing_options, state_overrides, block_overrides, + .. } = opts.unwrap_or_default(); // Apply state overrides before create_txn_env so that balance overrides @@ -1677,9 +1665,12 @@ impl Evm { // all of the logs we have in the block let mut all_logs: Vec = Vec::new(); - let address_filter: BloomFilter = filter.address.to_bloom_filter(); - let topics_filter: Vec = - filter.topics.iter().map(|t| t.to_bloom_filter()).collect(); + let address_filter: BloomFilter = filter.address.bloom_filter().into_owned(); + let topics_filter: Vec = filter + .topics + .iter() + .map(|t| t.bloom_filter().into_owned()) + .collect(); let max_headers_range = get_max_headers_range(); @@ -1759,7 +1750,11 @@ impl Evm { for log in receipt.receipt.logs() { let num_hash = BlockNumHash::new(block.header.number, block.header.hash()); - if log_matches_filter(num_hash, log, &filter) { + if filter.filter_block_hash(num_hash.hash) + && filter.filter_block_range(num_hash.number) + && filter.filter_address(&log.address) + && filter.filter_topics(log.topics()) + { all_logs.push(Log { inner: log.clone(), block_hash: Some(block.header.hash()), @@ -2108,6 +2103,24 @@ fn check_tx_range(transactions_range: &Range, index: Uint<64, 1>) -> Option } } +#[inline] +fn to_rpc_transaction(tx: Recovered, tx_info: TransactionInfo) -> Transaction { + Transaction::from_transaction(tx.map(Into::into), tx_info) +} + +#[inline] +fn ensure_call_success(result: ExecutionResult) -> EthResult { + match result { + ExecutionResult::Success { output, .. } => Ok(output.into_data()), + ExecutionResult::Revert { output, .. } => { + Err(RpcInvalidTransactionError::Revert(RevertError::new(output)).into()) + } + ExecutionResult::Halt { reason, gas_used } => { + Err(RpcInvalidTransactionError::halt(reason, gas_used).into()) + } + } +} + fn map_out_of_gas_err( block_env: BlockEnv, mut tx_env: revm::context::TxEnv, @@ -2270,9 +2283,9 @@ fn get_pending_block_env( // set the lowest block id because we'll need to calculate the active spec id again // where this function is called let mut block_env = sealed_block_to_block_env(&latest_block.header); - block_env.number += 1; + block_env.number += U256::from(1u64); - let citrea_spec_id = fork_from_block_number(block_env.number).spec_id; + let citrea_spec_id = fork_from_block_number(block_env.number.to::()).spec_id; block_env.basefee = calculate_next_block_base_fee( latest_block.header.gas_used, @@ -2282,13 +2295,11 @@ fn get_pending_block_env( citrea_spec_id, ); // assume timestamp will increment the same between last block and the one before that - block_env.timestamp += time_diff; + block_env.timestamp += U256::from(time_diff); let evm_spec_id = citrea_spec_id_to_evm_spec_id(citrea_spec_id); - block_env.blob_excess_gas_and_price = Some(BlobExcessGasAndPrice::new( - 0, - evm_spec_id.is_enabled_in(SpecId::PRAGUE), - )); + block_env.blob_excess_gas_and_price = + Some(BlobExcessGasAndPrice::new_with_spec(0, evm_spec_id)); block_env } diff --git a/crates/evm/src/rpc_helpers/filter.rs b/crates/evm/src/rpc_helpers/filter.rs index aecb5a5da9..5e5bf65052 100644 --- a/crates/evm/src/rpc_helpers/filter.rs +++ b/crates/evm/src/rpc_helpers/filter.rs @@ -199,7 +199,7 @@ impl CitreaFilter { let this = citrea_filter.clone(); tracing::trace!("Starting stale filter clearing task "); - citrea_filter.task_executor.spawn_critical( + citrea_filter.task_executor.spawn_critical_task( "eth-filters_stale-filters-clean", Box::pin(async move { this.watch_and_clear_stale_filters().await; diff --git a/crates/evm/src/rpc_helpers/mod.rs b/crates/evm/src/rpc_helpers/mod.rs index e65d02269c..b38c388d0c 100644 --- a/crates/evm/src/rpc_helpers/mod.rs +++ b/crates/evm/src/rpc_helpers/mod.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use alloy_consensus::constants::KECCAK_EMPTY; -use alloy_primitives::{keccak256, Address, Bytes}; +use alloy_primitives::{keccak256, Address, Bytes, U256}; use alloy_rpc_types::state::AccountOverride; use alloy_rpc_types::{BlockOverrides, EIP1186AccountProofResponse, EIP1186StorageProof}; use alloy_serde::JsonStorageKey; @@ -70,7 +70,7 @@ pub(crate) fn apply_account_override( let mut acc = revm::state::Account { info: account_info, status: AccountStatus::Touched, - storage: HashMap::default(), + ..Default::default() }; // We ensure that not both state and state_diff are set. @@ -124,14 +124,13 @@ pub(crate) fn apply_block_overrides( coinbase, random, base_fee, - block_hash: _, - difficulty: _, + .. } = *block_overrides; if let Some(number) = number { block_env.number = number.saturating_to(); } if let Some(time) = time { - block_env.timestamp = time; + block_env.timestamp = U256::from(time); } if let Some(gas_limit) = gas_limit { block_env.gas_limit = gas_limit; diff --git a/crates/evm/src/rpc_helpers/tracing_utils.rs b/crates/evm/src/rpc_helpers/tracing_utils.rs index d7199da67b..64df58ae31 100644 --- a/crates/evm/src/rpc_helpers/tracing_utils.rs +++ b/crates/evm/src/rpc_helpers/tracing_utils.rs @@ -8,8 +8,8 @@ use alloy_rpc_types_trace::geth::{ use reth_rpc_eth_api::FromEthApiError; use reth_rpc_eth_types::error::{EthApiError, EthResult, RpcInvalidTransactionError}; use revm::context::result::{EVMError, ResultAndState}; -use revm::context::{Cfg, CfgEnv, JournalTr, Transaction, TxEnv}; -use revm::{Context, InspectEvm, Inspector, Journal}; +use revm::context::{CfgEnv, JournalTr, Transaction, TxEnv}; +use revm::{Context, Inspector, Journal}; use revm_inspectors::tracing::js::JsInspector; use revm_inspectors::tracing::{ FourByteInspector, MuxInspector, TracingInspector, TracingInspectorConfig, TransactionContext, @@ -147,7 +147,7 @@ pub(crate) fn trace_call( &mut inspector, )?; let tx_info = TransactionInfo { - block_number: Some(block_env.number), + block_number: Some(block_number_to_u64(block_env.number)?), base_fee: Some(block_env.basefee), hash: None, block_hash: None, @@ -159,6 +159,9 @@ pub(crate) fn trace_call( .map_err(EthApiError::from_eth_err)?; Ok(frame.into()) } + GethDebugBuiltInTracerType::Erc7562Tracer => { + Err(EthApiError::Unsupported("ERC-7562 tracer is not supported")) + } GethDebugBuiltInTracerType::NoopTracer => Ok(NoopFrame::default().into()), }, GethDebugTracerType::JsTracer(code) => { @@ -332,7 +335,7 @@ pub(crate) fn trace_transaction( &mut inspector, )?; let tx_info = TransactionInfo { - block_number: Some(block_env.number), + block_number: Some(block_number_to_u64(block_env.number)?), base_fee: Some(block_env.basefee), hash: None, block_hash: None, @@ -343,6 +346,9 @@ pub(crate) fn trace_transaction( .map_err(EthApiError::from_eth_err)?; return Ok((frame.into(), res.state)); } + GethDebugBuiltInTracerType::Erc7562Tracer => { + Err(EthApiError::Unsupported("ERC-7562 tracer is not supported")) + } GethDebugBuiltInTracerType::NoopTracer => { Ok((NoopFrame::default().into(), Default::default())) } @@ -400,6 +406,15 @@ pub(crate) fn trace_transaction( Ok((frame.into(), res.state)) } +fn block_number_to_u64(block_number: U256) -> EthResult { + if block_number > U256::from(u64::MAX) { + return Err(EthApiError::InvalidParams( + "block number exceeds u64::MAX".to_string(), + )); + } + Ok(block_number.to::()) +} + /// Executes the [Env] against the given [Database] without committing state changes. fn trace_citrea( db: DB, @@ -421,11 +436,12 @@ where ext.set_current_tx_hash(tx_hash); let mut journal = Journal::new(db); - journal.set_spec_id(config_env.spec()); + journal.set_spec_id(*config_env.spec()); let mut evm = Context { block: block_env, cfg: config_env, chain: &mut ext, + local: Default::default(), tx: tx_env, error: Ok(()), journaled_state: journal, @@ -453,11 +469,12 @@ where ext.set_current_tx_hash(&tmp_hash); let mut journal = Journal::new(db); - journal.set_spec_id(config_env.spec()); + journal.set_spec_id(*config_env.spec()); let mut evm = Context { block: block_env, cfg: config_env, chain: &mut ext, + local: Default::default(), tx: tx_env, error: Ok(()), journaled_state: journal, diff --git a/crates/evm/src/signer/mod.rs b/crates/evm/src/signer/mod.rs index e92da78094..d84be68aff 100644 --- a/crates/evm/src/signer/mod.rs +++ b/crates/evm/src/signer/mod.rs @@ -1,9 +1,8 @@ use std::collections::HashMap; use alloy_consensus::SignableTransaction; -use alloy_eips::eip7702::SignedAuthorization; -use alloy_primitives::{Address, B256}; -use alloy_rpc_types::Authorization; +use alloy_eips::eip7702::{Authorization, SignedAuthorization}; +use alloy_primitives::{keccak256, Address, B256}; use reth_primitives::{sign_message, Transaction, TransactionSigned}; use reth_rpc_eth_types::SignError; use secp256k1::{PublicKey, SecretKey}; @@ -21,7 +20,9 @@ impl DevSigner { for sk in secret_keys { let public_key = PublicKey::from_secret_key(secp256k1::SECP256K1, &sk); - let address = reth_primitives::public_key_to_address(public_key); + let pubkey = public_key.serialize_uncompressed(); + let hash = keccak256(&pubkey[1..]); + let address = Address::from_slice(&hash[12..]); signers.insert(address, sk); } diff --git a/crates/evm/src/smart_contracts/logs_contract.rs b/crates/evm/src/smart_contracts/logs_contract.rs index 1a3fe8165d..8a01d6b9ff 100644 --- a/crates/evm/src/smart_contracts/logs_contract.rs +++ b/crates/evm/src/smart_contracts/logs_contract.rs @@ -47,13 +47,13 @@ impl LogsContract { pub fn decode_log_event( log: &alloy_primitives::Log, ) -> Result, alloy_sol_types::Error> { - Logs::Log::decode_log(log, true) + Logs::Log::decode_log_validate(log) } /// Decode AnotherLog event of the Logs smart contract. pub fn decode_another_log_event( log: &alloy_primitives::Log, ) -> Result, alloy_sol_types::Error> { - Logs::AnotherLog::decode_log(log, true) + Logs::AnotherLog::decode_log_validate(log) } } diff --git a/crates/evm/src/tests/call_tests.rs b/crates/evm/src/tests/call_tests.rs index 0f913f04e1..7552be0ce1 100644 --- a/crates/evm/src/tests/call_tests.rs +++ b/crates/evm/src/tests/call_tests.rs @@ -1448,16 +1448,19 @@ fn test_eip7702_tx() { &signer1_account_info_post_tx.code_hash.unwrap(), &mut working_set.offchain_state() ), - Some(Bytecode::Eip7702(Eip7702Bytecode { - delegated_address: log_contract_address, - version: 0, - raw: [ - Bytes::from_hex("0xef0100").unwrap(), - Bytes::from(log_contract_address.to_vec()) - ] - .concat() + Some(Bytecode::Eip7702( + Eip7702Bytecode { + delegated_address: log_contract_address, + version: 0, + raw: [ + Bytes::from_hex("0xef0100").unwrap(), + Bytes::from(log_contract_address.to_vec()) + ] + .concat() + .into() + } .into() - })) + )) ); // now let's see if we can call signer1 like it's log contract again @@ -1571,16 +1574,19 @@ fn test_eip7702_tx() { &signer1_account_info_post_tx.code_hash.unwrap(), &mut working_set.offchain_state() ), - Some(Bytecode::Eip7702(Eip7702Bytecode { - delegated_address: set_arg_contract_address, - version: 0, - raw: [ - Bytes::from_hex("0xef0100").unwrap(), - Bytes::from(set_arg_contract_address.to_vec()) - ] - .concat() + Some(Bytecode::Eip7702( + Eip7702Bytecode { + delegated_address: set_arg_contract_address, + version: 0, + raw: [ + Bytes::from_hex("0xef0100").unwrap(), + Bytes::from(set_arg_contract_address.to_vec()) + ] + .concat() + .into() + } .into() - })) + )) ); // and assert storage change assert_eq!( @@ -1655,16 +1661,19 @@ fn test_eip7702_tx() { &signer1_account_info_post_tx.code_hash.unwrap(), &mut working_set.offchain_state() ), - Some(Bytecode::Eip7702(Eip7702Bytecode { - delegated_address: set_arg_contract_address, - version: 0, - raw: [ - Bytes::from_hex("0xef0100").unwrap(), - Bytes::from(set_arg_contract_address.to_vec()) - ] - .concat() + Some(Bytecode::Eip7702( + Eip7702Bytecode { + delegated_address: set_arg_contract_address, + version: 0, + raw: [ + Bytes::from_hex("0xef0100").unwrap(), + Bytes::from(set_arg_contract_address.to_vec()) + ] + .concat() + .into() + } .into() - })) + )) ); assert_eq!(signer1_account_info_post_tx.nonce, 4); @@ -2713,16 +2722,19 @@ fn test_eip7702_selfdestruct_delegation() { &signer1_info_after.code_hash.unwrap(), &mut working_set.offchain_state() ), - Some(Bytecode::Eip7702(Eip7702Bytecode { - delegated_address: self_destructor_address, - version: 0, - raw: [ - Bytes::from_hex("0xef0100").unwrap(), - Bytes::from(self_destructor_address.to_vec()) - ] - .concat() + Some(Bytecode::Eip7702( + Eip7702Bytecode { + delegated_address: self_destructor_address, + version: 0, + raw: [ + Bytes::from_hex("0xef0100").unwrap(), + Bytes::from(self_destructor_address.to_vec()) + ] + .concat() + .into() + } .into() - })) + )) ); // Balance should have been transferred to beneficiary (selfdestruct sends balance) diff --git a/crates/evm/src/tests/hooks_tests.rs b/crates/evm/src/tests/hooks_tests.rs index db8ab406ee..5e2a46cd82 100644 --- a/crates/evm/src/tests/hooks_tests.rs +++ b/crates/evm/src/tests/hooks_tests.rs @@ -40,14 +40,14 @@ fn begin_l2_block_hook_creates_pending_block() { assert_eq!( pending_block, BlockEnv { - number: 2, + number: U256::from(2), beneficiary: *BENEFICIARY, - timestamp: 54, + timestamp: U256::from(54), prevrandao: Some(B256::ZERO), basefee: 765625000, gas_limit: config.block_gas_limit, difficulty: U256::ZERO, - blob_excess_gas_and_price: Some(BlobExcessGasAndPrice::new(0, true)) + blob_excess_gas_and_price: Some(BlobExcessGasAndPrice::new(0, 1)) } ); } diff --git a/crates/evm/src/tests/queries/eth_call_tests.rs b/crates/evm/src/tests/queries/eth_call_tests.rs index 205dee9abc..4815720c4b 100644 --- a/crates/evm/src/tests/queries/eth_call_tests.rs +++ b/crates/evm/src/tests/queries/eth_call_tests.rs @@ -297,11 +297,7 @@ fn test_eip1559_fields_call() { ); assert_eq!( high_fee_result, - Err(RpcInvalidTransactionError::InsufficientFunds { - cost: U256::from_str("34028236692093846346337460743176821145500000").unwrap(), - balance: U256::from(99999574234737852931u128) - } - .into()) + Err(RpcInvalidTransactionError::GasUintOverflow.into()) ); let low_max_fee_result = eth_call_eip1559( @@ -824,6 +820,7 @@ fn test_call_with_block_overrides() { coinbase: None, random: None, base_fee: None, + blob_base_fee: None, block_hash: Some(block_hashes.clone()), }), &mut working_set, @@ -854,6 +851,7 @@ fn test_call_with_block_overrides() { coinbase: None, random: None, base_fee: None, + blob_base_fee: None, block_hash: Some(block_hashes), }), &mut working_set, diff --git a/crates/evm/src/tests/test_signer.rs b/crates/evm/src/tests/test_signer.rs index c27b898935..34672df96b 100644 --- a/crates/evm/src/tests/test_signer.rs +++ b/crates/evm/src/tests/test_signer.rs @@ -2,9 +2,8 @@ use alloy_consensus::{ TxEip1559 as RethTxEip1559, TxEip4844 as RethTxEip4844, TxEip7702 as RethTxEip7702, }; use alloy_eips::eip2718::Encodable2718; -use alloy_eips::eip7702::SignedAuthorization; -use alloy_primitives::{Address, Bytes as RethBytes, TxKind, B256, U256}; -use alloy_rpc_types::Authorization; +use alloy_eips::eip7702::{Authorization, SignedAuthorization}; +use alloy_primitives::{keccak256, Address, Bytes as RethBytes, TxKind, B256, U256}; use rand::rngs::StdRng; use rand::SeedableRng; use reth_primitives::Transaction as RethTransaction; @@ -25,7 +24,9 @@ impl TestSigner { /// Creates a new signer. pub(crate) fn new(secret_key: SecretKey) -> Self { let public_key = PublicKey::from_secret_key(secp256k1::SECP256K1, &secret_key); - let address = reth_primitives::public_key_to_address(public_key); + let pubkey = public_key.serialize_uncompressed(); + let hash = keccak256(&pubkey[1..]); + let address = Address::from_slice(&hash[12..]); Self { signer: DevSigner::new(vec![secret_key]), address, diff --git a/crates/evm/src/tests/tx_tests.rs b/crates/evm/src/tests/tx_tests.rs index dd8ba25617..db1778555d 100644 --- a/crates/evm/src/tests/tx_tests.rs +++ b/crates/evm/src/tests/tx_tests.rs @@ -68,10 +68,28 @@ fn tx_rlp_encoding_test() { #[test] fn tx_conversion() { - let signer = Address::random(); + let wallet = "dcf2cbdd171a21c480aa7f53d77f31bb102282b3ff099c78e3118b37348c72f7" + .parse::() + .unwrap(); + let signer = wallet.address(); + let mut request = TransactionRequest::default() + .from(signer) + .nonce(0u64) + .max_priority_fee_per_gas(1) + .max_fee_per_gas(2) + .gas_limit(21_000) + .to(Address::ZERO) + .value(U256::ZERO) + .input(Bytes::new().into()); + request.chain_id = Some(DEFAULT_CHAIN_ID); + + let typed_tx = request.build_typed_tx().unwrap(); + let mut tx = typed_tx.eip1559().unwrap().clone(); + let sig = wallet.sign_transaction_sync(&mut tx).unwrap(); + let tx = TransactionSignedAndRecovered { signer, - signed_transaction: Default::default(), + signed_transaction: tx.into_signed(sig).into(), block_number: 5u64, }; diff --git a/crates/fullnode/src/da_block_handler.rs b/crates/fullnode/src/da_block_handler.rs index b4c85700d1..e6147b80e4 100644 --- a/crates/fullnode/src/da_block_handler.rs +++ b/crates/fullnode/src/da_block_handler.rs @@ -715,8 +715,7 @@ where .get_l2_state_root(previous_l2_end_block_number)? .ok_or_else(|| { anyhow!( - "Proof verification: Could not find state root for L2 height: {}. Skipping proof.", - previous_l2_end_block_number + "Proof verification: Could not find state root for L2 height: {previous_l2_end_block_number}. Skipping proof." ) })?; diff --git a/crates/light-client-prover/src/circuit/initial_values.rs b/crates/light-client-prover/src/circuit/initial_values.rs index 923828282a..22890ce97e 100644 --- a/crates/light-client-prover/src/circuit/initial_values.rs +++ b/crates/light-client-prover/src/circuit/initial_values.rs @@ -653,7 +653,7 @@ pub trait InitialValueProvider { fn get_l2_genesis_root(&self) -> [u8; 32]; /// Returns the initial batch proof method IDs. - fn initial_batch_proof_method_ids(&self) -> NonEmptySlice<(u64, [u32; 8])>; + fn initial_batch_proof_method_ids(&self) -> NonEmptySlice<'_, (u64, [u32; 8])>; /// Returns the public key of the batch prover. fn batch_prover_da_public_key(&self) -> [u8; 33]; @@ -674,7 +674,7 @@ impl InitialValueProvider for Network { mockda::GENESIS_ROOT } - fn initial_batch_proof_method_ids(&self) -> NonEmptySlice<(u64, [u32; 8])> { + fn initial_batch_proof_method_ids(&self) -> NonEmptySlice<'_, (u64, [u32; 8])> { assert_eq!(self, &Network::Nightly, "Only nightly allowed on mock da!"); mockda::INITIAL_BATCH_PROOF_METHOD_IDS } @@ -709,7 +709,7 @@ impl InitialValueProvider for Network { } } - fn initial_batch_proof_method_ids(&self) -> NonEmptySlice<(u64, [u32; 8])> { + fn initial_batch_proof_method_ids(&self) -> NonEmptySlice<'_, (u64, [u32; 8])> { match self { Network::Mainnet => bitcoinda::MAINNET_INITIAL_BATCH_PROOF_METHOD_IDS, Network::Testnet => bitcoinda::TESTNET_INITIAL_BATCH_PROOF_METHOD_IDS, diff --git a/crates/risc0/src/host/boundless.rs b/crates/risc0/src/host/boundless.rs index 7f0ebeea80..9ace75e09e 100644 --- a/crates/risc0/src/host/boundless.rs +++ b/crates/risc0/src/host/boundless.rs @@ -15,8 +15,8 @@ use boundless_market::deployments::BASE; use boundless_market::request_builder::{ OfferLayer, OfferLayerConfigBuilder, RequestParams, RequirementParams, }; -use boundless_market::storage::{PinataStorageProvider, S3StorageProvider}; -use boundless_market::{GuestEnv, RequestId, StandardStorageProvider}; +use boundless_market::storage::{PinataStorageUploader, S3StorageUploader, StandardUploader}; +use boundless_market::{GuestEnv, RequestId}; use citrea_common::config::risc0::{BoundlessProverConfig, BoundlessStorageConfig}; use citrea_common::utils::is_dev_mode_enabled_via_environment; use metrics::gauge; @@ -79,8 +79,8 @@ impl BoundlessProver { .expect("Failed to create boundless client"); assert!( - client.storage_provider.is_some(), - "a storage provider is required to upload the zkVM guest ELF" + client.uploader.is_some(), + "a storage uploader is required to upload the zkVM guest ELF" ); let pricing_service = PricingService::from_config(&prover_config.pricing_service); @@ -96,27 +96,29 @@ impl BoundlessProver { async fn boundless_client(prover_config: BoundlessProverConfig) -> anyhow::Result { let config = &prover_config.boundless; - // Get storage provider from config - let storage_provider = match prover_config.storage { - BoundlessStorageConfig::S3(s3_config) => { - StandardStorageProvider::S3(S3StorageProvider::from_parts( - s3_config.s3_access_key, - s3_config.s3_secret_key, + // Get storage uploader from config + let storage_uploader = match prover_config.storage { + BoundlessStorageConfig::S3(s3_config) => StandardUploader::S3( + S3StorageUploader::new( s3_config.s3_bucket, - s3_config.s3_url, - s3_config.aws_region, + Some(s3_config.s3_url), + Some(s3_config.aws_region), + Some((s3_config.s3_access_key, s3_config.s3_secret_key)), s3_config.s3_use_presigned, - )) - } - BoundlessStorageConfig::Pinata(pinata_config) => StandardStorageProvider::Pinata( - PinataStorageProvider::from_parts( - pinata_config.pinata_jwt, - pinata_config.pinata_api_url, - pinata_config.ipfs_gateway_url, + false, ) .await - .context("Failed to create Pinata storage provider")?, + .context("Failed to create S3 storage uploader")?, ), + BoundlessStorageConfig::Pinata(pinata_config) => { + StandardUploader::Pinata(PinataStorageUploader::new( + pinata_config.pinata_jwt, + Url::parse(&pinata_config.pinata_api_url) + .context("Invalid boundless Pinata API URL")?, + Url::parse(&pinata_config.ipfs_gateway_url) + .context("Invalid boundless IPFS gateway URL")?, + )) + } }; // TODO: Switch to Deployment::builder after boundless 1.0 release to switch between base mainnet and sepolia @@ -133,7 +135,7 @@ impl BoundlessProver { ClientBuilder::new() .with_deployment(deployment) .with_rpc_url(rpc_url) - .with_storage_provider(Some(storage_provider)) + .with_uploader(Some(storage_uploader)) .with_private_key(private_key) .build() .await @@ -251,11 +253,7 @@ impl BoundlessProver { }) .await .map_err(|e| { - anyhow::anyhow!( - "Failed to get price from pricing service for job: {} | err={}", - job_id, - e - ) + anyhow::anyhow!("Failed to get price from pricing service for job: {job_id} | err={e}") })?; let lock_timeout = cmp::max(lock_timeout, MIN_LOCK_TIMEOUT); // at least 200 seconds @@ -619,6 +617,8 @@ impl BoundlessProver { U256::from_str(request_id).expect("Should convert str to U256"), None, None, + None, + None, ) .await else { @@ -649,10 +649,7 @@ impl BoundlessProver { .await .map_err(|e| { anyhow::anyhow!( - "Failed to get price from pricing service for job: {} request_id: {} | err={}", - job_id, - request_id, - e + "Failed to get price from pricing service for job: {job_id} request_id: {request_id} | err={e}" ) })?; let max_possible_price_wei_per_cycle = price_response.max_possible_price_wei_per_cycle; diff --git a/crates/risc0/src/host/local.rs b/crates/risc0/src/host/local.rs index 2bcece8fd0..4efdcd9a64 100644 --- a/crates/risc0/src/host/local.rs +++ b/crates/risc0/src/host/local.rs @@ -113,7 +113,7 @@ impl LocalProver { let prover = ExternalProver::new("ipc", self.r0vm_path.as_path()); let ProveInfo { receipt, stats, .. } = prover .prove_with_opts(env, &elf, &prover_opts) - .map_err(|e| anyhow!("Local risc0 proving failed: {}", e))?; + .map_err(|e| anyhow!("Local risc0 proving failed: {e}"))?; tracing::info!("Execution Stats for job_id={}: {:?}", job_id, stats); gauge!("proving_session_cycle_count").set(stats.total_cycles as f64); @@ -158,7 +158,7 @@ fn compare_risc0_versions(r0vm_path: &PathBuf) -> anyhow::Result<()> { let output = std::process::Command::new(r0vm_path) .arg("--version") .output() - .map_err(|e| anyhow!("Failed to execute r0vm: {}", e))?; + .map_err(|e| anyhow!("Failed to execute r0vm: {e}"))?; if !output.status.success() { return Err(anyhow!( @@ -168,7 +168,7 @@ fn compare_risc0_versions(r0vm_path: &PathBuf) -> anyhow::Result<()> { } let output = String::from_utf8(output.stdout) - .map_err(|e| anyhow!("Failed to parse r0vm version output: {}", e))?; + .map_err(|e| anyhow!("Failed to parse r0vm version output: {e}"))?; let r0vm_version = output .trim() @@ -177,9 +177,7 @@ fn compare_risc0_versions(r0vm_path: &PathBuf) -> anyhow::Result<()> { if version != r0vm_version { return Err(anyhow!( - "RISC0 version {} does not match r0vm version {}", - version, - r0vm_version + "RISC0 version {version} does not match r0vm version {r0vm_version}" )); } diff --git a/crates/risc0/src/host/pricing_service.rs b/crates/risc0/src/host/pricing_service.rs index dbce5c1cba..30cae8e7dc 100644 --- a/crates/risc0/src/host/pricing_service.rs +++ b/crates/risc0/src/host/pricing_service.rs @@ -72,9 +72,7 @@ impl PricingService { let status = response.status(); let body = response.text().await.unwrap_or_default(); return Err(anyhow!( - "Pricing service returned error status {}: {}", - status, - body + "Pricing service returned error status {status}: {body}" )); } diff --git a/crates/sequencer/Cargo.toml b/crates/sequencer/Cargo.toml index 3304f72cec..aecd8518a9 100644 --- a/crates/sequencer/Cargo.toml +++ b/crates/sequencer/Cargo.toml @@ -43,6 +43,7 @@ alloy-rpc-types-txpool = { workspace = true } alloy-sol-types = { workspace = true } reth-chainspec = { workspace = true } reth-db = { workspace = true } +reth-evm-ethereum = { workspace = true } reth-execution-types = { workspace = true } reth-primitives = { workspace = true } reth-provider = { workspace = true } diff --git a/crates/sequencer/src/commitment/service.rs b/crates/sequencer/src/commitment/service.rs index 9abdbc76bc..239c8b73ff 100644 --- a/crates/sequencer/src/commitment/service.rs +++ b/crates/sequencer/src/commitment/service.rs @@ -80,6 +80,10 @@ where } } + /// Runs the commitment service event loop until shutdown. + /// + /// On startup, it restores commitments that may already exist in DA and then periodically + /// checks whether a new sequencer commitment should be produced. #[instrument(name = "CommitmentService", skip_all)] pub async fn run( mut self, @@ -257,6 +261,9 @@ where Ok(()) } + /// Scans DA for sequencer commitments that are not yet persisted and stores them locally. + /// + /// This keeps local commitment state in sync with both mined and mempool commitments seen in DA. #[instrument(level = "trace", skip(self, working_set), err, ret)] pub async fn store_commitments_from_da( &mut self, @@ -342,6 +349,9 @@ where Ok(()) } + /// Builds a `SequencerCommitment` for the given commitment index and L2 block range. + /// + /// The method verifies that the provided hash count matches the block range size. #[instrument(level = "debug", skip_all, err)] pub fn get_commitment( &self, diff --git a/crates/sequencer/src/db_provider/mod.rs b/crates/sequencer/src/db_provider/mod.rs index 51b140677e..01d621c2e2 100644 --- a/crates/sequencer/src/db_provider/mod.rs +++ b/crates/sequencer/src/db_provider/mod.rs @@ -4,9 +4,9 @@ use std::fmt::Debug; use alloy_eips::{BlockHashOrNumber, BlockId, BlockNumberOrTag}; use alloy_genesis::Genesis; use alloy_primitives::{ - Address, BlockHash, BlockNumber, Bytes, StorageKey, StorageValue, TxHash, TxNumber, B256, U256, + Address, BlockHash, BlockNumber, Bytes, StorageKey, StorageValue, TxHash, TxNumber, B256, }; -use alloy_rpc_types::{BlockTransactions, Withdrawals}; +use alloy_rpc_types::BlockTransactions; use alloy_rpc_types_eth::Block as AlloyRpcBlock; use alloy_serde::WithOtherFields; use citrea_evm::{Evm, EvmChainConfig}; @@ -17,10 +17,10 @@ use reth_db::DatabaseError; use reth_primitives::{Account, Bytecode, RecoveredBlock, SealedHeader}; use reth_provider::{ AccountReader, BlockBodyIndicesProvider, BlockHashReader, BlockIdReader, BlockNumReader, - BlockReader, BlockReaderIdExt, ChainSpecProvider, HashedPostStateProvider, HeaderProvider, - OmmersProvider, ProviderError, ProviderResult, ReceiptProvider, ReceiptProviderIdExt, + BlockReader, BlockReaderIdExt, BytecodeReader, ChainSpecProvider, HashedPostStateProvider, + HeaderProvider, ProviderError, ProviderResult, ReceiptProvider, ReceiptProviderIdExt, StateProofProvider, StateProvider, StateProviderFactory, StateRootProvider, - StorageRootProvider, TransactionVariant, TransactionsProvider, WithdrawalsProvider, + StorageRootProvider, TransactionVariant, TransactionsProvider, }; use reth_trie::updates::TrieUpdates; use reth_trie::{HashedPostState, HashedStorage, StorageMultiProof, StorageProof}; @@ -141,6 +141,16 @@ impl StateProvider for DbProvider { Ok(value) } + fn storage_by_hashed_key( + &self, + address: Address, + hashed_storage_key: StorageKey, + ) -> ProviderResult> { + self.storage(address, hashed_storage_key) + } +} + +impl BytecodeReader for DbProvider { fn bytecode_by_hash(&self, code_hash: &B256) -> ProviderResult> { let mut working_set = WorkingSet::new(self.storage.clone()); let code = self @@ -152,12 +162,6 @@ impl StateProvider for DbProvider { } } -impl OmmersProvider for DbProvider { - fn ommers(&self, _id: BlockHashOrNumber) -> ProviderResult>> { - unimplemented!("ommers") - } -} - impl BlockBodyIndicesProvider for DbProvider { fn block_body_indices( &self, @@ -195,8 +199,22 @@ impl BlockReaderIdExt for DbProvider { unimplemented!("finalized_header") } - fn header_by_id(&self, _id: BlockId) -> ProviderResult> { - unimplemented!("header_by_id") + fn header_by_id(&self, id: BlockId) -> ProviderResult> { + let mut working_set = WorkingSet::new(self.storage.clone()); + + let block_num = match id { + BlockId::Number(num) => num, + BlockId::Hash(hash) => { + let block_num = self + .evm + .get_block_number_by_block_hash(hash.block_hash, &mut working_set) + .ok_or(ProviderError::BlockHashNotFound(hash.block_hash))?; + + BlockNumberOrTag::Number(block_num) + } + }; + + self.header_by_number_or_tag(block_num) } fn header_by_number_or_tag( @@ -222,17 +240,6 @@ impl BlockReaderIdExt for DbProvider { } } - fn ommers_by_id(&self, _id: BlockId) -> ProviderResult>> { - unimplemented!("ommers_by_id") - } - - fn ommers_by_number_or_tag( - &self, - _id: BlockNumberOrTag, - ) -> ProviderResult>> { - unimplemented!("ommers_by_number_or_tag") - } - fn pending_header(&self) -> ProviderResult> { unimplemented!("pending_header") } @@ -285,7 +292,7 @@ impl BlockReaderIdExt for DbProvider { impl HeaderProvider for DbProvider { type Header = reth_primitives::Header; - fn header(&self, _block_hash: &BlockHash) -> ProviderResult> { + fn header(&self, _block_hash: BlockHash) -> ProviderResult> { unimplemented!("header") } @@ -293,14 +300,6 @@ impl HeaderProvider for DbProvider { unimplemented!("header_by_number") } - fn header_td(&self, _hash: &BlockHash) -> ProviderResult> { - unimplemented!("header_td") - } - - fn header_td_by_number(&self, _number: BlockNumber) -> ProviderResult> { - unimplemented!("header_td_by_number") - } - fn headers_range( &self, _range: impl std::ops::RangeBounds, @@ -434,13 +433,13 @@ impl BlockReader for DbProvider { unimplemented!("find_block_by_hash") } - fn pending_block(&self) -> ProviderResult> { + fn pending_block(&self) -> ProviderResult>> { unimplemented!("pending_block") } fn pending_block_and_receipts( &self, - ) -> ProviderResult)>> { + ) -> ProviderResult, Vec)>> { unimplemented!("pending_block_and_receipts") } @@ -459,10 +458,6 @@ impl BlockReader for DbProvider { unimplemented!("block_range") } - fn pending_block_with_senders(&self) -> ProviderResult>> { - unimplemented!("pending_block_with_senders") - } - fn block_with_senders_range( &self, _range: RangeInclusive, @@ -484,6 +479,10 @@ impl BlockReader for DbProvider { ) -> ProviderResult>> { unimplemented!("recovered_block_range") } + + fn block_by_transaction_id(&self, _id: TxNumber) -> ProviderResult> { + unimplemented!("block_by_transaction_id") + } } impl TransactionsProvider for DbProvider { @@ -495,10 +494,6 @@ impl TransactionsProvider for DbProvider { unimplemented!("senders_by_tx_range") } - fn transaction_block(&self, _id: TxNumber) -> ProviderResult> { - unimplemented!("transaction_block") - } - fn transaction_by_hash(&self, _hash: TxHash) -> ProviderResult> { unimplemented!("transaction_by_hash") } @@ -579,20 +574,17 @@ impl ReceiptProvider for DbProvider { ) -> ProviderResult> { unimplemented!("receipts_by_tx_range") } -} - -impl ReceiptProviderIdExt for DbProvider {} -impl WithdrawalsProvider for DbProvider { - fn withdrawals_by_block( + fn receipts_by_block_range( &self, - _id: BlockHashOrNumber, - _timestamp: u64, - ) -> ProviderResult> { - unimplemented!("withdrawals_by_block") + _block_range: RangeInclusive, + ) -> ProviderResult>> { + unimplemented!("receipts_by_block_range") } } +impl ReceiptProviderIdExt for DbProvider {} + impl ChainSpecProvider for DbProvider { type ChainSpec = ChainSpec; fn chain_spec(&self) -> std::sync::Arc { @@ -674,6 +666,10 @@ impl StateProviderFactory for DbProvider { ) -> ProviderResult { unimplemented!("state_by_block_number_or_tag") } + + fn maybe_pending(&self) -> ProviderResult> { + unimplemented!("maybe_pending") + } } impl StateRootProvider for DbProvider { diff --git a/crates/sequencer/src/deposit_data_mempool.rs b/crates/sequencer/src/deposit_data_mempool.rs index e4a5f40d1e..66f9a8c37b 100644 --- a/crates/sequencer/src/deposit_data_mempool.rs +++ b/crates/sequencer/src/deposit_data_mempool.rs @@ -142,8 +142,8 @@ impl DepositDataMempool { /// `Ok(transaction_id)` if the deposit data are valid /// `Err` if deposit data are invalid. fn calc_tx_id(req: &Deposit) -> anyhow::Result<[u8; 32]> { - let call = BridgeContract::depositCall::abi_decode_raw(req, true) - .map_err(|e| anyhow::anyhow!("Could not decode DepositCall ABI: {:?}", e))?; + let call = BridgeContract::depositCall::abi_decode_raw_validate(req) + .map_err(|e| anyhow::anyhow!("Could not decode DepositCall ABI: {e:?}"))?; let tx = call.moveTx; diff --git a/crates/sequencer/src/lib.rs b/crates/sequencer/src/lib.rs index 535095e57a..b182a1cc0e 100644 --- a/crates/sequencer/src/lib.rs +++ b/crates/sequencer/src/lib.rs @@ -155,7 +155,7 @@ where task_executor.clone(), maintain_config, ); - task_executor.spawn_critical("mempool-maintenance", maintenance_future); + task_executor.spawn_critical_task("mempool-maintenance", maintenance_future); } let rpc_storage = storage_manager.create_final_view_storage(); diff --git a/crates/sequencer/src/mempool.rs b/crates/sequencer/src/mempool.rs index f33eda7055..807bc7dbf0 100644 --- a/crates/sequencer/src/mempool.rs +++ b/crates/sequencer/src/mempool.rs @@ -5,6 +5,8 @@ use alloy_primitives::{Address, TxHash}; use citrea_common::SequencerMempoolConfig; use citrea_evm::SYSTEM_SIGNER; use citrea_primitives::min_base_fee_per_gas; +use reth_chainspec::ChainSpecProvider; +use reth_evm_ethereum::EthEvmConfig; use reth_tasks::TaskExecutor; use reth_transaction_pool::blobstore::NoopBlobStore; use reth_transaction_pool::error::{PoolError, PoolErrorKind}; @@ -19,7 +21,9 @@ use crate::db_provider::DbProvider; /// The concrete implementation type for the Citrea mempool, using Reth's Pool with custom configuration type CitreaMempoolImpl = Pool< - TransactionValidationTaskExecutor>, + TransactionValidationTaskExecutor< + EthTransactionValidator, + >, CoinbaseTipOrdering, NoopBlobStore, >; @@ -39,7 +43,8 @@ impl CitreaMempool { ) -> anyhow::Result { let blob_store = NoopBlobStore::default(); - let evm_config = client.cfg(); + let chain_config = client.cfg(); + let evm_config = EthEvmConfig::new(client.chain_spec()); // Default 10x'ed from standard limits let pool_config = PoolConfig { @@ -64,14 +69,14 @@ impl CitreaMempool { ..Default::default() }; - let validator = TransactionValidationTaskExecutor::eth_builder(client) + let validator = TransactionValidationTaskExecutor::eth_builder(client, evm_config) .no_eip4844() .set_shanghai(true) .set_cancun(true) .set_prague(true) // TODO: if we ever increase block gas limits, we need to pull this from // somewhere else - .set_block_gas_limit(evm_config.block_gas_limit) + .set_block_gas_limit(chain_config.block_gas_limit) .build_with_tasks::(task_executor, blob_store); Ok(Self(Pool::eth_pool(validator, blob_store, pool_config))) @@ -100,7 +105,10 @@ impl CitreaMempool { )); } - self.0.add_external_transaction(transaction).await + self.0 + .add_external_transaction(transaction) + .await + .map(|outcome| outcome.hash) } /// Find and return a transaction by hash diff --git a/crates/sequencer/src/rpc.rs b/crates/sequencer/src/rpc.rs index 4dc69afe93..1cf02d56a6 100644 --- a/crates/sequencer/src/rpc.rs +++ b/crates/sequencer/src/rpc.rs @@ -13,9 +13,7 @@ use jsonrpsee::core::RpcResult; use jsonrpsee::proc_macros::rpc; use jsonrpsee::types::{ErrorCode, ErrorObject}; use parking_lot::Mutex; -use reth_rpc::eth::EthTxBuilder; use reth_rpc_eth_types::error::EthApiError; -use reth_rpc_types_compat::TransactionCompat; use reth_transaction_pool::{ AllPoolTransactions, EthPooledTransaction, PoolTransaction, ValidPoolTransaction, }; @@ -258,10 +256,8 @@ impl SequencerRpcServer for SequencerRpcServerImpl { match self.context.mempool.get(&hash) { Some(tx) => { - let tx_signed_ec_recovered = tx.to_consensus(); // tx signed ec recovered - let tx = EthTxBuilder::default() - .fill_pending(tx_signed_ec_recovered) - .expect("EthTxBuilder fill can't fail"); + let tx_signed_ec_recovered = tx.to_consensus().map(Into::into); + let tx = Transaction::from_transaction(tx_signed_ec_recovered, Default::default()); Ok(Some(tx)) } None => match mempool_only { @@ -382,10 +378,8 @@ impl SequencerRpcServer for SequencerRpcServerImpl { let AllPoolTransactions { pending, queued } = self.context.mempool.all_transactions(); fn extract_tx(tx: Arc>) -> Transaction { - let tx_signed_ec_recovered = tx.to_consensus(); // tx signed ec recovered - EthTxBuilder::default() - .fill_pending(tx_signed_ec_recovered) - .expect("EthTxBuilder fill can't fail") + let tx_signed_ec_recovered = tx.to_consensus().map(Into::into); + Transaction::from_transaction(tx_signed_ec_recovered, Default::default()) } let mut content = TxpoolContent::default(); diff --git a/crates/sequencer/src/runner.rs b/crates/sequencer/src/runner.rs index 0c28bdb507..1059f67b46 100644 --- a/crates/sequencer/src/runner.rs +++ b/crates/sequencer/src/runner.rs @@ -33,6 +33,7 @@ use reth_transaction_pool::{ BestTransactions, BestTransactionsAttributes, EthPooledTransaction, PoolTransaction, ValidPoolTransaction, }; +use reth_trie::LazyTrieData; use revm::database::{AccountStatus, BundleAccount, BundleState}; use revm::state::AccountInfo as ReVmAccountInfo; use sov_accounts::Accounts; @@ -234,7 +235,7 @@ where "DryRun: Failed to apply l2 block hook: {:?} \n reverting batch workspace", err ); - bail!("DryRun: Failed to apply begin l2 block hook: {:?}", err) + bail!("DryRun: Failed to apply begin l2 block hook: {err:?}") } let evm = citrea_evm::Evm::::default(); @@ -311,7 +312,7 @@ where } else { transactions.mark_invalid( &evm_tx, - InvalidPoolTransactionError::ExceedsGasLimit( + &InvalidPoolTransactionError::ExceedsGasLimit( tx_gas_used, block_gas_limit - cumulative_gas, ), @@ -329,7 +330,7 @@ where // don't really have a way to know the underlying EVM error due to // our APIs so passing a generic overdraft error // as it doesn't matter (the kind field is never used) - InvalidPoolTransactionError::Overdraft { + &InvalidPoolTransactionError::Overdraft { cost: U256::from(1), balance: U256::ZERO, }, @@ -346,7 +347,7 @@ where &evm_tx, // don't really have a way to know the cost right now // passing 1 & 0 as it doesn't matter (the kind field is never used) - InvalidPoolTransactionError::Overdraft { + &InvalidPoolTransactionError::Overdraft { cost: U256::from(1), balance: U256::ZERO, }, @@ -702,7 +703,7 @@ where "Failed to apply l2 block hook: {:?} \n reverting batch workspace", err ); - bail!("Failed to apply begin l2 block hook: {:?}", err) + bail!("Failed to apply begin l2 block hook: {err:?}") } SM.begin_l2_block_time.set( Instant::now() @@ -939,6 +940,7 @@ where let revm_info = ReVmAccountInfo { balance: account_info.balance, nonce: account_info.nonce, + account_id: None, code_hash: account_info.code_hash.unwrap_or_else(|| keccak256([])), code: None, }; @@ -1025,7 +1027,11 @@ where let execution_outcome = ExecutionOutcome::new(bundle_state, vec![receipts], l2_height, vec![]); - Chain::from_block(recovered_block, execution_outcome, None) + Chain::from_block( + recovered_block, + execution_outcome, + LazyTrieData::from_sorted(Default::default()), + ) } /// Handles cleanup for L1 fee failed transactions and persistent storage @@ -1312,7 +1318,7 @@ where let latest_header = self .db_provider .latest_header() - .map_err(|e| anyhow!("Failed to get latest header: {}", e))? + .map_err(|e| anyhow!("Failed to get latest header: {e}"))? .ok_or(anyhow!("Latest header must always exist"))? .unseal(); @@ -1393,7 +1399,7 @@ where match accounts .get_account(pub_key, working_set) - .map_err(|e| anyhow!("Sequencer: Failed to get sov-account: {}", e))? + .map_err(|e| anyhow!("Sequencer: Failed to get sov-account: {e}"))? { AccountExists { addr: _, nonce } => Ok(nonce), AccountEmpty => Ok(0), @@ -1660,7 +1666,7 @@ where working_set_to_discard = working_set.revert().to_revertable(); continue; } - return Err(anyhow!("Failed to apply system transaction: {:?}", e)); + return Err(anyhow!("Failed to apply system transaction: {e:?}")); } working_set_to_discard = working_set.checkpoint().to_revertable(); all_txs.push(sys_tx_rlp); diff --git a/crates/sovereign-sdk/adapters/mock-da/src/service.rs b/crates/sovereign-sdk/adapters/mock-da/src/service.rs index 2ddefaa84d..d361caa72e 100644 --- a/crates/sovereign-sdk/adapters/mock-da/src/service.rs +++ b/crates/sovereign-sdk/adapters/mock-da/src/service.rs @@ -137,9 +137,7 @@ impl MockDaService { let last_finalized_height = self.get_last_finalized_height().await; if last_finalized_height > height { anyhow::bail!( - "Cannot fork at height {}, last finalized height is {}", - height, - last_finalized_height + "Cannot fork at height {height}, last finalized height is {last_finalized_height}" ); } let blocks = self.blocks.lock().await; @@ -343,8 +341,7 @@ impl DaService for MockDaService { let index = height .checked_sub(oldest_available_height) .ok_or(anyhow::anyhow!( - "Block at height {} is not available anymore", - height + "Block at height {height} is not available anymore" ))?; Ok(blocks.get(index).unwrap().clone()) @@ -480,7 +477,7 @@ impl DaService for MockDaService { .lock() .await .get_by_hash(hash.0) - .ok_or_else(|| anyhow::anyhow!("Block with hash {:?} not found", hash)) + .ok_or_else(|| anyhow::anyhow!("Block with hash {hash:?} not found")) } async fn get_pending_sequencer_commitments( diff --git a/crates/sovereign-sdk/full-node/db/sov-db/src/ledger_db/rpc.rs b/crates/sovereign-sdk/full-node/db/sov-db/src/ledger_db/rpc.rs index 4d5a40381d..3adfd32757 100644 --- a/crates/sovereign-sdk/full-node/db/sov-db/src/ledger_db/rpc.rs +++ b/crates/sovereign-sdk/full-node/db/sov-db/src/ledger_db/rpc.rs @@ -15,7 +15,7 @@ fn check_if_l2_block_pruned(ledger_db: &LedgerDB, l2_height: u64) -> Result<(), let last_pruned_l2_height = ledger_db.get_last_pruned_l2_height()?; if let Some(last_pruned_l2_height) = last_pruned_l2_height { if l2_height <= last_pruned_l2_height { - anyhow::bail!("L2 block at height {} has been pruned.", l2_height); + anyhow::bail!("L2 block at height {l2_height} has been pruned."); } } Ok(()) diff --git a/crates/sovereign-sdk/full-node/db/sov-schema-db/src/lib.rs b/crates/sovereign-sdk/full-node/db/sov-schema-db/src/lib.rs index e9a324c3a8..255be794e6 100644 --- a/crates/sovereign-sdk/full-node/db/sov-schema-db/src/lib.rs +++ b/crates/sovereign-sdk/full-node/db/sov-schema-db/src/lib.rs @@ -266,7 +266,7 @@ impl DB { &self, opts: ReadOptions, direction: ScanDirection, - ) -> anyhow::Result> { + ) -> anyhow::Result> { let cf_handle = self.get_cf_handle(S::COLUMN_FAMILY_NAME)?; Ok(SchemaIterator::new( self.inner.raw_iterator_cf_opt(cf_handle, opts), @@ -275,7 +275,7 @@ impl DB { } /// Returns a forward [`SchemaIterator`] on a certain schema with the default read options. - pub fn iter(&self) -> anyhow::Result> { + pub fn iter(&self) -> anyhow::Result> { let mut read_options = ReadOptions::default(); read_options.set_async_io(true); self.iter_with_direction::(read_options, ScanDirection::Forward) @@ -314,7 +314,7 @@ impl DB { } /// Returns a [`RawDbReverseIterator`] which allows to iterate over raw values, backwards - pub fn raw_iter(&self) -> anyhow::Result { + pub fn raw_iter(&self) -> anyhow::Result> { let cf_handle = self.get_cf_handle(S::COLUMN_FAMILY_NAME)?; Ok(RawDbReverseIterator::new( self.inner @@ -326,7 +326,7 @@ impl DB { pub fn iter_with_opts( &self, opts: ReadOptions, - ) -> anyhow::Result> { + ) -> anyhow::Result> { self.iter_with_direction::(opts, ScanDirection::Forward) } @@ -385,12 +385,9 @@ impl DB { /// Returns the handle for a rocksdb column family. pub fn get_cf_handle(&self, cf_name: &str) -> anyhow::Result<&rocksdb::ColumnFamily> { - self.inner.cf_handle(cf_name).ok_or_else(|| { - format_err!( - "DB::cf_handle not found for column family name: {}", - cf_name - ) - }) + self.inner + .cf_handle(cf_name) + .ok_or_else(|| format_err!("DB::cf_handle not found for column family name: {cf_name}")) } /// Flushes [MemTable](https://github.com/facebook/rocksdb/wiki/MemTable) data. @@ -411,9 +408,7 @@ impl DB { .property_int_value_cf(self.get_cf_handle(cf_name)?, property_name)? .ok_or_else(|| { format_err!( - "Unable to get property \"{}\" of column family \"{}\".", - property_name, - cf_name, + "Unable to get property \"{property_name}\" of column family \"{cf_name}\".", ) }) } diff --git a/crates/sovereign-sdk/full-node/db/sov-schema-db/src/schema_batch.rs b/crates/sovereign-sdk/full-node/db/sov-schema-db/src/schema_batch.rs index 0a83d34392..801f033b44 100644 --- a/crates/sovereign-sdk/full-node/db/sov-schema-db/src/schema_batch.rs +++ b/crates/sovereign-sdk/full-node/db/sov-schema-db/src/schema_batch.rs @@ -70,7 +70,7 @@ impl SchemaBatch { /// Returns None column family name does not have any writes pub fn iter( &self, - ) -> SchemaBatchIterator<'_, S, Rev>> { + ) -> SchemaBatchIterator<'_, S, Rev>> { let some_rows = self.last_writes.get(&S::COLUMN_FAMILY_NAME); SchemaBatchIterator { inner: some_rows.map(|rows| rows.iter().rev()), @@ -82,7 +82,7 @@ impl SchemaBatch { pub fn iter_range( &self, upper_bound: SchemaKey, - ) -> SchemaBatchIterator<'_, S, Rev>> { + ) -> SchemaBatchIterator<'_, S, Rev>> { let some_rows = self.last_writes.get(&S::COLUMN_FAMILY_NAME); SchemaBatchIterator { inner: some_rows.map(|rows| rows.range(..=upper_bound).rev()), diff --git a/crates/sovereign-sdk/full-node/db/sov-schema-db/tests/iterator_test.rs b/crates/sovereign-sdk/full-node/db/sov-schema-db/tests/iterator_test.rs index a7a1dc59e7..2dc2bf3d70 100644 --- a/crates/sovereign-sdk/full-node/db/sov-schema-db/tests/iterator_test.rs +++ b/crates/sovereign-sdk/full-node/db/sov-schema-db/tests/iterator_test.rs @@ -82,11 +82,11 @@ impl TestDB { } impl TestDB { - fn iter(&self) -> SchemaIterator { + fn iter(&self) -> SchemaIterator<'_, S> { self.db.iter().expect("Failed to create iterator.") } - fn rev_iter(&self) -> SchemaIterator { + fn rev_iter(&self) -> SchemaIterator<'_, S> { let mut read_options = ReadOptions::default(); read_options.set_async_io(true); self.db diff --git a/crates/sovereign-sdk/module-system/sov-modules-api/src/lib.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/lib.rs index a88502bfdf..6378d39ec7 100644 --- a/crates/sovereign-sdk/module-system/sov-modules-api/src/lib.rs +++ b/crates/sovereign-sdk/module-system/sov-modules-api/src/lib.rs @@ -238,7 +238,7 @@ impl<'a, C: Context> ModuleVisitor<'a, C> { fn visit_module( &mut self, module: &'a dyn ModuleInfo, - module_map: &HashMap<&::Address, &'a (dyn ModuleInfo)>, + module_map: &HashMap<&::Address, &'a dyn ModuleInfo>, ) -> Result<(), anyhow::Error> { let address = module.address(); diff --git a/crates/sovereign-sdk/module-system/sov-modules-core/src/storage/scratchpad.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/storage/scratchpad.rs index 36c454c6a8..51daa2b626 100644 --- a/crates/sovereign-sdk/module-system/sov-modules-core/src/storage/scratchpad.rs +++ b/crates/sovereign-sdk/module-system/sov-modules-core/src/storage/scratchpad.rs @@ -632,7 +632,7 @@ impl WorkingSet { /// /// You can use this method when calling getters and setters on accessory /// state containers, like AccessoryStateMap. - pub fn accessory_state(&mut self) -> AccessoryWorkingSet { + pub fn accessory_state(&mut self) -> AccessoryWorkingSet<'_, S> { AccessoryWorkingSet { ws: self } } @@ -640,7 +640,7 @@ impl WorkingSet { /// /// You can use this method when calling getters and setters on offchain /// state containers, like OffchainStateMap. - pub fn offchain_state(&mut self) -> OffchainWorkingSet { + pub fn offchain_state(&mut self) -> OffchainWorkingSet<'_, S> { OffchainWorkingSet { ws: self } } diff --git a/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_type_not_static.stderr b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_type_not_static.stderr index 74f48afb27..b6a157f615 100644 --- a/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_type_not_static.stderr +++ b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_type_not_static.stderr @@ -1,8 +1,8 @@ -error[E0599]: the method `set` exists for struct `StateValue`, but its trait bounds were not satisfied +error[E0599]: the method `set` exists for struct `sov_modules_api::StateValue`, but its trait bounds were not satisfied --> tests/rpc/expose_rpc_associated_type_not_static.rs:56:23 | 56 | self.data.set(config, working_set); - | ^^^ method cannot be called on `StateValue` due to unsatisfied trait bounds + | ^^^ method cannot be called on `sov_modules_api::StateValue` due to unsatisfied trait bounds | ::: $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/value.rs | @@ -18,11 +18,11 @@ error[E0599]: the method `set` exists for struct `StateValue`, but its trait `BorshCodec: StateValueCodec` which is required by `sov_modules_api::StateValue: sov_modules_api::StateValueAccessor>` -error[E0599]: the method `set` exists for struct `StateValue`, but its trait bounds were not satisfied +error[E0599]: the method `set` exists for struct `sov_modules_api::StateValue`, but its trait bounds were not satisfied --> tests/rpc/expose_rpc_associated_type_not_static.rs:65:23 | 65 | self.data.set(&msg, working_set); - | ^^^ method cannot be called on `StateValue` due to unsatisfied trait bounds + | ^^^ method cannot be called on `sov_modules_api::StateValue` due to unsatisfied trait bounds | ::: $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/value.rs | @@ -38,11 +38,11 @@ error[E0599]: the method `set` exists for struct `StateValue`, but its trait `BorshCodec: StateValueCodec` which is required by `sov_modules_api::StateValue: sov_modules_api::StateValueAccessor>` -error[E0599]: the method `get` exists for struct `StateValue`, but its trait bounds were not satisfied +error[E0599]: the method `get` exists for struct `sov_modules_api::StateValue`, but its trait bounds were not satisfied --> tests/rpc/expose_rpc_associated_type_not_static.rs:90:39 | 90 | let value = self.data.get(working_set).map(|d| format!("{:?}", d)); - | ^^^ method cannot be called on `StateValue` due to unsatisfied trait bounds + | ^^^ method cannot be called on `sov_modules_api::StateValue` due to unsatisfied trait bounds | ::: $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/value.rs | diff --git a/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.stderr b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.stderr index 706f817236..d891c29cf0 100644 --- a/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.stderr +++ b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.stderr @@ -38,80 +38,6 @@ help: consider further restricting type parameter `S` with trait `Spec` 99 | struct Runtime { | +++++++++++++++++++++++ -error[E0277]: `::Data` cannot be shared between threads safely - --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:8 - | -99 | struct Runtime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `::Data` cannot be shared between threads safely - | - = help: within `Runtime`, the trait `std::marker::Sync` is not implemented for `::Data` -note: required because it appears within the type `PhantomData<::Data>` - --> $RUST/core/src/marker.rs - | - | pub struct PhantomData; - | ^^^^^^^^^^^ -note: required because it appears within the type `sov_modules_api::StateValue<::Data>` - --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/value.rs - | - | pub struct StateValue { - | ^^^^^^^^^^ -note: required because it appears within the type `QueryModule::Data>` - --> tests/rpc/expose_rpc_first_generic_not_context.rs:36:16 - | -36 | pub struct QueryModule { - | ^^^^^^^^^^^ -note: required because it appears within the type `Runtime` - --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:8 - | -99 | struct Runtime { - | ^^^^^^^ -note: required by a bound in `sov_modules_api::DispatchCall` - --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/module/dispatch.rs - | - | pub trait DispatchCall: Send + Sync { - | ^^^^ required by this bound in `DispatchCall` -help: consider further restricting the associated type - | -99 | struct Runtime where ::Data: std::marker::Sync { - | ++++++++++++++++++++++++++++++++++++++++++++++ - -error[E0277]: `::Data` cannot be sent between threads safely - --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:8 - | -99 | struct Runtime { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `::Data` cannot be sent between threads safely - | - = help: within `Runtime`, the trait `Send` is not implemented for `::Data` -note: required because it appears within the type `PhantomData<::Data>` - --> $RUST/core/src/marker.rs - | - | pub struct PhantomData; - | ^^^^^^^^^^^ -note: required because it appears within the type `sov_modules_api::StateValue<::Data>` - --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/value.rs - | - | pub struct StateValue { - | ^^^^^^^^^^ -note: required because it appears within the type `QueryModule::Data>` - --> tests/rpc/expose_rpc_first_generic_not_context.rs:36:16 - | -36 | pub struct QueryModule { - | ^^^^^^^^^^^ -note: required because it appears within the type `Runtime` - --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:8 - | -99 | struct Runtime { - | ^^^^^^^ -note: required by a bound in `sov_modules_api::DispatchCall` - --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/module/dispatch.rs - | - | pub trait DispatchCall: Send + Sync { - | ^^^^ required by this bound in `DispatchCall` -help: consider further restricting the associated type - | -99 | struct Runtime where ::Data: Send { - | +++++++++++++++++++++++++++++++++ - error[E0277]: the trait bound `S: sov_modules_api::Context` is not satisfied --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:16 | @@ -174,6 +100,74 @@ help: consider further restricting the associated type 99 | struct Runtime where ::Data: Send { | +++++++++++++++++++++++++++++++++ +error[E0277]: `::Data` cannot be sent between threads safely + --> tests/rpc/expose_rpc_first_generic_not_context.rs:97:19 + | + 97 | #[derive(Genesis, DispatchCall, MessageCodec, DefaultRuntime)] + | ^^^^^^^^^^^^ `::Data` cannot be sent between threads safely + | + = help: within `Runtime`, the trait `Send` is not implemented for `::Data` +note: required because it appears within the type `PhantomData<::Data>` + --> $RUST/core/src/marker.rs + | + | pub struct PhantomData; + | ^^^^^^^^^^^ +note: required because it appears within the type `sov_modules_api::StateValue<::Data>` + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/value.rs + | + 19 | pub struct StateValue { + | ^^^^^^^^^^ +note: required because it appears within the type `QueryModule::Data>` + --> tests/rpc/expose_rpc_first_generic_not_context.rs:36:16 + | + 36 | pub struct QueryModule { + | ^^^^^^^^^^^ +note: required because it appears within the type `Runtime` + --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:8 + | + 99 | struct Runtime { + | ^^^^^^^ +note: required by a bound in `sov_modules_api::DispatchCall` + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/module/dispatch.rs + | + 10 | pub trait DispatchCall: Send + Sync { + | ^^^^ required by this bound in `DispatchCall` + = note: this error originates in the derive macro `DispatchCall` (in Nightly builds, run with -Z macro-backtrace for more info) + +error[E0277]: `::Data` cannot be shared between threads safely + --> tests/rpc/expose_rpc_first_generic_not_context.rs:97:19 + | + 97 | #[derive(Genesis, DispatchCall, MessageCodec, DefaultRuntime)] + | ^^^^^^^^^^^^ `::Data` cannot be shared between threads safely + | + = help: within `Runtime`, the trait `std::marker::Sync` is not implemented for `::Data` +note: required because it appears within the type `PhantomData<::Data>` + --> $RUST/core/src/marker.rs + | + | pub struct PhantomData; + | ^^^^^^^^^^^ +note: required because it appears within the type `sov_modules_api::StateValue<::Data>` + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/value.rs + | + 19 | pub struct StateValue { + | ^^^^^^^^^^ +note: required because it appears within the type `QueryModule::Data>` + --> tests/rpc/expose_rpc_first_generic_not_context.rs:36:16 + | + 36 | pub struct QueryModule { + | ^^^^^^^^^^^ +note: required because it appears within the type `Runtime` + --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:8 + | + 99 | struct Runtime { + | ^^^^^^^ +note: required by a bound in `sov_modules_api::DispatchCall` + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/module/dispatch.rs + | + 10 | pub trait DispatchCall: Send + Sync { + | ^^^^ required by this bound in `DispatchCall` + = note: this error originates in the derive macro `DispatchCall` (in Nightly builds, run with -Z macro-backtrace for more info) + error[E0277]: the trait bound `S: Spec` is not satisfied --> tests/rpc/expose_rpc_first_generic_not_context.rs:97:19 | @@ -186,6 +180,80 @@ help: consider further restricting type parameter `S` with trait `Spec` 99 | struct Runtime { | +++++++++++++++++++++++ +error[E0277]: `::Data` cannot be shared between threads safely + --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:8 + | + 99 | struct Runtime { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `::Data` cannot be shared between threads safely + | + = help: within `Runtime`, the trait `std::marker::Sync` is not implemented for `::Data` +note: required because it appears within the type `PhantomData<::Data>` + --> $RUST/core/src/marker.rs + | + | pub struct PhantomData; + | ^^^^^^^^^^^ +note: required because it appears within the type `sov_modules_api::StateValue<::Data>` + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/value.rs + | + 19 | pub struct StateValue { + | ^^^^^^^^^^ +note: required because it appears within the type `QueryModule::Data>` + --> tests/rpc/expose_rpc_first_generic_not_context.rs:36:16 + | + 36 | pub struct QueryModule { + | ^^^^^^^^^^^ +note: required because it appears within the type `Runtime` + --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:8 + | + 99 | struct Runtime { + | ^^^^^^^ +note: required by a bound in `sov_modules_api::DispatchCall` + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/module/dispatch.rs + | + 10 | pub trait DispatchCall: Send + Sync { + | ^^^^ required by this bound in `DispatchCall` +help: consider further restricting the associated type + | + 99 | struct Runtime where ::Data: std::marker::Sync { + | ++++++++++++++++++++++++++++++++++++++++++++++ + +error[E0277]: `::Data` cannot be sent between threads safely + --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:8 + | + 99 | struct Runtime { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `::Data` cannot be sent between threads safely + | + = help: within `Runtime`, the trait `Send` is not implemented for `::Data` +note: required because it appears within the type `PhantomData<::Data>` + --> $RUST/core/src/marker.rs + | + | pub struct PhantomData; + | ^^^^^^^^^^^ +note: required because it appears within the type `sov_modules_api::StateValue<::Data>` + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/value.rs + | + 19 | pub struct StateValue { + | ^^^^^^^^^^ +note: required because it appears within the type `QueryModule::Data>` + --> tests/rpc/expose_rpc_first_generic_not_context.rs:36:16 + | + 36 | pub struct QueryModule { + | ^^^^^^^^^^^ +note: required because it appears within the type `Runtime` + --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:8 + | + 99 | struct Runtime { + | ^^^^^^^ +note: required by a bound in `sov_modules_api::DispatchCall` + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/module/dispatch.rs + | + 10 | pub trait DispatchCall: Send + Sync { + | ^^^^ required by this bound in `DispatchCall` +help: consider further restricting the associated type + | + 99 | struct Runtime where ::Data: Send { + | +++++++++++++++++++++++++++++++++ + error[E0277]: the trait bound `S: Spec` is not satisfied --> tests/rpc/expose_rpc_first_generic_not_context.rs:96:1 | @@ -198,23 +266,23 @@ help: consider further restricting type parameter `S` with trait `Spec` 99 | struct Runtime { | +++++++++++++++++++++++ -error[E0599]: no method named `set` found for struct `sov_modules_api::StateValue` in the current scope +error[E0599]: no method named `set` found for struct `sov_modules_api::StateValue` in the current scope --> tests/rpc/expose_rpc_first_generic_not_context.rs:53:23 | 53 | self.data.set(config, working_set); - | ^^^ method not found in `StateValue` + | ^^^ method not found in `sov_modules_api::StateValue` -error[E0599]: no method named `set` found for struct `sov_modules_api::StateValue` in the current scope +error[E0599]: no method named `set` found for struct `sov_modules_api::StateValue` in the current scope --> tests/rpc/expose_rpc_first_generic_not_context.rs:62:23 | 62 | self.data.set(&msg, working_set); - | ^^^ method not found in `StateValue` + | ^^^ method not found in `sov_modules_api::StateValue` -error[E0599]: no method named `get` found for struct `sov_modules_api::StateValue` in the current scope +error[E0599]: no method named `get` found for struct `sov_modules_api::StateValue` in the current scope --> tests/rpc/expose_rpc_first_generic_not_context.rs:87:39 | 87 | let value = self.data.get(working_set).map(|d| format!("{:?}", d)); - | ^^^ method not found in `StateValue` + | ^^^ method not found in `sov_modules_api::StateValue` error[E0271]: type mismatch resolving `::Data> as ModuleInfo>::Context == S` --> tests/rpc/expose_rpc_first_generic_not_context.rs:97:10 @@ -240,21 +308,21 @@ note: expected this to be `S` = note: this error originates in the derive macro `Genesis` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0277]: the trait bound `S: sov_modules_api::Context` is not satisfied - --> tests/rpc/expose_rpc_first_generic_not_context.rs:97:10 - | -97 | #[derive(Genesis, DispatchCall, MessageCodec, DefaultRuntime)] - | ^^^^^^^ the trait `sov_modules_api::Context` is not implemented for `S` - | + --> tests/rpc/expose_rpc_first_generic_not_context.rs:97:10 + | + 97 | #[derive(Genesis, DispatchCall, MessageCodec, DefaultRuntime)] + | ^^^^^^^ the trait `sov_modules_api::Context` is not implemented for `S` + | note: required by a bound in `sort_values_by_modules_dependencies` - --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-api/src/lib.rs - | - | pub fn sort_values_by_modules_dependencies( - | ^^^^^^^ required by this bound in `sort_values_by_modules_dependencies` - = note: this error originates in the derive macro `Genesis` (in Nightly builds, run with -Z macro-backtrace for more info) + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-api/src/lib.rs + | + | pub fn sort_values_by_modules_dependencies( + | ^^^^^^^ required by this bound in `sort_values_by_modules_dependencies` + = note: this error originates in the derive macro `Genesis` (in Nightly builds, run with -Z macro-backtrace for more info) help: consider further restricting type parameter `S` with trait `Context` - | -99 | struct Runtime { - | ++++++++++++++++++++++++++ + | + 99 | struct Runtime { + | ++++++++++++++++++++++++++ error[E0308]: mismatched types --> tests/rpc/expose_rpc_first_generic_not_context.rs:97:19 @@ -291,28 +359,33 @@ error[E0277]: the trait bound `ZkDefaultContext: TestSpec` is not satisfied note: required by a bound in `Runtime` --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:19 | -99 | struct Runtime { + 99 | struct Runtime { | ^^^^^^^^ required by this bound in `Runtime` error[E0277]: the trait bound `ActualSpec: sov_modules_api::Context` is not satisfied --> tests/rpc/expose_rpc_first_generic_not_context.rs:114:24 | 114 | let runtime = &mut Runtime::::default(); - | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `sov_modules_api::Context` is not implemented for `ActualSpec` + | ^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | +help: the trait `sov_modules_api::Context` is not implemented for `ActualSpec` + --> tests/rpc/expose_rpc_first_generic_not_context.rs:103:1 + | +103 | struct ActualSpec; + | ^^^^^^^^^^^^^^^^^ = help: the following other types implement trait `sov_modules_api::Context`: DefaultContext ZkDefaultContext note: required by a bound in `Runtime` --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:32 | -99 | struct Runtime { + 99 | struct Runtime { | ^^^^^^^ required by this bound in `Runtime` error[E0599]: the function or associated item `default` exists for struct `Runtime`, but its trait bounds were not satisfied - --> tests/rpc/expose_rpc_first_generic_not_context.rs:114:50 - | -99 | struct Runtime { + --> tests/rpc/expose_rpc_first_generic_not_context.rs:114:50 + | + 99 | struct Runtime { | --------------------------------------- function or associated item `default` not found for this struct because it doesn't satisfy `_: Default` ... 103 | struct ActualSpec; @@ -323,7 +396,7 @@ error[E0599]: the function or associated item `default` exists for struct `Runti | ::: $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-api/src/default_context.rs | - | pub struct ZkDefaultContext { + 64 | pub struct ZkDefaultContext { | --------------------------- doesn't satisfy `ZkDefaultContext: TestSpec` | = note: the following trait bounds were not satisfied: @@ -332,7 +405,7 @@ error[E0599]: the function or associated item `default` exists for struct `Runti note: the trait `sov_modules_api::Context` must be implemented --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/module/spec.rs | - | pub trait Context: Spec + Clone + Debug + PartialEq + 'static { + 93 | pub trait Context: Spec + Clone + Debug + PartialEq + 'static { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = help: items from traits can only be used if the trait is implemented and in scope = note: the following traits define an item `default`, perhaps you need to implement one of them: @@ -343,8 +416,13 @@ error[E0277]: the trait bound `Runtime: EncodeCall --> tests/rpc/expose_rpc_first_generic_not_context.rs:120:10 | 120 | >>::encode_call(message); - | ^^ the trait `EncodeCall>` is not implemented for `Runtime` + | ^^ unsatisfied trait bound + | +help: the trait `EncodeCall>` is not implemented for `Runtime` + --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:1 | + 99 | struct Runtime { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = help: the trait `EncodeCall::Data>>` is implemented for `Runtime` error[E0277]: the trait bound `ZkDefaultContext: TestSpec` is not satisfied @@ -357,22 +435,27 @@ error[E0277]: the trait bound `ZkDefaultContext: TestSpec` is not satisfied note: required by a bound in `Runtime` --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:19 | -99 | struct Runtime { + 99 | struct Runtime { | ^^^^^^^^ required by this bound in `Runtime` error[E0277]: the trait bound `ActualSpec: sov_modules_api::Context` is not satisfied --> tests/rpc/expose_rpc_first_generic_not_context.rs:120:10 | 120 | >>::encode_call(message); - | ^^ the trait `sov_modules_api::Context` is not implemented for `ActualSpec` + | ^^ unsatisfied trait bound | +help: the trait `sov_modules_api::Context` is not implemented for `ActualSpec` + --> tests/rpc/expose_rpc_first_generic_not_context.rs:103:1 + | +103 | struct ActualSpec; + | ^^^^^^^^^^^^^^^^^ = help: the following other types implement trait `sov_modules_api::Context`: DefaultContext ZkDefaultContext note: required by a bound in `Runtime` --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:32 | -99 | struct Runtime { + 99 | struct Runtime { | ^^^^^^^ required by this bound in `Runtime` error[E0277]: the trait bound `ZkDefaultContext: TestSpec` is not satisfied @@ -385,28 +468,33 @@ error[E0277]: the trait bound `ZkDefaultContext: TestSpec` is not satisfied note: required by a bound in `Runtime` --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:19 | -99 | struct Runtime { + 99 | struct Runtime { | ^^^^^^^^ required by this bound in `Runtime` error[E0277]: the trait bound `ActualSpec: sov_modules_api::Context` is not satisfied --> tests/rpc/expose_rpc_first_generic_not_context.rs:121:18 | 121 | let module = RT::decode_call(&serialized_message).unwrap(); - | ^^ the trait `sov_modules_api::Context` is not implemented for `ActualSpec` + | ^^ unsatisfied trait bound | +help: the trait `sov_modules_api::Context` is not implemented for `ActualSpec` + --> tests/rpc/expose_rpc_first_generic_not_context.rs:103:1 + | +103 | struct ActualSpec; + | ^^^^^^^^^^^^^^^^^ = help: the following other types implement trait `sov_modules_api::Context`: DefaultContext ZkDefaultContext note: required by a bound in `Runtime` --> tests/rpc/expose_rpc_first_generic_not_context.rs:99:32 | -99 | struct Runtime { + 99 | struct Runtime { | ^^^^^^^ required by this bound in `Runtime` error[E0599]: the function or associated item `decode_call` exists for struct `Runtime`, but its trait bounds were not satisfied - --> tests/rpc/expose_rpc_first_generic_not_context.rs:121:22 - | -99 | struct Runtime { + --> tests/rpc/expose_rpc_first_generic_not_context.rs:121:22 + | + 99 | struct Runtime { | --------------------------------------- function or associated item `decode_call` not found for this struct because it doesn't satisfy `_: DispatchCall` ... 103 | struct ActualSpec; @@ -417,7 +505,7 @@ error[E0599]: the function or associated item `decode_call` exists for struct `R | ::: $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-api/src/default_context.rs | - | pub struct ZkDefaultContext { + 64 | pub struct ZkDefaultContext { | --------------------------- doesn't satisfy `ZkDefaultContext: TestSpec` | = note: the following trait bounds were not satisfied: @@ -426,7 +514,7 @@ error[E0599]: the function or associated item `decode_call` exists for struct `R note: the trait `sov_modules_api::Context` must be implemented --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/module/spec.rs | - | pub trait Context: Spec + Clone + Debug + PartialEq + 'static { + 93 | pub trait Context: Spec + Clone + Debug + PartialEq + 'static { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = help: items from traits can only be used if the trait is implemented and in scope = note: the following trait defines an item `decode_call`, perhaps you need to implement it: diff --git a/crates/sovereign-sdk/rollup-interface/src/state_machine/da.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/da.rs index bdb68e5aa1..ba1ef1495a 100644 --- a/crates/sovereign-sdk/rollup-interface/src/state_machine/da.rs +++ b/crates/sovereign-sdk/rollup-interface/src/state_machine/da.rs @@ -90,7 +90,7 @@ impl BatchProofMethodId { /// SequencerCommitment's are ordered by their index impl core::cmp::PartialOrd for SequencerCommitment { fn partial_cmp(&self, other: &Self) -> Option { - Some(self.index.cmp(&other.index)) + Some(self.cmp(other)) } } diff --git a/crates/storage-ops/src/rollback/mod.rs b/crates/storage-ops/src/rollback/mod.rs index 2e6d70d47b..051bc48e45 100644 --- a/crates/storage-ops/src/rollback/mod.rs +++ b/crates/storage-ops/src/rollback/mod.rs @@ -93,9 +93,7 @@ impl Rollback { if last_scanned_l1_height < l1_target { // If the last scanned L1 height is less than the target, we cannot rollback return Err(anyhow::anyhow!( - "Cannot rollback to L1 height {} as the last scanned height is {}", - l1_target, - last_scanned_l1_height + "Cannot rollback to L1 height {l1_target} as the last scanned height is {last_scanned_l1_height}" )); } diff --git a/crates/storage-ops/src/tests.rs b/crates/storage-ops/src/tests.rs index deafb31c72..e0f8f38dce 100644 --- a/crates/storage-ops/src/tests.rs +++ b/crates/storage-ops/src/tests.rs @@ -3,7 +3,7 @@ use std::thread::sleep; use std::time::Duration; use citrea_common::{NodeType, PruningConfig}; -use reth_tasks::TaskManager; +use reth_tasks::TaskExecutor as TaskManager; use sov_db::ledger_db::{LedgerDB, SharedLedgerOps}; use sov_db::native_db::NativeDB; use sov_db::rocks_db_config::RocksdbConfig; @@ -28,8 +28,9 @@ use crate::pruning::{Pruner, PrunerService}; #[tokio::test(flavor = "multi_thread")] async fn test_pruning_simple_run() { - let task_manager = TaskManager::current(); - let task_executor = task_manager.executor(); + let task_manager = TaskManager::with_existing_handle(tokio::runtime::Handle::current()) + .expect("tokio runtime handle should exist in tests"); + let task_executor = task_manager.clone(); let tmpdir = tempfile::tempdir().unwrap(); let rocksdb_config = RocksdbConfig::new(tmpdir.path(), None, None); diff --git a/guests/risc0/batch-proof/bitcoin/Cargo.lock b/guests/risc0/batch-proof/bitcoin/Cargo.lock index daa7878644..dff2e1acb4 100644 --- a/guests/risc0/batch-proof/bitcoin/Cargo.lock +++ b/guests/risc0/batch-proof/bitcoin/Cargo.lock @@ -37,9 +37,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.1.69" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28e2652684758b0d9b389d248b209ed9fd9989ef489a550265fe4bb8454fe7eb" +checksum = "90f374d3c6d729268bbe2d0e0ff992bb97898b2df756691a62ee1d5f0506bc39" dependencies = [ "alloy-primitives", "num_enum", @@ -48,32 +48,36 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.13.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27d301f5bcfd37e3aac727c360d8b50c33ddff9169ce0370198dedda36a9927d" +checksum = "b0c0dc44157867da82c469c13186015b86abef209bf0e41625e4b68bac61d728" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", "alloy-serde", "alloy-trie", + "alloy-tx-macros", "auto_impl", + "borsh", "c-kzg", "derive_more 2.0.1", "either", "k256", "once_cell", "rand 0.8.5", + "secp256k1 0.30.0", "serde", + "serde_json", "serde_with", "thiserror 2.0.12", ] [[package]] name = "alloy-consensus-any" -version = "0.13.0" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f4f97a85a45965e0e4f9f5b94bbafaa3e4ee6868bdbcf2e4a9acb4b358038fe" +checksum = "1a0701b0eda8051a2398591113e7862f807ccdd3315d0b441f06c2a0865a379b" dependencies = [ "alloy-consensus", "alloy-eips", @@ -85,9 +89,9 @@ dependencies = [ [[package]] name = "alloy-eip2124" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "675264c957689f0fd75f5993a73123c2cc3b5c235a38f5b9037fe6c826bfb2c0" +checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -98,84 +102,87 @@ dependencies = [ [[package]] name = "alloy-eip2930" -version = "0.1.0" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" dependencies = [ "alloy-primitives", "alloy-rlp", + "borsh", "serde", ] [[package]] name = "alloy-eip7702" -version = "0.5.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b15b13d38b366d01e818fe8e710d4d702ef7499eacd44926a06171dd9585d0c" +checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" dependencies = [ "alloy-primitives", "alloy-rlp", + "borsh", "k256", "serde", "serde_with", "thiserror 2.0.12", ] +[[package]] +name = "alloy-eip7928" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3231de68d5d6e75332b7489cfcc7f4dfabeba94d990a10e4b923af0e6623540" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "borsh", + "serde", +] + [[package]] name = "alloy-eips" -version = "0.13.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10b11c382ca8075128d1ae6822b60921cf484c911d9a5831797a01218f98125f" +checksum = "b9f7ef09f21bd1e9cb8a686f168cb4a206646804567f0889eadb8dcc4c9288c8" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", + "alloy-eip7928", "alloy-primitives", "alloy-rlp", "alloy-serde", "auto_impl", + "borsh", "c-kzg", "derive_more 2.0.1", "either", "serde", + "serde_with", "sha2", -] - -[[package]] -name = "alloy-evm" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e158fd08c4be4fafe8c9fb7cb661f3b9585038446df0cd20b3d99e71f4166748" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-hardforks", - "alloy-primitives", - "alloy-sol-types", - "auto_impl", - "derive_more 2.0.1", - "revm", "thiserror 2.0.12", ] [[package]] name = "alloy-genesis" -version = "0.13.0" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd9e75c5dd40319ebbe807ebe9dfb10c24e4a70d9c7d638e62921d8dd093c8b" +checksum = "55d9d1aba3f914f0e8db9e4616ae37f3d811426d95bdccf44e47d0605ab202f6" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-serde", "alloy-trie", + "borsh", "serde", + "serde_with", ] [[package]] name = "alloy-hardforks" -version = "0.1.3" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3a420b513e00937442db75c5c9c8287fd0615a1f60cc3335d7246c870440ed" +checksum = "83ba208044232d14d4adbfa77e57d6329f51bc1acc21f5667bb7db72d88a0831" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -186,20 +193,21 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4584e3641181ff073e9d5bec5b3b8f78f9749d9fb108a1cfbc4399a4a139c72a" +checksum = "e9dbe713da0c737d9e5e387b0ba790eb98b14dd207fe53eef50e19a5a8ec3dac" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", "serde", + "serde_json", ] [[package]] name = "alloy-network-primitives" -version = "0.13.0" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f736e1d1eb1b770dbd32919bdf46d4dcd4617f2eed07947dfb32649962baba" +checksum = "636c8051da58802e757b76c3b65af610b95799f72423dc955737dec73de234fd" dependencies = [ "alloy-consensus", "alloy-eips", @@ -210,9 +218,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777d58b30eb9a4db0e5f59bc30e8c2caef877fee7dc8734cf242a51a60f22e05" +checksum = "de3b431b4e72cd8bd0ec7a50b4be18e73dab74de0dba180eef171055e5d5926e" dependencies = [ "alloy-rlp", "bytes", @@ -220,14 +228,15 @@ dependencies = [ "const-hex", "derive_more 2.0.1", "foldhash", - "hashbrown 0.15.2", + "hashbrown 0.16.1", "indexmap 2.7.1", "itoa", "k256", "keccak-asm", "paste", "proptest", - "rand 0.8.5", + "rand 0.9.2", + "rapidhash", "ruint", "rustc-hash", "serde", @@ -237,9 +246,9 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6c1d995bff8d011f7cd6c81820d51825e6e06d6db73914c1630ecf544d83d6" +checksum = "e93e50f64a77ad9c5470bf2ad0ca02f228da70c792a8f06634801e202579f35e" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -248,9 +257,9 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a40e1ef334153322fd878d07e86af7a529bcb86b2439525920a88eba87bcf943" +checksum = "ce8849c74c9ca0f5a03da1c865e3eb6f768df816e67dd3721a398a8a7e398011" dependencies = [ "proc-macro2", "quote", @@ -259,9 +268,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "0.13.0" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8b6d55bdaa0c4a08650d4b32f174494cbade56adf6f2fcfa2a4f3490cb5511" +checksum = "010e101dbebe0c678248907a2545b574a87d078d82c2f6f5d0e8e7c9a6149a10" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -271,7 +280,7 @@ dependencies = [ "alloy-rlp", "alloy-serde", "alloy-sol-types", - "itertools 0.13.0", + "itertools 0.14.0", "serde", "serde_json", "thiserror 2.0.12", @@ -279,9 +288,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.13.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1824791912f468a481dedc1db50feef3e85a078f6d743a62db2ee9c2ca674882" +checksum = "e2ce1e0dbf7720eee747700e300c99aac01b1a95bb93f493a01e78ee28bb1a37" dependencies = [ "alloy-primitives", "serde", @@ -290,9 +299,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e68b32b6fa0d09bb74b4cefe35ccc8269d711c26629bc7cd98a47eeb12fe353f" +checksum = "ab81bab693da9bb79f7a95b64b394718259fdd7e41dceeced4cad57cb71c4f6a" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -304,9 +313,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2afe6879ac373e58fd53581636f2cce843998ae0b058ebe1e4f649195e2bd23c" +checksum = "489f1620bb7e2483fb5819ed01ab6edc1d2f93939dce35a5695085a1afd1d699" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", @@ -316,16 +325,16 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", + "sha3", "syn 2.0.98", "syn-solidity", - "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ba01aee235a8c699d07e5be97ba215607564e71be72f433665329bec307d28" +checksum = "56cef806ad22d4392c5fc83cf8f2089f988eb99c7067b4e0c6f1971fc1cca318" dependencies = [ "alloy-json-abi", "const-hex", @@ -341,9 +350,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c13fc168b97411e04465f03e632f31ef94cad1c7c8951bf799237fd7870d535" +checksum = "a6df77fea9d6a2a75c0ef8d2acbdfd92286cc599983d3175ccdc170d3433d249" dependencies = [ "serde", "winnow", @@ -351,32 +360,44 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e960c4b52508ef2ae1e37cae5058e905e9ae099b107900067a503f8c454036f" +checksum = "64612d29379782a5dde6f4b6570d9c756d734d760c0c94c254d361e678a6591f" dependencies = [ "alloy-json-abi", "alloy-primitives", "alloy-sol-macro", - "const-hex", ] [[package]] name = "alloy-trie" -version = "0.7.9" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a94854e420f07e962f7807485856cde359ab99ab6413883e15235ad996e8b" +checksum = "4d7fd448ab0a017de542de1dcca7a58e7019fe0e7a34ed3f9543ebddf6aceffa" dependencies = [ "alloy-primitives", "alloy-rlp", "arrayvec", - "derive_more 1.0.0", + "derive_more 2.0.1", "nybbles", "serde", "smallvec", + "thiserror 2.0.12", "tracing", ] +[[package]] +name = "alloy-tx-macros" +version = "1.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fa0c53e8c1e1ef4d01066b01c737fb62fc9397ab52c6e7bb5669f97d281b9bc" +dependencies = [ + "darling 0.21.3", + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "android-tzdata" version = "0.1.1" @@ -398,15 +419,6 @@ version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4" -[[package]] -name = "arbitrary" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" -dependencies = [ - "derive_arbitrary", -] - [[package]] name = "ark-bls12-381" version = "0.5.0" @@ -784,9 +796,9 @@ dependencies = [ [[package]] name = "auto_impl" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12882f59de5360c748c4cbf569a042d5fb0eb515f7bea9c1f470b47f6ffbd73" +checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", @@ -856,6 +868,7 @@ dependencies = [ "sov-modules-stf-blueprint", "sov-rollup-interface", "sov-state", + "substrate-bn", ] [[package]] @@ -984,11 +997,11 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.8.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -1043,10 +1056,11 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.14" -source = "git+https://github.com/risc0/blst?tag=v0.3.14-risczero.2#ca5d6042fffe3cf599e4f10a7d9a6a63693b6d15" +version = "0.3.16" +source = "git+https://github.com/risc0/blst?tag=v0.3.16-risczero.0#7d1fc3e6d8cf0d52a291f52455233bf8d6432ed2" dependencies = [ "cc", + "getrandom 0.2.15", "glob", "risc0-bigint2", "threadpool", @@ -1147,11 +1161,10 @@ dependencies = [ [[package]] name = "c-kzg" -version = "2.1.0" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7e3c397401eb76228c89561cf22f85f41c95aa799ee9d860de3ea1cbc728fc" +checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687" dependencies = [ - "arbitrary", "blst", "cc", "glob", @@ -1194,7 +1207,7 @@ dependencies = [ "iana-time-zone", "num-traits", "serde", - "windows-link", + "windows-link 0.1.1", ] [[package]] @@ -1366,6 +1379,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + [[package]] name = "crunchy" version = "0.2.3" @@ -1400,8 +1419,18 @@ version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.20.11", + "darling_macro 0.20.11", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core 0.21.3", + "darling_macro 0.21.3", ] [[package]] @@ -1418,17 +1447,58 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "serde", + "strsim", + "syn 2.0.98", +] + [[package]] name = "darling_macro" version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ - "darling_core", + "darling_core 0.20.11", "quote", "syn 2.0.98", ] +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core 0.21.3", + "quote", + "syn 2.0.98", +] + +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", + "serde", +] + [[package]] name = "der" version = "0.7.9" @@ -1463,20 +1533,9 @@ dependencies = [ [[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.98", -] - -[[package]] -name = "derive_arbitrary" -version = "1.4.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" +checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", @@ -1672,17 +1731,6 @@ dependencies = [ "syn 2.0.98", ] -[[package]] -name = "enumn" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.98", -] - [[package]] name = "equivalent" version = "1.0.2" @@ -1749,6 +1797,26 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "fixed-map" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86ed19add84e8cb9e8cc5f7074de0324247149ffef0b851e215fb0edc50c229b" +dependencies = [ + "fixed-map-derive", +] + +[[package]] +name = "fixed-map-derive" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dc7a9cb3326bafb80642c5ce99b39a2c0702d4bfa8ee8a3e773791a6cbe2407" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1757,9 +1825,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foldhash" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "foreign-types" @@ -1860,6 +1928,12 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + [[package]] name = "hashbrown" version = "0.15.2" @@ -1867,8 +1941,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ "foldhash", "serde", + "serde_core", ] [[package]] @@ -2047,6 +2130,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.14" @@ -2120,9 +2212,9 @@ dependencies = [ [[package]] name = "keccak-asm" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" +checksum = "b646a74e746cd25045aa0fd42f4f7f78aa6d119380182c7e63a5593c4ab8df6f" dependencies = [ "digest 0.10.7", "sha3-asm", @@ -2173,6 +2265,15 @@ version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + [[package]] name = "log" version = "0.4.26" @@ -2223,7 +2324,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "block", "core-graphics-types", "foreign-types", @@ -2240,9 +2341,9 @@ checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" [[package]] name = "modular-bitfield" -version = "0.11.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" +checksum = "2956e537fc68236d2aa048f55704f231cc93f1c4de42fe1ecb5bd7938061fc4a" dependencies = [ "modular-bitfield-impl", "static_assertions", @@ -2250,13 +2351,13 @@ dependencies = [ [[package]] name = "modular-bitfield-impl" -version = "0.11.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" +checksum = "59b43b4fd69e3437618106f7754f34021b831a514f9e1a98ae863cabcd8d8dad" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.98", ] [[package]] @@ -2389,13 +2490,14 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.3.4" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8983bb634df7248924ee0c4c3a749609b5abcb082c28fffe3254b3eb3602b307" +checksum = "0d49ff0c0d00d4a502b39df9af3a525e1efeb14b9dabb5bb83335284c1309210" dependencies = [ "alloy-rlp", - "const-hex", + "cfg-if", "proptest", + "ruint", "serde", "smallvec", ] @@ -2421,9 +2523,9 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.12.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91764ebe0eddf6e3cfff41650332ff4e01defe372386027703f2e7e334734a05" +checksum = "736381a95471d23e267263cfcee9e1d96d30b9754a94a2819148f83379de8a86" dependencies = [ "alloy-consensus", "alloy-eips", @@ -2474,6 +2576,19 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link 0.2.1", +] + [[package]] name = "paste" version = "1.0.15" @@ -2502,9 +2617,9 @@ dependencies = [ [[package]] name = "phf" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" dependencies = [ "phf_macros", "phf_shared", @@ -2513,19 +2628,19 @@ dependencies = [ [[package]] name = "phf_generator" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" dependencies = [ + "fastrand", "phf_shared", - "rand 0.8.5", ] [[package]] name = "phf_macros" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" dependencies = [ "phf_generator", "phf_shared", @@ -2536,9 +2651,9 @@ dependencies = [ [[package]] name = "phf_shared" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" dependencies = [ "siphasher", ] @@ -2652,9 +2767,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -2667,7 +2782,7 @@ checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.8.0", + "bitflags 2.10.0", "lazy_static", "num-traits", "rand 0.8.5", @@ -2696,7 +2811,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.13.0", + "itertools 0.14.0", "proc-macro2", "quote", "syn 2.0.98", @@ -2749,6 +2864,7 @@ checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", + "serde", ] [[package]] @@ -2787,6 +2903,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ "getrandom 0.3.2", + "serde", ] [[package]] @@ -2798,6 +2915,24 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rapidhash" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84816e4c99c467e92cf984ee6328caa976dfecd33a673544489d79ca2caaefe5" +dependencies = [ + "rustversion", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.10.0", +] + [[package]] name = "regex-syntax" version = "0.8.5" @@ -2806,8 +2941,8 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reth-codecs" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "alloy-consensus", "alloy-eips", @@ -2824,10 +2959,9 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "convert_case", "proc-macro2", "quote", "syn 2.0.98", @@ -2835,8 +2969,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -2847,28 +2981,24 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", - "derive_more 2.0.1", - "rand 0.8.5", + "alloy-serde", "reth-codecs", "reth-primitives-traits", - "revm-context", - "secp256k1 0.30.0", "serde", ] [[package]] name = "reth-primitives" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "alloy-consensus", "once_cell", @@ -2880,19 +3010,20 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", "alloy-primitives", "alloy-rlp", + "alloy-rpc-types-eth", "alloy-trie", "auto_impl", "bytes", + "dashmap", "derive_more 2.0.1", - "k256", "once_cell", "op-alloy-consensus", "reth-codecs", @@ -2904,30 +3035,57 @@ dependencies = [ "thiserror 2.0.12", ] +[[package]] +name = "reth-stages-types" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" +dependencies = [ + "alloy-primitives", + "reth-trie-common", +] + [[package]] name = "reth-static-file-types" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "alloy-primitives", "derive_more 2.0.1", + "fixed-map", + "reth-stages-types", "serde", "strum", ] +[[package]] +name = "reth-trie-common" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" +dependencies = [ + "alloy-consensus", + "alloy-primitives", + "alloy-rlp", + "alloy-trie", + "derive_more 2.0.1", + "itertools 0.14.0", + "nybbles", + "reth-primitives-traits", + "revm-database", +] + [[package]] name = "reth-zstd-compressors" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "21.0.0" +version = "34.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7db41167e2a1fddb734984cc26e4bf0a0cb298829d1c488b4de37bda764e1d47" +checksum = "c2aabdebaa535b3575231a88d72b642897ae8106cf6b0d12eafc6bfdf50abfc7" dependencies = [ "revm-bytecode", "revm-context", @@ -2944,9 +3102,9 @@ dependencies = [ [[package]] name = "revm-bytecode" -version = "2.0.0" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc3ae92c0c071f4a5ac3ef398fed50bacf8ebd5495d2afded34c60874afa7a3" +checksum = "74d1e5c1eaa44d39d537f668bc5c3409dc01e5c8be954da6c83370bbdf006457" dependencies = [ "bitvec", "phf", @@ -2956,10 +3114,11 @@ dependencies = [ [[package]] name = "revm-context" -version = "2.0.0" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5fd5d8a35cf33d2494e32a966ebee6bc23dea9b1fbc3477c5b58e42ddceaa5b" +checksum = "892ff3e6a566cf8d72ffb627fdced3becebbd9ba64089c25975b9b028af326a5" dependencies = [ + "bitvec", "cfg-if", "derive-where", "revm-bytecode", @@ -2972,13 +3131,14 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "2.0.0" +version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8253163a7868c86b88dc76a193724b8c6252bf260dc1cf11d814a5f4fa7a804" +checksum = "57f61cc6d23678c4840af895b19f8acfbbd546142ec8028b6526c53cc1c16c98" dependencies = [ "alloy-eip2930", "alloy-eip7702", "auto_impl", + "either", "revm-database-interface", "revm-primitives", "revm-state", @@ -2987,12 +3147,11 @@ dependencies = [ [[package]] name = "revm-database" -version = "2.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb40baf1ec91bfda68a37a9be72c5d089e2b662532689209cb2e0febe1eb64c" +checksum = "529528d0b05fe646be86223032c3e77aa8b05caa2a35447d538c55965956a511" dependencies = [ "alloy-eips", - "auto_impl", "revm-bytecode", "revm-database-interface", "revm-primitives", @@ -3002,23 +3161,26 @@ dependencies = [ [[package]] name = "revm-database-interface" -version = "2.0.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c541612673da04df1ab3a6a56127851e93a5d05539eb915a6c541d24e7c5902" +checksum = "b7bf93ac5b91347c057610c0d96e923db8c62807e03f036762d03e981feddc1d" dependencies = [ "auto_impl", + "either", "revm-primitives", "revm-state", "serde", + "thiserror 2.0.12", ] [[package]] name = "revm-handler" -version = "2.0.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f55164c03c05eace53cf7f64df5dff14c7769956e6f2b9e4acb88301dc7537c" +checksum = "0cd0e43e815a85eded249df886c4badec869195e70cdd808a13cfca2794622d2" dependencies = [ "auto_impl", + "derive-where", "revm-bytecode", "revm-context", "revm-context-interface", @@ -3032,11 +3194,12 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "2.0.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f67d36e1abebe20b891b7ef57de3af2addfbc2d9cd4ea3f49ade8a67d0e79d" +checksum = "4f3ccad59db91ef93696536a0dbaf2f6f17cfe20d4d8843ae118edb7e97947ef" dependencies = [ "auto_impl", + "either", "revm-context", "revm-database-interface", "revm-handler", @@ -3048,32 +3211,33 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "17.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd45ea4fdee2c3f430df4ddb4936dc85c49dc5a7ce9838a8b9ad6861ab153c6" +checksum = "11406408597bc249392d39295831c4b641b3a6f5c471a7c41104a7a1e3564c07" dependencies = [ "revm-bytecode", "revm-context-interface", "revm-primitives", + "revm-state", "serde", ] [[package]] name = "revm-precompile" -version = "18.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac48995560dd5ea15e3788106bdf8893186d945bd40d674fb63aa351cf2e58fa" +checksum = "50c1285c848d240678bf69cb0f6179ff5a4aee6fc8e921d89708087197a0aff3" dependencies = [ "ark-bls12-381", "ark-bn254", "ark-ec", "ark-ff 0.5.0", "ark-serialize 0.5.0", + "arrayref", "aurora-engine-modexp", "blst", "cfg-if", "k256", - "once_cell", "p256", "revm-primitives", "ripemd", @@ -3083,22 +3247,24 @@ dependencies = [ [[package]] name = "revm-primitives" -version = "17.0.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb9b235b3c03299a531717ae4f9ee6bdb4c1a1755c9f8ce751298d1c99d95fc3" +checksum = "ba580c56a8ec824a64f8a1683577876c2e1dbe5247044199e9b881421ad5dcf9" dependencies = [ "alloy-primitives", - "enumn", + "num_enum", + "once_cell", "serde", ] [[package]] name = "revm-state" -version = "2.0.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfdff0435bd0cb9e1f9dcc44eaea581973b0550cb897ce368d43259922b1c241" +checksum = "311720d4f0f239b041375e7ddafdbd20032a33b7bae718562ea188e188ed9fd3" dependencies = [ - "bitflags 2.8.0", + "alloy-eip7928", + "bitflags 2.10.0", "revm-bytecode", "revm-primitives", "serde", @@ -3125,9 +3291,9 @@ dependencies = [ [[package]] name = "risc0-bigint2" -version = "1.4.10" +version = "1.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e916aa385e61e31935d7964aaeaec1fae9da617af6415d6363864147f430ebff" +checksum = "af3997ed5c8a35afd2fa39055f1b841e19571379e55ee634a06c41d7b924052d" dependencies = [ "include_bytes_aligned", "stability", @@ -3360,13 +3526,14 @@ dependencies = [ [[package]] name = "ruint" -version = "1.16.0" +version = "1.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" +checksum = "c141e807189ad38a07276942c6623032d3753c8859c146104ac2e4d68865945a" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", + "ark-ff 0.5.0", "borsh", "bytes", "fastrlp 0.3.1", @@ -3381,7 +3548,7 @@ dependencies = [ "rand 0.9.2", "rlp", "ruint-macro", - "serde", + "serde_core", "valuable", "zeroize", ] @@ -3428,7 +3595,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys", @@ -3483,6 +3650,12 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "sec1" version = "0.7.3" @@ -3560,18 +3733,28 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.218" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.218" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -3625,7 +3808,7 @@ version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ - "darling", + "darling 0.20.11", "proc-macro2", "quote", "syn 2.0.98", @@ -3643,8 +3826,8 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" -source = "git+https://github.com/risc0/RustCrypto-hashes?tag=sha2-v0.10.8-risczero.0#244dc3b08788f7a4ccce14c66896ae3b4f24c166" +version = "0.10.9" +source = "git+https://github.com/risc0/RustCrypto-hashes?tag=sha2-v0.10.9-risczero.0#8631fabdea7bdffa97b11868e04e73491d8e5bcf" dependencies = [ "cfg-if", "cpufeatures", @@ -3673,9 +3856,9 @@ dependencies = [ [[package]] name = "sha3-asm" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" +checksum = "b31139435f327c93c6038ed350ae4588e2c70a13d50599509fee6349967ba35a" dependencies = [ "cc", "cfg-if", @@ -3970,9 +4153,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4e6eed052a117409a1a744c8bda9c3ea6934597cf7419f791cb7d590871c4c" +checksum = "53f425ae0b12e2f5ae65542e00898d500d4d318b4baf09f40fd0d410454e9947" dependencies = [ "paste", "proc-macro2", @@ -4319,7 +4502,7 @@ checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" dependencies = [ "windows-implement", "windows-interface", - "windows-link", + "windows-link 0.1.1", "windows-result", "windows-strings", ] @@ -4352,13 +4535,19 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + [[package]] name = "windows-result" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" dependencies = [ - "windows-link", + "windows-link 0.1.1", ] [[package]] @@ -4367,7 +4556,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" dependencies = [ - "windows-link", + "windows-link 0.1.1", ] [[package]] @@ -4458,7 +4647,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", ] [[package]] diff --git a/guests/risc0/batch-proof/bitcoin/Cargo.toml b/guests/risc0/batch-proof/bitcoin/Cargo.toml index 352112bcb4..96f899ea59 100644 --- a/guests/risc0/batch-proof/bitcoin/Cargo.toml +++ b/guests/risc0/batch-proof/bitcoin/Cargo.toml @@ -11,9 +11,10 @@ resolver = "2" # automatically added by the unstable feature # but we tend to forget to update this while updating risc0 # so putting here explicitly -risc0-bigint2 = "1.4.10" +risc0-bigint2 = "1.4.11" risc0-zkvm = { version = "3.0.3", default-features = false, features = ["unstable"] } risc0-zkvm-platform = { version = "2.2.0", features = ["heap-embedded-alloc"] } +substrate-bn = { git = "https://github.com/risc0/paritytech-bn", tag = "v0.6.0-risczero.0" } anyhow = "1.0.95" bitcoin-da = { path = "../../../../crates/bitcoin-da", default-features = false } @@ -31,14 +32,14 @@ sov-state = { path = "../../../../crates/sovereign-sdk/module-system/sov-state" testing = ["citrea-primitives/testing", "risc0-zkvm-platform/sys-getenv"] [patch.crates-io] -sha2 = { git = "https://github.com/risc0/RustCrypto-hashes", tag = "sha2-v0.10.8-risczero.0" } +sha2 = { git = "https://github.com/risc0/RustCrypto-hashes", tag = "sha2-v0.10.9-risczero.0" } crypto-bigint = { git = "https://github.com/risc0/RustCrypto-crypto-bigint", tag = "v0.5.5-risczero.0" } secp256k1 = { git = "https://github.com/Sovereign-Labs/rust-secp256k1.git", branch = "risc0-compatible-0-29-0" } tiny-keccak = { git = "https://github.com/risc0/tiny-keccak", tag = "tiny-keccak/v2.0.2-risczero.0" } k256 = { git = "https://github.com/risc0/RustCrypto-elliptic-curves", tag = "k256/v0.13.4-risczero.1" } p256 = { git = "https://github.com/risc0/RustCrypto-elliptic-curves", tag = "p256/v0.13.2-risczero.1" } substrate-bn = { git = "https://github.com/risc0/paritytech-bn", tag = "v0.6.0-risczero.0" } -blst = { git = "https://github.com/risc0/blst", tag = "v0.3.14-risczero.2" } +blst = { git = "https://github.com/risc0/blst", tag = "v0.3.16-risczero.0" } [profile.release] debug = 0 diff --git a/guests/risc0/batch-proof/mock/Cargo.lock b/guests/risc0/batch-proof/mock/Cargo.lock index baa30e5fa0..a9f3b12cd7 100644 --- a/guests/risc0/batch-proof/mock/Cargo.lock +++ b/guests/risc0/batch-proof/mock/Cargo.lock @@ -37,9 +37,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.1.69" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28e2652684758b0d9b389d248b209ed9fd9989ef489a550265fe4bb8454fe7eb" +checksum = "90f374d3c6d729268bbe2d0e0ff992bb97898b2df756691a62ee1d5f0506bc39" dependencies = [ "alloy-primitives", "num_enum", @@ -48,32 +48,36 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.13.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27d301f5bcfd37e3aac727c360d8b50c33ddff9169ce0370198dedda36a9927d" +checksum = "b0c0dc44157867da82c469c13186015b86abef209bf0e41625e4b68bac61d728" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", "alloy-serde", "alloy-trie", + "alloy-tx-macros", "auto_impl", + "borsh", "c-kzg", "derive_more 2.0.1", "either", "k256", "once_cell", "rand 0.8.5", + "secp256k1", "serde", + "serde_json", "serde_with", "thiserror 2.0.12", ] [[package]] name = "alloy-consensus-any" -version = "0.13.0" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f4f97a85a45965e0e4f9f5b94bbafaa3e4ee6868bdbcf2e4a9acb4b358038fe" +checksum = "1a0701b0eda8051a2398591113e7862f807ccdd3315d0b441f06c2a0865a379b" dependencies = [ "alloy-consensus", "alloy-eips", @@ -85,9 +89,9 @@ dependencies = [ [[package]] name = "alloy-eip2124" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "675264c957689f0fd75f5993a73123c2cc3b5c235a38f5b9037fe6c826bfb2c0" +checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -98,84 +102,87 @@ dependencies = [ [[package]] name = "alloy-eip2930" -version = "0.1.0" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" dependencies = [ "alloy-primitives", "alloy-rlp", + "borsh", "serde", ] [[package]] name = "alloy-eip7702" -version = "0.5.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b15b13d38b366d01e818fe8e710d4d702ef7499eacd44926a06171dd9585d0c" +checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" dependencies = [ "alloy-primitives", "alloy-rlp", + "borsh", "k256", "serde", "serde_with", "thiserror 2.0.12", ] +[[package]] +name = "alloy-eip7928" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3231de68d5d6e75332b7489cfcc7f4dfabeba94d990a10e4b923af0e6623540" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "borsh", + "serde", +] + [[package]] name = "alloy-eips" -version = "0.13.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10b11c382ca8075128d1ae6822b60921cf484c911d9a5831797a01218f98125f" +checksum = "b9f7ef09f21bd1e9cb8a686f168cb4a206646804567f0889eadb8dcc4c9288c8" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", + "alloy-eip7928", "alloy-primitives", "alloy-rlp", "alloy-serde", "auto_impl", + "borsh", "c-kzg", "derive_more 2.0.1", "either", "serde", + "serde_with", "sha2", -] - -[[package]] -name = "alloy-evm" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e158fd08c4be4fafe8c9fb7cb661f3b9585038446df0cd20b3d99e71f4166748" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-hardforks", - "alloy-primitives", - "alloy-sol-types", - "auto_impl", - "derive_more 2.0.1", - "revm", "thiserror 2.0.12", ] [[package]] name = "alloy-genesis" -version = "0.13.0" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd9e75c5dd40319ebbe807ebe9dfb10c24e4a70d9c7d638e62921d8dd093c8b" +checksum = "55d9d1aba3f914f0e8db9e4616ae37f3d811426d95bdccf44e47d0605ab202f6" dependencies = [ "alloy-eips", "alloy-primitives", "alloy-serde", "alloy-trie", + "borsh", "serde", + "serde_with", ] [[package]] name = "alloy-hardforks" -version = "0.1.3" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3a420b513e00937442db75c5c9c8287fd0615a1f60cc3335d7246c870440ed" +checksum = "83ba208044232d14d4adbfa77e57d6329f51bc1acc21f5667bb7db72d88a0831" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -186,20 +193,21 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4584e3641181ff073e9d5bec5b3b8f78f9749d9fb108a1cfbc4399a4a139c72a" +checksum = "e9dbe713da0c737d9e5e387b0ba790eb98b14dd207fe53eef50e19a5a8ec3dac" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", "serde", + "serde_json", ] [[package]] name = "alloy-network-primitives" -version = "0.13.0" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f736e1d1eb1b770dbd32919bdf46d4dcd4617f2eed07947dfb32649962baba" +checksum = "636c8051da58802e757b76c3b65af610b95799f72423dc955737dec73de234fd" dependencies = [ "alloy-consensus", "alloy-eips", @@ -210,9 +218,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777d58b30eb9a4db0e5f59bc30e8c2caef877fee7dc8734cf242a51a60f22e05" +checksum = "de3b431b4e72cd8bd0ec7a50b4be18e73dab74de0dba180eef171055e5d5926e" dependencies = [ "alloy-rlp", "bytes", @@ -220,14 +228,15 @@ dependencies = [ "const-hex", "derive_more 2.0.1", "foldhash", - "hashbrown 0.15.2", + "hashbrown 0.16.1", "indexmap 2.7.1", "itoa", "k256", "keccak-asm", "paste", "proptest", - "rand 0.8.5", + "rand 0.9.2", + "rapidhash", "ruint", "rustc-hash", "serde", @@ -237,9 +246,9 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6c1d995bff8d011f7cd6c81820d51825e6e06d6db73914c1630ecf544d83d6" +checksum = "e93e50f64a77ad9c5470bf2ad0ca02f228da70c792a8f06634801e202579f35e" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -248,9 +257,9 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a40e1ef334153322fd878d07e86af7a529bcb86b2439525920a88eba87bcf943" +checksum = "ce8849c74c9ca0f5a03da1c865e3eb6f768df816e67dd3721a398a8a7e398011" dependencies = [ "proc-macro2", "quote", @@ -259,9 +268,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "0.13.0" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8b6d55bdaa0c4a08650d4b32f174494cbade56adf6f2fcfa2a4f3490cb5511" +checksum = "010e101dbebe0c678248907a2545b574a87d078d82c2f6f5d0e8e7c9a6149a10" dependencies = [ "alloy-consensus", "alloy-consensus-any", @@ -271,7 +280,7 @@ dependencies = [ "alloy-rlp", "alloy-serde", "alloy-sol-types", - "itertools 0.13.0", + "itertools 0.14.0", "serde", "serde_json", "thiserror 2.0.12", @@ -279,9 +288,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.13.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1824791912f468a481dedc1db50feef3e85a078f6d743a62db2ee9c2ca674882" +checksum = "e2ce1e0dbf7720eee747700e300c99aac01b1a95bb93f493a01e78ee28bb1a37" dependencies = [ "alloy-primitives", "serde", @@ -290,9 +299,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e68b32b6fa0d09bb74b4cefe35ccc8269d711c26629bc7cd98a47eeb12fe353f" +checksum = "ab81bab693da9bb79f7a95b64b394718259fdd7e41dceeced4cad57cb71c4f6a" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -304,9 +313,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2afe6879ac373e58fd53581636f2cce843998ae0b058ebe1e4f649195e2bd23c" +checksum = "489f1620bb7e2483fb5819ed01ab6edc1d2f93939dce35a5695085a1afd1d699" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", @@ -316,16 +325,16 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", + "sha3", "syn 2.0.98", "syn-solidity", - "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ba01aee235a8c699d07e5be97ba215607564e71be72f433665329bec307d28" +checksum = "56cef806ad22d4392c5fc83cf8f2089f988eb99c7067b4e0c6f1971fc1cca318" dependencies = [ "alloy-json-abi", "const-hex", @@ -341,9 +350,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c13fc168b97411e04465f03e632f31ef94cad1c7c8951bf799237fd7870d535" +checksum = "a6df77fea9d6a2a75c0ef8d2acbdfd92286cc599983d3175ccdc170d3433d249" dependencies = [ "serde", "winnow", @@ -351,32 +360,44 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e960c4b52508ef2ae1e37cae5058e905e9ae099b107900067a503f8c454036f" +checksum = "64612d29379782a5dde6f4b6570d9c756d734d760c0c94c254d361e678a6591f" dependencies = [ "alloy-json-abi", "alloy-primitives", "alloy-sol-macro", - "const-hex", ] [[package]] name = "alloy-trie" -version = "0.7.9" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a94854e420f07e962f7807485856cde359ab99ab6413883e15235ad996e8b" +checksum = "4d7fd448ab0a017de542de1dcca7a58e7019fe0e7a34ed3f9543ebddf6aceffa" dependencies = [ "alloy-primitives", "alloy-rlp", "arrayvec", - "derive_more 1.0.0", + "derive_more 2.0.1", "nybbles", "serde", "smallvec", + "thiserror 2.0.12", "tracing", ] +[[package]] +name = "alloy-tx-macros" +version = "1.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fa0c53e8c1e1ef4d01066b01c737fb62fc9397ab52c6e7bb5669f97d281b9bc" +dependencies = [ + "darling 0.21.3", + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "android-tzdata" version = "0.1.1" @@ -398,15 +419,6 @@ version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4" -[[package]] -name = "arbitrary" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" -dependencies = [ - "derive_arbitrary", -] - [[package]] name = "ark-bls12-381" version = "0.5.0" @@ -795,9 +807,9 @@ dependencies = [ [[package]] name = "auto_impl" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12882f59de5360c748c4cbf569a042d5fb0eb515f7bea9c1f470b47f6ffbd73" +checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", @@ -857,6 +869,7 @@ dependencies = [ "sov-modules-stf-blueprint", "sov-rollup-interface", "sov-state", + "substrate-bn", ] [[package]] @@ -923,11 +936,11 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.8.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -982,10 +995,11 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.14" -source = "git+https://github.com/risc0/blst?tag=v0.3.14-risczero.2#ca5d6042fffe3cf599e4f10a7d9a6a63693b6d15" +version = "0.3.16" +source = "git+https://github.com/risc0/blst?tag=v0.3.16-risczero.0#7d1fc3e6d8cf0d52a291f52455233bf8d6432ed2" dependencies = [ "cc", + "getrandom 0.2.15", "glob", "risc0-bigint2", "threadpool", @@ -1086,11 +1100,10 @@ dependencies = [ [[package]] name = "c-kzg" -version = "2.1.0" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7e3c397401eb76228c89561cf22f85f41c95aa799ee9d860de3ea1cbc728fc" +checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687" dependencies = [ - "arbitrary", "blst", "cc", "glob", @@ -1133,7 +1146,7 @@ dependencies = [ "iana-time-zone", "num-traits", "serde", - "windows-link", + "windows-link 0.1.1", ] [[package]] @@ -1305,6 +1318,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + [[package]] name = "crunchy" version = "0.2.3" @@ -1339,8 +1358,18 @@ version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.20.11", + "darling_macro 0.20.11", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core 0.21.3", + "darling_macro 0.21.3", ] [[package]] @@ -1357,17 +1386,58 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "serde", + "strsim", + "syn 2.0.98", +] + [[package]] name = "darling_macro" version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ - "darling_core", + "darling_core 0.20.11", "quote", "syn 2.0.98", ] +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core 0.21.3", + "quote", + "syn 2.0.98", +] + +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", + "serde", +] + [[package]] name = "der" version = "0.7.9" @@ -1402,20 +1472,9 @@ dependencies = [ [[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.98", -] - -[[package]] -name = "derive_arbitrary" -version = "1.4.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" +checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", @@ -1611,17 +1670,6 @@ dependencies = [ "syn 2.0.98", ] -[[package]] -name = "enumn" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.98", -] - [[package]] name = "equivalent" version = "1.0.2" @@ -1688,6 +1736,26 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "fixed-map" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86ed19add84e8cb9e8cc5f7074de0324247149ffef0b851e215fb0edc50c229b" +dependencies = [ + "fixed-map-derive", +] + +[[package]] +name = "fixed-map-derive" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dc7a9cb3326bafb80642c5ce99b39a2c0702d4bfa8ee8a3e773791a6cbe2407" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1696,9 +1764,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foldhash" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "foreign-types" @@ -1799,6 +1867,12 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + [[package]] name = "hashbrown" version = "0.15.2" @@ -1806,8 +1880,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ "foldhash", "serde", + "serde_core", ] [[package]] @@ -1980,6 +2063,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.14" @@ -2053,9 +2145,9 @@ dependencies = [ [[package]] name = "keccak-asm" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" +checksum = "b646a74e746cd25045aa0fd42f4f7f78aa6d119380182c7e63a5593c4ab8df6f" dependencies = [ "digest 0.10.7", "sha3-asm", @@ -2106,6 +2198,15 @@ version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + [[package]] name = "log" version = "0.4.26" @@ -2156,7 +2257,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "block", "core-graphics-types", "foreign-types", @@ -2173,9 +2274,9 @@ checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" [[package]] name = "modular-bitfield" -version = "0.11.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" +checksum = "2956e537fc68236d2aa048f55704f231cc93f1c4de42fe1ecb5bd7938061fc4a" dependencies = [ "modular-bitfield-impl", "static_assertions", @@ -2183,13 +2284,13 @@ dependencies = [ [[package]] name = "modular-bitfield-impl" -version = "0.11.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" +checksum = "59b43b4fd69e3437618106f7754f34021b831a514f9e1a98ae863cabcd8d8dad" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.98", ] [[package]] @@ -2322,13 +2423,14 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.3.4" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8983bb634df7248924ee0c4c3a749609b5abcb082c28fffe3254b3eb3602b307" +checksum = "0d49ff0c0d00d4a502b39df9af3a525e1efeb14b9dabb5bb83335284c1309210" dependencies = [ "alloy-rlp", - "const-hex", + "cfg-if", "proptest", + "ruint", "serde", "smallvec", ] @@ -2354,9 +2456,9 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.12.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91764ebe0eddf6e3cfff41650332ff4e01defe372386027703f2e7e334734a05" +checksum = "736381a95471d23e267263cfcee9e1d96d30b9754a94a2819148f83379de8a86" dependencies = [ "alloy-consensus", "alloy-eips", @@ -2407,6 +2509,19 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link 0.2.1", +] + [[package]] name = "paste" version = "1.0.15" @@ -2435,9 +2550,9 @@ dependencies = [ [[package]] name = "phf" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" dependencies = [ "phf_macros", "phf_shared", @@ -2446,19 +2561,19 @@ dependencies = [ [[package]] name = "phf_generator" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" dependencies = [ + "fastrand", "phf_shared", - "rand 0.8.5", ] [[package]] name = "phf_macros" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" dependencies = [ "phf_generator", "phf_shared", @@ -2469,9 +2584,9 @@ dependencies = [ [[package]] name = "phf_shared" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" dependencies = [ "siphasher", ] @@ -2585,9 +2700,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -2600,7 +2715,7 @@ checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.8.0", + "bitflags 2.10.0", "lazy_static", "num-traits", "rand 0.8.5", @@ -2629,7 +2744,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.13.0", + "itertools 0.14.0", "proc-macro2", "quote", "syn 2.0.98", @@ -2682,6 +2797,7 @@ checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", + "serde", ] [[package]] @@ -2720,6 +2836,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ "getrandom 0.3.2", + "serde", ] [[package]] @@ -2731,6 +2848,24 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rapidhash" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84816e4c99c467e92cf984ee6328caa976dfecd33a673544489d79ca2caaefe5" +dependencies = [ + "rustversion", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.10.0", +] + [[package]] name = "regex-syntax" version = "0.8.5" @@ -2739,8 +2874,8 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reth-codecs" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "alloy-consensus", "alloy-eips", @@ -2757,10 +2892,9 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ - "convert_case", "proc-macro2", "quote", "syn 2.0.98", @@ -2768,8 +2902,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -2780,28 +2914,24 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-evm", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", - "derive_more 2.0.1", - "rand 0.8.5", + "alloy-serde", "reth-codecs", "reth-primitives-traits", - "revm-context", - "secp256k1", "serde", ] [[package]] name = "reth-primitives" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "alloy-consensus", "once_cell", @@ -2813,19 +2943,20 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", "alloy-primitives", "alloy-rlp", + "alloy-rpc-types-eth", "alloy-trie", "auto_impl", "bytes", + "dashmap", "derive_more 2.0.1", - "k256", "once_cell", "op-alloy-consensus", "reth-codecs", @@ -2837,30 +2968,57 @@ dependencies = [ "thiserror 2.0.12", ] +[[package]] +name = "reth-stages-types" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" +dependencies = [ + "alloy-primitives", + "reth-trie-common", +] + [[package]] name = "reth-static-file-types" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "alloy-primitives", "derive_more 2.0.1", + "fixed-map", + "reth-stages-types", "serde", "strum", ] +[[package]] +name = "reth-trie-common" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" +dependencies = [ + "alloy-consensus", + "alloy-primitives", + "alloy-rlp", + "alloy-trie", + "derive_more 2.0.1", + "itertools 0.14.0", + "nybbles", + "reth-primitives-traits", + "revm-database", +] + [[package]] name = "reth-zstd-compressors" -version = "1.3.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.7#ed7da87da4de340a437bf46f39a7e1397ac82065" +version = "1.11.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.11.0#564ffa586845fa4a8bb066f0c7b015ff36b26c08" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "21.0.0" +version = "34.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7db41167e2a1fddb734984cc26e4bf0a0cb298829d1c488b4de37bda764e1d47" +checksum = "c2aabdebaa535b3575231a88d72b642897ae8106cf6b0d12eafc6bfdf50abfc7" dependencies = [ "revm-bytecode", "revm-context", @@ -2877,9 +3035,9 @@ dependencies = [ [[package]] name = "revm-bytecode" -version = "2.0.0" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc3ae92c0c071f4a5ac3ef398fed50bacf8ebd5495d2afded34c60874afa7a3" +checksum = "74d1e5c1eaa44d39d537f668bc5c3409dc01e5c8be954da6c83370bbdf006457" dependencies = [ "bitvec", "phf", @@ -2889,10 +3047,11 @@ dependencies = [ [[package]] name = "revm-context" -version = "2.0.0" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5fd5d8a35cf33d2494e32a966ebee6bc23dea9b1fbc3477c5b58e42ddceaa5b" +checksum = "892ff3e6a566cf8d72ffb627fdced3becebbd9ba64089c25975b9b028af326a5" dependencies = [ + "bitvec", "cfg-if", "derive-where", "revm-bytecode", @@ -2905,13 +3064,14 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "2.0.0" +version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8253163a7868c86b88dc76a193724b8c6252bf260dc1cf11d814a5f4fa7a804" +checksum = "57f61cc6d23678c4840af895b19f8acfbbd546142ec8028b6526c53cc1c16c98" dependencies = [ "alloy-eip2930", "alloy-eip7702", "auto_impl", + "either", "revm-database-interface", "revm-primitives", "revm-state", @@ -2920,12 +3080,11 @@ dependencies = [ [[package]] name = "revm-database" -version = "2.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb40baf1ec91bfda68a37a9be72c5d089e2b662532689209cb2e0febe1eb64c" +checksum = "529528d0b05fe646be86223032c3e77aa8b05caa2a35447d538c55965956a511" dependencies = [ "alloy-eips", - "auto_impl", "revm-bytecode", "revm-database-interface", "revm-primitives", @@ -2935,23 +3094,26 @@ dependencies = [ [[package]] name = "revm-database-interface" -version = "2.0.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c541612673da04df1ab3a6a56127851e93a5d05539eb915a6c541d24e7c5902" +checksum = "b7bf93ac5b91347c057610c0d96e923db8c62807e03f036762d03e981feddc1d" dependencies = [ "auto_impl", + "either", "revm-primitives", "revm-state", "serde", + "thiserror 2.0.12", ] [[package]] name = "revm-handler" -version = "2.0.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f55164c03c05eace53cf7f64df5dff14c7769956e6f2b9e4acb88301dc7537c" +checksum = "0cd0e43e815a85eded249df886c4badec869195e70cdd808a13cfca2794622d2" dependencies = [ "auto_impl", + "derive-where", "revm-bytecode", "revm-context", "revm-context-interface", @@ -2965,11 +3127,12 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "2.0.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f67d36e1abebe20b891b7ef57de3af2addfbc2d9cd4ea3f49ade8a67d0e79d" +checksum = "4f3ccad59db91ef93696536a0dbaf2f6f17cfe20d4d8843ae118edb7e97947ef" dependencies = [ "auto_impl", + "either", "revm-context", "revm-database-interface", "revm-handler", @@ -2981,32 +3144,33 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "17.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd45ea4fdee2c3f430df4ddb4936dc85c49dc5a7ce9838a8b9ad6861ab153c6" +checksum = "11406408597bc249392d39295831c4b641b3a6f5c471a7c41104a7a1e3564c07" dependencies = [ "revm-bytecode", "revm-context-interface", "revm-primitives", + "revm-state", "serde", ] [[package]] name = "revm-precompile" -version = "18.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac48995560dd5ea15e3788106bdf8893186d945bd40d674fb63aa351cf2e58fa" +checksum = "50c1285c848d240678bf69cb0f6179ff5a4aee6fc8e921d89708087197a0aff3" dependencies = [ "ark-bls12-381", "ark-bn254", "ark-ec", "ark-ff 0.5.0", "ark-serialize 0.5.0", + "arrayref", "aurora-engine-modexp", "blst", "cfg-if", "k256", - "once_cell", "p256", "revm-primitives", "ripemd", @@ -3016,22 +3180,24 @@ dependencies = [ [[package]] name = "revm-primitives" -version = "17.0.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb9b235b3c03299a531717ae4f9ee6bdb4c1a1755c9f8ce751298d1c99d95fc3" +checksum = "ba580c56a8ec824a64f8a1683577876c2e1dbe5247044199e9b881421ad5dcf9" dependencies = [ "alloy-primitives", - "enumn", + "num_enum", + "once_cell", "serde", ] [[package]] name = "revm-state" -version = "2.0.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfdff0435bd0cb9e1f9dcc44eaea581973b0550cb897ce368d43259922b1c241" +checksum = "311720d4f0f239b041375e7ddafdbd20032a33b7bae718562ea188e188ed9fd3" dependencies = [ - "bitflags 2.8.0", + "alloy-eip7928", + "bitflags 2.10.0", "revm-bytecode", "revm-primitives", "serde", @@ -3058,9 +3224,9 @@ dependencies = [ [[package]] name = "risc0-bigint2" -version = "1.4.10" +version = "1.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e916aa385e61e31935d7964aaeaec1fae9da617af6415d6363864147f430ebff" +checksum = "af3997ed5c8a35afd2fa39055f1b841e19571379e55ee634a06c41d7b924052d" dependencies = [ "include_bytes_aligned", "stability", @@ -3293,13 +3459,14 @@ dependencies = [ [[package]] name = "ruint" -version = "1.16.0" +version = "1.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" +checksum = "c141e807189ad38a07276942c6623032d3753c8859c146104ac2e4d68865945a" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", + "ark-ff 0.5.0", "borsh", "bytes", "fastrlp 0.3.1", @@ -3314,7 +3481,7 @@ dependencies = [ "rand 0.9.2", "rlp", "ruint-macro", - "serde", + "serde_core", "valuable", "zeroize", ] @@ -3361,7 +3528,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys", @@ -3416,6 +3583,12 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "sec1" version = "0.7.3" @@ -3481,18 +3654,28 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.218" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.218" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -3546,7 +3729,7 @@ version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ - "darling", + "darling 0.20.11", "proc-macro2", "quote", "syn 2.0.98", @@ -3564,8 +3747,8 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" -source = "git+https://github.com/risc0/RustCrypto-hashes?tag=sha2-v0.10.8-risczero.0#244dc3b08788f7a4ccce14c66896ae3b4f24c166" +version = "0.10.9" +source = "git+https://github.com/risc0/RustCrypto-hashes?tag=sha2-v0.10.9-risczero.0#8631fabdea7bdffa97b11868e04e73491d8e5bcf" dependencies = [ "cfg-if", "cpufeatures", @@ -3594,9 +3777,9 @@ dependencies = [ [[package]] name = "sha3-asm" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" +checksum = "b31139435f327c93c6038ed350ae4588e2c70a13d50599509fee6349967ba35a" dependencies = [ "cc", "cfg-if", @@ -3905,9 +4088,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4e6eed052a117409a1a744c8bda9c3ea6934597cf7419f791cb7d590871c4c" +checksum = "53f425ae0b12e2f5ae65542e00898d500d4d318b4baf09f40fd0d410454e9947" dependencies = [ "paste", "proc-macro2", @@ -4254,7 +4437,7 @@ checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" dependencies = [ "windows-implement", "windows-interface", - "windows-link", + "windows-link 0.1.1", "windows-result", "windows-strings", ] @@ -4287,13 +4470,19 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + [[package]] name = "windows-result" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" dependencies = [ - "windows-link", + "windows-link 0.1.1", ] [[package]] @@ -4302,7 +4491,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" dependencies = [ - "windows-link", + "windows-link 0.1.1", ] [[package]] @@ -4393,7 +4582,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", ] [[package]] diff --git a/guests/risc0/batch-proof/mock/Cargo.toml b/guests/risc0/batch-proof/mock/Cargo.toml index 26e5813626..5805f292bb 100644 --- a/guests/risc0/batch-proof/mock/Cargo.toml +++ b/guests/risc0/batch-proof/mock/Cargo.toml @@ -11,9 +11,10 @@ resolver = "2" # automatically added by the unstable feature # but we tend to forget to update this while updating risc0 # so putting here explicitly -risc0-bigint2 = "1.4.10" +risc0-bigint2 = "1.4.11" risc0-zkvm = { version = "3.0.3", default-features = false, features = ["unstable"] } risc0-zkvm-platform = { version = "2.2.0", features = ["heap-embedded-alloc"] } +substrate-bn = { git = "https://github.com/risc0/paritytech-bn", tag = "v0.6.0-risczero.0" } anyhow = "1.0.95" citrea-primitives = { path = "../../../../crates/primitives" } @@ -31,13 +32,13 @@ sov-state = { path = "../../../../crates/sovereign-sdk/module-system/sov-state" testing = ["citrea-primitives/testing", "risc0-zkvm-platform/sys-getenv"] [patch.crates-io] -sha2 = { git = "https://github.com/risc0/RustCrypto-hashes", tag = "sha2-v0.10.8-risczero.0" } +sha2 = { git = "https://github.com/risc0/RustCrypto-hashes", tag = "sha2-v0.10.9-risczero.0" } crypto-bigint = { git = "https://github.com/risc0/RustCrypto-crypto-bigint", tag = "v0.5.5-risczero.0" } tiny-keccak = { git = "https://github.com/risc0/tiny-keccak", tag = "tiny-keccak/v2.0.2-risczero.0" } k256 = { git = "https://github.com/risc0/RustCrypto-elliptic-curves", tag = "k256/v0.13.4-risczero.1" } p256 = { git = "https://github.com/risc0/RustCrypto-elliptic-curves", tag = "p256/v0.13.2-risczero.1" } substrate-bn = { git = "https://github.com/risc0/paritytech-bn", tag = "v0.6.0-risczero.0" } -blst = { git = "https://github.com/risc0/blst", tag = "v0.3.14-risczero.2" } +blst = { git = "https://github.com/risc0/blst", tag = "v0.3.16-risczero.0" } [profile.release] debug = 0 diff --git a/guests/risc0/light-client-proof/bitcoin/Cargo.lock b/guests/risc0/light-client-proof/bitcoin/Cargo.lock index 628af62c49..6fe237e1b7 100644 --- a/guests/risc0/light-client-proof/bitcoin/Cargo.lock +++ b/guests/risc0/light-client-proof/bitcoin/Cargo.lock @@ -37,9 +37,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-eip2124" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "675264c957689f0fd75f5993a73123c2cc3b5c235a38f5b9037fe6c826bfb2c0" +checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -49,9 +49,9 @@ dependencies = [ [[package]] name = "alloy-eip2930" -version = "0.1.0" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -59,50 +59,64 @@ dependencies = [ [[package]] name = "alloy-eip7702" -version = "0.5.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b15b13d38b366d01e818fe8e710d4d702ef7499eacd44926a06171dd9585d0c" +checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" dependencies = [ "alloy-primitives", "alloy-rlp", "thiserror 2.0.12", ] +[[package]] +name = "alloy-eip7928" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3231de68d5d6e75332b7489cfcc7f4dfabeba94d990a10e4b923af0e6623540" +dependencies = [ + "alloy-primitives", + "alloy-rlp", +] + [[package]] name = "alloy-eips" -version = "0.13.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10b11c382ca8075128d1ae6822b60921cf484c911d9a5831797a01218f98125f" +checksum = "b9f7ef09f21bd1e9cb8a686f168cb4a206646804567f0889eadb8dcc4c9288c8" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", + "alloy-eip7928", "alloy-primitives", "alloy-rlp", "auto_impl", "derive_more 2.0.1", "either", + "thiserror 2.0.12", ] [[package]] name = "alloy-primitives" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777d58b30eb9a4db0e5f59bc30e8c2caef877fee7dc8734cf242a51a60f22e05" +checksum = "de3b431b4e72cd8bd0ec7a50b4be18e73dab74de0dba180eef171055e5d5926e" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", "derive_more 2.0.1", - "hashbrown 0.15.2", + "hashbrown 0.16.1", "indexmap 2.7.1", "itoa", "k256", "paste", - "rand 0.8.5", + "rand 0.9.2", "ruint", + "rustc-hash", "serde", + "sha3", "tiny-keccak", ] @@ -1262,6 +1276,12 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "foreign-types" version = "0.5.0" @@ -1356,8 +1376,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "allocator-api2", - "foldhash", + "foldhash 0.1.4", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "foldhash 0.2.0", "serde", + "serde_core", ] [[package]] @@ -1963,7 +1993,6 @@ dependencies = [ "libc", "rand_chacha", "rand_core 0.6.4", - "serde", ] [[package]] @@ -1973,6 +2002,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_core 0.9.3", + "serde", ] [[package]] @@ -1999,6 +2029,10 @@ name = "rand_core" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.2", + "serde", +] [[package]] name = "rand_xorshift" @@ -2343,6 +2377,12 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + [[package]] name = "rustix" version = "0.38.44" @@ -2480,18 +2520,28 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.218" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.218" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -2574,8 +2624,8 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" -source = "git+https://github.com/risc0/RustCrypto-hashes?tag=sha2-v0.10.8-risczero.0#244dc3b08788f7a4ccce14c66896ae3b4f24c166" +version = "0.10.9" +source = "git+https://github.com/risc0/RustCrypto-hashes?tag=sha2-v0.10.9-risczero.0#8631fabdea7bdffa97b11868e04e73491d8e5bcf" dependencies = [ "cfg-if", "cpufeatures", diff --git a/guests/risc0/light-client-proof/bitcoin/Cargo.toml b/guests/risc0/light-client-proof/bitcoin/Cargo.toml index 66d673545b..36507d5a02 100644 --- a/guests/risc0/light-client-proof/bitcoin/Cargo.toml +++ b/guests/risc0/light-client-proof/bitcoin/Cargo.toml @@ -30,7 +30,7 @@ sov-state = { path = "../../../../crates/sovereign-sdk/module-system/sov-state" testing = ["citrea-primitives/testing", "citrea-risc0-batch-proof/testing"] [patch.crates-io] -sha2 = { git = "https://github.com/risc0/RustCrypto-hashes", tag = "sha2-v0.10.8-risczero.0" } +sha2 = { git = "https://github.com/risc0/RustCrypto-hashes", tag = "sha2-v0.10.9-risczero.0" } crypto-bigint = { git = "https://github.com/risc0/RustCrypto-crypto-bigint", tag = "v0.5.5-risczero.0" } # not used but to make sure it compiles secp256k1 = { git = "https://github.com/Sovereign-Labs/rust-secp256k1.git", branch = "risc0-compatible-0-29-0" } diff --git a/guests/risc0/light-client-proof/mock/Cargo.lock b/guests/risc0/light-client-proof/mock/Cargo.lock index a319a8939c..69bea85d94 100644 --- a/guests/risc0/light-client-proof/mock/Cargo.lock +++ b/guests/risc0/light-client-proof/mock/Cargo.lock @@ -37,9 +37,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-eip2124" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "675264c957689f0fd75f5993a73123c2cc3b5c235a38f5b9037fe6c826bfb2c0" +checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -49,9 +49,9 @@ dependencies = [ [[package]] name = "alloy-eip2930" -version = "0.1.0" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -59,50 +59,64 @@ dependencies = [ [[package]] name = "alloy-eip7702" -version = "0.5.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b15b13d38b366d01e818fe8e710d4d702ef7499eacd44926a06171dd9585d0c" +checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" dependencies = [ "alloy-primitives", "alloy-rlp", "thiserror 2.0.12", ] +[[package]] +name = "alloy-eip7928" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3231de68d5d6e75332b7489cfcc7f4dfabeba94d990a10e4b923af0e6623540" +dependencies = [ + "alloy-primitives", + "alloy-rlp", +] + [[package]] name = "alloy-eips" -version = "0.13.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10b11c382ca8075128d1ae6822b60921cf484c911d9a5831797a01218f98125f" +checksum = "b9f7ef09f21bd1e9cb8a686f168cb4a206646804567f0889eadb8dcc4c9288c8" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", + "alloy-eip7928", "alloy-primitives", "alloy-rlp", "auto_impl", "derive_more 2.0.1", "either", + "thiserror 2.0.12", ] [[package]] name = "alloy-primitives" -version = "0.8.26" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777d58b30eb9a4db0e5f59bc30e8c2caef877fee7dc8734cf242a51a60f22e05" +checksum = "de3b431b4e72cd8bd0ec7a50b4be18e73dab74de0dba180eef171055e5d5926e" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", "derive_more 2.0.1", - "hashbrown 0.15.2", + "hashbrown 0.16.1", "indexmap 2.7.1", "itoa", "k256", "paste", - "rand 0.8.5", + "rand 0.9.2", "ruint", + "rustc-hash", "serde", + "sha3", "tiny-keccak", ] @@ -1185,6 +1199,12 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "foreign-types" version = "0.5.0" @@ -1279,8 +1299,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "allocator-api2", - "foldhash", + "foldhash 0.1.4", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "foldhash 0.2.0", "serde", + "serde_core", ] [[package]] @@ -1871,7 +1901,6 @@ dependencies = [ "libc", "rand_chacha", "rand_core 0.6.4", - "serde", ] [[package]] @@ -1881,6 +1910,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_core 0.9.3", + "serde", ] [[package]] @@ -1907,6 +1937,10 @@ name = "rand_core" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.2", + "serde", +] [[package]] name = "rand_xorshift" @@ -2251,6 +2285,12 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + [[package]] name = "rustix" version = "0.38.44" @@ -2369,18 +2409,28 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.218" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.218" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -2463,8 +2513,8 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" -source = "git+https://github.com/risc0/RustCrypto-hashes?tag=sha2-v0.10.8-risczero.0#244dc3b08788f7a4ccce14c66896ae3b4f24c166" +version = "0.10.9" +source = "git+https://github.com/risc0/RustCrypto-hashes?tag=sha2-v0.10.9-risczero.0#8631fabdea7bdffa97b11868e04e73491d8e5bcf" dependencies = [ "cfg-if", "cpufeatures", diff --git a/guests/risc0/light-client-proof/mock/Cargo.toml b/guests/risc0/light-client-proof/mock/Cargo.toml index 0dd1464e72..558d2dde76 100644 --- a/guests/risc0/light-client-proof/mock/Cargo.toml +++ b/guests/risc0/light-client-proof/mock/Cargo.toml @@ -31,7 +31,7 @@ sov-state = { path = "../../../../crates/sovereign-sdk/module-system/sov-state" testing = ["citrea-primitives/testing", "citrea-risc0-batch-proof/testing"] [patch.crates-io] -sha2 = { git = "https://github.com/risc0/RustCrypto-hashes", tag = "sha2-v0.10.8-risczero.0" } +sha2 = { git = "https://github.com/risc0/RustCrypto-hashes", tag = "sha2-v0.10.9-risczero.0" } crypto-bigint = { git = "https://github.com/risc0/RustCrypto-crypto-bigint", tag = "v0.5.5-risczero.0" } tiny-keccak = { git = "https://github.com/risc0/tiny-keccak", tag = "tiny-keccak/v2.0.2-risczero.0" } k256 = { git = "https://github.com/risc0/RustCrypto-elliptic-curves", tag = "k256/v0.13.4-risczero.1" } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 0498c6bf5f..4f5fb39a04 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.88" +channel = "1.91.1" components = ["rustfmt", "rust-src", "clippy"] profile = "minimal"