diff --git a/.cargo/config.toml b/.cargo/config.toml index 8c076a4f..47684146 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,11 +1,2 @@ [env] CARGO_WORKSPACE_DIR = { value = "", relative = true } - -[alias] -airbender = ["run", "-p", "xtask", "--", "airbender"] -openvm = ["run", "-p", "xtask", "--", "openvm"] -pico = ["run", "-p", "xtask", "--", "pico"] -risc0 = ["run", "-p", "xtask", "--", "risc0"] -sp1 = ["run", "-p", "xtask", "--", "sp1"] -zisk = ["run", "-p", "xtask", "--", "zisk"] -zkm = ["run", "-p", "xtask", "--", "zkm"] diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..ccc7ef99 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,15 @@ +# Generated by Cargo +target + +# zkevm fixtures file +zkevm-fixtures* +# zkevm metrics file +zkevm-metrics* +# zkevm dump +zkevm-dump + +# vscode settings +.vscode + +# private envrc file +.envrc diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml deleted file mode 100644 index 7f94513a..00000000 --- a/.github/workflows/integration-tests.yml +++ /dev/null @@ -1,117 +0,0 @@ -name: Integration tests -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -permissions: - contents: read - pages: write - id-token: write - -env: - CARGO_TERM_COLOR: always - -jobs: - witness-generator: - name: Generate EEST benchmark fixtures - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable - with: - components: clippy, rustfmt - - - name: Generate benchmark fixtures - run: RUST_LOG=info cargo run -p witness-generator-cli --release -- tests --include 1M- --include Prague --tag v5.1.0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Check zkevm-fixtures-input folder has at least 1 file - run: | - echo "Files in zkevm-fixtures-input folder:" - ls -l ./zkevm-fixtures-input - if [ -z "$(ls -A ./zkevm-fixtures-input)" ]; then - echo "zkevm-fixtures-input folder is empty" - exit 1 - fi - - integration-tests: - name: "${{ format('{0} / {1}', matrix.zkvm, matrix.el) }}" - strategy: - fail-fast: false - matrix: - include: - # Stateless Validator - Reth - - zkvm: sp1 - el: reth - tests: "execute_empty_block execute_mainnet_blocks execute_invalid_block prove_empty_block" - threads: 12 - - zkvm: risc0 - el: reth - tests: "execute_empty_block execute_mainnet_blocks execute_invalid_block prove_empty_block" - threads: 12 - - zkvm: openvm - el: reth - tests: "execute_empty_block execute_mainnet_blocks execute_invalid_block prove_empty_block" - threads: 2 - - zkvm: pico - el: reth - tests: "execute_empty_block execute_invalid_block" - threads: 12 - - zkvm: zisk - el: reth - tests: "execute_empty_block execute_invalid_block execute_mainnet_blocks" - threads: 1 - - zkvm: airbender - el: reth - tests: "execute_empty_block execute_mainnet_blocks execute_invalid_block" - threads: 12 - - # Stateless Validator - Ethrex - - zkvm: sp1 - el: ethrex - tests: "execute_empty_block execute_mainnet_blocks prove_empty_block" - threads: 12 - - zkvm: risc0 - el: ethrex - tests: "execute_empty_block execute_mainnet_blocks prove_empty_block" - threads: 12 - - # Custom Guest Programs - - zkvm: sp1 - el: none - tests: "execute_empty_program execute_panic_guest prove_empty_program prove_panic_guest" - threads: 12 - - zkvm: risc0 - el: none - tests: "execute_empty_program execute_panic_guest prove_empty_program prove_panic_guest" - threads: 12 - - zkvm: openvm - el: none - tests: "execute_empty_program execute_panic_guest prove_empty_program prove_panic_guest" - threads: 12 - - zkvm: pico - el: none - tests: "execute_empty_program execute_panic_guest prove_empty_program prove_panic_guest" - threads: 12 - - zkvm: zisk - el: none - tests: "execute_empty_program execute_panic_guest" - threads: 12 - uses: ./.github/workflows/run-benchmark.yml - with: - tests: ${{ matrix.tests }} - zkvm: ${{ matrix.zkvm }} - el: ${{ matrix.el }} - threads: ${{ matrix.threads }} - secrets: inherit \ No newline at end of file diff --git a/.github/workflows/run-benchmark.yml b/.github/workflows/run-benchmark.yml deleted file mode 100644 index 18f4dde1..00000000 --- a/.github/workflows/run-benchmark.yml +++ /dev/null @@ -1,91 +0,0 @@ -name: Run Benchmark -on: - workflow_call: - inputs: - tests: - required: true - type: string - description: Space-separated list of tests to run - zkvm: - required: true - type: string - description: ZKVM to use - el: - required: false - type: string - default: '' - description: Execution layer client - threads: - required: true - type: number - description: Number of threads for RAYON_NUM_THREADS - -jobs: - run-benchmark: - name: ${{ inputs.zkvm }} / ${{ inputs.el }} - runs-on: [self-hosted-ghr, size-chungus-x64] - env: - ERE_TAG: 0.0.15-d15c6b4 - OPENVM_RUST_TOOLCHAIN: nightly-2025-08-07 - RUSTC_WRAPPER: sccache - SCCACHE_DIR: ${{ github.workspace }}/.sccache/ - SCCACHE_CACHE_SIZE: 10G - CARGO_INCREMENTAL: "0" - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y protobuf-compiler pkg-config libssl-dev sccache build-essential clang libclang-dev lz4 - - - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable - - - name: Restore Rust cache - uses: jsign/action-cache@0aa95a6bc53b4dc5c7a53d773e183d8169ce2c01 - with: - action: restore - key: ${{ runner.os }}-cargo-${{ inputs.zkvm }}-${{ inputs.el }}-${{ hashFiles('Cargo.lock') }} - path: | - ${{ github.workspace }}/.sccache/ - target - ere-guests/target - restore-keys: | - ${{ runner.os }}-cargo-${{ inputs.zkvm }}-${{ inputs.el }}- - ${{ runner.os }}-cargo- - cache-username: ${{ secrets.CACHE_USERNAME }} - cache-password: ${{ secrets.CACHE_PASSWORD }} - - - name: Pull ere images - run: | - for variant in "base" "base-${{ inputs.zkvm }}" "compiler-${{ inputs.zkvm }}" "server-${{ inputs.zkvm }}"; do - src="docker.ethquokkaops.io/gh/eth-act/ere/ere-${variant}:${ERE_TAG}" - dst="ere-${variant}:${ERE_TAG}" - docker pull "$src" - docker tag "$src" "$dst" - done - - - name: Run benchmark - run: | - RAYON_NUM_THREADS=${{ inputs.threads }} \ - RUST_LOG=warn,benchmark_runner=info \ - ZKVM=${{ inputs.zkvm }} \ - EL=${{ inputs.el }} \ - cargo test --release -p integration-tests -- --test-threads=1 ${{ inputs.tests }} - - - name: sccache stats - run: sccache --show-stats || true - - - name: Save Rust cache - uses: jsign/action-cache@0aa95a6bc53b4dc5c7a53d773e183d8169ce2c01 - with: - action: save - key: ${{ runner.os }}-cargo-${{ inputs.zkvm }}-${{ inputs.el }}-${{ hashFiles('Cargo.lock') }} - path: | - ${{ github.workspace }}/.sccache/ - target - ere-guests/target - cache-username: ${{ secrets.CACHE_USERNAME }} - cache-password: ${{ secrets.CACHE_PASSWORD }} \ No newline at end of file diff --git a/.github/workflows/rust-checks.yml b/.github/workflows/rust-checks.yml index bf1592a0..d4cea928 100644 --- a/.github/workflows/rust-checks.yml +++ b/.github/workflows/rust-checks.yml @@ -4,109 +4,114 @@ on: branches: [ master ] pull_request: branches: [ master ] + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: rust-checks-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true env: CARGO_TERM_COLOR: always + CARGO_INCREMENTAL: 0 -jobs: - check-scripts: - name: Check bash scripts +jobs: + fmt: + name: Formatting runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@nightly with: - fetch-depth: 0 + components: rustfmt - - name: Download and Extract Fixtures - run: | - chmod +x ./scripts/download-and-extract-fixtures.sh - ./scripts/download-and-extract-fixtures.sh v5.1.0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Check formatting + run: cargo fmt --check --all - check-precompile-patches: - name: Check ${{ matrix.zkVM }} unused precompile patches + clippy: + name: Clippy runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - - zkVM: reth-sp1-stateless-validator - xtask: sp1 - - zkVM: reth-risc0-stateless-validator - xtask: risc0 - - zkVM: reth-zisk-stateless-validator - xtask: zisk - - zkVM: reth-pico-stateless-validator - xtask: pico steps: - name: Checkout code uses: actions/checkout@v4 - + - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@nightly + with: + components: clippy - name: Cache dependencies uses: Swatinem/rust-cache@v2 with: - workspaces: ere-guests - - - name: Check for unused [patch] entries - shell: bash - run: | - set -euo pipefail - cargo ${{ matrix.xtask }} - cd ere-guests - if cargo tree -p ${{ matrix.zkVM }} 2>&1 | grep -F "was not used in the crate graph"; then - exit 1 - fi - - lint-and-test: - name: Lint and Test + shared-key: rust-checks + save-if: ${{ github.ref == 'refs/heads/master' }} + + - name: Check clippy + run: cargo clippy --locked --workspace --all-targets -- -D warnings + + doc: + name: Documentation runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - - - name: Install protoc - run: | - sudo apt-get update - sudo apt-get install -y protobuf-compiler - name: Install Rust toolchain uses: dtolnay/rust-toolchain@nightly - with: - components: clippy, rustfmt - + - name: Cache dependencies uses: Swatinem/rust-cache@v2 + with: + shared-key: rust-checks + save-if: ${{ github.ref == 'refs/heads/master' }} - - name: Check formatting - run: cargo fmt --check --all + - name: Check documentation + run: cargo doc --locked --workspace --no-deps + env: + RUSTDOCFLAGS: "-D warnings" - - name: Check clippy - run: cargo clippy --workspace --bins --lib --examples --tests --benches --all-features -- -D warnings + test: + name: Tests + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 - - name: Run all tests except integration tests - env: - RPC_URL: ${{ secrets.RPC_URL }} - RPC_HEADERS: ${{ secrets.RPC_HEADERS }} - run: cargo test --release --workspace --exclude integration-tests -- --no-capture - - check-empty-patch-crates-io: - name: Check [patch.crates-io] is empty + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@nightly + + - name: Cache dependencies + uses: Swatinem/rust-cache@v2 + with: + shared-key: rust-checks + save-if: ${{ github.ref == 'refs/heads/master' }} + + - name: Run default tests + run: cargo test --locked --workspace -- --no-capture + + slow-test: + name: Slow EEST Download Test + if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/master') runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - - name: Check patch.crates-io is empty in ere-guests/Cargo.toml - run: | - # Extract lines between [patch.crates-io] and the next section - # Fail if there are non-empty, non-comment lines - sed -n '/^\[patch\.crates-io\]/,/^\[/p' ere-guests/Cargo.toml | \ - sed '1d;$d' | \ - grep -v '^[[:space:]]*#' | \ - grep -v '^[[:space:]]*$' && \ - { echo "ERROR: [patch.crates-io] section in ere-guests/Cargo.toml must be empty"; exit 1; } || \ - echo "✓ [patch.crates-io] section is empty" + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@nightly + + - name: Cache dependencies + uses: Swatinem/rust-cache@v2 + with: + shared-key: rust-checks + save-if: ${{ github.ref == 'refs/heads/master' }} + + - name: Run slow witness-generator test + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: cargo test --locked -p witness-generator --features slow-tests test_download_and_extract_default_tag -- --nocapture diff --git a/.gitignore b/.gitignore index ccc7ef99..9c9fb58d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,8 @@ zkevm-fixtures* zkevm-metrics* # zkevm dump zkevm-dump +# zisk profiles +zisk-profiles # vscode settings .vscode diff --git a/Cargo.lock b/Cargo.lock index a3698e93..a76b6a47 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,17 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "addchain" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" -dependencies = [ - "num-bigint 0.3.3", - "num-integer", - "num-traits", -] - [[package]] name = "adler2" version = "2.0.1" @@ -35,7 +24,7 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "cipher", "cpufeatures", ] @@ -60,7 +49,7 @@ version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "getrandom 0.3.4", "once_cell", "version_check", @@ -84,9 +73,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.2.20" +version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bc32535569185cbcb6ad5fa64d989a47bccb9a08e27284b1f2a3ccf16e6d010" +checksum = "84e0378e959aa6a885897522080a990e80eb317f1e9a222a604492ea50e13096" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -97,62 +86,62 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6440213a22df93a87ed512d2f668e7dc1d62a05642d107f82d61edc9e12370" +checksum = "ae8c24c95e90c1608c2d91cff1b451d796474168d3310ccc8b7cd12502ca8169" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", - "alloy-serde", - "alloy-trie 0.9.1", + "alloy-serde 2.0.1", + "alloy-trie", "alloy-tx-macros", "arbitrary", "auto_impl", "borsh", "c-kzg", - "derive_more 2.0.1", + "derive_more 2.1.1", "either", "k256", "once_cell", - "rand 0.8.5", + "rand 0.8.6", "secp256k1 0.30.0", "serde", "serde_json", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "alloy-consensus-any" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d0bea09287942405c4f9d2a4f22d1e07611c2dbd9d5bf94b75366340f9e6e0" +checksum = "7d211ad0ef468a70a7a829e49683ff59ad25f02b4ab3764344c4c2663329a52c" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.1", "arbitrary", "serde", ] [[package]] name = "alloy-dyn-abi" -version = "1.4.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdff496dd4e98a81f4861e66f7eaf5f2488971848bb42d9c892f871730245c8" +checksum = "cc2db5c583aaef0255aa63a4fe827f826090142528bba48d1bf4119b62780cad" dependencies = [ "alloy-json-abi", "alloy-primitives", "alloy-sol-type-parser", "alloy-sol-types", - "derive_more 2.0.1", + "derive_more 2.1.1", "itoa", "serde", "serde_json", - "winnow", + "winnow 0.7.15", ] [[package]] @@ -165,9 +154,9 @@ dependencies = [ "alloy-rlp", "arbitrary", "crc", - "rand 0.8.5", + "rand 0.8.6", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -180,7 +169,7 @@ dependencies = [ "alloy-rlp", "arbitrary", "borsh", - "rand 0.8.5", + "rand 0.8.6", "serde", ] @@ -195,69 +184,103 @@ dependencies = [ "arbitrary", "borsh", "k256", - "rand 0.8.5", + "rand 0.8.6", "serde", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", +] + +[[package]] +name = "alloy-eip7928" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "407510740da514b694fecb44d8b3cebdc60d448f70cc5d24743e8ba273448a6e" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "arbitrary", + "borsh", + "once_cell", + "serde", ] [[package]] name = "alloy-eips" -version = "1.1.2" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6ef28c9fdad22d4eec52d894f5f2673a0895f1e5ef196734568e68c0f6caca8" +dependencies = [ + "alloy-eip2124", + "alloy-eip2930", + "alloy-eip7702", + "alloy-eip7928", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 1.8.3", + "auto_impl", + "borsh", + "c-kzg", + "derive_more 2.1.1", + "either", + "serde", + "serde_with", + "sha2", +] + +[[package]] +name = "alloy-eips" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd2c7ae05abcab4483ce821f12f285e01c0b33804e6883dd9ca1569a87ee2be" +checksum = "ae69eaa5096b47ffe97e6a5d6bde7e7fa2dec106af22a9315621d11039c3de3c" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", + "alloy-eip7928", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.1", "arbitrary", "auto_impl", "borsh", "c-kzg", - "derive_more 2.0.1", + "derive_more 2.1.1", "either", - "ethereum_ssz", - "ethereum_ssz_derive", "serde", "serde_with", "sha2", - "thiserror 2.0.17", ] [[package]] name = "alloy-evm" -version = "0.24.2" +version = "0.33.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01be36ba6f5e6e62563b369e03ca529eac46aea50677f84655084b4750816574" +checksum = "6fc4b83cb672156663e6094d098beb509965b7fe684bb3d6e44bb9ca2e9ae714" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-hardforks", "alloy-primitives", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-sol-types", "auto_impl", - "derive_more 2.0.1", - "op-alloy", - "op-revm", + "derive_more 2.1.1", "revm", - "thiserror 2.0.17", + "thiserror 2.0.18", + "tracing", ] [[package]] name = "alloy-genesis" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc47eaae86488b07ea8e20236184944072a78784a1f4993f8ec17b3aa5d08c21" +checksum = "39789db0b3f3bbef0e6549c87bc6842b73886ebabee1405b6941685b1cc34083" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", - "alloy-serde", - "alloy-trie 0.9.1", + "alloy-serde 2.0.1", + "alloy-trie", "borsh", "serde", "serde_with", @@ -265,9 +288,9 @@ dependencies = [ [[package]] name = "alloy-hardforks" -version = "0.4.5" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d9a33550fc21fd77a3f8b63e99969d17660eec8dcc50a95a80f7c9964f7680b" +checksum = "83ba208044232d14d4adbfa77e57d6329f51bc1acc21f5667bb7db72d88a0831" dependencies = [ "alloy-chains", "alloy-eip2124", @@ -279,9 +302,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "1.4.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5513d5e6bd1cba6bdcf5373470f559f320c05c8c59493b6e98912fbe6733943f" +checksum = "e9dbe713da0c737d9e5e387b0ba790eb98b14dd207fe53eef50e19a5a8ec3dac" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -291,129 +314,93 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003f46c54f22854a32b9cc7972660a476968008ad505427eabab49225309ec40" +checksum = "662b525af73e86b2167dae923261c8edf440ba7e1426b30a8b993177bc214c02" dependencies = [ "alloy-primitives", "alloy-sol-types", "http", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] [[package]] name = "alloy-network" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4029954d9406a40979f3a3b46950928a0fdcfe3ea8a9b0c17490d57e8aa0e3" +checksum = "c657c2d9751d3c7d94990554b231e5372c3c2e4bad842806280b6151a0d6a05d" dependencies = [ "alloy-consensus", "alloy-consensus-any", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-json-rpc", "alloy-network-primitives", "alloy-primitives", "alloy-rpc-types-any", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 2.0.1", "alloy-signer", "alloy-sol-types", "async-trait", "auto_impl", - "derive_more 2.0.1", + "derive_more 2.1.1", "futures-utils-wasm", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "alloy-network-primitives" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7805124ad69e57bbae7731c9c344571700b2a18d351bda9e0eba521c991d1bcb" +checksum = "59e7c4bb0ebbd6d7406d2808968f43c0d5186c69c5e58cedcbee7380f4cd1fcf" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", - "alloy-serde", + "alloy-serde 2.0.1", "serde", ] [[package]] name = "alloy-primitives" -version = "1.4.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "355bf68a433e0fd7f7d33d5a9fc2583fde70bf5c530f63b80845f8da5505cf28" +checksum = "de3b431b4e72cd8bd0ec7a50b4be18e73dab74de0dba180eef171055e5d5926e" dependencies = [ "alloy-rlp", "arbitrary", "bytes", - "cfg-if 1.0.4", + "cfg-if", "const-hex", - "derive_more 2.0.1", + "derive_more 2.1.1", "foldhash 0.2.0", - "getrandom 0.3.4", + "getrandom 0.4.2", "hashbrown 0.16.1", - "indexmap 2.12.1", + "indexmap 2.14.0", "itoa", "k256", "keccak-asm", "paste", "proptest", - "proptest-derive 0.6.0", - "rand 0.9.2", + "proptest-derive", + "rand 0.9.4", + "rapidhash", "ruint", "rustc-hash", "serde", "sha3", - "tiny-keccak", -] - -[[package]] -name = "alloy-provider" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d369e12c92870d069e0c9dc5350377067af8a056e29e3badf8446099d7e00889" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-network", - "alloy-network-primitives", - "alloy-primitives", - "alloy-rpc-client", - "alloy-rpc-types-eth", - "alloy-signer", - "alloy-sol-types", - "alloy-transport", - "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.17", - "tokio", - "tracing", - "wasmtimer", ] [[package]] name = "alloy-rlp" -version = "0.3.12" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f70d83b765fdc080dbcd4f4db70d8d23fe4761f2f02ebfa9146b833900634b4" +checksum = "dc90b1e703d3c03f4ff7f48e82dd0bc1c8211ab7d079cd836a06fcfeb06651cb" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -422,20 +409,20 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.12" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" +checksum = "f36834a5c0a2fa56e171bf256c34d70fca07d0c0031583edea1c4946b7889c9e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "alloy-rpc-client" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c89883fe6b7381744cbe80fef638ac488ead4f1956a4278956a1362c71cd2e" +checksum = "d5ee7b51752c68fb95f21705e402700750e692b1d21ccc294ac48fadc8655d53" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -443,7 +430,7 @@ dependencies = [ "alloy-transport-http", "futures", "pin-project", - "reqwest", + "reqwest 0.13.2", "serde", "serde_json", "tokio", @@ -456,22 +443,22 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e279e6d40ee40fe8f76753b678d8d5d260cb276dc6c8a8026099b16d2b43f4" +checksum = "8fa76988f54105ad4398828e8aaf1a39b3f07f91fb79091529056689514ee8c2" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 2.0.1", "serde", ] [[package]] name = "alloy-rpc-types-admin" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bcf50ccb65d29b8599f8f5e23dcac685f1d79459654c830cba381345760e901" +checksum = "670b3a8e0d1b32e9886b7a419b8efe6754ea00b9fdd4c0ea3c7411b6c30431f4" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -481,143 +468,157 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e176c26fdd87893b6afeb5d92099d8f7e7a1fe11d6f4fe0883d6e33ac5f31ba" +checksum = "3d276bea4e92e4991269d31b9abd3e722eed2565b82036478a4416adb8dd4992" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 2.0.1", "serde", ] [[package]] name = "alloy-rpc-types-any" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b43c1622aac2508d528743fd4cfdac1dea92d5a8fa894038488ff7edd0af0b32" +checksum = "1f1a9a3bda9be7f6515316eb792710532411878bbfc88934973f4b371376b00d" dependencies = [ "alloy-consensus-any", + "alloy-network-primitives", + "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 2.0.1", + "serde", + "serde_json", ] [[package]] name = "alloy-rpc-types-beacon" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1786681640d4c60f22b6b8376b0f3fa200360bf1c3c2cb913e6c97f51928eb1b" +checksum = "caf5d68ddca890854fb78291cbde06115473ded00b2337d0f815e92c0c1f8003" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-engine", - "derive_more 2.0.1", + "derive_more 2.1.1", "serde", "serde_json", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "alloy-rpc-types-debug" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b2ca3a434a6d49910a7e8e51797eb25db42ef8a5578c52d877fcb26d0afe7bc" +checksum = "ea21739e232c221779741eba7e7b9bc19ad8ff777b72736647ae519f5c9f6f33" dependencies = [ "alloy-primitives", - "derive_more 2.0.1", + "alloy-rlp", + "derive_more 2.1.1", "serde", "serde_with", ] [[package]] name = "alloy-rpc-types-engine" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4c53a8b0905d931e7921774a1830609713bd3e8222347963172b03a3ecc68" +checksum = "5f05338cfb4ee5508ff76f01c88142cab8a4579db74b7d9432936c26e4f11374" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", - "alloy-serde", - "derive_more 2.0.1", - "ethereum_ssz", - "ethereum_ssz_derive", - "jsonwebtoken", - "rand 0.8.5", + "alloy-serde 2.0.1", + "derive_more 2.1.1", + "jsonwebtoken 10.3.0", + "rand 0.8.6", "serde", "strum 0.27.2", ] [[package]] name = "alloy-rpc-types-eth" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed5fafb741c19b3cca4cdd04fa215c89413491f9695a3e928dee2ae5657f607e" +checksum = "dda4ece0050154ab278241aeffade58916b04f38254832e8cb6e4671c6e72ed2" dependencies = [ "alloy-consensus", "alloy-consensus-any", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-network-primitives", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.1", "alloy-sol-types", "arbitrary", "itertools 0.14.0", "serde", "serde_json", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "alloy-rpc-types-mev" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a97bfc6d9b411c85bb08e1174ddd3e5d61b10d3bd13f529d6609f733cb2f6f" +checksum = "0df223478aec91d8fb0f8643234764042fa432e6111aca126774802b2618a3a5" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 2.0.1", "serde", "serde_json", ] [[package]] name = "alloy-rpc-types-trace" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55324323aa634b01bdecb2d47462a8dce05f5505b14a6e5db361eef16eda476" +checksum = "f5905ac3663b0859d67b82d912acce20887d20682a0cadde79c8a763b133a515" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 2.0.1", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "alloy-rpc-types-txpool" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b1aa28effb6854be356ce92ed64cea3b323acd04c3f8bfb5126e2839698043" +checksum = "f7fbf71892d4df9cae8d35dc96f15d522384bb93806205465e2c8c012b7f0a34" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 2.0.1", "serde", ] [[package]] name = "alloy-serde" -version = "1.1.2" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ece63b89294b8614ab3f483560c08d016930f842bf36da56bf0b764a15c11e" +dependencies = [ + "alloy-primitives", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-serde" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6f180c399ca7c1e2fe17ea58343910cad0090878a696ff5a50241aee12fc529" +checksum = "beaa5c581a67e2743d95b4849eb9cfeb90866429cdaa6d8f6b75eb988b2d0cd9" dependencies = [ "alloy-primitives", "arbitrary", @@ -627,9 +628,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc39ad2c0a3d2da8891f4081565780703a593f090f768f884049aa3aa929cbc" +checksum = "c5da9ae50f9b48d7b4e2e5cde87175257be7e5e56909a7794720597c1d9806f6" dependencies = [ "alloy-primitives", "async-trait", @@ -637,14 +638,14 @@ dependencies = [ "either", "elliptic-curve", "k256", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "alloy-signer-local" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "930e17cb1e46446a193a593a3bfff8d0ecee4e510b802575ebe300ae2e43ef75" +checksum = "49b794002d57fd2f71b4c87298a41ca24dfc0f2cf6630d95106a477e451747ba" dependencies = [ "alloy-consensus", "alloy-network", @@ -652,47 +653,47 @@ dependencies = [ "alloy-signer", "async-trait", "k256", - "rand 0.8.5", - "thiserror 2.0.17", + "rand 0.8.6", + "thiserror 2.0.18", ] [[package]] name = "alloy-sol-macro" -version = "1.4.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ce480400051b5217f19d6e9a82d9010cdde20f1ae9c00d53591e4a1afbb312" +checksum = "ab81bab693da9bb79f7a95b64b394718259fdd7e41dceeced4cad57cb71c4f6a" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.4.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d792e205ed3b72f795a8044c52877d2e6b6e9b1d13f431478121d8d4eaa9028" +checksum = "489f1620bb7e2483fb5819ed01ab6edc1d2f93939dce35a5695085a1afd1d699" dependencies = [ "alloy-sol-macro-input", "const-hex", "heck", - "indexmap 2.12.1", + "indexmap 2.14.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.111", + "sha3", + "syn 2.0.117", "syn-solidity", - "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "1.4.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd1247a8f90b465ef3f1207627547ec16940c35597875cdc09c49d58b19693c" +checksum = "56cef806ad22d4392c5fc83cf8f2089f988eb99c7067b4e0c6f1971fc1cca318" dependencies = [ "const-hex", "dunce", @@ -700,25 +701,25 @@ dependencies = [ "macro-string", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "1.4.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "954d1b2533b9b2c7959652df3076954ecb1122a28cc740aa84e7b0a49f6ac0a9" +checksum = "a6df77fea9d6a2a75c0ef8d2acbdfd92286cc599983d3175ccdc170d3433d249" dependencies = [ "serde", - "winnow", + "winnow 0.7.15", ] [[package]] name = "alloy-sol-types" -version = "1.4.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70319350969a3af119da6fb3e9bddb1bce66c9ea933600cb297c8b1850ad2a3c" +checksum = "64612d29379782a5dde6f4b6570d9c756d734d760c0c94c254d361e678a6591f" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -728,20 +729,20 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae82426d98f8bc18f53c5223862907cac30ab8fc5e4cd2bb50808e6d3ab43d8" +checksum = "19dec9bfb59647254afdecbb5ddcddd7ba02edcd48ffa40510bddfbed0be1634" dependencies = [ "alloy-json-rpc", "auto_impl", "base64", - "derive_more 2.0.1", + "derive_more 2.1.1", "futures", "futures-utils-wasm", "parking_lot", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tower", "tracing", @@ -751,13 +752,14 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90aa6825760905898c106aba9c804b131816a15041523e80b6d4fe7af6380ada" +checksum = "2035f3c4d6bee20624da2dcf765d469b292398e48d766ffade61b0fcf8b4d45d" dependencies = [ "alloy-json-rpc", "alloy-transport", - "reqwest", + "itertools 0.14.0", + "reqwest 0.13.2", "serde_json", "tower", "tracing", @@ -766,49 +768,34 @@ dependencies = [ [[package]] name = "alloy-trie" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "983d99aa81f586cef9dae38443245e585840fcf0fc58b09aee0b1f27aed1d500" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "arrayvec", - "derive_more 2.0.1", - "nybbles 0.3.4", - "smallvec", - "tracing", -] - -[[package]] -name = "alloy-trie" -version = "0.9.1" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3412d52bb97c6c6cc27ccc28d4e6e8cf605469101193b50b0bd5813b1f990b5" +checksum = "3f14b5d9b2c2173980202c6ff470d96e7c5e202c65a9f67884ad565226df7fbb" dependencies = [ "alloy-primitives", "alloy-rlp", "arbitrary", - "arrayvec", "derive_arbitrary", - "derive_more 2.0.1", - "nybbles 0.4.6", + "derive_more 2.1.1", + "nybbles", "proptest", - "proptest-derive 0.5.1", + "proptest-derive", "serde", "smallvec", + "thiserror 2.0.18", "tracing", ] [[package]] name = "alloy-tx-macros" -version = "1.1.2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae109e33814b49fc0a62f2528993aa8a2dd346c26959b151f05441dc0b9da292" +checksum = "3520337f3d3d063a7fe20f47aaa62d695e3dc0372b34f601560dee24e76988b9" dependencies = [ - "darling 0.21.3", + "darling 0.23.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -822,9 +809,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.21" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" dependencies = [ "anstyle", "anstyle-parse", @@ -837,15 +824,15 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anstyle-parse" -version = "0.2.7" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" dependencies = [ "utf8parse", ] @@ -872,9 +859,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "aquamarine" @@ -887,7 +874,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -899,6 +886,12 @@ dependencies = [ "derive_arbitrary", ] +[[package]] +name = "archery" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e0a5f99dfebb87bb342d0f53bb92c81842e100bbb915223e38349580e5441d" + [[package]] name = "ark-bls12-381" version = "0.5.0" @@ -938,7 +931,7 @@ dependencies = [ "fnv", "hashbrown 0.15.5", "itertools 0.13.0", - "num-bigint 0.4.6", + "num-bigint", "num-integer", "num-traits", "zeroize", @@ -955,7 +948,7 @@ dependencies = [ "ark-serialize 0.3.0", "ark-std 0.3.0", "derivative", - "num-bigint 0.4.6", + "num-bigint", "num-traits", "paste", "rustc_version 0.3.3", @@ -975,7 +968,7 @@ dependencies = [ "derivative", "digest 0.10.7", "itertools 0.10.5", - "num-bigint 0.4.6", + "num-bigint", "num-traits", "paste", "rustc_version 0.4.1", @@ -996,7 +989,7 @@ dependencies = [ "digest 0.10.7", "educe", "itertools 0.13.0", - "num-bigint 0.4.6", + "num-bigint", "num-traits", "paste", "zeroize", @@ -1029,7 +1022,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -1038,7 +1031,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" dependencies = [ - "num-bigint 0.4.6", + "num-bigint", "num-traits", "quote", "syn 1.0.109", @@ -1050,7 +1043,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ - "num-bigint 0.4.6", + "num-bigint", "num-traits", "proc-macro2", "quote", @@ -1063,11 +1056,11 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" dependencies = [ - "num-bigint 0.4.6", + "num-bigint", "num-traits", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -1096,7 +1089,7 @@ dependencies = [ "ark-relations", "ark-std 0.5.0", "educe", - "num-bigint 0.4.6", + "num-bigint", "num-integer", "num-traits", "tracing", @@ -1132,7 +1125,7 @@ checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ "ark-std 0.4.0", "digest 0.10.7", - "num-bigint 0.4.6", + "num-bigint", ] [[package]] @@ -1145,7 +1138,7 @@ dependencies = [ "ark-std 0.5.0", "arrayvec", "digest 0.10.7", - "num-bigint 0.4.6", + "num-bigint", ] [[package]] @@ -1156,7 +1149,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -1166,7 +1159,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" dependencies = [ "num-traits", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -1176,7 +1169,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -1186,7 +1179,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" dependencies = [ "num-traits", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -1206,31 +1199,9 @@ dependencies = [ [[package]] name = "asn1_der" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" - -[[package]] -name = "async-stream" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] +checksum = "4858a9d740c5007a9069007c3b4e91152d0506f13c1b31dd49051fd537656156" [[package]] name = "async-trait" @@ -1240,7 +1211,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -1267,7 +1238,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -1276,11 +1247,34 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +[[package]] +name = "aws-lc-rs" +version = "1.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ec6fb3fe69024a75fa7e1bfb48aa6cf59706a101658ea01bfd33b2b248a038f" +dependencies = [ + "aws-lc-sys", + "untrusted 0.7.1", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f50037ee5e1e41e7b8f9d161680a725bd1626cb6f8c7e901f91f942850852fe7" +dependencies = [ + "cc", + "cmake", + "dunce", + "fs_extra", +] + [[package]] name = "axum" -version = "0.8.7" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b098575ebe77cb6d14fc7f32749631a6e44edbef6b796f89b020e99ba20d425" +checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90" dependencies = [ "axum-core", "base64", @@ -1314,9 +1308,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59446ce19cd142f8833f856eb31f3eb097812d1479ab224f54d72428ca21ea22" +checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" dependencies = [ "bytes", "futures-core", @@ -1354,12 +1348,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "az" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" - [[package]] name = "base-x" version = "0.2.11" @@ -1390,37 +1378,35 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.8.0" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" [[package]] name = "benchmark-runner" version = "0.1.0" dependencies = [ - "alloy-eips", - "alloy-genesis", - "alloy-rlp", "anyhow", "auto_impl", - "block-encoding-length-guest", + "downloader", + "ere-cluster-client-zisk", "ere-dockerized", - "ere-io", - "ere-platform-trait", - "ere-zkvm-interface", - "ethrex-common", - "ethrex-guest", - "ethrex-rlp", - "ethrex-rpc", - "guest-libs", - "guest_program", + "ere-util-tokio", + "flate2", + "guest", + "hex", + "integration-tests", "rayon", - "reth-guest", - "reth-stateless", + "reqwest 0.12.28", "serde", "serde_json", "sha2", + "stateless-validator-ethrex", + "stateless-validator-reth", "strum 0.26.3", + "tar", + "tempfile", + "toml 0.8.23", "tracing", "walkdir", "witness-generator", @@ -1448,20 +1434,20 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.71.1" +version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.1", "cexpr", "clang-sys", - "itertools 0.12.1", + "itertools 0.13.0", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -1481,15 +1467,15 @@ checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bitcoin-io" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" +checksum = "2dee39a0ee5b4095224a0cfc6bf4cc1baf0f9624b96b367e53b66d974e51d953" [[package]] name = "bitcoin_hashes" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +checksum = "26ec84b80c482df901772e931a9a681e26a1b9ee2302edeff23cb30328745c8b" dependencies = [ "bitcoin-io", "hex-conservative", @@ -1503,13 +1489,19 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.10.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" dependencies = [ "serde_core", ] +[[package]] +name = "bitmaps" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d084b0137aaa901caf9f1e8b21daa6aa24d41cd806e111335541eff9683bd6" + [[package]] name = "bitvec" version = "1.0.1" @@ -1523,19 +1515,6 @@ dependencies = [ "wyz", ] -[[package]] -name = "blake3" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if 1.0.4", - "constant_time_eq", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -1545,18 +1524,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-encoding-length-guest" -version = "0.1.0" -dependencies = [ - "ere-io", - "ere-platform-trait", - "ethereum_ssz", - "guest-libs", - "reth-ethereum-primitives", - "serde", -] - [[package]] name = "block-padding" version = "0.3.3" @@ -1566,10 +1533,19 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + [[package]] name = "bls12_381" version = "0.8.0" -source = "git+https://github.com/lambdaclass/bls12_381?branch=expose-fp-struct#219174187bd78154cec35b0809799fc2c991a579" +source = "git+https://github.com/lambdaclass/bls12_381?branch=expose-affine-constructors#78cad0378b17fc3157b83f514be192bf46edf9a1" dependencies = [ "digest 0.10.7", "ff", @@ -1593,25 +1569,26 @@ dependencies = [ [[package]] name = "borsh" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" +checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a" dependencies = [ "borsh-derive", + "bytes", "cfg_aliases", ] [[package]] name = "borsh-derive" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0686c856aa6aac0c4498f936d7d6a02df690f614c03e4d906d1018062b5c5e2c" +checksum = "bfcfdc083699101d5a7965e49925975f2f55060f94f9a05e7187be95d530ca59" dependencies = [ "once_cell", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -1634,9 +1611,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.19.0" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" [[package]] name = "byte-slice-cast" @@ -1664,14 +1641,14 @@ checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "bytemuck" -version = "1.24.0" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" [[package]] name = "byteorder" @@ -1681,18 +1658,28 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" dependencies = [ "serde", ] +[[package]] +name = "bzip2-sys" +version = "0.1.13+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" +dependencies = [ + "cc", + "pkg-config", +] + [[package]] name = "c-kzg" -version = "2.1.5" +version = "2.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687" +checksum = "6648ed1e4ea8e8a1a4a2c78e1cda29a3fd500bc622899c340d8525ea9a76b24a" dependencies = [ "arbitrary", "blst", @@ -1706,9 +1693,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" +checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" dependencies = [ "serde_core", ] @@ -1723,25 +1710,50 @@ dependencies = [ ] [[package]] -name = "cargo_metadata" -version = "0.19.2" +name = "cargo-platform" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0061da739915fae12ea00e16397555ed4371a6bb285431aab930f61b0aa4ba" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" dependencies = [ "camino", - "cargo-platform", - "semver 1.0.27", + "cargo-platform 0.1.9", + "semver 1.0.28", + "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.3", + "semver 1.0.28", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "cc" -version = "1.2.15" +version = "1.2.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c736e259eea577f443d5c86c304f9f4ae0295c43f3ba05c21f1d66b5f06001af" +checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", @@ -1762,12 +1774,6 @@ dependencies = [ "nom", ] -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.4" @@ -1782,9 +1788,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", "js-sys", @@ -1817,9 +1823,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.53" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" +checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" dependencies = [ "clap_builder", "clap_derive", @@ -1827,9 +1833,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.53" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" +checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" dependencies = [ "anstream", "anstyle", @@ -1839,27 +1845,45 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.49" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" +checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "clap_lex" -version = "0.7.6" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" + +[[package]] +name = "cmake" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" +dependencies = [ + "cc", +] [[package]] name = "colorchoice" -version = "1.0.4" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" + +[[package]] +name = "colored" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34" +dependencies = [ + "windows-sys 0.61.2", +] [[package]] name = "combine" @@ -1882,11 +1906,11 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.17.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" +checksum = "531185e432bb31db1ecda541e9e7ab21468d4d844ad7505e0546a49b4945d49b" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "cpufeatures", "proptest", "serde_core", @@ -1906,11 +1930,12 @@ checksum = "2f421161cb492475f1661ddc9815a745a1c894592070661180fdec3d4872e9c3" [[package]] name = "const_format" -version = "0.2.35" +version = "0.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" +checksum = "4481a617ad9a412be3b97c5d403fef8ed023103368908b9c50af598ff467cc1e" dependencies = [ "const_format_proc_macros", + "konst", ] [[package]] @@ -1924,12 +1949,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - [[package]] name = "convert_case" version = "0.6.0" @@ -1941,9 +1960,9 @@ dependencies = [ [[package]] name = "convert_case" -version = "0.7.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" dependencies = [ "unicode-segmentation", ] @@ -1974,15 +1993,6 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "core2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" -dependencies = [ - "memchr", -] - [[package]] name = "cpufeatures" version = "0.2.17" @@ -1994,9 +2004,9 @@ dependencies = [ [[package]] name = "crc" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" +checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" dependencies = [ "crc-catalog", ] @@ -2013,7 +2023,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", ] [[package]] @@ -2022,41 +2032,17 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" -[[package]] -name = "crossbeam" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e" -dependencies = [ - "cfg-if 0.1.10", - "crossbeam-channel 0.4.4", - "crossbeam-deque 0.7.4", - "crossbeam-epoch 0.8.2", - "crossbeam-queue 0.2.3", - "crossbeam-utils 0.7.2", -] - [[package]] name = "crossbeam" version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" dependencies = [ - "crossbeam-channel 0.5.15", - "crossbeam-deque 0.8.6", - "crossbeam-epoch 0.9.18", - "crossbeam-queue 0.3.12", - "crossbeam-utils 0.8.21", -] - -[[package]] -name = "crossbeam-channel" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" -dependencies = [ - "crossbeam-utils 0.7.2", - "maybe-uninit", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", ] [[package]] @@ -2065,18 +2051,7 @@ version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ - "crossbeam-utils 0.8.21", -] - -[[package]] -name = "crossbeam-deque" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed" -dependencies = [ - "crossbeam-epoch 0.8.2", - "crossbeam-utils 0.7.2", - "maybe-uninit", + "crossbeam-utils", ] [[package]] @@ -2085,23 +2060,8 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ - "crossbeam-epoch 0.9.18", - "crossbeam-utils 0.8.21", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "lazy_static", - "maybe-uninit", - "memoffset", - "scopeguard", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] @@ -2110,18 +2070,7 @@ version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "crossbeam-utils 0.8.21", -] - -[[package]] -name = "crossbeam-queue" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" -dependencies = [ - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "maybe-uninit", + "crossbeam-utils", ] [[package]] @@ -2130,18 +2079,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" dependencies = [ - "crossbeam-utils 0.8.21", -] - -[[package]] -name = "crossbeam-utils" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "lazy_static", + "crossbeam-utils", ] [[package]] @@ -2188,13 +2126,24 @@ dependencies = [ "cipher", ] +[[package]] +name = "ctrlc" +version = "3.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0b1fab2ae45819af2d0731d60f2afe17227ebb1a1538a236da84c93e9a60162" +dependencies = [ + "dispatch2", + "nix", + "windows-sys 0.61.2", +] + [[package]] name = "curve25519-dalek" version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "cpufeatures", "curve25519-dalek-derive", "digest 0.10.7", @@ -2212,7 +2161,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -2227,12 +2176,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.21.3" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" dependencies = [ - "darling_core 0.21.3", - "darling_macro 0.21.3", + "darling_core 0.23.0", + "darling_macro 0.23.0", ] [[package]] @@ -2246,22 +2195,21 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "darling_core" -version = "0.21.3" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" dependencies = [ - "fnv", "ident_case", "proc-macro2", "quote", "serde", "strsim", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -2272,18 +2220,18 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "darling_macro" -version = "0.21.3" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ - "darling_core 0.21.3", + "darling_core 0.23.0", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -2292,25 +2240,27 @@ version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ - "cfg-if 1.0.4", - "crossbeam-utils 0.8.21", + "arbitrary", + "cfg-if", + "crossbeam-utils", "hashbrown 0.14.5", "lock_api", "once_cell", "parking_lot_core", + "serde", ] [[package]] name = "data-encoding" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" +checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" [[package]] name = "data-encoding-macro" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47ce6c96ea0102f01122a185683611bd5ac8d99e62bc59dd12e6bda344ee673d" +checksum = "8142a83c17aa9461d637e649271eae18bf2edd00e91f2e105df36c3c16355bdb" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -2318,24 +2268,12 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" +checksum = "7ab67060fc6b8ef687992d439ca0fa36e7ed17e9a0b16b25b601e8757df720de" dependencies = [ "data-encoding", - "syn 2.0.111", -] - -[[package]] -name = "datatest-stable" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833306ca7eec4d95844e65f0d7502db43888c5c1006c6c517e8cf51a27d15431" -dependencies = [ - "camino", - "fancy-regex", - "libtest-mimic", - "walkdir", + "syn 2.0.117", ] [[package]] @@ -2362,15 +2300,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", - "pem-rfc7468", "zeroize", ] [[package]] name = "deranged" -version = "0.5.5" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ "powerfmt", "serde_core", @@ -2389,13 +2326,13 @@ dependencies = [ [[package]] name = "derive-where" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" +checksum = "d08b3a0bcc0d079199cd476b2cae8435016ec11d1c0986c6901c5ac223041534" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -2406,7 +2343,7 @@ checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -2427,7 +2364,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -2437,7 +2374,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -2451,11 +2388,11 @@ dependencies = [ [[package]] name = "derive_more" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" dependencies = [ - "derive_more-impl 2.0.1", + "derive_more-impl 2.1.1", ] [[package]] @@ -2467,20 +2404,21 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", "unicode-xid", ] [[package]] name = "derive_more-impl" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" dependencies = [ - "convert_case 0.7.1", + "convert_case 0.10.0", "proc-macro2", "quote", - "syn 2.0.111", + "rustc_version 0.4.1", + "syn 2.0.117", "unicode-xid", ] @@ -2505,37 +2443,16 @@ dependencies = [ "subtle", ] -[[package]] -name = "dirs" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" -dependencies = [ - "dirs-sys", -] - [[package]] name = "dirs-next" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "dirs-sys-next", ] -[[package]] -name = "dirs-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" -dependencies = [ - "libc", - "option-ext", - "redox_users 0.5.2", - "windows-sys 0.59.0", -] - [[package]] name = "dirs-sys-next" version = "0.1.2" @@ -2543,15 +2460,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", - "redox_users 0.4.6", + "redox_users", "winapi", ] [[package]] name = "discv5" -version = "0.10.2" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f170f4f6ed0e1df52bf43b403899f0081917ecf1500bfe312505cc3b515a8899" +checksum = "4c7999df38d0bd8f688212e1a4fae31fd2fea6d218649b9cd7c40bf3ec1318fc" dependencies = [ "aes", "aes-gcm", @@ -2567,19 +2484,30 @@ dependencies = [ "hkdf", "lazy_static", "libp2p-identity", - "lru 0.12.5", "more-asserts", "multiaddr", "parking_lot", - "rand 0.8.5", + "rand 0.8.6", "smallvec", - "socket2 0.5.10", + "socket2", "tokio", "tracing", "uint 0.10.0", "zeroize", ] +[[package]] +name = "dispatch2" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" +dependencies = [ + "bitflags 2.11.1", + "block2", + "libc", + "objc2", +] + [[package]] name = "displaydoc" version = "0.2.5" @@ -2588,7 +2516,19 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", +] + +[[package]] +name = "downloader" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere-guests?tag=v0.11.0#91735556bb1bdd6a16c3bcecee46ef14078846d0" +dependencies = [ + "anyhow", + "reqwest 0.12.28", + "serde", + "tempfile", + "tokio", ] [[package]] @@ -2652,16 +2592,16 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "ef-tests" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "0.1.0" +source = "git+https://github.com/paradigmxyz/stateless?rev=e5480e71a8031641ff471cad9dc482a7a14b32d5#e5480e71a8031641ff471cad9dc482a7a14b32d5" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-genesis", "alloy-primitives", "alloy-rlp", @@ -2678,14 +2618,16 @@ dependencies = [ "reth-primitives-traits", "reth-provider", "reth-revm", - "reth-stateless", "reth-tracing", "reth-trie", + "reth-trie-common", "reth-trie-db", "revm", "serde", "serde_json", - "thiserror 2.0.17", + "stateless", + "thiserror 2.0.18", + "tries", "walkdir", ] @@ -2710,7 +2652,6 @@ dependencies = [ "ff", "generic-array", "group", - "pem-rfc7468", "pkcs8", "rand_core 0.6.4", "sec1", @@ -2725,7 +2666,7 @@ version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", ] [[package]] @@ -2741,7 +2682,7 @@ dependencies = [ "hex", "k256", "log", - "rand 0.8.5", + "rand 0.8.6", "secp256k1 0.30.0", "serde", "sha3", @@ -2757,7 +2698,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -2777,7 +2718,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -2797,9 +2738,9 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "erased-serde" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" dependencies = [ "serde", "serde_core", @@ -2807,40 +2748,60 @@ dependencies = [ ] [[package]] -name = "ere-build-utils" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=d15c6b495d0bc42bf160ecfbb11fa7600047c821#d15c6b495d0bc42bf160ecfbb11fa7600047c821" +name = "ere-catalog" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere?tag=v0.11.0#e1d345c5e4e2b41d1334421310443306ea44f65f" dependencies = [ - "cargo_metadata", + "ere-util-build", + "serde", + "strum 0.27.2", ] [[package]] -name = "ere-compiler" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=d15c6b495d0bc42bf160ecfbb11fa7600047c821#d15c6b495d0bc42bf160ecfbb11fa7600047c821" +name = "ere-cluster-client-zisk" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere?tag=v0.11.0#e1d345c5e4e2b41d1334421310443306ea44f65f" dependencies = [ - "anyhow", "bincode 2.0.1", - "clap", - "ere-zkvm-interface", + "ere-compiler-core", + "ere-prover-core", + "ere-verifier-zisk", + "http", + "prost", + "prost-types", + "serde", + "thiserror 2.0.18", + "tokio", + "tonic", + "tonic-prost", +] + +[[package]] +name = "ere-codec" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere?tag=v0.11.0#e1d345c5e4e2b41d1334421310443306ea44f65f" + +[[package]] +name = "ere-compiler-core" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere?tag=v0.11.0#e1d345c5e4e2b41d1334421310443306ea44f65f" +dependencies = [ "serde", - "tracing-subscriber 0.3.20", ] [[package]] name = "ere-dockerized" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=d15c6b495d0bc42bf160ecfbb11fa7600047c821#d15c6b495d0bc42bf160ecfbb11fa7600047c821" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere?tag=v0.11.0#e1d345c5e4e2b41d1334421310443306ea44f65f" dependencies = [ "anyhow", - "ere-build-utils", - "ere-compiler", - "ere-server", - "ere-zkvm-interface", - "parking_lot", - "serde", + "ere-catalog", + "ere-compiler-core", + "ere-prover-core", + "ere-server-client", + "ere-util-tokio", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", ] @@ -2851,60 +2812,98 @@ version = "0.1.0" dependencies = [ "anyhow", "benchmark-runner", - "block-encoding-length-guest", "clap", "ere-dockerized", - "ere-zkvm-interface", + "humantime", + "tokio", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.23", ] [[package]] -name = "ere-io" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=d15c6b495d0bc42bf160ecfbb11fa7600047c821#d15c6b495d0bc42bf160ecfbb11fa7600047c821" +name = "ere-platform-core" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere?tag=v0.11.0#e1d345c5e4e2b41d1334421310443306ea44f65f" + +[[package]] +name = "ere-prover-core" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere?tag=v0.11.0#e1d345c5e4e2b41d1334421310443306ea44f65f" dependencies = [ + "anyhow", + "auto_impl", "bincode 2.0.1", - "rkyv", + "clap", + "ere-codec", + "ere-verifier-core", + "indexmap 2.14.0", "serde", + "strum 0.27.2", + "thiserror 2.0.18", ] [[package]] -name = "ere-platform-trait" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=d15c6b495d0bc42bf160ecfbb11fa7600047c821#d15c6b495d0bc42bf160ecfbb11fa7600047c821" +name = "ere-server-api" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere?tag=v0.11.0#e1d345c5e4e2b41d1334421310443306ea44f65f" dependencies = [ - "digest 0.10.7", + "prost", + "serde", + "twirp", ] [[package]] -name = "ere-server" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=d15c6b495d0bc42bf160ecfbb11fa7600047c821#d15c6b495d0bc42bf160ecfbb11fa7600047c821" +name = "ere-server-client" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere?tag=v0.11.0#e1d345c5e4e2b41d1334421310443306ea44f65f" dependencies = [ - "anyhow", "bincode 2.0.1", - "ere-zkvm-interface", - "prost 0.13.5", - "serde", - "thiserror 2.0.17", - "tokio", + "ere-prover-core", + "ere-server-api", + "thiserror 2.0.18", "twirp", ] [[package]] -name = "ere-zkvm-interface" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=d15c6b495d0bc42bf160ecfbb11fa7600047c821#d15c6b495d0bc42bf160ecfbb11fa7600047c821" +name = "ere-util-build" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere?tag=v0.11.0#e1d345c5e4e2b41d1334421310443306ea44f65f" +dependencies = [ + "cargo_metadata 0.19.2", +] + +[[package]] +name = "ere-util-tokio" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere?tag=v0.11.0#e1d345c5e4e2b41d1334421310443306ea44f65f" +dependencies = [ + "tokio", +] + +[[package]] +name = "ere-verifier-core" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere?tag=v0.11.0#e1d345c5e4e2b41d1334421310443306ea44f65f" dependencies = [ - "anyhow", "auto_impl", + "ere-codec", + "serde", +] + +[[package]] +name = "ere-verifier-zisk" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere?tag=v0.11.0#e1d345c5e4e2b41d1334421310443306ea44f65f" +dependencies = [ "bincode 2.0.1", - "clap", - "indexmap 2.12.1", + "bytemuck", + "ere-util-build", + "ere-verifier-core", + "proofman-util", + "proofman-verifier", "serde", - "strum 0.27.2", - "thiserror 2.0.17", + "thiserror 2.0.18", + "zisk-verifier", ] [[package]] @@ -2914,15 +2913,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] -[[package]] -name = "escape8259" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5692dd7b5a1978a5aeb0ce83b7655c58ca8efdcb79d21036ea249da95afec2c6" - [[package]] name = "ethbloom" version = "0.14.1" @@ -2951,51 +2944,12 @@ dependencies = [ ] [[package]] -name = "ethereum_serde_utils" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dc1355dbb41fbbd34ec28d4fb2a57d9a70c67ac3c19f6a5ca4d4a176b9e997a" -dependencies = [ - "alloy-primitives", - "hex", - "serde", - "serde_derive", - "serde_json", -] - -[[package]] -name = "ethereum_ssz" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dcddb2554d19cde19b099fadddde576929d7a4d0c1cd3512d1fd95cf174375c" -dependencies = [ - "alloy-primitives", - "ethereum_serde_utils", - "itertools 0.13.0", - "serde", - "serde_derive", - "smallvec", - "typenum", -] - -[[package]] -name = "ethereum_ssz_derive" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a657b6b3b7e153637dc6bdc6566ad9279d9ee11a15b12cfb24a2e04360637e9f" -dependencies = [ - "darling 0.20.11", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "ethrex-blockchain" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" +name = "ethrex-blockchain" +version = "12.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=b112f94748a222e78b642406155674df9e180ee4#b112f94748a222e78b642406155674df9e180ee4" dependencies = [ "bytes", + "crossbeam", "ethrex-common", "ethrex-crypto", "ethrex-metrics", @@ -3003,9 +2957,9 @@ dependencies = [ "ethrex-storage", "ethrex-trie", "ethrex-vm", - "hex", + "rayon", "rustc-hash", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-util", "tracing", @@ -3013,8 +2967,8 @@ dependencies = [ [[package]] name = "ethrex-common" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" +version = "12.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=b112f94748a222e78b642406155674df9e180ee4#b112f94748a222e78b642406155674df9e180ee4" dependencies = [ "bytes", "crc32fast", @@ -3023,131 +2977,134 @@ dependencies = [ "ethrex-rlp", "ethrex-trie", "hex", - "k256", - "kzg-rs", + "hex-literal", + "hex-simd", + "indexmap 2.14.0", "lazy_static", "libc", + "libssz 0.2.1 (git+https://github.com/lambdaclass/libssz?rev=7262a4f)", + "libssz-derive 0.2.1 (git+https://github.com/lambdaclass/libssz?rev=7262a4f)", + "libssz-merkle 0.2.1 (git+https://github.com/lambdaclass/libssz?rev=7262a4f)", + "libssz-types 0.2.1 (git+https://github.com/lambdaclass/libssz?rev=7262a4f)", + "lru", "once_cell", - "rayon", "rkyv", "rustc-hash", - "secp256k1 0.30.0", "serde", "serde_json", "sha2", - "sha3", - "thiserror 2.0.17", - "tinyvec", + "thiserror 2.0.18", "tracing", - "url", ] [[package]] name = "ethrex-crypto" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" +version = "12.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=b112f94748a222e78b642406155674df9e180ee4#b112f94748a222e78b642406155674df9e180ee4" dependencies = [ + "ark-bn254", + "ark-ec", + "ark-ff 0.5.0", + "bls12_381", "c-kzg", - "kzg-rs", - "thiserror 2.0.17", + "ethereum-types", + "ff", + "hex-literal", + "k256", + "malachite", + "num-bigint", + "p256", + "ripemd", + "secp256k1 0.30.0", + "sha2", + "thiserror 2.0.18", "tiny-keccak", ] [[package]] -name = "ethrex-guest" -version = "0.1.0" +name = "ethrex-guest-program" +version = "12.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=b112f94748a222e78b642406155674df9e180ee4#b112f94748a222e78b642406155674df9e180ee4" dependencies = [ - "ere-io", - "ere-platform-trait", + "bytes", + "ethereum-types", "ethrex-common", - "guest-libs", - "guest_program", + "ethrex-crypto", + "ethrex-l2-common", + "ethrex-rlp", + "ethrex-vm", + "hex", + "libssz 0.2.1 (git+https://github.com/lambdaclass/libssz?rev=7262a4f)", + "libssz-derive 0.2.1 (git+https://github.com/lambdaclass/libssz?rev=7262a4f)", + "libssz-merkle 0.2.1 (git+https://github.com/lambdaclass/libssz?rev=7262a4f)", + "libssz-types 0.2.1 (git+https://github.com/lambdaclass/libssz?rev=7262a4f)", "rkyv", + "serde", + "serde_with", + "thiserror 2.0.18", ] [[package]] name = "ethrex-l2-common" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" +version = "12.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=b112f94748a222e78b642406155674df9e180ee4#b112f94748a222e78b642406155674df9e180ee4" dependencies = [ "bytes", "ethereum-types", "ethrex-common", "ethrex-crypto", - "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", - "hex", "k256", "lambdaworks-crypto", "rkyv", - "secp256k1 0.30.0", "serde", "serde_with", - "sha3", - "thiserror 2.0.17", + "thiserror 2.0.18", + "tracing", ] [[package]] name = "ethrex-levm" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" +version = "12.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=b112f94748a222e78b642406155674df9e180ee4#b112f94748a222e78b642406155674df9e180ee4" dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", - "bitvec", - "bls12_381", "bytes", - "datatest-stable", "derive_more 1.0.0", "ethrex-common", "ethrex-crypto", "ethrex-rlp", - "k256", - "lambdaworks-math", - "lazy_static", "malachite", - "p256", - "ripemd", "rustc-hash", - "secp256k1 0.30.0", "serde", - "serde_json", - "sha2", - "sha3", "strum 0.27.2", - "thiserror 2.0.17", - "walkdir", + "thiserror 2.0.18", ] [[package]] name = "ethrex-metrics" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" +version = "12.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=b112f94748a222e78b642406155674df9e180ee4#b112f94748a222e78b642406155674df9e180ee4" dependencies = [ "axum", "ethrex-common", - "prometheus 0.13.4", + "prometheus", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.23", ] [[package]] name = "ethrex-p2p" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" +version = "12.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=b112f94748a222e78b642406155674df9e180ee4#b112f94748a222e78b642406155674df9e180ee4" dependencies = [ "aes", - "async-trait", + "aes-gcm", "bytes", "concat-kdf", - "crossbeam 0.8.4", + "crossbeam", "ctr", "ethereum-types", "ethrex-blockchain", @@ -3155,24 +3112,25 @@ dependencies = [ "ethrex-crypto", "ethrex-rlp", "ethrex-storage", - "ethrex-threadpool", "ethrex-trie", "futures", "hex", + "hkdf", "hmac", - "indexmap 2.12.1", + "indexmap 2.14.0", "lazy_static", - "prometheus 0.14.0", - "rand 0.8.5", + "lru", + "prometheus", + "rand 0.8.6", "rayon", + "rustc-hash", "secp256k1 0.30.0", "serde", - "serde_json", "sha2", "snap", "spawned-concurrency", "spawned-rt", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tokio-util", @@ -3181,22 +3139,18 @@ dependencies = [ [[package]] name = "ethrex-rlp" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" +version = "12.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=b112f94748a222e78b642406155674df9e180ee4#b112f94748a222e78b642406155674df9e180ee4" dependencies = [ "bytes", "ethereum-types", - "hex", - "lazy_static", - "snap", - "thiserror 2.0.17", - "tinyvec", + "thiserror 2.0.18", ] [[package]] name = "ethrex-rpc" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" +version = "12.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=b112f94748a222e78b642406155674df9e180ee4#b112f94748a222e78b642406155674df9e180ee4" dependencies = [ "axum", "axum-extra", @@ -3214,100 +3168,80 @@ dependencies = [ "ethrex-vm", "hex", "hex-literal", - "jsonwebtoken", - "rand 0.8.5", - "reqwest", + "jsonwebtoken 9.3.1", + "rand 0.8.6", + "reqwest 0.12.28", "secp256k1 0.30.0", "serde", "serde_json", "sha2", "spawned-concurrency", "spawned-rt", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-util", "tower-http", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.23", "uuid", ] [[package]] name = "ethrex-storage" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" +version = "12.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=b112f94748a222e78b642406155674df9e180ee4#b112f94748a222e78b642406155674df9e180ee4" dependencies = [ "anyhow", - "async-trait", - "bincode 1.3.3", "bytes", - "ethereum-types", "ethrex-common", "ethrex-crypto", "ethrex-rlp", "ethrex-trie", - "hex", - "lru 0.16.2", - "qfilter", + "fastbloom", + "lru", "rayon", "rustc-hash", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", + "tokio", "tracing", ] -[[package]] -name = "ethrex-threadpool" -version = "0.1.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "crossbeam 0.8.4", -] - [[package]] name = "ethrex-trie" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" +version = "12.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=b112f94748a222e78b642406155674df9e180ee4#b112f94748a222e78b642406155674df9e180ee4" dependencies = [ "anyhow", "bytes", - "crossbeam 0.8.4", - "digest 0.10.7", + "crossbeam", "ethereum-types", "ethrex-crypto", "ethrex-rlp", - "ethrex-threadpool", - "hex", "lazy_static", + "rayon", "rkyv", "rustc-hash", "serde", - "serde_json", - "smallvec", - "thiserror 2.0.17", - "tracing", + "thiserror 2.0.18", ] [[package]] name = "ethrex-vm" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" +version = "12.0.0" +source = "git+https://github.com/lambdaclass/ethrex.git?rev=b112f94748a222e78b642406155674df9e180ee4#b112f94748a222e78b642406155674df9e180ee4" dependencies = [ - "bincode 1.3.3", "bytes", "derive_more 1.0.0", "dyn-clone", - "ethereum-types", "ethrex-common", "ethrex-crypto", "ethrex-levm", "ethrex-rlp", - "ethrex-trie", - "lazy_static", - "rkyv", + "rustc-hash", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] @@ -3322,21 +3256,22 @@ dependencies = [ ] [[package]] -name = "fancy-regex" -version = "0.14.0" +name = "fastbloom" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298" +checksum = "4e7f34442dbe69c60fe8eaf58a8cafff81a1f278816d8ab4db255b3bef4ac3c4" dependencies = [ - "bit-set", - "regex-automata", - "regex-syntax", + "getrandom 0.3.4", + "libm", + "rand 0.9.4", + "siphasher", ] [[package]] name = "fastrand" -version = "2.3.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" [[package]] name = "fastrlp" @@ -3367,43 +3302,53 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ "bitvec", - "byteorder", - "ff_derive", "rand_core 0.6.4", "subtle", ] -[[package]] -name = "ff_derive" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f10d12652036b0e99197587c6ba87a8fc3031986499973c030d8b44fcc151b60" -dependencies = [ - "addchain", - "num-bigint 0.3.3", - "num-integer", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "fiat-crypto" version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +[[package]] +name = "fields" +version = "0.18.0" +source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.18.0#42ad4d02da3d3b6238ac126ead82a8814f3fd426" +dependencies = [ + "cfg-if", + "num-bigint", + "paste", + "serde", +] + [[package]] name = "filetime" -version = "0.2.26" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" +checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "libc", "libredox", - "windows-sys 0.60.2", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "fixed-cache" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41c7aa69c00ebccf06c3fa7ffe2a6cf26a58b5fe4deabfe646285ff48136a8f" +dependencies = [ + "equivalent", + "rapidhash", + "typeid", ] [[package]] @@ -3413,16 +3358,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand 0.8.5", + "rand 0.8.6", "rustc-hex", "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.117", +] + [[package]] name = "flate2" -version = "1.1.5" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", "miniz_oxide", @@ -3470,6 +3436,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + [[package]] name = "fsevent-sys" version = "4.1.0" @@ -3487,9 +3459,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" dependencies = [ "futures-channel", "futures-core", @@ -3502,9 +3474,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" dependencies = [ "futures-core", "futures-sink", @@ -3512,15 +3484,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" [[package]] name = "futures-executor" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" dependencies = [ "futures-core", "futures-task", @@ -3529,32 +3501,32 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" [[package]] name = "futures-macro" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "futures-sink" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" [[package]] name = "futures-task" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-timer" @@ -3568,9 +3540,9 @@ dependencies = [ [[package]] name = "futures-util" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ "futures-channel", "futures-core", @@ -3580,7 +3552,6 @@ dependencies = [ "futures-task", "memchr", "pin-project-lite", - "pin-utils", "slab", ] @@ -3590,12 +3561,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" -[[package]] -name = "gcd" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" - [[package]] name = "generic-array" version = "0.14.7" @@ -3609,11 +3574,11 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "js-sys", "libc", "wasi", @@ -3626,14 +3591,27 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "js-sys", "libc", - "r-efi", + "r-efi 5.3.0", "wasip2", "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", + "wasip2", + "wasip3", +] + [[package]] name = "ghash" version = "0.5.1" @@ -3646,11 +3624,11 @@ dependencies = [ [[package]] name = "git2" -version = "0.20.2" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" +checksum = "7b88256088d75a56f8ecfa070513a775dd9107f6530ef14919dac831af9cfe2b" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.1", "libc", "libgit2-sys", "log", @@ -3709,16 +3687,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "gmp-mpfr-sys" -version = "1.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60f8970a75c006bb2f8ae79c6768a116dd215fa8346a87aed99bf9d82ca43394" -dependencies = [ - "libc", - "windows-sys 0.60.2", -] - [[package]] name = "group" version = "0.13.0" @@ -3731,54 +3699,20 @@ dependencies = [ ] [[package]] -name = "guest-libs" -version = "0.1.0" +name = "guest" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere-guests?tag=v0.11.0#91735556bb1bdd6a16c3bcecee46ef14078846d0" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "anyhow", - "ere-io", - "ere-platform-trait", - "ethereum_ssz", - "ethereum_ssz_derive", - "reth-ethereum-primitives", - "reth-primitives-traits", - "reth-stateless", - "serde", - "serde_json", - "serde_with", + "ere-codec", + "ere-platform-core", "sha2", - "thiserror 2.0.17", -] - -[[package]] -name = "guest_program" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "ethrex-blockchain", - "ethrex-common", - "ethrex-crypto", - "ethrex-l2-common", - "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", - "hex", - "rkyv", - "serde", - "serde_json", - "serde_with", - "thiserror 2.0.17", ] [[package]] name = "h2" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" dependencies = [ "atomic-waker", "bytes", @@ -3786,7 +3720,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.12.1", + "indexmap 2.14.0", "slab", "tokio", "tokio-util", @@ -3816,9 +3750,6 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", -] [[package]] name = "hashbrown" @@ -3827,7 +3758,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", - "equivalent", "foldhash 0.1.5", ] @@ -3844,13 +3774,19 @@ dependencies = [ "serde_core", ] +[[package]] +name = "hashbrown" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" + [[package]] name = "hashlink" -version = "0.9.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" +checksum = "ea0b22561a9c04a7cb1a302c013e0259cd3b4bb619f145b32f72b8b4bcbed230" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.16.1", ] [[package]] @@ -3897,9 +3833,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hex-conservative" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +checksum = "fda06d18ac606267c40c04e41b9947729bf8b9efe74bd4e82b61a5f26a510b9f" dependencies = [ "arrayvec", ] @@ -3910,6 +3846,16 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +[[package]] +name = "hex-simd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f7685beb53fc20efc2605f32f5d51e9ba18b8ef237961d1760169d2290d3bee" +dependencies = [ + "outref", + "vsimd", +] + [[package]] name = "hickory-proto" version = "0.25.2" @@ -3917,7 +3863,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" dependencies = [ "async-trait", - "cfg-if 1.0.4", + "cfg-if", "data-encoding", "enum-as-inner", "futures-channel", @@ -3926,10 +3872,10 @@ dependencies = [ "idna", "ipnet", "once_cell", - "rand 0.9.2", + "rand 0.9.4", "ring", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", "tinyvec", "tokio", "tracing", @@ -3942,18 +3888,18 @@ version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "futures-util", "hickory-proto", "ipconfig", "moka", "once_cell", "parking_lot", - "rand 0.9.2", + "rand 0.9.4", "resolv-conf", "serde", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", ] @@ -4039,9 +3985,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" +checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" dependencies = [ "atomic-waker", "bytes", @@ -4054,7 +4000,6 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "pin-utils", "smallvec", "tokio", "want", @@ -4062,9 +4007,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.7" +version = "0.27.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" dependencies = [ "http", "hyper", @@ -4072,7 +4017,6 @@ dependencies = [ "log", "rustls", "rustls-native-certs", - "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", @@ -4109,14 +4053,13 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.18" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e9a2a24dc5c6821e71a7030e1e14b7b632acac55c40e9d2e082c621261bb56" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ "base64", "bytes", "futures-channel", - "futures-core", "futures-util", "http", "http-body", @@ -4125,7 +4068,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.5.10", + "socket2", "system-configuration", "tokio", "tower-service", @@ -4135,9 +4078,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -4145,7 +4088,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core", + "windows-core 0.61.2", ] [[package]] @@ -4159,12 +4102,13 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" dependencies = [ "displaydoc", "potential_utf", + "utf8_iter", "yoke", "zerofrom", "zerovec", @@ -4172,9 +4116,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" dependencies = [ "displaydoc", "litemap", @@ -4185,9 +4129,9 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" dependencies = [ "icu_collections", "icu_normalizer_data", @@ -4199,15 +4143,15 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" [[package]] name = "icu_properties" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" dependencies = [ "icu_collections", "icu_locale_core", @@ -4219,15 +4163,15 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" [[package]] name = "icu_provider" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" dependencies = [ "displaydoc", "icu_locale_core", @@ -4238,6 +4182,12 @@ dependencies = [ "zerovec", ] +[[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" @@ -4275,6 +4225,31 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "imbl" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e525189e5f603908d0c6e0d402cb5de9c4b2c8866151fabc4ebd771ed2630a2e" +dependencies = [ + "archery", + "bitmaps", + "imbl-sized-chunks", + "rand_core 0.9.5", + "rand_xoshiro", + "serde_core", + "version_check", + "wide", +] + +[[package]] +name = "imbl-sized-chunks" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f4241005618a62f8d57b2febd02510fb96e0137304728543dfc5fd6f052c22d" +dependencies = [ + "bitmaps", +] + [[package]] name = "impl-codec" version = "0.6.0" @@ -4319,7 +4294,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -4360,24 +4335,24 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.1" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "arbitrary", "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.0", "serde", "serde_core", ] [[package]] name = "inotify" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" +checksum = "bd5b3eaf1a28b758ac0faa5a4254e8ab2705605496f1b1f3fbbc3988ad73d199" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.1", "inotify-sys", "libc", ] @@ -4403,44 +4378,49 @@ dependencies = [ [[package]] name = "integration-tests" -version = "0.1.0" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere-guests?tag=v0.11.0#91735556bb1bdd6a16c3bcecee46ef14078846d0" dependencies = [ - "benchmark-runner", + "alloy-primitives", "ere-dockerized", - "ere-zkvm-interface", "flate2", + "guest", + "rayon", "serde", + "serde_json", + "sha2", + "stateless", + "stateless-validator-common", "tar", "tempfile", - "tokio", - "walkdir", - "witness-generator", - "zkevm-metrics", + "tracing", + "tracing-subscriber 0.3.23", ] [[package]] name = "ipconfig" -version = "0.3.2" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" +checksum = "4d40460c0ce33d6ce4b0630ad68ff63d6661961c48b6dba35e5a4d81cfb48222" dependencies = [ - "socket2 0.5.10", + "socket2", "widestring", - "windows-sys 0.48.0", - "winreg", + "windows-registry", + "windows-result 0.4.1", + "windows-sys 0.61.2", ] [[package]] name = "ipnet" -version = "2.11.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" [[package]] name = "iri-string" -version = "0.7.9" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" +checksum = "25e659a4bb38e810ebc252e53b5814ff908a8c58c2a9ce2fae1bbec24cbf4e20" dependencies = [ "memchr", "serde", @@ -4461,15 +4441,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.13.0" @@ -4490,9 +4461,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jni" @@ -4501,9 +4472,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", - "cfg-if 1.0.4", + "cfg-if", "combine", - "jni-sys", + "jni-sys 0.3.1", "log", "thiserror 1.0.69", "walkdir", @@ -4512,9 +4483,31 @@ dependencies = [ [[package]] name = "jni-sys" -version = "0.3.0" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.117", +] [[package]] name = "jobserver" @@ -4528,10 +4521,12 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.82" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" +checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" dependencies = [ + "cfg-if", + "futures-util", "once_cell", "wasm-bindgen", ] @@ -4569,9 +4564,9 @@ dependencies = [ "pin-project", "rustls", "rustls-pki-types", - "rustls-platform-verifier", + "rustls-platform-verifier 0.5.3", "soketto", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-rustls", "tokio-util", @@ -4595,11 +4590,11 @@ dependencies = [ "jsonrpsee-types", "parking_lot", "pin-project", - "rand 0.9.2", + "rand 0.9.4", "rustc-hash", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tower", @@ -4621,10 +4616,10 @@ dependencies = [ "jsonrpsee-core", "jsonrpsee-types", "rustls", - "rustls-platform-verifier", + "rustls-platform-verifier 0.5.3", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tower", "url", @@ -4640,7 +4635,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -4662,7 +4657,7 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tokio-util", @@ -4679,7 +4674,7 @@ dependencies = [ "http", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -4723,13 +4718,30 @@ dependencies = [ "simple_asn1", ] +[[package]] +name = "jsonwebtoken" +version = "10.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0529410abe238729a60b108898784df8984c87f6054c9c4fcacc47e4803c1ce1" +dependencies = [ + "aws-lc-rs", + "base64", + "getrandom 0.2.17", + "js-sys", + "pem", + "serde", + "serde_json", + "signature", + "simple_asn1", +] + [[package]] name = "k256" version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "ecdsa", "elliptic-curve", "once_cell", @@ -4740,23 +4752,38 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ "cpufeatures", ] [[package]] name = "keccak-asm" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" +checksum = "fa468878266ad91431012b3e5ef1bf9b170eab22883503a318d46857afa4579a" dependencies = [ "digest 0.10.7", "sha3-asm", ] +[[package]] +name = "konst" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "128133ed7824fcd73d6e7b17957c5eb7bacb885649bd8c69708b2331a10bcefb" +dependencies = [ + "konst_macro_rules", +] + +[[package]] +name = "konst_macro_rules" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4933f3f57a8e9d9da04db23fb153356ecaf00cbd14aee46279c33dc80925c37" + [[package]] name = "kqueue" version = "1.1.1" @@ -4777,20 +4804,6 @@ dependencies = [ "libc", ] -[[package]] -name = "kzg-rs" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9201effeea3fcc93b587904ae2df9ce97e433184b9d6d299e9ebc9830a546636" -dependencies = [ - "ff", - "hex", - "serde_arrays", - "sha2", - "sp1_bls12_381", - "spin", -] - [[package]] name = "lambdaworks-crypto" version = "0.13.0" @@ -4798,7 +4811,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58b1a1c1102a5a7fbbda117b79fb3a01e033459c738a3c1642269603484fd1c1" dependencies = [ "lambdaworks-math", - "rand 0.8.5", + "rand 0.8.6", "rand_chacha 0.3.1", "serde", "sha2", @@ -4811,11 +4824,10 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "018a95aa873eb49896a858dee0d925c33f3978d073c64b08dd4f2c9b35a017c6" dependencies = [ - "getrandom 0.2.16", - "num-bigint 0.4.6", + "getrandom 0.2.17", + "num-bigint", "num-traits", - "rand 0.8.5", - "rayon", + "rand 0.8.6", "serde", "serde_json", ] @@ -4826,17 +4838,23 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + [[package]] name = "libc" -version = "0.2.177" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libgit2-sys" -version = "0.18.2+1.9.1" +version = "0.18.3+1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c42fe03df2bd3c53a3a9c7317ad91d80c81cd1fb0caec8d7cc4cd2bfa10c222" +checksum = "c9b3acc4b91781bb0b3386669d325163746af5f6e4f73e6d2d630e09a35f3487" dependencies = [ "cc", "libc", @@ -4850,21 +4868,21 @@ version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "windows-link 0.2.1", ] [[package]] name = "libm" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libp2p-identity" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3104e13b51e4711ff5738caa1fb54467c8604c2e94d607e27745bcf709068774" +checksum = "f0c7892c221730ba55f7196e98b0b8ba5e04b4155651736036628e9f73ed6fc3" dependencies = [ "asn1_der", "bs58", @@ -4874,39 +4892,121 @@ dependencies = [ "multihash", "quick-protobuf", "sha2", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", "zeroize", ] [[package]] name = "libredox" -version = "0.1.10" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" +checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.1", "libc", - "redox_syscall", + "plain", + "redox_syscall 0.7.4", ] [[package]] -name = "libtest-mimic" -version = "0.8.1" +name = "librocksdb-sys" +version = "0.17.3+10.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5297962ef19edda4ce33aaa484386e0a5b3d7f2f4e037cbeee00503ef6b29d33" +checksum = "cef2a00ee60fe526157c9023edab23943fae1ce2ab6f4abb2a807c1746835de9" dependencies = [ - "anstream", - "anstyle", - "clap", - "escape8259", + "bindgen", + "bzip2-sys", + "cc", + "libc", + "libz-sys", + "lz4-sys", + "zstd-sys", +] + +[[package]] +name = "libssz" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54193e6560611847aceb81ae53c75aa7031b50304bead95ec935f97af79378f2" +dependencies = [ + "smallvec", +] + +[[package]] +name = "libssz" +version = "0.2.1" +source = "git+https://github.com/lambdaclass/libssz?rev=7262a4f#7262a4f17f71fb9108166ba260659bcdd64feb4c" +dependencies = [ + "smallvec", +] + +[[package]] +name = "libssz-derive" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bb6393ec2e9b660bbcb0d9d74aac7b3c351c7b4440dcc24e9d344e62cf4bf10" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "libssz-derive" +version = "0.2.1" +source = "git+https://github.com/lambdaclass/libssz?rev=7262a4f#7262a4f17f71fb9108166ba260659bcdd64feb4c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "libssz-merkle" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37acd26ea2fbecfd8af8121780a385284cfb6d6f4c2f77648a9798b5d95a87d8" +dependencies = [ + "libssz 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2", +] + +[[package]] +name = "libssz-merkle" +version = "0.2.1" +source = "git+https://github.com/lambdaclass/libssz?rev=7262a4f#7262a4f17f71fb9108166ba260659bcdd64feb4c" +dependencies = [ + "libssz 0.2.1 (git+https://github.com/lambdaclass/libssz?rev=7262a4f)", + "sha2", +] + +[[package]] +name = "libssz-types" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc4f9486929bd568731a599e9b4914aa44a0b4ecbd38c702151fe97210c323" +dependencies = [ + "libssz 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libssz-merkle 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec", +] + +[[package]] +name = "libssz-types" +version = "0.2.1" +source = "git+https://github.com/lambdaclass/libssz?rev=7262a4f#7262a4f17f71fb9108166ba260659bcdd64feb4c" +dependencies = [ + "libssz 0.2.1 (git+https://github.com/lambdaclass/libssz?rev=7262a4f)", + "libssz-merkle 0.2.1 (git+https://github.com/lambdaclass/libssz?rev=7262a4f)", + "smallvec", ] [[package]] name = "libz-sys" -version = "1.1.23" +version = "1.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d118bbf3771060e7311cc7bb0545b01d08a8b4a7de949198dec1fa0ca1c0f7" +checksum = "fc3a226e576f50782b3305c5ccf458698f92798987f551c6a02efe8276721e22" dependencies = [ "cc", "libc", @@ -4938,15 +5038,15 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" [[package]] name = "lock_api" @@ -4960,48 +5060,49 @@ dependencies = [ [[package]] name = "log" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "lru" -version = "0.12.5" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" dependencies = [ - "hashbrown 0.15.5", + "hashbrown 0.16.1", ] [[package]] -name = "lru" -version = "0.13.0" +name = "lru-slab" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" -dependencies = [ - "hashbrown 0.15.5", -] +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] -name = "lru" -version = "0.16.2" +name = "lz4-sys" +version = "1.11.1+lz4-1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96051b46fc183dc9cd4a223960ef37b9af631b55191852a8274bfef064cda20f" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" dependencies = [ - "hashbrown 0.16.1", + "cc", + "libc", ] [[package]] -name = "lru-slab" -version = "0.1.2" +name = "lz4_flex" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" +checksum = "98c23545df7ecf1b16c303910a69b079e8e251d60f7dd2cc9b4177f2afaf1746" [[package]] -name = "lz4_flex" -version = "0.11.5" +name = "mach2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08ab2867e3eeeca90e844d1940eab391c9dc5228783db2ed999acbc0a9ed375a" +checksum = "6a1b95cd5421ec55b445b5ae102f5ea0e768de1f82bd3001e11f426c269c3aea" +dependencies = [ + "libc", +] [[package]] name = "macro-string" @@ -5011,7 +5112,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -5062,13 +5163,13 @@ dependencies = [ [[package]] name = "match-lookup" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1265724d8cb29dbbc2b0f06fffb8bf1a8c0cf73a78eede9ba73a4a66c52a981e" +checksum = "757aee279b8bdbb9f9e676796fd459e4207a1f986e87886700abf589f5abf771" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] @@ -5086,41 +5187,26 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - [[package]] name = "memchr" -version = "2.7.6" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "memmap2" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" +checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3" dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" -dependencies = [ - "autocfg", -] - [[package]] name = "metrics" -version = "0.24.2" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dea7ac8057892855ec285c440160265225438c3c45072613c25a4b26e98ef5" +checksum = "5d5312e9ba3771cfa961b585728215e3d972c950a3eed9252aa093d6301277e8" dependencies = [ "ahash", "portable-atomic", @@ -5128,14 +5214,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.111", + "syn 2.0.117", ] [[package]] @@ -5162,9 +5247,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", "log", @@ -5174,9 +5259,9 @@ dependencies = [ [[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", @@ -5184,28 +5269,27 @@ 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.117", ] [[package]] name = "moka" -version = "0.12.11" +version = "0.12.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8261cd88c312e0004c1d51baad2980c66528dfdb2bee62003e643a4d8f86b077" +checksum = "957228ad12042ee839f93c8f257b62b4c0ab5eaae1d4fa60de53b27c9d7c5046" dependencies = [ - "crossbeam-channel 0.5.15", - "crossbeam-epoch 0.9.18", - "crossbeam-utils 0.8.21", + "crossbeam-channel", + "crossbeam-epoch", + "crossbeam-utils", "equivalent", "parking_lot", "portable-atomic", - "rustc_version 0.4.1", "smallvec", "tagptr", "uuid", @@ -5217,17 +5301,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fafa6961cabd9c63bcd77a45d7e3b7f3b552b70417831fb0f56db717e72407e" -[[package]] -name = "mpt" -version = "0.1.0" -source = "git+https://github.com/eth-act/zkvm-ethereum-mpt.git?tag=v0.4.0#d4d8f968c183aedc23100c3a5634dee14c320757" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-trie 0.8.1", - "arrayvec", -] - [[package]] name = "multiaddr" version = "0.18.2" @@ -5261,11 +5334,11 @@ dependencies = [ [[package]] name = "multihash" -version = "0.19.3" +version = "0.19.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" +checksum = "89ace881e3f514092ce9efbcb8f413d0ad9763860b828981c2de51ddc666936c" dependencies = [ - "core2", + "no_std_io2", "unsigned-varint", ] @@ -5286,14 +5359,14 @@ checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "native-tls" -version = "0.2.14" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" dependencies = [ "libc", "log", @@ -5301,16 +5374,37 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework 2.11.1", + "security-framework", "security-framework-sys", "tempfile", ] [[package]] -name = "nom" -version = "7.1.3" +name = "nix" +version = "0.31.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +checksum = "5d6d0705320c1e6ba1d912b5e37cf18071b6c2e9b7fa8215a1e8a7651966f5d3" +dependencies = [ + "bitflags 2.11.1", + "cfg-if", + "cfg_aliases", + "libc", +] + +[[package]] +name = "no_std_io2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a3564ce7035b1e4778d8cb6cacebb5d766b5e8fe5a75b9e441e33fb61a872c6" +dependencies = [ + "memchr", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", @@ -5322,7 +5416,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.1", "fsevent-sys", "inotify", "kqueue", @@ -5336,15 +5430,18 @@ dependencies = [ [[package]] name = "notify-types" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d" +checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" +dependencies = [ + "bitflags 2.11.1", +] [[package]] name = "ntapi" -version = "0.4.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +checksum = "c3b335231dfd352ffb0f8017f3b6027a4917f7df785ea2143d8af2adc66980ae" dependencies = [ "winapi", ] @@ -5355,7 +5452,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -5364,7 +5461,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" dependencies = [ - "num-bigint 0.4.6", + "num-bigint", "num-complex", "num-integer", "num-iter", @@ -5372,17 +5469,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-bigint" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-bigint" version = "0.4.6" @@ -5404,9 +5490,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.1.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" [[package]] name = "num-integer" @@ -5434,7 +5520,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "num-bigint 0.4.6", + "num-bigint", "num-integer", "num-traits", ] @@ -5461,9 +5547,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" dependencies = [ "num_enum_derive", "rustversion", @@ -5471,14 +5557,14 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -5492,23 +5578,13 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8983bb634df7248924ee0c4c3a749609b5abcb082c28fffe3254b3eb3602b307" -dependencies = [ - "const-hex", - "smallvec", -] - -[[package]] -name = "nybbles" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4b5ecbd0beec843101bffe848217f770e8b8da81d8355b7d6e226f2199b3dc" +checksum = "0d49ff0c0d00d4a502b39df9af3a525e1efeb14b9dabb5bb83335284c1309210" dependencies = [ "alloy-rlp", "arbitrary", - "cfg-if 1.0.4", + "cfg-if", "proptest", "ruint", "serde", @@ -5516,135 +5592,54 @@ dependencies = [ ] [[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" -dependencies = [ - "critical-section", - "portable-atomic", -] - -[[package]] -name = "once_cell_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" - -[[package]] -name = "op-alloy" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3b13412d297c1f9341f678b763750b120a73ffe998fa54a94d6eda98449e7ca" -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.22.4" +name = "objc2" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726da827358a547be9f1e37c2a756b9e3729cb0350f43408164794b370cad8ae" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde", - "arbitrary", - "derive_more 2.0.1", - "serde", - "serde_with", - "thiserror 2.0.17", + "objc2-encode", ] [[package]] -name = "op-alloy-network" -version = "0.22.4" +name = "objc2-core-foundation" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63f27e65be273ec8fcb0b6af0fd850b550979465ab93423705ceb3dfddbd2ab" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "alloy-consensus", - "alloy-network", - "alloy-primitives", - "alloy-provider", - "alloy-rpc-types-eth", - "alloy-signer", - "op-alloy-consensus", - "op-alloy-rpc-types", + "bitflags 2.11.1", ] [[package]] -name = "op-alloy-provider" -version = "0.22.4" +name = "objc2-encode" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a71456699aa256dc20119736422ad9a44da8b9585036117afb936778122093b9" -dependencies = [ - "alloy-network", - "alloy-primitives", - "alloy-provider", - "alloy-rpc-types-engine", - "alloy-transport", - "async-trait", - "op-alloy-rpc-types-engine", -] +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" [[package]] -name = "op-alloy-rpc-types" -version = "0.22.4" +name = "objc2-io-kit" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562dd4462562c41f9fdc4d860858c40e14a25df7f983ae82047f15f08fce4d19" +checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde", - "derive_more 2.0.1", - "op-alloy-consensus", - "serde", - "serde_json", - "thiserror 2.0.17", + "libc", + "objc2-core-foundation", ] [[package]] -name = "op-alloy-rpc-types-engine" -version = "0.22.4" +name = "once_cell" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8f24b8cb66e4b33e6c9e508bf46b8ecafc92eadd0b93fedd306c0accb477657" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-engine", - "alloy-serde", - "derive_more 2.0.1", - "ethereum_ssz", - "ethereum_ssz_derive", - "op-alloy-consensus", - "serde", - "snap", - "thiserror 2.0.17", + "critical-section", + "portable-atomic", ] [[package]] -name = "op-revm" -version = "14.1.0" +name = "once_cell_polyfill" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1475a779c73999fc803778524042319691b31f3d6699d2b560c4ed8be1db802a" -dependencies = [ - "auto_impl", - "revm", - "serde", -] +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "opaque-debug" @@ -5654,12 +5649,12 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.75" +version = "0.10.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328" +checksum = "f38c4372413cdaaf3cc79dd92d29d7d9f5ab09b51b10dded508fb90bb70b9222" dependencies = [ - "bitflags 2.10.0", - "cfg-if 1.0.4", + "bitflags 2.11.1", + "cfg-if", "foreign-types", "libc", "once_cell", @@ -5675,20 +5670,20 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "openssl-probe" -version = "0.1.6" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" [[package]] name = "openssl-sys" -version = "0.9.111" +version = "0.9.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" +checksum = "13ce1245cd07fcc4cfdb438f7507b0c7e4f3849a69fd84d52374c66d83741bb6" dependencies = [ "cc", "libc", @@ -5706,7 +5701,7 @@ dependencies = [ "futures-sink", "js-sys", "pin-project-lite", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] @@ -5720,23 +5715,23 @@ dependencies = [ "bytes", "http", "opentelemetry", - "reqwest", + "reqwest 0.12.28", ] [[package]] name = "opentelemetry-otlp" -version = "0.31.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2366db2dca4d2ad033cad11e6ee42844fd727007af5ad04a1730f4cb8163bf" +checksum = "1f69cd6acbb9af919df949cd1ec9e5e7fdc2ef15d234b6b795aaa525cc02f71f" dependencies = [ "http", "opentelemetry", "opentelemetry-http", "opentelemetry-proto", "opentelemetry_sdk", - "prost 0.14.1", - "reqwest", - "thiserror 2.0.17", + "prost", + "reqwest 0.12.28", + "thiserror 2.0.18", "tokio", "tonic", "tracing", @@ -5750,7 +5745,7 @@ checksum = "a7175df06de5eaee9909d4805a3d07e28bb752c34cab57fa9cff549da596b30f" dependencies = [ "opentelemetry", "opentelemetry_sdk", - "prost 0.14.1", + "prost", "tonic", "tonic-prost", ] @@ -5772,15 +5767,15 @@ dependencies = [ "futures-util", "opentelemetry", "percent-encoding", - "rand 0.9.2", - "thiserror 2.0.17", + "rand 0.9.4", + "thiserror 2.0.18", ] [[package]] -name = "option-ext" -version = "0.2.0" +name = "outref" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" [[package]] name = "p256" @@ -5794,118 +5789,6 @@ dependencies = [ "sha2", ] -[[package]] -name = "p3-baby-bear" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7521838ecab2ddf4f7bc4ceebad06ec02414729598485c1ada516c39900820e8" -dependencies = [ - "num-bigint 0.4.6", - "p3-field", - "p3-mds", - "p3-poseidon2", - "p3-symmetric", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-dft" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46414daedd796f1eefcdc1811c0484e4bced5729486b6eaba9521c572c76761a" -dependencies = [ - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", - "tracing", -] - -[[package]] -name = "p3-field" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48948a0516b349e9d1cdb95e7236a6ee010c44e68c5cc78b4b92bf1c4022a0d9" -dependencies = [ - "itertools 0.12.1", - "num-bigint 0.4.6", - "num-traits", - "p3-util", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-matrix" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4de3f373589477cb735ea58e125898ed20935e03664b4614c7fac258b3c42f" -dependencies = [ - "itertools 0.12.1", - "p3-field", - "p3-maybe-rayon", - "p3-util", - "rand 0.8.5", - "serde", - "tracing", -] - -[[package]] -name = "p3-maybe-rayon" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3968ad1160310296eb04f91a5f4edfa38fe1d6b2b8cd6b5c64e6f9b7370979e" - -[[package]] -name = "p3-mds" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2356b1ed0add6d5dfbf7a338ce534a6fde827374394a52cec16a0840af6e97c9" -dependencies = [ - "itertools 0.12.1", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-symmetric", - "p3-util", - "rand 0.8.5", -] - -[[package]] -name = "p3-poseidon2" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da1eec7e1b6900581bedd95e76e1ef4975608dd55be9872c9d257a8a9651c3a" -dependencies = [ - "gcd", - "p3-field", - "p3-mds", - "p3-symmetric", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-symmetric" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb439bea1d822623b41ff4b51e3309e80d13cadf8b86d16ffd5e6efb9fdc360" -dependencies = [ - "itertools 0.12.1", - "p3-field", - "serde", -] - -[[package]] -name = "p3-util" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c2c2010678b9332b563eaa38364915b585c1a94b5ca61e2c7541c087ddda5c" -dependencies = [ - "serde", -] - [[package]] name = "page_size" version = "0.6.0" @@ -5931,7 +5814,6 @@ version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" dependencies = [ - "arbitrary", "arrayvec", "bitvec", "byte-slice-cast", @@ -5952,7 +5834,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -5971,9 +5853,9 @@ version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.5.18", "smallvec", "windows-link 0.2.1", ] @@ -5994,15 +5876,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - [[package]] name = "percent-encoding" version = "2.3.2" @@ -6011,9 +5884,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.4" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" +checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662" dependencies = [ "memchr", "ucd-trie", @@ -6050,7 +5923,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -6064,29 +5937,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pin-utils" @@ -6106,9 +5979,15 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.32" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" + +[[package]] +name = "plain" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "plain_hasher" @@ -6125,7 +6004,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "cpufeatures", "opaque-debug", "universal-hash", @@ -6133,15 +6012,15 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.11.1" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" +checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "potential_utf" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" dependencies = [ "zerovec", ] @@ -6161,6 +6040,16 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.117", +] + [[package]] name = "primeorder" version = "0.13.6" @@ -6196,11 +6085,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.23.7", + "toml_edit 0.25.11+spec-1.1.0", ] [[package]] @@ -6222,84 +6111,91 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "procfs" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4" +checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.1", "hex", - "lazy_static", "procfs-core", "rustix 0.38.44", ] [[package]] name = "procfs-core" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29" +checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.1", "hex", ] [[package]] name = "prometheus" -version = "0.13.4" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" +checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "fnv", "lazy_static", "libc", "memchr", "parking_lot", "procfs", - "protobuf 2.28.0", - "thiserror 1.0.69", + "protobuf", + "thiserror 2.0.18", ] [[package]] -name = "prometheus" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ca5326d8d0b950a9acd87e6a3f94745394f62e4dae1b1ee22b2bc0c394af43a" +name = "proofman-util" +version = "0.18.0" +source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.18.0#42ad4d02da3d3b6238ac126ead82a8814f3fd426" dependencies = [ - "cfg-if 1.0.4", - "fnv", - "lazy_static", - "memchr", - "parking_lot", - "protobuf 3.7.2", - "thiserror 2.0.17", + "bincode 2.0.1", + "colored", + "serde", + "sysinfo 0.35.2", +] + +[[package]] +name = "proofman-verifier" +version = "0.18.0" +source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.18.0#42ad4d02da3d3b6238ac126ead82a8814f3fd426" +dependencies = [ + "bincode 2.0.1", + "fields", + "num-traits", + "serde", + "tracing", ] [[package]] name = "proptest" -version = "1.9.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" +checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.10.0", + "bitflags 2.11.1", "num-traits", - "rand 0.9.2", + "rand 0.9.4", "rand_chacha 0.9.0", "rand_xorshift", "regex-syntax", @@ -6320,78 +6216,47 @@ dependencies = [ [[package]] name = "proptest-derive" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee1c9ac207483d5e7db4940700de86a9aae46ef90c48b57f99fe7edb8345e49" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "proptest-derive" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "095a99f75c69734802359b682be8daaf8980296731f6470434ea2c652af1dd30" +checksum = "fb6dc647500e84a25a85b100e76c85b8ace114c209432dc174f20aac11d4ed6c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", -] - -[[package]] -name = "prost" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" -dependencies = [ - "bytes", - "prost-derive 0.13.5", + "syn 2.0.117", ] [[package]] name = "prost" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" +checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568" dependencies = [ "bytes", - "prost-derive 0.14.1", + "prost-derive", ] [[package]] name = "prost-derive" -version = "0.13.5" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" +checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" dependencies = [ "anyhow", - "itertools 0.12.1", + "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] -name = "prost-derive" -version = "0.14.1" +name = "prost-types" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" +checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" dependencies = [ - "anyhow", - "itertools 0.12.1", - "proc-macro2", - "quote", - "syn 2.0.111", + "prost", ] -[[package]] -name = "protobuf" -version = "2.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" - [[package]] name = "protobuf" version = "3.7.2" @@ -6429,18 +6294,24 @@ checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] -name = "qfilter" -version = "0.2.5" +name = "quanta" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "746341cd2357c9a4df2d951522b4a8dd1ef553e543119899ad7bf87e938c8fbe" +checksum = "f3ab5a9d756f0d97bdc89019bd2e4ea098cf9cde50ee7564dde6b81ccc8f06c7" dependencies = [ - "xxhash-rust", -] - + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi", + "web-sys", + "winapi", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -6469,8 +6340,8 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls", - "socket2 0.5.10", - "thiserror 2.0.17", + "socket2", + "thiserror 2.0.18", "tokio", "tracing", "web-time", @@ -6478,20 +6349,21 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.13" +version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ + "aws-lc-rs", "bytes", "getrandom 0.3.4", "lru-slab", - "rand 0.9.2", + "rand 0.9.4", "ring", "rustc-hash", "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.17", + "thiserror 2.0.18", "tinyvec", "tracing", "web-time", @@ -6506,16 +6378,16 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.5.10", + "socket2", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] name = "quote" -version = "1.0.42" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -6526,6 +6398,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "radium" version = "0.7.0" @@ -6543,9 +6421,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" dependencies = [ "libc", "rand_chacha 0.3.1", @@ -6555,12 +6433,12 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.3", + "rand_core 0.9.5", "serde", ] @@ -6581,7 +6459,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.3", + "rand_core 0.9.5", ] [[package]] @@ -6590,14 +6468,14 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", ] [[package]] name = "rand_core" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ "getrandom 0.3.4", "serde", @@ -6609,14 +6487,42 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" dependencies = [ - "rand_core 0.9.3", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_xoshiro" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f703f4665700daf5512dcca5f43afa6af89f09db47fb56be587f80636bda2d41" +dependencies = [ + "rand_core 0.9.5", +] + +[[package]] +name = "rapidhash" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e48930979c155e2f33aa36ab3119b5ee81332beb6482199a8ecd6029b80b59" +dependencies = [ + "rand 0.9.4", + "rustversion", +] + +[[package]] +name = "raw-cpuid" +version = "11.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" +dependencies = [ + "bitflags 2.11.1", ] [[package]] name = "rayon" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" dependencies = [ "either", "rayon-core", @@ -6628,8 +6534,8 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ - "crossbeam-deque 0.8.6", - "crossbeam-utils 0.8.21", + "crossbeam-deque", + "crossbeam-utils", ] [[package]] @@ -6638,29 +6544,27 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.1", ] [[package]] -name = "redox_users" -version = "0.4.6" +name = "redox_syscall" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +checksum = "f450ad9c3b1da563fb6948a8e0fb0fb9269711c9c73d9ea1de5058c79c8d643a" dependencies = [ - "getrandom 0.2.16", - "libredox", - "thiserror 1.0.69", + "bitflags 2.11.1", ] [[package]] name = "redox_users" -version = "0.5.2" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "libredox", - "thiserror 2.0.17", + "thiserror 1.0.69", ] [[package]] @@ -6680,14 +6584,14 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "regex" -version = "1.12.2" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -6697,9 +6601,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -6708,9 +6612,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "rend" @@ -6723,9 +6627,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.24" +version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ "base64", "bytes", @@ -6767,6 +6671,46 @@ dependencies = [ "web-sys", ] +[[package]] +name = "reqwest" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" +dependencies = [ + "base64", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "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", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", +] + [[package]] name = "resolv-conf" version = "0.7.6" @@ -6775,16 +6719,17 @@ checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" [[package]] name = "reth-basic-payload-builder" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "futures-core", "futures-util", "metrics", "reth-chain-state", + "reth-execution-cache", "reth-metrics", "reth-payload-builder", "reth-payload-builder-primitives", @@ -6793,25 +6738,27 @@ dependencies = [ "reth-revm", "reth-storage-api", "reth-tasks", + "reth-trie-parallel", + "serde", "tokio", "tracing", ] [[package]] name = "reth-chain-state" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-signer", "alloy-signer-local", - "derive_more 2.0.1", + "derive_more 2.1.1", "metrics", "parking_lot", "pin-project", - "rand 0.9.2", + "rand 0.9.4", "reth-chainspec", "reth-errors", "reth-ethereum-primitives", @@ -6830,18 +6777,18 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-evm", "alloy-genesis", "alloy-primitives", - "alloy-trie 0.9.1", + "alloy-trie", "auto_impl", - "derive_more 2.0.1", + "derive_more 2.1.1", "reth-ethereum-forks", "reth-network-peers", "reth-primitives-traits", @@ -6850,35 +6797,36 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", - "cfg-if 1.0.4", + "cfg-if", "eyre", "libc", - "rand 0.8.5", + "rand 0.8.6", "reth-fs-util", "secp256k1 0.30.0", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "reth-codecs" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a79b3247ae4fbb1d4d35ce83a11fc596428a4c6ea836c98a75a55340192578a4" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-genesis", "alloy-primitives", - "alloy-trie 0.9.1", + "alloy-trie", "arbitrary", "bytes", "modular-bitfield", - "op-alloy-consensus", + "parity-scale-codec", "reth-codecs-derive", "reth-zstd-compressors", "serde", @@ -6887,18 +6835,19 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df5dbae40c272b8a1b4fcc08ee2d4e77d3b0ccdb187c1313f412a73ff54ff2a2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "reth-config" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "eyre", "humantime-serde", @@ -6907,30 +6856,31 @@ dependencies = [ "reth-stages-types", "reth-static-file-types", "serde", - "toml", + "toml 0.9.12+spec-1.1.0", "url", ] [[package]] name = "reth-consensus" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-primitives", "auto_impl", "reth-execution-types", "reth-primitives-traits", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "reth-consensus-common" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", + "alloy-primitives", "reth-chainspec", "reth-consensus", "reth-primitives-traits", @@ -6938,15 +6888,16 @@ dependencies = [ [[package]] name = "reth-db" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", - "derive_more 2.0.1", + "derive_more 2.1.1", "eyre", "metrics", "page_size", "parking_lot", + "quanta", "reth-db-api", "reth-fs-util", "reth-libmdbx", @@ -6957,30 +6908,29 @@ dependencies = [ "reth-tracing", "rustc-hash", "strum 0.27.2", - "sysinfo 0.33.1", + "sysinfo 0.38.4", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", + "tracing", ] [[package]] name = "reth-db-api" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-genesis", "alloy-primitives", "arbitrary", + "arrayvec", "bytes", - "derive_more 2.0.1", + "derive_more 2.1.1", "metrics", "modular-bitfield", - "parity-scale-codec", "proptest", "reth-codecs", "reth-db-models", "reth-ethereum-primitives", - "reth-optimism-primitives", "reth-primitives-traits", "reth-prune-types", "reth-stages-types", @@ -6992,8 +6942,8 @@ dependencies = [ [[package]] name = "reth-db-common" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -7016,16 +6966,16 @@ dependencies = [ "reth-trie-db", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] [[package]] name = "reth-db-models" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "arbitrary", "bytes", @@ -7037,8 +6987,8 @@ dependencies = [ [[package]] name = "reth-discv4" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7046,7 +6996,7 @@ dependencies = [ "enr", "itertools 0.14.0", "parking_lot", - "rand 0.8.5", + "rand 0.8.6", "reth-ethereum-forks", "reth-net-banlist", "reth-net-nat", @@ -7054,7 +7004,7 @@ dependencies = [ "schnellru", "secp256k1 0.30.0", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tracing", @@ -7062,39 +7012,39 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "alloy-rlp", - "derive_more 2.0.1", + "derive_more 2.1.1", "discv5", "enr", "futures", "itertools 0.14.0", "metrics", - "rand 0.9.2", + "rand 0.9.4", "reth-chainspec", "reth-ethereum-forks", "reth-metrics", "reth-network-peers", "secp256k1 0.30.0", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", ] [[package]] name = "reth-dns-discovery" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", + "dashmap", "data-encoding", "enr", "hickory-resolver", "linked_hash_set", - "parking_lot", "reth-ethereum-forks", "reth-network-peers", "reth-tokio-util", @@ -7102,7 +7052,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tracing", @@ -7110,8 +7060,8 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "aes", "alloy-primitives", @@ -7125,12 +7075,11 @@ dependencies = [ "futures", "hmac", "pin-project", - "rand 0.8.5", + "rand 0.8.6", "reth-network-peers", "secp256k1 0.30.0", "sha2", - "sha3", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tokio-util", @@ -7139,8 +7088,8 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7162,11 +7111,11 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", @@ -7181,31 +7130,31 @@ dependencies = [ "reth-primitives-traits", "reth-trie-common", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", ] [[package]] name = "reth-errors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "reth-consensus", "reth-execution-errors", "reth-storage-errors", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "reth-eth-wire" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-chains", "alloy-primitives", "alloy-rlp", "bytes", - "derive_more 2.0.1", + "derive_more 2.1.1", "futures", "pin-project", "reth-codecs", @@ -7217,7 +7166,7 @@ dependencies = [ "reth-primitives-traits", "serde", "snap", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tokio-util", @@ -7226,32 +7175,33 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips", + "alloy-eip7928", + "alloy-eips 2.0.1", "alloy-hardforks", "alloy-primitives", "alloy-rlp", "bytes", - "derive_more 2.0.1", + "derive_more 2.1.1", "reth-chainspec", "reth-codecs-derive", "reth-ethereum-primitives", "reth-primitives-traits", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "reth-ethereum-consensus" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "reth-chainspec", "reth-consensus", @@ -7263,26 +7213,24 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", - "alloy-rlp", "alloy-rpc-types-engine", "reth-engine-primitives", "reth-ethereum-primitives", "reth-payload-primitives", "reth-primitives-traits", "serde", - "sha2", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "reth-ethereum-forks" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -7294,28 +7242,22 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", - "alloy-rlp", "alloy-rpc-types-eth", - "alloy-serde", - "arbitrary", - "modular-bitfield", "reth-codecs", "reth-primitives-traits", - "reth-zstd-compressors", "serde", - "serde_with", ] [[package]] name = "reth-etl" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "rayon", "reth-db-api", @@ -7324,16 +7266,17 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-evm", "alloy-primitives", "auto_impl", - "derive_more 2.0.1", + "derive_more 2.1.1", "futures-util", + "rayon", "reth-execution-errors", "reth-execution-types", "reth-primitives-traits", @@ -7345,15 +7288,14 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-evm", "alloy-primitives", "alloy-rpc-types-engine", - "derive_more 2.0.1", "reth-chainspec", "reth-ethereum-forks", "reth-ethereum-primitives", @@ -7364,29 +7306,48 @@ dependencies = [ "revm", ] +[[package]] +name = "reth-execution-cache" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" +dependencies = [ + "alloy-primitives", + "fixed-cache", + "metrics", + "parking_lot", + "reth-errors", + "reth-metrics", + "reth-primitives-traits", + "reth-provider", + "reth-revm", + "reth-trie", + "tracing", +] + [[package]] name = "reth-execution-errors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-evm", "alloy-primitives", "alloy-rlp", - "nybbles 0.4.6", + "nybbles", "reth-storage-errors", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "reth-execution-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-evm", "alloy-primitives", - "derive_more 2.0.1", + "alloy-rlp", + "derive_more 2.1.1", "reth-ethereum-primitives", "reth-primitives-traits", "reth-trie-common", @@ -7397,55 +7358,35 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "serde", "serde_json", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-guest" -version = "0.1.0" -dependencies = [ - "alloy-primitives", - "ere-io", - "ere-platform-trait", - "guest-libs", - "k256", - "once_cell", - "reth-chainspec", - "reth-ethereum-primitives", - "reth-evm-ethereum", - "reth-primitives-traits", - "reth-stateless", - "reth-trie-common", - "serde", - "serde_with", - "sparsestate", + "thiserror 2.0.18", ] [[package]] name = "reth-libmdbx" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.1", "byteorder", + "crossbeam-queue", "dashmap", - "derive_more 2.0.1", + "derive_more 2.1.1", "parking_lot", "reth-mdbx-sys", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] [[package]] name = "reth-mdbx-sys" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "bindgen", "cc", @@ -7453,8 +7394,8 @@ dependencies = [ [[package]] name = "reth-metrics" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "futures", "metrics", @@ -7465,8 +7406,8 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "ipnet", @@ -7474,30 +7415,30 @@ dependencies = [ [[package]] name = "reth-net-nat" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "futures-util", "if-addrs", - "reqwest", + "reqwest 0.13.2", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", ] [[package]] name = "reth-network" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", "aquamarine", "auto_impl", - "derive_more 2.0.1", + "derive_more 2.1.1", "discv5", "enr", "futures", @@ -7505,8 +7446,9 @@ dependencies = [ "metrics", "parking_lot", "pin-project", - "rand 0.8.5", - "rand 0.9.2", + "rand 0.8.6", + "rand 0.9.4", + "rayon", "reth-chainspec", "reth-consensus", "reth-discv4", @@ -7534,7 +7476,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tokio-util", @@ -7543,15 +7485,15 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-primitives", "alloy-rpc-types-admin", "alloy-rpc-types-eth", "auto_impl", - "derive_more 2.0.1", + "derive_more 2.1.1", "enr", "futures", "reth-eth-wire-types", @@ -7561,21 +7503,21 @@ dependencies = [ "reth-network-types", "reth-tokio-util", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", ] [[package]] name = "reth-network-p2p" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "auto_impl", - "derive_more 2.0.1", + "derive_more 2.1.1", "futures", "reth-consensus", "reth-eth-wire-types", @@ -7590,23 +7532,23 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "alloy-rlp", "enr", "secp256k1 0.30.0", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "url", ] [[package]] name = "reth-network-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -7619,25 +7561,25 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "anyhow", "bincode 1.3.3", - "derive_more 2.0.1", + "derive_more 2.1.1", "lz4_flex", "memmap2", "reth-fs-util", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", "zstd", ] [[package]] name = "reth-node-api" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -7660,21 +7602,21 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-engine", "clap", - "derive_more 2.0.1", + "derive_more 2.1.1", "dirs-next", "eyre", "futures", "humantime", "ipnet", - "rand 0.9.2", + "rand 0.9.4", "reth-chainspec", "reth-cli-util", "reth-config", @@ -7691,7 +7633,6 @@ dependencies = [ "reth-network-p2p", "reth-network-peers", "reth-primitives-traits", - "reth-provider", "reth-prune-types", "reth-rpc-convert", "reth-rpc-eth-types", @@ -7699,15 +7640,15 @@ dependencies = [ "reth-stages-types", "reth-storage-api", "reth-storage-errors", + "reth-tasks", "reth-tracing", "reth-tracing-otlp", "reth-transaction-pool", "secp256k1 0.30.0", "serde", - "shellexpand", "strum 0.27.2", - "thiserror 2.0.17", - "toml", + "thiserror 2.0.18", + "toml 0.9.12+spec-1.1.0", "tracing", "url", "vergen", @@ -7716,8 +7657,8 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "reth-chainspec", "reth-db-api", @@ -7726,37 +7667,25 @@ dependencies = [ "reth-primitives-traits", ] -[[package]] -name = "reth-optimism-primitives" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "op-alloy-consensus", - "reth-primitives-traits", - "serde", - "serde_with", -] - [[package]] name = "reth-payload-builder" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-primitives", "alloy-rpc-types", + "derive_more 2.1.1", "futures-util", "metrics", "reth-chain-state", "reth-ethereum-engine-primitives", + "reth-execution-cache", "reth-metrics", "reth-payload-builder-primitives", "reth-payload-primitives", "reth-primitives-traits", + "reth-trie-parallel", "tokio", "tokio-stream", "tracing", @@ -7764,8 +7693,8 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "pin-project", "reth-payload-primitives", @@ -7776,16 +7705,16 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", + "alloy-rlp", "alloy-rpc-types-engine", "auto_impl", "either", - "op-alloy-rpc-types-engine", "reth-chain-state", "reth-chainspec", "reth-errors", @@ -7793,32 +7722,44 @@ dependencies = [ "reth-primitives-traits", "reth-trie-common", "serde", - "thiserror 2.0.17", + "sha2", + "thiserror 2.0.18", "tokio", ] [[package]] -name = "reth-primitives-traits" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +name = "reth-payload-validator" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", - "alloy-genesis", + "alloy-rpc-types-engine", + "reth-primitives-traits", +] + +[[package]] +name = "reth-primitives-traits" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc759fd87c3f65440e5d3bfa3107fe8a13a61a6807cd485c62c49d63c7bf6717" +dependencies = [ + "alloy-consensus", + "alloy-eips 2.0.1", + "alloy-genesis", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", - "alloy-trie 0.9.1", + "alloy-trie", "arbitrary", - "auto_impl", "byteorder", "bytes", - "derive_more 2.0.1", + "dashmap", + "derive_more 2.1.1", "modular-bitfield", "once_cell", - "op-alloy-consensus", "proptest", "proptest-arbitrary-interop", + "quanta", "rayon", "reth-codecs", "revm-bytecode", @@ -7826,20 +7767,19 @@ dependencies = [ "revm-state", "secp256k1 0.30.0", "serde", - "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "reth-provider" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", + "alloy-genesis", "alloy-primitives", "alloy-rpc-types-engine", - "dashmap", "eyre", "itertools 0.14.0", "metrics", @@ -7865,10 +7805,12 @@ dependencies = [ "reth-static-file-types", "reth-storage-api", "reth-storage-errors", + "reth-tasks", "reth-trie", "reth-trie-db", "revm-database", "revm-state", + "rocksdb", "strum 0.27.2", "tokio", "tracing", @@ -7876,25 +7818,28 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "arbitrary", - "derive_more 2.0.1", + "derive_more 2.1.1", "modular-bitfield", "reth-codecs", "serde", "strum 0.27.2", - "thiserror 2.0.17", + "thiserror 2.0.18", + "tracing", ] [[package]] name = "reth-revm" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-debug", "reth-primitives-traits", "reth-storage-api", "reth-storage-errors", @@ -7904,10 +7849,10 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-genesis", "alloy-json-rpc", "alloy-primitives", @@ -7921,19 +7866,21 @@ dependencies = [ "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-serde", + "alloy-serde 2.0.1", "jsonrpsee", "reth-chain-state", "reth-engine-primitives", "reth-network-peers", "reth-rpc-eth-api", "reth-trie-common", + "serde", + "serde_json", ] [[package]] name = "reth-rpc-convert" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-evm", @@ -7941,24 +7888,24 @@ dependencies = [ "alloy-network", "alloy-primitives", "alloy-rpc-types-eth", - "alloy-signer", "auto_impl", "dyn-clone", "jsonrpsee-types", - "reth-ethereum-primitives", "reth-evm", "reth-primitives-traits", - "thiserror 2.0.17", + "reth-rpc-traits", + "thiserror 2.0.18", ] [[package]] name = "reth-rpc-eth-api" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-dyn-abi", - "alloy-eips", + "alloy-eip7928", + "alloy-eips 2.0.1", "alloy-evm", "alloy-json-rpc", "alloy-network", @@ -7966,7 +7913,7 @@ dependencies = [ "alloy-rlp", "alloy-rpc-types-eth", "alloy-rpc-types-mev", - "alloy-serde", + "alloy-serde 2.0.1", "async-trait", "auto_impl", "dyn-clone", @@ -7991,17 +7938,18 @@ dependencies = [ "reth-trie-common", "revm", "revm-inspectors", + "serde_json", "tokio", "tracing", ] [[package]] name = "reth-rpc-eth-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-evm", "alloy-network", "alloy-primitives", @@ -8009,14 +7957,14 @@ dependencies = [ "alloy-rpc-types-eth", "alloy-sol-types", "alloy-transport", - "derive_more 2.0.1", + "derive_more 2.1.1", "futures", "itertools 0.14.0", "jsonrpsee-core", "jsonrpsee-types", "metrics", - "rand 0.9.2", - "reqwest", + "rand 0.9.4", + "reqwest 0.13.2", "reth-chain-state", "reth-chainspec", "reth-errors", @@ -8036,18 +7984,19 @@ dependencies = [ "revm-inspectors", "schnellru", "serde", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tracing", + "url", ] [[package]] name = "reth-rpc-server-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-engine", "jsonrpsee-core", @@ -8059,66 +8008,55 @@ dependencies = [ ] [[package]] -name = "reth-stages-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +name = "reth-rpc-traits" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b766da61ec7c46596386b4bc88d9b57d1939d3da2bc9e927567a8a23650e5ce9" dependencies = [ + "alloy-consensus", + "alloy-network", "alloy-primitives", - "arbitrary", - "bytes", - "modular-bitfield", - "reth-codecs", - "reth-trie-common", - "serde", + "alloy-rpc-types-eth", + "alloy-signer", + "reth-primitives-traits", + "thiserror 2.0.18", ] [[package]] -name = "reth-stateless" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +name = "reth-stages-types" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-consensus", - "alloy-genesis", "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-debug", - "alloy-trie 0.9.1", - "itertools 0.14.0", - "k256", - "reth-chainspec", - "reth-consensus", - "reth-errors", - "reth-ethereum-consensus", - "reth-ethereum-primitives", - "reth-evm", - "reth-primitives-traits", - "reth-revm", + "arbitrary", + "bytes", + "modular-bitfield", + "reth-codecs", "reth-trie-common", - "reth-trie-sparse", - "secp256k1 0.30.0", "serde", - "serde_with", - "thiserror 2.0.17", ] [[package]] name = "reth-static-file-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", - "derive_more 2.0.1", + "derive_more 2.1.1", + "fixed-map", + "reth-stages-types", "serde", "strum 0.27.2", + "tracing", ] [[package]] name = "reth-storage-api" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", @@ -8138,33 +8076,38 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", - "derive_more 2.0.1", + "derive_more 2.1.1", + "reth-codecs", "reth-primitives-traits", "reth-prune-types", "reth-static-file-types", "revm-database-interface", - "thiserror 2.0.17", + "revm-state", + "thiserror 2.0.18", ] [[package]] name = "reth-tasks" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "auto_impl", - "dyn-clone", + "crossbeam-utils", + "dashmap", "futures-util", + "libc", "metrics", + "parking_lot", "pin-project", "rayon", "reth-metrics", - "thiserror 2.0.17", + "thiserror 2.0.18", + "thread-priority", "tokio", "tracing", "tracing-futures", @@ -8172,8 +8115,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "tokio", "tokio-stream", @@ -8182,23 +8125,25 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "clap", "eyre", + "reth-tracing-otlp", "rolling-file", "tracing", "tracing-appender", "tracing-journald", "tracing-logfmt", - "tracing-subscriber 0.3.20", + "tracing-samply", + "tracing-subscriber 0.3.23", ] [[package]] name = "reth-tracing-otlp" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "clap", "eyre", @@ -8208,37 +8153,41 @@ dependencies = [ "opentelemetry_sdk", "tracing", "tracing-opentelemetry", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.23", "url", ] [[package]] name = "reth-transaction-pool" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", "aquamarine", "auto_impl", - "bitflags 2.10.0", + "bitflags 2.11.1", "futures-util", + "imbl", "metrics", "parking_lot", "pin-project", - "rand 0.9.2", + "rand 0.9.4", "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", @@ -8246,7 +8195,7 @@ dependencies = [ "serde", "serde_json", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tracing", @@ -8254,14 +8203,14 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", - "alloy-trie 0.9.1", + "alloy-trie", "auto_impl", "itertools 0.14.0", "metrics", @@ -8280,22 +8229,22 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", - "alloy-serde", - "alloy-trie 0.9.1", + "alloy-serde 2.0.1", + "alloy-trie", "arbitrary", "arrayvec", "bytes", - "derive_more 2.0.1", + "derive_more 2.1.1", "hash-db", "itertools 0.14.0", - "nybbles 0.4.6", + "nybbles", "plain_hasher", "rayon", "reth-codecs", @@ -8307,47 +8256,88 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", + "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-parallel" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" +dependencies = [ + "alloy-eip7928", + "alloy-evm", + "alloy-primitives", + "alloy-rlp", + "crossbeam-channel", + "crossbeam-utils", + "derive_more 2.1.1", + "itertools 0.14.0", + "metrics", + "rayon", + "reth-execution-errors", + "reth-metrics", "reth-primitives-traits", + "reth-provider", + "reth-storage-errors", + "reth-tasks", "reth-trie", + "reth-trie-sparse", + "revm-state", + "thiserror 2.0.18", "tracing", ] [[package]] name = "reth-trie-sparse" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "alloy-rlp", - "alloy-trie 0.9.1", + "alloy-trie", "auto_impl", + "metrics", "rayon", "reth-execution-errors", + "reth-metrics", "reth-primitives-traits", "reth-trie-common", + "serde", + "serde_json", + "slotmap", "smallvec", "tracing", ] [[package]] name = "reth-zstd-compressors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82fa54c341d926ec9b0f7fc0c87f831aa4959de699e69caab1a0bfd914326c09" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "33.1.0" +version = "38.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c85ed0028f043f87b3c88d4a4cb6f0a76440085523b6a8afe5ff003cf418054" +checksum = "91202d39dbe8e8d10e9e8f2b76c30da68ecd1d25be69ba6d853ad0d03a3a398a" dependencies = [ "revm-bytecode", "revm-context", @@ -8364,9 +8354,9 @@ dependencies = [ [[package]] name = "revm-bytecode" -version = "7.1.1" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2c6b5e6e8dd1e28a4a60e5f46615d4ef0809111c9e63208e55b5c7058200fb0" +checksum = "bdbb3a3d735efa94c91f2ef6bf20a35f99a77bc78f3e25bd758336901bdf9661" dependencies = [ "bitvec", "phf", @@ -8376,12 +8366,12 @@ dependencies = [ [[package]] name = "revm-context" -version = "12.1.0" +version = "16.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f038f0c9c723393ac897a5df9140b21cfa98f5753a2cb7d0f28fa430c4118abf" +checksum = "c5f68d928d8b228e0faeb1c6ed75c4fde7d124f1ddf9119b67e7a0ad4041237d" dependencies = [ "bitvec", - "cfg-if 1.0.4", + "cfg-if", "derive-where", "revm-bytecode", "revm-context-interface", @@ -8393,9 +8383,9 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "13.1.0" +version = "17.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "431c9a14e4ef1be41ae503708fd02d974f80ef1f2b6b23b5e402e8d854d1b225" +checksum = "1f3758e6167c4ba7a59a689c519a047edaefcd4c37d74f279b93ed87bc8aece4" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -8409,11 +8399,11 @@ dependencies = [ [[package]] name = "revm-database" -version = "9.0.6" +version = "13.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "980d8d6bba78c5dd35b83abbb6585b0b902eb25ea4448ed7bfba6283b0337191" +checksum = "c281a1f11d3bcb8c0bba1199ed6bcb001d1aeb3d4fb366819e14f88723989a4e" dependencies = [ - "alloy-eips", + "alloy-eips 1.8.3", "revm-bytecode", "revm-database-interface", "revm-primitives", @@ -8423,22 +8413,23 @@ dependencies = [ [[package]] name = "revm-database-interface" -version = "8.0.5" +version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cce03e3780287b07abe58faf4a7f5d8be7e81321f93ccf3343c8f7755602bae" +checksum = "d89efb9832a4e3742bb4ded5f7fe5bf905e8860e69427d4dfec153484fc6d304" dependencies = [ "auto_impl", "either", "revm-primitives", "revm-state", "serde", + "thiserror 2.0.18", ] [[package]] name = "revm-handler" -version = "14.1.0" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d44f8f6dbeec3fecf9fe55f78ef0a758bdd92ea46cd4f1ca6e2a946b32c367f3" +checksum = "783e903d6922b7f5f9a940d1bb229530502d2924b1aed9d5ca5a94ebf065d460" dependencies = [ "auto_impl", "derive-where", @@ -8455,9 +8446,9 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "14.1.0" +version = "19.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5617e49216ce1ca6c8826bcead0386bc84f49359ef67cde6d189961735659f93" +checksum = "8216ad58422090d0daa9eb430e0a081f7ad07e7fd30681dee71f8420c99624e0" dependencies = [ "auto_impl", "either", @@ -8473,9 +8464,9 @@ dependencies = [ [[package]] name = "revm-inspectors" -version = "0.33.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91cee0a75ef5f96b7e86f6c6a8bd4fda86eb37b57d501df6790418ee2b03c18" +checksum = "731b682530a732ef9c189ef831589128e2ce34d4a306c956322ae2dffe009715" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -8486,14 +8477,14 @@ dependencies = [ "revm", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "revm-interpreter" -version = "31.1.0" +version = "35.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26ec36405f7477b9dccdc6caa3be19adf5662a7a0dffa6270cdb13a090c077e5" +checksum = "1ece9f41b69658c15d748288a4dbdfc06a63f3ce93d983af440de3f1631dce6a" dependencies = [ "revm-bytecode", "revm-context-interface", @@ -8504,9 +8495,9 @@ dependencies = [ [[package]] name = "revm-precompile" -version = "31.0.0" +version = "34.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a62958af953cc4043e93b5be9b8497df84cc3bd612b865c49a7a7dfa26a84e2" +checksum = "a346a8cc6c8c39bd65306641c692191299c0a7b63d38810e39e8fe9b92378660" dependencies = [ "ark-bls12-381", "ark-bn254", @@ -8517,21 +8508,21 @@ dependencies = [ "aurora-engine-modexp", "blst", "c-kzg", - "cfg-if 1.0.4", + "cfg-if", "k256", "p256", + "revm-context-interface", "revm-primitives", "ripemd", - "rug", "secp256k1 0.31.1", "sha2", ] [[package]] name = "revm-primitives" -version = "21.0.2" +version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29e161db429d465c09ba9cbff0df49e31049fe6b549e28eb0b7bd642fcbd4412" +checksum = "0c99bda77d9661521ba0b4bc04558c6692074f01e65dd420fa3b893033d9b8a2" dependencies = [ "alloy-primitives", "num_enum", @@ -8541,11 +8532,12 @@ dependencies = [ [[package]] name = "revm-state" -version = "8.1.1" +version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d8be953b7e374dbdea0773cf360debed8df394ea8d82a8b240a6b5da37592fc" +checksum = "c32490ed687dba31c3c882beb8c20408bdd30ef96690d8f145b0ee9a87040bfe" dependencies = [ - "bitflags 2.10.0", + "alloy-eip7928", + "bitflags 2.11.1", "revm-bytecode", "revm-primitives", "serde", @@ -8568,10 +8560,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", - "cfg-if 1.0.4", - "getrandom 0.2.16", + "cfg-if", + "getrandom 0.2.17", "libc", - "untrusted", + "untrusted 0.9.0", "windows-sys 0.52.0", ] @@ -8586,14 +8578,14 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.8.12" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35a640b26f007713818e9a9b65d34da1cf58538207b052916a83d80e43f3ffa4" +checksum = "73389e0c99e664f919275ab5b5b0471391fe9a8de61e1dff9b1eaf56a90f16e3" dependencies = [ "bytecheck", "bytes", - "hashbrown 0.15.5", - "indexmap 2.12.1", + "hashbrown 0.17.0", + "indexmap 2.14.0", "munge", "ptr_meta", "rancor", @@ -8605,13 +8597,13 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.8.12" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd83f5f173ff41e00337d97f6572e416d022ef8a19f371817259ae960324c482" +checksum = "5d2ed0b54125315fb36bd021e82d314d1c126548f871634b483f46b31d13cac6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -8636,14 +8628,24 @@ dependencies = [ [[package]] name = "roaring" -version = "0.10.12" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e8d2cfa184d94d0726d650a9f4a1be7f9b76ac9fdb954219878dc00c1c1e7b" +checksum = "8ba9ce64a8f45d7fc86358410bb1a82e8c987504c0d4900e9141d69a9f26c885" dependencies = [ "bytemuck", "byteorder", ] +[[package]] +name = "rocksdb" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddb7af00d2b17dbd07d82c0063e25411959748ff03e8d4f96134c2ff41fce34f" +dependencies = [ + "libc", + "librocksdb-sys", +] + [[package]] name = "rolling-file" version = "0.2.0" @@ -8659,23 +8661,11 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" -[[package]] -name = "rug" -version = "1.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad2e973fe3c3214251a840a621812a4f40468da814b1a3d6947d433c2af11f" -dependencies = [ - "az", - "gmp-mpfr-sys", - "libc", - "libm", -] - [[package]] name = "ruint" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" +checksum = "0298da754d1395046b0afdc2f20ee76d29a8ae310cd30ffa84ed42acba9cb12a" dependencies = [ "alloy-rlp", "arbitrary", @@ -8685,14 +8675,14 @@ dependencies = [ "bytes", "fastrlp 0.3.1", "fastrlp 0.4.0", - "num-bigint 0.4.6", + "num-bigint", "num-integer", "num-traits", "parity-scale-codec", "primitive-types 0.12.2", "proptest", - "rand 0.8.5", - "rand 0.9.2", + "rand 0.8.6", + "rand 0.9.4", "rlp 0.5.2", "ruint-macro", "serde_core", @@ -8708,11 +8698,11 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rustc-hash" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" dependencies = [ - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -8736,7 +8726,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.27", + "semver 1.0.28", ] [[package]] @@ -8745,7 +8735,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.1", "errno", "libc", "linux-raw-sys 0.4.15", @@ -8754,23 +8744,24 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.2" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.1", "errno", "libc", - "linux-raw-sys 0.11.0", - "windows-sys 0.52.0", + "linux-raw-sys 0.12.1", + "windows-sys 0.61.2", ] [[package]] name = "rustls" -version = "0.23.35" +version = "0.23.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" +checksum = "7c2c118cb077cca2822033836dfb1b975355dfb784b5e8da48f7b6c5db74e60e" dependencies = [ + "aws-lc-rs", "log", "once_cell", "ring", @@ -8782,21 +8773,21 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9980d917ebb0c0536119ba501e90834767bffc3d60641457fd84a1f3fd337923" +checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.5.1", + "security-framework", ] [[package]] name = "rustls-pki-types" -version = "1.13.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" dependencies = [ "web-time", "zeroize", @@ -8817,12 +8808,33 @@ dependencies = [ "rustls-native-certs", "rustls-platform-verifier-android", "rustls-webpki", - "security-framework 3.5.1", + "security-framework", "security-framework-sys", "webpki-root-certs 0.26.11", "windows-sys 0.59.0", ] +[[package]] +name = "rustls-platform-verifier" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" +dependencies = [ + "core-foundation 0.10.1", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-root-certs 1.0.7", + "windows-sys 0.61.2", +] + [[package]] name = "rustls-platform-verifier-android" version = "0.1.1" @@ -8831,13 +8843,14 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.103.8" +version = "0.103.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" dependencies = [ + "aws-lc-rs", "ring", "rustls-pki-types", - "untrusted", + "untrusted 0.9.0", ] [[package]] @@ -8860,9 +8873,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.20" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "safe_arch" @@ -8884,9 +8897,9 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" dependencies = [ "windows-sys 0.61.2", ] @@ -8905,9 +8918,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" dependencies = [ "dyn-clone", "ref-cast", @@ -8922,7 +8935,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "356285bbf17bea63d9e52e96bd18f039672ac92b55b8cb997d6162a2a37d1649" dependencies = [ "ahash", - "cfg-if 1.0.4", + "cfg-if", "hashbrown 0.13.2", ] @@ -8954,7 +8967,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ "bitcoin_hashes", - "rand 0.8.5", + "rand 0.8.6", "secp256k1-sys 0.10.1", "serde", ] @@ -8966,7 +8979,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" dependencies = [ "bitcoin_hashes", - "rand 0.9.2", + "rand 0.9.4", "secp256k1-sys 0.11.0", ] @@ -8990,24 +9003,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.10.0", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework" -version = "3.5.1" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.1", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -9016,9 +9016,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.15.0" +version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", @@ -9035,9 +9035,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" dependencies = [ "serde", "serde_core", @@ -9068,15 +9068,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde_arrays" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a16b99c5ea4fe3daccd14853ad260ec00ea043b2708d1fd1da3106dcd8d9df" -dependencies = [ - "serde", -] - [[package]] name = "serde_core" version = "1.0.228" @@ -9094,21 +9085,21 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.14.0", "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] @@ -9131,6 +9122,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -9145,17 +9145,17 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.16.0" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10574371d41b0d9b2cff89418eda27da52bcaff2cc8741db26382a77c29131f1" +checksum = "dd5414fad8e6907dbdd5bc441a50ae8d6e26151a03b1de04d89a5576de61d01f" dependencies = [ "base64", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.12.1", + "indexmap 2.14.0", "schemars 0.9.0", - "schemars 1.1.0", + "schemars 1.2.1", "serde_core", "serde_json", "serde_with_macros", @@ -9164,14 +9164,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.16.0" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a72d8216842fdd57820dc78d840bef99248e35fb2554ff923319e60f2d686b" +checksum = "d3db8978e608f1fe7357e211969fd9abdcae80bac1ba7a3369bb7eb6b404eb65" dependencies = [ - "darling 0.21.3", + "darling 0.23.0", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -9190,7 +9190,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "cpufeatures", "digest 0.10.7", ] @@ -9201,16 +9201,16 @@ version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "cpufeatures", "digest 0.10.7", ] [[package]] name = "sha3" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" dependencies = [ "digest 0.10.7", "keccak", @@ -9218,12 +9218,12 @@ dependencies = [ [[package]] name = "sha3-asm" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" +checksum = "59cbb88c189d6352cc8ae96a39d19c7ecad8f7330b29461187f2587fdc2988d5" dependencies = [ "cc", - "cfg-if 1.0.4", + "cfg-if", ] [[package]] @@ -9235,15 +9235,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shellexpand" -version = "3.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb" -dependencies = [ - "dirs", -] - [[package]] name = "shlex" version = "1.3.0" @@ -9252,10 +9243,11 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.7" +version = "1.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" dependencies = [ + "errno", "libc", ] @@ -9271,9 +9263,9 @@ dependencies = [ [[package]] name = "simd-adler32" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" [[package]] name = "simdutf8" @@ -9283,27 +9275,36 @@ checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "simple_asn1" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" +checksum = "0d585997b0ac10be3c5ee635f1bab02d512760d14b7c468801ac8a01d9ae5f1d" dependencies = [ - "num-bigint 0.4.6", + "num-bigint", "num-traits", - "thiserror 2.0.17", + "thiserror 2.0.18", "time", ] [[package]] name = "siphasher" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" +checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" [[package]] name = "slab" -version = "0.4.11" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "slotmap" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038" +dependencies = [ + "version_check", +] [[package]] name = "smallvec" @@ -9323,22 +9324,12 @@ checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] name = "socket2" -version = "0.5.10" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "socket2" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" -dependencies = [ - "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -9353,104 +9344,49 @@ dependencies = [ "http", "httparse", "log", - "rand 0.8.5", + "rand 0.8.6", "sha1", ] -[[package]] -name = "sp1-lib" -version = "5.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1a9935d58cb1dcd757a1b10d727090f5b718f1f03b512d48f0c1952e6ead00" -dependencies = [ - "bincode 1.3.3", - "serde", - "sp1-primitives", -] - -[[package]] -name = "sp1-primitives" -version = "5.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7d2a6187e394c30097ea7a975a4832f172918690dc89a979f0fad67422d3a8b" -dependencies = [ - "bincode 1.3.3", - "blake3", - "cfg-if 1.0.4", - "hex", - "lazy_static", - "num-bigint 0.4.6", - "p3-baby-bear", - "p3-field", - "p3-poseidon2", - "p3-symmetric", - "serde", - "sha2", -] - -[[package]] -name = "sp1_bls12_381" -version = "0.8.0-sp1-5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac255e1704ebcdeec5e02f6a0ebc4d2e9e6b802161938330b6810c13a610c583" -dependencies = [ - "cfg-if 1.0.4", - "ff", - "group", - "pairing", - "rand_core 0.6.4", - "sp1-lib", - "subtle", -] - -[[package]] -name = "sparsestate" -version = "0.1.0" -source = "git+https://github.com/eth-act/zkvm-ethereum-mpt.git?tag=v0.4.0#d4d8f968c183aedc23100c3a5634dee14c320757" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-trie 0.9.1", - "mpt", - "reth-errors", - "reth-revm", - "reth-stateless", - "reth-trie-common", -] - [[package]] name = "spawned-concurrency" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d99b97ba5429336b6fa8b6e8ecbe09a1c7324f8b9fa63a11262dbd3a44e577b" +checksum = "bc21166874e8cd7584ea795c223303160461f0bb1b571bc23e92ca2abb7c5149" dependencies = [ "futures", "pin-project-lite", + "spawned-macros", "spawned-rt", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] +[[package]] +name = "spawned-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d64742b41741dfebd5b5ba4dbc4cbc5cc91f4a2cf8107191007d64295682973" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "spawned-rt" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d58e8d7224fbcd3dbc39f7bacf958ae0882c95b5431353445be5a86b80cedcaf" +checksum = "e9e270e6606a118708120671f2d171316762fa832cab73699c714c23aaafe6eb" dependencies = [ - "crossbeam 0.7.3", + "ctrlc", "tokio", "tokio-stream", "tokio-util", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.23", ] -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - [[package]] name = "spki" version = "0.7.3" @@ -9467,6 +9403,105 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +[[package]] +name = "stateless" +version = "0.1.0" +source = "git+https://github.com/paradigmxyz/stateless?rev=e5480e71a8031641ff471cad9dc482a7a14b32d5#e5480e71a8031641ff471cad9dc482a7a14b32d5" +dependencies = [ + "alloy-consensus", + "alloy-eips 2.0.1", + "alloy-genesis", + "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-debug", + "reth-chainspec", + "reth-consensus", + "reth-ethereum-consensus", + "reth-ethereum-primitives", + "reth-evm", + "reth-primitives-traits", + "reth-trie-common", + "revm-bytecode", + "revm-database-interface", + "revm-state", + "serde", + "serde_with", + "thiserror 2.0.18", + "tries", +] + +[[package]] +name = "stateless-validator-common" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere-guests?tag=v0.11.0#91735556bb1bdd6a16c3bcecee46ef14078846d0" +dependencies = [ + "alloy-eips 2.0.1", + "alloy-primitives", + "anyhow", + "ere-codec", + "ere-platform-core", + "libssz 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libssz-derive 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libssz-merkle 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libssz-types 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde", + "serde_with", + "sha2", +] + +[[package]] +name = "stateless-validator-ethrex" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere-guests?tag=v0.11.0#91735556bb1bdd6a16c3bcecee46ef14078846d0" +dependencies = [ + "alloy-consensus", + "alloy-eips 2.0.1", + "alloy-genesis", + "alloy-rlp", + "anyhow", + "ethrex-common", + "ethrex-crypto", + "ethrex-guest-program", + "ethrex-rpc", + "guest", + "libssz 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libssz-merkle 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rkyv", + "stateless", + "stateless-validator-common", + "stateless-validator-reth", +] + +[[package]] +name = "stateless-validator-reth" +version = "0.11.0" +source = "git+https://github.com/eth-act/ere-guests?tag=v0.11.0#91735556bb1bdd6a16c3bcecee46ef14078846d0" +dependencies = [ + "alloy-consensus", + "alloy-eips 2.0.1", + "alloy-genesis", + "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-engine", + "anyhow", + "bincode 2.0.1", + "ere-prover-core", + "guest", + "once_cell", + "reth-chainspec", + "reth-ethereum-primitives", + "reth-evm-ethereum", + "reth-payload-validator", + "reth-primitives-traits", + "revm", + "serde", + "serde_with", + "sha2", + "stateless", + "stateless-validator-common", + "tries", +] + [[package]] name = "static_assertions" version = "1.1.0" @@ -9507,7 +9542,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -9519,7 +9554,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -9528,6 +9563,12 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +[[package]] +name = "symlink" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a" + [[package]] name = "syn" version = "1.0.109" @@ -9541,9 +9582,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.111" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -9552,14 +9593,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.4.1" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff790eb176cc81bb8936aed0f7b9f14fc4670069a2d371b3e3b0ecce908b2cb3" +checksum = "53f425ae0b12e2f5ae65542e00898d500d4d318b4baf09f40fd0d410454e9947" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -9579,7 +9620,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -9588,7 +9629,7 @@ version = "0.26.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c18a6156d1f27a9592ee18c1a846ca8dd5c258b7179fc193ae87c74ebb666f5" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "core-foundation-sys", "libc", "ntapi", @@ -9599,24 +9640,39 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.33.1" +version = "0.35.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fc858248ea01b66f19d8e8a6d55f41deaf91e9d495246fd01368d99935c6c01" +checksum = "3c3ffa3e4ff2b324a57f7aeb3c349656c7b127c3c189520251a648102a92496e" +dependencies = [ + "libc", + "memchr", + "ntapi", + "objc2-core-foundation", + "objc2-io-kit", + "windows 0.61.3", +] + +[[package]] +name = "sysinfo" +version = "0.38.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92ab6a2f8bfe508deb3c6406578252e491d299cbbf3bc0529ecc3313aee4a52f" dependencies = [ - "core-foundation-sys", "libc", "memchr", "ntapi", - "windows", + "objc2-core-foundation", + "objc2-io-kit", + "windows 0.62.2", ] [[package]] name = "system-configuration" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.1", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -9645,9 +9701,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.44" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +checksum = "22692a6476a21fa75fdfc11d452fda482af402c008cdbaf3476414e122040973" dependencies = [ "filetime", "libc", @@ -9656,15 +9712,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.23.0" +version = "3.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.4.2", "once_cell", - "rustix 1.1.2", - "windows-sys 0.52.0", + "rustix 1.1.4", + "windows-sys 0.61.2", ] [[package]] @@ -9678,11 +9734,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.18", ] [[package]] @@ -9693,18 +9749,32 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", +] + +[[package]] +name = "thread-priority" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2210811179577da3d54eb69ab0b50490ee40491a25d95b8c6011ba40771cb721" +dependencies = [ + "bitflags 2.11.1", + "cfg-if", + "libc", + "log", + "rustversion", + "windows 0.61.3", ] [[package]] @@ -9713,7 +9783,7 @@ version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", ] [[package]] @@ -9727,9 +9797,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.44" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "itoa", @@ -9737,22 +9807,22 @@ dependencies = [ "num-conv", "num_threads", "powerfmt", - "serde", + "serde_core", "time-core", "time-macros", ] [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "time-macros" -version = "0.2.24" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" dependencies = [ "num-conv", "time-core", @@ -9769,9 +9839,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" dependencies = [ "displaydoc", "zerovec", @@ -9779,9 +9849,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -9794,9 +9864,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.48.0" +version = "1.52.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" +checksum = "b67dee974fe86fd92cc45b7a95fdd2f99a36a6d7b0d431a231178d3d670bbcc6" dependencies = [ "bytes", "libc", @@ -9804,20 +9874,20 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.1", + "socket2", "tokio-macros", "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -9842,9 +9912,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" dependencies = [ "futures-core", "pin-project-lite", @@ -9854,9 +9924,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25a406cddcc431a75d3d9afc6a7c0f7428d4891dd973e4d54c56b46127bf857" +checksum = "8f72a05e828585856dacd553fba484c242c46e391fb0e58917c942ee9202915c" dependencies = [ "futures-util", "log", @@ -9866,9 +9936,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.17" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" dependencies = [ "bytes", "futures-core", @@ -9887,11 +9957,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", - "serde_spanned", + "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_edit 0.22.27", ] +[[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.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.15", +] + [[package]] name = "toml_datetime" version = "0.6.11" @@ -9903,9 +9988,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.3" +version = "0.7.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ "serde_core", ] @@ -9916,33 +10010,33 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.12.1", + "indexmap 2.14.0", "serde", - "serde_spanned", + "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_write", - "winnow", + "winnow 0.7.15", ] [[package]] name = "toml_edit" -version = "0.23.7" +version = "0.25.11+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" +checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" dependencies = [ - "indexmap 2.12.1", - "toml_datetime 0.7.3", + "indexmap 2.14.0", + "toml_datetime 1.1.1+spec-1.1.0", "toml_parser", - "winnow", + "winnow 1.0.2", ] [[package]] name = "toml_parser" -version = "1.0.4" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow", + "winnow 1.0.2", ] [[package]] @@ -9951,15 +10045,23 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +[[package]] +name = "toml_writer" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" + [[package]] name = "tonic" -version = "0.14.2" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7613188ce9f7df5bfe185db26c5814347d110db17920415cf2fbcad85e7203" +checksum = "fec7c61a0695dc1887c1b53952990f3ad2e3a31453e1f49f10e75424943a93ec" dependencies = [ "async-trait", + "axum", "base64", "bytes", + "h2", "http", "http-body", "http-body-util", @@ -9968,6 +10070,7 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", + "socket2", "sync_wrapper", "tokio", "tokio-stream", @@ -9979,24 +10082,24 @@ dependencies = [ [[package]] name = "tonic-prost" -version = "0.14.2" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66bd50ad6ce1252d87ef024b3d64fe4c3cf54a86fb9ef4c631fdd0ded7aeaa67" +checksum = "a55376a0bbaa4975a3f10d009ad763d8f4108f067c7c2e74f3001fb49778d309" dependencies = [ "bytes", - "prost 0.14.1", + "prost", "tonic", ] [[package]] name = "tower" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", - "indexmap 2.12.1", + "indexmap 2.14.0", "pin-project-lite", "slab", "sync_wrapper", @@ -10009,11 +10112,11 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf146f99d442e8e68e585f5d798ccd3cad9a7835b917e09728880a862706456" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.1", "bytes", "futures-util", "http", @@ -10039,9 +10142,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", @@ -10051,32 +10154,33 @@ dependencies = [ [[package]] name = "tracing-appender" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +checksum = "050686193eb999b4bb3bc2acfa891a13da00f79734704c4b8b4ef1a10b368a3c" dependencies = [ - "crossbeam-channel 0.5.15", - "thiserror 1.0.69", + "crossbeam-channel", + "symlink", + "thiserror 2.0.18", "time", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.23", ] [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", "valuable", @@ -10094,13 +10198,13 @@ dependencies = [ [[package]] name = "tracing-journald" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0b4143302cf1022dac868d521e36e8b27691f72c84b3311750d5188ebba657" +checksum = "2d3a81ed245bfb62592b1e2bc153e77656d94ee6a0497683a65a12ccaf2438d0" dependencies = [ "libc", "tracing-core", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.23", ] [[package]] @@ -10116,35 +10220,48 @@ dependencies = [ [[package]] name = "tracing-logfmt" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1f47d22deb79c3f59fcf2a1f00f60cbdc05462bf17d1cd356c1fefa3f444bd" +checksum = "a250055a3518b5efba928a18ffac8d32d42ea607a9affff4532144cd5b2e378e" dependencies = [ "time", "tracing", "tracing-core", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.23", ] [[package]] name = "tracing-opentelemetry" -version = "0.32.0" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e6e5658463dd88089aba75c7791e1d3120633b1bfde22478b28f625a9bb1b8e" +checksum = "1ac28f2d093c6c477eaa76b23525478f38de514fa9aeb1285738d4b97a9552fc" dependencies = [ "js-sys", "opentelemetry", - "opentelemetry_sdk", - "rustversion", "smallvec", - "thiserror 2.0.17", "tracing", "tracing-core", "tracing-log", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.23", "web-time", ] +[[package]] +name = "tracing-samply" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c175f7ecc002b6ef04776a39f440503e4e788790ddbdbfac8259b7a069526334" +dependencies = [ + "cfg-if", + "itoa", + "libc", + "mach2", + "memmap2", + "smallvec", + "tracing-core", + "tracing-subscriber 0.3.23", +] + [[package]] name = "tracing-serde" version = "0.2.0" @@ -10166,9 +10283,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" dependencies = [ "matchers", "nu-ansi-term", @@ -10195,6 +10312,24 @@ dependencies = [ "rlp 0.5.2", ] +[[package]] +name = "tries" +version = "0.1.0" +source = "git+https://github.com/paradigmxyz/stateless?rev=e5480e71a8031641ff471cad9dc482a7a14b32d5#e5480e71a8031641ff471cad9dc482a7a14b32d5" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types-debug", + "alloy-trie", + "itertools 0.14.0", + "reth-trie-common", + "reth-trie-sparse", + "revm-bytecode", + "revm-database-interface", + "thiserror 2.0.18", + "zeth-mpt", +] + [[package]] name = "try-lock" version = "0.2.5" @@ -10203,26 +10338,25 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8628dcc84e5a09eb3d8423d6cb682965dea9133204e8fb3efee74c2a0c259442" +checksum = "6c01152af293afb9c7c2a57e4b559c5620b421f6d133261c60dd2d0cdb38e6b8" dependencies = [ "bytes", "data-encoding", "http", "httparse", "log", - "rand 0.9.2", + "rand 0.9.4", "sha1", - "thiserror 2.0.17", - "utf-8", + "thiserror 2.0.18", ] [[package]] name = "twirp" -version = "0.9.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c52cc4e4423b6b3e2e2659523c8c9e19af514a06422fe77a95d86f6bf3478a" +checksum = "4bfc65c610b3c5395ebb12132f251e1679386e0efef00c55ddee6affc68dd5c6" dependencies = [ "anyhow", "async-trait", @@ -10231,11 +10365,11 @@ dependencies = [ "http", "http-body-util", "hyper", - "prost 0.13.5", - "reqwest", + "prost", + "reqwest 0.12.28", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tower", "url", @@ -10249,9 +10383,9 @@ checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "ucd-trie" @@ -10291,15 +10425,15 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-segmentation" -version = "1.12.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" [[package]] name = "unicode-xid" @@ -10323,6 +10457,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + [[package]] name = "untrusted" version = "0.9.0" @@ -10337,22 +10477,17 @@ checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" [[package]] name = "url" -version = "2.5.7" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna", "percent-encoding", "serde", + "serde_derive", ] -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - [[package]] name = "utf8_iter" version = "1.0.4" @@ -10367,11 +10502,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.1" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" dependencies = [ - "getrandom 0.3.4", + "getrandom 0.4.2", "js-sys", "wasm-bindgen", ] @@ -10390,12 +10525,12 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "vergen" -version = "9.0.6" +version = "9.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b2bf58be11fc9414104c6d3a2e464163db5ef74b12296bda593cac37b6e4777" +checksum = "b849a1f6d8639e8de261e81ee0fc881e3e3620db1af9f2e0da015d4382ceaf75" dependencies = [ "anyhow", - "cargo_metadata", + "cargo_metadata 0.23.1", "derive_builder", "regex", "rustversion", @@ -10405,9 +10540,9 @@ dependencies = [ [[package]] name = "vergen-git2" -version = "1.0.7" +version = "9.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f6ee511ec45098eabade8a0750e76eec671e7fb2d9360c563911336bea9cac1" +checksum = "d51ab55ddf1188c8d679f349775362b0fa9e90bd7a4ac69838b2a087623f0d57" dependencies = [ "anyhow", "derive_builder", @@ -10420,9 +10555,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", @@ -10443,9 +10578,15 @@ checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + [[package]] name = "wait-timeout" version = "0.2.1" @@ -10482,20 +10623,29 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.57.1", +] + +[[package]] +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 = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", ] [[package]] name = "wasm-bindgen" -version = "0.2.105" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" +checksum = "0bf938a0bacb0469e83c1e148908bd7d5a6010354cf4fb73279b7447422e3a89" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", @@ -10504,22 +10654,19 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.55" +version = "0.4.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" +checksum = "f371d383f2fb139252e0bfac3b81b265689bf45b6874af544ffa4c975ac1ebf8" dependencies = [ - "cfg-if 1.0.4", "js-sys", - "once_cell", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.105" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" +checksum = "eeff24f84126c0ec2db7a449f0c2ec963c6a49efe0698c4242929da037ca28ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -10527,26 +10674,73 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.105" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" +checksum = "9d08065faf983b2b80a79fd87d8254c409281cf7de75fc4b773019824196c904" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.105" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" +checksum = "5fd04d9e306f1907bd13c6361b5c6bfc7b3b3c095ed3f8a9246390f8dbdee129" 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.14.0", + "wasm-encoder", + "wasmparser", +] + +[[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.11.1", + "hashbrown 0.15.5", + "indexmap 2.14.0", + "semver 1.0.28", +] + [[package]] name = "wasmtimer" version = "0.4.3" @@ -10563,9 +10757,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.82" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" +checksum = "4f2dfbb17949fa2088e5d39408c48368947b86f7834484e87b73de55bc14d97d" dependencies = [ "js-sys", "wasm-bindgen", @@ -10587,14 +10781,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" dependencies = [ - "webpki-root-certs 1.0.4", + "webpki-root-certs 1.0.7", ] [[package]] name = "webpki-root-certs" -version = "1.0.4" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee3e3b5f5e80bc89f30ce8d0343bf4e5f12341c51f3e26cbeecbc7c85443e85b" +checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" dependencies = [ "rustls-pki-types", ] @@ -10637,7 +10831,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.61.2", ] [[package]] @@ -10648,46 +10842,115 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.57.0" +version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ - "windows-core", - "windows-targets 0.52.6", + "windows-collections 0.2.0", + "windows-core 0.61.2", + "windows-future 0.2.1", + "windows-link 0.1.3", + "windows-numerics 0.2.0", +] + +[[package]] +name = "windows" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" +dependencies = [ + "windows-collections 0.3.2", + "windows-core 0.62.2", + "windows-future 0.3.2", + "windows-numerics 0.3.1", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + +[[package]] +name = "windows-collections" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" +dependencies = [ + "windows-core 0.62.2", ] [[package]] name = "windows-core" -version = "0.57.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", - "windows-result 0.1.2", - "windows-targets 0.52.6", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading 0.1.0", +] + +[[package]] +name = "windows-future" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +dependencies = [ + "windows-core 0.62.2", + "windows-link 0.2.1", + "windows-threading 0.2.1", ] [[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.111", + "syn 2.0.117", ] [[package]] name = "windows-interface" -version = "0.57.0" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] @@ -10703,23 +10966,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] -name = "windows-registry" -version = "0.5.3" +name = "windows-numerics" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ + "windows-core 0.61.2", "windows-link 0.1.3", - "windows-result 0.3.4", - "windows-strings", ] [[package]] -name = "windows-result" -version = "0.1.2" +name = "windows-numerics" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" dependencies = [ - "windows-targets 0.52.6", + "windows-core 0.62.2", + "windows-link 0.2.1", +] + +[[package]] +name = "windows-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" +dependencies = [ + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", ] [[package]] @@ -10731,6 +11005,15 @@ dependencies = [ "windows-link 0.1.3", ] +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + [[package]] name = "windows-strings" version = "0.4.2" @@ -10741,21 +11024,21 @@ dependencies = [ ] [[package]] -name = "windows-sys" -version = "0.45.0" +name = "windows-strings" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-targets 0.42.2", + "windows-link 0.2.1", ] [[package]] name = "windows-sys" -version = "0.48.0" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows-targets 0.48.5", + "windows-targets 0.42.2", ] [[package]] @@ -10809,21 +11092,6 @@ dependencies = [ "windows_x86_64_msvc 0.42.2", ] -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - [[package]] name = "windows-targets" version = "0.52.6" @@ -10858,16 +11126,28 @@ dependencies = [ ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" +name = "windows-threading" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + +[[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.48.5" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" @@ -10887,12 +11167,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -10911,12 +11185,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -10947,12 +11215,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -10971,12 +11233,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -10995,12 +11251,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -11019,12 +11269,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -11039,50 +11283,140 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" -version = "0.7.13" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" dependencies = [ "memchr", ] [[package]] -name = "winreg" -version = "0.50.0" +name = "winnow" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" dependencies = [ - "cfg-if 1.0.4", - "windows-sys 0.48.0", + "wit-bindgen-rust-macro", ] [[package]] name = "wit-bindgen" -version = "0.46.0" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[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-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck", + "indexmap 2.14.0", + "prettyplease", + "syn 2.0.117", + "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.117", + "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 = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.11.1", + "indexmap 2.14.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.14.0", + "log", + "semver 1.0.28", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] [[package]] name = "witness-generator" version = "0.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-genesis", "alloy-rpc-types-eth", "async-trait", "ef-tests", "erased-serde", + "flate2", "http", "jsonrpsee", "rayon", + "reqwest 0.12.28", "reth-chainspec", "reth-ethereum-primitives", "reth-rpc-api", - "reth-stateless", "serde", "serde_json", + "stateless", + "tar", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-util", "tracing", @@ -11098,15 +11432,15 @@ dependencies = [ "tokio", "tokio-util", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.23", "witness-generator", ] [[package]] name = "writeable" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" [[package]] name = "wyz" @@ -11124,29 +11458,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", - "rustix 1.1.2", -] - -[[package]] -name = "xtask" -version = "0.1.0" -dependencies = [ - "anyhow", - "clap", - "toml_edit 0.22.27", + "rustix 1.1.4", ] -[[package]] -name = "xxhash-rust" -version = "0.8.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" - [[package]] name = "yoke" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" dependencies = [ "stable_deref_trait", "yoke-derive", @@ -11155,54 +11474,54 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.30" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea879c944afe8a2b25fef16bb4ba234f47c694565e97383b36f3a878219065c" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.30" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf955aa904d6040f70dc8e9384444cb1030aed272ba3cb09bbc4ab9e7c1f34f5" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", "synstructure", ] @@ -11217,20 +11536,20 @@ dependencies = [ [[package]] name = "zeroize_derive" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", ] [[package]] name = "zerotrie" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" dependencies = [ "displaydoc", "yoke", @@ -11239,9 +11558,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" dependencies = [ "yoke", "zerofrom", @@ -11250,13 +11569,32 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" dependencies = [ "proc-macro2", "quote", - "syn 2.0.111", + "syn 2.0.117", +] + +[[package]] +name = "zeth-mpt" +version = "0.1.0" +source = "git+https://github.com/paradigmxyz/stateless?rev=e5480e71a8031641ff471cad9dc482a7a14b32d5#e5480e71a8031641ff471cad9dc482a7a14b32d5" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "alloy-trie", + "arrayvec", +] + +[[package]] +name = "zisk-verifier" +version = "0.18.0" +source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.18.0#790f9e28a6d1d8575e38dc77f2af4966b8659722" +dependencies = [ + "proofman-verifier", ] [[package]] @@ -11269,9 +11607,15 @@ dependencies = [ "serde_json", "sysinfo 0.26.9", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", ] +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" + [[package]] name = "zstd" version = "0.13.3" diff --git a/Cargo.toml b/Cargo.toml index c341ca39..8dabc512 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,19 +4,13 @@ members = [ "crates/witness-generator", "crates/witness-generator-cli", "crates/ere-hosts", - "ere-guests/libs", - "ere-guests/block-encoding-length/guest", - "ere-guests/stateless-validator/reth/guest", - "ere-guests/stateless-validator/ethrex/guest", - "tests", - "xtask", ] resolver = "2" [workspace.package] version = "0.1.0" edition = "2024" -rust-version = "1.88" +rust-version = "1.93" license = "MIT OR Apache-2.0" [workspace.lints] @@ -109,67 +103,39 @@ witness-generator = { path = "crates/witness-generator" } zkevm-metrics = { path = "crates/metrics" } benchmark-runner = { path = "crates/benchmark-runner" } -guest-libs = { path = "ere-guests/libs" } -block-encoding-length-guest = { path = "ere-guests/block-encoding-length/guest" } -reth-guest = { path = "ere-guests/stateless-validator/reth/guest" } -ethrex-guest = { path = "ere-guests/stateless-validator/ethrex/guest" } - # ere -ere-zkvm-interface = { git = "https://github.com/eth-applied-research-group/ere", rev = "d15c6b495d0bc42bf160ecfbb11fa7600047c821", package = "ere-zkvm-interface" } -ere-platform-trait = { git = "https://github.com/eth-applied-research-group/ere", rev = "d15c6b495d0bc42bf160ecfbb11fa7600047c821" } -ere-dockerized = { git = "https://github.com/eth-applied-research-group/ere", rev = "d15c6b495d0bc42bf160ecfbb11fa7600047c821", package = "ere-dockerized" } -ere-io = { git = "https://github.com/eth-applied-research-group/ere", rev = "d15c6b495d0bc42bf160ecfbb11fa7600047c821", package = "ere-io" } - -# branch is kw/zkevm-benchmark-workload-repo -# NOTE: We are using a branch of a branch that has not yet been merged into master. -ef-tests = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241" } -reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241" } -reth-stateless = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241" } -reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241" } -reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241" } -reth-errors = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241" } -reth-trie-common = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241" } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241" } -reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241" } - -sparsestate = { git = "https://github.com/eth-act/zkvm-ethereum-mpt.git", tag = "v0.4.0" } - -ethrex-guest-program = { git = "https://github.com/lambdaclass/ethrex.git", rev = "c68e76d6b569c60a667a1240a91e637bf2ea0d0b", package = "guest_program" } -ethrex-common = { git = "https://github.com/lambdaclass/ethrex.git", rev = "c68e76d6b569c60a667a1240a91e637bf2ea0d0b", default-features = false } -ethrex-rlp = { git = "https://github.com/lambdaclass/ethrex.git", rev = "c68e76d6b569c60a667a1240a91e637bf2ea0d0b", default-features = false } -ethrex-rpc = { git = "https://github.com/lambdaclass/ethrex.git", rev = "c68e76d6b569c60a667a1240a91e637bf2ea0d0b", default-features = false } +ere-dockerized = { git = "https://github.com/eth-act/ere", tag = "v0.11.0" } +ere-cluster-client-zisk = { git = "https://github.com/eth-act/ere", tag = "v0.11.0" } +ere-util-tokio = { git = "https://github.com/eth-act/ere", tag = "v0.11.0" } + +# ere-guests +ere-guests-stateless-validator-reth = { git = "https://github.com/eth-act/ere-guests", tag = "v0.11.0", package = "stateless-validator-reth" } +ere-guests-stateless-validator-ethrex = { git = "https://github.com/eth-act/ere-guests", tag = "v0.11.0", package = "stateless-validator-ethrex" } +ere-guests-guest = { git = "https://github.com/eth-act/ere-guests", tag = "v0.11.0", package = "guest" } +ere-guests-integration-tests = { git = "https://github.com/eth-act/ere-guests", tag = "v0.11.0", package = "integration-tests" } +ere-guests-downloader = { git = "https://github.com/eth-act/ere-guests", tag = "v0.11.0", package = "downloader" } + +reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v2.1.0" } +reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", tag = "v2.1.0" } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v2.1.0" } +ef-tests = { git = "https://github.com/paradigmxyz/stateless", rev = "e5480e71a8031641ff471cad9dc482a7a14b32d5" } +stateless = { git = "https://github.com/paradigmxyz/stateless", rev = "e5480e71a8031641ff471cad9dc482a7a14b32d5", default-features = false } # alloy -alloy-eips = { version = "1.1.2" } -alloy-rpc-types-eth = "1.1.2" -alloy-consensus = { version = "1.1.2", default-features = false } -alloy-primitives = { version = "1.4.1", default-features = false } -alloy-hardforks = { version = "0.4.5", default-features = false } -alloy-chains = { version = "0.2.5", default-features = false } -alloy-rlp = { version = "0.3.10", default-features = false } -alloy-trie = { version = "0.9.1", default-features = false } -alloy-genesis = { version = "1.1.2", default-features = false } - -ethereum_ssz_derive = "0.9" -ethereum_ssz = "0.9" - -revm-bytecode = { version = "7.1.1", default-features = false } - -k256 = { version = "0.13", default-features = false } +alloy-eips = { version = "2.0" } +alloy-rpc-types-eth = "2.0" +alloy-genesis = { version = "2.0", default-features = false } # misc -bincode = "1.3" clap = { version = "4.0", features = ["derive"] } serde = { version = "1.0", default-features = false } strum = { version = "0.26", features = ["derive"] } walkdir = "2.3.3" rayon = "1.7" -hex = "0.4.3" thiserror = "2" sha2 = "0.10.9" serde_json = "*" serde_derive = "*" -serde_with = "3" jsonrpsee = "0.26.0" anyhow = "1.0" async-trait = "0.1.88" @@ -177,8 +143,15 @@ tokio = { version = "1.45.1" } tokio-util = "0.7.15" tracing = "0.1.41" tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } -rkyv = "0.8.10" -bytes = "1.10" erased-serde = "0.4.8" -once_cell = { version = "1.21", default-features = false } auto_impl = "1.3.0" +tempfile = "3.10" +humantime = "2.1" +reqwest = { version = "0.12", default-features = false, features = [ + "rustls-tls-native-roots", + "json", +] } +flate2 = "1.1" +tar = "0.4" +toml = "0.8" +hex = "0.4" diff --git a/README.md b/README.md index 972ed7e2..85b2fbe6 100644 --- a/README.md +++ b/README.md @@ -4,251 +4,64 @@

zkEVM Benchmarking Workload

-This workspace contains code for benchmarking guest programs within different zkVMs. Although different guest programs are supported, the main use case is benchmarking the Ethereum STF by running benchmarks from the [spec tests](https://github.com/ethereum/execution-specs). -## Workspace Structure +This repository benchmarks Ethereum-related guest programs across multiple zkVMs. The normal workflow has two phases: -The workspace is organized into several key components: +1. Generate JSON fixtures from EEST, RPC, or raw-input sources. +2. Run those fixtures through dockerized zkVM hosts and write metrics, proofs, or verification results. -- **`crates/metrics`**: Defines common data structures (`BenchmarkRun`) for storing and serializing benchmark results with generic metadata support. -- **`crates/witness-generator`**: A library that provides functionality for generating benchmark fixture files (`BlockAndWitness`: individual block + witness pairs) required for stateless block validation by processing standard Ethereum test fixtures or RPC endpoints. -- **`crates/witness-generator-cli`**: A standalone binary that uses the `witness-generator` library to generate fixture files. These are saved in the `zkevm-fixtures-input` folder. The crate includes Docker support for containerized deployment. -- **`crates/ere-hosts`**: A standalone binary that runs benchmarks across different zkVM platforms using pre-generated fixture files from `zkevm-fixtures-input`. -- **`crates/benchmark-runner`**: Provides a unified framework for running benchmarks across different zkVM implementations, including guest program input generation and execution orchestration. -- **`ere-guests/`**: Directory containing guest program implementations organized by program type, with each type containing implementations for different zkVM platforms. See the [Guest Program Types](#guest-program-types) section for detailed information about each type. -- **`scripts`**: Contains helper scripts (e.g., fetching fixtures). -- **`xtask`**: Cargo xtask runner for automating tasks, used for automatic zkVM precompile patching. +## Workspace At a Glance -## Workflow Overview +- **`crates/witness-generator-cli`**: fixture-generation CLI for EEST, RPC, and raw-input sources. +- **`crates/ere-hosts`**: benchmark CLI for execution, proving, and verification jobs. +- **`crates/benchmark-runner`**: shared orchestration for guest resolution, execution, proof flow, and verification. +- **`crates/metrics`**: serializable result types such as `BenchmarkRun`. -The benchmarking process is decoupled into two distinct phases: - -1. **Fixture Generation** (`witness-generator-cli`): Processes Ethereum benchmark fixtures (EEST) or RPC data to generate individual `BlockAndWitness` fixtures as JSON files saved in `zkevm-fixtures-input/`. -2. **Benchmark Execution** (`ere-hosts`): Reads from `zkevm-fixtures-input/` and runs performance benchmarks across different zkVM platforms. - -This decoupling provides several benefits: -- Independent fixture generation and benchmark execution -- Reuse of generated fixtures across multiple benchmark runs - -## Core Concepts - -Each zkVM benchmark implementation follows a common pattern using the EreDockerized system: - -1. **Guest Program:** - - Located within the `ere-guests/` directory, organized by guest program type and execution client (for stateless-validator). - - For stateless validator programs: Contains implementations for different execution clients (`reth/` and `ethrex/`) with each supporting multiple zkVMs. - - For other program types: Contains implementations organized by zkVM platform. - - All guest programs are automatically compiled in Docker containers specific to each zkVM platform. - -2. **Host Program:** - - Located within `crates/ere-hosts/` with unified logic across all zkVM platforms. - - A standalone Rust binary that orchestrates benchmarking for different guest program types and execution clients. - - Uses the `benchmark-runner` crate with EreDockerized to automatically compile and execute guest programs. - - Supports multiple guest program types via command-line arguments (e.g., `stateless-validator`, `empty-program`). - - For stateless-validator, supports multiple execution clients (`--execution-client reth` or `--execution-client ethrex`). - - Saves results using the `metrics` crate into the appropriate subdirectory within `zkevm-metrics/`. For `stateless-validator` guest programs, results are organized by execution client then zkVM type. For other guest program types, results are organized directly by zkVM type. - -3. **Automatic zkVM Management:** - - All zkVMs are now managed through EreDockerized, eliminating the need for manual toolchain setup. - - Docker containers handle compilation, patching, and execution for each zkVM platform. - - The benchmark runner automatically applies precompile patches as needed. +Guest programs are maintained in the [eth-act/ere-guests](https://github.com/eth-act/ere-guests) repository and are downloaded automatically from the resolved release or commit artifacts unless `--bin-path` is provided. ## Prerequisites -1. **Rust Toolchain:** A standard Rust installation managed by `rustup`. -2. **Docker:** All zkVMs now use EreDockerized, which means you don't need to install zkVM-specific toolchains locally. Docker handles all the compilation and execution environments. -3. **Git:** Required for cloning the repository. -4. **Common Shell Utilities:** The scripts in the `./scripts` directory require a `bash`-compatible shell and standard utilities like `curl`, `jq`, and `tar`. - -## Setup - -1. **Clone the Repository:** - - ```bash - git clone https://github.com/eth-applied-research-group/zkevm-benchmark-workload.git - cd zkevm-benchmark-workload - ``` - -2. **Fetch/Update Benchmark Fixtures:** - - ```bash - ./scripts/download-and-extract-fixtures.sh - ``` - -3. **Generate Benchmark Input Files (only required for `stateless-validator` guest program):** - - Generate fixture files: - - ```bash - cargo run --release -- tests --include 10M- --include Prague - - # Or generate from local EEST fixtures - cargo run --release -- tests --eest-fixtures-path /path/to/local/eest/fixtures - - # Or generate from RPC - cargo run --release -- rpc --last-n-blocks 2 --rpc-url - - # Or listen for new blocks continuously - cargo run --release -- rpc --follow --rpc-url - ``` - - This creates individual `.json` files in the `zkevm-fixtures-input/` directory that will be consumed by the benchmark runner. - -4. **Run Benchmarks:** - - Run benchmarks using the generated fixture files (if required). You must specify which guest program type to benchmark. All zkVMs are now dockerized, so no additional setup is required: - - ```bash - cd crates/ere-hosts - - # Run Ethereum stateless validator benchmarks with Reth execution client - cargo run --release -- --zkvms risc0 stateless-validator --execution-client reth - - # Run Ethereum stateless validator benchmarks with Ethrex execution client - cargo run --release -- --zkvms sp1 stateless-validator --execution-client ethrex - - # Run empty program benchmarks (for measuring zkVM overhead) - cargo run --release -- empty-program - - # Run block encoding length benchmarks (with RLP encoding format) - cargo run --release -- block-encoding-length --loop-count 100 --format rlp - - # Run block encoding length benchmarks (with SSZ encoding format) - cargo run --release -- block-encoding-length --loop-count 100 --format ssz - - # Use custom input folder for stateless validator benchmarks - cargo run --release -- stateless-validator --execution-client reth --input-folder my-fixtures - - # Dump raw input files used in benchmarks (opt-in) - cargo run --release -- --zkvms sp1 --dump-inputs my-inputs stateless-validator --execution-client reth - ``` - - See the respective README files in each crate for detailed usage instructions. - -### Dumping Input Files - -The `--dump-inputs` flag allows you to save the raw serialized input bytes used for each benchmark run. This is useful for: -- Debugging guest programs independently -- Analyzing input data characteristics -- Replaying specific test cases outside the benchmark framework - -When specified, input files are saved to the designated folder with the following structure: -``` -{dump-folder}/ - └── {sub-folder}/ # e.g., "reth" for stateless-validator, empty for others - └── {name}.bin # Input files (one per benchmark) -``` +- Rust via `rustup` +- Docker +- Git -Example usage: -```bash -cd crates/ere-hosts +## Quickstart -# Dump inputs for stateless validator with Reth -cargo run --release -- --zkvms sp1 --dump-inputs debug-inputs stateless-validator --execution-client reth +Verify that both CLIs are reachable from the repo root: -# This creates files like: -# debug-inputs/reth/block-12345.bin -# debug-inputs/reth/block-12346.bin +```bash +cargo run -p witness-generator-cli -- --help +cargo run -p ere-hosts -- --help ``` -Note: Input files are zkVM-independent (the same input is used across all zkVMs), so they're only written once even when benchmarking multiple zkVMs. - -## Guest Program Types - -This repository supports multiple guest program types for comprehensive zkVM benchmarking across different computational workloads. Each guest program type is designed to measure specific aspects of zkVM performance: - -### Available Guest Program Types - -1. **`stateless-validator`** - The primary benchmarking workload that executes Ethereum stateless block validation logic - - **Purpose**: Measures zkVM performance on realistic Ethereum state transition computations - - **Input**: Requires `BlockAndWitness` fixture files generated by `witness-generator-cli` - - **Computation**: Validates Ethereum blocks using either Reth or Ethrex execution clients - - **Execution Clients**: - - `reth`: Uses `reth_stateless::validation::stateless_validation` - - `ethrex`: Uses Ethrex's stateless validation implementation +Generate sample fixtures into `zkevm-fixtures-input/`: -2. **`empty-program`** - Minimal program for measuring zkVM overhead - - **Purpose**: Measures the baseline overhead of zkVM execution without computational workload - - **Input**: No input files required - - **Computation**: Minimal operations to establish zkVM baseline performance - - **Usage**: `cargo run -- empty-program` - -3. **`block-encoding-length`** - Measures block encoding performance with support for both RLP and SSZ formats - - **Purpose**: Benchmarks the performance of calculating encoded length of Ethereum blocks using different encoding formats - - **Input**: Uses the same `BlockAndWitness` fixture files as `stateless-validator` - - **Computation**: Repeatedly calls encoding length calculation functions on block headers and bodies - - **Encoding Formats**: Supports both RLP (`--format rlp`) and SSZ (`--format ssz`) encoding - - **Usage**: `cargo run -- block-encoding-length --loop-count 100 --format rlp` - -### Guest Program Architecture - -Each guest program type follows a consistent structure across different zkVM platforms. For `stateless-validator`, there are separate implementations for different execution clients: - -``` -ere-guests// -├── reth/ # Reth execution client implementations -│ ├── sp1/ # SP1 zkVM implementation -│ │ ├── Cargo.toml -│ │ └── src/main.rs -│ ├── risc0/ # RISC0 implementation -│ ├── openvm/ # OpenVM implementation -│ ├── pico/ # Pico implementation -│ ├── zisk/ # Zisk implementation -│ └── airbender/ # Airbender implementation -├── ethrex/ # Ethrex execution client implementations -│ ├── sp1/ # SP1 zkVM implementation -│ ├── risc0/ # RISC0 implementation (if available) -│ └── ... (other zkVMs) -└── ... (other execution clients) -``` - -For other guest program types (e.g., `empty-program`, `block-encoding-length`): -``` -ere-guests// -├── sp1/ # SP1 implementation -├── risc0/ # RISC0 implementation -├── zisk/ # Zisk implementation -└── ... (other zkVMs) +```bash +EF_TEST_TRIE=default RUST_MIN_STACK=16388608 RUST_LOG=info RAYON_NUM_THREADS=8 cargo run -p witness-generator-cli --release -- tests ``` -This might be removed in the future after EL compilation and inputs are standarized, favouring running -provided ELFs directly. Until this is done, the guest program definition and compilation is necessary to -do in this codebase. - -### Adding New Guest Program Types - -The architecture is designed to be extensible. To add a new guest program type: +Run a benchmark against those fixtures: -1. **Create the guest program directory structure:** - ``` - ere-guests/your-new-program-type/ - ├── sp1/ - │ ├── Cargo.toml - │ └── src/main.rs - ├── risc0/ - │ ├── Cargo.toml - │ └── src/main.rs - └── ... (other zkVMs) - ``` - -2. **Add the new command to `ere-hosts`:** - - Add a new variant to the `GuestProgramCommand` enum in `crates/ere-hosts/src/main.rs` - - Add corresponding logic to handle the new guest program type - - Update the `get_zkvm_instances` function to point to the correct subdirectory +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 stateless-validator --execution-client reth +``` -3. **Update documentation** to include the new guest program type in the supported benchmarks table and usage examples +## Guides -## CI/CD and Docker Support +- [Documentation map](docs/README.md) +- [Fixture generation guide](docs/fixture-generation.md) +- [Benchmark execution, proofs, and verification guide](docs/benchmark-execution.md) +- [Benchmark input reference](docs/benchmark-execution-inputs.md) +- [Benchmark output reference](docs/benchmark-execution-output.md) +- [Witness Generator CLI notes](docs/witness-generator-cli.md) -The Docker workflow (`.github/workflows/docker-build.yml`) provides: -- **Automated Builds**: Docker images for `witness-generator-cli` are automatically built and pushed to GitHub Container Registry. -- **Comprehensive testing**: On each PR we test all supported EL/zkVM combinations against mainnet blocks inputs to ensure correctness. +The root README is intentionally short. Detailed workflow documentation lives under `docs/`. ## License Licensed under either of -* MIT license (LICENSE‑MIT or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT)) -* Apache License, Version 2.0 (LICENSE‑APACHE or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)) +* MIT license (LICENSE-MIT or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT)) +* Apache License, Version 2.0 (LICENSE-APACHE or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)) -at your option. \ No newline at end of file +at your option. diff --git a/crates/benchmark-runner/Cargo.toml b/crates/benchmark-runner/Cargo.toml index 94ce0ffd..cc5aefa2 100644 --- a/crates/benchmark-runner/Cargo.toml +++ b/crates/benchmark-runner/Cargo.toml @@ -2,30 +2,14 @@ name = "benchmark-runner" version = "0.1.0" edition = "2021" +rust-version.workspace = true [dependencies] witness-generator.workspace = true zkevm-metrics.workspace = true -ere-zkvm-interface.workspace = true -ere-platform-trait.workspace = true ere-dockerized.workspace = true -ere-io.workspace = true - -guest-libs = { workspace = true, default-features = true } -block-encoding-length-guest.workspace = true -reth-guest.workspace = true -ethrex-guest.workspace = true - -alloy-rlp.workspace = true -alloy-eips.workspace = true -alloy-genesis.workspace = true - -reth-stateless.workspace = true - -ethrex-guest-program.workspace = true -ethrex-common.workspace = true -ethrex-rlp.workspace = true -ethrex-rpc.workspace = true +ere-cluster-client-zisk.workspace = true +ere-util-tokio.workspace = true rayon.workspace = true tracing.workspace = true @@ -34,8 +18,26 @@ sha2.workspace = true serde.workspace = true serde_json.workspace = true strum.workspace = true +flate2.workspace = true +reqwest.workspace = true +tar.workspace = true anyhow.workspace = true auto_impl.workspace = true +ere-guests-downloader.workspace = true +tempfile.workspace = true +hex.workspace = true + +ere-guests-stateless-validator-ethrex = { "workspace" = true, features = [ + "host", +] } +ere-guests-stateless-validator-reth = { "workspace" = true, features = [ + "host", +] } +ere-guests-guest = { "workspace" = true } +ere-guests-integration-tests = { "workspace" = true } + +[build-dependencies] +toml = { workspace = true } [lints] workspace = true diff --git a/crates/benchmark-runner/build.rs b/crates/benchmark-runner/build.rs new file mode 100644 index 00000000..2c8e720f --- /dev/null +++ b/crates/benchmark-runner/build.rs @@ -0,0 +1,158 @@ +//! Build script that extracts resolved dependency metadata from `Cargo.lock` +//! and exposes it as compile-time environment variables. +//! +//! It traces through the ere-guests dependency chain: finds the +//! `stateless-validator-reth` / `stateless-validator-ethrex` packages, looks at +//! their dependencies, and extracts the git tag (or short commit hash) from the +//! resolved source of the first matching EL dependency. + +use std::env; +use std::fs; + +/// Dependency prefix used to identify reth crates inside `stateless-validator-reth`. +const RETH_DEP_PREFIX: &str = "reth-"; +/// Dependency prefix used to identify ethrex crates inside `stateless-validator-ethrex`. +const ETHREX_DEP_PREFIX: &str = "ethrex-"; +/// Repository URL used by Cargo for ere-guests git dependencies. +const ERE_GUESTS_REPO: &str = "https://github.com/eth-act/ere-guests"; +/// Package used to resolve the ere-guests source for guest artifact downloads. +const ERE_GUESTS_DOWNLOAD_PACKAGE_NAME: &str = "downloader"; + +enum GuestDownloadSource { + Tag(String), + Commit(String), +} + +fn main() { + let workspace_dir = env::var("CARGO_WORKSPACE_DIR").expect("CARGO_WORKSPACE_DIR not set"); + + let lockfile_path = format!("{workspace_dir}/Cargo.lock"); + println!("cargo:rerun-if-changed={lockfile_path}"); + + let lockfile_content = fs::read_to_string(&lockfile_path).expect("Failed to read Cargo.lock"); + + let lockfile: toml::Value = + toml::from_str(&lockfile_content).expect("Failed to parse Cargo.lock"); + + let packages = lockfile + .get("package") + .and_then(|v| v.as_array()) + .expect("No package array in Cargo.lock"); + + let reth_version = find_el_version(packages, "stateless-validator-reth", RETH_DEP_PREFIX); + let ethrex_version = find_el_version(packages, "stateless-validator-ethrex", ETHREX_DEP_PREFIX); + let guest_download_source = find_ere_guests_download_source(packages); + + println!( + "cargo:rustc-env=RETH_EL_VERSION={}", + reth_version.unwrap_or_else(|| { + println!("cargo:warning=Could not determine reth version from Cargo.lock"); + "unknown".to_string() + }) + ); + println!( + "cargo:rustc-env=ETHREX_EL_VERSION={}", + ethrex_version.unwrap_or_else(|| { + println!("cargo:warning=Could not determine ethrex version from Cargo.lock"); + "unknown".to_string() + }) + ); + + match guest_download_source { + Some(GuestDownloadSource::Tag(tag)) => { + println!("cargo:rustc-env=ERE_GUESTS_DOWNLOAD_KIND=tag"); + println!("cargo:rustc-env=ERE_GUESTS_DOWNLOAD_VALUE={tag}"); + } + Some(GuestDownloadSource::Commit(commit)) => { + println!("cargo:rustc-env=ERE_GUESTS_DOWNLOAD_KIND=commit"); + println!("cargo:rustc-env=ERE_GUESTS_DOWNLOAD_VALUE={commit}"); + } + None => { + println!("cargo:warning=Could not determine ere-guests source from Cargo.lock"); + println!("cargo:rustc-env=ERE_GUESTS_DOWNLOAD_KIND=unknown"); + println!("cargo:rustc-env=ERE_GUESTS_DOWNLOAD_VALUE=unknown"); + } + } +} + +/// Finds the EL version by tracing the ere-guests dependency chain: +/// 1. Locate `guest_pkg_name` (e.g. `stateless-validator-reth`) in the lockfile. +/// 2. Find the first dependency whose name starts with `dep_prefix` (e.g. `reth-`). +/// 3. Look up that dependency's `[[package]]` entry and extract the tag or short +/// commit hash from its `source` field. +fn find_el_version( + packages: &[toml::Value], + guest_pkg_name: &str, + dep_prefix: &str, +) -> Option { + // Step 1: find the guest package and its dependency list. + let guest_pkg = packages + .iter() + .find(|p| p.get("name").and_then(|n| n.as_str()) == Some(guest_pkg_name))?; + + let deps = guest_pkg.get("dependencies").and_then(|d| d.as_array())?; + + // Step 2: pick the first dependency that matches the EL prefix. + let el_dep_name = deps + .iter() + .filter_map(|d| d.as_str()) + .find(|name| name.starts_with(dep_prefix))?; + + // Step 3: look up that dependency's source. + let el_pkg = packages + .iter() + .find(|p| p.get("name").and_then(|n| n.as_str()) == Some(el_dep_name))?; + + let source = el_pkg.get("source").and_then(|s| s.as_str())?; + + extract_tag_from_source(source).or_else(|| extract_short_hash_from_source(source)) +} + +/// Extracts the git tag from a Cargo.lock source string. +/// +/// Source format: `git+https://github.com/.../repo?tag=v1.10.2#8e3b5e6a...` +fn extract_tag_from_source(source: &str) -> Option { + extract_query_param_from_source(source, "tag") +} + +/// Extracts the short (7-char) commit hash from a Cargo.lock source string. +/// +/// Source format: `git+https://github.com/.../repo?rev=abc123#abc123def456...` +fn extract_short_hash_from_source(source: &str) -> Option { + extract_hash_from_source(source).map(|hash| hash[..7.min(hash.len())].to_string()) +} + +fn find_ere_guests_download_source(packages: &[toml::Value]) -> Option { + let source = packages.iter().find_map(|package| { + let name = package.get("name").and_then(|n| n.as_str())?; + if name != ERE_GUESTS_DOWNLOAD_PACKAGE_NAME { + return None; + } + + let source = package.get("source").and_then(|s| s.as_str())?; + source.contains(ERE_GUESTS_REPO).then_some(source) + })?; + + extract_tag_from_source(source) + .map(GuestDownloadSource::Tag) + .or_else(|| { + extract_hash_from_source(source) + .map(|hash| GuestDownloadSource::Commit(hash.to_string())) + }) +} + +fn extract_query_param_from_source(source: &str, param: &str) -> Option { + let query = source.split('?').nth(1)?; + let query = query.split('#').next().unwrap_or(query); + let prefix = format!("{param}="); + + query.split('&').find_map(|part| { + part.strip_prefix(&prefix) + .map(std::string::ToString::to_string) + }) +} + +fn extract_hash_from_source(source: &str) -> Option<&str> { + let hash = source.split('#').nth(1)?; + (!hash.is_empty()).then_some(hash) +} diff --git a/crates/benchmark-runner/src/block_encoding_length_program.rs b/crates/benchmark-runner/src/block_encoding_length_program.rs deleted file mode 100644 index f2253d57..00000000 --- a/crates/benchmark-runner/src/block_encoding_length_program.rs +++ /dev/null @@ -1,50 +0,0 @@ -//! Block encoding length calculation guest program. - -use crate::{ - guest_programs::{GenericGuestFixture, GuestFixture}, - stateless_validator::read_benchmark_fixtures_folder, -}; -use anyhow::*; -use block_encoding_length_guest::guest::{ - BlockEncodingFormat, BlockEncodingLengthGuest, BlockEncodingLengthInput, -}; -use guest_libs::BincodeBlock; -use serde::{Deserialize, Serialize}; -use std::{path::Path, sync::OnceLock}; - -/// Metadata for the block block length calculation guest program. -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct BlockEncodingLengthMetadata { - format: String, - block_hash: String, - loop_count: u16, -} - -/// Generate inputs for the block encoding lengths calculation guest programs. -pub fn block_encoding_length_inputs( - input_folder: &Path, - loop_count: u16, - format: BlockEncodingFormat, -) -> Result>> { - read_benchmark_fixtures_folder(input_folder)? - .into_iter() - .map(|bw| { - let input = BlockEncodingLengthInput { - block: BincodeBlock(bw.stateless_input.block.clone()), - loop_count, - format, - }; - Ok(GenericGuestFixture:: { - name: bw.name, - input, - metadata: BlockEncodingLengthMetadata { - format: format!("{format:?}"), - block_hash: bw.stateless_input.block.hash_slow().to_string(), - loop_count, - }, - output: OnceLock::from(()), - } - .into_boxed()) - }) - .collect() -} diff --git a/crates/benchmark-runner/src/empty_program.rs b/crates/benchmark-runner/src/empty_program.rs index 8e079c66..475f0747 100644 --- a/crates/benchmark-runner/src/empty_program.rs +++ b/crates/benchmark-runner/src/empty_program.rs @@ -1,44 +1,15 @@ //! Empty program guest program. -use crate::guest_programs::{GuestFixture, OutputVerifierResult}; -use ere_zkvm_interface::Input; - -/// Empty program guest program. -#[derive(Debug, Clone)] -pub struct EmptyGuestFixture; - -impl GuestFixture for EmptyGuestFixture { - fn name(&self) -> String { - "empty_program".to_string() - } - - fn metadata(&self) -> serde_json::Value { - serde_json::Value::default() - } - - fn input(&self) -> anyhow::Result { - Ok(Input::new()) - } - - fn expected_public_values(&self) -> anyhow::Result> { - Ok(Vec::new()) - } - - fn verify_public_values(&self, public_values: &[u8]) -> anyhow::Result { - // For OpenVM it has fixed size public values (32 bytes by default, - // now allowed to configure to 0 bytes), so here we treat all zero as - // valid empty output as well. - let all_zero = public_values.iter().all(|v| *v == 0); - Ok(match public_values.is_empty() || all_zero { - true => OutputVerifierResult::Match, - false => OutputVerifierResult::Mismatch(format!( - "Expected empty output, got {public_values:?}", - )), - }) - } -} +use crate::guest_programs::{GenericGuestFixture, GuestFixture}; +use ere_dockerized::Input; /// Generate inputs for the empty program guest program. pub fn empty_program_input() -> anyhow::Result> { - Ok(Box::new(EmptyGuestFixture)) + let fixture = GenericGuestFixture { + name: "empty_program".to_owned(), + input: Input::new(), + expected_public_values: Vec::new(), + metadata: (), + }; + Ok(Box::new(fixture)) } diff --git a/crates/benchmark-runner/src/guest_programs.rs b/crates/benchmark-runner/src/guest_programs.rs index 8316729a..ff32e735 100644 --- a/crates/benchmark-runner/src/guest_programs.rs +++ b/crates/benchmark-runner/src/guest_programs.rs @@ -1,13 +1,10 @@ //! Guest program input generation and metadata types -use anyhow::Context; -use ere_io::Io; -use ere_platform_trait::Platform; -use ere_zkvm_interface::zkvm::Input; -use guest_libs::guest::{Guest, GuestInput, GuestOutput}; +use ere_dockerized::Input; +use ere_guests_guest::codec::Encode; use serde::Serialize; use sha2::{Digest, Sha256}; -use std::{fmt::Debug, marker::PhantomData, ops::Deref, sync::OnceLock}; +use std::fmt::Debug; /// Trait for a guest program fixture with associated metadata. #[auto_impl::auto_impl(&, Box)] @@ -37,74 +34,58 @@ pub trait GuestFixture: Sync + Send { } } -/// A generic implementation of `GuestFixture` that wraps a guest program fixture -/// with its input, output, and metadata. +/// A generic guest fixture containing the input, expected output, and metadata. #[derive(Debug)] -pub struct GenericGuestFixture { +pub struct GenericGuestFixture { /// The name of the guest program fixture. pub name: String, /// The input to be provided to the guest program fixture. - pub input: GuestInput, - /// The expected output for the guest program fixture. - /// - /// If `None` is given, `G::compute` will be used to compute the output. - pub output: OnceLock>, + pub input: Input, + /// The expected public values of guest program. + pub expected_public_values: Vec, /// Associated metadata for the guest program fixture. pub metadata: M, } -impl GenericGuestFixture +impl GenericGuestFixture where - G: 'static + Guest, M: 'static + Send + Sync + Serialize, { - /// Converts this [`GenericGuestFixture`] into a boxed [`GuestFixture`] trait object. - pub fn into_boxed(self) -> Box { - Box::new(self) - } - - /// Converts this [`GenericGuestFixture`] into a [`OutputHashedGuestFixture`] - /// with [`Sha256`]. - pub const fn into_output_sha256(self) -> OutputHashedGuestFixture { - OutputHashedGuestFixture::new(self) + /// Creates a new [`GenericGuestFixture`] from a guest input, output, and metadata. + pub fn new( + name: impl AsRef, + input: ere_guests_guest::GuestInput, + output: ere_guests_guest::GuestOutput, + metadata: M, + ) -> anyhow::Result { + Ok(Self { + name: name.as_ref().to_string(), + input: Input::new().with_stdin( + input + .encode_to_vec() + .map_err(|e| anyhow::anyhow!("Failed to serialize guest input: {}", e))?, + ), + expected_public_values: output + .encode_to_vec() + .map_err(|e| anyhow::anyhow!("Failed to serialize guest output: {}", e))?, + metadata, + }) } - /// Returns the guest program input. - fn input(&self) -> GuestInput { - self.input.clone() + /// Consumes the [`GenericGuestFixture`] and constructs a new one with sha256 output. + pub fn output_sha256(mut self) -> Self { + self.expected_public_values = Sha256::digest(self.expected_public_values).to_vec(); + self } - /// Returns the guest program output, computing it if not provided. - fn output(&self) -> GuestOutput { - self.output - .get_or_init(|| { - struct HostPlatform; - - impl Platform for HostPlatform { - fn read_whole_input() -> impl Deref { - panic!("`Guest::compute` should not invoke `Platform::read_whole_input`"); - #[allow(unreachable_code)] - Vec::new() // For `impl Deref` to know the concrete type. - } - - fn write_whole_output(_: &[u8]) { - panic!("`Guest::compute` should not invoke `Platform::write_whole_output`") - } - - fn print(message: &str) { - print!("{message}"); - } - } - - G::compute::(self.input()) - }) - .clone() + /// Consumes the [`GenericGuestFixture`] and returns it as a boxed trait object. + pub fn into_boxed(self) -> Box { + Box::new(self) } } -impl GuestFixture for GenericGuestFixture +impl GuestFixture for GenericGuestFixture where - G: 'static + Guest, M: 'static + Send + Sync + Serialize, { fn name(&self) -> String { @@ -116,63 +97,11 @@ where } fn input(&self) -> anyhow::Result { - let stdin = G::Io::serialize_input(&self.input()).context("Failed to serialize input")?; - Ok(Input::new().with_prefixed_stdin(stdin)) - } - - fn expected_public_values(&self) -> anyhow::Result> { - G::Io::serialize_output(&self.output()).context("Failed to serialize output") - } -} - -/// A wrapper around a `GuestFixture` expects the output is hashed. -/// -/// This is useful when the guest program outputs a hash of the result instead of the full result. -#[derive(Debug)] -pub struct OutputHashedGuestFixture { - inner: G, - _marker: PhantomData, -} - -impl OutputHashedGuestFixture -where - G: 'static + GuestFixture, - D: 'static + Send + Sync + Digest, -{ - /// Creates a new [`OutputHashedGuestFixture`] wrapping the given [`GuestFixture`]. - pub const fn new(inner: G) -> Self { - Self { - inner, - _marker: PhantomData, - } - } - - /// Converts this [`OutputHashedGuestFixture`] into a boxed [`GuestFixture`] trait - /// object. - pub fn into_boxed(self) -> Box { - Box::new(self) - } -} - -impl GuestFixture for OutputHashedGuestFixture -where - G: 'static + GuestFixture, - D: 'static + Send + Sync + Digest, -{ - fn name(&self) -> String { - self.inner.name() - } - - fn metadata(&self) -> serde_json::Value { - self.inner.metadata() - } - - fn input(&self) -> anyhow::Result { - self.inner.input() + Ok(self.input.clone()) } fn expected_public_values(&self) -> anyhow::Result> { - Ok(D::digest(self.inner.expected_public_values()?).to_vec()) + Ok(self.expected_public_values.clone()) } } diff --git a/crates/benchmark-runner/src/lib.rs b/crates/benchmark-runner/src/lib.rs index 9cf123dd..834c69ce 100644 --- a/crates/benchmark-runner/src/lib.rs +++ b/crates/benchmark-runner/src/lib.rs @@ -4,8 +4,9 @@ pub mod guest_programs; -pub mod block_encoding_length_program; pub mod empty_program; pub mod stateless_validator; +pub mod zisk_profiling; pub mod runner; +pub mod verification; diff --git a/crates/benchmark-runner/src/runner.rs b/crates/benchmark-runner/src/runner.rs index de4ea446..b9041199 100644 --- a/crates/benchmark-runner/src/runner.rs +++ b/crates/benchmark-runner/src/runner.rs @@ -1,18 +1,149 @@ //! Runner for benchmark tests use anyhow::{anyhow, bail, Context, Result}; -use ere_dockerized::{zkVMKind, DockerizedCompiler, DockerizedzkVM}; -use rayon::iter::{IntoParallelIterator, ParallelIterator}; +use ere_cluster_client_zisk::{ZiskClusterClient, ZiskProof}; +use ere_dockerized::{ + codec::{Decode, Encode}, + zkVMKind, zkVMVerifier, DockerizedzkVM, DockerizedzkVMConfig, Elf, EncodedProof, Input, + ProgramExecutionReport, ProgramProvingReport, ProverResource, PublicValues, +}; +use ere_guests_downloader::{CompiledGuest, Downloader}; +use ere_util_tokio::block_on; +use rayon::iter::{ParallelBridge, ParallelIterator}; use std::fs; use std::path::{Path, PathBuf}; -use std::process::Command; -use std::{any::Any, panic}; -use tracing::{error, info}; +use std::{any::Any, env, panic}; +use tracing::{info, warn}; -use ere_zkvm_interface::{zkVM, Compiler, ProofKind, ProverResourceType}; use zkevm_metrics::{BenchmarkRun, CrashInfo, ExecutionMetrics, HardwareInfo, ProvingMetrics}; -use crate::guest_programs::{GuestFixture, OutputVerifierResult}; +use crate::guest_programs::GuestFixture; +use crate::zisk_profiling::{run_profiling, ProfileOutcome}; + +pub use crate::zisk_profiling::ProfileConfig; + +/// How to resolve downloaded guest binaries, derived from the resolved +/// ere-guests dependency in Cargo.lock at build time. +const ERE_GUESTS_DOWNLOAD_KIND: &str = env!("ERE_GUESTS_DOWNLOAD_KIND"); +/// Tag or commit SHA matching [`ERE_GUESTS_DOWNLOAD_KIND`]. +const ERE_GUESTS_DOWNLOAD_VALUE: &str = env!("ERE_GUESTS_DOWNLOAD_VALUE"); + +/// A zkVM instance bundled with ELF bytes (used for profiling). +pub enum ZkVMInstance { + /// Dockerized zkVM instance + Dockerized { + /// zkVM instance + zkvm: DockerizedzkVM, + /// ELF of Zisk guest with feature `cycle-scope` enabled. + /// `Some` only if the guest is a Zisk guest. + profiling_elf: Option, + }, + /// Remote Zisk proving cluster client. + ZiskClusterClient { + /// gRPC client connected to the remote Zisk cluster. + client: ZiskClusterClient, + /// ELF of Zisk guest with feature `cycle-scope` enabled. + /// `Some` only if the guest is a Zisk guest. + profiling_elf: Option, + }, +} + +impl ZkVMInstance { + /// Returns the zkVM kind. + pub fn zkvm_kind(&self) -> zkVMKind { + match self { + Self::Dockerized { zkvm, .. } => zkvm.zkvm_kind(), + Self::ZiskClusterClient { .. } => zkVMKind::Zisk, + } + } + + /// Returns the zkVM name. + pub fn name(&self) -> &'static str { + match self { + Self::Dockerized { zkvm, .. } => zkvm.name(), + Self::ZiskClusterClient { client, .. } => client.verifier().name(), + } + } + + /// Returns the zkVM SDK version. + pub fn sdk_version(&self) -> &'static str { + match self { + Self::Dockerized { zkvm, .. } => zkvm.sdk_version(), + Self::ZiskClusterClient { client, .. } => client.verifier().sdk_version(), + } + } + + /// Returns the ELF for Zisk profiling. + pub const fn profiling_elf(&self) -> Option<&Elf> { + match self { + Self::Dockerized { profiling_elf, .. } + | Self::ZiskClusterClient { profiling_elf, .. } => profiling_elf.as_ref(), + } + } + + /// Executes the guest program without proving. + pub fn execute(&self, input: &Input) -> Result<(PublicValues, ProgramExecutionReport)> { + match self { + Self::Dockerized { zkvm, .. } => zkvm.execute(input), + Self::ZiskClusterClient { .. } => { + bail!("ZiskClusterClient does not support Action::Execute") + } + } + } + + /// Generates a proof for the guest program with the given input. + pub fn prove( + &self, + input: &Input, + ) -> Result<(PublicValues, EncodedProof, ProgramProvingReport)> { + match self { + Self::Dockerized { zkvm, .. } => zkvm.prove(input), + Self::ZiskClusterClient { client, .. } => { + let (proof, proving_time) = block_on(client.prove(input, None))?; + let (_, public_values) = proof.program_vk_and_public_values()?; + let proof = proof.encode_to_vec()?; + Ok(( + public_values, + EncodedProof(proof), + ProgramProvingReport::new(proving_time), + )) + } + } + } + + /// Verifies a proof and returns the public values it commits to. + pub fn verify(&self, proof: &EncodedProof) -> Result { + match self { + Self::Dockerized { zkvm, .. } => zkvm.verify(proof), + Self::ZiskClusterClient { client, .. } => { + let proof = ZiskProof::decode_from_slice(&proof.0)?; + Ok(client.verifier().verify(&proof)?) + } + } + } +} + +impl std::fmt::Debug for ZkVMInstance { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::Dockerized { zkvm, .. } => f + .debug_struct("Dockerized") + .field("zkvm", &zkvm.name()) + .field("sdk_version", &zkvm.sdk_version()) + .field("program_vk", &hex::encode(&zkvm.program_vk().0)) + .finish(), + Self::ZiskClusterClient { client, .. } => f + .debug_struct("ZiskClusterClient") + .field("zkvm", &client.verifier().name()) + .field("sdk_version", &client.verifier().sdk_version()) + .field( + "program_vk", + &hex::encode(client.program_vk().encode_to_vec().expect("infallible")), + ) + .finish(), + } + } +} /// Holds the configuration for running benchmarks #[derive(Debug, Clone)] @@ -27,6 +158,10 @@ pub struct RunConfig { pub force_rerun: bool, /// Optional folder to dump input files pub dump_inputs_folder: Option, + /// Optional Zisk profiling configuration + pub zisk_profile_config: Option, + /// Optional folder to save proof artifacts for later verification + pub save_proofs_folder: Option, } /// Action specifies whether we should prove or execute @@ -36,38 +171,79 @@ pub enum Action { Prove, /// Only execute the zkVM without proving Execute, + /// Verify proofs loaded from disk + Verify, } -/// Executes benchmarks for a given guest program type and zkVM -pub fn run_benchmark( - ere_zkvm: &DockerizedzkVM, - config: &RunConfig, - inputs: impl IntoParallelIterator + IntoIterator, -) -> Result<()> { +/// Executes benchmarks from a lazy iterator of fixtures. +pub fn run_benchmark_iter(instance: &ZkVMInstance, config: &RunConfig, inputs: I) -> Result<()> +where + I: Iterator>> + Send, +{ HardwareInfo::detect().to_path(config.output_folder.join("hardware.json"))?; - match config.action { - Action::Execute => inputs - .into_par_iter() - .try_for_each(|input| process_input(ere_zkvm, input, config))?, - Action::Prove => inputs - .into_iter() - .try_for_each(|input| process_input(ere_zkvm, input, config))?, + match config.action { + Action::Execute => inputs.par_bridge().try_for_each(|input| { + let input = input?; + process_input(instance, input, config) + })?, + + Action::Prove => inputs.into_iter().try_for_each(|input| { + let input = input?; + process_input(instance, input, config) + })?, + + Action::Verify => { + return Err(anyhow!( + "run_benchmark_iter should not be called with Action::Verify, use run_verify_from_disk" + )); + } } Ok(()) } -/// Processes a single input through the zkVM -fn process_input(zkvm: &DockerizedzkVM, io: impl GuestFixture, config: &RunConfig) -> Result<()> { - let zkvm_name = format!("{}-v{}", zkvm.name(), zkvm.sdk_version()); - let out_path = config +fn benchmark_zkvm_name(zkvm: &ZkVMInstance) -> String { + format!("{}-{}", zkvm.name(), zkvm.sdk_version()) +} + +fn benchmark_output_dir_for_name(config: &RunConfig, zkvm_name: &str) -> PathBuf { + config .output_folder .join(config.sub_folder.as_deref().unwrap_or("")) - .join(format!("{zkvm_name}/{}.json", io.name())); + .join(zkvm_name) +} + +fn benchmark_output_path_for_name( + config: &RunConfig, + zkvm_name: &str, + fixture_name: &str, +) -> PathBuf { + benchmark_output_dir_for_name(config, zkvm_name).join(format!("{fixture_name}.json")) +} + +/// Returns the output directory for a given zkVM benchmark run. +pub fn benchmark_output_dir(zkvm: &ZkVMInstance, config: &RunConfig) -> PathBuf { + benchmark_output_dir_for_name(config, &benchmark_zkvm_name(zkvm)) +} + +/// Returns the output path for a given fixture within a zkVM benchmark run. +pub fn benchmark_output_path( + zkvm: &ZkVMInstance, + config: &RunConfig, + fixture_name: &str, +) -> PathBuf { + benchmark_output_path_for_name(config, &benchmark_zkvm_name(zkvm), fixture_name) +} + +/// Processes a single input through the zkVM +fn process_input(zkvm: &ZkVMInstance, io: impl GuestFixture, config: &RunConfig) -> Result<()> { + let zkvm_name = benchmark_zkvm_name(zkvm); + let fixture_name = io.name(); + let out_path = benchmark_output_path_for_name(config, &zkvm_name, &fixture_name); if !config.force_rerun && out_path.exists() { - info!("Skipping {} (already exists)", &io.name()); + info!("Skipping {} (already exists)", fixture_name); return Ok(()); } @@ -77,22 +253,44 @@ fn process_input(zkvm: &DockerizedzkVM, io: impl GuestFixture, config: &RunConfi if let Some(ref dump_folder) = config.dump_inputs_folder { dump_input( input.stdin(), - &io.name(), + &fixture_name, dump_folder, config.sub_folder.as_deref(), )?; } - info!("Running {}", io.name()); + info!("Running {}", fixture_name); let (execution, proving) = match config.action { Action::Execute => { + // Run Zisk profiling if configured + if let Some(profile_config) = &config.zisk_profile_config { + let Some(profiling_elf) = zkvm.profiling_elf() else { + bail!("Zisk profiling configured but profiling ELF not found") + }; + let outcome = run_profiling( + profile_config, + profiling_elf, + input.stdin(), + &fixture_name, + config.sub_folder.as_deref(), + ); + if let ProfileOutcome::Failed(message) = outcome { + warn!( + "Zisk profiling failed for {} but benchmark execution will continue: {}", + fixture_name, message + ); + } + } + let run = panic::catch_unwind(panic::AssertUnwindSafe(|| zkvm.execute(&input))); let execution = match run { Ok(Ok((public_values, report))) => { - verify_public_output(&io, &public_values) - .context("Failed to verify public output from execution")?; + let output_matched = + public_output_matched(zkvm.zkvm_kind(), &io, &public_values) + .context("Failed to compare public output from execution")?; ExecutionMetrics::Success { + output_matched, total_num_cycles: report.total_num_cycles, region_cycles: report.region_cycles.into_iter().collect(), execution_duration: report.execution_duration, @@ -108,21 +306,37 @@ fn process_input(zkvm: &DockerizedzkVM, io: impl GuestFixture, config: &RunConfi (Some(execution), None) } Action::Prove => { - let run = panic::catch_unwind(panic::AssertUnwindSafe(|| { - zkvm.prove(&input, ProofKind::Compressed) - })); + let run = panic::catch_unwind(panic::AssertUnwindSafe(|| zkvm.prove(&input))); let proving = match run { Ok(Ok((public_values, proof, report))) => { - verify_public_output(&io, &public_values) - .context("Failed to verify public output from proof")?; + let prover_output_matched = + public_output_matched(zkvm.zkvm_kind(), &io, &public_values) + .context("Failed to compare public output from proof")?; + + // Save proof to disk if requested + if let Some(ref proofs_folder) = config.save_proofs_folder { + save_proof( + &proof, + &fixture_name, + &zkvm_name, + proofs_folder, + config.sub_folder.as_deref(), + )?; + } + + let verify_start = std::time::Instant::now(); let verif_public_values = zkvm.verify(&proof).context("Failed to verify proof")?; - verify_public_output(&io, &verif_public_values) - .context("Failed to verify public output from proof verification")?; + let verification_time_ms = verify_start.elapsed().as_millis(); + let verifier_output_matched = + public_output_matched(zkvm.zkvm_kind(), &io, &verif_public_values) + .context("Failed to compare public output from proof verification")?; ProvingMetrics::Success { - proof_size: proof.as_bytes().len(), + output_matched: prover_output_matched && verifier_output_matched, + proof_size: proof.len(), proving_time_ms: report.proving_time.as_millis(), + verification_time_ms, } } Ok(Err(e)) => ProvingMetrics::Crashed(CrashInfo { @@ -134,23 +348,29 @@ fn process_input(zkvm: &DockerizedzkVM, io: impl GuestFixture, config: &RunConfi }; (None, Some(proving)) } + Action::Verify => { + return Err(anyhow!( + "process_input should not be called with Action::Verify, use run_verify_from_disk" + )); + } }; let report = BenchmarkRun { - name: io.name(), + name: fixture_name.clone(), timestamp_completed: zkevm_metrics::chrono::Utc::now(), metadata: io.metadata(), execution, proving, + verification: None, }; - info!("Saving report {}", io.name()); + info!("Saving report {}", fixture_name); report.to_path(out_path)?; Ok(()) } -fn get_panic_msg(panic_info: Box) -> String { +pub(crate) fn get_panic_msg(panic_info: Box) -> String { panic_info .downcast_ref::<&str>() .map(|s| s.to_string()) @@ -158,57 +378,129 @@ fn get_panic_msg(panic_info: Box) -> String { .unwrap_or_else(|| "Unknown panic occurred".to_string()) } -/// Creates the requested zkVMs configured for the guest program and resources. -pub fn get_zkvm_instances( +/// Creates the requested EL/zkVMs ere instances. +pub async fn get_el_zkvm_instances( + el: &str, + zkvms: &[zkVMKind], + resource: ProverResource, + zkvm_config: DockerizedzkVMConfig, + bin_path: Option<&Path>, +) -> Result> { + let guest_name_prefix = format!("stateless-validator-{el}"); + get_guest_zkvm_instances(&guest_name_prefix, zkvms, resource, zkvm_config, bin_path).await +} + +/// Creates the requested guest program zkVMs ere instances. +pub async fn get_guest_zkvm_instances( + guest_name_prefix: &str, zkvms: &[zkVMKind], - workspace_dir: &Path, - guest_relative: &Path, - resource: ProverResourceType, - apply_patches: bool, -) -> Result> { + resource: ProverResource, + zkvm_config: DockerizedzkVMConfig, + bin_path: Option<&Path>, +) -> Result> { let mut instances = Vec::new(); for zkvm in zkvms { - if apply_patches { - run_cargo_patch_command(zkvm.as_str(), workspace_dir)?; - } - let program = DockerizedCompiler::new( - *zkvm, - ere_dockerized::CompilerKind::RustCustomized, - workspace_dir, - )? - .compile(&workspace_dir.join(guest_relative).join(zkvm.as_str()))?; - instances.push(DockerizedzkVM::new(*zkvm, program, resource.clone())?); + let guest_name = format!("{}-{}", guest_name_prefix, zkvm.as_str()); + let compiled = load_compiled(&guest_name, bin_path).await?; + let instance = match &resource { + ProverResource::Cpu | ProverResource::Gpu => { + let zkvm = DockerizedzkVM::new( + *zkvm, + Elf(compiled.elf), + resource.clone(), + zkvm_config.clone(), + ) + .with_context(|| format!("Failed to initialize DockerizedzkVM, kind {zkvm}"))?; + ZkVMInstance::Dockerized { + zkvm, + profiling_elf: compiled.profiling_elf.map(Elf), + } + } + ProverResource::Cluster(cfg) if *zkvm == zkVMKind::Zisk => { + let client = ZiskClusterClient::new(cfg, Elf(compiled.elf.clone())) + .await + .map_err(|e| anyhow!("Failed to connect to Zisk cluster: {e}"))?; + ZkVMInstance::ZiskClusterClient { + client, + profiling_elf: compiled.profiling_elf.map(Elf), + } + } + ProverResource::Cluster(_) => { + bail!("Cluster is only implemented for Zisk, got {zkvm}") + } + ProverResource::Network(_) => unreachable!(), + }; + instances.push(instance); } Ok(instances) } -/// Patches the precompiles for a specific zkvm -fn run_cargo_patch_command(zkvm_name: &str, workspace_path: &Path) -> Result<()> { - info!("Running cargo {}...", zkvm_name); - - let output = Command::new("cargo") - .arg(zkvm_name) - .arg("--manifest-folder") - .arg(workspace_path) - .output()?; - - if !output.status.success() { - let stderr = String::from_utf8_lossy(&output.stderr); - let stdout = String::from_utf8_lossy(&output.stdout); +async fn load_compiled(guest_name: &str, bin_path: Option<&Path>) -> Result { + if let Some(path) = bin_path { + let elf = fs::read(path.join(format!("{guest_name}.elf"))) + .with_context(|| format!("Failed to read ELF from path: {}", path.display()))?; + let program_vk = fs::read(path.join(format!("{guest_name}.vk"))) + .with_context(|| format!("Failed to read program vk from path: {}", path.display()))?; + let profiling_elf = fs::read(path.join(format!("{guest_name}-profiling.elf"))).ok(); + return Ok(CompiledGuest { + elf, + program_vk, + profiling_elf, + }); + } - error!( - "cargo {} failed with exit code: {:?}", - zkvm_name, - output.status.code() - ); - error!("stdout: {}", stdout); - error!("stderr: {}", stderr); + let downloader = guest_downloader().await?; + downloader + .download(guest_name) + .await + .with_context(|| format!("Failed to download guest program: {guest_name}")) +} - bail!("cargo {zkvm_name} command failed"); +async fn guest_downloader() -> Result { + match ERE_GUESTS_DOWNLOAD_KIND { + "tag" => { + info!( + "Downloading guest programs from ere-guests release {}", + ERE_GUESTS_DOWNLOAD_VALUE + ); + Downloader::from_tag(ERE_GUESTS_DOWNLOAD_VALUE) + .await + .with_context(|| { + format!( + "Failed to create guest program downloader for ere-guests release {}", + ERE_GUESTS_DOWNLOAD_VALUE + ) + }) + } + "commit" => { + let github_token = env::var("GITHUB_TOKEN") + .or_else(|_| env::var("GH_TOKEN")) + .with_context(|| { + format!( + "GITHUB_TOKEN or GH_TOKEN must be set to download guest artifacts for ere-guests commit {}", + ERE_GUESTS_DOWNLOAD_VALUE + ) + })?; + + info!( + "Downloading guest programs from ere-guests workflow artifacts for commit {}", + ERE_GUESTS_DOWNLOAD_VALUE + ); + Downloader::from_commit(ERE_GUESTS_DOWNLOAD_VALUE, &github_token) + .await + .with_context(|| { + format!( + "Failed to create guest program downloader for ere-guests commit {}", + ERE_GUESTS_DOWNLOAD_VALUE + ) + }) + } + other => Err(anyhow!( + "Unsupported ere-guests download source `{}` with value `{}`", + other, + ERE_GUESTS_DOWNLOAD_VALUE + )), } - - info!("cargo {zkvm_name} completed successfully"); - Ok(()) } /// Dumps the raw input bytes to disk @@ -220,28 +512,165 @@ fn dump_input( ) -> Result<()> { let input_dir = dump_folder.join(sub_folder.unwrap_or("")); - fs::create_dir_all(&input_dir).context(format!( - "Failed to create directory: {}", - input_dir.display() - ))?; + fs::create_dir_all(&input_dir) + .with_context(|| format!("Failed to create directory: {}", input_dir.display()))?; - let input_path = input_dir.join(format!("{}.bin", name)); + let input_path = input_dir.join(format!("{name}.bin")); // Only write if it doesn't exist (avoid duplicate writes across zkVMs) if !input_path.exists() { fs::write(&input_path, input) - .context(format!("Failed to write input to {}", input_path.display()))?; + .with_context(|| format!("Failed to write input to {}", input_path.display()))?; info!("Dumped input to {}", input_path.display()); } Ok(()) } -fn verify_public_output(io: &impl GuestFixture, public_values: &[u8]) -> Result<()> { - match io.verify_public_values(public_values)? { - OutputVerifierResult::Match => Ok(()), - OutputVerifierResult::Mismatch(msg) => { - Err(anyhow!("Output mismatch for {}: {msg}", io.name())) +/// Saves a proof's raw bytes to disk +fn save_proof( + proof: &EncodedProof, + name: &str, + zkvm_name: &str, + proofs_folder: &Path, + sub_folder: Option<&str>, +) -> Result<()> { + let proof_dir = proofs_folder.join(sub_folder.unwrap_or("")).join(zkvm_name); + + fs::create_dir_all(&proof_dir) + .with_context(|| format!("Failed to create directory: {}", proof_dir.display()))?; + + let proof_path = proof_dir.join(format!("{name}.proof")); + fs::write(&proof_path, proof) + .with_context(|| format!("Failed to write proof to {}", proof_path.display()))?; + info!("Saved proof to {}", proof_path.display()); + + Ok(()) +} + +fn public_output_matched( + zkvm_kind: zkVMKind, + io: &impl GuestFixture, + public_values: &[u8], +) -> Result { + let expected_public_values = + normalize_expected_public_values(zkvm_kind, io.expected_public_values()?); + + if expected_public_values == public_values { + Ok(true) + } else { + warn!( + "Output mismatch for {}: Public values mismatch: expected {:?}, got {:?}", + io.name(), + expected_public_values, + public_values + ); + Ok(false) + } +} + +fn normalize_expected_public_values( + zkvm_kind: zkVMKind, + mut expected_public_values: Vec, +) -> Vec { + if matches!(zkvm_kind, zkVMKind::Airbender | zkVMKind::OpenVM) + && expected_public_values.len() < 32 + { + expected_public_values.resize(32, 0); + } + + if matches!(zkvm_kind, zkVMKind::Zisk) && expected_public_values.len() < 256 { + expected_public_values.resize(256, 0); + } + + expected_public_values +} + +#[cfg(test)] +mod tests { + use super::*; + + struct Fixture { + name: &'static str, + expected_public_values: Vec, + } + + impl Fixture { + fn new(expected_public_values: Vec) -> Self { + Self { + name: "fixture", + expected_public_values, + } + } + } + + impl GuestFixture for Fixture { + fn name(&self) -> String { + self.name.to_string() + } + + fn metadata(&self) -> serde_json::Value { + serde_json::json!({}) + } + + fn input(&self) -> Result { + Ok(Input::new()) + } + + fn expected_public_values(&self) -> Result> { + Ok(self.expected_public_values.clone()) } } + + #[test] + fn public_output_matched_returns_true_for_matching_values() -> Result<()> { + let fixture = Fixture::new(vec![1, 2, 3]); + + assert!(public_output_matched(zkVMKind::SP1, &fixture, &[1, 2, 3],)?); + + Ok(()) + } + + #[test] + fn public_output_matched_returns_false_for_mismatched_values() -> Result<()> { + let fixture = Fixture::new(vec![1, 2, 3]); + + assert!(!public_output_matched(zkVMKind::SP1, &fixture, &[1, 2, 4],)?); + + Ok(()) + } + + #[test] + fn public_output_matched_preserves_zkvm_padding_normalization() -> Result<()> { + let fixture = Fixture::new(vec![0xab]); + + let mut thirty_two_byte_public_values = vec![0xab]; + thirty_two_byte_public_values.resize(32, 0); + + assert!(public_output_matched( + zkVMKind::Airbender, + &fixture, + &thirty_two_byte_public_values, + )?); + assert!(public_output_matched( + zkVMKind::OpenVM, + &fixture, + &thirty_two_byte_public_values, + )?); + assert!(!public_output_matched( + zkVMKind::SP1, + &fixture, + &thirty_two_byte_public_values, + )?); + + let mut zisk_public_values = vec![0xab]; + zisk_public_values.resize(256, 0); + assert!(public_output_matched( + zkVMKind::Zisk, + &fixture, + &zisk_public_values, + )?); + + Ok(()) + } } diff --git a/crates/benchmark-runner/src/stateless_validator.rs b/crates/benchmark-runner/src/stateless_validator.rs index e134d601..d34972aa 100644 --- a/crates/benchmark-runner/src/stateless_validator.rs +++ b/crates/benchmark-runner/src/stateless_validator.rs @@ -1,16 +1,16 @@ //! Stateless validator guest program. +mod eest; +mod fixtures; +mod inputs; + use crate::guest_programs::GuestFixture; use anyhow::Result; -use rayon::iter::{IntoParallelIterator, ParallelIterator}; use serde::{Deserialize, Serialize}; use std::path::Path; use strum::{AsRefStr, EnumString}; -use walkdir::WalkDir; -use witness_generator::StatelessValidationFixture; -pub mod ethrex; -pub mod reth; +pub use fixtures::{benchmark_fixture_paths, iter_benchmark_fixture_paths, load_benchmark_fixture}; /// Execution client variants. #[derive(Debug, Copy, Clone, PartialEq, Eq, EnumString, AsRefStr)] @@ -25,38 +25,32 @@ pub enum ExecutionClient { /// Extra information about the block being benchmarked #[derive(Debug, Clone, Serialize, Deserialize)] pub struct BlockMetadata { - block_used_gas: u64, + /// Gas used by the block + pub block_used_gas: u64, } -/// Prepares the inputs for the stateless validator guest program based on the mode. -pub fn stateless_validator_inputs( - input_folder: &Path, - el: ExecutionClient, -) -> anyhow::Result>> { - match el { - ExecutionClient::Reth => reth::stateless_validator_inputs(input_folder), - ExecutionClient::Ethrex => ethrex::stateless_validator_inputs(input_folder), +impl ExecutionClient { + /// Returns the version string of the execution client (tag or short commit hash), + /// extracted from the resolved `Cargo.lock` at build time. + pub const fn version(&self) -> &'static str { + match self { + Self::Reth => env!("RETH_EL_VERSION"), + Self::Ethrex => env!("ETHREX_EL_VERSION"), + } } } -/// Reads the benchmark fixtures folder and returns a list of block and witness pairs. -pub fn read_benchmark_fixtures_folder(path: &Path) -> Result> { - WalkDir::new(path) - .min_depth(1) - .into_iter() - .collect::, _>>()? - .into_par_iter() - .map(|entry| { - if entry.file_type().is_file() { - let content = std::fs::read(entry.path())?; - let bw: StatelessValidationFixture = - serde_json::from_slice(&content).map_err(|e| { - anyhow::anyhow!("Failed to parse {}: {}", entry.path().display(), e) - })?; - Ok(bw) - } else { - anyhow::bail!("Invalid input folder structure: expected files only") - } - }) - .collect() +/// Lazily prepares stateless validator inputs from a fixture folder. +pub fn stateless_validator_input_iter( + input_folder: &Path, + selected_fixtures: Option<&[String]>, + el: ExecutionClient, + existing_output_dir: Option<&Path>, +) -> Result>>> { + fixtures::stateless_validator_input_iter( + input_folder, + selected_fixtures, + el, + existing_output_dir, + ) } diff --git a/crates/benchmark-runner/src/stateless_validator/eest.rs b/crates/benchmark-runner/src/stateless_validator/eest.rs new file mode 100644 index 00000000..6d7bc3b7 --- /dev/null +++ b/crates/benchmark-runner/src/stateless_validator/eest.rs @@ -0,0 +1,412 @@ +use anyhow::{bail, Context, Result}; +use serde::Deserialize; +use std::{ + collections::{BTreeMap, HashSet}, + path::Path, +}; +use tracing::info; + +const EEST_SAFE_FILE_STEM_MAX_LEN: usize = 220; + +#[derive(Debug, Clone)] +pub(crate) struct EestStatelessFixture { + pub(crate) name: String, + pub(crate) original_test_name: String, + pub(crate) source_path: String, + pub(crate) block_index: usize, + pub(crate) network: String, + pub(crate) chain_id: u64, + pub(crate) block_number: Option, + pub(crate) block_used_gas: Option, + pub(crate) stateless_input_bytes: Vec, + pub(crate) stateless_output_bytes: Vec, +} + +#[derive(Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +struct EestBlockchainTest { + network: String, + config: EestConfig, + blocks: Vec, +} + +#[derive(Debug, Deserialize)] +struct EestConfig { + chainid: String, +} + +#[derive(Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +struct EestBlock { + #[serde(default)] + stateless_input_bytes: Option, + #[serde(default)] + stateless_output_bytes: Option, + #[serde(default)] + block_header: Option, + #[serde(default, rename = "blocknumber")] + block_number: Option, +} + +#[derive(Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +struct EestBlockHeader { + #[serde(default)] + number: Option, + #[serde(default)] + gas_used: Option, +} + +pub(crate) fn load_eest_benchmark_fixtures( + value: serde_json::Value, + path: &Path, + input_root: &Path, +) -> Result> { + let cases: BTreeMap = + serde_json::from_value(value).with_context(|| { + format!( + "Failed to parse fixture {} as an EEST blockchain test", + path.display() + ) + })?; + + let source_path = relative_source_path(path, input_root); + let mut fixtures = Vec::new(); + let mut fixture_names = HashSet::new(); + + for (test_name, case) in cases { + let chain_id = parse_json_u64(&case.config.chainid) + .with_context(|| format!("Failed to parse chainid for EEST test {test_name}"))?; + + for (block_index, block) in case.blocks.into_iter().enumerate() { + let Some(input_hex) = block.stateless_input_bytes else { + info!( + "Skipping EEST test {test_name} block {block_index} from {source_path}: missing statelessInputBytes" + ); + continue; + }; + let stateless_input_bytes = decode_hex_bytes("statelessInputBytes", &input_hex) + .with_context(|| { + format!( + "Failed to decode statelessInputBytes for EEST test {test_name} block {block_index}" + ) + })?; + if stateless_input_bytes.is_empty() { + info!( + "Skipping EEST test {test_name} block {block_index} from {source_path}: empty statelessInputBytes" + ); + continue; + } + + let output_hex = block.stateless_output_bytes.with_context(|| { + format!( + "EEST test {test_name} block {block_index} has statelessInputBytes but no statelessOutputBytes" + ) + })?; + let stateless_output_bytes = decode_hex_bytes("statelessOutputBytes", &output_hex) + .with_context(|| { + format!( + "Failed to decode statelessOutputBytes for EEST test {test_name} block {block_index}" + ) + })?; + let block_number = parse_optional_json_u64( + block + .block_header + .as_ref() + .and_then(|header| header.number.as_deref()) + .or(block.block_number.as_deref()), + ) + .with_context(|| { + format!( + "Failed to parse block number for EEST test {test_name} block {block_index}" + ) + })?; + let block_used_gas = parse_optional_json_u64( + block + .block_header + .as_ref() + .and_then(|header| header.gas_used.as_deref()), + ) + .with_context(|| { + format!("Failed to parse gas used for EEST test {test_name} block {block_index}") + })?; + + fixtures.push(EestStatelessFixture { + name: unique_eest_fixture_name(&test_name, block_index, &mut fixture_names), + original_test_name: test_name.clone(), + source_path: source_path.clone(), + block_index, + network: case.network.clone(), + chain_id, + block_number, + block_used_gas, + stateless_input_bytes, + stateless_output_bytes, + }); + } + } + + Ok(fixtures) +} + +fn decode_hex_bytes(field_name: &str, value: &str) -> Result> { + let hex = value + .strip_prefix("0x") + .or_else(|| value.strip_prefix("0X")) + .unwrap_or(value); + + if !hex.len().is_multiple_of(2) { + bail!("{field_name} must contain an even number of hex digits"); + } + + (0..hex.len()) + .step_by(2) + .map(|index| { + u8::from_str_radix(&hex[index..index + 2], 16) + .with_context(|| format!("{field_name} contains invalid hex at byte {index}")) + }) + .collect() +} + +fn parse_optional_json_u64(value: Option<&str>) -> Result> { + value.map(parse_json_u64).transpose() +} + +fn parse_json_u64(value: &str) -> Result { + let value = value.trim(); + if let Some(hex) = value + .strip_prefix("0x") + .or_else(|| value.strip_prefix("0X")) + { + return u64::from_str_radix(hex, 16) + .with_context(|| format!("failed to parse hex u64 value {value}")); + } + + value + .parse() + .with_context(|| format!("failed to parse decimal u64 value {value}")) +} + +fn relative_source_path(path: &Path, input_root: &Path) -> String { + let relative = path + .strip_prefix(input_root) + .ok() + .filter(|path| !path.as_os_str().is_empty()) + .unwrap_or(path); + + normalize_path_string(relative) +} + +fn normalize_path_string(path: &Path) -> String { + path.to_string_lossy().replace('\\', "/") +} + +fn unique_eest_fixture_name( + test_name: &str, + block_index: usize, + fixture_names: &mut HashSet, +) -> String { + let base = eest_fixture_name(test_name, block_index); + let mut index = 1; + + loop { + let suffix = if index == 1 { + String::new() + } else { + format!("__{index}") + }; + let candidate = truncate_fixture_name(&base, &suffix); + + if fixture_names.insert(candidate.clone()) { + return candidate; + } + + index += 1; + } +} + +fn eest_fixture_name(test_name: &str, block_index: usize) -> String { + let sanitized = sanitize_fixture_name(test_name); + + format!("eest__{sanitized}__block{block_index}") +} + +fn sanitize_fixture_name(value: &str) -> String { + let mut sanitized = String::new(); + let mut last_was_separator = false; + + for ch in value.chars() { + let next = if ch.is_ascii_alphanumeric() || matches!(ch, '-' | '_') { + last_was_separator = false; + ch + } else if last_was_separator { + continue; + } else { + last_was_separator = true; + '_' + }; + + sanitized.push(next); + } + + let sanitized = sanitized.trim_matches('_'); + if sanitized.is_empty() { + return "fixture".to_string(); + } + + sanitized.to_string() +} + +fn truncate_fixture_name(base: &str, suffix: &str) -> String { + let base_max_len = EEST_SAFE_FILE_STEM_MAX_LEN.saturating_sub(suffix.len()); + if base.len() <= base_max_len { + return format!("{base}{suffix}"); + } + + let truncated = base[..base_max_len].trim_end_matches('_'); + format!("{truncated}{suffix}") +} + +#[cfg(test)] +mod tests { + use super::*; + use std::fs; + + #[test] + fn load_eest_fixture_flattens_blocks_and_preserves_raw_guest_io() -> Result<()> { + let dir = tempfile::tempdir()?; + let fixture_path = dir + .path() + .join("blockchain_tests/for_amsterdam/compute/mcopy.json"); + fs::create_dir_all(fixture_path.parent().unwrap())?; + fs::write(&fixture_path, sample_eest_fixture())?; + + let fixtures = load_eest_benchmark_fixtures( + serde_json::from_str(sample_eest_fixture())?, + &fixture_path, + dir.path(), + )?; + assert_eq!(fixtures.len(), 2); + + let names: Vec<_> = fixtures + .iter() + .map(|fixture| fixture.name.clone()) + .collect(); + assert_eq!( + names, + vec![ + "eest__tests_foo_py_test_same_name_a__block0".to_string(), + "eest__tests_foo_py_test_same_name_a__block0__2".to_string(), + ] + ); + assert!(names.iter().all(|name| name.starts_with("eest__"))); + assert!(names.iter().all(|name| !name.contains('/'))); + assert!(names.iter().all(|name| !name.contains(':'))); + assert!(names.iter().all(|name| !name.contains('['))); + + let fixture = fixtures + .iter() + .find(|fixture| fixture.original_test_name == "tests/foo.py::test_same[name/a]") + .unwrap(); + assert_eq!(fixture.stateless_input_bytes, [0x00, 0x01, 0x02]); + assert_eq!(fixture.stateless_output_bytes, [0xaa, 0xbb]); + assert_eq!( + fixture.source_path, + "blockchain_tests/for_amsterdam/compute/mcopy.json" + ); + assert_eq!(fixture.block_index, 0); + assert_eq!(fixture.chain_id, 1); + assert_eq!(fixture.block_number, Some(1)); + assert_eq!(fixture.block_used_gas, Some(16)); + + Ok(()) + } + + #[test] + fn eest_fixture_name_preserves_full_sanitized_name_when_it_fits() { + let name = eest_fixture_name( + "tests/amsterdam/eip8025_optional_proofs/test_witness_state_writes.py::test_witness_state_sstore_into_empty_storage_omits_post_state_nodes[fork_Amsterdam-blockchain_test]", + 0, + ); + + assert_eq!( + name, + "eest__tests_amsterdam_eip8025_optional_proofs_test_witness_state_writes_py_test_witness_state_sstore_into_empty_storage_omits_post_state_nodes_fork_Amsterdam-blockchain_test__block0" + ); + } + + #[test] + fn eest_fixture_name_truncates_only_when_it_exceeds_safe_file_stem_limit() { + let test_name = format!("tests/foo.py::test_{}", "a".repeat(300)); + let name = eest_fixture_name(&test_name, 0); + let truncated = truncate_fixture_name(&name, ""); + + assert!(name.len() > EEST_SAFE_FILE_STEM_MAX_LEN); + assert_eq!(truncated.len(), EEST_SAFE_FILE_STEM_MAX_LEN); + assert!(truncated.starts_with("eest__tests_foo_py_test_")); + assert!(!truncated.ends_with('_')); + } + + #[test] + fn eest_block_with_input_requires_output() -> Result<()> { + let dir = tempfile::tempdir()?; + let fixture_path = dir.path().join("missing-output.json"); + fs::write( + &fixture_path, + r#"{ + "tests/foo.py::test_missing_output": { + "network": "Amsterdam", + "config": {"chainid": "0x01"}, + "blocks": [{"statelessInputBytes": "0x0102"}] + } + }"#, + )?; + + let err = load_eest_benchmark_fixtures( + serde_json::from_str(&fs::read_to_string(&fixture_path)?)?, + &fixture_path, + dir.path(), + ) + .unwrap_err(); + assert!(err + .to_string() + .contains("has statelessInputBytes but no statelessOutputBytes")); + + Ok(()) + } + + pub(crate) fn sample_eest_fixture() -> &'static str { + r#"{ + "tests/foo.py::test_same[name/a]": { + "network": "Amsterdam", + "config": {"chainid": "0x01"}, + "blocks": [ + { + "statelessInputBytes": "0x000102", + "statelessOutputBytes": "0xaabb", + "blockHeader": {"number": "0x01", "gasUsed": "0x10"} + }, + { + "blockHeader": {"number": "0x02", "gasUsed": "0x20"} + }, + { + "statelessInputBytes": "0x", + "statelessOutputBytes": "0xcc" + } + ] + }, + "tests/foo.py::test_same[name?a]": { + "network": "Amsterdam", + "config": {"chainid": "0x01"}, + "blocks": [ + { + "statelessInputBytes": "0x0f", + "statelessOutputBytes": "0xdead", + "blocknumber": "0x03", + "blockHeader": {"gasUsed": "0x30"} + } + ] + } + }"# + } +} diff --git a/crates/benchmark-runner/src/stateless_validator/ethrex.rs b/crates/benchmark-runner/src/stateless_validator/ethrex.rs deleted file mode 100644 index c05ded46..00000000 --- a/crates/benchmark-runner/src/stateless_validator/ethrex.rs +++ /dev/null @@ -1,190 +0,0 @@ -//! Stateless validator guest program. - -use crate::{ - guest_programs::{GenericGuestFixture, GuestFixture}, - stateless_validator::{read_benchmark_fixtures_folder, BlockMetadata}, -}; -use alloy_eips::eip6110::MAINNET_DEPOSIT_CONTRACT_ADDRESS; -use alloy_rlp::Encodable; -use anyhow::Context; -use ethrex_common::{ - types::{ - block_execution_witness, BlobSchedule, Block, BlockHeader, ChainConfig, ForkBlobSchedule, - }, - H160, -}; -use ethrex_guest::guest::{EthrexStatelessValidatorGuest, EthrexStatelessValidatorInput}; -use ethrex_guest_program::input::ProgramInput; -use ethrex_rlp::decode::RLPDecode; -use ethrex_rpc::debug::execution_witness::{ - execution_witness_from_rpc_chain_config, RpcExecutionWitness, -}; -use reth_stateless::StatelessInput; -use std::{convert::TryInto, path::Path, sync::OnceLock}; -use witness_generator::StatelessValidationFixture; - -/// Prepares the inputs for the Ethrex stateless validator guest program. -pub fn stateless_validator_inputs( - input_folder: &Path, -) -> anyhow::Result>> { - read_benchmark_fixtures_folder(input_folder)? - .into_iter() - .map(|bw| { - let input = get_input_full_validation(&bw)?; - let metadata = BlockMetadata { - block_used_gas: bw.stateless_input.block.gas_used, - }; - Ok(GenericGuestFixture:: { - name: bw.name.clone(), - input, - metadata, - output: OnceLock::from(( - bw.stateless_input.block.hash_slow().0, - bw.stateless_input.block.parent_hash.0, - bw.success, - )), - } - .into_output_sha256() - .into_boxed()) - }) - .collect() -} - -fn get_input_full_validation( - bw: &StatelessValidationFixture, -) -> anyhow::Result { - let si = &bw.stateless_input; - - let mut rlp_bytes = vec![]; - si.block.encode(&mut rlp_bytes); - let (ethrex_block, _) = Block::decode_unfinished(&rlp_bytes)?; - - let ethrex_program_input = ProgramInput { - blocks: vec![ethrex_block], - execution_witness: from_reth_witness_to_ethrex_witness(si.block.number, si)?, - elasticity_multiplier: 2u64, // NOTE: Ethrex doesn't derive this value from chain config. - fee_configs: Default::default(), - }; - - Ok(EthrexStatelessValidatorInput(ethrex_program_input)) -} - -fn from_reth_witness_to_ethrex_witness( - block_number: u64, - si: &StatelessInput, -) -> anyhow::Result { - let codes = si.witness.codes.iter().map(|b| b.to_vec().into()).collect(); - let block_headers_bytes = si - .witness - .headers - .iter() - .map(|h| h.to_vec().into()) - .collect(); - - let chain_config = ChainConfig { - chain_id: si.chain_config.chain_id, - homestead_block: si.chain_config.homestead_block, - dao_fork_block: si.chain_config.dao_fork_block, - dao_fork_support: si.chain_config.dao_fork_support, - eip150_block: si.chain_config.eip150_block, - eip155_block: si.chain_config.eip155_block, - eip158_block: si.chain_config.eip158_block, - byzantium_block: si.chain_config.byzantium_block, - constantinople_block: si.chain_config.constantinople_block, - petersburg_block: si.chain_config.petersburg_block, - istanbul_block: si.chain_config.istanbul_block, - muir_glacier_block: si.chain_config.muir_glacier_block, - berlin_block: si.chain_config.berlin_block, - london_block: si.chain_config.london_block, - arrow_glacier_block: si.chain_config.arrow_glacier_block, - gray_glacier_block: si.chain_config.gray_glacier_block, - merge_netsplit_block: si.chain_config.merge_netsplit_block, - shanghai_time: si.chain_config.shanghai_time, - cancun_time: si.chain_config.cancun_time, - prague_time: si.chain_config.prague_time, - verkle_time: None, - osaka_time: si.chain_config.osaka_time, - terminal_total_difficulty: si - .chain_config - .terminal_total_difficulty - .map(|ttd| TryInto::::try_into(ttd).unwrap()), - terminal_total_difficulty_passed: si.chain_config.terminal_total_difficulty_passed, - blob_schedule: BlobSchedule { - cancun: get_blob_schedule(&si.chain_config, "cancun") - .unwrap_or_else(|| BlobSchedule::default().cancun), - prague: get_blob_schedule(&si.chain_config, "prague") - .unwrap_or_else(|| BlobSchedule::default().prague), - osaka: get_blob_schedule(&si.chain_config, "osaka") - .unwrap_or_else(|| BlobSchedule::default().osaka), - bpo1: get_blob_schedule(&si.chain_config, "bpo1") - .unwrap_or_else(|| BlobSchedule::default().bpo1), - bpo2: get_blob_schedule(&si.chain_config, "bpo2") - .unwrap_or_else(|| BlobSchedule::default().bpo2), - bpo3: get_blob_schedule(&si.chain_config, "bpo3"), - bpo4: get_blob_schedule(&si.chain_config, "bpo4"), - bpo5: get_blob_schedule(&si.chain_config, "bpo5"), - }, - deposit_contract_address: si - .chain_config - .deposit_contract_address - .map(|addr| H160::from_slice(addr.as_slice())) - .unwrap_or_else(|| H160::from_slice(MAINNET_DEPOSIT_CONTRACT_ADDRESS.as_slice())), - bpo1_time: si.chain_config.bpo1_time, - bpo2_time: si.chain_config.bpo2_time, - bpo3_time: si.chain_config.bpo3_time, - bpo4_time: si.chain_config.bpo4_time, - bpo5_time: si.chain_config.bpo5_time, - enable_verkle_at_genesis: false, - }; - - let nodes = si - .witness - .state - .iter() - .map(|node_rlp| node_rlp.to_vec().into()) - .collect(); - - let keys = si.witness.keys.iter().map(|k| k.to_vec().into()).collect(); - - let parent_hash = si.block.parent_hash; - let initial_state_root = si - .witness - .headers - .iter() - .find_map(|header_bytes| { - let (header, _) = BlockHeader::decode_unfinished(header_bytes).ok()?; - (header.hash().0 == parent_hash.0).then_some(header.state_root) - }) - .context("Parent header not found in witness")?; - - let rpc_witness = RpcExecutionWitness { - state: nodes, - keys, - codes, - headers: block_headers_bytes, - }; - let execution_witness = execution_witness_from_rpc_chain_config( - rpc_witness, - chain_config, - block_number, - initial_state_root, - )?; - - Ok(execution_witness) -} - -fn get_blob_schedule( - chain_config: &alloy_genesis::ChainConfig, - name: &str, -) -> Option { - chain_config - .blob_schedule - .get(name) - .map(|s| ForkBlobSchedule { - // Reth and Ethrex have some mismatched data type representations. Reth uses bigger ints. - // Downcasting should never cause an overflow, but let's be safe and panic if this ever happens. - base_fee_update_fraction: s.update_fraction.try_into().unwrap(), - target: s.target_blob_count.try_into().unwrap(), - max: s.max_blob_count.try_into().unwrap(), - }) -} diff --git a/crates/benchmark-runner/src/stateless_validator/fixtures.rs b/crates/benchmark-runner/src/stateless_validator/fixtures.rs new file mode 100644 index 00000000..50dd2bef --- /dev/null +++ b/crates/benchmark-runner/src/stateless_validator/fixtures.rs @@ -0,0 +1,390 @@ +use crate::{ + guest_programs::GuestFixture, + stateless_validator::{ + eest::{load_eest_benchmark_fixtures, EestStatelessFixture}, + inputs::stateless_validator_input_from_fixture, + ExecutionClient, + }, +}; +use anyhow::{bail, Context, Result}; +use std::{ + collections::HashSet, + path::{Path, PathBuf}, +}; +use tracing::info; +use walkdir::WalkDir; +use witness_generator::StatelessValidationFixture; + +const EEST_BLOCKCHAIN_TESTS_DIR: &str = "blockchain_tests"; +const EEST_BLOCKCHAIN_TESTS_ENGINE_DIR: &str = "blockchain_tests_engine"; +const EEST_BLOCKCHAIN_TESTS_ENGINE_X_DIR: &str = "blockchain_tests_engine_x"; +const EEST_BLOCKCHAIN_TESTS_SYNC_DIR: &str = "blockchain_tests_sync"; + +#[derive(Debug, Clone)] +pub(crate) enum BenchmarkFixture { + Legacy(Box), + Eest(EestStatelessFixture), +} + +impl BenchmarkFixture { + pub(crate) fn name(&self) -> &str { + match self { + Self::Legacy(fixture) => &fixture.name, + Self::Eest(fixture) => &fixture.name, + } + } + + fn original_eest_test_name(&self) -> Option<&str> { + match self { + Self::Legacy(_) => None, + Self::Eest(fixture) => Some(&fixture.original_test_name), + } + } +} + +/// Lazily walks a fixture folder and yields each fixture file path. +pub fn iter_benchmark_fixture_paths(path: &Path) -> impl Iterator { + let min_depth = if path.is_file() { 0 } else { 1 }; + + WalkDir::new(path) + .min_depth(min_depth) + .into_iter() + .filter_map(|entry| entry.ok()) + .filter(|entry| entry.file_type().is_file()) + .filter(|entry| entry.path().extension().and_then(|ext| ext.to_str()) == Some("json")) + .filter(|entry| { + !entry + .path() + .components() + .any(|component| component.as_os_str() == ".meta") + }) + .map(walkdir::DirEntry::into_path) +} + +/// Resolves benchmark fixture JSON paths. +pub fn benchmark_fixture_paths(input_folder: &Path) -> Result> { + let fixture_root = benchmark_fixture_root(input_folder)?; + Ok(iter_benchmark_fixture_paths(&fixture_root).collect()) +} + +fn benchmark_fixture_root(input_folder: &Path) -> Result { + if input_folder.is_file() { + return Ok(input_folder.to_path_buf()); + } + + let blockchain_tests = input_folder.join(EEST_BLOCKCHAIN_TESTS_DIR); + if blockchain_tests.is_dir() { + return Ok(blockchain_tests); + } + + if looks_like_eest_fixture_bundle(input_folder) { + bail!( + "EEST fixture bundle {} does not contain required {}/ directory; \ + stateless-validator supports EEST blockchain_test fixtures, \ + not blockchain_test_engine-only fixtures", + input_folder.display(), + EEST_BLOCKCHAIN_TESTS_DIR + ); + } + + Ok(input_folder.to_path_buf()) +} + +fn looks_like_eest_fixture_bundle(input_folder: &Path) -> bool { + input_folder.join(EEST_BLOCKCHAIN_TESTS_ENGINE_DIR).is_dir() + || input_folder + .join(EEST_BLOCKCHAIN_TESTS_ENGINE_X_DIR) + .is_dir() + || input_folder.join(EEST_BLOCKCHAIN_TESTS_SYNC_DIR).is_dir() + || eest_fixture_index_has_formats(input_folder) +} + +fn eest_fixture_index_has_formats(input_folder: &Path) -> bool { + let index_path = input_folder.join(".meta").join("index.json"); + let Ok(content) = std::fs::read(index_path) else { + return false; + }; + let Ok(value) = serde_json::from_slice::(&content) else { + return false; + }; + + value.get("fixture_formats").is_some() +} + +/// Reads and deserializes a single legacy benchmark fixture file. +pub fn load_benchmark_fixture(path: &Path) -> Result { + let content = std::fs::read(path)?; + serde_json::from_slice(&content).with_context(|| format!("Failed to parse {}", path.display())) +} + +pub(super) fn stateless_validator_input_iter( + input_folder: &Path, + selected_fixtures: Option<&[String]>, + el: ExecutionClient, + existing_output_dir: Option<&Path>, +) -> Result>>> { + let fixture_prefixes = selected_fixtures + .filter(|fixtures| !fixtures.is_empty()) + .map(normalize_fixture_prefixes) + .transpose()?; + + Ok(stateless_validator_input_iter_from_paths( + benchmark_fixture_paths(input_folder)?.into_iter(), + input_folder.to_path_buf(), + fixture_prefixes, + el, + existing_output_dir.map(Path::to_path_buf), + )) +} + +fn stateless_validator_input_iter_from_paths( + paths: I, + input_root: PathBuf, + fixture_prefixes: Option>, + el: ExecutionClient, + existing_output_dir: Option, +) -> impl Iterator>> +where + I: Iterator, +{ + paths.flat_map(move |path| { + let results: Vec<_> = match load_benchmark_fixtures(&path, &input_root) { + Ok(fixtures) => fixtures + .into_iter() + .filter(|fixture| fixture_matches_prefixes(fixture, fixture_prefixes.as_deref())) + .filter_map(|fixture| { + match skip_existing_fixture_output( + fixture.name(), + existing_output_dir.as_deref(), + ) { + Ok(true) => None, + Ok(false) => Some(stateless_validator_input_from_fixture(fixture, el)), + Err(err) => Some(Err(err)), + } + }) + .collect(), + Err(err) => vec![Err(err)], + }; + results + }) +} + +fn fixture_matches_prefixes(fixture: &BenchmarkFixture, prefixes: Option<&[String]>) -> bool { + let Some(prefixes) = prefixes else { + return true; + }; + + prefixes.iter().any(|prefix| { + fixture.name().starts_with(prefix) + || fixture + .original_eest_test_name() + .is_some_and(|name| name.starts_with(prefix)) + }) +} + +fn load_benchmark_fixtures(path: &Path, input_root: &Path) -> Result> { + let content = std::fs::read(path)?; + let value: serde_json::Value = serde_json::from_slice(&content) + .with_context(|| format!("Failed to parse {}", path.display()))?; + + if value.get("stateless_input").is_some() { + let fixture = serde_json::from_value(value) + .with_context(|| format!("Failed to parse legacy fixture {}", path.display()))?; + return Ok(vec![BenchmarkFixture::Legacy(Box::new(fixture))]); + } + + load_eest_benchmark_fixtures(value, path, input_root) + .map(|fixtures| fixtures.into_iter().map(BenchmarkFixture::Eest).collect()) +} + +fn skip_existing_fixture_output( + fixture_name: &str, + existing_output_dir: Option<&Path>, +) -> Result { + let Some(existing_output_dir) = existing_output_dir else { + return Ok(false); + }; + + let output_path = existing_output_dir.join(format!("{fixture_name}.json")); + if output_path.exists() { + info!("Skipping {fixture_name} (already exists)"); + return Ok(true); + } + + Ok(false) +} + +fn normalize_fixture_prefixes(prefixes: &[String]) -> Result> { + let mut normalized_prefixes = Vec::with_capacity(prefixes.len()); + let mut seen_prefixes = HashSet::new(); + + for prefix in prefixes { + let normalized_prefix = normalize_fixture_prefix(prefix)?; + if seen_prefixes.insert(normalized_prefix.clone()) { + normalized_prefixes.push(normalized_prefix); + } + } + + Ok(normalized_prefixes) +} + +fn normalize_fixture_prefix(prefix: &str) -> Result { + let normalized = prefix.trim(); + if normalized.is_empty() { + bail!("Fixture prefix cannot be empty"); + } + + Ok(normalized + .strip_suffix(".json") + .unwrap_or(normalized) + .to_owned()) +} + +#[cfg(test)] +mod tests { + use super::*; + use sha2::{Digest, Sha256}; + use std::fs; + + #[test] + fn fixture_prefix_matching_accepts_safe_and_original_eest_names() -> Result<()> { + let dir = tempfile::tempdir()?; + let fixture_path = dir.path().join("mcopy.json"); + fs::write(&fixture_path, sample_eest_fixture())?; + let fixtures = load_benchmark_fixtures(&fixture_path, dir.path())?; + let fixture = fixtures + .iter() + .find(|fixture| { + fixture.original_eest_test_name() == Some("tests/foo.py::test_same[name?a]") + }) + .unwrap(); + + let safe_prefix = normalize_fixture_prefixes(&[format!("{}.json", fixture.name())])?; + assert!(fixture_matches_prefixes(fixture, Some(&safe_prefix))); + + let original_prefix = + normalize_fixture_prefixes(&["tests/foo.py::test_same[name?a]".to_string()])?; + assert!(fixture_matches_prefixes(fixture, Some(&original_prefix))); + + let non_matching_prefix = normalize_fixture_prefixes(&["other_test".to_string()])?; + assert!(!fixture_matches_prefixes( + fixture, + Some(&non_matching_prefix) + )); + + Ok(()) + } + + #[test] + fn eest_fixture_iter_yields_raw_input_and_hashed_output() -> Result<()> { + let dir = tempfile::tempdir()?; + let fixture_path = dir.path().join("mcopy.json"); + fs::write(&fixture_path, sample_eest_fixture())?; + + let selected = vec!["tests/foo.py::test_same[name/a]".to_string()]; + let mut fixtures = stateless_validator_input_iter( + dir.path(), + Some(&selected), + ExecutionClient::Reth, + None, + )?; + let guest_fixture = fixtures.next().unwrap()?; + assert!(fixtures.next().is_none()); + + let input = guest_fixture.input()?; + assert_eq!(input.stdin(), [0x00, 0x01, 0x02]); + assert_eq!( + guest_fixture.expected_public_values()?, + Sha256::digest([0xaa, 0xbb]).to_vec() + ); + + let metadata = guest_fixture.metadata(); + assert_eq!(metadata["fixture_format"], "eest"); + assert_eq!( + metadata["original_test_name"], + "tests/foo.py::test_same[name/a]" + ); + assert_eq!(metadata["block_used_gas"].as_u64(), Some(16)); + + Ok(()) + } + + #[test] + fn fixture_path_discovery_skips_meta_and_non_json_files() -> Result<()> { + let dir = tempfile::tempdir()?; + fs::create_dir_all(dir.path().join(".meta"))?; + fs::write(dir.path().join(".meta/index.json"), "{}")?; + fs::write(dir.path().join("ignored.txt"), "not json")?; + fs::write(dir.path().join("fixture.json"), "{}")?; + + let paths: Vec<_> = iter_benchmark_fixture_paths(dir.path()).collect(); + assert_eq!(paths, vec![dir.path().join("fixture.json")]); + + Ok(()) + } + + #[test] + fn benchmark_fixture_paths_prefers_eest_blockchain_tests_subdir() -> Result<()> { + let dir = tempfile::tempdir()?; + let included_path = dir + .path() + .join("blockchain_tests/for_amsterdam/included.json"); + let engine_path = dir + .path() + .join("blockchain_tests_engine/for_amsterdam/ignored.json"); + fs::create_dir_all(included_path.parent().unwrap())?; + fs::create_dir_all(engine_path.parent().unwrap())?; + fs::write(&included_path, "{}")?; + fs::write(&engine_path, "{}")?; + + let paths = benchmark_fixture_paths(dir.path())?; + assert_eq!(paths, vec![included_path]); + + Ok(()) + } + + #[test] + fn benchmark_fixture_paths_rejects_engine_only_eest_bundle() -> Result<()> { + let dir = tempfile::tempdir()?; + let engine_path = dir + .path() + .join("blockchain_tests_engine/for_amsterdam/ignored.json"); + fs::create_dir_all(engine_path.parent().unwrap())?; + fs::write(&engine_path, "{}")?; + + let err = benchmark_fixture_paths(dir.path()).unwrap_err(); + let message = err.to_string(); + assert!(message.contains("blockchain_tests")); + assert!(message.contains("blockchain_test_engine-only")); + + Ok(()) + } + + fn sample_eest_fixture() -> &'static str { + r#"{ + "tests/foo.py::test_same[name/a]": { + "network": "Amsterdam", + "config": {"chainid": "0x01"}, + "blocks": [ + { + "statelessInputBytes": "0x000102", + "statelessOutputBytes": "0xaabb", + "blockHeader": {"number": "0x01", "gasUsed": "0x10"} + } + ] + }, + "tests/foo.py::test_same[name?a]": { + "network": "Amsterdam", + "config": {"chainid": "0x01"}, + "blocks": [ + { + "statelessInputBytes": "0x0f", + "statelessOutputBytes": "0xdead", + "blocknumber": "0x03", + "blockHeader": {"gasUsed": "0x30"} + } + ] + } + }"# + } +} diff --git a/crates/benchmark-runner/src/stateless_validator/inputs.rs b/crates/benchmark-runner/src/stateless_validator/inputs.rs new file mode 100644 index 00000000..fbcce1c0 --- /dev/null +++ b/crates/benchmark-runner/src/stateless_validator/inputs.rs @@ -0,0 +1,120 @@ +use crate::{ + guest_programs::{GenericGuestFixture, GuestFixture}, + stateless_validator::{ + eest::EestStatelessFixture, fixtures::BenchmarkFixture, BlockMetadata, ExecutionClient, + }, +}; +use anyhow::{Context, Result}; +use ere_dockerized::Input; +use ere_guests_guest::Guest; +use ere_guests_integration_tests::NoopPlatform; +use ere_guests_stateless_validator_ethrex::{ + guest::StatelessValidatorEthrexGuest, + host::{build_eip8025_input, Eip8025InputSource}, +}; +use ere_guests_stateless_validator_reth::guest::{ + StatelessValidatorRethGuest, StatelessValidatorRethInput, +}; +use serde::Serialize; +use sha2::{Digest, Sha256}; +use tracing::info; +use witness_generator::StatelessValidationFixture; + +#[derive(Debug, Clone, Serialize)] +struct EestBlockMetadata { + fixture_format: &'static str, + original_test_name: String, + source_path: String, + block_index: usize, + network: String, + chain_id: u64, + block_number: Option, + block_used_gas: Option, +} + +pub(crate) fn stateless_validator_input_from_fixture( + fixture: BenchmarkFixture, + el: ExecutionClient, +) -> Result> { + match fixture { + BenchmarkFixture::Legacy(fixture) => match el { + ExecutionClient::Reth => reth_input_from_fixture(*fixture), + ExecutionClient::Ethrex => ethrex_input_from_fixture(*fixture), + }, + BenchmarkFixture::Eest(fixture) => raw_eest_input_from_fixture(fixture), + } +} + +fn raw_eest_input_from_fixture(fixture: EestStatelessFixture) -> Result> { + let metadata = EestBlockMetadata { + fixture_format: "eest", + original_test_name: fixture.original_test_name, + source_path: fixture.source_path, + block_index: fixture.block_index, + network: fixture.network, + chain_id: fixture.chain_id, + block_number: fixture.block_number, + block_used_gas: fixture.block_used_gas, + }; + let expected_public_values = Sha256::digest(fixture.stateless_output_bytes).to_vec(); + + Ok(GenericGuestFixture:: { + name: fixture.name, + input: Input::new().with_stdin(fixture.stateless_input_bytes), + expected_public_values, + metadata, + } + .into_boxed()) +} + +fn ethrex_input_from_fixture(fixture: StatelessValidationFixture) -> Result> { + let StatelessValidationFixture { + name, + stateless_input, + success, + } = fixture; + let input = build_eip8025_input(Eip8025InputSource::Legacy { + stateless_input: &stateless_input, + valid_block: success, + }) + .context("Failed to create Ethrex stateless validator input")?; + let output = StatelessValidatorEthrexGuest::compute::(input.clone()); + let metadata = BlockMetadata { + block_used_gas: stateless_input.block.gas_used, + }; + + Ok( + GenericGuestFixture::::new::( + name, input, output, metadata, + )? + .output_sha256() + .into_boxed(), + ) +} + +fn reth_input_from_fixture(fixture: StatelessValidationFixture) -> Result> { + let StatelessValidationFixture { + name, + stateless_input, + success, + } = fixture; + info!( + "Preparing Reth stateless validator input for fixture {}", + name + ); + let input = StatelessValidatorRethInput::new(&stateless_input, success) + .context("Failed to create Reth stateless validator input")?; + + let output = StatelessValidatorRethGuest::compute::(input.clone()); + let metadata = BlockMetadata { + block_used_gas: stateless_input.block.gas_used, + }; + + Ok( + GenericGuestFixture::::new::( + name, input, output, metadata, + )? + .output_sha256() + .into_boxed(), + ) +} diff --git a/crates/benchmark-runner/src/stateless_validator/reth.rs b/crates/benchmark-runner/src/stateless_validator/reth.rs deleted file mode 100644 index cb10399e..00000000 --- a/crates/benchmark-runner/src/stateless_validator/reth.rs +++ /dev/null @@ -1,50 +0,0 @@ -//! Stateless validator guest program. - -use crate::{ - guest_programs::{GenericGuestFixture, GuestFixture}, - stateless_validator::{read_benchmark_fixtures_folder, BlockMetadata}, -}; -use guest_libs::senders::recover_signers; -use reth_guest::guest::{RethStatelessValidatorGuest, RethStatelessValidatorInput}; -use std::{path::Path, sync::OnceLock}; -use witness_generator::StatelessValidationFixture; - -/// Prepares the inputs for the Reth stateless validator guest program. -pub fn stateless_validator_inputs( - input_folder: &Path, -) -> anyhow::Result>> { - read_benchmark_fixtures_folder(input_folder)? - .into_iter() - .map(|bw| { - let input = get_input_full_validation(&bw)?; - let metadata = BlockMetadata { - block_used_gas: bw.stateless_input.block.gas_used, - }; - - Ok(GenericGuestFixture:: { - name: bw.name.clone(), - input, - metadata, - output: OnceLock::from(( - bw.stateless_input.block.hash_slow().0, - bw.stateless_input.block.parent_hash.0, - bw.success, - )), - } - .into_output_sha256() - .into_boxed()) - }) - .collect() -} - -fn get_input_full_validation( - bw: &StatelessValidationFixture, -) -> anyhow::Result { - let stateless_input = &bw.stateless_input; - let signers = recover_signers(&stateless_input.block.body.transactions)?; - - Ok(RethStatelessValidatorInput { - stateless_input: stateless_input.clone(), - public_keys: signers, - }) -} diff --git a/crates/benchmark-runner/src/verification.rs b/crates/benchmark-runner/src/verification.rs new file mode 100644 index 00000000..fd10a003 --- /dev/null +++ b/crates/benchmark-runner/src/verification.rs @@ -0,0 +1,158 @@ +//! Proof verification from disk or remote URL + +use anyhow::{anyhow, Context, Result}; +use ere_dockerized::EncodedProof; +use std::fs; +use std::panic; +use std::path::{Path, PathBuf}; +use tracing::info; +use zkevm_metrics::{BenchmarkRun, CrashInfo, HardwareInfo, VerificationMetrics}; + +use crate::runner::{get_panic_msg, RunConfig, ZkVMInstance}; + +/// Loads proof artifacts from disk and verifies them using the given zkVM. +pub fn run_verify_from_disk( + zkvm: &ZkVMInstance, + config: &RunConfig, + proofs_folder: &Path, +) -> Result<()> { + HardwareInfo::detect().to_path(config.output_folder.join("hardware.json"))?; + + let zkvm_name = format!("{}-{}", zkvm.name(), zkvm.sdk_version()); + let proof_dir = proofs_folder + .join(config.sub_folder.as_deref().unwrap_or("")) + .join(&zkvm_name); + + if !proof_dir.exists() { + info!("No proofs found for {zkvm_name} at {}", proof_dir.display()); + return Ok(()); + } + + let proof_entries: Vec<_> = walkdir::WalkDir::new(&proof_dir) + .min_depth(1) + .max_depth(1) + .sort_by_file_name() + .into_iter() + .filter_map(|e| e.ok()) + .filter(|e| { + e.file_type().is_file() && e.path().extension().is_some_and(|ext| ext == "proof") + }) + .collect(); + + // Warmup pass: verify the first proof to warm up the zkVM setup (if any). + if let Some(first) = proof_entries.first() { + info!( + "Warmup: verifying {} (result will be discarded)", + first.path().display() + ); + let proof_bytes = fs::read(first.path()) + .with_context(|| format!("Failed to read proof from {}", first.path().display()))?; + let proof = EncodedProof(proof_bytes); + let _ = panic::catch_unwind(panic::AssertUnwindSafe(|| zkvm.verify(&proof))); + info!("Warmup complete"); + } + + for entry in &proof_entries { + let fixture_name = entry + .path() + .file_stem() + .ok_or_else(|| anyhow!("Invalid proof file name: {}", entry.path().display()))? + .to_string_lossy() + .to_string(); + + let out_path = config + .output_folder + .join(config.sub_folder.as_deref().unwrap_or("")) + .join(format!("{zkvm_name}/{fixture_name}.json")); + + if !config.force_rerun && out_path.exists() { + info!("Skipping {fixture_name} (already exists)"); + continue; + } + + info!("Verifying proof for {fixture_name}"); + + let proof_bytes = fs::read(entry.path()) + .with_context(|| format!("Failed to read proof from {}", entry.path().display()))?; + let proof = EncodedProof(proof_bytes); + + let verify_start = std::time::Instant::now(); + let verification_result = + panic::catch_unwind(panic::AssertUnwindSafe(|| zkvm.verify(&proof))); + + let verification = match verification_result { + Ok(Ok(_public_values)) => { + let verification_time_ms = verify_start.elapsed().as_millis(); + VerificationMetrics::Success { + proof_size: proof.len(), + verification_time_ms, + } + } + Ok(Err(e)) => VerificationMetrics::Crashed(CrashInfo { + reason: e.to_string(), + }), + Err(panic_info) => VerificationMetrics::Crashed(CrashInfo { + reason: get_panic_msg(panic_info), + }), + }; + + let report = BenchmarkRun { + name: fixture_name, + timestamp_completed: zkevm_metrics::chrono::Utc::now(), + metadata: serde_json::Value::Null, + execution: None, + proving: None, + verification: Some(verification), + }; + + info!("Saving verification report"); + report.to_path(out_path)?; + } + + Ok(()) +} + +/// Downloads a `.tar.gz` archive from a URL and extracts it to a temporary directory. +pub async fn download_and_extract_proofs(url: &str) -> Result { + info!("Downloading proofs archive from {url}"); + let client = reqwest::Client::new(); + let response = client + .get(url) + .send() + .await + .context("Failed to send HTTP request for proofs archive")? + .error_for_status() + .context("HTTP error downloading proofs archive")?; + + let bytes = response + .bytes() + .await + .context("Failed to read proofs archive response body")?; + + info!("Downloaded {} bytes, extracting...", bytes.len()); + let tmp = tempfile::tempdir().context("Failed to create temporary directory")?; + + let decoder = flate2::read::GzDecoder::new(&bytes[..]); + let mut archive = tar::Archive::new(decoder); + archive + .unpack(tmp.path()) + .context("Failed to extract proofs .tar.gz archive")?; + + info!("Extracted proofs to {}", tmp.path().display()); + Ok(tmp) +} + +/// If the extracted archive contains a single top-level directory, return that +/// directory as the proofs root. Otherwise, return the extraction directory itself. +pub fn resolve_extracted_root(extracted: &Path) -> Result { + let entries: Vec<_> = fs::read_dir(extracted) + .context("Failed to read extracted proofs directory")? + .filter_map(|e| e.ok()) + .collect(); + + if entries.len() == 1 && entries[0].file_type().is_ok_and(|ft| ft.is_dir()) { + Ok(entries[0].path()) + } else { + Ok(extracted.to_path_buf()) + } +} diff --git a/crates/benchmark-runner/src/zisk_profiling.rs b/crates/benchmark-runner/src/zisk_profiling.rs new file mode 100644 index 00000000..308f5446 --- /dev/null +++ b/crates/benchmark-runner/src/zisk_profiling.rs @@ -0,0 +1,261 @@ +//! Zisk profiling support for benchmark runs + +use anyhow::{Context, Result}; +use std::io::ErrorKind; +use std::path::{Path, PathBuf}; +use std::process::Command; +use std::{env, fs}; +use tracing::info; + +/// ERE commit hash extracted from `Cargo.lock` at build time. +const DEFAULT_ERE_TAG: &str = ere_dockerized::DOCKER_IMAGE_TAG; + +/// Configuration for Zisk profiling. +#[derive(Debug, Clone)] +pub struct ProfileConfig { + /// Output folder for Zisk profile results + pub output_folder: PathBuf, +} + +impl ProfileConfig { + /// Creates a new `ProfileConfig`. + pub const fn new(output_folder: PathBuf) -> Self { + Self { output_folder } + } +} + +/// Outcome of a profiling attempt. +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum ProfileOutcome { + /// Profiling succeeded and a `.prof` artifact was written. + Success, + /// Profiling failed and an `.error.txt` sidecar was written when possible. + Failed(String), +} + +#[derive(Debug)] +struct ProfileArtifacts { + profile_dir: PathBuf, + profile_path: PathBuf, + error_path: PathBuf, +} + +impl ProfileArtifacts { + fn new(config: &ProfileConfig, fixture_name: &str, sub_folder: Option<&str>) -> Self { + let profile_dir = config.output_folder.join(sub_folder.unwrap_or("")); + let profile_path = profile_dir.join(format!("zisk_profile_{fixture_name}.prof")); + let error_path = profile_dir.join(format!("zisk_profile_{fixture_name}.error.txt")); + Self { + profile_dir, + profile_path, + error_path, + } + } +} + +#[derive(Debug, Clone, PartialEq, Eq)] +struct ProfilingCommandOutput { + success: bool, + status_code: Option, + stdout: Vec, + stderr: Vec, +} + +/// Runs Zisk profiling for a single fixture. +pub fn run_profiling( + config: &ProfileConfig, + elf: &[u8], + stdin: &[u8], + fixture_name: &str, + sub_folder: Option<&str>, +) -> ProfileOutcome { + run_profiling_with_runner( + config, + elf, + stdin, + fixture_name, + sub_folder, + run_ziskemu_command, + ) +} + +fn run_profiling_with_runner( + config: &ProfileConfig, + elf: &[u8], + stdin: &[u8], + fixture_name: &str, + sub_folder: Option<&str>, + command_runner: F, +) -> ProfileOutcome +where + F: FnOnce(&Path) -> Result, +{ + let artifacts = ProfileArtifacts::new(config, fixture_name, sub_folder); + info!("Running Zisk profiling for {}", fixture_name); + + match try_run_profiling(elf, stdin, fixture_name, &artifacts, command_runner) { + Ok(()) => ProfileOutcome::Success, + Err(err) => record_profiling_failure(&artifacts, fixture_name, err), + } +} + +fn try_run_profiling( + elf: &[u8], + stdin: &[u8], + fixture_name: &str, + artifacts: &ProfileArtifacts, + command_runner: F, +) -> Result<()> +where + F: FnOnce(&Path) -> Result, +{ + let temp_dir = tempfile::tempdir().context("Failed to create temp directory for profiling")?; + let temp_path = temp_dir.path(); + + let input_path = temp_path.join("input.bin"); + let elf_path = temp_path.join("program.elf"); + fs::write(&input_path, length_prefixed_and_padded(stdin)) + .with_context(|| format!("Failed to write input.bin to {}", input_path.display()))?; + fs::write(&elf_path, elf) + .with_context(|| format!("Failed to write program.elf to {}", elf_path.display()))?; + + let output = command_runner(temp_path)?; + + if !output.success { + let stderr = String::from_utf8_lossy(&output.stderr); + anyhow::bail!( + "Zisk profiling failed for fixture '{}': docker command exited with code {}\nstderr: {}", + fixture_name, + output.status_code.unwrap_or(-1), + stderr + ); + } + + fs::create_dir_all(&artifacts.profile_dir).with_context(|| { + format!( + "Failed to create profile directory: {}", + artifacts.profile_dir.display() + ) + })?; + + fs::write(&artifacts.profile_path, &output.stdout).with_context(|| { + format!( + "Failed to write profile to {}", + artifacts.profile_path.display() + ) + })?; + + remove_file_if_exists(&artifacts.error_path).with_context(|| { + format!( + "Failed to remove stale profiling error file {}", + artifacts.error_path.display() + ) + })?; + + info!("Saved Zisk profile to {}", artifacts.profile_path.display()); + + Ok(()) +} + +fn run_ziskemu_command(temp_path: &Path) -> Result { + let registry_prefix = env::var("ERE_IMAGE_REGISTRY") + .map(|r| format!("{r}/")) + .unwrap_or_default(); + let docker_image = format!("{registry_prefix}ere-server-zisk:{DEFAULT_ERE_TAG}"); + let volume_mount = format!("{}:/data", temp_path.display()); + + let output = Command::new("docker") + .args([ + "run", + "--rm", + "-v", + &volume_mount, + "--entrypoint", + "ziskemu", + &docker_image, + "-X", + "-S", + "-D", + "-e", + "/data/program.elf", + "-i", + "/data/input.bin", + ]) + .output() + .context("Failed to execute docker command for Zisk profiling")?; + + Ok(ProfilingCommandOutput { + success: output.status.success(), + status_code: output.status.code(), + stdout: output.stdout, + stderr: output.stderr, + }) +} + +fn record_profiling_failure( + artifacts: &ProfileArtifacts, + fixture_name: &str, + err: anyhow::Error, +) -> ProfileOutcome { + let mut message = err.to_string(); + + if let Err(remove_err) = remove_file_if_exists(&artifacts.profile_path) { + message.push_str(&format!( + "\nAdditionally failed to remove stale profile {}: {}", + artifacts.profile_path.display(), + remove_err + )); + } + + let sidecar = format!( + "fixture: {fixture_name}\ntimestamp_utc: {}\nerror:\n{message}\n", + zkevm_metrics::chrono::Utc::now().to_rfc3339() + ); + + match write_failure_sidecar(artifacts, &sidecar) { + Ok(()) => ProfileOutcome::Failed(message), + Err(write_err) => ProfileOutcome::Failed(format!( + "{message}\nAdditionally failed to write profiling error artifact {}: {}", + artifacts.error_path.display(), + write_err + )), + } +} + +fn write_failure_sidecar(artifacts: &ProfileArtifacts, sidecar: &str) -> Result<()> { + fs::create_dir_all(&artifacts.profile_dir).with_context(|| { + format!( + "Failed to create profile directory: {}", + artifacts.profile_dir.display() + ) + })?; + fs::write(&artifacts.error_path, sidecar).with_context(|| { + format!( + "Failed to write profiling error file to {}", + artifacts.error_path.display() + ) + })?; + info!( + "Saved Zisk profiling error to {}", + artifacts.error_path.display() + ); + Ok(()) +} + +fn remove_file_if_exists(path: &Path) -> Result<()> { + match fs::remove_file(path) { + Ok(()) => Ok(()), + Err(err) if err.kind() == ErrorKind::NotFound => Ok(()), + Err(err) => Err(err.into()), + } +} + +/// Mirrors `ere-prover-zisk` input preparation for direct `ziskemu` execution. +fn length_prefixed_and_padded(data: &[u8]) -> Vec { + let len = (8 + data.len()).next_multiple_of(8); + let mut buf = Vec::with_capacity(len); + buf.extend_from_slice(&(data.len() as u64).to_le_bytes()); + buf.extend_from_slice(data); + buf.resize(len, 0); + buf +} diff --git a/crates/ere-hosts/Cargo.toml b/crates/ere-hosts/Cargo.toml index c7aa922a..d66eee40 100644 --- a/crates/ere-hosts/Cargo.toml +++ b/crates/ere-hosts/Cargo.toml @@ -10,15 +10,15 @@ default = [] [dependencies] benchmark-runner.workspace = true -block-encoding-length-guest.workspace = true -ere-zkvm-interface.workspace = true ere-dockerized.workspace = true anyhow.workspace = true clap.workspace = true +humantime.workspace = true tracing.workspace = true tracing-subscriber.workspace = true +tokio.workspace = true [lints] diff --git a/crates/ere-hosts/src/cli.rs b/crates/ere-hosts/src/cli.rs index 166e9f40..e8cc4660 100644 --- a/crates/ere-hosts/src/cli.rs +++ b/crates/ere-hosts/src/cli.rs @@ -1,12 +1,10 @@ //! CLI definitions for the zkVM benchmarker -use std::{path::PathBuf, str::FromStr}; - -use anyhow::Result; use benchmark_runner::{runner::Action, stateless_validator}; use clap::{Parser, Subcommand, ValueEnum}; -use ere_dockerized::zkVMKind; -use ere_zkvm_interface::ProverResourceType; +use ere_dockerized::{ProverResource, RemoteProverConfig, zkVMKind}; +use std::path::PathBuf; +use std::time::Duration; /// Command line interface for the zkVM benchmarker #[derive(Parser)] @@ -19,6 +17,10 @@ pub struct Cli { #[arg(short, long, value_enum, default_value = "cpu")] pub resource: Resource, + /// Endpoint URL of the proving cluster (required when --resource cluster) + #[arg(long, required_if_eq("resource", "cluster"))] + pub cluster_endpoint: Option, + /// Action to perform #[arg(short, long, value_enum, default_value = "execute")] pub action: BenchmarkAction, @@ -42,6 +44,39 @@ pub struct Cli { /// Output folder for dumping input files used in benchmarks #[arg(long)] pub dump_inputs: Option, + + /// Save generated proofs to the specified folder (only valid with --action prove) + #[arg(long)] + pub save_proofs: Option, + + /// Folder containing saved proofs (used with --action verify) + #[arg( + long, + default_value = "zkevm-fixtures-proofs", + conflicts_with = "proofs_url" + )] + pub proofs_folder: PathBuf, + + /// URL to a .tar.gz archive containing proofs (used with --action verify). + #[arg(long, conflicts_with = "proofs_folder")] + pub proofs_url: Option, + + /// Base path for pre-compiled guest program binaries. If not set, they will be downloaded + /// from the resolved ere-guests release or commit artifacts. + #[arg(long)] + pub bin_path: Option, + + /// Timeout for the selected action only, for example `15m`, `5m`, or `2s`. + #[arg(long, value_name = "DURATION", value_parser = parse_duration)] + pub timeout: Option, + + /// Enable Zisk profiling (requires --zkvms zisk, --action execute) + #[arg(long)] + pub zisk_profile: bool, + + /// Output folder for Zisk profile results + #[arg(long, default_value = "zisk-profiles")] + pub zisk_profile_output: PathBuf, } /// Subcommands for different guest programs @@ -52,36 +87,15 @@ pub enum GuestProgramCommand { /// Input folder for benchmark fixtures #[arg(short, long, default_value = "zkevm-fixtures-input")] input_folder: PathBuf, + /// Fixture name prefix to run. Repeat to select multiple prefixes. + #[arg(long, value_name = "PREFIX")] + fixture: Option>, /// Execution client to benchmark #[arg(short, long)] execution_client: ExecutionClient, }, /// Empty program EmptyProgram, - - /// Block encoding length - BlockEncodingLength { - /// Input folder for benchmark fixtures - #[arg(short, long, default_value = "zkevm-fixtures-input")] - input_folder: PathBuf, - - /// Number of times to loop the benchmark - #[arg(long)] - loop_count: u16, - - /// Encoding format - #[arg(short, long, value_enum)] - format: BlockEncodingFormat, - }, -} - -/// Encoding formats for block encoding length program -#[derive(Debug, Clone, ValueEnum)] -pub enum BlockEncodingFormat { - /// RLP encoding - Rlp, - /// SSZ encoding - Ssz, } /// Execution clients for the stateless validator @@ -95,12 +109,12 @@ pub enum ExecutionClient { impl ExecutionClient { /// Get the guest relative path for the execution client - pub fn guest_rel_path(&self) -> Result { + pub fn guest_rel_path(&self) -> PathBuf { let path = match self { Self::Reth => "stateless-validator/reth", Self::Ethrex => "stateless-validator/ethrex", }; - Ok(PathBuf::from_str(path).unwrap()) + PathBuf::from(path) } } @@ -111,6 +125,8 @@ pub enum Resource { Cpu, /// GPU resource Gpu, + /// Proving cluster (requires --cluster-endpoint) + Cluster, } /// Benchmark actions @@ -120,13 +136,27 @@ pub enum BenchmarkAction { Execute, /// Create a zkVM proof Prove, + /// Verify proofs loaded from disk + Verify, } -impl From for ProverResourceType { - fn from(resource: Resource) -> Self { - match resource { - Resource::Cpu => Self::Cpu, - Resource::Gpu => Self::Gpu, +fn parse_duration(value: &str) -> Result { + humantime::parse_duration(value).map_err(|err| err.to_string()) +} + +impl Cli { + /// Build the Ere [`ProverResource`] from parsed CLI args. + pub fn prover_resource(&self) -> ProverResource { + match self.resource { + Resource::Cpu => ProverResource::Cpu, + Resource::Gpu => ProverResource::Gpu, + Resource::Cluster => ProverResource::Cluster(RemoteProverConfig { + endpoint: self + .cluster_endpoint + .clone() + .expect("clap required_if_eq should guarantee cluster_endpoint set"), + api_key: None, + }), } } } @@ -136,15 +166,7 @@ impl From for Action { match action { BenchmarkAction::Execute => Self::Execute, BenchmarkAction::Prove => Self::Prove, - } - } -} - -impl From for block_encoding_length_guest::guest::BlockEncodingFormat { - fn from(format: BlockEncodingFormat) -> Self { - match format { - BlockEncodingFormat::Rlp => Self::Rlp, - BlockEncodingFormat::Ssz => Self::Ssz, + BenchmarkAction::Verify => Self::Verify, } } } diff --git a/crates/ere-hosts/src/main.rs b/crates/ere-hosts/src/main.rs index 5e68c685..d81eeb69 100644 --- a/crates/ere-hosts/src/main.rs +++ b/crates/ere-hosts/src/main.rs @@ -2,126 +2,188 @@ #![cfg_attr(not(test), warn(unused_crate_dependencies))] -use anyhow::{Context, Result}; +use anyhow::{Context, Result, bail}; use benchmark_runner::{ - block_encoding_length_program, empty_program, - runner::{Action, RunConfig, get_zkvm_instances, run_benchmark}, + empty_program, + runner::{ + Action, ProfileConfig, RunConfig, benchmark_output_dir, get_el_zkvm_instances, + get_guest_zkvm_instances, run_benchmark_iter, + }, stateless_validator::{self}, + verification::{download_and_extract_proofs, resolve_extracted_root, run_verify_from_disk}, }; +use ere_dockerized::{DockerizedzkVMConfig, ProverResource, zkVMKind}; use clap::Parser; -use ere_zkvm_interface::ProverResourceType; -use std::path::{Path, PathBuf}; +use std::time::Duration; use tracing::info; use tracing_subscriber::EnvFilter; -use crate::cli::{Cli, ExecutionClient, GuestProgramCommand}; +use crate::cli::{Cli, GuestProgramCommand}; pub mod cli; -fn main() -> Result<()> { +const DEFAULT_EXECUTE_TIMEOUT: Duration = Duration::from_secs(5 * 60); +const DEFAULT_PROVE_TIMEOUT: Duration = Duration::from_secs(15 * 60); +const DEFAULT_VERIFY_TIMEOUT: Duration = Duration::from_secs(2); + +#[tokio::main] +async fn main() -> Result<()> { tracing_subscriber::fmt() .with_env_filter(EnvFilter::from_default_env()) .init(); let cli = Cli::parse(); - let resource: ProverResourceType = cli.resource.into(); + if cli.zisk_profile { + if !matches!(cli.action, cli::BenchmarkAction::Execute) { + bail!( + "--zisk-profile requires --action execute, but got {:?}", + cli.action + ); + } + if cli.zkvms.len() != 1 || cli.zkvms[0] != zkVMKind::Zisk { + let zkvm_names: Vec<_> = cli.zkvms.iter().map(|z| z.as_str()).collect(); + bail!( + "--zisk-profile requires --zkvms zisk only, but got: {}", + zkvm_names.join(", ") + ); + } + } + + let resource: ProverResource = cli.prover_resource(); let action: Action = cli.action.into(); + let zkvm_config = build_zkvm_config(action, cli.timeout); info!( "Running benchmarks with resource={:?} and action={:?}", resource, action ); - let workspace_dir = workspace_root().join("ere-guests"); + let zisk_profile_config = cli + .zisk_profile + .then(|| ProfileConfig::new(cli.zisk_profile_output.clone())); + + // Validate: --save-proofs is only valid with --action prove + if cli.save_proofs.is_some() && !matches!(action, Action::Prove) { + anyhow::bail!("--save-proofs is only valid with --action prove"); + } + + // Validate: --proofs-url is only valid with --action verify + if cli.proofs_url.is_some() && !matches!(action, Action::Verify) { + anyhow::bail!("--proofs-url is only valid with --action verify"); + } + + // Validate: --cluster-endpoint is only valid with --resource cluster + if cli.cluster_endpoint.is_some() && !matches!(cli.resource, cli::Resource::Cluster) { + anyhow::bail!("--cluster-endpoint is only valid with --resource cluster"); + } + + // Validate: --resource cluster currently only supports zisk zkVM and not support --action execute + if matches!(cli.resource, cli::Resource::Cluster) { + if cli.zkvms.iter().any(|z| *z != zkVMKind::Zisk) { + anyhow::bail!("--resource cluster is only implemented for --zkvms zisk"); + } + if matches!(action, Action::Execute) { + anyhow::bail!("--resource cluster is not implemented for --action execute"); + } + } + + // Resolve proofs source: download from URL or use local folder. + // _proofs_tmpdir must live until verification completes (drop = cleanup). + let (_proofs_tmpdir, proofs_folder) = if let Some(ref url) = cli.proofs_url { + let tmp = download_and_extract_proofs(url).await?; + let resolved = resolve_extracted_root(tmp.path())?; + (Some(tmp), resolved) + } else { + (None, cli.proofs_folder) + }; + let bin_path = cli.bin_path.as_deref(); + let config_base = RunConfig { + output_folder: cli.output_folder, + sub_folder: None, + action, + force_rerun: cli.force_rerun, + dump_inputs_folder: cli.dump_inputs, + zisk_profile_config, + save_proofs_folder: cli.save_proofs, + }; + match cli.guest_program { GuestProgramCommand::StatelessValidator { input_folder, + fixture, execution_client, } => { - info!( - "Running stateless-validator benchmark for input folder: {}", - input_folder.display() - ); - let el = execution_client.into(); - let guest_io = - stateless_validator::stateless_validator_inputs(input_folder.as_path(), el)?; - let guest_relative = execution_client - .guest_rel_path() - .context("Failed to get guest relative path")?; - let apply_patches = matches!(execution_client, ExecutionClient::Reth); - let zkvms = get_zkvm_instances( + let el: stateless_validator::ExecutionClient = execution_client.into(); + + let el_name = el.as_ref().to_lowercase(); + let el_str = format!("{}-{}", el_name, el.version()); + let zkvms = get_el_zkvm_instances( + &el_name, &cli.zkvms, - &workspace_dir, - &guest_relative, resource, - apply_patches, - )?; + zkvm_config.clone(), + bin_path, + ) + .await + .context("Failed to get EL zkvm instances")?; + let config = RunConfig { - output_folder: cli.output_folder, - sub_folder: Some(el.as_ref().to_lowercase()), - action, - force_rerun: cli.force_rerun, - dump_inputs_folder: cli.dump_inputs.clone(), + sub_folder: Some(el_str), + ..config_base }; - for zkvm in zkvms { - run_benchmark(&zkvm, &config, &guest_io)?; + + match action { + Action::Verify => { + for instance in &zkvms { + run_verify_from_disk(instance, &config, &proofs_folder)?; + } + } + _ => { + info!( + "Running stateless-validator benchmark for input folder: {}", + input_folder.display() + ); + for zkvm in &zkvms { + let existing_output_dir = + (!config.force_rerun).then(|| benchmark_output_dir(zkvm, &config)); + let guest_io = stateless_validator::stateless_validator_input_iter( + input_folder.as_path(), + fixture.as_deref(), + el, + existing_output_dir.as_deref(), + )? + .map(|input| input.context("Failed to get stateless validator input")); + run_benchmark_iter(zkvm, &config, guest_io)?; + } + } } } GuestProgramCommand::EmptyProgram => { info!("Running empty-program benchmarks"); - let guest_io = empty_program::empty_program_input() - .context("Failed to create empty program input")?; - let zkvms = get_zkvm_instances( + let zkvms = get_guest_zkvm_instances( + "empty", &cli.zkvms, - &workspace_dir, - Path::new("empty-program"), resource, - true, - )?; - let config = RunConfig { - output_folder: cli.output_folder, - sub_folder: None, - action, - force_rerun: cli.force_rerun, - dump_inputs_folder: cli.dump_inputs.clone(), - }; - for zkvm in zkvms { - run_benchmark(&zkvm, &config, [&guest_io])?; - } - } - GuestProgramCommand::BlockEncodingLength { - input_folder, - loop_count, - format, - } => { - info!( - "Running {:?}-encoding-length benchmarks for input folder {} and loop count {}", - format, - input_folder.display(), - loop_count - ); - let guest_io = block_encoding_length_program::block_encoding_length_inputs( - input_folder.as_path(), - loop_count, - format.into(), - )?; - let zkvms = get_zkvm_instances( - &cli.zkvms, - &workspace_dir, - Path::new("block-encoding-length"), - resource, - true, - )?; - let config = RunConfig { - output_folder: cli.output_folder, - sub_folder: None, - action, - force_rerun: cli.force_rerun, - dump_inputs_folder: cli.dump_inputs.clone(), - }; - for zkvm in zkvms { - run_benchmark(&zkvm, &config, &guest_io)?; + zkvm_config.clone(), + bin_path, + ) + .await + .context("Failed to get guest zkvm instances")?; + + match action { + Action::Verify => { + for instance in &zkvms { + run_verify_from_disk(instance, &config_base, &proofs_folder)?; + } + } + _ => { + for zkvm in zkvms { + let guest_io = empty_program::empty_program_input() + .context("Failed to create empty program input")?; + run_benchmark_iter(&zkvm, &config_base, std::iter::once(Ok(guest_io)))?; + } + } } } } @@ -129,10 +191,23 @@ fn main() -> Result<()> { Ok(()) } -/// Repository root (assumes `ere-hosts` lives in `/crates/ere-hosts`). -fn workspace_root() -> PathBuf { - let mut p = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - p.pop(); - p.pop(); - p +const fn build_zkvm_config( + action: Action, + timeout_override: Option, +) -> DockerizedzkVMConfig { + let mut config = DockerizedzkVMConfig { + execute_timeout: Some(DEFAULT_EXECUTE_TIMEOUT), + prove_timeout: Some(DEFAULT_PROVE_TIMEOUT), + verify_timeout: Some(DEFAULT_VERIFY_TIMEOUT), + }; + + if let Some(timeout) = timeout_override { + match action { + Action::Execute => config.execute_timeout = Some(timeout), + Action::Prove => config.prove_timeout = Some(timeout), + Action::Verify => config.verify_timeout = Some(timeout), + } + } + + config } diff --git a/crates/metrics/README.md b/crates/metrics/README.md index ab946641..838471ca 100644 --- a/crates/metrics/README.md +++ b/crates/metrics/README.md @@ -1,45 +1,36 @@ -# metrics +# zkevm-metrics -This crate provides data structures and utilities for handling workload performance metrics, specifically cycle counts. +This crate provides serializable data structures and file helpers for benchmark metrics. + +For the exact metrics files written by `ere-hosts`, see [`docs/benchmark-execution-output.md`](../../docs/benchmark-execution-output.md). ## Overview The core data structure is `BenchmarkRun`, which stores: -- `name`: The name of the benchmark (e.g., `fft_bench`, `aes_bench`). +- `name`: The benchmark or fixture name. - `timestamp_completed`: Timestamp when the benchmark run ended. -- `metadata`: Generic metadata of type `M` containing benchmark-specific information (e.g., block gas usage, loop counts). -- `execution`: Optional execution metrics (`Option`). -- `proving`: Optional proving metrics (`Option`). - -Both `ExecutionMetrics` and `ProvingMetrics` can be either: -- `Success { ... }`: Contains metrics from successful runs -- `Crashed(CrashInfo)`: Contains information about crashes that occurred +- `metadata`: Benchmark-specific metadata, generic over the caller's type. +- `execution`: Optional execution metrics. +- `proving`: Optional proving metrics. +- `verification`: Optional standalone verification metrics. -`ExecutionMetrics::Success` stores: -- `total_num_cycles`: The total cycle count for the whole execution. -- `region_cycles`: A map associating names (e.g., "setup", "compute") with the cycle counts for specific regions within the workload. -- `execution_duration`: The duration of the execution. +`ExecutionMetrics`, `ProvingMetrics`, and `VerificationMetrics` can contain either a success payload or crash information, depending on the run outcome. -`ProvingMetrics::Success` stores: -- `proof_size`: The size of the generated proof in bytes. -- `proving_time_ms`: The time taken to generate the proof in milliseconds. +`HardwareInfo` detects and stores: -`HardwareInfo` is a separate utility struct that automatically detects and stores: -- `cpu_model`: The CPU model name. +- `cpu_model`: CPU model name. - `total_ram_gib`: Total system RAM in GiB. -- `gpus`: Information about available GPUs (detected via nvidia-smi if available). - -This struct can be used independently to capture system information and can be serialized to JSON files. +- `gpus`: Available GPUs, detected via `nvidia-smi` when available. -The crate offers functionality to: +The crate can: -- Serialize a `BenchmarkRun` to a JSON string. -- Deserialize a `BenchmarkRun` from a JSON string. -- Serialize and write a `BenchmarkRun` to a file (creating parent directories if needed). -- Read and deserialize a `BenchmarkRun` from a file. +- Serialize a `BenchmarkRun` to JSON. +- Deserialize a `BenchmarkRun` from JSON. +- Write a `BenchmarkRun` to a file, creating parent directories if needed. +- Read a `BenchmarkRun` from a file. -The metadata type `M` must implement `Serialize` and `DeserializeOwned` to enable JSON serialization. +The metadata type must implement `Serialize` and `DeserializeOwned`. ## Usage @@ -47,18 +38,16 @@ Add this crate to your `Cargo.toml`: ```toml [dependencies] -zkevm-metrics = { path = "../metrics" } # Adjust path as needed +zkevm-metrics = { path = "../metrics" } ``` Example: ```rust -use zkevm_metrics::{BenchmarkRun, ExecutionMetrics, ProvingMetrics}; +use serde_derive::{Deserialize, Serialize}; use std::collections::HashMap; -use std::iter::FromIterator; -use std::env::temp_dir; use std::time::Duration; -use serde::{Serialize, Deserialize}; +use zkevm_metrics::{BenchmarkRun, ExecutionMetrics}; #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] struct Metadata { @@ -66,66 +55,32 @@ struct Metadata { } fn main() -> Result<(), Box> { - let metrics_data = vec![ - BenchmarkRun:: { - name: "workload name".into(), - timestamp_completed: zkevm_metrics::chrono::Utc::now(), - metadata: Metadata { - block_used_gas: 12345, - }, - execution: Some(ExecutionMetrics::Success { - total_num_cycles: 1_000, - region_cycles: HashMap::from_iter([ - ("setup".to_string(), 100), - ("compute".to_string(), 800), - ("teardown".to_string(), 100), - ]), - execution_duration: Duration::from_millis(300), - }), - proving: None, + let metrics = BenchmarkRun:: { + name: "workload name".into(), + timestamp_completed: zkevm_metrics::chrono::Utc::now(), + metadata: Metadata { + block_used_gas: 12345, }, - BenchmarkRun { - name: "proving workload".into(), - timestamp_completed: zkevm_metrics::chrono::Utc::now(), - metadata: Metadata { - block_used_gas: 67890, - }, - execution: None, - proving: Some(ProvingMetrics::Success { - proof_size: 256, - proving_time_ms: 2_000, - }), - }, - // ... other workloads - ]; - - // Serialize to JSON string - let json_string = BenchmarkRun::to_json(&metrics_data)?; - println!("Serialized JSON: {}", json_string); - - - for metrics in metrics_data.into_iter() { - // Create a path in the system's temp directory - let output_path = temp_dir().join("metrics_output.json"); - - // Write to file - metrics.to_path(&output_path)?; - println!("Metrics written to {:?}", &output_path); - - // Read from file - let read_metrics = BenchmarkRun::from_path(output_path)?; - assert_eq!(metrics, read_metrics); - } - println!("Successfully read metrics back from file."); - + execution: Some(ExecutionMetrics::Success { + output_matched: true, + total_num_cycles: 1_000, + region_cycles: HashMap::new(), + execution_duration: Duration::from_millis(300), + }), + proving: None, + verification: None, + }; + + let json = BenchmarkRun::to_json(&[metrics])?; + println!("{json}"); Ok(()) } ``` ## Error Handling -Functions return `Result<_, MetricsError>`. +File and JSON helpers return `Result<_, MetricsError>`. ## License -This crate inherits its license from the workspace. See the root `Cargo.toml` or `LICENSE` file. +This crate inherits its license from the workspace. See the root `Cargo.toml` or license files. diff --git a/crates/metrics/src/lib.rs b/crates/metrics/src/lib.rs index fa7a246b..590d397e 100644 --- a/crates/metrics/src/lib.rs +++ b/crates/metrics/src/lib.rs @@ -23,6 +23,10 @@ pub struct BenchmarkRun { /// Proving metrics for the benchmark run. #[serde(skip_serializing_if = "Option::is_none")] pub proving: Option, + /// Standalone verification metrics for the benchmark run. + #[serde(skip_serializing_if = "Option::is_none")] + #[serde(default)] + pub verification: Option, } /// Hardware specs of the benchmark runner. @@ -107,6 +111,8 @@ pub struct CrashInfo { pub enum ExecutionMetrics { /// Metrics for a successful execution workload. Success { + /// Whether public output matched the fixture's expected public values. + output_matched: bool, /// Total number of cycles for the entire workload execution. total_num_cycles: u64, /// Region-specific cycles, mapping region names (e.g., "setup", "compute") to their cycle counts. @@ -124,15 +130,34 @@ pub enum ExecutionMetrics { pub enum ProvingMetrics { /// Metrics for a successful proving workload. Success { + /// Whether prover and verification public outputs matched the fixture's expected public values. + output_matched: bool, /// Proof size in bytes. proof_size: usize, /// Proving time in milliseconds. proving_time_ms: u128, + /// Verification time in milliseconds. + verification_time_ms: u128, }, /// Metrics for a crashed proving workload. Crashed(CrashInfo), } +/// Metrics for standalone verification workloads, either successful or crashed. +#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Clone)] +#[serde(rename_all = "snake_case")] +pub enum VerificationMetrics { + /// Metrics for a successful verification workload. + Success { + /// Proof size in bytes. + proof_size: usize, + /// Verification time in milliseconds. + verification_time_ms: u128, + }, + /// Metrics for a crashed verification workload. + Crashed(CrashInfo), +} + /// Errors that can occur during metrics processing. #[derive(Error, Debug)] pub enum MetricsError { @@ -231,6 +256,7 @@ mod tests { block_gas_used: 12345, }, execution: Some(ExecutionMetrics::Success { + output_matched: true, total_num_cycles: 1_000, region_cycles: HashMap::from_iter([ ("setup".to_string(), 100), @@ -240,6 +266,7 @@ mod tests { execution_duration: Duration::from_millis(150), }), proving: None, + verification: None, }, BenchmarkRun { name: "aes_bench".into(), @@ -248,6 +275,7 @@ mod tests { block_gas_used: 67890, }, execution: Some(ExecutionMetrics::Success { + output_matched: true, total_num_cycles: 2_000, region_cycles: HashMap::from_iter([ ("init".to_string(), 200), @@ -257,9 +285,12 @@ mod tests { execution_duration: Duration::from_millis(300), }), proving: Some(ProvingMetrics::Success { + output_matched: true, proof_size: 256, proving_time_ms: 2_000, + verification_time_ms: 200, }), + verification: None, }, BenchmarkRun { name: "proving_bench".into(), @@ -269,9 +300,12 @@ mod tests { }, execution: None, proving: Some(ProvingMetrics::Success { + output_matched: true, proof_size: 512, proving_time_ms: 5_000, + verification_time_ms: 500, }), + verification: None, }, ] } @@ -313,11 +347,13 @@ mod tests { block_gas_used: 11111, }, execution: Some(ExecutionMetrics::Success { + output_matched: true, total_num_cycles: 1000, region_cycles: HashMap::new(), execution_duration: Duration::from_millis(150), }), proving: None, + verification: None, }; assert_eq!(benchmark_run.name, "test_benchmark"); @@ -332,6 +368,7 @@ mod tests { block_gas_used: 22222, }, execution: Some(ExecutionMetrics::Success { + output_matched: true, total_num_cycles: 500, region_cycles: HashMap::from_iter([ ("setup".to_string(), 50), @@ -341,12 +378,59 @@ mod tests { execution_duration: Duration::from_millis(100), }), proving: Some(ProvingMetrics::Success { + output_matched: true, proof_size: 128, proving_time_ms: 1500, + verification_time_ms: 150, }), + verification: None, }; let json = BenchmarkRun::to_json(std::slice::from_ref(&bench)).expect("serialize mixed"); let parsed = BenchmarkRun::from_json(&json).expect("deserialize mixed"); assert_eq!(vec![bench], parsed); } + + #[test] + fn execution_success_serializes_output_matched_values() { + for output_matched in [true, false] { + let metrics = ExecutionMetrics::Success { + output_matched, + total_num_cycles: 42, + region_cycles: HashMap::new(), + execution_duration: Duration::from_millis(7), + }; + + let value = serde_json::to_value(&metrics).expect("serialize execution metrics"); + assert_eq!( + value["success"]["output_matched"], + serde_json::Value::Bool(output_matched) + ); + + let parsed: ExecutionMetrics = + serde_json::from_value(value).expect("deserialize execution metrics"); + assert_eq!(metrics, parsed); + } + } + + #[test] + fn proving_success_serializes_output_matched_values() { + for output_matched in [true, false] { + let metrics = ProvingMetrics::Success { + output_matched, + proof_size: 256, + proving_time_ms: 2_000, + verification_time_ms: 200, + }; + + let value = serde_json::to_value(&metrics).expect("serialize proving metrics"); + assert_eq!( + value["success"]["output_matched"], + serde_json::Value::Bool(output_matched) + ); + + let parsed: ProvingMetrics = + serde_json::from_value(value).expect("deserialize proving metrics"); + assert_eq!(metrics, parsed); + } + } } diff --git a/crates/witness-generator-cli/Dockerfile b/crates/witness-generator-cli/Dockerfile index 596f00db..55176029 100644 --- a/crates/witness-generator-cli/Dockerfile +++ b/crates/witness-generator-cli/Dockerfile @@ -1,5 +1,5 @@ # Build the witness-generator -FROM rust:1.88 AS builder +FROM rust:1.93-bookworm AS builder RUN apt-get update && apt-get install -y build-essential libclang-dev WORKDIR /usr/src/zkevm-benchmark-workload COPY . . diff --git a/crates/witness-generator-cli/README.md b/crates/witness-generator-cli/README.md deleted file mode 100644 index fe88e585..00000000 --- a/crates/witness-generator-cli/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# Witness Generator CLI - -This crate provides a standalone binary for generating execution witnesses for Ethereum blockchain test cases using the `witness-generator` library. - -## Overview - -The witness generator CLI is a command-line interface that processes standard Ethereum test suites (specifically blockchain tests found in `zkevm-fixtures`) or RPC endpoints and produces execution witnesses as individual fixture files for use by the benchmark runner. - -The binary provides different data sources: -- **EEST (Execution Spec Tests)**: Processes blockchain test fixtures using `ef_tests::cases::blockchain_test::run_case`. Can use fixtures from a specific release tag or from a local directory path. -- **RPC**: Pulls blocks directly from RPC endpoints and generates witnesses. Supports one-time generation of specific blocks, last N blocks, or continuous streaming of new blocks. - -Each test case generates an individual JSON fixture file that can be consumed by the `ere-hosts` benchmark runner. - -## Usage - -### Docker Usage - -The witness generator supports containerized deployment via Docker: - -```bash -# Build the Docker image -docker build -f Dockerfile -t witness-generator-cli . - -# Run with Docker (mounting output directory) -docker run -v $(pwd)/output:/app/output witness-generator-cli tests --include Prague -``` - -### Binary Usage - -The crate provides a standalone binary for generating fixture files: - -```bash -# Generate fixtures from execution spec tests -cargo run -- tests - -# Generate from specific tag -cargo run -- tests --tag v0.1.0 - -# Include/exclude specific tests -cargo run -- tests --include "Prague" --exclude "SSTORE" - -# Generate from local EEST fixtures path -cargo run -- tests --eest-fixtures-path /path/to/local/eest/fixtures - -# Generate from RPC (last 5 blocks) -cargo run -- rpc --last-n-blocks 5 --rpc-url "https://mainnet.infura.io/v3/YOUR_KEY" - -# Generate specific block from RPC -cargo run -- rpc --block 20000000 --rpc-url "https://mainnet.infura.io/v3/YOUR_KEY" - -# Listen for new blocks continuously -cargo run -- rpc --follow --rpc-url "https://mainnet.infura.io/v3/YOUR_KEY" - -# Custom output folder -cargo run -- --output-folder my-fixtures tests -``` - -### EEST Fixture Sources - -When using the `tests` subcommand, you have two options for specifying the source of EEST fixtures: - -1. **Release Tag** (default): Use `--tag` to specify a particular EEST release tag (e.g., "v0.1.0"). If no tag is specified, the latest release will be used. -2. **Local Path**: Use `--eest-fixtures-path` to point to a local directory containing EEST fixture files. - -**Note:** The `--tag` and `--eest-fixtures-path` options are mutually exclusive - you can only use one at a time. - -**Example with local path:** -```bash -cargo run -- tests --eest-fixtures-path ./my-local-fixtures --include "Prague" -``` - -### RPC Streaming Support - -The RPC data source now supports continuous streaming of new blocks using the `--follow` flag: - -```bash -cargo run -- rpc --follow --rpc-url "https://your-rpc.com" --rpc-header "Authorization=Bearer YOUR_TOKEN" -``` - -When using `--follow`, the generator will: -- Listen for new blocks as they are finalized -- Generate witness data for each new block -- Write fixture files as they are processed -- Continue until interrupted with Ctrl+C -- Handle network disconnections gracefully - -## Command Line Options - -| Option | Description | Example | -|--------|-------------|---------| -| `tests` | Generate from EEST fixtures | `cargo run -- tests` | -| `rpc` | Generate from RPC endpoint | `cargo run -- rpc --rpc-url ` | -| `--tag` | Specify EEST release tag | `--tag v0.1.0` | -| `--eest-fixtures-path` | Use local EEST fixtures | `--eest-fixtures-path ./fixtures` | -| `--include` | Include tests matching pattern | `--include "Prague"` | -| `--exclude` | Exclude tests matching pattern | `--exclude "SSTORE"` | -| `--last-n-blocks` | Process last N blocks from RPC | `--last-n-blocks 5` | -| `--block` | Process specific block number | `--block 20000000` | -| `--follow` | Continuously stream new blocks | `--follow` | -| `--rpc-url` | RPC endpoint URL | `--rpc-url "https://..."` | -| `--rpc-header` | Custom RPC header | `--rpc-header "Auth=token"` | -| `--output-folder` | Custom output directory | `--output-folder my-fixtures` | - -## Error Handling - -The binary will exit with an error code if fixture generation fails. Individual fixture file creation is handled gracefully with detailed error messages. - -## Architecture - -The CLI acts as a wrapper around the `witness-generator` library, providing: - -- Command-line argument parsing using `clap` -- Docker support for containerized deployment - -## Library Integration - -For programmatic use, consider using the `witness-generator` library directly instead of this CLI. See the `witness-generator` crate documentation for library usage examples. - -## License - -This crate inherits its license from the workspace. See the root `Cargo.toml` or `LICENSE` file. diff --git a/crates/witness-generator-cli/src/main.rs b/crates/witness-generator-cli/src/main.rs index 2bf94e6f..ff68fd16 100644 --- a/crates/witness-generator-cli/src/main.rs +++ b/crates/witness-generator-cli/src/main.rs @@ -11,6 +11,7 @@ use tracing_subscriber::EnvFilter; use witness_generator::{ FixtureGenerator, eest_generator::EESTFixtureGeneratorBuilder, + raw_input_generator::RawInputFixtureGeneratorBuilder, rpc_generator::{RpcBlocksAndWitnessesBuilder, RpcFlatHeaderKeyValues}, }; @@ -32,7 +33,8 @@ struct Cli { enum SourceCommand { /// Generate fixtures from execution specification tests Tests { - /// EEST release tag to use (e.g., "v0.1.0"). If empty, the latest release will be used. + /// EEST benchmark release tag to use. + /// If empty, the pinned default release is used. Use "latest" to resolve the latest benchmark release. #[arg(short, long, conflicts_with = "eest_fixtures_path")] tag: Option, @@ -48,6 +50,12 @@ enum SourceCommand { #[arg(long, conflicts_with = "tag")] eest_fixtures_path: Option, }, + /// Generate fixtures from raw stateless input URLs listed in `raw_input_parts.txt` + RawInput { + /// Path to the input folder containing `chain_config.json` and `raw_input_parts.txt` + #[arg(long)] + input_folder: PathBuf, + }, /// Generate fixtures from an RPC endpoint Rpc { /// Number of last blocks to pull @@ -69,6 +77,10 @@ enum SourceCommand { /// Optional RPC headers to use (format: "Key:Value") #[arg(long)] rpc_header: Option>, + + /// Optional path to a geth-style genesis.json file for custom/devnet chain config + #[arg(long, value_name = "PATH")] + genesis: Option, }, } @@ -121,14 +133,25 @@ async fn build_generator(source: SourceCommand) -> Result Ok(Box::new( + RawInputFixtureGeneratorBuilder::default() + .with_input_folder(input_folder) + .context("Invalid raw input folder")? + .build() + .context("Failed to build raw input generator")?, + )), SourceCommand::Rpc { last_n_blocks, block, rpc_url, rpc_header, + genesis, follow: listen, } => { let mut builder = RpcBlocksAndWitnessesBuilder::new(rpc_url); @@ -140,6 +163,10 @@ async fn build_generator(source: SourceCommand) -> Result, dest_dir: &Path) -> Result<()> { + let client = build_http_client()?; + let resolved_tag = resolve_tag(&client, tag).await?; + let download_url = get_asset_download_url(&client, &resolved_tag).await?; + download_and_untar(&client, &download_url, dest_dir).await +} + +/// Builds an HTTP client with GitHub API headers and optional token auth. +fn build_http_client() -> Result { + let mut headers = reqwest::header::HeaderMap::new(); + headers.insert( + reqwest::header::ACCEPT, + reqwest::header::HeaderValue::from_static("application/vnd.github+json"), + ); + headers.insert( + reqwest::header::USER_AGENT, + reqwest::header::HeaderValue::from_static("zkevm-benchmark-workload"), + ); + + if let Ok(token) = std::env::var("GITHUB_TOKEN") { + info!("Using GitHub token for API authentication"); + let value = format!("Bearer {token}"); + headers.insert( + reqwest::header::AUTHORIZATION, + value + .parse() + .map_err(|_| WGError::DownloadFailed("invalid GITHUB_TOKEN value".to_string()))?, + ); + } + + reqwest::Client::builder() + .default_headers(headers) + .build() + .map_err(|e| WGError::DownloadFailed(format!("failed to build HTTP client: {e}"))) +} + +/// Resolves the tag to use for the GitHub release. +async fn resolve_tag(client: &reqwest::Client, tag: Option<&str>) -> Result { + match tag { + None => { + info!("Using default tag: {DEFAULT_TAG}"); + Ok(DEFAULT_TAG.to_string()) + } + Some("latest") => { + info!("Finding latest benchmark release..."); + resolve_latest_tag(client).await + } + Some(t) => { + info!("Using specified tag: {t}"); + Ok(t.to_string()) + } + } +} + +/// Queries the GitHub API to find the latest benchmark fixture release. +async fn resolve_latest_tag(client: &reqwest::Client) -> Result { + let url = format!("https://api.github.com/repos/{REPO}/releases"); + let resp = client + .get(&url) + .send() + .await + .map_err(|e| WGError::DownloadFailed(format!("failed to list releases: {e}")))?; + + if !resp.status().is_success() { + return Err(WGError::DownloadFailed(format!( + "GitHub API returned {} when listing releases", + resp.status() + ))); + } + + let releases: Vec = resp + .json() + .await + .map_err(|e| WGError::DownloadFailed(format!("failed to parse releases JSON: {e}")))?; + + for release in &releases { + if let Some(tag_name) = release["tag_name"].as_str() + && is_benchmark_release_tag(tag_name) + { + info!("Using latest benchmark release: {tag_name}"); + return Ok(tag_name.to_string()); + } + } + + Err(WGError::DownloadFailed(format!( + "no benchmark release found in {REPO}" + ))) +} + +/// Queries the GitHub API to get the download URL for the fixture asset. +async fn get_asset_download_url(client: &reqwest::Client, tag: &str) -> Result { + let encoded_tag = tag.replace('@', "%40"); + let url = format!("https://api.github.com/repos/{REPO}/releases/tags/{encoded_tag}"); + + info!("Getting release info for {tag}..."); + let resp = client + .get(&url) + .send() + .await + .map_err(|e| WGError::DownloadFailed(format!("failed to get release {tag}: {e}")))?; + + if !resp.status().is_success() { + return Err(WGError::DownloadFailed(format!( + "GitHub API returned {} for tag {tag}", + resp.status() + ))); + } + + let release: serde_json::Value = resp + .json() + .await + .map_err(|e| WGError::DownloadFailed(format!("failed to parse release JSON: {e}")))?; + + let assets = release["assets"] + .as_array() + .ok_or_else(|| WGError::DownloadFailed("no assets in release".to_string()))?; + + for asset in assets { + if asset["name"].as_str() == Some(ASSET_NAME) + && let Some(url) = asset["browser_download_url"].as_str() + { + return Ok(url.to_string()); + } + } + + Err(WGError::DownloadFailed(format!( + "asset {ASSET_NAME} not found in release {tag}" + ))) +} + +/// Downloads the fixture archive and extracts it to the destination directory. +async fn download_and_untar(client: &reqwest::Client, url: &str, dest_dir: &Path) -> Result<()> { + info!("Downloading {ASSET_NAME}..."); + let resp = client + .get(url) + .send() + .await + .map_err(|e| WGError::DownloadFailed(format!("download failed: {e}")))?; + + if !resp.status().is_success() { + return Err(WGError::DownloadFailed(format!( + "download returned status {}", + resp.status() + ))); + } + + let bytes = resp + .bytes() + .await + .map_err(|e| WGError::DownloadFailed(format!("failed to read response body: {e}")))?; + + info!("Extracting {} bytes to {}", bytes.len(), dest_dir.display()); + + let dest = dest_dir.to_path_buf(); + tokio::task::spawn_blocking(move || { + std::fs::create_dir_all(&dest)?; + let decoder = GzDecoder::new(&bytes[..]); + let mut archive = Archive::new(decoder); + archive.unpack(&dest)?; + Ok::<(), std::io::Error>(()) + }) + .await + .map_err(|e| WGError::DownloadFailed(format!("extraction task failed: {e}")))? + .map_err(|e| WGError::DownloadFailed(format!("extraction failed: {e}")))?; + + info!("Fixtures ready in {}", dest_dir.display()); + Ok(()) +} + +/// Checks if a tag matches the benchmark release pattern. +fn is_benchmark_release_tag(tag: &str) -> bool { + let Some(rest) = tag.strip_prefix(BENCHMARK_TAG_PREFIX) else { + return false; + }; + let Some(version) = rest.strip_prefix('v') else { + return false; + }; + let parts: Vec<&str> = version.split('.').collect(); + parts.len() == 3 && parts.iter().all(|p| p.parse::().is_ok()) +} + +#[cfg(test)] +mod tests { + #[cfg(feature = "slow-tests")] + use super::download_and_extract; + + #[cfg(feature = "slow-tests")] + #[tokio::test] + async fn test_download_and_extract_default_tag() { + let dir = tempfile::tempdir().unwrap(); + download_and_extract(None, dir.path()).await.unwrap(); + assert!( + dir.path().join("fixtures/blockchain_tests").exists(), + "expected fixtures/blockchain_tests directory after extraction" + ); + } +} diff --git a/crates/witness-generator/src/eest_generator.rs b/crates/witness-generator/src/eest_generator.rs index ca6d494a..d8dd70e2 100644 --- a/crates/witness-generator/src/eest_generator.rs +++ b/crates/witness-generator/src/eest_generator.rs @@ -1,18 +1,21 @@ //! Generate benchmark fixtures for EEST blockchain tests. use async_trait::async_trait; -use ef_tests::{Case, cases::blockchain_test::BlockchainTestCase, models::BlockchainTest}; +use ef_tests::{ + Error as EFTestError, cases::blockchain_test::BlockchainTestCase, models::BlockchainTest, +}; use rayon::prelude::*; -use reth_chainspec::{Chain, ChainSpec, blob_params_to_schedule, create_chain_config}; +use reth_chainspec::{Chain, blob_params_to_schedule, create_chain_config}; use std::{ + collections::BTreeMap, + fs, path::{Path, PathBuf}, - process::Command, }; -use tracing::error; +use tracing::{error, info, warn}; use walkdir::{DirEntry, WalkDir}; use crate::{Fixture, FixtureGenerator, Result, StatelessValidationFixture, WGError}; -use reth_stateless::StatelessInput; +use stateless::StatelessInput; /// Witness generator that produces `BlockAndWitness` fixtures for execution-spec-test fixtures. #[derive(Debug, Clone, Default)] @@ -59,7 +62,7 @@ impl EESTFixtureGeneratorBuilder { } /// Constructs the generator, downloading EEST fixtures if no local path was specified. - pub fn build(self) -> Result { + pub async fn build(self) -> Result { let input_folder = self.input_folder; let tag = self.tag; let include = self.include.unwrap_or_default(); @@ -70,18 +73,9 @@ impl EESTFixtureGeneratorBuilder { let (directory_path, delete_eest_folder) = if let Some(input_folder) = input_folder { (input_folder, false) } else { - let mut cmd = Command::new("./scripts/download-and-extract-fixtures.sh"); - if let Some(tag) = tag { - cmd.arg(tag); - } - let output = cmd.output()?; - - if !output.status.success() { - return Err(WGError::DownloadScriptFailed( - String::from_utf8_lossy(&output.stderr).to_string(), - )); - } - (PathBuf::from(&Self::TEMP_EEST_FIXTURES_PATH), true) + let dest = PathBuf::from(Self::TEMP_EEST_FIXTURES_PATH); + crate::eest_downloader::download_and_extract(tag.as_deref(), &dest).await?; + (dest, true) }; Ok(EESTFixtureGenerator { @@ -119,8 +113,70 @@ impl Drop for EESTFixtureGenerator { #[async_trait] impl FixtureGenerator for EESTFixtureGenerator { + /// Streams matching EEST blockchain tests to disk without retaining every generated fixture. + async fn generate_to_path(&self, path: &Path) -> Result { + let suite_path = self.suite_path()?; + let test_file_paths = find_all_files_with_extension(&suite_path, ".json"); + info!( + "Generating EEST fixtures from {} source files", + test_file_paths.len() + ); + + let mut count = 0; + for test_path in test_file_paths { + let tests = + load_filtered_tests(&test_path, &self.filter_include, &self.filter_exclude)?; + let test_count = tests.len(); + if test_count == 0 { + continue; + } + + let generated_count = tests + .par_iter() + .map(|(name, case)| { + let Some(fixture) = gen_fixture_or_skip(name, case)? else { + return Ok(0); + }; + + write_fixture(fixture.as_ref(), path)?; + Ok(1) + }) + .collect::>>()? + .into_iter() + .sum::(); + count += generated_count; + } + + Ok(count) + } + /// Loads EEST blockchain tests, applies include/exclude filters, and generates typed witness fixtures in parallel. async fn generate(&self) -> Result>> { + let suite_path = self.suite_path()?; + let test_file_paths = find_all_files_with_extension(&suite_path, ".json"); + let mut tests: Vec<(String, BlockchainTest)> = Vec::new(); + for path in test_file_paths { + tests.extend(load_filtered_tests( + &path, + &self.filter_include, + &self.filter_exclude, + )?); + } + + let bws = tests + .par_iter() + .map(|(name, case)| gen_fixture_or_skip(name, case)) + .collect::>>()? + .into_iter() + .flatten() + .collect(); + + Ok(bws) + } +} + +impl EESTFixtureGenerator { + fn suite_path(&self) -> Result { let suite_path = self.eest_fixtures.join("fixtures/blockchain_tests"); if !suite_path.exists() { @@ -129,46 +185,108 @@ impl FixtureGenerator for EESTFixtureGenerator { )); } - let test_file_paths = find_all_files_with_extension(&suite_path, ".json"); - let mut tests: Vec<(String, BlockchainTest)> = Vec::new(); - for path in test_file_paths { - let test_case = - BlockchainTestCase::load(&path).map_err(|e| WGError::TestCaseLoadError { - path: path.display().to_string(), - source: Box::new(e) as Box, - })?; - - let file_tests: Vec<(String, BlockchainTest)> = test_case - .tests - .into_iter() - .map(|(name, case)| { - ( - name.split('/').next_back().unwrap_or(&name).to_string(), - case, - ) - }) - .filter(|(name, _)| { - !self - .filter_exclude - .iter() - .any(|filter| name.contains(filter)) - }) - .filter(|(name, _)| self.filter_include.iter().all(|f| name.contains(f))) - .collect(); - tests.extend(file_tests); + Ok(suite_path) + } +} + +fn load_filtered_tests( + path: &Path, + filter_include: &[String], + filter_exclude: &[String], +) -> Result> { + let raw_tests = load_raw_tests(path)?; + + raw_tests + .into_iter() + .filter(|(name, _)| { + let name = display_test_name(name); + matches_filters(name, filter_include, filter_exclude) + }) + .map(|(name, case)| { + let name = display_test_name(&name).to_string(); + let case = serde_json::from_value(case).map_err(|error| { + test_case_load_error( + path, + EFTestError::CouldNotDeserialize { + path: path.into(), + error, + }, + ) + })?; + + Ok((name, case)) + }) + .collect() +} + +fn load_raw_tests(path: &Path) -> Result> { + let contents = fs::read_to_string(path).map_err(|error| { + test_case_load_error( + path, + EFTestError::Io { + path: path.into(), + error, + }, + ) + })?; + + serde_json::from_str(&contents).map_err(|error| { + test_case_load_error( + path, + EFTestError::CouldNotDeserialize { + path: path.into(), + error, + }, + ) + }) +} + +fn display_test_name(name: &str) -> &str { + name.split('/').next_back().unwrap_or(name) +} + +fn matches_filters(name: &str, filter_include: &[String], filter_exclude: &[String]) -> bool { + !filter_exclude.iter().any(|filter| name.contains(filter)) + && filter_include.iter().all(|filter| name.contains(filter)) +} + +fn test_case_load_error(path: &Path, source: EFTestError) -> WGError { + WGError::TestCaseLoadError { + path: path.display().to_string(), + source: Box::new(source), + } +} + +fn write_fixture(fixture: &dyn Fixture, path: &Path) -> Result<()> { + let output_path = path.join(format!("{}.json", fixture.name())); + let mut buf = Vec::new(); + let mut serializer = serde_json::Serializer::pretty(&mut buf); + erased_serde::serialize(fixture, &mut serializer).map_err(|error| { + WGError::FixtureSerializationError { + name: fixture.name().to_owned(), + source: error, } + })?; - let bws = tests - .par_iter() - .map(|(name, case)| gen_fixture(name, case)) - .collect::>>()?; + std::fs::write(&output_path, buf).map_err(|error| WGError::FixtureWriteError { + path: output_path.display().to_string(), + source: error, + }) +} - Ok(bws) +fn gen_fixture_or_skip(name: &str, case: &BlockchainTest) -> Result>> { + match gen_fixture(name, case) { + Ok(fixture) => Ok(Some(fixture)), + Err(WGError::NoTargetBlock(name)) => { + warn!("Skipping EEST test case {name}: no executed block/witness was produced"); + Ok(None) + } + Err(error) => Err(error), } } fn gen_fixture(name: &str, case: &BlockchainTest) -> Result> { - let spec: ChainSpec = case.network.into(); + let spec = case.network.to_chain_spec(); let chain_config = create_chain_config( Some(Chain::mainnet()), &spec.hardforks, @@ -178,6 +296,7 @@ fn gen_fixture(name: &str, case: &BlockchainTest) -> Result> { let (block, witness) = BlockchainTestCase::run_single_case(name, case) .map_err(|e| WGError::TestCaseExecutionError { + name: name.to_owned(), source: Box::new(e), })? .into_iter() diff --git a/crates/witness-generator/src/lib.rs b/crates/witness-generator/src/lib.rs index 573a2ac6..79fb7112 100644 --- a/crates/witness-generator/src/lib.rs +++ b/crates/witness-generator/src/lib.rs @@ -1,9 +1,12 @@ //! Library for generating stateless validation fixtures for zkEVM benchmarking. //! -//! Produces JSON fixtures containing Ethereum block data and execution witnesses from two sources: +//! Produces JSON fixtures containing Ethereum block data and execution witnesses from three +//! sources: //! //! - **EEST Generator** ([`eest_generator`]): Converts Ethereum Execution Spec Tests into fixtures //! - **RPC Generator** ([`rpc_generator`]): Fetches blocks and witnesses from live Ethereum nodes +//! - **Raw Input Generator** ([`raw_input_generator`]): Downloads pre-collected block and witness +//! JSON-RPC response files from URLs listed in `raw_input_parts.txt` //! //! Core types: [`StatelessValidationFixture`] (block + witness), [`FixtureGenerator`]. #![cfg_attr(not(test), warn(unused_crate_dependencies))] @@ -11,11 +14,13 @@ use std::{fs, path::Path}; use async_trait::async_trait; -use reth_stateless::StatelessInput; use serde::{Deserialize, Serialize}; +use stateless::StatelessInput; use thiserror::Error; +pub mod eest_downloader; pub mod eest_generator; +pub mod raw_input_generator; pub mod rpc_generator; /// Error types for witness generation operations. @@ -40,7 +45,7 @@ pub enum WGError { /// Failed to download EEST fixtures #[error("failed to download EEST benchmark fixtures: {0}")] - DownloadScriptFailed(String), + DownloadFailed(String), /// Test suite path does not exist #[error("test suite path does not exist: {0}")] @@ -61,8 +66,10 @@ pub enum WGError { NoTargetBlock(String), /// Test case execution error - #[error("test case execution error: {source}")] + #[error("test case execution error for {name}: {source}")] TestCaseExecutionError { + /// Name of the test case + name: String, /// Underlying error #[source] source: Box, @@ -98,6 +105,45 @@ pub enum WGError { #[error("unsupported chain ID: {0}")] UnsupportedChain(u64), + /// Genesis path does not exist + #[error("genesis path '{0}' does not exist")] + GenesisPathNotFound(String), + + /// Genesis path is not a file + #[error("genesis path '{0}' is not a file")] + GenesisPathNotFile(String), + + /// Failed to read a genesis file + #[error("failed to read genesis file at {path}: {source}")] + GenesisFileReadError { + /// Path to the genesis file + path: String, + /// Underlying I/O error + source: std::io::Error, + }, + + /// Failed to deserialize a genesis file + #[error("failed to deserialize genesis file at {path}: {source}")] + GenesisDeserializationError { + /// Path to the genesis file + path: String, + /// Underlying deserialization error + source: serde_json::Error, + }, + + /// RPC chain ID does not match the provided genesis file + #[error( + "genesis chain ID mismatch for '{path}': genesis={genesis_chain_id}, rpc={rpc_chain_id}" + )] + GenesisChainIdMismatch { + /// Path to the genesis file + path: String, + /// Chain ID from the genesis file + genesis_chain_id: u64, + /// Chain ID reported by the RPC endpoint + rpc_chain_id: u64, + }, + /// Live polling not supported in generate method #[error("live polling is not supported in generate method. Use generate_to_path instead.")] LivePollingNotSupported, @@ -143,6 +189,68 @@ pub enum WGError { source: http::header::InvalidHeaderValue, }, + /// Raw input path was not set in the builder + #[error("raw input path was not set")] + RawInputPathNotSet, + + /// Raw input path does not exist + #[error("raw input path '{0}' does not exist")] + RawInputPathNotFound(String), + + /// Raw input path is not a directory + #[error("raw input path '{0}' is not a directory")] + RawInputPathNotDirectory(String), + + /// Failed to read a raw input file + #[error("failed to read raw input file at {path}: {source}")] + RawInputFileReadError { + /// Path to the file + path: String, + /// Underlying I/O error + source: std::io::Error, + }, + + /// Failed to deserialize a raw input file + #[error("failed to deserialize raw input file at {path}: {source}")] + RawInputDeserializationError { + /// Path to the file + path: String, + /// Underlying deserialization error + source: serde_json::Error, + }, + + /// Failed to download a raw input file from URL + #[error("failed to download raw input file from {url}: {source}")] + RawInputUrlDownloadError { + /// The URL that failed + url: String, + /// Underlying HTTP error + #[source] + source: Box, + }, + + /// Invalid URL pair in `raw_input_parts.txt` + #[error( + "invalid URL pair at line {line}: expected eth_block.json and debug_executionWitness.json URLs" + )] + RawInputInvalidUrlPair { + /// Line number where the error occurred + line: usize, + }, + + /// Raw input generation completed with some fixture failures. + #[error( + "raw input generation completed with {ready} ready fixtures and {failed} failures:\n{details}" + )] + RawInputBatchFailed { + /// Number of fixtures that are ready on disk at the end of the run. + ready: usize, + /// Number of fixtures that failed during this run. + failed: usize, + /// Human-readable failure summary. + details: String, + }, + /// Generic error for I/O, serialization, and other operations #[error("{0}")] Other(Box), @@ -238,6 +346,15 @@ impl StatelessValidationFixture { })?; Self::from_json(&contents) } + + /// Creates a new valid fixture from stateless input and a name. + pub fn from_stateless_input(input: &StatelessInput, name: &str) -> Self { + Self { + name: name.to_string(), + stateless_input: input.clone(), + success: true, + } + } } impl Fixture for StatelessValidationFixture { diff --git a/crates/witness-generator/src/raw_input_generator.rs b/crates/witness-generator/src/raw_input_generator.rs new file mode 100644 index 00000000..99aee02e --- /dev/null +++ b/crates/witness-generator/src/raw_input_generator.rs @@ -0,0 +1,425 @@ +//! Generate fixtures from pre-collected raw stateless input files. +//! +//! Expects a shared `chain_config.json` at the root level and a `raw_input_parts.txt` +//! file listing alternating `eth_block.json` and `debug_executionWitness.json` URLs. +//! +//! # Directory structure +//! +//! ```text +//! input_folder/ +//! ├── chain_config.json +//! └── raw_input_parts.txt # alternating eth_block.json / debug_executionWitness.json URLs +//! ``` + +use crate::{Fixture, FixtureGenerator, Result, StatelessValidationFixture, WGError}; +use alloy_genesis::ChainConfig; +use alloy_rpc_types_eth::Block; +use async_trait::async_trait; +use reth_ethereum_primitives::TransactionSigned; +use serde::Deserialize; +use stateless::{ExecutionWitness, StatelessInput}; +use std::{ + path::{Path, PathBuf}, + sync::Arc, + time::Duration, +}; +use tokio::task::JoinSet; +use tracing::{info, warn}; + +/// Generic JSON-RPC response envelope for deserializing local files that contain +/// JSON-RPC formatted data (`{"jsonrpc":"2.0","id":...,"result":{...}}`). +#[derive(Debug, Deserialize)] +struct JsonRpcResponse { + /// The deserialized result payload. + result: T, +} + +/// Builder for configuring a [`RawInputFixtureGenerator`]. +#[derive(Debug, Clone, Default)] +pub struct RawInputFixtureGeneratorBuilder { + input_folder: Option, +} + +impl RawInputFixtureGeneratorBuilder { + /// Sets the input folder containing `chain_config.json` and `raw_input_parts.txt`. + /// + /// # Errors + /// + /// Returns an error if the path does not exist or is not a directory. + pub fn with_input_folder(mut self, path: PathBuf) -> Result { + if !path.exists() { + return Err(WGError::RawInputPathNotFound(path.display().to_string())); + } + if !path.is_dir() { + return Err(WGError::RawInputPathNotDirectory( + path.display().to_string(), + )); + } + self.input_folder = Some(path.canonicalize()?); + Ok(self) + } + + /// Builds the configured [`RawInputFixtureGenerator`]. + /// + /// # Errors + /// + /// Returns an error if the input folder was not set. + pub fn build(self) -> Result { + let input_folder = self.input_folder.ok_or(WGError::RawInputPathNotSet)?; + Ok(RawInputFixtureGenerator { input_folder }) + } +} + +/// Fixture generator that downloads raw stateless input files from URLs listed in +/// `raw_input_parts.txt`. +#[derive(Debug, Clone)] +pub struct RawInputFixtureGenerator { + input_folder: PathBuf, +} + +#[derive(Debug, Clone)] +struct FixtureUrlPair { + fixture_name: String, + block_url: String, + witness_url: String, +} + +#[derive(Debug)] +struct RawInputFixtureFailure { + fixture_name: String, + error: WGError, +} + +impl RawInputFixtureGenerator { + /// Reads and deserializes a JSON file, returning a descriptive error on failure. + fn read_json(path: &Path) -> Result { + let contents = + std::fs::read_to_string(path).map_err(|e| WGError::RawInputFileReadError { + path: path.display().to_string(), + source: e, + })?; + serde_json::from_str(&contents).map_err(|e| WGError::RawInputDeserializationError { + path: path.display().to_string(), + source: e, + }) + } + + fn read_chain_config(&self) -> Result { + let chain_config_path = self.input_folder.join("chain_config.json"); + Self::read_json(&chain_config_path) + } + + fn read_url_pairs(&self) -> Result> { + let parts_path = self.input_folder.join("raw_input_parts.txt"); + let contents = + std::fs::read_to_string(&parts_path).map_err(|e| WGError::RawInputFileReadError { + path: parts_path.display().to_string(), + source: e, + })?; + + let urls: Vec<&str> = contents.lines().filter(|l| !l.trim().is_empty()).collect(); + if !urls.len().is_multiple_of(2) { + return Err(WGError::RawInputInvalidUrlPair { line: urls.len() }); + } + + let mut pairs = Vec::with_capacity(urls.len() / 2); + for (i, pair) in urls.chunks(2).enumerate() { + let line = i * 2 + 1; + if !pair[0].ends_with("eth_block.json") { + return Err(WGError::RawInputInvalidUrlPair { line }); + } + if !pair[1].ends_with("debug_executionWitness.json") { + return Err(WGError::RawInputInvalidUrlPair { line: line + 1 }); + } + + pairs.push(FixtureUrlPair { + fixture_name: Self::fixture_name_from_url(pair[0]), + block_url: pair[0].to_string(), + witness_url: pair[1].to_string(), + }); + } + + Ok(pairs) + } + + /// Extracts the fixture name from a URL path. + /// + /// Given a URL like: + /// `https://host/results/runs/RUN_ID/TEST_NAME/post_test_rpc_calls/eth_block.json` + /// returns `TEST_NAME`. + fn fixture_name_from_url(url: &str) -> String { + let segments: Vec<&str> = url.trim_end_matches('/').rsplit('/').collect(); + // segments: ["eth_block.json", "post_test_rpc_calls", "TEST_NAME", ...] + if segments.len() >= 3 { + segments[2].to_string() + } else { + url.to_string() + } + } + + /// Maximum number of concurrent fixture downloads. + const DOWNLOAD_CONCURRENCY: usize = 4; + + /// Maximum number of retry attempts per download. + const MAX_RETRIES: u32 = 15; + + fn retry_delay(attempt: u32) -> Duration { + Duration::from_secs(u64::from(attempt)) + } + + /// Downloads a URL and deserializes the JSON-RPC response body, with retries. + async fn download_json( + client: &reqwest::Client, + url: &str, + ) -> Result { + let mut last_err = None; + for attempt in 1..=Self::MAX_RETRIES { + match Self::download_json_once(client, url).await { + Ok(val) => return Ok(val), + Err(e) => { + if attempt < Self::MAX_RETRIES { + let delay = Self::retry_delay(attempt); + warn!( + "Download attempt {attempt}/{} failed for {url}: {e}, retrying in {delay:?}", + Self::MAX_RETRIES + ); + tokio::time::sleep(delay).await; + } + last_err = Some(e); + } + } + } + Err(last_err.expect("at least one attempt")) + } + + async fn download_json_once( + client: &reqwest::Client, + url: &str, + ) -> Result { + let bytes = client + .get(url) + .send() + .await + .map_err(|e| WGError::RawInputUrlDownloadError { + url: url.to_string(), + source: Box::new(e), + })? + .error_for_status() + .map_err(|e| WGError::RawInputUrlDownloadError { + url: url.to_string(), + source: Box::new(e), + })? + .bytes() + .await + .map_err(|e| WGError::RawInputUrlDownloadError { + url: url.to_string(), + source: Box::new(e), + })?; + + serde_json::from_slice(&bytes).map_err(|e| WGError::RawInputDeserializationError { + path: url.to_string(), + source: e, + }) + } + + async fn download_fixture( + client: &reqwest::Client, + pair: FixtureUrlPair, + chain_config: ChainConfig, + ) -> Result { + let (block_rpc, witness_rpc) = tokio::join!( + Self::download_json::>>( + client, + &pair.block_url + ), + Self::download_json::>(client, &pair.witness_url), + ); + + let stateless_input = StatelessInput { + block: block_rpc?.result.into_consensus(), + witness: witness_rpc?.result, + chain_config, + }; + + Ok(StatelessValidationFixture { + name: pair.fixture_name, + stateless_input, + success: true, + }) + } + + fn final_output_path(fixture_name: &str, path: &Path) -> PathBuf { + path.join(format!("{fixture_name}.json")) + } + + fn partial_output_path(fixture_name: &str, path: &Path) -> PathBuf { + path.join(format!("{fixture_name}.json.part")) + } + + fn write_fixture(fixture: &StatelessValidationFixture, path: &Path) -> Result<()> { + let output_path = Self::final_output_path(&fixture.name, path); + let part_path = Self::partial_output_path(&fixture.name, path); + let buf = + serde_json::to_vec_pretty(fixture).map_err(|e| WGError::FixtureSerializationError { + name: fixture.name.clone(), + source: e, + })?; + std::fs::write(&part_path, buf).map_err(|e| WGError::FixtureWriteError { + path: part_path.display().to_string(), + source: e, + })?; + std::fs::rename(&part_path, &output_path).map_err(|e| WGError::FixtureWriteError { + path: output_path.display().to_string(), + source: e, + }) + } + + fn spawn_download_tasks( + pairs: Vec, + client: Arc, + chain_config: ChainConfig, + ) -> JoinSet> { + let total = pairs.len(); + let semaphore = Arc::new(tokio::sync::Semaphore::new(Self::DOWNLOAD_CONCURRENCY)); + let mut tasks = JoinSet::new(); + + for (i, pair) in pairs.into_iter().enumerate() { + let client = Arc::clone(&client); + let semaphore = Arc::clone(&semaphore); + let chain_config = chain_config.clone(); + + tasks.spawn(async move { + let _permit = semaphore.acquire().await.expect("semaphore closed"); + info!( + "Downloading fixture {}/{}: {}", + i + 1, + total, + pair.fixture_name + ); + Self::download_fixture(&client, pair, chain_config).await + }); + } + + tasks + } + + fn split_resume_pairs( + pairs: Vec, + output_path: &Path, + ) -> (Vec, usize) { + let mut pending = Vec::with_capacity(pairs.len()); + let mut skipped_existing = 0; + + for pair in pairs { + if Self::final_output_path(&pair.fixture_name, output_path).exists() { + skipped_existing += 1; + } else { + pending.push(pair); + } + } + + (pending, skipped_existing) + } + + fn batch_failure_error(ready: usize, failures: &[RawInputFixtureFailure]) -> WGError { + let details = failures + .iter() + .map(|failure| format!("{}: {}", failure.fixture_name, failure.error)) + .collect::>() + .join("\n"); + + WGError::RawInputBatchFailed { + ready, + failed: failures.len(), + details, + } + } +} + +#[async_trait] +impl FixtureGenerator for RawInputFixtureGenerator { + async fn generate(&self) -> Result>> { + let chain_config = self.read_chain_config()?; + let pairs = self.read_url_pairs()?; + let total = pairs.len(); + let mut tasks = + Self::spawn_download_tasks(pairs, Arc::new(reqwest::Client::new()), chain_config); + + let mut fixtures: Vec> = Vec::with_capacity(total); + while let Some(result) = tasks.join_next().await { + let fixture = result.map_err(|e| WGError::Other(Box::new(e)))??; + info!("Loaded URL fixture: {}", fixture.name); + fixtures.push(Box::new(fixture)); + } + + fixtures.sort_by(|a, b| a.name().cmp(b.name())); + info!("Downloaded {}/{total} fixtures", fixtures.len()); + Ok(fixtures) + } + + async fn generate_to_path(&self, path: &Path) -> Result { + let chain_config = self.read_chain_config()?; + let pairs = self.read_url_pairs()?; + let total = pairs.len(); + let (pending_pairs, skipped_existing) = Self::split_resume_pairs(pairs, path); + let pending = pending_pairs.len(); + info!( + "Raw input resume state: {skipped_existing}/{total} already present, {pending} pending" + ); + + let mut tasks = Self::spawn_download_tasks( + pending_pairs, + Arc::new(reqwest::Client::new()), + chain_config, + ); + + let mut written = 0; + let mut failures = Vec::new(); + while let Some(result) = tasks.join_next().await { + let fixture = result.map_err(|e| WGError::Other(Box::new(e)))?; + match fixture { + Ok(fixture) => match Self::write_fixture(&fixture, path) { + Ok(()) => { + info!("Saved raw input fixture: {}", fixture.name); + written += 1; + } + Err(error) => { + warn!( + "Failed to write raw input fixture {}: {}", + fixture.name, error + ); + failures.push(RawInputFixtureFailure { + fixture_name: fixture.name, + error, + }); + } + }, + Err(error) => { + let fixture_name = match &error { + WGError::RawInputUrlDownloadError { url, .. } + | WGError::RawInputDeserializationError { path: url, .. } => { + Self::fixture_name_from_url(url) + } + _ => "".to_string(), + }; + warn!("Failed raw input fixture {fixture_name}: {error}"); + failures.push(RawInputFixtureFailure { + fixture_name, + error, + }); + } + } + } + + let ready = skipped_existing + written; + info!( + "Raw input run complete: {ready}/{total} ready, {written} written, {skipped_existing} skipped existing, {} failed", + failures.len() + ); + if failures.is_empty() { + Ok(ready) + } else { + Err(Self::batch_failure_error(ready, &failures)) + } + } +} diff --git a/crates/witness-generator/src/rpc_generator.rs b/crates/witness-generator/src/rpc_generator.rs index 4bcf2254..054156aa 100644 --- a/crates/witness-generator/src/rpc_generator.rs +++ b/crates/witness-generator/src/rpc_generator.rs @@ -2,7 +2,7 @@ use crate::{Fixture, FixtureGenerator, Result, StatelessValidationFixture, WGError}; use alloy_eips::BlockNumberOrTag; -use alloy_genesis::ChainConfig; +use alloy_genesis::{ChainConfig, Genesis}; use alloy_rpc_types_eth::{Block, Header, Receipt, Transaction, TransactionRequest}; use async_trait::async_trait; use http::{HeaderName, HeaderValue}; @@ -13,8 +13,11 @@ use jsonrpsee::{ use reth_chainspec::{Chain, HOLESKY, HOODI, NamedChain, SEPOLIA, mainnet_chain_config}; use reth_ethereum_primitives::TransactionSigned; use reth_rpc_api::{DebugApiClient, EthApiClient}; -use reth_stateless::StatelessInput; -use std::{path::Path, str::FromStr}; +use stateless::StatelessInput; +use std::{ + path::{Path, PathBuf}, + str::FromStr, +}; use tokio_util::sync::CancellationToken; /// Builder for configuring an RPC client that fetches blocks and witnesses. @@ -25,6 +28,7 @@ pub struct RpcBlocksAndWitnessesBuilder { last_n_blocks: Option, block: Option, stop: Option, + genesis: Option, } impl RpcBlocksAndWitnessesBuilder { @@ -48,6 +52,15 @@ impl RpcBlocksAndWitnessesBuilder { self } + /// Sets the path to a geth-style `genesis.json` file used to derive the chain config. + /// + /// # Arguments + /// * `path` - Path to the genesis file + pub fn with_genesis(mut self, path: PathBuf) -> Self { + self.genesis = Some(path); + self + } + /// Sets the number of last blocks to fetch. /// /// # Arguments @@ -75,6 +88,40 @@ impl RpcBlocksAndWitnessesBuilder { self } + fn load_chain_config_from_genesis(path: &Path) -> Result { + if !path.exists() { + return Err(WGError::GenesisPathNotFound(path.display().to_string())); + } + if !path.is_file() { + return Err(WGError::GenesisPathNotFile(path.display().to_string())); + } + + let contents = + std::fs::read_to_string(path).map_err(|e| WGError::GenesisFileReadError { + path: path.display().to_string(), + source: e, + })?; + let genesis: Genesis = + serde_json::from_str(&contents).map_err(|e| WGError::GenesisDeserializationError { + path: path.display().to_string(), + source: e, + })?; + + Ok(genesis.config) + } + + fn chain_config_from_chain_id(chain_id: u64) -> Result { + let chain = Chain::from_id(chain_id); + + match chain.named() { + Some(NamedChain::Mainnet) => Ok(mainnet_chain_config()), + Some(NamedChain::Sepolia) => Ok(SEPOLIA.genesis.config.clone()), + Some(NamedChain::Hoodi) => Ok(HOODI.genesis.config.clone()), + Some(NamedChain::Holesky) => Ok(HOLESKY.genesis.config.clone()), + _ => Err(WGError::UnsupportedChain(chain_id)), + } + } + /// Builds the configured `RpcBlocksAndWitnesses`. pub async fn build(self) -> Result { let client = HttpClientBuilder::default() @@ -88,16 +135,20 @@ impl RpcBlocksAndWitnessesBuilder { .map_err(|e| WGError::RpcError(e.to_string()))? .ok_or(WGError::ChainIdFetchError)?; - let chain = Chain::from_id(chain_id.to()); + let rpc_chain_id: u64 = chain_id.to(); - let chain_config = match chain.named() { - Some(NamedChain::Mainnet) => mainnet_chain_config(), - Some(NamedChain::Sepolia) => SEPOLIA.genesis.config.clone(), - Some(NamedChain::Hoodi) => HOODI.genesis.config.clone(), - Some(NamedChain::Holesky) => HOLESKY.genesis.config.clone(), - _ => { - return Err(WGError::UnsupportedChain(chain_id.to())); + let chain_config = if let Some(genesis_path) = self.genesis.as_deref() { + let chain_config = Self::load_chain_config_from_genesis(genesis_path)?; + if chain_config.chain_id != rpc_chain_id { + return Err(WGError::GenesisChainIdMismatch { + path: genesis_path.display().to_string(), + genesis_chain_id: chain_config.chain_id, + rpc_chain_id, + }); } + chain_config + } else { + Self::chain_config_from_chain_id(rpc_chain_id)? }; Ok(RpcFixtureGenerator { @@ -222,6 +273,7 @@ impl RpcFixtureGenerator { let witness = DebugApiClient::<()>::debug_execution_witness_by_block_hash( &self.client, block_hash, + None, ) .await .map_err(|e| WGError::RpcError(e.to_string()))?; @@ -254,6 +306,7 @@ impl RpcFixtureGenerator { let witness = DebugApiClient::<()>::debug_execution_witness( &self.client, BlockNumberOrTag::Number(block_num), + None, ) .await .map_err(|e| WGError::RpcError(e.to_string()))?; @@ -507,6 +560,7 @@ mod test { } #[tokio::test] + #[ignore = "requires external RPC service (set RPC_URL)"] async fn test_last_n_blocks() { if std::env::var("RPC_URL").is_err() { eprintln!("skipping test: set RPC_URL to run this test"); @@ -545,6 +599,7 @@ mod test { } #[tokio::test] + #[ignore = "requires external RPC service (set RPC_URL)"] async fn test_concrete_block_num() { if std::env::var("RPC_URL").is_err() { eprintln!("skipping test: set RPC_URL to run this test"); @@ -609,6 +664,7 @@ mod test { } #[tokio::test] + #[ignore = "requires external RPC service (set RPC_URL)"] async fn test_live_blocks() { if std::env::var("RPC_URL").is_err() { eprintln!("skipping test: set RPC_URL to run this test"); diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..fe578f79 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,18 @@ +# Documentation Map + +## Fast Path + +- To understand the full benchmark flow, read [Benchmark Execution](benchmark-execution.md). +- To understand exactly what JSON `ere-hosts` accepts, read [Benchmark Execution Inputs](benchmark-execution-inputs.md). +- To understand exactly what files and JSON `ere-hosts` writes, read [Benchmark Execution Output](benchmark-execution-output.md). +- To understand how legacy generated fixtures are produced, read [Fixture Generation](fixture-generation.md). + +## Guides + +- [Fixture Generation](fixture-generation.md): when to use `witness-generator-cli`, direct EEST fixtures, RPC fixtures, and raw-input fixtures. +- [Benchmark Execution](benchmark-execution.md): common `ere-hosts` commands, action model, proof verification, and operational notes. +- [Benchmark Execution Inputs](benchmark-execution-inputs.md): input discovery, fixture filtering, legacy generated fixture schema, and direct EEST `blockchain_tests` schema. +- [Benchmark Execution Output](benchmark-execution-output.md): metrics directory layout, `BenchmarkRun` JSON, hardware metadata, proof handling, and input dumps. +- [Witness Generator CLI](witness-generator-cli.md): Docker usage and binary-local notes for `witness-generator-cli`. + +The `zkevm-metrics` crate API documentation lives in [`crates/metrics/README.md`](../crates/metrics/README.md). The CLI metrics files written by `ere-hosts` are documented in [Benchmark Execution Output](benchmark-execution-output.md). diff --git a/docs/benchmark-execution-inputs.md b/docs/benchmark-execution-inputs.md new file mode 100644 index 00000000..4232c43a --- /dev/null +++ b/docs/benchmark-execution-inputs.md @@ -0,0 +1,118 @@ +# Benchmark Execution Inputs + +This is the detailed input reference for `ere-hosts`, especially the `stateless-validator` guest program. + +For the operator workflow and common commands, see [Benchmark Execution](benchmark-execution.md). For generated fixture workflows, see [Fixture Generation](fixture-generation.md). + +## Input Discovery + +Default input location: + +```text +zkevm-fixtures-input/ +``` + +Override it with `stateless-validator --input-folder `. + +`ere-hosts` accepts either: + +- A directory containing fixture JSON files. +- A single `.json` fixture file. + +When the input is a directory, `ere-hosts` recursively loads `.json` files and skips any file under a `.meta/` directory. + +When the input folder contains an EEST `blockchain_tests/` subdirectory, only that subtree is used for `stateless-validator` inputs. EEST bundles that only contain `blockchain_tests_engine/`, `blockchain_tests_engine_x/`, or `blockchain_tests_sync/` are rejected because those fixture formats do not contain the canonical stateless validator bytes. + +`empty-program` does not use fixture files. + +## Fixture Selection + +`--fixture ` filters selected fixtures by fixture-name prefix: + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 \ + stateless-validator --execution-client reth \ + --fixture test_sha256.py::test_sha256 \ + --fixture test_memory.py::test_mcopy +``` + +For direct EEST fixtures, the prefix may match either the sanitized generated fixture name or the original EEST test name. + +## Accepted Fixture Formats + +`stateless-validator` accepts two fixture JSON formats: + +- Legacy generated fixtures with a top-level `stateless_input` field. +- Direct EEST `blockchain_tests` fixtures whose executable blocks contain `statelessInputBytes` and `statelessOutputBytes`. + +Use direct EEST inputs when you already have `blockchain_tests` files with canonical stateless bytes. Use legacy generated fixtures when generating from RPC, generating from raw inputs, or intentionally exercising the selected execution client's legacy host conversion path. + +## Legacy Generated Fixtures + +Legacy generated fixtures are the repo-native files produced by `witness-generator-cli` from RPC, raw-input, or legacy EEST generation. `ere-hosts` detects this format by the presence of a top-level `stateless_input` field. Each file contains one fixture object. + +```json +{ + "name": "rpc_block_23743854", + "stateless_input": { + "block": { + "...": "Ethereum block data" + }, + "witness": { + "...": "execution witness data" + }, + "chain_config": { + "...": "chain configuration" + } + }, + "success": true +} +``` + +Fields: + +- `name`: Fixture name. This becomes the metrics file name stem. +- `stateless_input`: A serialized `stateless::StatelessInput` containing `block`, `witness`, and `chain_config`. +- `success`: Whether the fixture represents a valid block validation. + +Generated repo fixtures are converted into the selected execution client's guest input format before execution. The expected public values are computed with the selected guest host code. Metrics metadata for these fixtures is `{"block_used_gas": }`. + +## Direct EEST Blockchain Tests Fixtures + +Direct EEST inputs must be `blockchain_tests` fixtures whose executable blocks contain canonical stateless validator input and output bytes. + +```json +{ + "tests/foo.py::test_case[param]": { + "network": "Amsterdam", + "config": { + "chainid": "0x01" + }, + "blocks": [ + { + "statelessInputBytes": "0x000102", + "statelessOutputBytes": "0xaabb", + "blockHeader": { + "number": "0x01", + "gasUsed": "0x10" + } + } + ] + } +} +``` + +Rules: + +- The file is a JSON object keyed by original EEST test name. +- Each test case must include `network`, `config.chainid`, and `blocks`. +- Additional EEST fields may be present and are ignored by `ere-hosts`. +- `config.chainid`, `blockHeader.number`, `blocknumber`, and `blockHeader.gasUsed` may be decimal strings or `0x`-prefixed hex strings. +- A block without `statelessInputBytes` is skipped. +- A block with empty `statelessInputBytes` is skipped. +- A block with non-empty `statelessInputBytes` must also have `statelessOutputBytes`. +- `statelessInputBytes` and `statelessOutputBytes` are hex strings with or without `0x`; after removing the prefix they must contain an even number of hex digits. + +Each accepted EEST block becomes one benchmark fixture. `ere-hosts` sends `statelessInputBytes` directly to the selected guest program without EL-specific host conversion. The expected public values are the SHA-256 digest of `statelessOutputBytes`, matching the current stateless validator guest binaries. + +The generated fixture name is derived from the original test name, source path, and block index. Output metadata preserves those original EEST fields; see [Benchmark Execution Output](benchmark-execution-output.md#metadata-by-workload). diff --git a/docs/benchmark-execution-output.md b/docs/benchmark-execution-output.md new file mode 100644 index 00000000..01e33911 --- /dev/null +++ b/docs/benchmark-execution-output.md @@ -0,0 +1,215 @@ +# Benchmark Execution Output + +This is the detailed output reference for `ere-hosts`: metrics files, hardware metadata, proof files, serialized input dumps, and workload metadata. + +For accepted input schemas, see [Benchmark Execution Inputs](benchmark-execution-inputs.md). For common execution commands, see [Benchmark Execution](benchmark-execution.md). + +## Output Destinations + +Default output locations: + +- Metrics output folder: `zkevm-metrics/` +- Verification proof folder: `zkevm-fixtures-proofs/` +- Zisk profile output folder: `zisk-profiles/` + +Proofs are only saved when `--save-proofs ` is provided with `--action prove`. + +Serialized guest inputs are only saved when `--dump-inputs ` is provided. These dumps are zkVM-independent, so each fixture input is written once even if multiple zkVMs are selected. + +## Metrics Layout + +Completed execution and proving runs are still written as successful metrics even when public values do not match the fixture expectation. In that case the runner logs a warning and writes `output_matched: false` inside `execution.success` or `proving.success`. zkVM errors, proof verification errors, expected-output computation errors, and panics are still recorded as crashed or returned as fatal infrastructure errors as before. + +For `stateless-validator` runs, metrics are written under: + +```text +zkevm-metrics/ + hardware.json + -/ + -/ + .json +``` + +For `empty-program`, there is no execution-client subfolder: + +```text +zkevm-metrics/ + hardware.json + -/ + empty_program.json +``` + +Each fixture metrics file is a single pretty-printed `BenchmarkRun` JSON object. The `zkevm-metrics` library helper `BenchmarkRun::to_json` serializes a list of runs, but the CLI output files under `zkevm-metrics/` contain one object per file. + +## Hardware JSON + +`hardware.json` contains detected host hardware: + +```json +{ + "cpu_model": "AMD Ryzen 7 PRO 7840U w/ Radeon 780M Graphics", + "total_ram_gib": 30, + "gpus": [ + { + "model": "NVIDIA ..." + } + ] +} +``` + +GPU information is detected through `nvidia-smi` when available. + +## BenchmarkRun JSON + +A successful execution metrics file has this shape: + +```json +{ + "name": "rpc_block_23743854", + "timestamp_completed": "2026-05-25T12:34:56.789Z", + "metadata": { + "block_used_gas": 27085079 + }, + "execution": { + "success": { + "output_matched": true, + "total_num_cycles": 1048737679, + "region_cycles": { + "setup": 1000 + }, + "execution_duration": { + "secs": 12, + "nanos": 327837000 + } + } + } +} +``` + +Optional top-level fields are omitted when they are not populated: + +- `execution` is present for `--action execute`. +- `proving` is present for `--action prove`. +- `verification` is present for `--action verify`. + +Success variants: + +```json +{ + "execution": { + "success": { + "output_matched": true, + "total_num_cycles": 123, + "region_cycles": {}, + "execution_duration": { + "secs": 0, + "nanos": 1000000 + } + } + } +} +``` + +```json +{ + "proving": { + "success": { + "output_matched": true, + "proof_size": 256, + "proving_time_ms": 2000, + "verification_time_ms": 200 + } + } +} +``` + +```json +{ + "verification": { + "success": { + "proof_size": 256, + "verification_time_ms": 200 + } + } +} +``` + +Crash variants use the same enum wrapper with `crashed`: + +```json +{ + "execution": { + "crashed": { + "reason": "error or panic message" + } + } +} +``` + +## Metadata By Workload + +The `metadata` field is workload-specific: + +- Legacy stateless-validator fixtures write `{"block_used_gas": }`. +- Direct EEST stateless-validator fixtures write EEST provenance and block metadata. +- `empty-program` and standalone verification metrics write `null`. + +Direct EEST metadata has this shape: + +```json +{ + "fixture_format": "eest", + "original_test_name": "tests/foo.py::test_case[param]", + "source_path": "blockchain_tests/for_amsterdam/compute/mcopy.json", + "block_index": 0, + "network": "Amsterdam", + "chain_id": 1, + "block_number": 1, + "block_used_gas": 16 +} +``` + +`block_number` and `block_used_gas` are `null` when the source fixture does not provide those values. + +## Proofs And Verification + +Generate and save proofs: + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 \ + --action prove \ + --save-proofs my-proofs \ + stateless-validator --execution-client reth +``` + +Verify proofs from a local folder: + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 \ + --action verify \ + --proofs-folder my-proofs \ + stateless-validator --execution-client reth +``` + +Verify proofs from a remote archive: + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 \ + --action verify \ + --proofs-url https://example.com/proofs.tar.gz \ + stateless-validator --execution-client reth +``` + +When `--proofs-url` is used, the archive is downloaded, extracted to a temporary directory, and cleaned up after verification. + +## Input Dumps + +Dump the raw serialized guest inputs used for a run: + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 \ + --dump-inputs debug-inputs \ + stateless-validator --execution-client reth +``` + +Use these dumps to inspect exactly what bytes were passed to the guest program after fixture loading and any host-side conversion. diff --git a/docs/benchmark-execution.md b/docs/benchmark-execution.md new file mode 100644 index 00000000..f1d959a9 --- /dev/null +++ b/docs/benchmark-execution.md @@ -0,0 +1,160 @@ +# Benchmark Execution + +This is the source-of-truth workflow guide for `ere-hosts`. + +## Overview + +`ere-hosts` consumes fixtures, resolves guest binaries, runs benchmarks across selected zkVMs, and optionally persists or verifies proofs. + +Inspect the current CLI surface from the repo root: + +```bash +cargo run -p ere-hosts -- --help +``` + +Prerequisites: + +- Docker is required because zkVM hosts are managed through `ere-dockerized`. +- Fixture JSON files are expected in `zkevm-fixtures-input/` unless `--input-folder` is provided. +- `stateless-validator` accepts both generated repo fixtures and EEST `blockchain_tests` fixtures that contain `statelessInputBytes` and `statelessOutputBytes`. + +## Common Benchmark Commands + +Run the stateless validator with Reth: + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 \ + stateless-validator --execution-client reth +``` + +Run the stateless validator with Ethrex: + +```bash +cargo run -p ere-hosts --release -- --zkvms risc0 \ + stateless-validator --execution-client ethrex +``` + +Run the empty program: + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 empty-program +``` + +Use a custom fixture folder: + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 \ + stateless-validator --execution-client reth \ + --input-folder my-fixtures +``` + +Run directly from an EEST fixture checkout: + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 \ + stateless-validator --execution-client reth \ + --input-folder /data/code-data/execution-specs/fixtures +``` + +When an input folder contains an EEST `blockchain_tests/` subdirectory, only that +subtree is used for stateless-validator inputs. + +Filter the selected fixtures by prefix: + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 \ + stateless-validator --execution-client reth \ + --fixture test_sha256.py::test_sha256 \ + --fixture test_memory.py::test_mcopy +``` + +## Action Model + +`ere-hosts` supports three actions: + +- `--action execute`: execute the guest only. This is the default. +- `--action prove`: execute and generate a proof. +- `--action verify`: verify proofs loaded from disk or downloaded from a `.tar.gz` archive. + +Timeouts are action-scoped: + +- Default execute timeout: `5m` +- Default prove timeout: `15m` +- Default verify timeout: `2s` + +Override the timeout for the selected action only: + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 \ + --timeout 90s \ + empty-program +``` + +## Inputs And Outputs + +- Fixture input folder default: `zkevm-fixtures-input/` +- Metrics output folder default: `zkevm-metrics/` +- Verification proof folder default: `zkevm-fixtures-proofs/` +- Zisk profile output folder default: `zisk-profiles/` + +Use the focused references when you need exact schemas or file layouts: + +- [Benchmark Execution Inputs](benchmark-execution-inputs.md) describes input discovery, fixture filtering, and the two accepted `stateless-validator` JSON formats. +- [Benchmark Execution Output](benchmark-execution-output.md) describes metrics JSON, `hardware.json`, proof files, input dumps, and workload metadata. + +Dump the raw serialized guest inputs used for a run: + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 \ + --dump-inputs debug-inputs \ + stateless-validator --execution-client reth +``` + +These input dumps are zkVM-independent, so each fixture input is written once even if multiple zkVMs are selected. + +## Proof Persistence And Verification + +Generate and save proofs: + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 \ + --action prove \ + --save-proofs my-proofs \ + stateless-validator --execution-client reth +``` + +Verify proofs from a local folder: + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 \ + --action verify \ + --proofs-folder my-proofs \ + stateless-validator --execution-client reth +``` + +Verify proofs from a remote archive: + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 \ + --action verify \ + --proofs-url https://example.com/proofs.tar.gz \ + stateless-validator --execution-client reth +``` + +When `--proofs-url` is used, the archive is downloaded, extracted to a temporary directory, and cleaned up after verification. + +## Operational Notes + +- Guest binaries are downloaded automatically unless `--bin-path` is set. Tagged `ere-guests` dependencies use release assets for that tag; commit or branch dependencies use GitHub Actions artifacts for the resolved commit and require `GITHUB_TOKEN` or `GH_TOKEN`. +- Use `--force-rerun` to ignore existing output and rerun a workload. +- `--resource gpu` selects GPU proving resources where supported. +- `--zisk-profile` only works with `--zkvms zisk` and `--action execute`. + +## Common Failure Modes + +- `cargo run` from the repo root must include `-p ere-hosts`; the workspace has multiple binaries. +- Docker availability issues will block benchmark execution. +- `--save-proofs` is only valid with `--action prove`. +- `--proofs-url` is only valid with `--action verify`. +- Direct EEST fixture runs may produce normal benchmark crash reports until the selected EL guest binary can decode canonical EEST stateless input bytes. +- Local offline failures may come from guest downloads, RPC access, or proof archive downloads rather than from a compile regression. diff --git a/docs/fixture-generation.md b/docs/fixture-generation.md new file mode 100644 index 00000000..0b81f737 --- /dev/null +++ b/docs/fixture-generation.md @@ -0,0 +1,148 @@ +# Fixture Generation + +This guide explains when fixture generation is needed and how to produce fixtures for `ere-hosts`. For Docker usage and binary-local behavior, see [Witness Generator CLI notes](witness-generator-cli.md). + +## Overview + +`ere-hosts stateless-validator` accepts two fixture formats: + +- **Direct EEST `blockchain_tests` fixtures**: EEST JSON files whose executable blocks include `statelessInputBytes` and `statelessOutputBytes`. +- **Legacy generated fixtures**: repo-native JSON files with a top-level `stateless_input` field. + +If you already have EEST `blockchain_tests` fixtures with stateless bytes, you usually do not need to run `witness-generator-cli`. Point `ere-hosts` at the EEST fixture checkout or archive root with `--input-folder`. + +Use `witness-generator-cli` when you need legacy generated fixtures: + +- You want fixtures from live RPC blocks. +- You have pre-collected raw JSON-RPC inputs. +- You want to convert EEST cases into the legacy generated fixture shape. +- You need `ere-hosts` to run the selected execution client's legacy host conversion path instead of passing EEST stateless bytes directly to the guest. + +For the exact schemas accepted by `ere-hosts`, see [Benchmark Execution Inputs](benchmark-execution-inputs.md). + +## Direct EEST Fixtures + +Direct EEST fixtures are consumed as input, not generated by this repository. Prefer this path when the EEST `blockchain_tests` files already include canonical stateless input and output bytes. + +```bash +cargo run -p ere-hosts --release -- --zkvms sp1 \ + stateless-validator --execution-client reth \ + --input-folder /path/to/execution-specs/fixtures +``` + +When the input folder contains a `blockchain_tests/` subdirectory, `ere-hosts` uses only that subtree for stateless-validator inputs. + +## Legacy Generated Fixtures + +`witness-generator-cli` writes legacy generated fixtures as JSON files. By default it writes them to `zkevm-fixtures-input/`; override that with `-o, --output-folder `. + +Inspect the current CLI surface from the repo root: + +```bash +cargo run -p witness-generator-cli -- --help +``` + +### From EEST + +Use `witness-generator-cli tests` only when you need to convert EEST cases into the legacy generated fixture shape. + +```bash +cargo run -p witness-generator-cli --release -- tests --include 10M --include Prague +``` + +Use a specific benchmark release tag: + +```bash +cargo run -p witness-generator-cli --release -- tests --tag tests-benchmark@v0.0.9 +``` + +Use a local EEST fixture directory instead of downloading a release: + +```bash +cargo run -p witness-generator-cli --release -- tests \ + --eest-fixtures-path /path/to/local/eest/fixtures \ + --include Prague +``` + +Notes: + +- `--tag` and `--eest-fixtures-path` are mutually exclusive. +- `--include` and `--exclude` may be repeated to narrow the generated set. +- EEST generation runs matching tests in parallel. Lower `RAYON_NUM_THREADS` if fixture generation is memory constrained. +- EEST cases that fail before producing an executable block witness are logged and skipped. The generated count reflects fixtures written to disk. + +### From RPC + +Generate fixtures from the latest N blocks: + +```bash +cargo run -p witness-generator-cli --release -- rpc \ + --last-n-blocks 2 \ + --rpc-url +``` + +Generate a specific block: + +```bash +cargo run -p witness-generator-cli --release -- rpc \ + --block 20000000 \ + --rpc-url +``` + +Follow finalized blocks continuously: + +```bash +cargo run -p witness-generator-cli --release -- rpc \ + --follow \ + --rpc-url +``` + +Use custom headers: + +```bash +cargo run -p witness-generator-cli --release -- rpc \ + --last-n-blocks 2 \ + --rpc-url \ + --rpc-header "Authorization:Bearer " \ + --rpc-header "X-Trace-Id:bench-run-01" +``` + +Use a custom or devnet genesis file when the RPC chain ID is not baked into the Reth chain config set: + +```bash +cargo run -p witness-generator-cli --release -- rpc \ + --last-n-blocks 2 \ + --rpc-url \ + --genesis /path/to/genesis.json +``` + +Notes: + +- `--last-n-blocks`, `--block`, and `--follow` are mutually exclusive. +- `--rpc-header` values must use `key:value` or `key: value`. +- `--genesis` expects a geth-style `genesis.json` and the CLI will fail fast if `eth_chainId` does not match `genesis.config.chainId`. + +### From Raw Inputs + +Generate fixtures from a folder containing `chain_config.json` and `raw_input_parts.txt`: + +```bash +cargo run -p witness-generator-cli --release -- raw-input \ + --input-folder /path/to/raw-inputs +``` + +Each raw-input pair should resolve to `eth_block.json` and `debug_executionWitness.json`. + +## Output Behavior + +- Legacy generated fixtures are JSON files written to `zkevm-fixtures-input/` unless `--output-folder` is set. +- The CLI creates the output directory if it does not already exist. +- The generated fixture set can be reused across multiple benchmark runs. + +## Common Failure Modes + +- `cargo run` from the repo root must include `-p witness-generator-cli`; the workspace has multiple binaries. +- `--last-n-blocks 0` is rejected. +- Unsupported RPC chain IDs require `--genesis`. +- Header formatting errors must be fixed to `key:value`. +- RPC, GitHub, or EEST download failures may be environmental rather than code regressions. diff --git a/docs/witness-generator-cli.md b/docs/witness-generator-cli.md new file mode 100644 index 00000000..4badbb6b --- /dev/null +++ b/docs/witness-generator-cli.md @@ -0,0 +1,101 @@ +# Witness Generator CLI + +Use [Fixture Generation](fixture-generation.md) for the primary operator workflow, and use this page for Docker usage and binary-local behavior. + +## Overview + +`witness-generator-cli` is the standalone binary for generating JSON fixtures consumed by `ere-hosts`. + +It supports three data sources: + +- **EEST**: generate fixtures from execution-spec benchmark fixture releases or a local EEST directory. +- **RPC**: generate fixtures from live RPC blocks and execution witnesses. +- **Raw Input**: generate fixtures from pre-collected JSON-RPC response files listed in `raw_input_parts.txt`. + +For the exact JSON fixture formats accepted by `ere-hosts`, see [Benchmark Execution Inputs](benchmark-execution-inputs.md). + +The current CLI surface is defined by `clap`; inspect it from the workspace root with: + +```bash +cargo run -p witness-generator-cli -- --help +``` + +## Running From The Workspace Root + +Common examples: + +```bash +# Generate fixtures from execution-spec benchmark fixtures +cargo run -p witness-generator-cli --release -- tests --include Prague + +# Generate fixtures from a specific EEST benchmark tag +cargo run -p witness-generator-cli --release -- tests --tag tests-benchmark@v0.0.9 + +# Generate fixtures from a local EEST folder +cargo run -p witness-generator-cli --release -- tests \ + --eest-fixtures-path /path/to/local/eest/fixtures + +# Generate fixtures from the last 5 RPC blocks +cargo run -p witness-generator-cli --release -- rpc \ + --last-n-blocks 5 \ + --rpc-url + +# Listen for finalized blocks continuously +cargo run -p witness-generator-cli --release -- rpc \ + --follow \ + --rpc-url + +# Generate fixtures from pre-collected raw inputs +cargo run -p witness-generator-cli --release -- raw-input \ + --input-folder /path/to/raw/inputs + +# Write fixtures to a custom folder +cargo run -p witness-generator-cli --release -- \ + --output-folder my-fixtures \ + tests --include Prague +``` + +## Docker Usage + +Build the image from the workspace root: + +```bash +docker build -f crates/witness-generator-cli/Dockerfile -t witness-generator-cli . +``` + +Run it with an explicit output folder mounted from the host: + +```bash +docker run --rm -v "$(pwd)/output:/app/output" witness-generator-cli \ + --output-folder /app/output \ + tests --include Prague +``` + +The Docker build context must be the repository root because the Dockerfile copies the full workspace. + +## Source-Specific Notes + +### EEST + +- `--tag` and `--eest-fixtures-path` are mutually exclusive. +- `--include` and `--exclude` may be repeated to narrow the selected cases. + +### RPC + +- `--last-n-blocks`, `--block`, and `--follow` are mutually exclusive. +- `--rpc-header` values must use `key:value` or `key: value`. +- `--genesis ` loads a geth-style `genesis.json` for custom or devnet chain configs. +- The CLI validates `eth_chainId` against `genesis.config.chainId` when `--genesis` is used. + +### Raw Input + +- `--input-folder` must contain `chain_config.json` and `raw_input_parts.txt`. +- Each raw-input pair should resolve to `eth_block.json` and `debug_executionWitness.json`. + +## Library Integration + +For programmatic use, prefer the `witness-generator` library directly instead of this CLI wrapper. + +## License + +This crate inherits its license from the workspace. See the root `Cargo.toml` or `LICENSE` files. diff --git a/ere-guests/.gitignore b/ere-guests/.gitignore deleted file mode 100644 index 46d83c9a..00000000 --- a/ere-guests/.gitignore +++ /dev/null @@ -1 +0,0 @@ -**/pico/elf/ \ No newline at end of file diff --git a/ere-guests/Cargo.lock b/ere-guests/Cargo.lock deleted file mode 100644 index 37be923b..00000000 --- a/ere-guests/Cargo.lock +++ /dev/null @@ -1,8558 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addchain" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" -dependencies = [ - "num-bigint 0.3.3", - "num-integer", - "num-traits", -] - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" - -[[package]] -name = "ahash" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy", -] - -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - -[[package]] -name = "alloy-chains" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8ff73a143281cb77c32006b04af9c047a6b8fe5860e85a88ad325328965355" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "num_enum 0.7.4", - "serde", - "strum 0.27.2", -] - -[[package]] -name = "alloy-consensus" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6440213a22df93a87ed512d2f668e7dc1d62a05642d107f82d61edc9e12370" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "alloy-trie 0.9.1", - "alloy-tx-macros", - "auto_impl", - "borsh", - "c-kzg", - "derive_more 2.0.1", - "either", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "once_cell", - "rand 0.8.5", - "secp256k1 0.30.0", - "serde", - "serde_json", - "serde_with", - "thiserror 2.0.16", -] - -[[package]] -name = "alloy-consensus-any" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d0bea09287942405c4f9d2a4f22d1e07611c2dbd9d5bf94b75366340f9e6e0" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "serde", -] - -[[package]] -name = "alloy-eip2124" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "crc", - "serde", - "thiserror 2.0.16", -] - -[[package]] -name = "alloy-eip2930" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "borsh", - "serde", -] - -[[package]] -name = "alloy-eip7702" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "borsh", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", - "serde_with", - "thiserror 2.0.16", -] - -[[package]] -name = "alloy-eips" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd2c7ae05abcab4483ce821f12f285e01c0b33804e6883dd9ca1569a87ee2be" -dependencies = [ - "alloy-eip2124", - "alloy-eip2930", - "alloy-eip7702", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "auto_impl", - "borsh", - "c-kzg", - "derive_more 2.0.1", - "either", - "serde", - "serde_with", - "sha2", - "thiserror 2.0.16", -] - -[[package]] -name = "alloy-evm" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01be36ba6f5e6e62563b369e03ca529eac46aea50677f84655084b4750816574" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-hardforks", - "alloy-primitives", - "alloy-sol-types", - "auto_impl", - "derive_more 2.0.1", - "revm 33.1.0", - "thiserror 2.0.16", -] - -[[package]] -name = "alloy-genesis" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc47eaae86488b07ea8e20236184944072a78784a1f4993f8ec17b3aa5d08c21" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-serde", - "alloy-trie 0.9.1", - "borsh", - "serde", - "serde_with", -] - -[[package]] -name = "alloy-hardforks" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d9a33550fc21fd77a3f8b63e99969d17660eec8dcc50a95a80f7c9964f7680b" -dependencies = [ - "alloy-chains", - "alloy-eip2124", - "alloy-primitives", - "auto_impl", - "dyn-clone", -] - -[[package]] -name = "alloy-network-primitives" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7805124ad69e57bbae7731c9c344571700b2a18d351bda9e0eba521c991d1bcb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-serde", - "serde", -] - -[[package]] -name = "alloy-primitives" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "355bf68a433e0fd7f7d33d5a9fc2583fde70bf5c530f63b80845f8da5505cf28" -dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if", - "const-hex", - "derive_more 2.0.1", - "foldhash 0.2.0", - "hashbrown 0.16.0", - "indexmap 2.11.1", - "itoa", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "keccak-asm", - "paste", - "proptest", - "rand 0.9.2", - "ruint", - "rustc-hash", - "serde", - "sha3", - "tiny-keccak", -] - -[[package]] -name = "alloy-rlp" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f70d83b765fdc080dbcd4f4db70d8d23fe4761f2f02ebfa9146b833900634b4" -dependencies = [ - "alloy-rlp-derive", - "arrayvec", - "bytes", -] - -[[package]] -name = "alloy-rlp-derive" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "alloy-rpc-types-debug" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b2ca3a434a6d49910a7e8e51797eb25db42ef8a5578c52d877fcb26d0afe7bc" -dependencies = [ - "alloy-primitives", - "derive_more 2.0.1", - "serde", - "serde_with", -] - -[[package]] -name = "alloy-rpc-types-engine" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4c53a8b0905d931e7921774a1830609713bd3e8222347963172b03a3ecc68" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "derive_more 2.0.1", - "strum 0.27.2", -] - -[[package]] -name = "alloy-rpc-types-eth" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed5fafb741c19b3cca4cdd04fa215c89413491f9695a3e928dee2ae5657f607e" -dependencies = [ - "alloy-consensus", - "alloy-consensus-any", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "alloy-sol-types", - "itertools 0.14.0", - "serde", - "serde_json", - "serde_with", - "thiserror 2.0.16", -] - -[[package]] -name = "alloy-serde" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6f180c399ca7c1e2fe17ea58343910cad0090878a696ff5a50241aee12fc529" -dependencies = [ - "alloy-primitives", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-sol-macro" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ce480400051b5217f19d6e9a82d9010cdde20f1ae9c00d53591e4a1afbb312" -dependencies = [ - "alloy-sol-macro-expander", - "alloy-sol-macro-input", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "alloy-sol-macro-expander" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d792e205ed3b72f795a8044c52877d2e6b6e9b1d13f431478121d8d4eaa9028" -dependencies = [ - "alloy-sol-macro-input", - "const-hex", - "heck", - "indexmap 2.11.1", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.106", - "syn-solidity", - "tiny-keccak", -] - -[[package]] -name = "alloy-sol-macro-input" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd1247a8f90b465ef3f1207627547ec16940c35597875cdc09c49d58b19693c" -dependencies = [ - "const-hex", - "dunce", - "heck", - "macro-string", - "proc-macro2", - "quote", - "syn 2.0.106", - "syn-solidity", -] - -[[package]] -name = "alloy-sol-types" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70319350969a3af119da6fb3e9bddb1bce66c9ea933600cb297c8b1850ad2a3c" -dependencies = [ - "alloy-primitives", - "alloy-sol-macro", -] - -[[package]] -name = "alloy-trie" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "983d99aa81f586cef9dae38443245e585840fcf0fc58b09aee0b1f27aed1d500" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "arrayvec", - "derive_more 2.0.1", - "nybbles 0.3.4", - "smallvec", - "tracing", -] - -[[package]] -name = "alloy-trie" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3412d52bb97c6c6cc27ccc28d4e6e8cf605469101193b50b0bd5813b1f990b5" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "arrayvec", - "derive_more 2.0.1", - "nybbles 0.4.4", - "serde", - "smallvec", - "tracing", -] - -[[package]] -name = "alloy-tx-macros" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae109e33814b49fc0a62f2528993aa8a2dd346c26959b151f05441dc0b9da292" -dependencies = [ - "darling 0.21.3", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi", -] - -[[package]] -name = "anstream" -version = "0.6.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" - -[[package]] -name = "anstyle-parse" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" -dependencies = [ - "windows-sys 0.60.2", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys 0.60.2", -] - -[[package]] -name = "anyhow" -version = "1.0.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" - -[[package]] -name = "ark-bls12-381" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df4dcc01ff89867cd86b0da835f23c3f02738353aaee7dde7495af71363b8d5" -dependencies = [ - "ark-ec", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "ark-std 0.5.0", -] - -[[package]] -name = "ark-bn254" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" -dependencies = [ - "ark-ec", - "ark-ff 0.5.0", - "ark-r1cs-std", - "ark-std 0.5.0", -] - -[[package]] -name = "ark-crypto-primitives" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0c292754729c8a190e50414fd1a37093c786c709899f29c9f7daccecfa855e" -dependencies = [ - "ahash", - "ark-crypto-primitives-macros", - "ark-ec", - "ark-ff 0.5.0", - "ark-relations", - "ark-serialize 0.5.0", - "ark-snark", - "ark-std 0.5.0", - "blake2", - "derivative", - "digest 0.10.7", - "fnv", - "merlin", - "sha2", -] - -[[package]] -name = "ark-crypto-primitives-macros" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7e89fe77d1f0f4fe5b96dfc940923d88d17b6a773808124f21e764dfb063c6a" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "ark-ec" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" -dependencies = [ - "ahash", - "ark-ff 0.5.0", - "ark-poly", - "ark-serialize 0.5.0", - "ark-std 0.5.0", - "educe", - "fnv", - "hashbrown 0.15.5", - "itertools 0.13.0", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm 0.3.0", - "ark-ff-macros 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "num-bigint 0.4.6", - "num-traits", - "paste", - "rustc_version 0.3.3", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" -dependencies = [ - "ark-ff-asm 0.4.2", - "ark-ff-macros 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "digest 0.10.7", - "itertools 0.10.5", - "num-bigint 0.4.6", - "num-traits", - "paste", - "rustc_version 0.4.1", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" -dependencies = [ - "ark-ff-asm 0.5.0", - "ark-ff-macros 0.5.0", - "ark-serialize 0.5.0", - "ark-std 0.5.0", - "arrayvec", - "digest 0.10.7", - "educe", - "itertools 0.13.0", - "num-bigint 0.4.6", - "num-traits", - "paste", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-asm" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-asm" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" -dependencies = [ - "quote", - "syn 2.0.106", -] - -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "ark-groth16" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88f1d0f3a534bb54188b8dcc104307db6c56cdae574ddc3212aec0625740fc7e" -dependencies = [ - "ark-crypto-primitives", - "ark-ec", - "ark-ff 0.5.0", - "ark-poly", - "ark-relations", - "ark-serialize 0.5.0", - "ark-std 0.5.0", -] - -[[package]] -name = "ark-poly" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" -dependencies = [ - "ahash", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "ark-std 0.5.0", - "educe", - "fnv", - "hashbrown 0.15.5", -] - -[[package]] -name = "ark-r1cs-std" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "941551ef1df4c7a401de7068758db6503598e6f01850bdb2cfdb614a1f9dbea1" -dependencies = [ - "ark-ec", - "ark-ff 0.5.0", - "ark-relations", - "ark-std 0.5.0", - "educe", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "tracing", -] - -[[package]] -name = "ark-relations" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec46ddc93e7af44bcab5230937635b06fb5744464dd6a7e7b083e80ebd274384" -dependencies = [ - "ark-ff 0.5.0", - "ark-std 0.5.0", - "tracing", - "tracing-subscriber 0.2.25", -] - -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" -dependencies = [ - "ark-std 0.3.0", - "digest 0.9.0", -] - -[[package]] -name = "ark-serialize" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" -dependencies = [ - "ark-std 0.4.0", - "digest 0.10.7", - "num-bigint 0.4.6", -] - -[[package]] -name = "ark-serialize" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" -dependencies = [ - "ark-serialize-derive", - "ark-std 0.5.0", - "arrayvec", - "digest 0.10.7", - "num-bigint 0.4.6", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "ark-snark" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d368e2848c2d4c129ce7679a7d0d2d612b6a274d3ea6a13bad4445d61b381b88" -dependencies = [ - "ark-ff 0.5.0", - "ark-relations", - "ark-serialize 0.5.0", - "ark-std 0.5.0", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "ark-std" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "ark-std" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "arrayref" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" - -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -dependencies = [ - "serde", -] - -[[package]] -name = "async-trait" -version = "0.1.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "aurora-engine-modexp" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518bc5745a6264b5fd7b09dffb9667e400ee9e2bbe18555fac75e1fe9afa0df9" -dependencies = [ - "hex", - "num", -] - -[[package]] -name = "auto_impl" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "autocfg" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - -[[package]] -name = "az" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" - -[[package]] -name = "backtrace" -version = "0.3.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bincode" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" -dependencies = [ - "bincode_derive", - "serde", - "unty", -] - -[[package]] -name = "bincode_derive" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" -dependencies = [ - "virtue", -] - -[[package]] -name = "bit-set" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" - -[[package]] -name = "bitcoin-io" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" - -[[package]] -name = "bitcoin_hashes" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" -dependencies = [ - "bitcoin-io", - "hex-conservative", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" -dependencies = [ - "serde", -] - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "serde", - "tap", - "wyz", -] - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "blake2b_simd" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "blake3" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", -] - -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-encoding-length-guest" -version = "0.1.0" -dependencies = [ - "ere-io", - "ere-platform-trait", - "ethereum_ssz", - "guest-libs", - "reth-ethereum-primitives", - "serde", -] - -[[package]] -name = "bls12_381" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3c196a77437e7cc2fb515ce413a6401291578b5afc8ecb29a3c7ab957f05941" -dependencies = [ - "ff 0.12.1", - "group 0.12.1", - "pairing 0.22.0", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "bls12_381" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7bc6d6292be3a19e6379786dac800f551e5865a5bb51ebbe3064ab80433f403" -dependencies = [ - "ff 0.13.1", - "group 0.13.0", - "pairing 0.23.0", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "bls12_381" -version = "0.8.0" -source = "git+https://github.com/lambdaclass/bls12_381?branch=expose-fp-struct#219174187bd78154cec35b0809799fc2c991a579" -dependencies = [ - "digest 0.10.7", - "ff 0.13.1", - "group 0.13.0", - "pairing 0.23.0", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "bls12_381" -version = "0.8.0" -source = "git+https://github.com/brevis-network/bls12_381?branch=patch-v1.0.1#4738552f987d748367fd6a055f3ae08797739fba" -dependencies = [ - "cfg-if", - "ff 0.13.1", - "group 0.13.0", - "pairing 0.23.0", - "pico-patch-libs 1.1.6", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "blst" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fd49896f12ac9b6dcd7a5998466b9b58263a695a3dd1ecc1aaca2e12a90b080" -dependencies = [ - "cc", - "glob", - "threadpool", - "zeroize", -] - -[[package]] -name = "borsh" -version = "1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" -dependencies = [ - "borsh-derive", - "cfg_aliases", -] - -[[package]] -name = "borsh-derive" -version = "1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" -dependencies = [ - "once_cell", - "proc-macro-crate 3.3.0", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "bumpalo" -version = "3.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" - -[[package]] -name = "byte-slice-cast" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" - -[[package]] -name = "bytecheck" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0caa33a2c0edca0419d15ac723dff03f1956f7978329b1e3b5fdaaaed9d3ca8b" -dependencies = [ - "bytecheck_derive", - "ptr_meta", - "rancor", - "simdutf8", -] - -[[package]] -name = "bytecheck_derive" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "bytemuck" -version = "1.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" -dependencies = [ - "serde", -] - -[[package]] -name = "c-kzg" -version = "2.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687" -dependencies = [ - "blst", - "cc", - "glob", - "hex", - "libc", - "once_cell", - "serde", -] - -[[package]] -name = "camino" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" - -[[package]] -name = "cc" -version = "1.2.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" -dependencies = [ - "find-msvc-tools", - "jobserver", - "libc", - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" - -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "chrono" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" -dependencies = [ - "iana-time-zone", - "num-traits", - "serde", - "windows-link 0.2.0", -] - -[[package]] -name = "clap" -version = "4.5.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.5.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "clap_lex" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" - -[[package]] -name = "cobs" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" -dependencies = [ - "thiserror 2.0.16", -] - -[[package]] -name = "colorchoice" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" - -[[package]] -name = "const-hex" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dccd746bf9b1038c0507b7cec21eb2b11222db96a2902c96e8c185d6d20fb9c4" -dependencies = [ - "cfg-if", - "cpufeatures", - "hex", - "proptest", - "serde", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "const_format" -version = "0.2.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" -dependencies = [ - "const_format_proc_macros", -] - -[[package]] -name = "const_format_proc_macros" -version = "0.2.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - -[[package]] -name = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "convert_case" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "core-graphics-types" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "libc", -] - -[[package]] -name = "core_affinity" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a034b3a7b624016c6e13f5df875747cc25f884156aad2abd12b6c46797971342" -dependencies = [ - "libc", - "num_cpus", - "winapi", -] - -[[package]] -name = "cpu-time" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crc" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - -[[package]] -name = "crc32fast" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "critical-section" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" - -[[package]] -name = "crossbeam" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crunchy" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" - -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "csv" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" -dependencies = [ - "csv-core", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "csv-core" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d02f3b0da4c6504f86e9cd789d8dbafab48c2321be74e9987593de5a894d93d" -dependencies = [ - "memchr", -] - -[[package]] -name = "curve25519-dalek" -version = "4.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -dependencies = [ - "cfg-if", - "cpufeatures", - "curve25519-dalek-derive", - "fiat-crypto", - "rustc_version 0.4.1", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "darling" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" -dependencies = [ - "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]] -name = "darling_core" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.106", -] - -[[package]] -name = "darling_core" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "serde", - "strsim", - "syn 2.0.106", -] - -[[package]] -name = "darling_macro" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" -dependencies = [ - "darling_core 0.20.11", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "darling_macro" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" -dependencies = [ - "darling_core 0.21.3", - "quote", - "syn 2.0.106", -] - -[[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", -] - -[[package]] -name = "dashu" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b3e5ac1e23ff1995ef05b912e2b012a8784506987a2651552db2c73fb3d7e0" -dependencies = [ - "dashu-base", - "dashu-float", - "dashu-int", - "dashu-macros", - "dashu-ratio", - "rustversion", -] - -[[package]] -name = "dashu-base" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b80bf6b85aa68c58ffea2ddb040109943049ce3fbdf4385d0380aef08ef289" - -[[package]] -name = "dashu-float" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85078445a8dbd2e1bd21f04a816f352db8d333643f0c9b78ca7c3d1df71063e7" -dependencies = [ - "dashu-base", - "dashu-int", - "num-modular 0.6.1", - "num-order", - "rustversion", - "static_assertions", -] - -[[package]] -name = "dashu-int" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee99d08031ca34a4d044efbbb21dff9b8c54bb9d8c82a189187c0651ffdb9fbf" -dependencies = [ - "cfg-if", - "dashu-base", - "num-modular 0.6.1", - "num-order", - "rustversion", - "static_assertions", -] - -[[package]] -name = "dashu-macros" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93381c3ef6366766f6e9ed9cf09e4ef9dec69499baf04f0c60e70d653cf0ab10" -dependencies = [ - "dashu-base", - "dashu-float", - "dashu-int", - "dashu-ratio", - "paste", - "proc-macro2", - "quote", - "rustversion", -] - -[[package]] -name = "dashu-ratio" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47e33b04dd7ce1ccf8a02a69d3419e354f2bbfdf4eb911a0b7465487248764c9" -dependencies = [ - "dashu-base", - "dashu-float", - "dashu-int", - "num-modular 0.6.1", - "num-order", - "rustversion", -] - -[[package]] -name = "datatest-stable" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833306ca7eec4d95844e65f0d7502db43888c5c1006c6c517e8cf51a27d15431" -dependencies = [ - "camino", - "fancy-regex", - "libtest-mimic", - "walkdir", -] - -[[package]] -name = "der" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - -[[package]] -name = "deranged" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" -dependencies = [ - "powerfmt", - "serde", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive-where" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "derive_more" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" -dependencies = [ - "derive_more-impl 1.0.0", -] - -[[package]] -name = "derive_more" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" -dependencies = [ - "derive_more-impl 2.0.1", -] - -[[package]] -name = "derive_more-impl" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" -dependencies = [ - "convert_case 0.6.0", - "proc-macro2", - "quote", - "syn 2.0.106", - "unicode-xid", -] - -[[package]] -name = "derive_more-impl" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" -dependencies = [ - "convert_case 0.7.1", - "proc-macro2", - "quote", - "syn 2.0.106", - "unicode-xid", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "downcast-rs" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" - -[[package]] -name = "dunce" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" - -[[package]] -name = "dyn-clone" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "serdect", - "signature", - "spki", -] - -[[package]] -name = "educe" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" -dependencies = [ - "enum-ordinalize", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" -dependencies = [ - "serde", -] - -[[package]] -name = "elf" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b" - -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff 0.13.1", - "generic-array", - "group 0.13.0", - "pem-rfc7468", - "pkcs8", - "rand_core 0.6.4", - "sec1", - "serdect", - "subtle", - "zeroize", -] - -[[package]] -name = "embedded-io" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" - -[[package]] -name = "embedded-io" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" - -[[package]] -name = "enum-ordinalize" -version = "4.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" -dependencies = [ - "enum-ordinalize-derive", -] - -[[package]] -name = "enum-ordinalize-derive" -version = "4.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "env_filter" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.11.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "jiff", - "log", -] - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "ere-io" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=d15c6b495d0bc42bf160ecfbb11fa7600047c821#d15c6b495d0bc42bf160ecfbb11fa7600047c821" -dependencies = [ - "bincode 2.0.1", - "rkyv", - "serde", -] - -[[package]] -name = "ere-platform-airbender" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=d15c6b495d0bc42bf160ecfbb11fa7600047c821#d15c6b495d0bc42bf160ecfbb11fa7600047c821" -dependencies = [ - "ere-platform-trait", - "riscv_common", -] - -[[package]] -name = "ere-platform-openvm" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=d15c6b495d0bc42bf160ecfbb11fa7600047c821#d15c6b495d0bc42bf160ecfbb11fa7600047c821" -dependencies = [ - "ere-platform-trait", - "openvm", -] - -[[package]] -name = "ere-platform-pico" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=d15c6b495d0bc42bf160ecfbb11fa7600047c821#d15c6b495d0bc42bf160ecfbb11fa7600047c821" -dependencies = [ - "ere-platform-trait", - "pico-sdk", -] - -[[package]] -name = "ere-platform-risc0" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=d15c6b495d0bc42bf160ecfbb11fa7600047c821#d15c6b495d0bc42bf160ecfbb11fa7600047c821" -dependencies = [ - "ere-platform-trait", - "risc0-zkvm", - "risc0-zkvm-platform", -] - -[[package]] -name = "ere-platform-sp1" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=d15c6b495d0bc42bf160ecfbb11fa7600047c821#d15c6b495d0bc42bf160ecfbb11fa7600047c821" -dependencies = [ - "ere-platform-trait", - "sp1-zkvm", -] - -[[package]] -name = "ere-platform-trait" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=d15c6b495d0bc42bf160ecfbb11fa7600047c821#d15c6b495d0bc42bf160ecfbb11fa7600047c821" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "ere-platform-zisk" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=d15c6b495d0bc42bf160ecfbb11fa7600047c821#d15c6b495d0bc42bf160ecfbb11fa7600047c821" -dependencies = [ - "ere-platform-trait", - "ziskos", -] - -[[package]] -name = "errno" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "escape8259" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5692dd7b5a1978a5aeb0ce83b7655c58ca8efdcb79d21036ea249da95afec2c6" - -[[package]] -name = "ethbloom" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c321610643004cf908ec0f5f2aa0d8f1f8e14b540562a2887a1111ff1ecbf7b" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-rlp", - "impl-serde", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ab15ed80916029f878e0267c3a9f92b67df55e79af370bf66199059ae2b4ee3" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-rlp", - "impl-serde", - "primitive-types 0.13.1", - "uint 0.10.0", -] - -[[package]] -name = "ethereum_serde_utils" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dc1355dbb41fbbd34ec28d4fb2a57d9a70c67ac3c19f6a5ca4d4a176b9e997a" -dependencies = [ - "alloy-primitives", - "hex", - "serde", - "serde_derive", - "serde_json", -] - -[[package]] -name = "ethereum_ssz" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dcddb2554d19cde19b099fadddde576929d7a4d0c1cd3512d1fd95cf174375c" -dependencies = [ - "alloy-primitives", - "ethereum_serde_utils", - "itertools 0.13.0", - "serde", - "serde_derive", - "smallvec", - "typenum", -] - -[[package]] -name = "ethereum_ssz_derive" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a657b6b3b7e153637dc6bdc6566ad9279d9ee11a15b12cfb24a2e04360637e9f" -dependencies = [ - "darling 0.20.11", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "ethrex-blockchain" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "ethrex-common", - "ethrex-crypto", - "ethrex-metrics", - "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", - "hex", - "rustc-hash", - "thiserror 2.0.16", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "ethrex-common" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "crc32fast", - "ethereum-types", - "ethrex-crypto", - "ethrex-rlp", - "ethrex-trie", - "hex", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "kzg-rs 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static", - "libc", - "once_cell", - "rayon", - "rkyv", - "rustc-hash", - "secp256k1 0.30.0", - "serde", - "serde_json", - "sha2", - "sha3", - "thiserror 2.0.16", - "tinyvec", - "tracing", - "url", -] - -[[package]] -name = "ethrex-crypto" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "kzg-rs 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 2.0.16", - "tiny-keccak", -] - -[[package]] -name = "ethrex-guest" -version = "0.1.0" -dependencies = [ - "ere-io", - "ere-platform-trait", - "ethrex-common", - "guest-libs", - "guest_program", - "rkyv", -] - -[[package]] -name = "ethrex-l2-common" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "ethereum-types", - "ethrex-common", - "ethrex-crypto", - "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", - "hex", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "lambdaworks-crypto", - "rkyv", - "secp256k1 0.30.0", - "serde", - "serde_with", - "sha3", - "thiserror 2.0.16", -] - -[[package]] -name = "ethrex-levm" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", - "bitvec", - "bls12_381 0.8.0 (git+https://github.com/lambdaclass/bls12_381?branch=expose-fp-struct)", - "bytes", - "datatest-stable", - "derive_more 1.0.0", - "ethrex-common", - "ethrex-crypto", - "ethrex-rlp", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "lambdaworks-math", - "lazy_static", - "malachite", - "p256 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", - "ripemd", - "rustc-hash", - "secp256k1 0.30.0", - "serde", - "serde_json", - "sha2", - "sha3", - "strum 0.27.2", - "thiserror 2.0.16", - "walkdir", -] - -[[package]] -name = "ethrex-metrics" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "ethrex-common", - "serde", - "serde_json", - "thiserror 2.0.16", - "tracing-subscriber 0.3.20", -] - -[[package]] -name = "ethrex-rlp" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "ethereum-types", - "hex", - "lazy_static", - "snap", - "thiserror 2.0.16", - "tinyvec", -] - -[[package]] -name = "ethrex-storage" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "anyhow", - "async-trait", - "bincode 1.3.3", - "bytes", - "ethereum-types", - "ethrex-common", - "ethrex-crypto", - "ethrex-rlp", - "ethrex-trie", - "hex", - "lru 0.16.2", - "qfilter", - "rayon", - "rustc-hash", - "serde", - "serde_json", - "thiserror 2.0.16", - "tracing", -] - -[[package]] -name = "ethrex-threadpool" -version = "0.1.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "crossbeam", -] - -[[package]] -name = "ethrex-trie" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "anyhow", - "bytes", - "crossbeam", - "digest 0.10.7", - "ethereum-types", - "ethrex-crypto", - "ethrex-rlp", - "ethrex-threadpool", - "hex", - "lazy_static", - "rkyv", - "rustc-hash", - "serde", - "serde_json", - "smallvec", - "thiserror 2.0.16", - "tracing", -] - -[[package]] -name = "ethrex-vm" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bincode 1.3.3", - "bytes", - "derive_more 1.0.0", - "dyn-clone", - "ethereum-types", - "ethrex-common", - "ethrex-crypto", - "ethrex-levm", - "ethrex-rlp", - "ethrex-trie", - "lazy_static", - "rkyv", - "serde", - "thiserror 2.0.16", - "tracing", -] - -[[package]] -name = "eyre" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" -dependencies = [ - "indenter", - "once_cell", -] - -[[package]] -name = "fancy-regex" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298" -dependencies = [ - "bit-set", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fastrlp" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - -[[package]] -name = "fastrlp" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - -[[package]] -name = "ff" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" -dependencies = [ - "bitvec", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" -dependencies = [ - "bitvec", - "byteorder", - "ff_derive", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff_derive" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f10d12652036b0e99197587c6ba87a8fc3031986499973c030d8b44fcc151b60" -dependencies = [ - "addchain", - "num-bigint 0.3.3", - "num-integer", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - -[[package]] -name = "find-msvc-tools" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" - -[[package]] -name = "fixed-hash" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" -dependencies = [ - "byteorder", - "rand 0.8.5", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" -dependencies = [ - "foreign-types-macros", - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-macros" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "foreign-types-shared" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" - -[[package]] -name = "form_urlencoded" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-macro", - "futures-task", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "gcd" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "getrandom" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" -dependencies = [ - "cfg-if", - "libc", - "r-efi", - "wasi 0.14.5+wasi-0.2.4", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "glob" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" - -[[package]] -name = "gmp-mpfr-sys" -version = "1.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60f8970a75c006bb2f8ae79c6768a116dd215fa8346a87aed99bf9d82ca43394" -dependencies = [ - "libc", - "windows-sys 0.60.2", -] - -[[package]] -name = "group" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" -dependencies = [ - "ff 0.12.1", - "memuse", - "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.1", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "guest-libs" -version = "0.1.0" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "anyhow", - "ere-io", - "ere-platform-trait", - "ethereum_ssz", - "ethereum_ssz_derive", - "reth-ethereum-primitives", - "reth-primitives-traits", - "reth-stateless", - "serde", - "serde_json", - "serde_with", - "sha2", - "thiserror 2.0.16", -] - -[[package]] -name = "guest_program" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "ethrex-blockchain", - "ethrex-common", - "ethrex-crypto", - "ethrex-l2-common", - "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", - "hex", - "rkyv", - "serde", - "serde_json", - "serde_with", - "thiserror 2.0.16", -] - -[[package]] -name = "halo2" -version = "0.1.0-beta.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a23c779b38253fe1538102da44ad5bd5378495a61d2c4ee18d64eaa61ae5995" -dependencies = [ - "halo2_proofs", -] - -[[package]] -name = "halo2_proofs" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e925780549adee8364c7f2b685c753f6f3df23bde520c67416e93bf615933760" -dependencies = [ - "blake2b_simd", - "ff 0.12.1", - "group 0.12.1", - "pasta_curves 0.4.1", - "rand_core 0.6.4", - "rayon", -] - -[[package]] -name = "halo2curves" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d380afeef3f1d4d3245b76895172018cfb087d9976a7cabcd5597775b2933e07" -dependencies = [ - "blake2", - "digest 0.10.7", - "ff 0.13.1", - "group 0.13.0", - "halo2derive", - "hex", - "lazy_static", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "pairing 0.23.0", - "pasta_curves 0.5.1", - "paste", - "rand 0.8.5", - "rand_core 0.6.4", - "rayon", - "serde", - "serde_arrays 0.1.0", - "sha2", - "static_assertions", - "subtle", - "unroll", -] - -[[package]] -name = "halo2curves-axiom" -version = "0.7.2" -source = "git+https://github.com/axiom-crypto/halo2curves.git?tag=v0.7.2#3a65a710e27fe03711f6fb4fc0c4469ae351974a" -dependencies = [ - "blake2b_simd", - "digest 0.10.7", - "ff 0.13.1", - "group 0.13.0", - "hex", - "lazy_static", - "num-bigint 0.4.6", - "num-traits", - "pairing 0.23.0", - "pasta_curves 0.5.1", - "paste", - "rand 0.8.5", - "rand_core 0.6.4", - "rayon", - "serde", - "serde_arrays 0.1.0", - "sha2", - "static_assertions", - "subtle", - "unroll", -] - -[[package]] -name = "halo2derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb99e7492b4f5ff469d238db464131b86c2eaac814a78715acba369f64d2c76" -dependencies = [ - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", - "serde", -] - -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash 0.1.5", -] - -[[package]] -name = "hashbrown" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash 0.2.0", - "serde", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "hex-conservative" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" -dependencies = [ - "arrayvec", -] - -[[package]] -name = "hex-literal" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" - -[[package]] -name = "hex-literal" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e712f64ec3850b98572bffac52e2c6f282b29fe6c5fa6d42334b30be438d95c1" - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "hybrid-array" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2d35805454dc9f8662a98d6d61886ffe26bd465f5960e0e55345c70d5c0d2a9" -dependencies = [ - "typenum", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", - "wasm-bindgen", - "windows-core 0.61.2", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[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", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locale_core" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_normalizer" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "zerovec", -] - -[[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 = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", - "potential_utf", - "zerotrie", - "zerovec", -] - -[[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 = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" -dependencies = [ - "displaydoc", - "icu_locale_core", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerotrie", - "zerovec", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-codec" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d40b9d5e17727407e55028eafc22b2dc68781786e6d7eb8a21103f5058e3a14" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-rlp" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ed8ad1f3877f7e775b8cbf30ed1bd3209a95401817f19a0eb4402d13f8cf90" -dependencies = [ - "rlp 0.6.1", -] - -[[package]] -name = "impl-serde" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a143eada6a1ec4aefa5049037a26a6d597bfd64f8c026d07b77133e02b7dd0b" -dependencies = [ - "serde", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "include_bytes_aligned" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee796ad498c8d9a1d68e477df8f754ed784ef875de1414ebdaf169f70a6a784" - -[[package]] -name = "indenter" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" -dependencies = [ - "equivalent", - "hashbrown 0.15.5", - "serde", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -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.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" - -[[package]] -name = "jiff" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" -dependencies = [ - "jiff-static", - "log", - "portable-atomic", - "portable-atomic-util", - "serde", -] - -[[package]] -name = "jiff-static" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "jobserver" -version = "0.1.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" -dependencies = [ - "getrandom 0.3.3", - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "jubjub" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a575df5f985fe1cd5b2b05664ff6accfc46559032b954529fd225a2168d27b0f" -dependencies = [ - "bitvec", - "bls12_381 0.7.1", - "ff 0.12.1", - "group 0.12.1", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "k256" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "once_cell", - "serdect", - "sha2", - "signature", -] - -[[package]] -name = "k256" -version = "0.13.4" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "ecdsa", - "elliptic-curve", - "ff 0.13.1", - "hex-literal 0.4.1", - "num-bigint 0.4.6", - "openvm", - "openvm-algebra-guest", - "openvm-algebra-moduli-macros", - "openvm-ecc-guest", - "openvm-ecc-sw-macros", - "serde", -] - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "keccak-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" -dependencies = [ - "digest 0.10.7", - "sha3-asm", -] - -[[package]] -name = "kzg-rs" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9201effeea3fcc93b587904ae2df9ce97e433184b9d6d299e9ebc9830a546636" -dependencies = [ - "ff 0.13.1", - "hex", - "serde_arrays 0.2.0", - "sha2", - "sp1_bls12_381", - "spin 0.9.8", -] - -[[package]] -name = "kzg-rs" -version = "0.2.7" -source = "git+https://github.com/brevis-network/kzg-rs?rev=b93499a67494bc6d34e108032fd11d375fb886e0#b93499a67494bc6d34e108032fd11d375fb886e0" -dependencies = [ - "bls12_381 0.8.0 (git+https://github.com/brevis-network/bls12_381?branch=patch-v1.0.1)", - "ff 0.13.1", - "hex", - "sha2", - "spin 0.9.8", -] - -[[package]] -name = "lambdaworks-crypto" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58b1a1c1102a5a7fbbda117b79fb3a01e033459c738a3c1642269603484fd1c1" -dependencies = [ - "lambdaworks-math", - "rand 0.8.5", - "rand_chacha 0.3.1", - "serde", - "sha2", - "sha3", -] - -[[package]] -name = "lambdaworks-math" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "018a95aa873eb49896a858dee0d925c33f3978d073c64b08dd4f2c9b35a017c6" -dependencies = [ - "getrandom 0.2.16", - "num-bigint 0.4.6", - "num-traits", - "rand 0.8.5", - "rayon", - "serde", - "serde_json", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin 0.9.8", -] - -[[package]] -name = "lib-c" -version = "0.14.0" -source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" - -[[package]] -name = "libc" -version = "0.2.175" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" - -[[package]] -name = "libm" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" - -[[package]] -name = "libtest-mimic" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5297962ef19edda4ce33aaa484386e0a5b3d7f2f4e037cbeee00503ef6b29d33" -dependencies = [ - "anstream", - "anstyle", - "clap", - "escape8259", -] - -[[package]] -name = "linux-raw-sys" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" - -[[package]] -name = "litemap" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" - -[[package]] -name = "lock_api" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" - -[[package]] -name = "lru" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" -dependencies = [ - "hashbrown 0.15.5", -] - -[[package]] -name = "lru" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96051b46fc183dc9cd4a223960ef37b9af631b55191852a8274bfef064cda20f" -dependencies = [ - "hashbrown 0.16.0", -] - -[[package]] -name = "macro-string" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "malachite" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec410515e231332b14cd986a475d1c3323bcfa4c7efc038bfa1d5b410b1c57e4" -dependencies = [ - "malachite-base", - "malachite-nz", - "malachite-q", -] - -[[package]] -name = "malachite-base" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c738d3789301e957a8f7519318fcbb1b92bb95863b28f6938ae5a05be6259f34" -dependencies = [ - "hashbrown 0.15.5", - "itertools 0.14.0", - "libm", - "ryu", -] - -[[package]] -name = "malachite-nz" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1707c9a1fa36ce21749b35972bfad17bbf34cf5a7c96897c0491da321e387d3b" -dependencies = [ - "itertools 0.14.0", - "libm", - "malachite-base", - "wide", -] - -[[package]] -name = "malachite-q" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d764801aa4e96bbb69b389dcd03b50075345131cd63ca2e380bca71cc37a3675" -dependencies = [ - "itertools 0.14.0", - "malachite-base", - "malachite-nz", -] - -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - -[[package]] -name = "matchers" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" -dependencies = [ - "regex-automata", -] - -[[package]] -name = "memchr" -version = "2.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" - -[[package]] -name = "memuse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d97bbf43eb4f088f8ca469930cde17fa036207c9a5e02ccc5107c4e8b17c964" - -[[package]] -name = "merlin" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" -dependencies = [ - "byteorder", - "keccak", - "rand_core 0.6.4", - "zeroize", -] - -[[package]] -name = "metal" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" -dependencies = [ - "bitflags 2.9.4", - "block", - "core-graphics-types", - "foreign-types", - "log", - "objc", - "paste", -] - -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", -] - -[[package]] -name = "modular-bitfield" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" -dependencies = [ - "modular-bitfield-impl", - "static_assertions", -] - -[[package]] -name = "modular-bitfield-impl" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "mpt" -version = "0.1.0" -source = "git+https://github.com/eth-act/zkvm-ethereum-mpt.git?tag=v0.4.0#d4d8f968c183aedc23100c3a5634dee14c320757" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-trie 0.8.1", - "arrayvec", -] - -[[package]] -name = "munge" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c" -dependencies = [ - "munge_macro", -] - -[[package]] -name = "munge_macro" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "no_std_strings" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5b0c77c1b780822bc749a33e39aeb2c07584ab93332303babeabb645298a76e" - -[[package]] -name = "ntapi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" -dependencies = [ - "winapi", -] - -[[package]] -name = "nu-ansi-term" -version = "0.50.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint 0.4.6", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-modular" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a5fe11d4135c3bcdf3a95b18b194afa9608a5f6ff034f5d857bc9a27fb0119" -dependencies = [ - "num-bigint 0.4.6", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-modular" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" - -[[package]] -name = "num-order" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6" -dependencies = [ - "num-modular 0.6.1", -] - -[[package]] -name = "num-prime" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e238432a7881ec7164503ccc516c014bf009be7984cde1ba56837862543bdec3" -dependencies = [ - "bitvec", - "either", - "lru 0.12.5", - "num-bigint 0.4.6", - "num-integer", - "num-modular 0.5.1", - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint 0.4.6", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" -dependencies = [ - "num_enum_derive 0.5.11", -] - -[[package]] -name = "num_enum" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" -dependencies = [ - "num_enum_derive 0.7.4", - "rustversion", -] - -[[package]] -name = "num_enum_derive" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" -dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" -dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "nums" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3c74f925fb8cfc49a8022f2afce48a0683b70f9e439885594e84c5edbf5b01" -dependencies = [ - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "nybbles" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8983bb634df7248924ee0c4c3a749609b5abcb082c28fffe3254b3eb3602b307" -dependencies = [ - "const-hex", - "smallvec", -] - -[[package]] -name = "nybbles" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0418987d1aaed324d95b4beffc93635e19be965ed5d63ec07a35980fe3b71a4" -dependencies = [ - "alloy-rlp", - "cfg-if", - "proptest", - "ruint", - "serde", - "smallvec", -] - -[[package]] -name = "objc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -dependencies = [ - "malloc_buf", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" -dependencies = [ - "critical-section", - "portable-atomic", -] - -[[package]] -name = "once_cell_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" - -[[package]] -name = "op-alloy-consensus" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726da827358a547be9f1e37c2a756b9e3729cb0350f43408164794b370cad8ae" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "derive_more 2.0.1", - "serde", - "serde_with", - "thiserror 2.0.16", -] - -[[package]] -name = "openvm" -version = "1.4.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "bytemuck", - "getrandom 0.2.16", - "getrandom 0.3.3", - "num-bigint 0.4.6", - "openvm-custom-insn", - "openvm-platform", - "openvm-rv32im-guest", - "serde", -] - -[[package]] -name = "openvm-algebra-complex-macros" -version = "1.4.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "openvm-macros-common", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "openvm-algebra-guest" -version = "1.4.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "halo2curves-axiom", - "num-bigint 0.4.6", - "once_cell", - "openvm-algebra-complex-macros", - "openvm-algebra-moduli-macros", - "openvm-custom-insn", - "openvm-rv32im-guest", - "serde-big-array", - "strum_macros 0.26.4", -] - -[[package]] -name = "openvm-algebra-moduli-macros" -version = "1.4.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "num-bigint 0.4.6", - "num-prime", - "openvm-macros-common", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "openvm-custom-insn" -version = "0.1.0" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "openvm-ecc-guest" -version = "1.4.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "ecdsa", - "elliptic-curve", - "group 0.13.0", - "halo2curves-axiom", - "once_cell", - "openvm", - "openvm-algebra-guest", - "openvm-custom-insn", - "openvm-ecc-sw-macros", - "openvm-rv32im-guest", - "serde", - "strum_macros 0.26.4", -] - -[[package]] -name = "openvm-ecc-sw-macros" -version = "1.4.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "openvm-macros-common", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "openvm-empty-program" -version = "0.1.0" -dependencies = [ - "openvm", - "openvm-algebra-guest", - "openvm-ecc-guest", -] - -[[package]] -name = "openvm-keccak256" -version = "1.4.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "openvm-keccak256-guest", - "tiny-keccak", -] - -[[package]] -name = "openvm-keccak256-guest" -version = "1.4.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "openvm-platform", -] - -[[package]] -name = "openvm-kzg" -version = "0.2.0-alpha" -source = "git+https://github.com/axiom-crypto/openvm-kzg.git?rev=530a6ed413def5296b7e4967650ba4fc8fd92ea1#530a6ed413def5296b7e4967650ba4fc8fd92ea1" -dependencies = [ - "bls12_381 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "hex", - "hex-literal 1.1.0", - "openvm-algebra-guest", - "openvm-ecc-guest", - "openvm-pairing", - "serde", - "serde-big-array", - "spin 0.10.0", -] - -[[package]] -name = "openvm-macros-common" -version = "1.4.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "syn 2.0.106", -] - -[[package]] -name = "openvm-pairing" -version = "1.4.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "group 0.13.0", - "hex-literal 0.4.1", - "itertools 0.14.0", - "num-bigint 0.4.6", - "num-traits", - "openvm", - "openvm-algebra-complex-macros", - "openvm-algebra-guest", - "openvm-algebra-moduli-macros", - "openvm-custom-insn", - "openvm-ecc-guest", - "openvm-ecc-sw-macros", - "openvm-pairing-guest", - "openvm-platform", - "openvm-rv32im-guest", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "openvm-pairing-guest" -version = "1.4.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "hex-literal 0.4.1", - "itertools 0.14.0", - "lazy_static", - "num-bigint 0.4.6", - "num-traits", - "openvm", - "openvm-algebra-guest", - "openvm-algebra-moduli-macros", - "openvm-custom-insn", - "openvm-ecc-guest", - "rand 0.8.5", - "serde", - "strum_macros 0.26.4", -] - -[[package]] -name = "openvm-panic-guest" -version = "0.1.0" -dependencies = [ - "openvm", - "openvm-algebra-guest", - "openvm-ecc-guest", -] - -[[package]] -name = "openvm-platform" -version = "1.4.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "libm", - "openvm-custom-insn", - "openvm-rv32im-guest", -] - -[[package]] -name = "openvm-revm-crypto" -version = "0.3.0" -source = "git+https://github.com/axiom-crypto/openvm-reth-benchmark.git?branch=openvm-v1.4.1-reth-1.8.3#14aa05261a16975238bc7a2718fdf76f80e6fa8b" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "k256 0.13.4 (git+https://github.com/openvm-org//openvm.git?tag=v1.4.2)", - "openvm", - "openvm-algebra-guest", - "openvm-ecc-guest", - "openvm-keccak256", - "openvm-kzg", - "openvm-pairing", - "openvm-sha2", - "p256 0.13.2 (git+https://github.com/openvm-org//openvm.git?tag=v1.4.2)", - "revm 29.0.1", - "revm-precompile 27.0.0", - "revm-primitives 20.2.1", -] - -[[package]] -name = "openvm-rv32im-guest" -version = "1.4.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "openvm-custom-insn", - "p3-field 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb)", - "strum_macros 0.26.4", -] - -[[package]] -name = "openvm-sha2" -version = "1.4.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "openvm-sha256-guest", - "sha2", -] - -[[package]] -name = "openvm-sha256-guest" -version = "1.4.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "openvm-platform", -] - -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2", -] - -[[package]] -name = "p256" -version = "0.13.2" -source = "git+https://github.com/openvm-org//openvm.git?tag=v1.4.2#e30b1148a23a34b6ec5db97ef88eecfaf41fc9d7" -dependencies = [ - "ecdsa", - "elliptic-curve", - "ff 0.13.1", - "hex-literal 0.4.1", - "num-bigint 0.4.6", - "openvm", - "openvm-algebra-guest", - "openvm-algebra-moduli-macros", - "openvm-ecc-guest", - "openvm-ecc-sw-macros", - "serde", -] - -[[package]] -name = "p3-air" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-matrix 0.1.0", -] - -[[package]] -name = "p3-baby-bear" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-mds 0.1.0", - "p3-monty-31", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-baby-bear" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7521838ecab2ddf4f7bc4ceebad06ec02414729598485c1ada516c39900820e8" -dependencies = [ - "num-bigint 0.4.6", - "p3-field 0.2.3-succinct", - "p3-mds 0.2.3-succinct", - "p3-poseidon2 0.2.3-succinct", - "p3-symmetric 0.2.3-succinct", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-blake3" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "blake3", - "p3-symmetric 0.1.0", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", -] - -[[package]] -name = "p3-bn254-fr" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "ff 0.13.1", - "halo2curves", - "num-bigint 0.4.6", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-challenger" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-symmetric 0.1.0", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "tracing", -] - -[[package]] -name = "p3-circle" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "itertools 0.13.0", - "p3-challenger", - "p3-commit", - "p3-dft 0.1.0", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-fri", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "serde", - "tracing", -] - -[[package]] -name = "p3-commit" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "itertools 0.13.0", - "p3-challenger", - "p3-dft 0.1.0", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-matrix 0.1.0", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "serde", -] - -[[package]] -name = "p3-dft" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "itertools 0.13.0", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "tracing", -] - -[[package]] -name = "p3-dft" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46414daedd796f1eefcdc1811c0484e4bced5729486b6eaba9521c572c76761a" -dependencies = [ - "p3-field 0.2.3-succinct", - "p3-matrix 0.2.3-succinct", - "p3-maybe-rayon 0.2.3-succinct", - "p3-util 0.2.3-succinct", - "tracing", -] - -[[package]] -name = "p3-field" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "itertools 0.14.0", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "nums", - "p3-maybe-rayon 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb)", - "p3-util 0.1.0 (git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb)", - "rand 0.8.5", - "serde", - "tracing", -] - -[[package]] -name = "p3-field" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "itertools 0.13.0", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "nums", - "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "rand 0.8.5", - "serde", - "tracing", -] - -[[package]] -name = "p3-field" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48948a0516b349e9d1cdb95e7236a6ee010c44e68c5cc78b4b92bf1c4022a0d9" -dependencies = [ - "itertools 0.12.1", - "num-bigint 0.4.6", - "num-traits", - "p3-util 0.2.3-succinct", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-fri" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "itertools 0.13.0", - "p3-challenger", - "p3-commit", - "p3-dft 0.1.0", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-interpolation", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "rand 0.8.5", - "serde", - "tracing", -] - -[[package]] -name = "p3-goldilocks" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "num-bigint 0.4.6", - "p3-dft 0.1.0", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-mds 0.1.0", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-interpolation" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", -] - -[[package]] -name = "p3-keccak" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "itertools 0.13.0", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-symmetric 0.1.0", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "tiny-keccak", -] - -[[package]] -name = "p3-keccak-air" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "p3-air", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "tracing", -] - -[[package]] -name = "p3-koala-bear" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-mds 0.1.0", - "p3-monty-31", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-matrix" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "itertools 0.13.0", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "rand 0.8.5", - "serde", - "tracing", - "transpose", -] - -[[package]] -name = "p3-matrix" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4de3f373589477cb735ea58e125898ed20935e03664b4614c7fac258b3c42f" -dependencies = [ - "itertools 0.12.1", - "p3-field 0.2.3-succinct", - "p3-maybe-rayon 0.2.3-succinct", - "p3-util 0.2.3-succinct", - "rand 0.8.5", - "serde", - "tracing", -] - -[[package]] -name = "p3-maybe-rayon" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" - -[[package]] -name = "p3-maybe-rayon" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "rayon", -] - -[[package]] -name = "p3-maybe-rayon" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3968ad1160310296eb04f91a5f4edfa38fe1d6b2b8cd6b5c64e6f9b7370979e" - -[[package]] -name = "p3-mds" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "itertools 0.13.0", - "p3-dft 0.1.0", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-matrix 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "rand 0.8.5", -] - -[[package]] -name = "p3-mds" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2356b1ed0add6d5dfbf7a338ce534a6fde827374394a52cec16a0840af6e97c9" -dependencies = [ - "itertools 0.12.1", - "p3-dft 0.2.3-succinct", - "p3-field 0.2.3-succinct", - "p3-matrix 0.2.3-succinct", - "p3-symmetric 0.2.3-succinct", - "p3-util 0.2.3-succinct", - "rand 0.8.5", -] - -[[package]] -name = "p3-merkle-tree" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "itertools 0.13.0", - "p3-commit", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-symmetric 0.1.0", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "rand 0.8.5", - "serde", - "tracing", -] - -[[package]] -name = "p3-mersenne-31" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "itertools 0.13.0", - "num-bigint 0.4.6", - "p3-dft 0.1.0", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-mds 0.1.0", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-monty-31" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "itertools 0.13.0", - "num-bigint 0.4.6", - "p3-dft 0.1.0", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-mds 0.1.0", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "rand 0.8.5", - "serde", - "tracing", - "transpose", -] - -[[package]] -name = "p3-poseidon2" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "gcd", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-mds 0.1.0", - "p3-symmetric 0.1.0", - "rand 0.8.5", -] - -[[package]] -name = "p3-poseidon2" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da1eec7e1b6900581bedd95e76e1ef4975608dd55be9872c9d257a8a9651c3a" -dependencies = [ - "gcd", - "p3-field 0.2.3-succinct", - "p3-mds 0.2.3-succinct", - "p3-symmetric 0.2.3-succinct", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-symmetric" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "itertools 0.13.0", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "serde", -] - -[[package]] -name = "p3-symmetric" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb439bea1d822623b41ff4b51e3309e80d13cadf8b86d16ffd5e6efb9fdc360" -dependencies = [ - "itertools 0.12.1", - "p3-field 0.2.3-succinct", - "serde", -] - -[[package]] -name = "p3-uni-stark" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "itertools 0.13.0", - "p3-air", - "p3-challenger", - "p3-commit", - "p3-dft 0.1.0", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "serde", - "tracing", -] - -[[package]] -name = "p3-util" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "serde", -] - -[[package]] -name = "p3-util" -version = "0.1.0" -source = "git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b#a4d376babf5d09497f1fab1df7f1ffce01260973" -dependencies = [ - "serde", -] - -[[package]] -name = "p3-util" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c2c2010678b9332b563eaa38364915b585c1a94b5ca61e2c7541c087ddda5c" -dependencies = [ - "serde", -] - -[[package]] -name = "pairing" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b" -dependencies = [ - "group 0.12.1", -] - -[[package]] -name = "pairing" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" -dependencies = [ - "group 0.13.0", -] - -[[package]] -name = "parity-scale-codec" -version = "3.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" -dependencies = [ - "arrayvec", - "bitvec", - "byte-slice-cast", - "const_format", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "rustversion", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "3.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" -dependencies = [ - "proc-macro-crate 3.3.0", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets 0.52.6", -] - -[[package]] -name = "pasta_curves" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc65faf8e7313b4b1fbaa9f7ca917a0eed499a9663be71477f87993604341d8" -dependencies = [ - "blake2b_simd", - "ff 0.12.1", - "group 0.12.1", - "lazy_static", - "rand 0.8.5", - "static_assertions", - "subtle", -] - -[[package]] -name = "pasta_curves" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" -dependencies = [ - "blake2b_simd", - "ff 0.13.1", - "group 0.13.0", - "hex", - "lazy_static", - "rand 0.8.5", - "serde", - "static_assertions", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - -[[package]] -name = "pest" -version = "2.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" -dependencies = [ - "memchr", - "thiserror 2.0.16", - "ucd-trie", -] - -[[package]] -name = "phf" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" -dependencies = [ - "phf_macros 0.11.3", - "phf_shared 0.11.3", - "serde", -] - -[[package]] -name = "phf" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" -dependencies = [ - "phf_macros 0.13.1", - "phf_shared 0.13.1", - "serde", -] - -[[package]] -name = "phf_generator" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" -dependencies = [ - "phf_shared 0.11.3", - "rand 0.8.5", -] - -[[package]] -name = "phf_generator" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" -dependencies = [ - "fastrand", - "phf_shared 0.13.1", -] - -[[package]] -name = "phf_macros" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" -dependencies = [ - "phf_generator 0.11.3", - "phf_shared 0.11.3", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "phf_macros" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" -dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "phf_shared" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pico-derive" -version = "1.1.8" -source = "git+https://github.com/brevis-network/pico.git?tag=v1.1.10#b06418a16d316c5a17d0cc094c7a3cf0af0efc55" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "pico-empty-program" -version = "0.1.0" -dependencies = [ - "ere-platform-pico", -] - -[[package]] -name = "pico-panic-guest" -version = "0.1.0" -dependencies = [ - "ere-platform-pico", -] - -[[package]] -name = "pico-patch-libs" -version = "1.1.6" -source = "git+https://github.com/brevis-network/pico.git#b52a89e4551b3f28086f7aae49505631845bf961" -dependencies = [ - "bincode 1.3.3", - "serde", -] - -[[package]] -name = "pico-patch-libs" -version = "1.1.8" -source = "git+https://github.com/brevis-network/pico.git?tag=v1.1.10#b06418a16d316c5a17d0cc094c7a3cf0af0efc55" -dependencies = [ - "bincode 1.3.3", - "serde", -] - -[[package]] -name = "pico-sdk" -version = "1.1.8" -source = "git+https://github.com/brevis-network/pico.git?tag=v1.1.10#b06418a16d316c5a17d0cc094c7a3cf0af0efc55" -dependencies = [ - "anyhow", - "bincode 1.3.3", - "cfg-if", - "env_logger", - "getrandom 0.2.16", - "hex", - "lazy_static", - "log", - "p3-baby-bear 0.1.0", - "p3-challenger", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-koala-bear", - "p3-mersenne-31", - "pico-patch-libs 1.1.8", - "pico-vm", - "rand 0.8.5", - "serde", - "serde_json", - "sha2", -] - -[[package]] -name = "pico-vm" -version = "1.1.8" -source = "git+https://github.com/brevis-network/pico.git?tag=v1.1.10#b06418a16d316c5a17d0cc094c7a3cf0af0efc55" -dependencies = [ - "anyhow", - "arrayref", - "backtrace", - "bincode 1.3.3", - "bytemuck", - "cfg-if", - "clap", - "core_affinity", - "cpu-time", - "crossbeam", - "csv", - "curve25519-dalek", - "dashmap", - "dashu", - "derive_more 2.0.1", - "elf", - "elliptic-curve", - "eyre", - "ff 0.13.1", - "halo2curves", - "hashbrown 0.14.5", - "hex", - "hybrid-array", - "itertools 0.13.0", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static", - "log", - "num", - "num-bigint 0.4.6", - "num-traits", - "num_cpus", - "once_cell", - "p256 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", - "p3-air", - "p3-baby-bear 0.1.0", - "p3-blake3", - "p3-bn254-fr", - "p3-challenger", - "p3-circle", - "p3-commit", - "p3-dft 0.1.0", - "p3-field 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-fri", - "p3-goldilocks", - "p3-keccak", - "p3-keccak-air", - "p3-koala-bear", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "p3-mds 0.1.0", - "p3-merkle-tree", - "p3-mersenne-31", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", - "p3-uni-stark", - "p3-util 0.1.0 (git+https://github.com/brevis-network/Plonky3.git?rev=a4d376b)", - "paste", - "pico-derive", - "rand 0.8.5", - "rayon", - "rayon-scan", - "rrs-succinct", - "serde", - "serde_json", - "serde_with", - "snowbridge-amcl", - "static_assertions", - "strum 0.26.3", - "strum_macros 0.26.4", - "sysinfo", - "thiserror 1.0.69", - "tiny-keccak", - "tracing", - "tracing-forest", - "tracing-subscriber 0.3.20", - "typenum", - "vec_map", - "zkhash", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "portable-atomic" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" - -[[package]] -name = "portable-atomic-util" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" -dependencies = [ - "portable-atomic", -] - -[[package]] -name = "postcard" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" -dependencies = [ - "cobs", - "embedded-io 0.4.0", - "embedded-io 0.6.1", - "serde", -] - -[[package]] -name = "potential_utf" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" -dependencies = [ - "zerovec", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "primeorder" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" -dependencies = [ - "elliptic-curve", -] - -[[package]] -name = "primitive-types" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" -dependencies = [ - "fixed-hash", - "impl-codec 0.6.0", - "uint 0.9.5", -] - -[[package]] -name = "primitive-types" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d15600a7d856470b7d278b3fe0e311fe28c2526348549f8ef2ff7db3299c87f5" -dependencies = [ - "fixed-hash", - "impl-codec 0.7.1", - "impl-rlp", - "impl-serde", - "uint 0.10.0", -] - -[[package]] -name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit 0.19.15", -] - -[[package]] -name = "proc-macro-crate" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" -dependencies = [ - "toml_edit 0.22.27", -] - -[[package]] -name = "proc-macro-error-attr2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "proc-macro-error2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" -dependencies = [ - "proc-macro-error-attr2", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "proc-macro2" -version = "1.0.101" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proptest" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags 2.9.4", - "lazy_static", - "num-traits", - "rand 0.9.2", - "rand_chacha 0.9.0", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", - "unarray", -] - -[[package]] -name = "ptr_meta" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79" -dependencies = [ - "ptr_meta_derive", -] - -[[package]] -name = "ptr_meta_derive" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "qfilter" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "746341cd2357c9a4df2d951522b4a8dd1ef553e543119899ad7bf87e938c8fbe" -dependencies = [ - "xxhash-rust", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quote" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rancor" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a063ea72381527c2a0561da9c80000ef822bdd7c3241b1cc1b12100e3df081ee" -dependencies = [ - "ptr_meta", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "serde", -] - -[[package]] -name = "rand" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", - "serde", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.16", -] - -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom 0.3.3", - "serde", -] - -[[package]] -name = "rand_xorshift" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" -dependencies = [ - "rand_core 0.9.3", -] - -[[package]] -name = "rayon" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "rayon-scan" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f87cc11a0140b4b0da0ffc889885760c61b13672d80a908920b2c0df078fa14" -dependencies = [ - "rayon", -] - -[[package]] -name = "redox_syscall" -version = "0.5.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" -dependencies = [ - "bitflags 2.9.4", -] - -[[package]] -name = "ref-cast" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "regex" -version = "1.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" - -[[package]] -name = "rend" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6" -dependencies = [ - "bytecheck", -] - -[[package]] -name = "reth-airbender-stateless-validator" -version = "0.1.0" -dependencies = [ - "alloy-primitives", - "ere-platform-airbender", - "guest-libs", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "reth-ethereum-primitives", - "reth-guest", - "reth-primitives-traits", - "reth-stateless", - "revm 33.1.0", - "sha2", -] - -[[package]] -name = "reth-chainspec" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-evm", - "alloy-genesis", - "alloy-primitives", - "alloy-trie 0.9.1", - "auto_impl", - "derive_more 2.0.1", - "reth-ethereum-forks", - "reth-network-peers", - "reth-primitives-traits", - "serde_json", -] - -[[package]] -name = "reth-codecs" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-trie 0.9.1", - "bytes", - "modular-bitfield", - "op-alloy-consensus", - "reth-codecs-derive", - "reth-zstd-compressors", - "serde", -] - -[[package]] -name = "reth-codecs-derive" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "reth-consensus" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "auto_impl", - "reth-execution-types", - "reth-primitives-traits", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-consensus-common" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "reth-chainspec", - "reth-consensus", - "reth-primitives-traits", -] - -[[package]] -name = "reth-db-models" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "reth-primitives-traits", -] - -[[package]] -name = "reth-errors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "reth-consensus", - "reth-execution-errors", - "reth-storage-errors", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-ethereum-consensus" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "reth-chainspec", - "reth-consensus", - "reth-consensus-common", - "reth-execution-types", - "reth-primitives-traits", - "tracing", -] - -[[package]] -name = "reth-ethereum-forks" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-eip2124", - "alloy-hardforks", - "alloy-primitives", - "auto_impl", - "once_cell", -] - -[[package]] -name = "reth-ethereum-primitives" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde", - "reth-codecs", - "reth-primitives-traits", - "serde", - "serde_with", -] - -[[package]] -name = "reth-evm" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm", - "alloy-primitives", - "auto_impl", - "derive_more 2.0.1", - "futures-util", - "reth-execution-errors", - "reth-execution-types", - "reth-primitives-traits", - "reth-storage-api", - "reth-storage-errors", - "reth-trie-common", - "revm 33.1.0", -] - -[[package]] -name = "reth-evm-ethereum" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm", - "alloy-primitives", - "alloy-rpc-types-engine", - "reth-chainspec", - "reth-ethereum-forks", - "reth-ethereum-primitives", - "reth-evm", - "reth-execution-types", - "reth-primitives-traits", - "reth-storage-errors", - "revm 33.1.0", -] - -[[package]] -name = "reth-execution-errors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-evm", - "alloy-primitives", - "alloy-rlp", - "nybbles 0.4.4", - "reth-storage-errors", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-execution-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm", - "alloy-primitives", - "derive_more 2.0.1", - "reth-ethereum-primitives", - "reth-primitives-traits", - "reth-trie-common", - "revm 33.1.0", -] - -[[package]] -name = "reth-guest" -version = "0.1.0" -dependencies = [ - "alloy-primitives", - "ere-io", - "ere-platform-trait", - "guest-libs", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "once_cell", - "reth-chainspec", - "reth-ethereum-primitives", - "reth-evm-ethereum", - "reth-primitives-traits", - "reth-stateless", - "reth-trie-common", - "serde", - "serde_with", - "sparsestate", -] - -[[package]] -name = "reth-network-peers" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "serde_with", - "thiserror 2.0.16", - "url", -] - -[[package]] -name = "reth-openvm-stateless-validator" -version = "0.1.0" -dependencies = [ - "bincode 1.3.3", - "ere-platform-openvm", - "guest-libs", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "openvm", - "openvm-algebra-guest", - "openvm-ecc-guest", - "openvm-revm-crypto", - "reth-ethereum-primitives", - "reth-guest", - "reth-primitives-traits", - "reth-stateless", - "sha2", -] - -[[package]] -name = "reth-pico-stateless-validator" -version = "0.1.0" -dependencies = [ - "alloy-primitives", - "ere-platform-pico", - "guest-libs", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "kzg-rs 0.2.7 (git+https://github.com/brevis-network/kzg-rs?rev=b93499a67494bc6d34e108032fd11d375fb886e0)", - "reth-ethereum-primitives", - "reth-guest", - "reth-primitives-traits", - "reth-stateless", - "revm 33.1.0", - "sha2", -] - -[[package]] -name = "reth-primitives-traits" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-trie 0.9.1", - "auto_impl", - "bytes", - "derive_more 2.0.1", - "once_cell", - "op-alloy-consensus", - "reth-codecs", - "revm-bytecode 7.1.1", - "revm-primitives 21.0.2", - "revm-state 8.1.1", - "secp256k1 0.30.0", - "serde", - "serde_with", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-prune-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "derive_more 2.0.1", - "strum 0.27.2", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-revm" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "reth-primitives-traits", - "reth-storage-api", - "reth-storage-errors", - "revm 33.1.0", -] - -[[package]] -name = "reth-risc0-stateless-validator" -version = "0.1.0" -dependencies = [ - "alloy-primitives", - "ere-platform-risc0", - "guest-libs", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "reth-ethereum-primitives", - "reth-guest", - "reth-primitives-traits", - "reth-stateless", - "revm 33.1.0", - "sha2", -] - -[[package]] -name = "reth-sp1-stateless-validator" -version = "0.1.0" -dependencies = [ - "alloy-primitives", - "ere-platform-sp1", - "guest-libs", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "reth-ethereum-primitives", - "reth-guest", - "reth-primitives-traits", - "reth-stateless", - "revm 33.1.0", - "sha2", - "tracing", - "tracing-subscriber 0.3.20", -] - -[[package]] -name = "reth-stages-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "reth-trie-common", -] - -[[package]] -name = "reth-stateless" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-debug", - "alloy-trie 0.9.1", - "itertools 0.14.0", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "reth-chainspec", - "reth-consensus", - "reth-errors", - "reth-ethereum-consensus", - "reth-ethereum-primitives", - "reth-evm", - "reth-primitives-traits", - "reth-revm", - "reth-trie-common", - "reth-trie-sparse", - "serde", - "serde_with", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-static-file-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "derive_more 2.0.1", - "serde", - "strum 0.27.2", -] - -[[package]] -name = "reth-storage-api" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "reth-chainspec", - "reth-db-models", - "reth-ethereum-primitives", - "reth-execution-types", - "reth-primitives-traits", - "reth-prune-types", - "reth-stages-types", - "reth-storage-errors", - "reth-trie-common", - "revm-database 9.0.6", -] - -[[package]] -name = "reth-storage-errors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "derive_more 2.0.1", - "reth-primitives-traits", - "reth-prune-types", - "reth-static-file-types", - "revm-database-interface 8.0.5", - "thiserror 2.0.16", -] - -[[package]] -name = "reth-trie-common" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "alloy-rlp", - "alloy-trie 0.9.1", - "derive_more 2.0.1", - "itertools 0.14.0", - "nybbles 0.4.4", - "reth-primitives-traits", - "revm-database 9.0.6", -] - -[[package]] -name = "reth-trie-sparse" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-trie 0.9.1", - "auto_impl", - "reth-execution-errors", - "reth-primitives-traits", - "reth-trie-common", - "smallvec", - "tracing", -] - -[[package]] -name = "reth-zisk-stateless-validator" -version = "0.1.0" -dependencies = [ - "alloy-primitives", - "bincode 1.3.3", - "ere-platform-zisk", - "guest-libs", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "reth-ethereum-primitives", - "reth-guest", - "reth-primitives-traits", - "reth-stateless", - "revm 33.1.0", - "sha2", -] - -[[package]] -name = "reth-zstd-compressors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "zstd", -] - -[[package]] -name = "revm" -version = "29.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718d90dce5f07e115d0e66450b1b8aa29694c1cf3f89ebddaddccc2ccbd2f13e" -dependencies = [ - "revm-bytecode 6.2.2", - "revm-context 9.1.0", - "revm-context-interface 10.2.0", - "revm-database 7.0.5", - "revm-database-interface 7.0.5", - "revm-handler 10.0.1", - "revm-inspector 10.0.1", - "revm-interpreter 25.0.3", - "revm-precompile 27.0.0", - "revm-primitives 20.2.1", - "revm-state 7.0.5", -] - -[[package]] -name = "revm" -version = "33.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c85ed0028f043f87b3c88d4a4cb6f0a76440085523b6a8afe5ff003cf418054" -dependencies = [ - "revm-bytecode 7.1.1", - "revm-context 12.1.0", - "revm-context-interface 13.1.0", - "revm-database 9.0.6", - "revm-database-interface 8.0.5", - "revm-handler 14.1.0", - "revm-inspector 14.1.0", - "revm-interpreter 31.1.0", - "revm-precompile 31.0.0", - "revm-primitives 21.0.2", - "revm-state 8.1.1", -] - -[[package]] -name = "revm-bytecode" -version = "6.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66c52031b73cae95d84cd1b07725808b5fd1500da3e5e24574a3b2dc13d9f16d" -dependencies = [ - "bitvec", - "phf 0.11.3", - "revm-primitives 20.2.1", - "serde", -] - -[[package]] -name = "revm-bytecode" -version = "7.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2c6b5e6e8dd1e28a4a60e5f46615d4ef0809111c9e63208e55b5c7058200fb0" -dependencies = [ - "bitvec", - "phf 0.13.1", - "revm-primitives 21.0.2", - "serde", -] - -[[package]] -name = "revm-context" -version = "9.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a20c98e7008591a6f012550c2a00aa36cba8c14cc88eb88dec32eb9102554b4" -dependencies = [ - "bitvec", - "cfg-if", - "derive-where", - "revm-bytecode 6.2.2", - "revm-context-interface 10.2.0", - "revm-database-interface 7.0.5", - "revm-primitives 20.2.1", - "revm-state 7.0.5", - "serde", -] - -[[package]] -name = "revm-context" -version = "12.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f038f0c9c723393ac897a5df9140b21cfa98f5753a2cb7d0f28fa430c4118abf" -dependencies = [ - "bitvec", - "cfg-if", - "derive-where", - "revm-bytecode 7.1.1", - "revm-context-interface 13.1.0", - "revm-database-interface 8.0.5", - "revm-primitives 21.0.2", - "revm-state 8.1.1", - "serde", -] - -[[package]] -name = "revm-context-interface" -version = "10.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50d241ed1ce647b94caf174fcd0239b7651318b2c4c06b825b59b973dfb8495" -dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "auto_impl", - "either", - "revm-database-interface 7.0.5", - "revm-primitives 20.2.1", - "revm-state 7.0.5", - "serde", -] - -[[package]] -name = "revm-context-interface" -version = "13.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "431c9a14e4ef1be41ae503708fd02d974f80ef1f2b6b23b5e402e8d854d1b225" -dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "auto_impl", - "either", - "revm-database-interface 8.0.5", - "revm-primitives 21.0.2", - "revm-state 8.1.1", - "serde", -] - -[[package]] -name = "revm-database" -version = "7.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39a276ed142b4718dcf64bc9624f474373ed82ef20611025045c3fb23edbef9c" -dependencies = [ - "alloy-eips", - "revm-bytecode 6.2.2", - "revm-database-interface 7.0.5", - "revm-primitives 20.2.1", - "revm-state 7.0.5", - "serde", -] - -[[package]] -name = "revm-database" -version = "9.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "980d8d6bba78c5dd35b83abbb6585b0b902eb25ea4448ed7bfba6283b0337191" -dependencies = [ - "alloy-eips", - "revm-bytecode 7.1.1", - "revm-database-interface 8.0.5", - "revm-primitives 21.0.2", - "revm-state 8.1.1", - "serde", -] - -[[package]] -name = "revm-database-interface" -version = "7.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c523c77e74eeedbac5d6f7c092e3851dbe9c7fec6f418b85992bd79229db361" -dependencies = [ - "auto_impl", - "either", - "revm-primitives 20.2.1", - "revm-state 7.0.5", - "serde", -] - -[[package]] -name = "revm-database-interface" -version = "8.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cce03e3780287b07abe58faf4a7f5d8be7e81321f93ccf3343c8f7755602bae" -dependencies = [ - "auto_impl", - "either", - "revm-primitives 21.0.2", - "revm-state 8.1.1", - "serde", -] - -[[package]] -name = "revm-handler" -version = "10.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "550331ea85c1d257686e672081576172fe3d5a10526248b663bbf54f1bef226a" -dependencies = [ - "auto_impl", - "derive-where", - "revm-bytecode 6.2.2", - "revm-context 9.1.0", - "revm-context-interface 10.2.0", - "revm-database-interface 7.0.5", - "revm-interpreter 25.0.3", - "revm-precompile 27.0.0", - "revm-primitives 20.2.1", - "revm-state 7.0.5", - "serde", -] - -[[package]] -name = "revm-handler" -version = "14.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d44f8f6dbeec3fecf9fe55f78ef0a758bdd92ea46cd4f1ca6e2a946b32c367f3" -dependencies = [ - "auto_impl", - "derive-where", - "revm-bytecode 7.1.1", - "revm-context 12.1.0", - "revm-context-interface 13.1.0", - "revm-database-interface 8.0.5", - "revm-interpreter 31.1.0", - "revm-precompile 31.0.0", - "revm-primitives 21.0.2", - "revm-state 8.1.1", - "serde", -] - -[[package]] -name = "revm-inspector" -version = "10.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c0a6e9ccc2ae006f5bed8bd80cd6f8d3832cd55c5e861b9402fdd556098512f" -dependencies = [ - "auto_impl", - "either", - "revm-context 9.1.0", - "revm-database-interface 7.0.5", - "revm-handler 10.0.1", - "revm-interpreter 25.0.3", - "revm-primitives 20.2.1", - "revm-state 7.0.5", - "serde", -] - -[[package]] -name = "revm-inspector" -version = "14.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5617e49216ce1ca6c8826bcead0386bc84f49359ef67cde6d189961735659f93" -dependencies = [ - "auto_impl", - "either", - "revm-context 12.1.0", - "revm-database-interface 8.0.5", - "revm-handler 14.1.0", - "revm-interpreter 31.1.0", - "revm-primitives 21.0.2", - "revm-state 8.1.1", - "serde", - "serde_json", -] - -[[package]] -name = "revm-interpreter" -version = "25.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06575dc51b1d8f5091daa12a435733a90b4a132dca7ccee0666c7db3851bc30c" -dependencies = [ - "revm-bytecode 6.2.2", - "revm-context-interface 10.2.0", - "revm-primitives 20.2.1", - "serde", -] - -[[package]] -name = "revm-interpreter" -version = "31.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26ec36405f7477b9dccdc6caa3be19adf5662a7a0dffa6270cdb13a090c077e5" -dependencies = [ - "revm-bytecode 7.1.1", - "revm-context-interface 13.1.0", - "revm-primitives 21.0.2", - "revm-state 8.1.1", - "serde", -] - -[[package]] -name = "revm-precompile" -version = "27.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b57d4bd9e6b5fe469da5452a8a137bc2d030a3cd47c46908efc615bbc699da" -dependencies = [ - "ark-bls12-381", - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "arrayref", - "aurora-engine-modexp", - "cfg-if", - "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "p256 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-primitives 20.2.1", - "ripemd", - "sha2", -] - -[[package]] -name = "revm-precompile" -version = "31.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a62958af953cc4043e93b5be9b8497df84cc3bd612b865c49a7a7dfa26a84e2" -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 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "p256 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-primitives 21.0.2", - "ripemd", - "rug", - "secp256k1 0.31.1", - "sha2", - "substrate-bn", -] - -[[package]] -name = "revm-primitives" -version = "20.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa29d9da06fe03b249b6419b33968ecdf92ad6428e2f012dc57bcd619b5d94e" -dependencies = [ - "alloy-primitives", - "num_enum 0.7.4", - "once_cell", - "serde", -] - -[[package]] -name = "revm-primitives" -version = "21.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29e161db429d465c09ba9cbff0df49e31049fe6b549e28eb0b7bd642fcbd4412" -dependencies = [ - "alloy-primitives", - "num_enum 0.7.4", - "once_cell", - "serde", -] - -[[package]] -name = "revm-state" -version = "7.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f64fbacb86008394aaebd3454f9643b7d5a782bd251135e17c5b33da592d84d" -dependencies = [ - "bitflags 2.9.4", - "revm-bytecode 6.2.2", - "revm-primitives 20.2.1", - "serde", -] - -[[package]] -name = "revm-state" -version = "8.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d8be953b7e374dbdea0773cf360debed8df394ea8d82a8b240a6b5da37592fc" -dependencies = [ - "bitflags 2.9.4", - "revm-bytecode 7.1.1", - "revm-primitives 21.0.2", - "serde", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "risc0-binfmt" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dca096030bb4c52f99b12abcfe3531ea93b17b95a12a5aeb06fbf8ee588a275" -dependencies = [ - "anyhow", - "borsh", - "bytemuck", - "derive_more 2.0.1", - "elf", - "lazy_static", - "postcard", - "rand 0.9.2", - "risc0-zkp", - "risc0-zkvm-platform", - "ruint", - "semver 1.0.26", - "serde", - "tracing", -] - -[[package]] -name = "risc0-circuit-keccak" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e1d23ef3648bb85b0bd37bc9f9f7d13f1a4388e5e779e18f7eea82b969e5dbc" -dependencies = [ - "anyhow", - "bytemuck", - "paste", - "risc0-binfmt", - "risc0-circuit-recursion", - "risc0-core", - "risc0-zkp", - "tracing", -] - -[[package]] -name = "risc0-circuit-recursion" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028cd26e1b1f7bdd964d2f1eac8f812d1872b6b8fd24f10804f07d916b90000e" -dependencies = [ - "anyhow", - "bytemuck", - "hex", - "metal", - "risc0-core", - "risc0-zkp", - "tracing", -] - -[[package]] -name = "risc0-circuit-rv32im" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ecd73a71ddce62eab8a28552ee182dc2ea08cdce2a3474a616a80bf2d6e9be" -dependencies = [ - "anyhow", - "bit-vec", - "bytemuck", - "derive_more 2.0.1", - "paste", - "risc0-binfmt", - "risc0-core", - "risc0-zkp", - "serde", - "tracing", -] - -[[package]] -name = "risc0-core" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f2723fedace48c6c5a505bd8f97ac4e1712bc4cb769083e10536d862b66987" -dependencies = [ - "bytemuck", - "rand_core 0.9.3", -] - -[[package]] -name = "risc0-empty-program" -version = "0.1.0" -dependencies = [ - "ere-platform-risc0", -] - -[[package]] -name = "risc0-groth16" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ff13f9b427254c5264e01aaa32e33f355525299b6829449295905778f3b1e8" -dependencies = [ - "anyhow", - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", - "ark-groth16", - "ark-serialize 0.5.0", - "bytemuck", - "hex", - "num-bigint 0.4.6", - "num-traits", - "risc0-binfmt", - "risc0-zkp", - "serde", -] - -[[package]] -name = "risc0-panic-guest" -version = "0.1.0" -dependencies = [ - "ere-platform-risc0", -] - -[[package]] -name = "risc0-zkos-v1compat" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf1f35f2ef61d8d86fdd06288c11d2f3bbf08f1af66b24ca0a1976ecbf324a1" -dependencies = [ - "include_bytes_aligned", - "no_std_strings", - "risc0-zkvm-platform", -] - -[[package]] -name = "risc0-zkp" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beb493b3f007f04a11106a001c66bca77338d0fc375766189fd7ca3a1e8c3700" -dependencies = [ - "anyhow", - "blake2", - "borsh", - "bytemuck", - "cfg-if", - "digest 0.10.7", - "hex", - "hex-literal 0.4.1", - "metal", - "paste", - "rand_core 0.9.3", - "risc0-core", - "risc0-zkvm-platform", - "serde", - "sha2", - "stability", - "tracing", -] - -[[package]] -name = "risc0-zkvm" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39d9943fe71decea1e8b6a99480cefa33799ab08b5abfccd7e2a18fb07121c1" -dependencies = [ - "anyhow", - "borsh", - "bytemuck", - "derive_more 2.0.1", - "hex", - "risc0-binfmt", - "risc0-circuit-keccak", - "risc0-circuit-recursion", - "risc0-circuit-rv32im", - "risc0-core", - "risc0-groth16", - "risc0-zkos-v1compat", - "risc0-zkp", - "risc0-zkvm-platform", - "rrs-lib", - "semver 1.0.26", - "serde", - "sha2", - "stability", - "tracing", -] - -[[package]] -name = "risc0-zkvm-platform" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfaa10feba15828c788837ddde84b994393936d8f5715228627cfe8625122a40" -dependencies = [ - "bytemuck", - "cfg-if", - "getrandom 0.2.16", - "getrandom 0.3.3", - "libm", - "num_enum 0.7.4", - "paste", - "stability", -] - -[[package]] -name = "riscv_common" -version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-airbender?tag=v0.5.1#0a0b78c1f14bd4cf8c3719b7c5c1f074c343690b" - -[[package]] -name = "rkyv" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35a640b26f007713818e9a9b65d34da1cf58538207b052916a83d80e43f3ffa4" -dependencies = [ - "bytecheck", - "bytes", - "hashbrown 0.15.5", - "indexmap 2.11.1", - "munge", - "ptr_meta", - "rancor", - "rend", - "rkyv_derive", - "tinyvec", - "uuid", -] - -[[package]] -name = "rkyv_derive" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd83f5f173ff41e00337d97f6572e416d022ef8a19f371817259ae960324c482" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "rlp" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" -dependencies = [ - "bytes", - "rustc-hex", -] - -[[package]] -name = "rlp" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24e92bb2a83198bb76d661a71df9f7076b8c420b8696e4d3d97d50d94479e3" -dependencies = [ - "bytes", - "rustc-hex", -] - -[[package]] -name = "rrs-lib" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4382d3af3a4ebdae7f64ba6edd9114fff92c89808004c4943b393377a25d001" -dependencies = [ - "downcast-rs", - "paste", -] - -[[package]] -name = "rrs-succinct" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3372685893a9f67d18e98e792d690017287fd17379a83d798d958e517d380fa9" -dependencies = [ - "downcast-rs", - "num_enum 0.5.11", - "paste", -] - -[[package]] -name = "rug" -version = "1.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad2e973fe3c3214251a840a621812a4f40468da814b1a3d6947d433c2af11f" -dependencies = [ - "az", - "gmp-mpfr-sys", - "libc", - "libm", -] - -[[package]] -name = "ruint" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" -dependencies = [ - "alloy-rlp", - "ark-ff 0.3.0", - "ark-ff 0.4.2", - "borsh", - "bytes", - "fastrlp 0.3.1", - "fastrlp 0.4.0", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "parity-scale-codec", - "primitive-types 0.12.2", - "proptest", - "rand 0.8.5", - "rand 0.9.2", - "rlp 0.5.2", - "ruint-macro", - "serde", - "valuable", - "zeroize", -] - -[[package]] -name = "ruint-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" - -[[package]] -name = "rustc-demangle" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - -[[package]] -name = "rustc-hash" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver 1.0.26", -] - -[[package]] -name = "rustix" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" -dependencies = [ - "bitflags 2.9.4", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - -[[package]] -name = "rusty-fork" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - -[[package]] -name = "safe_arch" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scale-info" -version = "2.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" -dependencies = [ - "cfg-if", - "derive_more 1.0.0", - "parity-scale-codec", - "scale-info-derive", -] - -[[package]] -name = "scale-info-derive" -version = "2.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" -dependencies = [ - "proc-macro-crate 3.3.0", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "schemars" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "schemars" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "serdect", - "subtle", - "zeroize", -] - -[[package]] -name = "secp256k1" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" -dependencies = [ - "bitcoin_hashes", - "rand 0.8.5", - "secp256k1-sys 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" -dependencies = [ - "cc", -] - -[[package]] -name = "secp256k1-sys" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb913707158fadaf0d8702c2db0e857de66eb003ccfdda5924b5f5ac98efb38" -dependencies = [ - "cc", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" -dependencies = [ - "serde", -] - -[[package]] -name = "semver-parser" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" -dependencies = [ - "pest", -] - -[[package]] -name = "serde" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" -dependencies = [ - "serde_core", - "serde_derive", -] - -[[package]] -name = "serde-big-array" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_arrays" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38636132857f68ec3d5f3eb121166d2af33cb55174c4d5ff645db6165cbef0fd" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_arrays" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a16b99c5ea4fe3daccd14853ad260ec00ea043b2708d1fd1da3106dcd8d9df" -dependencies = [ - "serde", -] - -[[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.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "serde_json" -version = "1.0.143" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" -dependencies = [ - "indexmap 2.11.1", - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" -dependencies = [ - "base64", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.11.1", - "schemars 0.9.0", - "schemars 1.0.4", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" -dependencies = [ - "darling 0.20.11", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "serdect" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" -dependencies = [ - "base16ct", - "serde", -] - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.7", - "keccak", -] - -[[package]] -name = "sha3-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" -dependencies = [ - "cc", - "cfg-if", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", -] - -[[package]] -name = "simdutf8" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" - -[[package]] -name = "siphasher" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" - -[[package]] -name = "slab" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" -dependencies = [ - "serde", -] - -[[package]] -name = "snap" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" - -[[package]] -name = "snowbridge-amcl" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460a9ed63cdf03c1b9847e8a12a5f5ba19c4efd5869e4a737e05be25d7c427e5" -dependencies = [ - "parity-scale-codec", - "scale-info", -] - -[[package]] -name = "sp1-lib" -version = "5.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1a9935d58cb1dcd757a1b10d727090f5b718f1f03b512d48f0c1952e6ead00" -dependencies = [ - "bincode 1.3.3", - "serde", - "sp1-primitives", -] - -[[package]] -name = "sp1-primitives" -version = "5.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7d2a6187e394c30097ea7a975a4832f172918690dc89a979f0fad67422d3a8b" -dependencies = [ - "bincode 1.3.3", - "blake3", - "cfg-if", - "hex", - "lazy_static", - "num-bigint 0.4.6", - "p3-baby-bear 0.2.3-succinct", - "p3-field 0.2.3-succinct", - "p3-poseidon2 0.2.3-succinct", - "p3-symmetric 0.2.3-succinct", - "serde", - "sha2", -] - -[[package]] -name = "sp1-zkvm" -version = "5.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e767ed85f89b1c8d84188c2cc035833079529bb0ddd8f7bd252de91ce562acc7" -dependencies = [ - "cfg-if", - "getrandom 0.2.16", - "getrandom 0.3.3", - "lazy_static", - "libm", - "rand 0.8.5", - "sha2", - "sp1-lib", - "sp1-primitives", -] - -[[package]] -name = "sp1_bls12_381" -version = "0.8.0-sp1-5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac255e1704ebcdeec5e02f6a0ebc4d2e9e6b802161938330b6810c13a610c583" -dependencies = [ - "cfg-if", - "ff 0.13.1", - "group 0.13.0", - "pairing 0.23.0", - "rand_core 0.6.4", - "sp1-lib", - "subtle", -] - -[[package]] -name = "sparsestate" -version = "0.1.0" -source = "git+https://github.com/eth-act/zkvm-ethereum-mpt.git?tag=v0.4.0#d4d8f968c183aedc23100c3a5634dee14c320757" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-trie 0.9.1", - "mpt", - "reth-errors", - "reth-revm", - "reth-stateless", - "reth-trie-common", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spin" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "stability" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" -dependencies = [ - "quote", - "syn 2.0.106", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strength_reduce" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82" - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros 0.26.4", -] - -[[package]] -name = "strum" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" -dependencies = [ - "strum_macros 0.27.2", -] - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.106", -] - -[[package]] -name = "strum_macros" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "substrate-bn" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b5bbfa79abbae15dd642ea8176a21a635ff3c00059961d1ea27ad04e5b441c" -dependencies = [ - "byteorder", - "crunchy", - "lazy_static", - "rand 0.8.5", - "rustc-hex", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "succinct-block-encoding-length" -version = "0.1.0" -dependencies = [ - "block-encoding-length-guest", - "ere-platform-sp1", -] - -[[package]] -name = "succinct-empty-guest" -version = "0.1.0" -dependencies = [ - "ere-platform-sp1", -] - -[[package]] -name = "succinct-panic-guest" -version = "0.1.0" -dependencies = [ - "ere-platform-sp1", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn-solidity" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff790eb176cc81bb8936aed0f7b9f14fc4670069a2d371b3e3b0ecce908b2cb3" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "sysinfo" -version = "0.30.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" -dependencies = [ - "cfg-if", - "core-foundation-sys", - "libc", - "ntapi", - "once_cell", - "rayon", - "windows", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" -dependencies = [ - "fastrand", - "getrandom 0.3.3", - "once_cell", - "rustix", - "windows-sys 0.52.0", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" -dependencies = [ - "thiserror-impl 2.0.16", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "thread_local" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "time" -version = "0.3.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" -dependencies = [ - "deranged", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" - -[[package]] -name = "time-macros" -version = "0.2.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinystr" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" -dependencies = [ - "pin-project-lite", -] - -[[package]] -name = "tokio-util" -version = "0.7.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "futures-util", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" - -[[package]] -name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap 2.11.1", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" -dependencies = [ - "indexmap 2.11.1", - "toml_datetime", - "winnow 0.7.13", -] - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "tracing-core" -version = "0.1.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-forest" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee40835db14ddd1e3ba414292272eddde9dad04d3d4b65509656414d1c42592f" -dependencies = [ - "ansi_term", - "smallvec", - "thiserror 1.0.69", - "tracing", - "tracing-subscriber 0.3.20", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" -dependencies = [ - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex-automata", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "transpose" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad61aed86bc3faea4300c7aee358b4c6d0c8d6ccc36524c96e4c92ccf26e77e" -dependencies = [ - "num-integer", - "strength_reduce", -] - -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "uint" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "909988d098b2f738727b161a106cfc7cab00c539c2687a8836f8e565976fb53e" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicode-ident" -version = "1.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" - -[[package]] -name = "unicode-segmentation" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" - -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "unroll" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad948c1cb799b1a70f836077721a92a35ac177d4daddf4c20a633786d4cf618" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "unty" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" - -[[package]] -name = "url" -version = "2.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - -[[package]] -name = "uuid" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "valuable" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" - -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" -dependencies = [ - "serde", -] - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "virtue" -version = "0.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" - -[[package]] -name = "wait-timeout" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" -dependencies = [ - "libc", -] - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - -[[package]] -name = "wasi" -version = "0.14.5+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4494f6290a82f5fe584817a676a34b9d6763e8d9d18204009fb31dceca98fd4" -dependencies = [ - "wasip2", -] - -[[package]] -name = "wasip2" -version = "1.0.0+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03fa2761397e5bd52002cd7e73110c71af2109aca4e521a9f40473fe685b0a24" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.101" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.101" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.106", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.101" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.101" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.101" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "wide" -version = "0.7.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" -dependencies = [ - "bytemuck", - "safe_arch", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" -dependencies = [ - "windows-core 0.52.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link 0.1.3", - "windows-result", - "windows-strings", -] - -[[package]] -name = "windows-implement" -version = "0.60.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "windows-interface" -version = "0.59.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - -[[package]] -name = "windows-link" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" - -[[package]] -name = "windows-result" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" -dependencies = [ - "windows-link 0.1.3", -] - -[[package]] -name = "windows-strings" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" -dependencies = [ - "windows-link 0.1.3", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -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.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" -dependencies = [ - "windows-link 0.1.3", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_i686_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" - -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" -dependencies = [ - "memchr", -] - -[[package]] -name = "wit-bindgen" -version = "0.45.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" - -[[package]] -name = "writeable" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "xxhash-rust" -version = "0.8.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" - -[[package]] -name = "yoke" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", - "synstructure", -] - -[[package]] -name = "zerocopy" -version = "0.8.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "zerotrie" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - -[[package]] -name = "zerovec" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "zisk-empty-program" -version = "0.1.0" -dependencies = [ - "ere-platform-zisk", -] - -[[package]] -name = "zisk-panic-guest" -version = "0.1.0" -dependencies = [ - "ere-platform-zisk", -] - -[[package]] -name = "ziskos" -version = "0.14.0" -source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.14.0#2f791ffd070d024ba350f054c349c8d6bd98d629" -dependencies = [ - "bincode 2.0.1", - "cfg-if", - "getrandom 0.2.16", - "lazy_static", - "lib-c", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "rand 0.8.5", - "serde", - "static_assertions", - "tiny-keccak", -] - -[[package]] -name = "zkhash" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4352d1081da6922701401cdd4cbf29a2723feb4cfabb5771f6fee8e9276da1c7" -dependencies = [ - "ark-ff 0.4.2", - "ark-std 0.4.0", - "bitvec", - "blake2", - "bls12_381 0.7.1", - "byteorder", - "cfg-if", - "group 0.12.1", - "group 0.13.0", - "halo2", - "hex", - "jubjub", - "lazy_static", - "pasta_curves 0.5.1", - "rand 0.8.5", - "serde", - "sha2", - "sha3", - "subtle", -] - -[[package]] -name = "zstd" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "7.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" -dependencies = [ - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.16+zstd.1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" -dependencies = [ - "cc", - "pkg-config", -] diff --git a/ere-guests/Cargo.toml b/ere-guests/Cargo.toml deleted file mode 100644 index ad9ba633..00000000 --- a/ere-guests/Cargo.toml +++ /dev/null @@ -1,217 +0,0 @@ -[workspace] -members = [ - # Reth stateless validator - "stateless-validator/reth/guest", - "stateless-validator/reth/airbender", - "stateless-validator/reth/openvm", - "stateless-validator/reth/pico", - "stateless-validator/reth/risc0", - "stateless-validator/reth/sp1", - "stateless-validator/reth/zisk", - - # Ethrex stateless validator is not part of the workspace - "stateless-validator/ethrex/guest", - - # Empty program - "empty-program/sp1", - "empty-program/risc0", - "empty-program/zisk", - "empty-program/openvm", - "empty-program/pico", - - # Block encoding length - "block-encoding-length/guest", - "block-encoding-length/sp1", - - # Panic guest - "panic-guest/sp1", - "panic-guest/risc0", - "panic-guest/zisk", - "panic-guest/openvm", - "panic-guest/pico", - - # Libs - "libs", -] -resolver = "2" - -[workspace.package] -version = "0.1.0" -edition = "2024" -rust-version = "1.85" -license = "MIT OR Apache-2.0" - -[workspace.lints] -rust.missing_debug_implementations = "warn" -rust.missing_docs = "warn" -rust.rust_2018_idioms = { level = "deny", priority = -1 } -rust.unreachable_pub = "warn" -rust.unused_must_use = "deny" -rust.unused_crate_dependencies = "deny" -rustdoc.all = "warn" - -[workspace.lints.clippy] -# These are some of clippy's nursery (i.e., experimental) lints that we like. -# By default, nursery lints are allowed. Some of the lints below have made good -# suggestions which we fixed. The others didn't have any findings, so we can -# assume they don't have that many false positives. Let's enable them to -# prevent future problems. -borrow_as_ptr = "warn" -branches_sharing_code = "warn" -clear_with_drain = "warn" -cloned_instead_of_copied = "warn" -collection_is_never_read = "warn" -dbg_macro = "warn" -derive_partial_eq_without_eq = "warn" -doc_markdown = "warn" -empty_line_after_doc_comments = "warn" -empty_line_after_outer_attr = "warn" -enum_glob_use = "warn" -equatable_if_let = "warn" -explicit_into_iter_loop = "warn" -explicit_iter_loop = "warn" -flat_map_option = "warn" -from_iter_instead_of_collect = "warn" -if_not_else = "warn" -if_then_some_else_none = "warn" -implicit_clone = "warn" -imprecise_flops = "warn" -iter_on_empty_collections = "warn" -iter_on_single_items = "warn" -iter_with_drain = "warn" -iter_without_into_iter = "warn" -large_stack_frames = "warn" -manual_assert = "warn" -manual_clamp = "warn" -manual_is_variant_and = "warn" -manual_string_new = "warn" -match_same_arms = "warn" -missing-const-for-fn = "warn" -mutex_integer = "warn" -naive_bytecount = "warn" -needless_bitwise_bool = "warn" -needless_continue = "warn" -needless_for_each = "warn" -needless_pass_by_ref_mut = "warn" -nonstandard_macro_braces = "warn" -option_as_ref_cloned = "warn" -or_fun_call = "warn" -path_buf_push_overwrite = "warn" -read_zero_byte_vec = "warn" -result_large_err = "allow" -redundant_clone = "warn" -redundant_else = "warn" -single_char_pattern = "warn" -string_lit_as_bytes = "warn" -string_lit_chars_any = "warn" -suboptimal_flops = "warn" -suspicious_operation_groupings = "warn" -trailing_empty_array = "warn" -trait_duplication_in_bounds = "warn" -transmute_undefined_repr = "warn" -trivial_regex = "warn" -tuple_array_conversions = "warn" -type_repetition_in_bounds = "warn" -uninhabited_references = "warn" -unnecessary_self_imports = "warn" -unnecessary_struct_initialization = "warn" -unnested_or_patterns = "warn" -unused_peekable = "warn" -unused_rounding = "warn" -use_self = "warn" -useless_let_if_seq = "warn" -while_float = "warn" -zero_sized_map_values = "warn" - -[workspace.dependencies] -# local dependencies -guest-libs = { path = "libs", default-features = false } -reth-guest = { path = "stateless-validator/reth/guest", default-features = false } -ethrex-guest = { path = "stateless-validator/ethrex/guest", default-features = false } -block-encoding-length-guest = { path = "block-encoding-length/guest", default-features = false } - -# ere -ere-io = { git = "https://github.com/eth-applied-research-group/ere", rev = "d15c6b495d0bc42bf160ecfbb11fa7600047c821", default-features = false } -ere-platform-trait = { git = "https://github.com/eth-applied-research-group/ere", rev = "d15c6b495d0bc42bf160ecfbb11fa7600047c821" } -ere-platform-airbender = { git = "https://github.com/eth-applied-research-group/ere", rev = "d15c6b495d0bc42bf160ecfbb11fa7600047c821", default-features = false } -ere-platform-openvm = { git = "https://github.com/eth-applied-research-group/ere", rev = "d15c6b495d0bc42bf160ecfbb11fa7600047c821", default-features = false } -ere-platform-pico = { git = "https://github.com/eth-applied-research-group/ere", rev = "d15c6b495d0bc42bf160ecfbb11fa7600047c821", default-features = false } -ere-platform-risc0 = { git = "https://github.com/eth-applied-research-group/ere", rev = "d15c6b495d0bc42bf160ecfbb11fa7600047c821", default-features = false } -ere-platform-sp1 = { git = "https://github.com/eth-applied-research-group/ere", rev = "d15c6b495d0bc42bf160ecfbb11fa7600047c821", default-features = false } -ere-platform-zisk = { git = "https://github.com/eth-applied-research-group/ere", rev = "d15c6b495d0bc42bf160ecfbb11fa7600047c821", default-features = false } - -# openvm -openvm = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2" } -openvm-ecc-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false } -openvm-sha2 = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false } -openvm-algebra-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false } -openvm-keccak256 = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.2", default-features = false } -openvm-revm-crypto = { git = "https://github.com/axiom-crypto/openvm-reth-benchmark.git", branch = "openvm-v1.4.1-reth-1.8.3", default-features = false } - -reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241", default-features = false } -reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241", default-features = false } -reth-stateless = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241", default-features = false } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241", default-features = false } -reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241", default-features = false } -reth-errors = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241", default-features = false } -reth-trie-common = { git = "https://github.com/paradigmxyz/reth", rev = "cfde951976bfa9100a6d9f806e06fb539ae25241", default-features = false } - -# alloy -alloy-primitives = { version = "1.4.1", default-features = false } -alloy-consensus = { version = "1.1.2", default-features = false } -alloy-eips = { version = "1.1.2", default-features = false } -alloy-hardforks = { version = "0.4.5", default-features = false } -alloy-chains = { version = "0.2.5", default-features = false } -alloy-rlp = { version = "0.3.10", default-features = false } -alloy-trie = { version = "0.9.1", default-features = false } - -# revm -revm = { version = "33.1.0", default-features = false } -revm-bytecode = { version = "7.1.1", default-features = false } - -# ethrex -ethrex-guest-program = { git = "https://github.com/lambdaclass/ethrex.git", rev = "c68e76d6b569c60a667a1240a91e637bf2ea0d0b", package = "guest_program" } -ethrex-common = { git = "https://github.com/lambdaclass/ethrex.git", rev = "c68e76d6b569c60a667a1240a91e637bf2ea0d0b", default-features = false } - -# misc -bincode = "1.3" -tracing = "0.1.41" -tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } -sha2 = { version = "0.10.9", default-features = false } -serde = { version = "1.0", default-features = false } -serde_json = { version = "*", default-features = false } -serde_with = { version = "3", default-features = false } -thiserror = { version = "2.0.0", default-features = false } -anyhow = { version = "1.0", default-features = false } -once_cell = { version = "1.21", default-features = false } -rkyv = "0.8.10" - -ethereum_ssz_derive = "0.9" -ethereum_ssz = "0.9" - -k256 = { version = "0.13", default-features = false, features = [ - "ecdsa", - "serde", - "pem", -] } -sparsestate = { git = "https://github.com/eth-act/zkvm-ethereum-mpt.git", tag = "v0.4.0" } - -[profile.release] -lto = true -panic = "abort" -codegen-units = 1 - -[profile.release.package.reth-airbender-stateless-validator] -opt-level = "s" - -[patch."https://github.com/openvm-org/openvm.git"] -openvm-ecc-guest = { git = "https://github.com/openvm-org//openvm.git", tag = "v1.4.2" } -openvm-sha2 = { git = "https://github.com/openvm-org//openvm.git", tag = "v1.4.2" } -openvm-pairing = { git = "https://github.com/openvm-org//openvm.git", tag = "v1.4.2" } -openvm-k256 = { git = "https://github.com/openvm-org//openvm.git", tag = "v1.4.2", package = "k256" } -openvm-p256 = { git = "https://github.com/openvm-org//openvm.git", tag = "v1.4.2", package = "p256" } -openvm = { git = "https://github.com/openvm-org//openvm.git", tag = "v1.4.2" } -openvm-algebra-guest = { git = "https://github.com/openvm-org//openvm.git", tag = "v1.4.2" } -openvm-keccak256 = { git = "https://github.com/openvm-org//openvm.git", tag = "v1.4.2" } - -[patch.crates-io] diff --git a/ere-guests/block-encoding-length/guest/Cargo.toml b/ere-guests/block-encoding-length/guest/Cargo.toml deleted file mode 100644 index 24e985f3..00000000 --- a/ere-guests/block-encoding-length/guest/Cargo.toml +++ /dev/null @@ -1,25 +0,0 @@ -[package] -name = "block-encoding-length-guest" -version.workspace = true -edition.workspace = true -rust-version.workspace = true -license.workspace = true - -[dependencies] -guest-libs.workspace = true -ere-io = { workspace = true, features = ["bincode"] } -ere-platform-trait.workspace = true - -serde = { workspace = true, features = ["derive"] } -reth-ethereum-primitives = { workspace = true, features = [ - "serde", - "serde-bincode-compat", -] } -ethereum_ssz.workspace = true - -[features] -default = ["std"] -std = ["guest-libs/std"] - -[lints] -workspace = true diff --git a/ere-guests/block-encoding-length/guest/src/guest.rs b/ere-guests/block-encoding-length/guest/src/guest.rs deleted file mode 100644 index 15d9e893..00000000 --- a/ere-guests/block-encoding-length/guest/src/guest.rs +++ /dev/null @@ -1,64 +0,0 @@ -//! [`Guest`] implementation for the block encoding length calculation. - -use ere_io::{ - Io, - serde::{IoSerde, bincode::BincodeLegacy}, -}; -use ere_platform_trait::Platform; -use guest_libs::{BincodeBlock, block_ssz}; -use reth_ethereum_primitives::Block; -use serde::{Deserialize, Serialize}; -use ssz::Encode; - -pub use guest_libs::guest::Guest; - -/// The encoding format used for the block encoding length calculation. -#[derive(Debug, Clone, Copy, Serialize, Deserialize)] -#[repr(u8)] -pub enum BlockEncodingFormat { - /// RLP encoding format - Rlp, - /// SSZ encoding format - Ssz, -} - -/// Input for the block encoding length calculation guest program. -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct BlockEncodingLengthInput { - /// The block to calculate the encoding length for. - pub block: BincodeBlock, - /// The number of times to repeat the encoding length calculation. - pub loop_count: u16, - /// The encoding format to use. - pub format: BlockEncodingFormat, -} - -/// [`Guest`] implementation for the block encoding length calculation. -#[derive(Debug, Clone)] -pub struct BlockEncodingLengthGuest; - -impl Guest for BlockEncodingLengthGuest { - type Io = IoSerde; - - fn compute(input: ::Input) -> ::Output { - match input.format { - BlockEncodingFormat::Rlp => { - P::cycle_scope("block_encoding_length_calculation", || { - for _ in 0..input.loop_count { - Block::rlp_length_for(&input.block.header, &input.block.body); - } - }); - } - BlockEncodingFormat::Ssz => { - let block: block_ssz::Block = - P::cycle_scope("block_format_conversion", || input.block.0.into()); - - P::cycle_scope("block_encoding_length_calculation", || { - for _ in 0..input.loop_count { - block.ssz_bytes_len(); - } - }); - } - } - } -} diff --git a/ere-guests/block-encoding-length/guest/src/lib.rs b/ere-guests/block-encoding-length/guest/src/lib.rs deleted file mode 100644 index de0f0c5e..00000000 --- a/ere-guests/block-encoding-length/guest/src/lib.rs +++ /dev/null @@ -1,5 +0,0 @@ -//! Stateless Reth guest - -#![no_std] - -pub mod guest; diff --git a/ere-guests/block-encoding-length/sp1/Cargo.toml b/ere-guests/block-encoding-length/sp1/Cargo.toml deleted file mode 100644 index 6607e5d2..00000000 --- a/ere-guests/block-encoding-length/sp1/Cargo.toml +++ /dev/null @@ -1,10 +0,0 @@ -[package] -name = "succinct-block-encoding-length" -version = "0.1.0" -edition = "2024" -rust-version = "1.85" -license = "MIT OR Apache-2.0" - -[dependencies] -ere-platform-sp1.workspace = true -block-encoding-length-guest = { workspace = true, features = ["std"] } diff --git a/ere-guests/block-encoding-length/sp1/src/main.rs b/ere-guests/block-encoding-length/sp1/src/main.rs deleted file mode 100644 index ba1d014d..00000000 --- a/ere-guests/block-encoding-length/sp1/src/main.rs +++ /dev/null @@ -1,12 +0,0 @@ -//! SP1 block encoding length benchmark - -#![no_main] - -use block_encoding_length_guest::guest::{BlockEncodingLengthGuest, Guest}; -use ere_platform_sp1::{SP1Platform, sp1_zkvm}; - -sp1_zkvm::entrypoint!(main); - -pub fn main() { - BlockEncodingLengthGuest::run::(); -} diff --git a/ere-guests/empty-program/openvm/Cargo.toml b/ere-guests/empty-program/openvm/Cargo.toml deleted file mode 100644 index 1c05b181..00000000 --- a/ere-guests/empty-program/openvm/Cargo.toml +++ /dev/null @@ -1,11 +0,0 @@ -[package] -name = "openvm-empty-program" -version = "0.1.0" -edition = "2021" -rust-version = "1.86" -license = "MIT OR Apache-2.0" - -[dependencies] -openvm = { workspace = true, features = ["std"] } -openvm-algebra-guest.workspace = true -openvm-ecc-guest.workspace = true diff --git a/ere-guests/empty-program/openvm/openvm.toml b/ere-guests/empty-program/openvm/openvm.toml deleted file mode 100644 index da3ae737..00000000 --- a/ere-guests/empty-program/openvm/openvm.toml +++ /dev/null @@ -1,67 +0,0 @@ -[app_vm_config.rv32i] - -[app_vm_config.rv32m] -range_tuple_checker_sizes = [256, 8192] - -[app_vm_config.io] - -[app_vm_config.keccak] - -[app_vm_config.sha256] - -[app_vm_config.bigint] -range_tuple_checker_sizes = [256, 8192] - -[app_vm_config.modular] -supported_moduli = [ - # bn254 (alt bn128) - "21888242871839275222246405745257275088696311157297823662689037894645226208583", # coordinate field - "21888242871839275222246405745257275088548364400416034343698204186575808495617", # scalar field - # secp256k1 - "115792089237316195423570985008687907853269984665640564039457584007908834671663", # coordinate field - "115792089237316195423570985008687907852837564279074904382605163141518161494337", # scalar field - # bls12_381 - "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787", # coordinate field - "52435875175126190479447740508185965837690552500527637822603658699938581184513", # scalar field -] - -[app_vm_config.fp2] -supported_moduli = [ - [ - "Bn254Fp2", - # bn254 (alt bn128) - "21888242871839275222246405745257275088696311157297823662689037894645226208583", - ], - # Bls12_381 - [ - "Bls12_381Fp2", - "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787", - ], -] - -# bn254 (alt bn128) -[[app_vm_config.ecc.supported_curves]] -struct_name = "Bn254G1Affine" -modulus = "21888242871839275222246405745257275088696311157297823662689037894645226208583" -scalar = "21888242871839275222246405745257275088548364400416034343698204186575808495617" -a = "0" -b = "3" - -# secp256k1 -[[app_vm_config.ecc.supported_curves]] -struct_name = "Secp256k1Point" -modulus = "115792089237316195423570985008687907853269984665640564039457584007908834671663" -scalar = "115792089237316195423570985008687907852837564279074904382605163141518161494337" -a = "0" -b = "7" - -# bls12_381 -[[app_vm_config.ecc.supported_curves]] -struct_name = "Bls12_381G1Affine" -modulus = "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787" -scalar = "52435875175126190479447740508185965837690552500527637822603658699938581184513" -a = "0" -b = "4" - -[app_vm_config.pairing] -supported_curves = ["Bn254", "Bls12_381"] diff --git a/ere-guests/empty-program/openvm/openvm_init.rs b/ere-guests/empty-program/openvm/openvm_init.rs deleted file mode 100644 index 03bc1fa1..00000000 --- a/ere-guests/empty-program/openvm/openvm_init.rs +++ /dev/null @@ -1,4 +0,0 @@ -// This file is automatically generated by cargo openvm. Do not rename or edit. -openvm_algebra_guest::moduli_macros::moduli_init! { "21888242871839275222246405745257275088696311157297823662689037894645226208583", "21888242871839275222246405745257275088548364400416034343698204186575808495617", "115792089237316195423570985008687907853269984665640564039457584007908834671663", "115792089237316195423570985008687907852837564279074904382605163141518161494337", "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787", "52435875175126190479447740508185965837690552500527637822603658699938581184513" } -openvm_algebra_guest::complex_macros::complex_init! { "Bn254Fp2" { mod_idx = 0 }, "Bls12_381Fp2" { mod_idx = 4 } } -openvm_ecc_guest::sw_macros::sw_init! { "Bn254G1Affine", "Secp256k1Point", "Bls12_381G1Affine" } diff --git a/ere-guests/empty-program/openvm/src/main.rs b/ere-guests/empty-program/openvm/src/main.rs deleted file mode 100644 index f8a8bcea..00000000 --- a/ere-guests/empty-program/openvm/src/main.rs +++ /dev/null @@ -1,6 +0,0 @@ -//! OpenVM guest program - -openvm::init!(); - -/// Entry point. -pub fn main() {} diff --git a/ere-guests/empty-program/pico/Cargo.toml b/ere-guests/empty-program/pico/Cargo.toml deleted file mode 100644 index 698d9440..00000000 --- a/ere-guests/empty-program/pico/Cargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "pico-empty-program" -version = "0.1.0" -edition = "2024" - -[dependencies] -ere-platform-pico.workspace = true diff --git a/ere-guests/empty-program/pico/src/main.rs b/ere-guests/empty-program/pico/src/main.rs deleted file mode 100644 index 55a4be4a..00000000 --- a/ere-guests/empty-program/pico/src/main.rs +++ /dev/null @@ -1,10 +0,0 @@ -//! Pico empty program guest. - -#![no_main] - -use ere_platform_pico::pico_sdk; - -pico_sdk::entrypoint!(main); - -/// Entry point. -pub fn main() {} diff --git a/ere-guests/empty-program/risc0/Cargo.toml b/ere-guests/empty-program/risc0/Cargo.toml deleted file mode 100644 index 03ba0826..00000000 --- a/ere-guests/empty-program/risc0/Cargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "risc0-empty-program" -version = "0.1.0" -edition = "2021" - -[dependencies] -ere-platform-risc0 = { workspace = true, features = ["std"] } diff --git a/ere-guests/empty-program/risc0/src/main.rs b/ere-guests/empty-program/risc0/src/main.rs deleted file mode 100644 index ef9a2461..00000000 --- a/ere-guests/empty-program/risc0/src/main.rs +++ /dev/null @@ -1,8 +0,0 @@ -//! Risc0 guest program - -extern crate alloc; - -use ere_platform_risc0::risc0_zkvm as _; - -/// Entry point. -pub fn main() {} diff --git a/ere-guests/empty-program/sp1/Cargo.toml b/ere-guests/empty-program/sp1/Cargo.toml deleted file mode 100644 index 17d1dd46..00000000 --- a/ere-guests/empty-program/sp1/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "succinct-empty-guest" -version = "0.1.0" -edition = "2024" -rust-version = "1.85" -license = "MIT OR Apache-2.0" - -[dependencies] -ere-platform-sp1.workspace = true diff --git a/ere-guests/empty-program/sp1/src/main.rs b/ere-guests/empty-program/sp1/src/main.rs deleted file mode 100644 index 1c512fd9..00000000 --- a/ere-guests/empty-program/sp1/src/main.rs +++ /dev/null @@ -1,8 +0,0 @@ -//! SP1 empty guest program - -#![no_main] - -use ere_platform_sp1::sp1_zkvm; - -sp1_zkvm::entrypoint!(main); -pub fn main() {} diff --git a/ere-guests/empty-program/zisk/Cargo.toml b/ere-guests/empty-program/zisk/Cargo.toml deleted file mode 100644 index 0f8c95a6..00000000 --- a/ere-guests/empty-program/zisk/Cargo.toml +++ /dev/null @@ -1,12 +0,0 @@ -[package] -name = "zisk-empty-program" -version.workspace = true -edition.workspace = true -rust-version.workspace = true -license.workspace = true - -[dependencies] -ere-platform-zisk.workspace = true - -[lints] -workspace = true diff --git a/ere-guests/empty-program/zisk/src/main.rs b/ere-guests/empty-program/zisk/src/main.rs deleted file mode 100644 index acb9de85..00000000 --- a/ere-guests/empty-program/zisk/src/main.rs +++ /dev/null @@ -1,9 +0,0 @@ -//! ZisK guest program -#![no_main] - -use ere_platform_zisk::ziskos; - -ziskos::entrypoint!(main); - -/// Entry point -pub fn main() {} diff --git a/ere-guests/libs/Cargo.toml b/ere-guests/libs/Cargo.toml deleted file mode 100644 index 88f17e17..00000000 --- a/ere-guests/libs/Cargo.toml +++ /dev/null @@ -1,41 +0,0 @@ -[package] -name = "guest-libs" -version.workspace = true -edition.workspace = true -rust-version.workspace = true -license.workspace = true - -[dependencies] -reth-stateless.workspace = true -reth-primitives-traits.workspace = true -reth-ethereum-primitives = { workspace = true, features = [ - "serde", - "serde-bincode-compat", -] } - -alloy-consensus.workspace = true -alloy-primitives.workspace = true -alloy-eips.workspace = true - -serde = { workspace = true, features = ["derive"] } -serde_with.workspace = true - -ethereum_ssz_derive = { workspace = true } -ethereum_ssz = { workspace = true } - -anyhow.workspace = true -thiserror.workspace = true -sha2.workspace = true - -ere-io.workspace = true -ere-platform-trait.workspace = true - -[dev-dependencies] -serde_json.workspace = true - -[features] -default = ["std"] -std = [] - -[lints] -workspace = true diff --git a/ere-guests/libs/src/block_ssz.rs b/ere-guests/libs/src/block_ssz.rs deleted file mode 100644 index 7354fd5e..00000000 --- a/ere-guests/libs/src/block_ssz.rs +++ /dev/null @@ -1,566 +0,0 @@ -//! SSZ-encoded representations of Ethereum block structures. -//! -//! This module provides SSZ (Simple Serialize) compatible structures for Ethereum blocks. -//! -//! Note: SSZ is not currently used in the execution layer. For this reason, it doesn't yet have native support in -//! Reth, so we define our own SSZ-compatible structures here. Whenever Reth adds native SSZ support, -//! we can consider removing this module and using the native types directly. - -use alloc::vec::Vec; -use alloy_eips::eip4895; -use alloy_primitives::{Address, B64, B256, BlockNumber, Bloom, Bytes, U256}; - -/// SSZ-serializable representation of an Ethereum block. -#[derive(Debug, PartialEq, Eq, ssz_derive::Encode, ssz_derive::Decode)] -pub struct Block { - header: Header, - body: BlockBody, -} - -impl - From< - alloy_consensus::Block< - alloy_consensus::EthereumTxEnvelope, - alloy_consensus::Header, - >, - > for Block -{ - fn from( - block: alloy_consensus::Block< - alloy_consensus::EthereumTxEnvelope, - alloy_consensus::Header, - >, - ) -> Self { - Self { - header: block.header.into(), - body: block.body.into(), - } - } -} - -/// SSZ-serializable representation of a block body. -#[derive(Debug, PartialEq, Eq, ssz_derive::Encode, ssz_derive::Decode)] -pub struct BlockBody { - transactions: Vec, - ommers: Vec
, - withdrawals: Option>, -} - -impl - From< - alloy_consensus::BlockBody>, - > for BlockBody -{ - fn from( - body: alloy_consensus::BlockBody< - alloy_consensus::EthereumTxEnvelope, - >, - ) -> Self { - Self { - transactions: body - .transactions - .into_iter() - .map(EthereumTxEnvelope::from) - .collect(), - ommers: body.ommers.into_iter().map(Header::from).collect(), - withdrawals: body - .withdrawals - .map(|ws| ws.into_iter().map(Withdrawal::from).collect()), - } - } -} - -/// SSZ-serializable representation of an Ethereum block header. -#[derive(Debug, PartialEq, Eq, ssz_derive::Encode, ssz_derive::Decode)] -pub struct Header { - parent_hash: B256, - ommers_hash: B256, - beneficiary: Address, - state_root: B256, - transactions_root: B256, - receipts_root: B256, - logs_bloom: Bloom, - difficulty: U256, - number: BlockNumber, - gas_limit: u64, - gas_used: u64, - timestamp: u64, - extra_data: Bytes, - mix_hash: B256, - nonce: B64, - base_fee_per_gas: Option, - withdrawals_root: Option, - blob_gas_used: Option, - excess_blob_gas: Option, - parent_beacon_block_root: Option, - requests_hash: Option, -} - -impl From for Header { - fn from(header: alloy_consensus::Header) -> Self { - Self { - parent_hash: header.parent_hash, - ommers_hash: header.ommers_hash, - beneficiary: header.beneficiary, - state_root: header.state_root, - transactions_root: header.transactions_root, - receipts_root: header.receipts_root, - logs_bloom: header.logs_bloom, - difficulty: header.difficulty, - number: header.number, - gas_limit: header.gas_limit, - gas_used: header.gas_used, - timestamp: header.timestamp, - extra_data: header.extra_data, - mix_hash: header.mix_hash, - nonce: header.nonce, - base_fee_per_gas: header.base_fee_per_gas, - withdrawals_root: header.withdrawals_root, - blob_gas_used: header.blob_gas_used, - excess_blob_gas: header.excess_blob_gas, - parent_beacon_block_root: header.parent_beacon_block_root, - requests_hash: header.requests_hash, - } - } -} - -/// SSZ-serializable representation of a validator withdrawal. -#[derive(Debug, PartialEq, Eq, ssz_derive::Encode, ssz_derive::Decode)] -pub struct Withdrawal { - index: u64, - validator_index: u64, - address: Address, - amount: u64, -} - -impl From for Withdrawal { - fn from(withdrawal: eip4895::Withdrawal) -> Self { - Self { - index: withdrawal.index, - validator_index: withdrawal.validator_index, - address: withdrawal.address, - amount: withdrawal.amount, - } - } -} - -/// SSZ-serializable transaction envelope supporting a subset of Ethereum transaction types. -#[derive(Debug, PartialEq, Eq, ssz_derive::Encode, ssz_derive::Decode)] -#[ssz(enum_behaviour = "union")] -pub enum EthereumTxEnvelope { - /// Legacy transaction type. - Legacy(SignedTx), - /// EIP-1559 transaction type. - Eip1559(SignedTx), - /// EIP-4844 transaction type. - Eip4844(SignedTx), - /// EIP-2930 transaction type. - Eip2930(SignedTx), - /// EIP-7702 transaction type. - Eip7702(SignedTx), -} - -impl From> for EthereumTxEnvelope { - fn from(tx: alloy_consensus::EthereumTxEnvelope) -> Self { - match tx { - alloy_consensus::EthereumTxEnvelope::Legacy(tx) => Self::Legacy(tx.into()), - alloy_consensus::EthereumTxEnvelope::Eip1559(tx) => Self::Eip1559(tx.into()), - alloy_consensus::EthereumTxEnvelope::Eip4844(tx) => Self::Eip4844(tx.into()), - alloy_consensus::EthereumTxEnvelope::Eip2930(tx) => Self::Eip2930(tx.into()), - alloy_consensus::EthereumTxEnvelope::Eip7702(tx) => Self::Eip7702(tx.into()), - } - } -} - -/// SSZ-serializable representation of a signed legacy Ethereum transaction. -#[derive(Debug, PartialEq, Eq, ssz_derive::Encode, ssz_derive::Decode)] -pub struct SignedTx { - tx: Tx, - signature: Signature, -} - -impl From> for SignedTx { - fn from(signed_tx: alloy_consensus::Signed) -> Self { - Self { - tx: signed_tx.tx().clone().into(), - signature: (*signed_tx.signature()).into(), - } - } -} - -impl From> for SignedTx { - fn from(signed_tx: alloy_consensus::Signed) -> Self { - Self { - tx: signed_tx.tx().clone().into(), - signature: (*signed_tx.signature()).into(), - } - } -} - -impl From> for SignedTx { - fn from(signed_tx: alloy_consensus::Signed) -> Self { - Self { - tx: signed_tx.tx().clone().into(), - signature: (*signed_tx.signature()).into(), - } - } -} - -impl From> for SignedTx { - fn from(signed_tx: alloy_consensus::Signed) -> Self { - Self { - tx: signed_tx.tx().clone().into(), - signature: (*signed_tx.signature()).into(), - } - } -} - -impl From> for SignedTx { - fn from(signed_tx: alloy_consensus::Signed) -> Self { - Self { - tx: signed_tx.tx().clone().into(), - signature: (*signed_tx.signature()).into(), - } - } -} - -/// SSZ-serializable representation of an ECDSA signature. -#[derive(Debug, PartialEq, Eq, ssz_derive::Encode, ssz_derive::Decode)] -pub struct Signature { - y_parity: bool, - r: U256, - s: U256, -} - -impl From for Signature { - fn from(signature: alloy_primitives::Signature) -> Self { - Self { - y_parity: signature.v(), - r: signature.r(), - s: signature.s(), - } - } -} - -/// SSZ-serializable representation of a legacy Ethereum transaction. -#[derive(Debug, PartialEq, Eq, ssz_derive::Encode, ssz_derive::Decode)] -pub struct TxLegacy { - chain_id: Option, - nonce: u64, - gas_price: u128, - gas_limit: u64, - to: Address, - value: U256, - input: Bytes, -} - -impl From for TxLegacy { - fn from(tx: alloy_consensus::TxLegacy) -> Self { - Self { - chain_id: tx.chain_id, - nonce: tx.nonce, - gas_price: tx.gas_price, - gas_limit: tx.gas_limit, - to: match tx.to { - alloy_primitives::TxKind::Create => Address::default(), - alloy_primitives::TxKind::Call(addr) => addr, - }, - value: tx.value, - input: tx.input, - } - } -} - -/// SSZ-serializable representation of an EIP-1559 transaction. -#[derive(Debug, PartialEq, Eq, ssz_derive::Encode, ssz_derive::Decode)] -pub struct TxEip1559 { - chain_id: ChainId, - nonce: u64, - gas_limit: u64, - max_fee_per_gas: u128, - max_priority_fee_per_gas: u128, - to: Address, - value: U256, - access_list: Vec, - input: Bytes, -} - -impl From for TxEip1559 { - fn from(value: alloy_consensus::transaction::TxEip1559) -> Self { - Self { - chain_id: value.chain_id, - nonce: value.nonce, - gas_limit: value.gas_limit, - max_fee_per_gas: value.max_fee_per_gas, - max_priority_fee_per_gas: value.max_priority_fee_per_gas, - to: match value.to { - alloy_primitives::TxKind::Create => Address::default(), - alloy_primitives::TxKind::Call(addr) => addr, - }, - value: value.value, - access_list: value - .access_list - .iter() - .map(|al| AccessListItem { - address: al.address, - storage_keys: al.storage_keys.clone(), - }) - .collect(), - input: value.input, - } - } -} - -/// SSZ-serializable representation of an access list. -#[derive(Debug, PartialEq, Eq, ssz_derive::Encode, ssz_derive::Decode)] -pub struct AccessListItem { - address: Address, - storage_keys: Vec, -} - -/// SSZ-serializable representation of an EIP-4844 transaction. -#[derive(Debug, PartialEq, Eq, ssz_derive::Encode, ssz_derive::Decode)] -pub struct TxEip4844 { - chain_id: ChainId, - nonce: u64, - gas_limit: u64, - max_fee_per_gas: u128, - max_priority_fee_per_gas: u128, - to: Address, - value: U256, - access_list: Vec, - blob_versioned_hashes: Vec, - max_fee_per_blob_gas: u128, - input: Bytes, -} - -impl From for TxEip4844 { - fn from(value: alloy_consensus::transaction::TxEip4844) -> Self { - Self { - chain_id: value.chain_id, - nonce: value.nonce, - gas_limit: value.gas_limit, - max_fee_per_gas: value.max_fee_per_gas, - max_priority_fee_per_gas: value.max_priority_fee_per_gas, - to: value.to, - value: value.value, - access_list: value - .access_list - .iter() - .map(|al| AccessListItem { - address: al.address, - storage_keys: al.storage_keys.clone(), - }) - .collect(), - blob_versioned_hashes: value.blob_versioned_hashes, - max_fee_per_blob_gas: value.max_fee_per_blob_gas, - input: value.input, - } - } -} - -/// SSZ-serializable representation of an EIP-2930 transaction. -#[derive(Debug, PartialEq, Eq, ssz_derive::Encode, ssz_derive::Decode)] -pub struct TxEip2930 { - chain_id: ChainId, - nonce: u64, - gas_price: u128, - gas_limit: u64, - to: Address, - value: U256, - access_list: Vec, - input: Bytes, -} - -impl From for TxEip2930 { - fn from(value: alloy_consensus::transaction::TxEip2930) -> Self { - Self { - chain_id: value.chain_id, - nonce: value.nonce, - gas_price: value.gas_price, - gas_limit: value.gas_limit, - to: match value.to { - alloy_primitives::TxKind::Create => Address::default(), - alloy_primitives::TxKind::Call(addr) => addr, - }, - value: value.value, - access_list: value - .access_list - .iter() - .map(|al| AccessListItem { - address: al.address, - storage_keys: al.storage_keys.clone(), - }) - .collect(), - input: value.input, - } - } -} - -/// SSZ-serializable representation of an EIP-7702 transaction. -#[derive(Debug, PartialEq, Eq, ssz_derive::Encode, ssz_derive::Decode)] -pub struct TxEip7702 { - chain_id: ChainId, - nonce: u64, - gas_limit: u64, - max_fee_per_gas: u128, - max_priority_fee_per_gas: u128, - to: Address, - value: U256, - access_list: Vec, - authorization_list: Vec, - input: Bytes, -} - -impl From for TxEip7702 { - fn from(value: alloy_consensus::transaction::TxEip7702) -> Self { - Self { - chain_id: value.chain_id, - nonce: value.nonce, - gas_limit: value.gas_limit, - max_fee_per_gas: value.max_fee_per_gas, - max_priority_fee_per_gas: value.max_priority_fee_per_gas, - to: value.to, - value: value.value, - access_list: value - .access_list - .iter() - .map(|al| AccessListItem { - address: al.address, - storage_keys: al.storage_keys.clone(), - }) - .collect(), - authorization_list: value - .authorization_list - .into_iter() - .map(SignedAuthorization::from) - .collect(), - input: value.input, - } - } -} - -/// SSZ-serializable representation of an authorization for an EIP-7702 transaction. -#[derive(Debug, PartialEq, Eq, ssz_derive::Encode, ssz_derive::Decode)] -pub struct SignedAuthorization { - inner: Authorization, - y_parity: bool, - r: U256, - s: U256, -} - -impl From for SignedAuthorization { - fn from(auth: alloy_eips::eip7702::SignedAuthorization) -> Self { - Self { - inner: auth.inner().clone().into(), - y_parity: auth.signature().unwrap().v(), - r: auth.signature().unwrap().r(), - s: auth.signature().unwrap().s(), - } - } -} - -/// SSZ-serializable representation of an authorization. -#[derive(Debug, PartialEq, Eq, ssz_derive::Encode, ssz_derive::Decode)] -pub struct Authorization { - chain_id: U256, - address: Address, - nonce: u64, -} - -impl From for Authorization { - fn from(auth: alloy_eips::eip7702::Authorization) -> Self { - Self { - chain_id: auth.chain_id, - address: auth.address, - nonce: auth.nonce, - } - } -} - -/// Type alias for Ethereum chain identifiers. -pub type ChainId = u64; - -#[cfg(test)] -mod tests { - use ssz::{Decode, Encode}; - - use crate::{BincodeBlock, block_ssz::Block}; - - #[test] - fn test_block_ssz_encode_decode() { - // Sample block data in JSON format for testing - let block_json = r#" - { - "header": { - "parent_hash": "0x5448165948733a50620ce604351e52218152fce74695792bb63042af34731072", - "ommers_hash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "beneficiary": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "state_root": "0x275620cf6a1271bf8cae4edadda0076897f09cd2bef8533ea7e7e13ba8d8e225", - "transactions_root": "0x7c610e7810983ef78836bef4c3beb6aec3131a7589898d46904d302c76ea4836", - "receipts_root": "0x6ebeb82e2fd4ad8ef581ba011ed8590752fbb658e86bb4f29d186cba3f7b1357", - "withdrawals_root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logs_bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x0", - "number": 2, - "gas_limit": 100000000000, - "gas_used": 1000000, - "timestamp": 24, - "mix_hash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "base_fee_per_gas": 7, - "blob_gas_used": 0, - "excess_blob_gas": 0, - "parent_beacon_block_root": "0x0000000000000000000000000000000000000000000000000000000000000000", - "requests_hash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "extra_data": "0x" - }, - "body": { - "transactions": [ - { - "signature": { - "r": "0x8f29ffe2060a6e48c5fd6c1e225d53638b64602fd1ffdab6896f867d4a58d5e0", - "s": "0x1901323b25372c41b46c46e1c63f4bb246a3e22b9c61536c45ed19008cbbd0b8", - "yParity": "0x0", - "v": "0x0" - }, - "transaction": { - "Legacy": { - "chain_id": "0x1", - "nonce": 0, - "gas_price": 10, - "gas_limit": 1000000, - "to": "0x0000000000000000000000000000000000001100", - "value": "0x0", - "input": "0x" - } - } - } - ], - "ommers": [], - "withdrawals": [] - } - }"#; - - // Parse the JSON into our bincode-compatible format - let bincode_block: BincodeBlock = - serde_json::from_str(block_json).expect("Failed to parse test block JSON"); - - // Convert to our SSZ-compatible block format - let ssz_block: Block = bincode_block.0.into(); - - // Encode the block using SSZ - let ssz_bytes = ssz_block.as_ssz_bytes(); - assert!(!ssz_bytes.is_empty(), "SSZ encoding should not be empty"); - - // Decode the block back from SSZ bytes - let decoded_block: Block = - Block::from_ssz_bytes(&ssz_bytes).expect("Failed to decode SSZ bytes back to Block"); - - // Verify that round-trip encoding/decoding preserves the data - assert_eq!( - ssz_block, decoded_block, - "Round-trip encoding should preserve block data" - ); - } -} diff --git a/ere-guests/libs/src/guest.rs b/ere-guests/libs/src/guest.rs deleted file mode 100644 index 2f69f4ce..00000000 --- a/ere-guests/libs/src/guest.rs +++ /dev/null @@ -1,56 +0,0 @@ -//! This module provides trait for guest program abstraction, that can also be -//! shared between Rust guest and host. - -use ere_io::Io; -use ere_platform_trait::{OutputHashedPlatform, Platform}; -use sha2::Sha256; - -/// Guest program that can be ran given [`Platform`] implementation. -pub trait Guest: Clone { - /// The I/O type that defines input and output serialization for this guest program. - type Io: Io; - - /// Executes the core computation logic of the guest program. - /// - /// This method takes the deserialized input and produces the output for the guest program. - /// It is called by [`Guest::run`] after reading and deserializing the input. - fn compute(input: ::Input) -> ::Output; - - /// Runs the complete guest program workflow: reads input, computes output, and writes output. - /// - /// This is the main entry point for executing a guest program. It: - /// 1. Reads the input with the platform and deserializes it using [`Io::deserialize_input`] - /// 2. Calls [`Guest::compute`] to process the input - /// 3. Serializes the output using [`Io::serialize_output`] and writes it with the platform - fn run() { - let input = P::cycle_scope("read_input", || { - let input_bytes = P::read_whole_input(); - Self::Io::deserialize_input(&input_bytes).unwrap() - }); - - let output = Self::compute::

(input); - - P::cycle_scope("write_output", || { - let output_bytes = Self::Io::serialize_output(&output).unwrap(); - P::write_whole_output(&output_bytes); - }); - } - - /// Runs the complete guest program workflow but hash the output by sha256 before calling the - /// inner `P::write_whole_output`. - fn run_output_sha256() { - Self::run::>() - } -} - -/// Associated type `Io` of [`Guest`]. -pub type GuestIo = ::Io; - -/// Associated type `Input` of [`Guest::Io`]. -pub type GuestInput = as Io>::Input; - -/// Associated type `Output` of [`Guest::Io`]. -pub type GuestOutput = as Io>::Output; - -/// Associated type `Error` of [`Guest::Io`]. -pub type GuestError = as Io>::Error; diff --git a/ere-guests/libs/src/lib.rs b/ere-guests/libs/src/lib.rs deleted file mode 100644 index 2559bcf9..00000000 --- a/ere-guests/libs/src/lib.rs +++ /dev/null @@ -1,34 +0,0 @@ -//! Library for guest programs containing shared types and utilities. -#![cfg_attr(not(test), warn(unused_crate_dependencies))] -#![cfg_attr(not(feature = "std"), no_std)] - -#[allow(unused_extern_crates)] -extern crate alloc; - -use core::ops::Deref; - -use reth_ethereum_primitives::Block; -use serde::{Deserialize, Serialize}; -use serde_with::serde_as; - -pub mod block_ssz; -pub mod guest; -pub mod senders; - -/// Block wrapper that supports bincode serialization -#[serde_as] -#[derive(Clone, Debug, Default, Serialize, Deserialize)] -pub struct BincodeBlock( - #[serde_as( - as = "reth_primitives_traits::serde_bincode_compat::Block" - )] - pub Block, -); - -impl Deref for BincodeBlock { - type Target = Block; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} diff --git a/ere-guests/libs/src/senders.rs b/ere-guests/libs/src/senders.rs deleted file mode 100644 index 75fe06eb..00000000 --- a/ere-guests/libs/src/senders.rs +++ /dev/null @@ -1,41 +0,0 @@ -//! This module provies sender recovery helpers for witness generation and block stateless validation. - -use alloc::{format, vec::Vec}; -use anyhow::Context; -use reth_ethereum_primitives::TransactionSigned; -use reth_stateless::UncompressedPublicKey; - -/// Errors that can occur during stateless validation. -#[derive(Debug, thiserror::Error)] -pub enum StatelessValidationError { - /// Error during signer recovery. - #[error("signer recovery failed")] - SignerRecovery, - /// Error when signature has non-normalized s value in homestead block. - #[error("signature s value not normalized for homestead block")] - HomesteadSignatureNotNormalized, - /// Custom error. - #[error("{0}")] - Custom(&'static str), -} - -/// Recover public keys from transaction signatures. -pub fn recover_signers<'a, I>(txs: I) -> anyhow::Result> -where - I: IntoIterator, -{ - txs.into_iter() - .enumerate() - .map(|(i, tx)| { - tx.signature() - .recover_from_prehash(&tx.signature_hash()) - .map(|keys| { - UncompressedPublicKey( - TryInto::<[u8; 65]>::try_into(keys.to_encoded_point(false).as_bytes()) - .unwrap(), - ) - }) - .with_context(|| format!("failed to recover signature for tx #{i}")) - }) - .collect::, _>>() -} diff --git a/ere-guests/panic-guest/openvm/Cargo.toml b/ere-guests/panic-guest/openvm/Cargo.toml deleted file mode 100644 index 04186e6c..00000000 --- a/ere-guests/panic-guest/openvm/Cargo.toml +++ /dev/null @@ -1,11 +0,0 @@ -[package] -name = "openvm-panic-guest" -version = "0.1.0" -edition = "2021" -rust-version = "1.86" -license = "MIT OR Apache-2.0" - -[dependencies] -openvm = { workspace = true, features = ["std"] } -openvm-algebra-guest.workspace = true -openvm-ecc-guest.workspace = true diff --git a/ere-guests/panic-guest/openvm/openvm.toml b/ere-guests/panic-guest/openvm/openvm.toml deleted file mode 100644 index da3ae737..00000000 --- a/ere-guests/panic-guest/openvm/openvm.toml +++ /dev/null @@ -1,67 +0,0 @@ -[app_vm_config.rv32i] - -[app_vm_config.rv32m] -range_tuple_checker_sizes = [256, 8192] - -[app_vm_config.io] - -[app_vm_config.keccak] - -[app_vm_config.sha256] - -[app_vm_config.bigint] -range_tuple_checker_sizes = [256, 8192] - -[app_vm_config.modular] -supported_moduli = [ - # bn254 (alt bn128) - "21888242871839275222246405745257275088696311157297823662689037894645226208583", # coordinate field - "21888242871839275222246405745257275088548364400416034343698204186575808495617", # scalar field - # secp256k1 - "115792089237316195423570985008687907853269984665640564039457584007908834671663", # coordinate field - "115792089237316195423570985008687907852837564279074904382605163141518161494337", # scalar field - # bls12_381 - "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787", # coordinate field - "52435875175126190479447740508185965837690552500527637822603658699938581184513", # scalar field -] - -[app_vm_config.fp2] -supported_moduli = [ - [ - "Bn254Fp2", - # bn254 (alt bn128) - "21888242871839275222246405745257275088696311157297823662689037894645226208583", - ], - # Bls12_381 - [ - "Bls12_381Fp2", - "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787", - ], -] - -# bn254 (alt bn128) -[[app_vm_config.ecc.supported_curves]] -struct_name = "Bn254G1Affine" -modulus = "21888242871839275222246405745257275088696311157297823662689037894645226208583" -scalar = "21888242871839275222246405745257275088548364400416034343698204186575808495617" -a = "0" -b = "3" - -# secp256k1 -[[app_vm_config.ecc.supported_curves]] -struct_name = "Secp256k1Point" -modulus = "115792089237316195423570985008687907853269984665640564039457584007908834671663" -scalar = "115792089237316195423570985008687907852837564279074904382605163141518161494337" -a = "0" -b = "7" - -# bls12_381 -[[app_vm_config.ecc.supported_curves]] -struct_name = "Bls12_381G1Affine" -modulus = "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787" -scalar = "52435875175126190479447740508185965837690552500527637822603658699938581184513" -a = "0" -b = "4" - -[app_vm_config.pairing] -supported_curves = ["Bn254", "Bls12_381"] diff --git a/ere-guests/panic-guest/openvm/openvm_init.rs b/ere-guests/panic-guest/openvm/openvm_init.rs deleted file mode 100644 index 03bc1fa1..00000000 --- a/ere-guests/panic-guest/openvm/openvm_init.rs +++ /dev/null @@ -1,4 +0,0 @@ -// This file is automatically generated by cargo openvm. Do not rename or edit. -openvm_algebra_guest::moduli_macros::moduli_init! { "21888242871839275222246405745257275088696311157297823662689037894645226208583", "21888242871839275222246405745257275088548364400416034343698204186575808495617", "115792089237316195423570985008687907853269984665640564039457584007908834671663", "115792089237316195423570985008687907852837564279074904382605163141518161494337", "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787", "52435875175126190479447740508185965837690552500527637822603658699938581184513" } -openvm_algebra_guest::complex_macros::complex_init! { "Bn254Fp2" { mod_idx = 0 }, "Bls12_381Fp2" { mod_idx = 4 } } -openvm_ecc_guest::sw_macros::sw_init! { "Bn254G1Affine", "Secp256k1Point", "Bls12_381G1Affine" } diff --git a/ere-guests/panic-guest/openvm/src/main.rs b/ere-guests/panic-guest/openvm/src/main.rs deleted file mode 100644 index 2aa9df8a..00000000 --- a/ere-guests/panic-guest/openvm/src/main.rs +++ /dev/null @@ -1,8 +0,0 @@ -//! OpenVM guest program - -openvm::init!(); - -/// Entry point. -pub fn main() { - panic!("The ticker is eth") -} diff --git a/ere-guests/panic-guest/pico/Cargo.toml b/ere-guests/panic-guest/pico/Cargo.toml deleted file mode 100644 index acdefb4b..00000000 --- a/ere-guests/panic-guest/pico/Cargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "pico-panic-guest" -version = "0.1.0" -edition = "2024" - -[dependencies] -ere-platform-pico.workspace = true diff --git a/ere-guests/panic-guest/pico/src/main.rs b/ere-guests/panic-guest/pico/src/main.rs deleted file mode 100644 index f43edefb..00000000 --- a/ere-guests/panic-guest/pico/src/main.rs +++ /dev/null @@ -1,12 +0,0 @@ -//! Pico panic guest. - -#![no_main] - -use ere_platform_pico::pico_sdk; - -pico_sdk::entrypoint!(main); - -/// Entry point. -pub fn main() { - panic!("The ticker is eth") -} diff --git a/ere-guests/panic-guest/risc0/Cargo.toml b/ere-guests/panic-guest/risc0/Cargo.toml deleted file mode 100644 index a10fc65b..00000000 --- a/ere-guests/panic-guest/risc0/Cargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "risc0-panic-guest" -version = "0.1.0" -edition = "2021" - -[dependencies] -ere-platform-risc0 = { workspace = true, features = ["std"] } diff --git a/ere-guests/panic-guest/risc0/src/main.rs b/ere-guests/panic-guest/risc0/src/main.rs deleted file mode 100644 index 2a48188d..00000000 --- a/ere-guests/panic-guest/risc0/src/main.rs +++ /dev/null @@ -1,10 +0,0 @@ -//! Risc0 panic guest program - -extern crate alloc; - -use ere_platform_risc0::risc0_zkvm as _; - -/// Entry point. -pub fn main() { - panic!("The ticker is eth") -} diff --git a/ere-guests/panic-guest/sp1/Cargo.toml b/ere-guests/panic-guest/sp1/Cargo.toml deleted file mode 100644 index e5e1ea92..00000000 --- a/ere-guests/panic-guest/sp1/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "succinct-panic-guest" -version = "0.1.0" -edition = "2024" -rust-version = "1.85" -license = "MIT OR Apache-2.0" - -[dependencies] -ere-platform-sp1.workspace = true diff --git a/ere-guests/panic-guest/sp1/src/main.rs b/ere-guests/panic-guest/sp1/src/main.rs deleted file mode 100644 index 5210e3a3..00000000 --- a/ere-guests/panic-guest/sp1/src/main.rs +++ /dev/null @@ -1,10 +0,0 @@ -//! SP1 panic guest program - -#![no_main] - -use ere_platform_sp1::sp1_zkvm; - -sp1_zkvm::entrypoint!(main); -pub fn main() { - panic!("The ticker is eth") -} diff --git a/ere-guests/panic-guest/zisk/Cargo.toml b/ere-guests/panic-guest/zisk/Cargo.toml deleted file mode 100644 index 1e2e5a93..00000000 --- a/ere-guests/panic-guest/zisk/Cargo.toml +++ /dev/null @@ -1,12 +0,0 @@ -[package] -name = "zisk-panic-guest" -version.workspace = true -edition.workspace = true -rust-version.workspace = true -license.workspace = true - -[dependencies] -ere-platform-zisk.workspace = true - -[lints] -workspace = true diff --git a/ere-guests/panic-guest/zisk/src/main.rs b/ere-guests/panic-guest/zisk/src/main.rs deleted file mode 100644 index 182234a2..00000000 --- a/ere-guests/panic-guest/zisk/src/main.rs +++ /dev/null @@ -1,11 +0,0 @@ -//! ZisK panic guest program -#![no_main] - -use ere_platform_zisk::ziskos; - -ziskos::entrypoint!(main); - -/// Entry point -pub fn main() { - panic!("The ticker is eth") -} diff --git a/ere-guests/stateless-validator/ethrex/guest/Cargo.toml b/ere-guests/stateless-validator/ethrex/guest/Cargo.toml deleted file mode 100644 index cd450682..00000000 --- a/ere-guests/stateless-validator/ethrex/guest/Cargo.toml +++ /dev/null @@ -1,20 +0,0 @@ -[package] -name = "ethrex-guest" -version.workspace = true -edition.workspace = true -rust-version.workspace = true -license.workspace = true - -[dependencies] -guest-libs.workspace = true -ere-io = { workspace = true, features = ["rkyv"] } -ere-platform-trait.workspace = true - -ethrex-guest-program.workspace = true -ethrex-common.workspace = true - -rkyv.workspace = true - -[features] -default = ["std"] -std = ["guest-libs/std"] diff --git a/ere-guests/stateless-validator/ethrex/guest/src/guest.rs b/ere-guests/stateless-validator/ethrex/guest/src/guest.rs deleted file mode 100644 index 6c54e5ee..00000000 --- a/ere-guests/stateless-validator/ethrex/guest/src/guest.rs +++ /dev/null @@ -1,96 +0,0 @@ -//! Stateless validator guest program. - -use core::fmt::Debug; -use ere_io::{ - Io, - rkyv::{ - IoRkyv, - rkyv::{Archive, Deserialize, Serialize}, - }, -}; -use ere_platform_trait::Platform; -use ethrex_common::types::block_execution_witness::ExecutionWitness; -use ethrex_guest_program::{execution::execution_program, input::ProgramInput}; - -pub use guest_libs::guest::Guest; - -/// Input for the Ethrex stateless validator guest program. -#[derive(Serialize, Deserialize, Archive)] -pub struct EthrexStatelessValidatorInput(pub ProgramInput); - -impl Clone for EthrexStatelessValidatorInput { - fn clone(&self) -> Self { - Self(ProgramInput { - blocks: self.0.blocks.clone(), - execution_witness: self.0.execution_witness.clone(), - elasticity_multiplier: self.0.elasticity_multiplier, - fee_configs: self.0.fee_configs.clone(), - }) - } -} - -impl Debug for EthrexStatelessValidatorInput { - fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { - struct DebugExecutionWitness<'a>(&'a ExecutionWitness); - - impl Debug for DebugExecutionWitness<'_> { - fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { - f.debug_struct("ExecutionWitness") - .field("codes", &self.0.codes) - .field("block_headers_bytes", &self.0.block_headers_bytes) - .field("first_block_number", &self.0.first_block_number) - .field("chain_config", &self.0.chain_config) - .field("state_trie_root", &self.0.state_trie_root) - .field("storage_trie_roots", &self.0.storage_trie_roots) - .field("keys", &self.0.keys) - .finish() - } - } - - f.debug_struct("EthrexStatelessValidatorInput") - .field("blocks", &self.0.blocks) - .field( - "execution_witness", - &DebugExecutionWitness(&self.0.execution_witness), - ) - .field("elasticity_multiplier", &self.0.elasticity_multiplier) - .field("fee_configs", &self.0.fee_configs) - .finish() - } -} - -/// The public inputs are: -/// - block_hash : [u8;32] -/// - parent_hash : [u8;32] -/// - successful_block_validation : bool -pub type EthrexStatelessValidatorOutput = ([u8; 32], [u8; 32], bool); - -/// [`Guest`] implementation for Ethrex stateless validator. -#[derive(Debug, Clone)] -pub struct EthrexStatelessValidatorGuest; - -impl Guest for EthrexStatelessValidatorGuest { - type Io = IoRkyv; - - fn compute( - EthrexStatelessValidatorInput(input): ::Input, - ) -> ::Output { - let (header, parent_hash) = P::cycle_scope("public_inputs_preparation", || { - ( - input.blocks[0].header.clone(), - input.blocks[0].header.parent_hash, - ) - }); - - if input.blocks.len() != 1 { - return (header.compute_block_hash().0, parent_hash.0, false); - } - - let res = P::cycle_scope("validation", || execution_program(input)); - - match res { - Ok(out) => (out.last_block_hash.0, parent_hash.0, true), - Err(_) => (header.compute_block_hash().0, parent_hash.0, false), - } - } -} diff --git a/ere-guests/stateless-validator/ethrex/guest/src/lib.rs b/ere-guests/stateless-validator/ethrex/guest/src/lib.rs deleted file mode 100644 index ed18dbbc..00000000 --- a/ere-guests/stateless-validator/ethrex/guest/src/lib.rs +++ /dev/null @@ -1,7 +0,0 @@ -//! Stateless Ethrex guest - -#![no_std] - -extern crate alloc; - -pub mod guest; diff --git a/ere-guests/stateless-validator/ethrex/risc0/Cargo.lock b/ere-guests/stateless-validator/ethrex/risc0/Cargo.lock deleted file mode 100644 index d62bb541..00000000 --- a/ere-guests/stateless-validator/ethrex/risc0/Cargo.lock +++ /dev/null @@ -1,5936 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addchain" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" -dependencies = [ - "num-bigint 0.3.3", - "num-integer", - "num-traits", -] - -[[package]] -name = "ahash" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy", -] - -[[package]] -name = "aho-corasick" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" -dependencies = [ - "memchr", -] - -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - -[[package]] -name = "alloy-chains" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ebac8ff9c2f07667e1803dc777304337e160ce5153335beb45e8ec0751808" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "num_enum", - "serde", - "strum", -] - -[[package]] -name = "alloy-consensus" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6440213a22df93a87ed512d2f668e7dc1d62a05642d107f82d61edc9e12370" -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", -] - -[[package]] -name = "alloy-consensus-any" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d0bea09287942405c4f9d2a4f22d1e07611c2dbd9d5bf94b75366340f9e6e0" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "serde", -] - -[[package]] -name = "alloy-eip2124" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "crc", - "serde", - "thiserror", -] - -[[package]] -name = "alloy-eip2930" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "borsh", - "serde", -] - -[[package]] -name = "alloy-eip7702" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "borsh", - "k256", - "serde", - "serde_with", - "thiserror", -] - -[[package]] -name = "alloy-eips" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd2c7ae05abcab4483ce821f12f285e01c0b33804e6883dd9ca1569a87ee2be" -dependencies = [ - "alloy-eip2124", - "alloy-eip2930", - "alloy-eip7702", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "auto_impl", - "borsh", - "c-kzg", - "derive_more 2.0.1", - "either", - "serde", - "serde_with", - "sha2", - "thiserror", -] - -[[package]] -name = "alloy-evm" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01be36ba6f5e6e62563b369e03ca529eac46aea50677f84655084b4750816574" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-hardforks", - "alloy-primitives", - "alloy-sol-types", - "auto_impl", - "derive_more 2.0.1", - "revm", - "thiserror", -] - -[[package]] -name = "alloy-genesis" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc47eaae86488b07ea8e20236184944072a78784a1f4993f8ec17b3aa5d08c21" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-serde", - "alloy-trie", - "borsh", - "serde", - "serde_with", -] - -[[package]] -name = "alloy-hardforks" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d9a33550fc21fd77a3f8b63e99969d17660eec8dcc50a95a80f7c9964f7680b" -dependencies = [ - "alloy-chains", - "alloy-eip2124", - "alloy-primitives", - "auto_impl", - "dyn-clone", -] - -[[package]] -name = "alloy-network-primitives" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7805124ad69e57bbae7731c9c344571700b2a18d351bda9e0eba521c991d1bcb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-serde", - "serde", -] - -[[package]] -name = "alloy-primitives" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "355bf68a433e0fd7f7d33d5a9fc2583fde70bf5c530f63b80845f8da5505cf28" -dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if", - "const-hex", - "derive_more 2.0.1", - "foldhash 0.2.0", - "hashbrown 0.16.1", - "indexmap 2.12.1", - "itoa", - "k256", - "keccak-asm", - "paste", - "proptest", - "rand 0.9.2", - "ruint", - "rustc-hash", - "serde", - "sha3", - "tiny-keccak", -] - -[[package]] -name = "alloy-rlp" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f70d83b765fdc080dbcd4f4db70d8d23fe4761f2f02ebfa9146b833900634b4" -dependencies = [ - "alloy-rlp-derive", - "arrayvec", - "bytes", -] - -[[package]] -name = "alloy-rlp-derive" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "alloy-rpc-types-debug" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b2ca3a434a6d49910a7e8e51797eb25db42ef8a5578c52d877fcb26d0afe7bc" -dependencies = [ - "alloy-primitives", - "derive_more 2.0.1", - "serde", - "serde_with", -] - -[[package]] -name = "alloy-rpc-types-engine" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4c53a8b0905d931e7921774a1830609713bd3e8222347963172b03a3ecc68" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "derive_more 2.0.1", - "strum", -] - -[[package]] -name = "alloy-rpc-types-eth" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed5fafb741c19b3cca4cdd04fa215c89413491f9695a3e928dee2ae5657f607e" -dependencies = [ - "alloy-consensus", - "alloy-consensus-any", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "alloy-sol-types", - "itertools 0.14.0", - "serde", - "serde_json", - "serde_with", - "thiserror", -] - -[[package]] -name = "alloy-serde" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6f180c399ca7c1e2fe17ea58343910cad0090878a696ff5a50241aee12fc529" -dependencies = [ - "alloy-primitives", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-sol-macro" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ce480400051b5217f19d6e9a82d9010cdde20f1ae9c00d53591e4a1afbb312" -dependencies = [ - "alloy-sol-macro-expander", - "alloy-sol-macro-input", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "alloy-sol-macro-expander" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d792e205ed3b72f795a8044c52877d2e6b6e9b1d13f431478121d8d4eaa9028" -dependencies = [ - "alloy-sol-macro-input", - "const-hex", - "heck", - "indexmap 2.12.1", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.111", - "syn-solidity", - "tiny-keccak", -] - -[[package]] -name = "alloy-sol-macro-input" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd1247a8f90b465ef3f1207627547ec16940c35597875cdc09c49d58b19693c" -dependencies = [ - "const-hex", - "dunce", - "heck", - "macro-string", - "proc-macro2", - "quote", - "syn 2.0.111", - "syn-solidity", -] - -[[package]] -name = "alloy-sol-types" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70319350969a3af119da6fb3e9bddb1bce66c9ea933600cb297c8b1850ad2a3c" -dependencies = [ - "alloy-primitives", - "alloy-sol-macro", -] - -[[package]] -name = "alloy-trie" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3412d52bb97c6c6cc27ccc28d4e6e8cf605469101193b50b0bd5813b1f990b5" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "arrayvec", - "derive_more 2.0.1", - "nybbles", - "serde", - "smallvec", - "tracing", -] - -[[package]] -name = "alloy-tx-macros" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae109e33814b49fc0a62f2528993aa8a2dd346c26959b151f05441dc0b9da292" -dependencies = [ - "darling 0.21.3", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anstream" -version = "0.6.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" - -[[package]] -name = "anstyle-parse" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys", -] - -[[package]] -name = "anyhow" -version = "1.0.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" - -[[package]] -name = "ark-bls12-381" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df4dcc01ff89867cd86b0da835f23c3f02738353aaee7dde7495af71363b8d5" -dependencies = [ - "ark-ec", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "ark-std 0.5.0", -] - -[[package]] -name = "ark-bn254" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" -dependencies = [ - "ark-ec", - "ark-ff 0.5.0", - "ark-r1cs-std", - "ark-std 0.5.0", -] - -[[package]] -name = "ark-crypto-primitives" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0c292754729c8a190e50414fd1a37093c786c709899f29c9f7daccecfa855e" -dependencies = [ - "ahash", - "ark-crypto-primitives-macros", - "ark-ec", - "ark-ff 0.5.0", - "ark-relations", - "ark-serialize 0.5.0", - "ark-snark", - "ark-std 0.5.0", - "blake2", - "derivative", - "digest 0.10.7", - "fnv", - "merlin", - "sha2", -] - -[[package]] -name = "ark-crypto-primitives-macros" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7e89fe77d1f0f4fe5b96dfc940923d88d17b6a773808124f21e764dfb063c6a" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "ark-ec" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" -dependencies = [ - "ahash", - "ark-ff 0.5.0", - "ark-poly", - "ark-serialize 0.5.0", - "ark-std 0.5.0", - "educe", - "fnv", - "hashbrown 0.15.5", - "itertools 0.13.0", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm 0.3.0", - "ark-ff-macros 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "num-bigint 0.4.6", - "num-traits", - "paste", - "rustc_version 0.3.3", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" -dependencies = [ - "ark-ff-asm 0.4.2", - "ark-ff-macros 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "digest 0.10.7", - "itertools 0.10.5", - "num-bigint 0.4.6", - "num-traits", - "paste", - "rustc_version 0.4.1", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" -dependencies = [ - "ark-ff-asm 0.5.0", - "ark-ff-macros 0.5.0", - "ark-serialize 0.5.0", - "ark-std 0.5.0", - "arrayvec", - "digest 0.10.7", - "educe", - "itertools 0.13.0", - "num-bigint 0.4.6", - "num-traits", - "paste", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-asm" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-asm" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" -dependencies = [ - "quote", - "syn 2.0.111", -] - -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "ark-groth16" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88f1d0f3a534bb54188b8dcc104307db6c56cdae574ddc3212aec0625740fc7e" -dependencies = [ - "ark-crypto-primitives", - "ark-ec", - "ark-ff 0.5.0", - "ark-poly", - "ark-relations", - "ark-serialize 0.5.0", - "ark-std 0.5.0", -] - -[[package]] -name = "ark-poly" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" -dependencies = [ - "ahash", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "ark-std 0.5.0", - "educe", - "fnv", - "hashbrown 0.15.5", -] - -[[package]] -name = "ark-r1cs-std" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "941551ef1df4c7a401de7068758db6503598e6f01850bdb2cfdb614a1f9dbea1" -dependencies = [ - "ark-ec", - "ark-ff 0.5.0", - "ark-relations", - "ark-std 0.5.0", - "educe", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "tracing", -] - -[[package]] -name = "ark-relations" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec46ddc93e7af44bcab5230937635b06fb5744464dd6a7e7b083e80ebd274384" -dependencies = [ - "ark-ff 0.5.0", - "ark-std 0.5.0", - "tracing", - "tracing-subscriber 0.2.25", -] - -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" -dependencies = [ - "ark-std 0.3.0", - "digest 0.9.0", -] - -[[package]] -name = "ark-serialize" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" -dependencies = [ - "ark-std 0.4.0", - "digest 0.10.7", - "num-bigint 0.4.6", -] - -[[package]] -name = "ark-serialize" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" -dependencies = [ - "ark-serialize-derive", - "ark-std 0.5.0", - "arrayvec", - "digest 0.10.7", - "num-bigint 0.4.6", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "ark-snark" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d368e2848c2d4c129ce7679a7d0d2d612b6a274d3ea6a13bad4445d61b381b88" -dependencies = [ - "ark-ff 0.5.0", - "ark-relations", - "ark-serialize 0.5.0", - "ark-std 0.5.0", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "ark-std" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "ark-std" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "arrayref" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" - -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -dependencies = [ - "serde", -] - -[[package]] -name = "async-trait" -version = "0.1.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "aurora-engine-modexp" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518bc5745a6264b5fd7b09dffb9667e400ee9e2bbe18555fac75e1fe9afa0df9" -dependencies = [ - "hex", - "num", -] - -[[package]] -name = "auto_impl" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "autocfg" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bit-set" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" - -[[package]] -name = "bitcoin-io" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dee39a0ee5b4095224a0cfc6bf4cc1baf0f9624b96b367e53b66d974e51d953" - -[[package]] -name = "bitcoin_hashes" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" -dependencies = [ - "bitcoin-io", - "hex-conservative", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" -dependencies = [ - "serde_core", -] - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "serde", - "tap", - "wyz", -] - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "blake3" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", -] - -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bls12_381" -version = "0.8.0" -source = "git+https://github.com/lambdaclass/bls12_381?branch=expose-fp-struct#219174187bd78154cec35b0809799fc2c991a579" -dependencies = [ - "digest 0.10.7", - "ff", - "group", - "pairing", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "blst" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" -dependencies = [ - "cc", - "glob", - "threadpool", - "zeroize", -] - -[[package]] -name = "borsh" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" -dependencies = [ - "borsh-derive", - "cfg_aliases", -] - -[[package]] -name = "borsh-derive" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0686c856aa6aac0c4498f936d7d6a02df690f614c03e4d906d1018062b5c5e2c" -dependencies = [ - "once_cell", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "bumpalo" -version = "3.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" - -[[package]] -name = "byte-slice-cast" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" - -[[package]] -name = "bytecheck" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0caa33a2c0edca0419d15ac723dff03f1956f7978329b1e3b5fdaaaed9d3ca8b" -dependencies = [ - "bytecheck_derive", - "ptr_meta", - "rancor", - "simdutf8", -] - -[[package]] -name = "bytecheck_derive" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "bytemuck" -version = "1.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" -dependencies = [ - "serde", -] - -[[package]] -name = "c-kzg" -version = "2.1.1" -source = "git+https://github.com/risc0/c-kzg-4844?tag=c-kzg%2Fv2.1.1-risczero.0#1a8fa5497c80eb7f1fecbd7026f9bf86cc63fee2" -dependencies = [ - "blst", - "bytemuck", - "cc", - "glob", - "hex", - "libc", - "once_cell", - "serde", -] - -[[package]] -name = "camino" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" - -[[package]] -name = "cc" -version = "1.2.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd405d82c84ff7f35739f175f67d8b9fb7687a0e84ccdc78bd3568839827cf07" -dependencies = [ - "find-msvc-tools", - "jobserver", - "libc", - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" - -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "chrono" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" -dependencies = [ - "iana-time-zone", - "num-traits", - "serde", - "windows-link", -] - -[[package]] -name = "clap" -version = "4.5.53" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.53" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.5.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "clap_lex" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" - -[[package]] -name = "cobs" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" -dependencies = [ - "thiserror", -] - -[[package]] -name = "colorchoice" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" - -[[package]] -name = "const-hex" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" -dependencies = [ - "cfg-if", - "cpufeatures", - "proptest", - "serde_core", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "const_format" -version = "0.2.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" -dependencies = [ - "const_format_proc_macros", -] - -[[package]] -name = "const_format_proc_macros" -version = "0.2.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - -[[package]] -name = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "convert_case" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "core-graphics-types" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "libc", -] - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crc" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - -[[package]] -name = "crc32fast" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "critical-section" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" - -[[package]] -name = "crossbeam" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crunchy" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" - -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "git+https://github.com/risc0/RustCrypto-crypto-bigint?tag=v0.5.5-risczero.0#3ab63a6f1048833f7047d5a50532e4a4cc789384" -dependencies = [ - "generic-array", - "getrandom 0.2.16", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "darling" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" -dependencies = [ - "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]] -name = "darling_core" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.111", -] - -[[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.111", -] - -[[package]] -name = "darling_macro" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" -dependencies = [ - "darling_core 0.20.11", - "quote", - "syn 2.0.111", -] - -[[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.111", -] - -[[package]] -name = "datatest-stable" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833306ca7eec4d95844e65f0d7502db43888c5c1006c6c517e8cf51a27d15431" -dependencies = [ - "camino", - "fancy-regex", - "libtest-mimic", - "walkdir", -] - -[[package]] -name = "der" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - -[[package]] -name = "deranged" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" -dependencies = [ - "powerfmt", - "serde_core", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive-where" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "derive_more" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" -dependencies = [ - "derive_more-impl 1.0.0", -] - -[[package]] -name = "derive_more" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" -dependencies = [ - "derive_more-impl 2.0.1", -] - -[[package]] -name = "derive_more-impl" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" -dependencies = [ - "convert_case 0.6.0", - "proc-macro2", - "quote", - "syn 2.0.111", - "unicode-xid", -] - -[[package]] -name = "derive_more-impl" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" -dependencies = [ - "convert_case 0.7.1", - "proc-macro2", - "quote", - "syn 2.0.111", - "unicode-xid", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "downcast-rs" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" - -[[package]] -name = "dunce" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" - -[[package]] -name = "dyn-clone" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "serdect", - "signature", - "spki", -] - -[[package]] -name = "educe" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" -dependencies = [ - "enum-ordinalize", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" -dependencies = [ - "serde", -] - -[[package]] -name = "elf" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b" - -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff", - "generic-array", - "group", - "pem-rfc7468", - "pkcs8", - "rand_core 0.6.4", - "sec1", - "serdect", - "subtle", - "zeroize", -] - -[[package]] -name = "embedded-io" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" - -[[package]] -name = "embedded-io" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" - -[[package]] -name = "enum-ordinalize" -version = "4.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" -dependencies = [ - "enum-ordinalize-derive", -] - -[[package]] -name = "enum-ordinalize-derive" -version = "4.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "ere-io" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=a75f8f4832942b32fc1314bb3b2ce9b5e3e9d306#a75f8f4832942b32fc1314bb3b2ce9b5e3e9d306" -dependencies = [ - "rkyv", -] - -[[package]] -name = "ere-platform-risc0" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=a75f8f4832942b32fc1314bb3b2ce9b5e3e9d306#a75f8f4832942b32fc1314bb3b2ce9b5e3e9d306" -dependencies = [ - "ere-platform-trait", - "risc0-zkvm", - "risc0-zkvm-platform", -] - -[[package]] -name = "ere-platform-trait" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=a75f8f4832942b32fc1314bb3b2ce9b5e3e9d306#a75f8f4832942b32fc1314bb3b2ce9b5e3e9d306" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "errno" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -dependencies = [ - "libc", - "windows-sys", -] - -[[package]] -name = "escape8259" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5692dd7b5a1978a5aeb0ce83b7655c58ca8efdcb79d21036ea249da95afec2c6" - -[[package]] -name = "ethbloom" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c321610643004cf908ec0f5f2aa0d8f1f8e14b540562a2887a1111ff1ecbf7b" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-rlp", - "impl-serde", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ab15ed80916029f878e0267c3a9f92b67df55e79af370bf66199059ae2b4ee3" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-rlp", - "impl-serde", - "primitive-types 0.13.1", - "uint 0.10.0", -] - -[[package]] -name = "ethereum_serde_utils" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dc1355dbb41fbbd34ec28d4fb2a57d9a70c67ac3c19f6a5ca4d4a176b9e997a" -dependencies = [ - "alloy-primitives", - "hex", - "serde", - "serde_derive", - "serde_json", -] - -[[package]] -name = "ethereum_ssz" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dcddb2554d19cde19b099fadddde576929d7a4d0c1cd3512d1fd95cf174375c" -dependencies = [ - "alloy-primitives", - "ethereum_serde_utils", - "itertools 0.13.0", - "serde", - "serde_derive", - "smallvec", - "typenum", -] - -[[package]] -name = "ethereum_ssz_derive" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a657b6b3b7e153637dc6bdc6566ad9279d9ee11a15b12cfb24a2e04360637e9f" -dependencies = [ - "darling 0.20.11", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "ethrex-blockchain" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "ethrex-common", - "ethrex-crypto", - "ethrex-metrics", - "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", - "hex", - "rustc-hash", - "thiserror", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "ethrex-common" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "crc32fast", - "ethereum-types", - "ethrex-crypto", - "ethrex-rlp", - "ethrex-trie", - "hex", - "k256", - "kzg-rs", - "lazy_static", - "libc", - "once_cell", - "rayon", - "rkyv", - "rustc-hash", - "secp256k1", - "serde", - "serde_json", - "sha2", - "sha3", - "thiserror", - "tinyvec", - "tracing", - "url", -] - -[[package]] -name = "ethrex-crypto" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "c-kzg", - "kzg-rs", - "thiserror", - "tiny-keccak", -] - -[[package]] -name = "ethrex-guest" -version = "0.1.0" -dependencies = [ - "ere-io", - "ere-platform-trait", - "ethrex-common", - "guest-libs", - "guest_program", - "rkyv", -] - -[[package]] -name = "ethrex-l2-common" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "ethereum-types", - "ethrex-common", - "ethrex-crypto", - "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", - "hex", - "k256", - "lambdaworks-crypto", - "rkyv", - "secp256k1", - "serde", - "serde_with", - "sha3", - "thiserror", -] - -[[package]] -name = "ethrex-levm" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", - "bitvec", - "bls12_381", - "bytes", - "datatest-stable", - "derive_more 1.0.0", - "ethrex-common", - "ethrex-crypto", - "ethrex-rlp", - "k256", - "lambdaworks-math", - "lazy_static", - "malachite", - "p256", - "ripemd", - "rustc-hash", - "secp256k1", - "serde", - "serde_json", - "sha2", - "sha3", - "strum", - "substrate-bn", - "thiserror", - "walkdir", -] - -[[package]] -name = "ethrex-metrics" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "ethrex-common", - "serde", - "serde_json", - "thiserror", - "tracing-subscriber 0.3.20", -] - -[[package]] -name = "ethrex-risc0-stateless-validator" -version = "0.1.0" -dependencies = [ - "c-kzg", - "ere-platform-risc0", - "ethrex-common", - "ethrex-guest", - "ethrex-vm", - "guest_program", - "k256", -] - -[[package]] -name = "ethrex-rlp" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "ethereum-types", - "hex", - "lazy_static", - "snap", - "thiserror", - "tinyvec", -] - -[[package]] -name = "ethrex-storage" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "anyhow", - "async-trait", - "bincode", - "bytes", - "ethereum-types", - "ethrex-common", - "ethrex-crypto", - "ethrex-rlp", - "ethrex-trie", - "hex", - "lru", - "qfilter", - "rayon", - "rustc-hash", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "ethrex-threadpool" -version = "0.1.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "crossbeam", -] - -[[package]] -name = "ethrex-trie" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "anyhow", - "bytes", - "crossbeam", - "digest 0.10.7", - "ethereum-types", - "ethrex-crypto", - "ethrex-rlp", - "ethrex-threadpool", - "hex", - "lazy_static", - "rkyv", - "rustc-hash", - "serde", - "serde_json", - "smallvec", - "thiserror", - "tracing", -] - -[[package]] -name = "ethrex-vm" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bincode", - "bytes", - "derive_more 1.0.0", - "dyn-clone", - "ethereum-types", - "ethrex-common", - "ethrex-crypto", - "ethrex-levm", - "ethrex-rlp", - "ethrex-trie", - "lazy_static", - "rkyv", - "serde", - "thiserror", - "tracing", -] - -[[package]] -name = "fancy-regex" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298" -dependencies = [ - "bit-set", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fastrlp" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - -[[package]] -name = "fastrlp" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - -[[package]] -name = "ff" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" -dependencies = [ - "bitvec", - "byteorder", - "ff_derive", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff_derive" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f10d12652036b0e99197587c6ba87a8fc3031986499973c030d8b44fcc151b60" -dependencies = [ - "addchain", - "num-bigint 0.3.3", - "num-integer", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "find-msvc-tools" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" - -[[package]] -name = "fixed-hash" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" -dependencies = [ - "byteorder", - "rand 0.8.5", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" -dependencies = [ - "foreign-types-macros", - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-macros" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "foreign-types-shared" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" - -[[package]] -name = "form_urlencoded" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-macro", - "futures-task", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "gcd" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" - -[[package]] -name = "generic-array" -version = "0.14.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "getrandom" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" -dependencies = [ - "cfg-if", - "libc", - "r-efi", - "wasip2", -] - -[[package]] -name = "glob" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "guest-libs" -version = "0.1.0" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "anyhow", - "ere-io", - "ere-platform-trait", - "ethereum_ssz", - "ethereum_ssz_derive", - "reth-ethereum-primitives", - "reth-primitives-traits", - "reth-stateless", - "serde", - "serde_with", - "sha2", - "thiserror", -] - -[[package]] -name = "guest_program" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "ethrex-blockchain", - "ethrex-common", - "ethrex-crypto", - "ethrex-l2-common", - "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", - "hex", - "rkyv", - "serde", - "serde_json", - "serde_with", - "thiserror", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "allocator-api2", - "foldhash 0.1.5", -] - -[[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]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hex-conservative" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda06d18ac606267c40c04e41b9947729bf8b9efe74bd4e82b61a5f26a510b9f" -dependencies = [ - "arrayvec", -] - -[[package]] -name = "hex-literal" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "icu_collections" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" -dependencies = [ - "displaydoc", - "potential_utf", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locale_core" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_normalizer" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" -dependencies = [ - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" - -[[package]] -name = "icu_properties" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" -dependencies = [ - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", - "zerotrie", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" - -[[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", - "writeable", - "yoke", - "zerofrom", - "zerotrie", - "zerovec", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-codec" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d40b9d5e17727407e55028eafc22b2dc68781786e6d7eb8a21103f5058e3a14" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-rlp" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ed8ad1f3877f7e775b8cbf30ed1bd3209a95401817f19a0eb4402d13f8cf90" -dependencies = [ - "rlp 0.6.1", -] - -[[package]] -name = "impl-serde" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a143eada6a1ec4aefa5049037a26a6d597bfd64f8c026d07b77133e02b7dd0b" -dependencies = [ - "serde", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "include_bytes_aligned" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee796ad498c8d9a1d68e477df8f754ed784ef875de1414ebdaf169f70a6a784" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" -dependencies = [ - "equivalent", - "hashbrown 0.16.1", - "serde", - "serde_core", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -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.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" - -[[package]] -name = "jobserver" -version = "0.1.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" -dependencies = [ - "getrandom 0.3.4", - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.82" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "k256" -version = "0.13.4" -source = "git+https://github.com/risc0/RustCrypto-elliptic-curves?tag=k256%2Fv0.13.4-risczero.1#7d4a8d6477e258ce4169ee4669cf92aee0582c39" -dependencies = [ - "bytemuck", - "cfg-if", - "ecdsa", - "elliptic-curve", - "once_cell", - "risc0-bigint2", - "serdect", - "sha2", - "signature", -] - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "keccak-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" -dependencies = [ - "digest 0.10.7", - "sha3-asm", -] - -[[package]] -name = "kzg-rs" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9201effeea3fcc93b587904ae2df9ce97e433184b9d6d299e9ebc9830a546636" -dependencies = [ - "ff", - "hex", - "serde_arrays", - "sha2", - "sp1_bls12_381", - "spin", -] - -[[package]] -name = "lambdaworks-crypto" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58b1a1c1102a5a7fbbda117b79fb3a01e033459c738a3c1642269603484fd1c1" -dependencies = [ - "lambdaworks-math", - "rand 0.8.5", - "rand_chacha 0.3.1", - "serde", - "sha2", - "sha3", -] - -[[package]] -name = "lambdaworks-math" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "018a95aa873eb49896a858dee0d925c33f3978d073c64b08dd4f2c9b35a017c6" -dependencies = [ - "getrandom 0.2.16", - "num-bigint 0.4.6", - "num-traits", - "rand 0.8.5", - "rayon", - "serde", - "serde_json", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] - -[[package]] -name = "libc" -version = "0.2.177" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" - -[[package]] -name = "libm" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" - -[[package]] -name = "libtest-mimic" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5297962ef19edda4ce33aaa484386e0a5b3d7f2f4e037cbeee00503ef6b29d33" -dependencies = [ - "anstream", - "anstyle", - "clap", - "escape8259", -] - -[[package]] -name = "linux-raw-sys" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" - -[[package]] -name = "litemap" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" - -[[package]] -name = "log" -version = "0.4.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" - -[[package]] -name = "lru" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96051b46fc183dc9cd4a223960ef37b9af631b55191852a8274bfef064cda20f" -dependencies = [ - "hashbrown 0.16.1", -] - -[[package]] -name = "macro-string" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "malachite" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec410515e231332b14cd986a475d1c3323bcfa4c7efc038bfa1d5b410b1c57e4" -dependencies = [ - "malachite-base", - "malachite-nz", - "malachite-q", -] - -[[package]] -name = "malachite-base" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c738d3789301e957a8f7519318fcbb1b92bb95863b28f6938ae5a05be6259f34" -dependencies = [ - "hashbrown 0.15.5", - "itertools 0.14.0", - "libm", - "ryu", -] - -[[package]] -name = "malachite-nz" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1707c9a1fa36ce21749b35972bfad17bbf34cf5a7c96897c0491da321e387d3b" -dependencies = [ - "itertools 0.14.0", - "libm", - "malachite-base", - "wide", -] - -[[package]] -name = "malachite-q" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d764801aa4e96bbb69b389dcd03b50075345131cd63ca2e380bca71cc37a3675" -dependencies = [ - "itertools 0.14.0", - "malachite-base", - "malachite-nz", -] - -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - -[[package]] -name = "matchers" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" -dependencies = [ - "regex-automata", -] - -[[package]] -name = "memchr" -version = "2.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" - -[[package]] -name = "merlin" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" -dependencies = [ - "byteorder", - "keccak", - "rand_core 0.6.4", - "zeroize", -] - -[[package]] -name = "metal" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" -dependencies = [ - "bitflags 2.10.0", - "block", - "core-graphics-types", - "foreign-types", - "log", - "objc", - "paste", -] - -[[package]] -name = "modular-bitfield" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" -dependencies = [ - "modular-bitfield-impl", - "static_assertions", -] - -[[package]] -name = "modular-bitfield-impl" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "munge" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c" -dependencies = [ - "munge_macro", -] - -[[package]] -name = "munge_macro" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "no_std_strings" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5b0c77c1b780822bc749a33e39aeb2c07584ab93332303babeabb645298a76e" - -[[package]] -name = "nu-ansi-term" -version = "0.50.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint 0.4.6", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint 0.4.6", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" -dependencies = [ - "num_enum_derive", - "rustversion", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "nybbles" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4b5ecbd0beec843101bffe848217f770e8b8da81d8355b7d6e226f2199b3dc" -dependencies = [ - "alloy-rlp", - "cfg-if", - "proptest", - "ruint", - "serde", - "smallvec", -] - -[[package]] -name = "objc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -dependencies = [ - "malloc_buf", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" -dependencies = [ - "critical-section", - "portable-atomic", -] - -[[package]] -name = "once_cell_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" - -[[package]] -name = "op-alloy-consensus" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726da827358a547be9f1e37c2a756b9e3729cb0350f43408164794b370cad8ae" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "derive_more 2.0.1", - "serde", - "serde_with", - "thiserror", -] - -[[package]] -name = "p256" -version = "0.13.2" -source = "git+https://github.com/risc0/RustCrypto-elliptic-curves?tag=p256%2Fv0.13.2-risczero.1#bb0f51ad3ba81585f36ea8a1ea81093d8664b195" -dependencies = [ - "bytemuck", - "ecdsa", - "elliptic-curve", - "primeorder", - "risc0-bigint2", - "sha2", -] - -[[package]] -name = "p3-baby-bear" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7521838ecab2ddf4f7bc4ceebad06ec02414729598485c1ada516c39900820e8" -dependencies = [ - "num-bigint 0.4.6", - "p3-field", - "p3-mds", - "p3-poseidon2", - "p3-symmetric", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-dft" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46414daedd796f1eefcdc1811c0484e4bced5729486b6eaba9521c572c76761a" -dependencies = [ - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", - "tracing", -] - -[[package]] -name = "p3-field" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48948a0516b349e9d1cdb95e7236a6ee010c44e68c5cc78b4b92bf1c4022a0d9" -dependencies = [ - "itertools 0.12.1", - "num-bigint 0.4.6", - "num-traits", - "p3-util", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-matrix" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4de3f373589477cb735ea58e125898ed20935e03664b4614c7fac258b3c42f" -dependencies = [ - "itertools 0.12.1", - "p3-field", - "p3-maybe-rayon", - "p3-util", - "rand 0.8.5", - "serde", - "tracing", -] - -[[package]] -name = "p3-maybe-rayon" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3968ad1160310296eb04f91a5f4edfa38fe1d6b2b8cd6b5c64e6f9b7370979e" - -[[package]] -name = "p3-mds" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2356b1ed0add6d5dfbf7a338ce534a6fde827374394a52cec16a0840af6e97c9" -dependencies = [ - "itertools 0.12.1", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-symmetric", - "p3-util", - "rand 0.8.5", -] - -[[package]] -name = "p3-poseidon2" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da1eec7e1b6900581bedd95e76e1ef4975608dd55be9872c9d257a8a9651c3a" -dependencies = [ - "gcd", - "p3-field", - "p3-mds", - "p3-symmetric", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-symmetric" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb439bea1d822623b41ff4b51e3309e80d13cadf8b86d16ffd5e6efb9fdc360" -dependencies = [ - "itertools 0.12.1", - "p3-field", - "serde", -] - -[[package]] -name = "p3-util" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c2c2010678b9332b563eaa38364915b585c1a94b5ca61e2c7541c087ddda5c" -dependencies = [ - "serde", -] - -[[package]] -name = "pairing" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" -dependencies = [ - "group", -] - -[[package]] -name = "parity-scale-codec" -version = "3.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" -dependencies = [ - "arrayvec", - "bitvec", - "byte-slice-cast", - "const_format", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "rustversion", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "3.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - -[[package]] -name = "pest" -version = "2.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" -dependencies = [ - "memchr", - "ucd-trie", -] - -[[package]] -name = "phf" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" -dependencies = [ - "phf_macros", - "phf_shared", - "serde", -] - -[[package]] -name = "phf_generator" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" -dependencies = [ - "fastrand", - "phf_shared", -] - -[[package]] -name = "phf_macros" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" -dependencies = [ - "phf_generator", - "phf_shared", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "phf_shared" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "portable-atomic" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" - -[[package]] -name = "postcard" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" -dependencies = [ - "cobs", - "embedded-io 0.4.0", - "embedded-io 0.6.1", - "serde", -] - -[[package]] -name = "potential_utf" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" -dependencies = [ - "zerovec", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "primeorder" -version = "0.13.1" -source = "git+https://github.com/risc0/RustCrypto-elliptic-curves?tag=p256%2Fv0.13.2-risczero.1#bb0f51ad3ba81585f36ea8a1ea81093d8664b195" -dependencies = [ - "bytemuck", - "elliptic-curve", - "risc0-bigint2", -] - -[[package]] -name = "primitive-types" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" -dependencies = [ - "fixed-hash", - "impl-codec 0.6.0", - "uint 0.9.5", -] - -[[package]] -name = "primitive-types" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d15600a7d856470b7d278b3fe0e311fe28c2526348549f8ef2ff7db3299c87f5" -dependencies = [ - "fixed-hash", - "impl-codec 0.7.1", - "impl-rlp", - "impl-serde", - "uint 0.10.0", -] - -[[package]] -name = "proc-macro-crate" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" -dependencies = [ - "toml_edit", -] - -[[package]] -name = "proc-macro-error-attr2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "proc-macro-error2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" -dependencies = [ - "proc-macro-error-attr2", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "proc-macro2" -version = "1.0.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proptest" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags 2.10.0", - "num-traits", - "rand 0.9.2", - "rand_chacha 0.9.0", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", - "unarray", -] - -[[package]] -name = "ptr_meta" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79" -dependencies = [ - "ptr_meta_derive", -] - -[[package]] -name = "ptr_meta_derive" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "qfilter" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "746341cd2357c9a4df2d951522b4a8dd1ef553e543119899ad7bf87e938c8fbe" -dependencies = [ - "xxhash-rust", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quote" -version = "1.0.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rancor" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a063ea72381527c2a0561da9c80000ef822bdd7c3241b1cc1b12100e3df081ee" -dependencies = [ - "ptr_meta", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "serde", -] - -[[package]] -name = "rand" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", - "serde", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.16", -] - -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom 0.3.4", - "serde", -] - -[[package]] -name = "rand_xorshift" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" -dependencies = [ - "rand_core 0.9.3", -] - -[[package]] -name = "rayon" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "ref-cast" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "regex-automata" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" - -[[package]] -name = "rend" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6" -dependencies = [ - "bytecheck", -] - -[[package]] -name = "reth-chainspec" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-evm", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "auto_impl", - "derive_more 2.0.1", - "reth-ethereum-forks", - "reth-network-peers", - "reth-primitives-traits", - "serde_json", -] - -[[package]] -name = "reth-codecs" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "bytes", - "modular-bitfield", - "op-alloy-consensus", - "reth-codecs-derive", - "reth-zstd-compressors", - "serde", -] - -[[package]] -name = "reth-codecs-derive" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "reth-consensus" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "auto_impl", - "reth-execution-types", - "reth-primitives-traits", - "thiserror", -] - -[[package]] -name = "reth-consensus-common" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "reth-chainspec", - "reth-consensus", - "reth-primitives-traits", -] - -[[package]] -name = "reth-db-models" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "reth-primitives-traits", -] - -[[package]] -name = "reth-errors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "reth-consensus", - "reth-execution-errors", - "reth-storage-errors", - "thiserror", -] - -[[package]] -name = "reth-ethereum-consensus" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "reth-chainspec", - "reth-consensus", - "reth-consensus-common", - "reth-execution-types", - "reth-primitives-traits", - "tracing", -] - -[[package]] -name = "reth-ethereum-forks" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-eip2124", - "alloy-hardforks", - "alloy-primitives", - "auto_impl", - "once_cell", -] - -[[package]] -name = "reth-ethereum-primitives" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde", - "reth-codecs", - "reth-primitives-traits", - "serde", - "serde_with", -] - -[[package]] -name = "reth-evm" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm", - "alloy-primitives", - "auto_impl", - "derive_more 2.0.1", - "futures-util", - "reth-execution-errors", - "reth-execution-types", - "reth-primitives-traits", - "reth-storage-api", - "reth-storage-errors", - "reth-trie-common", - "revm", -] - -[[package]] -name = "reth-execution-errors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-evm", - "alloy-primitives", - "alloy-rlp", - "nybbles", - "reth-storage-errors", - "thiserror", -] - -[[package]] -name = "reth-execution-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm", - "alloy-primitives", - "derive_more 2.0.1", - "reth-ethereum-primitives", - "reth-primitives-traits", - "reth-trie-common", - "revm", -] - -[[package]] -name = "reth-network-peers" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "serde_with", - "thiserror", - "url", -] - -[[package]] -name = "reth-primitives-traits" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-trie", - "auto_impl", - "bytes", - "derive_more 2.0.1", - "once_cell", - "op-alloy-consensus", - "reth-codecs", - "revm-bytecode", - "revm-primitives", - "revm-state", - "secp256k1", - "serde", - "serde_with", - "thiserror", -] - -[[package]] -name = "reth-prune-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "derive_more 2.0.1", - "strum", - "thiserror", -] - -[[package]] -name = "reth-revm" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "reth-primitives-traits", - "reth-storage-api", - "reth-storage-errors", - "revm", -] - -[[package]] -name = "reth-stages-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "reth-trie-common", -] - -[[package]] -name = "reth-stateless" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-debug", - "alloy-trie", - "itertools 0.14.0", - "reth-chainspec", - "reth-consensus", - "reth-errors", - "reth-ethereum-consensus", - "reth-ethereum-primitives", - "reth-evm", - "reth-primitives-traits", - "reth-revm", - "reth-trie-common", - "reth-trie-sparse", - "serde", - "serde_with", - "thiserror", -] - -[[package]] -name = "reth-static-file-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "derive_more 2.0.1", - "serde", - "strum", -] - -[[package]] -name = "reth-storage-api" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "reth-chainspec", - "reth-db-models", - "reth-ethereum-primitives", - "reth-execution-types", - "reth-primitives-traits", - "reth-prune-types", - "reth-stages-types", - "reth-storage-errors", - "reth-trie-common", - "revm-database", -] - -[[package]] -name = "reth-storage-errors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "derive_more 2.0.1", - "reth-primitives-traits", - "reth-prune-types", - "reth-static-file-types", - "revm-database-interface", - "thiserror", -] - -[[package]] -name = "reth-trie-common" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -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-trie-sparse" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "auto_impl", - "reth-execution-errors", - "reth-primitives-traits", - "reth-trie-common", - "smallvec", - "tracing", -] - -[[package]] -name = "reth-zstd-compressors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "zstd", -] - -[[package]] -name = "revm" -version = "33.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c85ed0028f043f87b3c88d4a4cb6f0a76440085523b6a8afe5ff003cf418054" -dependencies = [ - "revm-bytecode", - "revm-context", - "revm-context-interface", - "revm-database", - "revm-database-interface", - "revm-handler", - "revm-inspector", - "revm-interpreter", - "revm-precompile", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-bytecode" -version = "7.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2c6b5e6e8dd1e28a4a60e5f46615d4ef0809111c9e63208e55b5c7058200fb0" -dependencies = [ - "bitvec", - "phf", - "revm-primitives", - "serde", -] - -[[package]] -name = "revm-context" -version = "12.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f038f0c9c723393ac897a5df9140b21cfa98f5753a2cb7d0f28fa430c4118abf" -dependencies = [ - "bitvec", - "cfg-if", - "derive-where", - "revm-bytecode", - "revm-context-interface", - "revm-database-interface", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-context-interface" -version = "13.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "431c9a14e4ef1be41ae503708fd02d974f80ef1f2b6b23b5e402e8d854d1b225" -dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "auto_impl", - "either", - "revm-database-interface", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-database" -version = "9.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "980d8d6bba78c5dd35b83abbb6585b0b902eb25ea4448ed7bfba6283b0337191" -dependencies = [ - "revm-bytecode", - "revm-database-interface", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-database-interface" -version = "8.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cce03e3780287b07abe58faf4a7f5d8be7e81321f93ccf3343c8f7755602bae" -dependencies = [ - "auto_impl", - "either", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-handler" -version = "14.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d44f8f6dbeec3fecf9fe55f78ef0a758bdd92ea46cd4f1ca6e2a946b32c367f3" -dependencies = [ - "auto_impl", - "derive-where", - "revm-bytecode", - "revm-context", - "revm-context-interface", - "revm-database-interface", - "revm-interpreter", - "revm-precompile", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-inspector" -version = "14.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5617e49216ce1ca6c8826bcead0386bc84f49359ef67cde6d189961735659f93" -dependencies = [ - "auto_impl", - "either", - "revm-context", - "revm-database-interface", - "revm-handler", - "revm-interpreter", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-interpreter" -version = "31.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26ec36405f7477b9dccdc6caa3be19adf5662a7a0dffa6270cdb13a090c077e5" -dependencies = [ - "revm-bytecode", - "revm-context-interface", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-precompile" -version = "31.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a62958af953cc4043e93b5be9b8497df84cc3bd612b865c49a7a7dfa26a84e2" -dependencies = [ - "ark-bls12-381", - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "arrayref", - "aurora-engine-modexp", - "cfg-if", - "k256", - "p256", - "revm-primitives", - "ripemd", - "sha2", -] - -[[package]] -name = "revm-primitives" -version = "21.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29e161db429d465c09ba9cbff0df49e31049fe6b549e28eb0b7bd642fcbd4412" -dependencies = [ - "alloy-primitives", - "num_enum", - "once_cell", - "serde", -] - -[[package]] -name = "revm-state" -version = "8.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d8be953b7e374dbdea0773cf360debed8df394ea8d82a8b240a6b5da37592fc" -dependencies = [ - "bitflags 2.10.0", - "revm-bytecode", - "revm-primitives", - "serde", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "risc0-bigint2" -version = "1.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bd8ae1058e6f5d4635dfd206a41bab7ad64067df70421a5f32e18b1a17979ac" -dependencies = [ - "include_bytes_aligned", - "stability", -] - -[[package]] -name = "risc0-binfmt" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dca096030bb4c52f99b12abcfe3531ea93b17b95a12a5aeb06fbf8ee588a275" -dependencies = [ - "anyhow", - "borsh", - "bytemuck", - "derive_more 2.0.1", - "elf", - "lazy_static", - "postcard", - "rand 0.9.2", - "risc0-zkp", - "risc0-zkvm-platform", - "ruint", - "semver 1.0.27", - "serde", - "tracing", -] - -[[package]] -name = "risc0-circuit-keccak" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e1d23ef3648bb85b0bd37bc9f9f7d13f1a4388e5e779e18f7eea82b969e5dbc" -dependencies = [ - "anyhow", - "bytemuck", - "paste", - "risc0-binfmt", - "risc0-circuit-recursion", - "risc0-core", - "risc0-zkp", - "tracing", -] - -[[package]] -name = "risc0-circuit-recursion" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028cd26e1b1f7bdd964d2f1eac8f812d1872b6b8fd24f10804f07d916b90000e" -dependencies = [ - "anyhow", - "bytemuck", - "hex", - "metal", - "risc0-core", - "risc0-zkp", - "tracing", -] - -[[package]] -name = "risc0-circuit-rv32im" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ecd73a71ddce62eab8a28552ee182dc2ea08cdce2a3474a616a80bf2d6e9be" -dependencies = [ - "anyhow", - "bit-vec", - "bytemuck", - "derive_more 2.0.1", - "paste", - "risc0-binfmt", - "risc0-core", - "risc0-zkp", - "serde", - "tracing", -] - -[[package]] -name = "risc0-core" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f2723fedace48c6c5a505bd8f97ac4e1712bc4cb769083e10536d862b66987" -dependencies = [ - "bytemuck", - "rand_core 0.9.3", -] - -[[package]] -name = "risc0-groth16" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ff13f9b427254c5264e01aaa32e33f355525299b6829449295905778f3b1e8" -dependencies = [ - "anyhow", - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", - "ark-groth16", - "ark-serialize 0.5.0", - "bytemuck", - "hex", - "num-bigint 0.4.6", - "num-traits", - "risc0-binfmt", - "risc0-zkp", - "serde", -] - -[[package]] -name = "risc0-zkos-v1compat" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf1f35f2ef61d8d86fdd06288c11d2f3bbf08f1af66b24ca0a1976ecbf324a1" -dependencies = [ - "include_bytes_aligned", - "no_std_strings", - "risc0-zkvm-platform", -] - -[[package]] -name = "risc0-zkp" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beb493b3f007f04a11106a001c66bca77338d0fc375766189fd7ca3a1e8c3700" -dependencies = [ - "anyhow", - "blake2", - "borsh", - "bytemuck", - "cfg-if", - "digest 0.10.7", - "hex", - "hex-literal", - "metal", - "paste", - "rand_core 0.9.3", - "risc0-core", - "risc0-zkvm-platform", - "serde", - "sha2", - "stability", - "tracing", -] - -[[package]] -name = "risc0-zkvm" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39d9943fe71decea1e8b6a99480cefa33799ab08b5abfccd7e2a18fb07121c1" -dependencies = [ - "anyhow", - "borsh", - "bytemuck", - "derive_more 2.0.1", - "hex", - "risc0-binfmt", - "risc0-circuit-keccak", - "risc0-circuit-recursion", - "risc0-circuit-rv32im", - "risc0-core", - "risc0-groth16", - "risc0-zkos-v1compat", - "risc0-zkp", - "risc0-zkvm-platform", - "rrs-lib", - "semver 1.0.27", - "serde", - "sha2", - "stability", - "tracing", -] - -[[package]] -name = "risc0-zkvm-platform" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfaa10feba15828c788837ddde84b994393936d8f5715228627cfe8625122a40" -dependencies = [ - "bytemuck", - "cfg-if", - "getrandom 0.2.16", - "getrandom 0.3.4", - "libm", - "num_enum", - "paste", - "stability", -] - -[[package]] -name = "rkyv" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35a640b26f007713818e9a9b65d34da1cf58538207b052916a83d80e43f3ffa4" -dependencies = [ - "bytecheck", - "bytes", - "hashbrown 0.15.5", - "indexmap 2.12.1", - "munge", - "ptr_meta", - "rancor", - "rend", - "rkyv_derive", - "tinyvec", - "uuid", -] - -[[package]] -name = "rkyv_derive" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd83f5f173ff41e00337d97f6572e416d022ef8a19f371817259ae960324c482" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "rlp" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" -dependencies = [ - "bytes", - "rustc-hex", -] - -[[package]] -name = "rlp" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24e92bb2a83198bb76d661a71df9f7076b8c420b8696e4d3d97d50d94479e3" -dependencies = [ - "bytes", - "rustc-hex", -] - -[[package]] -name = "rrs-lib" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4382d3af3a4ebdae7f64ba6edd9114fff92c89808004c4943b393377a25d001" -dependencies = [ - "downcast-rs", - "paste", -] - -[[package]] -name = "ruint" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" -dependencies = [ - "alloy-rlp", - "ark-ff 0.3.0", - "ark-ff 0.4.2", - "ark-ff 0.5.0", - "borsh", - "bytes", - "fastrlp 0.3.1", - "fastrlp 0.4.0", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "parity-scale-codec", - "primitive-types 0.12.2", - "proptest", - "rand 0.8.5", - "rand 0.9.2", - "rlp 0.5.2", - "ruint-macro", - "serde_core", - "valuable", - "zeroize", -] - -[[package]] -name = "ruint-macro" -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 = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver 1.0.27", -] - -[[package]] -name = "rustix" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" -dependencies = [ - "bitflags 2.10.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys", -] - -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - -[[package]] -name = "rusty-fork" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - -[[package]] -name = "safe_arch" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schemars" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "schemars" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "serdect", - "subtle", - "zeroize", -] - -[[package]] -name = "secp256k1" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" -dependencies = [ - "bitcoin_hashes", - "rand 0.8.5", - "secp256k1-sys", - "serde", -] - -[[package]] -name = "secp256k1-sys" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" -dependencies = [ - "cc", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" -dependencies = [ - "serde", - "serde_core", -] - -[[package]] -name = "semver-parser" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" -dependencies = [ - "pest", -] - -[[package]] -name = "serde" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" -dependencies = [ - "serde_core", - "serde_derive", -] - -[[package]] -name = "serde_arrays" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a16b99c5ea4fe3daccd14853ad260ec00ea043b2708d1fd1da3106dcd8d9df" -dependencies = [ - "serde", -] - -[[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.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "serde_json" -version = "1.0.145" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", - "serde_core", -] - -[[package]] -name = "serde_with" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10574371d41b0d9b2cff89418eda27da52bcaff2cc8741db26382a77c29131f1" -dependencies = [ - "base64", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.12.1", - "schemars 0.9.0", - "schemars 1.1.0", - "serde_core", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a72d8216842fdd57820dc78d840bef99248e35fb2554ff923319e60f2d686b" -dependencies = [ - "darling 0.21.3", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "serdect" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" -dependencies = [ - "base16ct", - "serde", -] - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.7", - "keccak", -] - -[[package]] -name = "sha3-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" -dependencies = [ - "cc", - "cfg-if", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", -] - -[[package]] -name = "simdutf8" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" - -[[package]] -name = "siphasher" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" - -[[package]] -name = "slab" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" -dependencies = [ - "serde", -] - -[[package]] -name = "snap" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" - -[[package]] -name = "sp1-lib" -version = "5.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1a9935d58cb1dcd757a1b10d727090f5b718f1f03b512d48f0c1952e6ead00" -dependencies = [ - "bincode", - "serde", - "sp1-primitives", -] - -[[package]] -name = "sp1-primitives" -version = "5.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7d2a6187e394c30097ea7a975a4832f172918690dc89a979f0fad67422d3a8b" -dependencies = [ - "bincode", - "blake3", - "cfg-if", - "hex", - "lazy_static", - "num-bigint 0.4.6", - "p3-baby-bear", - "p3-field", - "p3-poseidon2", - "p3-symmetric", - "serde", - "sha2", -] - -[[package]] -name = "sp1_bls12_381" -version = "0.8.0-sp1-5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac255e1704ebcdeec5e02f6a0ebc4d2e9e6b802161938330b6810c13a610c583" -dependencies = [ - "cfg-if", - "ff", - "group", - "pairing", - "rand_core 0.6.4", - "sp1-lib", - "subtle", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "stability" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" -dependencies = [ - "quote", - "syn 2.0.111", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "strum" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "substrate-bn" -version = "0.6.0" -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", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.111" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn-solidity" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff790eb176cc81bb8936aed0f7b9f14fc4670069a2d371b3e3b0ecce908b2cb3" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" -dependencies = [ - "fastrand", - "getrandom 0.3.4", - "once_cell", - "rustix", - "windows-sys", -] - -[[package]] -name = "thiserror" -version = "2.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "thread_local" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "time" -version = "0.3.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" - -[[package]] -name = "time-macros" -version = "0.2.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinystr" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" -dependencies = [ - "pin-project-lite", -] - -[[package]] -name = "tokio-util" -version = "0.7.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "futures-util", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml_datetime" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" -dependencies = [ - "serde_core", -] - -[[package]] -name = "toml_edit" -version = "0.23.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" -dependencies = [ - "indexmap 2.12.1", - "toml_datetime", - "toml_parser", - "winnow", -] - -[[package]] -name = "toml_parser" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" -dependencies = [ - "winnow", -] - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "tracing-core" -version = "0.1.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" -dependencies = [ - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex-automata", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "typenum" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" - -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "uint" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "909988d098b2f738727b161a106cfc7cab00c539c2687a8836f8e565976fb53e" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicode-ident" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" - -[[package]] -name = "unicode-segmentation" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" - -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "url" -version = "2.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - -[[package]] -name = "uuid" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "valuable" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wait-timeout" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" -dependencies = [ - "libc", -] - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - -[[package]] -name = "wasip2" -version = "1.0.1+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" -dependencies = [ - "bumpalo", - "proc-macro2", - "quote", - "syn 2.0.111", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "wide" -version = "0.7.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" -dependencies = [ - "bytemuck", - "safe_arch", -] - -[[package]] -name = "winapi-util" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "windows-core" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link", - "windows-result", - "windows-strings", -] - -[[package]] -name = "windows-implement" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "windows-interface" -version = "0.59.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[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.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-sys" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" -dependencies = [ - "windows-link", -] - -[[package]] -name = "winnow" -version = "0.7.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" -dependencies = [ - "memchr", -] - -[[package]] -name = "wit-bindgen" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "xxhash-rust" -version = "0.8.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" - -[[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", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", - "synstructure", -] - -[[package]] -name = "zerocopy" -version = "0.8.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea879c944afe8a2b25fef16bb4ba234f47c694565e97383b36f3a878219065c" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf955aa904d6040f70dc8e9384444cb1030aed272ba3cb09bbc4ab9e7c1f34f5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "zerotrie" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - -[[package]] -name = "zerovec" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[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.111", -] - -[[package]] -name = "zstd" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "7.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" -dependencies = [ - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.16+zstd.1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" -dependencies = [ - "cc", - "pkg-config", -] - -[[patch.unused]] -name = "sha2" -version = "0.10.8" -source = "git+https://github.com/risc0/RustCrypto-hashes?tag=sha2-v0.10.8-risczero.0#244dc3b08788f7a4ccce14c66896ae3b4f24c166" diff --git a/ere-guests/stateless-validator/ethrex/risc0/Cargo.toml b/ere-guests/stateless-validator/ethrex/risc0/Cargo.toml deleted file mode 100644 index 557ec192..00000000 --- a/ere-guests/stateless-validator/ethrex/risc0/Cargo.toml +++ /dev/null @@ -1,45 +0,0 @@ -[package] -name = "ethrex-risc0-stateless-validator" -version = "0.1.0" -edition = "2024" - -[workspace] - -[dependencies] -ere-platform-risc0 = { git = "https://github.com/eth-applied-research-group/ere", rev = "d15c6b495d0bc42bf160ecfbb11fa7600047c821", default-features = false, features = [ - "std", - "unstable", - "getrandom", - "sys-getenv", -] } -ethrex-guest = { path = "../guest", features = ["std"] } - -k256 = "0.13" -c-kzg = { version = "2.1.1", features = ["eip-7594"] } -guest_program = { git = "https://github.com/lambdaclass/ethrex.git", rev = "c68e76d6b569c60a667a1240a91e637bf2ea0d0b", default-features = false, features = [ - "c-kzg", -] } -ethrex-common = { git = "https://github.com/lambdaclass/ethrex.git", rev = "c68e76d6b569c60a667a1240a91e637bf2ea0d0b", default-features = false, features = [ - "risc0", -] } -ethrex-vm = { git = "https://github.com/lambdaclass/ethrex.git", rev = "c68e76d6b569c60a667a1240a91e637bf2ea0d0b", default-features = false, features = [ - "c-kzg", - "risc0", -] } - -[patch.crates-io] -sha2 = { git = "https://github.com/risc0/RustCrypto-hashes", tag = "sha2-v0.10.8-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" } -crypto-bigint = { git = "https://github.com/risc0/RustCrypto-crypto-bigint", tag = "v0.5.5-risczero.0" } -c-kzg = { git = "https://github.com/risc0/c-kzg-4844", tag = "c-kzg/v2.1.1-risczero.0" } -substrate-bn = { git = "https://github.com/risc0/paritytech-bn", tag = "v0.6.0-risczero.0" } - -# These precompiles require the "unstable" risc0 feature which is not suited -# for production environments. -# tiny-keccak = { git = "https://github.com/risc0/tiny-keccak", tag = "tiny-keccak/v2.0.2-risczero.0" } -# [patch."https://github.com/lambdaclass/bls12_381"] -# bls12_381 = { git = "https://github.com/lambdaclass/zkcrypto-bls12_381", branch = "expose-fp-struct" } - -[features] -l2 = ["guest_program/l2"] diff --git a/ere-guests/stateless-validator/ethrex/risc0/NOTICE b/ere-guests/stateless-validator/ethrex/risc0/NOTICE deleted file mode 100644 index d30b286b..00000000 --- a/ere-guests/stateless-validator/ethrex/risc0/NOTICE +++ /dev/null @@ -1,14 +0,0 @@ -Original work Copyright [RISC Zero, Inc.] -Copyright [2024] [LambdaClass] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/ere-guests/stateless-validator/ethrex/risc0/src/main.rs b/ere-guests/stateless-validator/ethrex/risc0/src/main.rs deleted file mode 100644 index 26094e4c..00000000 --- a/ere-guests/stateless-validator/ethrex/risc0/src/main.rs +++ /dev/null @@ -1,6 +0,0 @@ -use ere_platform_risc0::Risc0Platform; -use ethrex_guest::guest::{EthrexStatelessValidatorGuest, Guest}; - -pub fn main() { - EthrexStatelessValidatorGuest::run_output_sha256::(); -} diff --git a/ere-guests/stateless-validator/ethrex/sp1/Cargo.lock b/ere-guests/stateless-validator/ethrex/sp1/Cargo.lock deleted file mode 100644 index a856909b..00000000 --- a/ere-guests/stateless-validator/ethrex/sp1/Cargo.lock +++ /dev/null @@ -1,5528 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addchain" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" -dependencies = [ - "num-bigint 0.3.3", - "num-integer", - "num-traits", -] - -[[package]] -name = "ahash" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy", -] - -[[package]] -name = "aho-corasick" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" -dependencies = [ - "memchr", -] - -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - -[[package]] -name = "alloy-chains" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ebac8ff9c2f07667e1803dc777304337e160ce5153335beb45e8ec0751808" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "num_enum", - "serde", - "strum", -] - -[[package]] -name = "alloy-consensus" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6440213a22df93a87ed512d2f668e7dc1d62a05642d107f82d61edc9e12370" -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", -] - -[[package]] -name = "alloy-consensus-any" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d0bea09287942405c4f9d2a4f22d1e07611c2dbd9d5bf94b75366340f9e6e0" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "serde", -] - -[[package]] -name = "alloy-eip2124" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "crc", - "serde", - "thiserror", -] - -[[package]] -name = "alloy-eip2930" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "borsh", - "serde", -] - -[[package]] -name = "alloy-eip7702" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "borsh", - "k256", - "serde", - "serde_with", - "thiserror", -] - -[[package]] -name = "alloy-eips" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd2c7ae05abcab4483ce821f12f285e01c0b33804e6883dd9ca1569a87ee2be" -dependencies = [ - "alloy-eip2124", - "alloy-eip2930", - "alloy-eip7702", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "auto_impl", - "borsh", - "c-kzg", - "derive_more 2.0.1", - "either", - "serde", - "serde_with", - "sha2", - "thiserror", -] - -[[package]] -name = "alloy-evm" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01be36ba6f5e6e62563b369e03ca529eac46aea50677f84655084b4750816574" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-hardforks", - "alloy-primitives", - "alloy-sol-types", - "auto_impl", - "derive_more 2.0.1", - "revm", - "thiserror", -] - -[[package]] -name = "alloy-genesis" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc47eaae86488b07ea8e20236184944072a78784a1f4993f8ec17b3aa5d08c21" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-serde", - "alloy-trie", - "borsh", - "serde", - "serde_with", -] - -[[package]] -name = "alloy-hardforks" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d9a33550fc21fd77a3f8b63e99969d17660eec8dcc50a95a80f7c9964f7680b" -dependencies = [ - "alloy-chains", - "alloy-eip2124", - "alloy-primitives", - "auto_impl", - "dyn-clone", -] - -[[package]] -name = "alloy-network-primitives" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7805124ad69e57bbae7731c9c344571700b2a18d351bda9e0eba521c991d1bcb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-serde", - "serde", -] - -[[package]] -name = "alloy-primitives" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "355bf68a433e0fd7f7d33d5a9fc2583fde70bf5c530f63b80845f8da5505cf28" -dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if", - "const-hex", - "derive_more 2.0.1", - "foldhash 0.2.0", - "hashbrown 0.16.1", - "indexmap 2.12.1", - "itoa", - "k256", - "keccak-asm", - "paste", - "proptest", - "rand 0.9.2", - "ruint", - "rustc-hash", - "serde", - "sha3", - "tiny-keccak", -] - -[[package]] -name = "alloy-rlp" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f70d83b765fdc080dbcd4f4db70d8d23fe4761f2f02ebfa9146b833900634b4" -dependencies = [ - "alloy-rlp-derive", - "arrayvec", - "bytes", -] - -[[package]] -name = "alloy-rlp-derive" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "alloy-rpc-types-debug" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b2ca3a434a6d49910a7e8e51797eb25db42ef8a5578c52d877fcb26d0afe7bc" -dependencies = [ - "alloy-primitives", - "derive_more 2.0.1", - "serde", - "serde_with", -] - -[[package]] -name = "alloy-rpc-types-engine" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4c53a8b0905d931e7921774a1830609713bd3e8222347963172b03a3ecc68" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "derive_more 2.0.1", - "strum", -] - -[[package]] -name = "alloy-rpc-types-eth" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed5fafb741c19b3cca4cdd04fa215c89413491f9695a3e928dee2ae5657f607e" -dependencies = [ - "alloy-consensus", - "alloy-consensus-any", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "alloy-sol-types", - "itertools 0.14.0", - "serde", - "serde_json", - "serde_with", - "thiserror", -] - -[[package]] -name = "alloy-serde" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6f180c399ca7c1e2fe17ea58343910cad0090878a696ff5a50241aee12fc529" -dependencies = [ - "alloy-primitives", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-sol-macro" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ce480400051b5217f19d6e9a82d9010cdde20f1ae9c00d53591e4a1afbb312" -dependencies = [ - "alloy-sol-macro-expander", - "alloy-sol-macro-input", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "alloy-sol-macro-expander" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d792e205ed3b72f795a8044c52877d2e6b6e9b1d13f431478121d8d4eaa9028" -dependencies = [ - "alloy-sol-macro-input", - "const-hex", - "heck", - "indexmap 2.12.1", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.111", - "syn-solidity", - "tiny-keccak", -] - -[[package]] -name = "alloy-sol-macro-input" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd1247a8f90b465ef3f1207627547ec16940c35597875cdc09c49d58b19693c" -dependencies = [ - "const-hex", - "dunce", - "heck", - "macro-string", - "proc-macro2", - "quote", - "syn 2.0.111", - "syn-solidity", -] - -[[package]] -name = "alloy-sol-types" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70319350969a3af119da6fb3e9bddb1bce66c9ea933600cb297c8b1850ad2a3c" -dependencies = [ - "alloy-primitives", - "alloy-sol-macro", -] - -[[package]] -name = "alloy-trie" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3412d52bb97c6c6cc27ccc28d4e6e8cf605469101193b50b0bd5813b1f990b5" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "arrayvec", - "derive_more 2.0.1", - "nybbles", - "serde", - "smallvec", - "tracing", -] - -[[package]] -name = "alloy-tx-macros" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae109e33814b49fc0a62f2528993aa8a2dd346c26959b151f05441dc0b9da292" -dependencies = [ - "darling 0.21.3", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anstream" -version = "0.6.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" - -[[package]] -name = "anstyle-parse" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys", -] - -[[package]] -name = "anyhow" -version = "1.0.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" - -[[package]] -name = "ark-bls12-381" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df4dcc01ff89867cd86b0da835f23c3f02738353aaee7dde7495af71363b8d5" -dependencies = [ - "ark-ec", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "ark-std 0.5.0", -] - -[[package]] -name = "ark-bn254" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" -dependencies = [ - "ark-ec", - "ark-ff 0.5.0", - "ark-std 0.5.0", -] - -[[package]] -name = "ark-ec" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" -dependencies = [ - "ahash", - "ark-ff 0.5.0", - "ark-poly", - "ark-serialize 0.5.0", - "ark-std 0.5.0", - "educe", - "fnv", - "hashbrown 0.15.5", - "itertools 0.13.0", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm 0.3.0", - "ark-ff-macros 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "num-bigint 0.4.6", - "num-traits", - "paste", - "rustc_version 0.3.3", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" -dependencies = [ - "ark-ff-asm 0.4.2", - "ark-ff-macros 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "digest 0.10.7", - "itertools 0.10.5", - "num-bigint 0.4.6", - "num-traits", - "paste", - "rustc_version 0.4.1", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" -dependencies = [ - "ark-ff-asm 0.5.0", - "ark-ff-macros 0.5.0", - "ark-serialize 0.5.0", - "ark-std 0.5.0", - "arrayvec", - "digest 0.10.7", - "educe", - "itertools 0.13.0", - "num-bigint 0.4.6", - "num-traits", - "paste", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-asm" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-asm" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" -dependencies = [ - "quote", - "syn 2.0.111", -] - -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "ark-poly" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" -dependencies = [ - "ahash", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "ark-std 0.5.0", - "educe", - "fnv", - "hashbrown 0.15.5", -] - -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" -dependencies = [ - "ark-std 0.3.0", - "digest 0.9.0", -] - -[[package]] -name = "ark-serialize" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" -dependencies = [ - "ark-std 0.4.0", - "digest 0.10.7", - "num-bigint 0.4.6", -] - -[[package]] -name = "ark-serialize" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" -dependencies = [ - "ark-serialize-derive", - "ark-std 0.5.0", - "arrayvec", - "digest 0.10.7", - "num-bigint 0.4.6", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "ark-std" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "ark-std" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "arrayref" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" - -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -dependencies = [ - "serde", -] - -[[package]] -name = "async-trait" -version = "0.1.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "aurora-engine-modexp" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518bc5745a6264b5fd7b09dffb9667e400ee9e2bbe18555fac75e1fe9afa0df9" -dependencies = [ - "hex", - "num", -] - -[[package]] -name = "auto_impl" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "autocfg" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bit-set" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" - -[[package]] -name = "bitcoin-io" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" - -[[package]] -name = "bitcoin_hashes" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" -dependencies = [ - "bitcoin-io", - "hex-conservative", -] - -[[package]] -name = "bitflags" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" -dependencies = [ - "serde_core", -] - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "serde", - "tap", - "wyz", -] - -[[package]] -name = "blake3" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bls12_381" -version = "0.8.0" -source = "git+https://github.com/lambdaclass/bls12_381-patch/?branch=expose-fp-struct#f2242f78b2b5fc10d9168a810c04ab8728ac6804" -dependencies = [ - "cfg-if", - "digest 0.10.7", - "ff", - "group", - "hex", - "pairing", - "rand_core 0.6.4", - "sp1-lib", - "subtle", -] - -[[package]] -name = "blst" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" -dependencies = [ - "cc", - "glob", - "threadpool", - "zeroize", -] - -[[package]] -name = "borsh" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1da5ab77c1437701eeff7c88d968729e7766172279eab0676857b3d63af7a6f" -dependencies = [ - "borsh-derive", - "cfg_aliases", -] - -[[package]] -name = "borsh-derive" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0686c856aa6aac0c4498f936d7d6a02df690f614c03e4d906d1018062b5c5e2c" -dependencies = [ - "once_cell", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "bumpalo" -version = "3.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" - -[[package]] -name = "byte-slice-cast" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" - -[[package]] -name = "bytecheck" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0caa33a2c0edca0419d15ac723dff03f1956f7978329b1e3b5fdaaaed9d3ca8b" -dependencies = [ - "bytecheck_derive", - "ptr_meta", - "rancor", - "simdutf8", -] - -[[package]] -name = "bytecheck_derive" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "bytemuck" -version = "1.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" -dependencies = [ - "serde", -] - -[[package]] -name = "c-kzg" -version = "2.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687" -dependencies = [ - "blst", - "cc", - "glob", - "hex", - "libc", - "once_cell", - "serde", -] - -[[package]] -name = "camino" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" - -[[package]] -name = "cc" -version = "1.2.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd405d82c84ff7f35739f175f67d8b9fb7687a0e84ccdc78bd3568839827cf07" -dependencies = [ - "find-msvc-tools", - "jobserver", - "libc", - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" - -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "chrono" -version = "0.4.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" -dependencies = [ - "iana-time-zone", - "num-traits", - "serde", - "windows-link", -] - -[[package]] -name = "clap" -version = "4.5.53" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.53" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.5.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "clap_lex" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" - -[[package]] -name = "colorchoice" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" - -[[package]] -name = "const-default" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b396d1f76d455557e1218ec8066ae14bba60b4b36ecd55577ba979f5db7ecaa" - -[[package]] -name = "const-hex" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" -dependencies = [ - "cfg-if", - "cpufeatures", - "proptest", - "serde_core", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "const_format" -version = "0.2.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" -dependencies = [ - "const_format_proc_macros", -] - -[[package]] -name = "const_format_proc_macros" -version = "0.2.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - -[[package]] -name = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "convert_case" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crc" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - -[[package]] -name = "crc32fast" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "critical-section" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" - -[[package]] -name = "crossbeam" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crunchy" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" - -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "git+https://github.com/sp1-patches/RustCrypto-bigint?tag=patch-0.5.5-sp1-4.0.0#d421029772fb604022defd4cae5fffb269ad5155" -dependencies = [ - "generic-array", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "darling" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" -dependencies = [ - "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]] -name = "darling_core" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.111", -] - -[[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.111", -] - -[[package]] -name = "darling_macro" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" -dependencies = [ - "darling_core 0.20.11", - "quote", - "syn 2.0.111", -] - -[[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.111", -] - -[[package]] -name = "datatest-stable" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833306ca7eec4d95844e65f0d7502db43888c5c1006c6c517e8cf51a27d15431" -dependencies = [ - "camino", - "fancy-regex", - "libtest-mimic", - "walkdir", -] - -[[package]] -name = "der" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - -[[package]] -name = "deranged" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" -dependencies = [ - "powerfmt", - "serde_core", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive-where" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "derive_more" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" -dependencies = [ - "derive_more-impl 1.0.0", -] - -[[package]] -name = "derive_more" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" -dependencies = [ - "derive_more-impl 2.0.1", -] - -[[package]] -name = "derive_more-impl" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" -dependencies = [ - "convert_case 0.6.0", - "proc-macro2", - "quote", - "syn 2.0.111", - "unicode-xid", -] - -[[package]] -name = "derive_more-impl" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" -dependencies = [ - "convert_case 0.7.1", - "proc-macro2", - "quote", - "syn 2.0.111", - "unicode-xid", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "dunce" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" - -[[package]] -name = "dyn-clone" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "git+https://github.com/sp1-patches/signatures?tag=patch-16.9-sp1-4.1.0#1880299a48fe7ef249edaa616fd411239fb5daf1" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "serdect", - "signature", - "spki", -] - -[[package]] -name = "educe" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" -dependencies = [ - "enum-ordinalize", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" -dependencies = [ - "serde", -] - -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff", - "generic-array", - "group", - "hkdf", - "pem-rfc7468", - "pkcs8", - "rand_core 0.6.4", - "sec1", - "serdect", - "subtle", - "zeroize", -] - -[[package]] -name = "embedded-alloc" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f2de9133f68db0d4627ad69db767726c99ff8585272716708227008d3f1bddd" -dependencies = [ - "const-default", - "critical-section", - "linked_list_allocator", - "rlsf", -] - -[[package]] -name = "enum-ordinalize" -version = "4.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" -dependencies = [ - "enum-ordinalize-derive", -] - -[[package]] -name = "enum-ordinalize-derive" -version = "4.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "ere-io" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=a75f8f4832942b32fc1314bb3b2ce9b5e3e9d306#a75f8f4832942b32fc1314bb3b2ce9b5e3e9d306" -dependencies = [ - "rkyv", -] - -[[package]] -name = "ere-platform-sp1" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=a75f8f4832942b32fc1314bb3b2ce9b5e3e9d306#a75f8f4832942b32fc1314bb3b2ce9b5e3e9d306" -dependencies = [ - "ere-platform-trait", - "sp1-zkvm", -] - -[[package]] -name = "ere-platform-trait" -version = "0.0.15" -source = "git+https://github.com/eth-applied-research-group/ere?rev=a75f8f4832942b32fc1314bb3b2ce9b5e3e9d306#a75f8f4832942b32fc1314bb3b2ce9b5e3e9d306" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "errno" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -dependencies = [ - "libc", - "windows-sys", -] - -[[package]] -name = "escape8259" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5692dd7b5a1978a5aeb0ce83b7655c58ca8efdcb79d21036ea249da95afec2c6" - -[[package]] -name = "ethbloom" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c321610643004cf908ec0f5f2aa0d8f1f8e14b540562a2887a1111ff1ecbf7b" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-rlp", - "impl-serde", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ab15ed80916029f878e0267c3a9f92b67df55e79af370bf66199059ae2b4ee3" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-rlp", - "impl-serde", - "primitive-types 0.13.1", - "uint 0.10.0", -] - -[[package]] -name = "ethereum_serde_utils" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dc1355dbb41fbbd34ec28d4fb2a57d9a70c67ac3c19f6a5ca4d4a176b9e997a" -dependencies = [ - "alloy-primitives", - "hex", - "serde", - "serde_derive", - "serde_json", -] - -[[package]] -name = "ethereum_ssz" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dcddb2554d19cde19b099fadddde576929d7a4d0c1cd3512d1fd95cf174375c" -dependencies = [ - "alloy-primitives", - "ethereum_serde_utils", - "itertools 0.13.0", - "serde", - "serde_derive", - "smallvec", - "typenum", -] - -[[package]] -name = "ethereum_ssz_derive" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a657b6b3b7e153637dc6bdc6566ad9279d9ee11a15b12cfb24a2e04360637e9f" -dependencies = [ - "darling 0.20.11", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "ethrex-blockchain" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "ethrex-common", - "ethrex-crypto", - "ethrex-metrics", - "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", - "hex", - "rustc-hash", - "thiserror", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "ethrex-common" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "crc32fast", - "ethereum-types", - "ethrex-crypto", - "ethrex-rlp", - "ethrex-trie", - "hex", - "k256", - "kzg-rs", - "lazy_static", - "libc", - "once_cell", - "rayon", - "rkyv", - "rustc-hash", - "secp256k1", - "serde", - "serde_json", - "sha2", - "sha3", - "thiserror", - "tinyvec", - "tracing", - "url", -] - -[[package]] -name = "ethrex-crypto" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "kzg-rs", - "thiserror", - "tiny-keccak", -] - -[[package]] -name = "ethrex-guest" -version = "0.1.0" -dependencies = [ - "ere-io", - "ere-platform-trait", - "ethrex-common", - "guest-libs", - "guest_program", - "rkyv", -] - -[[package]] -name = "ethrex-l2-common" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "ethereum-types", - "ethrex-common", - "ethrex-crypto", - "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", - "hex", - "k256", - "lambdaworks-crypto", - "rkyv", - "secp256k1", - "serde", - "serde_with", - "sha3", - "thiserror", -] - -[[package]] -name = "ethrex-levm" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", - "bitvec", - "bls12_381", - "bytes", - "datatest-stable", - "derive_more 1.0.0", - "ethrex-common", - "ethrex-crypto", - "ethrex-rlp", - "k256", - "lambdaworks-math", - "lazy_static", - "malachite", - "p256", - "ripemd", - "rustc-hash", - "secp256k1", - "serde", - "serde_json", - "sha2", - "sha3", - "strum", - "substrate-bn", - "thiserror", - "walkdir", -] - -[[package]] -name = "ethrex-metrics" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "ethrex-common", - "serde", - "serde_json", - "thiserror", - "tracing-subscriber", -] - -[[package]] -name = "ethrex-rlp" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "ethereum-types", - "hex", - "lazy_static", - "snap", - "thiserror", - "tinyvec", -] - -[[package]] -name = "ethrex-sp1-stateless-validator" -version = "0.1.0" -dependencies = [ - "ere-platform-sp1", - "ethrex-guest", - "ethrex-vm", - "guest_program", - "k256", -] - -[[package]] -name = "ethrex-storage" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "anyhow", - "async-trait", - "bincode", - "bytes", - "ethereum-types", - "ethrex-common", - "ethrex-crypto", - "ethrex-rlp", - "ethrex-trie", - "hex", - "lru", - "qfilter", - "rayon", - "rustc-hash", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "ethrex-threadpool" -version = "0.1.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "crossbeam", -] - -[[package]] -name = "ethrex-trie" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "anyhow", - "bytes", - "crossbeam", - "digest 0.10.7", - "ethereum-types", - "ethrex-crypto", - "ethrex-rlp", - "ethrex-threadpool", - "hex", - "lazy_static", - "rkyv", - "rustc-hash", - "serde", - "serde_json", - "smallvec", - "thiserror", - "tracing", -] - -[[package]] -name = "ethrex-vm" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bincode", - "bytes", - "derive_more 1.0.0", - "dyn-clone", - "ethereum-types", - "ethrex-common", - "ethrex-crypto", - "ethrex-levm", - "ethrex-rlp", - "ethrex-trie", - "lazy_static", - "rkyv", - "serde", - "thiserror", - "tracing", -] - -[[package]] -name = "fancy-regex" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298" -dependencies = [ - "bit-set", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fastrlp" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - -[[package]] -name = "fastrlp" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - -[[package]] -name = "ff" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" -dependencies = [ - "bitvec", - "byteorder", - "ff_derive", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff_derive" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f10d12652036b0e99197587c6ba87a8fc3031986499973c030d8b44fcc151b60" -dependencies = [ - "addchain", - "num-bigint 0.3.3", - "num-integer", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "find-msvc-tools" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" - -[[package]] -name = "fixed-hash" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" -dependencies = [ - "byteorder", - "rand 0.8.5", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - -[[package]] -name = "foldhash" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" - -[[package]] -name = "form_urlencoded" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-macro", - "futures-task", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "gcd" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" - -[[package]] -name = "generic-array" -version = "0.14.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "getrandom" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" -dependencies = [ - "cfg-if", - "libc", - "r-efi", - "wasip2", -] - -[[package]] -name = "glob" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "guest-libs" -version = "0.1.0" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "anyhow", - "ere-io", - "ere-platform-trait", - "ethereum_ssz", - "ethereum_ssz_derive", - "reth-ethereum-primitives", - "reth-primitives-traits", - "reth-stateless", - "serde", - "serde_with", - "sha2", - "thiserror", -] - -[[package]] -name = "guest_program" -version = "7.0.0" -source = "git+https://github.com/lambdaclass/ethrex.git?rev=c68e76d6b569c60a667a1240a91e637bf2ea0d0b#c68e76d6b569c60a667a1240a91e637bf2ea0d0b" -dependencies = [ - "bytes", - "ethrex-blockchain", - "ethrex-common", - "ethrex-crypto", - "ethrex-l2-common", - "ethrex-rlp", - "ethrex-storage", - "ethrex-trie", - "ethrex-vm", - "hex", - "rkyv", - "serde", - "serde_json", - "serde_with", - "thiserror", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "allocator-api2", - "foldhash 0.1.5", -] - -[[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]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hex-conservative" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda06d18ac606267c40c04e41b9947729bf8b9efe74bd4e82b61a5f26a510b9f" -dependencies = [ - "arrayvec", -] - -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "icu_collections" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" -dependencies = [ - "displaydoc", - "potential_utf", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locale_core" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_normalizer" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" -dependencies = [ - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" - -[[package]] -name = "icu_properties" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" -dependencies = [ - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", - "zerotrie", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" - -[[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", - "writeable", - "yoke", - "zerofrom", - "zerotrie", - "zerovec", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-codec" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d40b9d5e17727407e55028eafc22b2dc68781786e6d7eb8a21103f5058e3a14" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-rlp" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ed8ad1f3877f7e775b8cbf30ed1bd3209a95401817f19a0eb4402d13f8cf90" -dependencies = [ - "rlp 0.6.1", -] - -[[package]] -name = "impl-serde" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a143eada6a1ec4aefa5049037a26a6d597bfd64f8c026d07b77133e02b7dd0b" -dependencies = [ - "serde", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" -dependencies = [ - "equivalent", - "hashbrown 0.16.1", - "serde", - "serde_core", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -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.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" - -[[package]] -name = "jobserver" -version = "0.1.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" -dependencies = [ - "getrandom 0.3.4", - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.82" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "k256" -version = "0.13.4" -source = "git+https://github.com/sp1-patches/elliptic-curves?tag=patch-k256-13.4-sp1-5.0.0#f7d8998e05d8cbcbd8e543eba1030a7385011fa8" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "hex", - "once_cell", - "serdect", - "sha2", - "signature", - "sp1-lib", -] - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "keccak-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" -dependencies = [ - "digest 0.10.7", - "sha3-asm", -] - -[[package]] -name = "kzg-rs" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9201effeea3fcc93b587904ae2df9ce97e433184b9d6d299e9ebc9830a546636" -dependencies = [ - "ff", - "hex", - "serde_arrays", - "sha2", - "sp1_bls12_381", - "spin", -] - -[[package]] -name = "lambdaworks-crypto" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58b1a1c1102a5a7fbbda117b79fb3a01e033459c738a3c1642269603484fd1c1" -dependencies = [ - "lambdaworks-math", - "rand 0.8.5", - "rand_chacha 0.3.1", - "serde", - "sha2", - "sha3", -] - -[[package]] -name = "lambdaworks-math" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "018a95aa873eb49896a858dee0d925c33f3978d073c64b08dd4f2c9b35a017c6" -dependencies = [ - "getrandom 0.2.16", - "num-bigint 0.4.6", - "num-traits", - "rand 0.8.5", - "rayon", - "serde", - "serde_json", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] - -[[package]] -name = "libc" -version = "0.2.177" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" - -[[package]] -name = "libm" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" - -[[package]] -name = "libtest-mimic" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5297962ef19edda4ce33aaa484386e0a5b3d7f2f4e037cbeee00503ef6b29d33" -dependencies = [ - "anstream", - "anstyle", - "clap", - "escape8259", -] - -[[package]] -name = "linked_list_allocator" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afa463f5405ee81cdb9cc2baf37e08ec7e4c8209442b5d72c04cfb2cd6e6286" - -[[package]] -name = "linux-raw-sys" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" - -[[package]] -name = "litemap" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" - -[[package]] -name = "log" -version = "0.4.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" - -[[package]] -name = "lru" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96051b46fc183dc9cd4a223960ef37b9af631b55191852a8274bfef064cda20f" -dependencies = [ - "hashbrown 0.16.1", -] - -[[package]] -name = "macro-string" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "malachite" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec410515e231332b14cd986a475d1c3323bcfa4c7efc038bfa1d5b410b1c57e4" -dependencies = [ - "malachite-base", - "malachite-nz", - "malachite-q", -] - -[[package]] -name = "malachite-base" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c738d3789301e957a8f7519318fcbb1b92bb95863b28f6938ae5a05be6259f34" -dependencies = [ - "hashbrown 0.15.5", - "itertools 0.14.0", - "libm", - "ryu", -] - -[[package]] -name = "malachite-nz" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1707c9a1fa36ce21749b35972bfad17bbf34cf5a7c96897c0491da321e387d3b" -dependencies = [ - "itertools 0.14.0", - "libm", - "malachite-base", - "wide", -] - -[[package]] -name = "malachite-q" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d764801aa4e96bbb69b389dcd03b50075345131cd63ca2e380bca71cc37a3675" -dependencies = [ - "itertools 0.14.0", - "malachite-base", - "malachite-nz", -] - -[[package]] -name = "matchers" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" -dependencies = [ - "regex-automata", -] - -[[package]] -name = "memchr" -version = "2.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" - -[[package]] -name = "modular-bitfield" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" -dependencies = [ - "modular-bitfield-impl", - "static_assertions", -] - -[[package]] -name = "modular-bitfield-impl" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "munge" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c" -dependencies = [ - "munge_macro", -] - -[[package]] -name = "munge_macro" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "nu-ansi-term" -version = "0.50.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint 0.4.6", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint 0.4.6", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" -dependencies = [ - "num_enum_derive", - "rustversion", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "nybbles" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4b5ecbd0beec843101bffe848217f770e8b8da81d8355b7d6e226f2199b3dc" -dependencies = [ - "alloy-rlp", - "cfg-if", - "proptest", - "ruint", - "serde", - "smallvec", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" -dependencies = [ - "critical-section", - "portable-atomic", -] - -[[package]] -name = "once_cell_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" - -[[package]] -name = "op-alloy-consensus" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726da827358a547be9f1e37c2a756b9e3729cb0350f43408164794b370cad8ae" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "derive_more 2.0.1", - "serde", - "serde_with", - "thiserror", -] - -[[package]] -name = "p256" -version = "0.13.2" -source = "git+https://github.com/sp1-patches/elliptic-curves?tag=patch-p256-13.2-sp1-5.0.0#10cca2ef98bebbad35e2475849433fc3e75e27d9" -dependencies = [ - "ecdsa", - "elliptic-curve", - "hex", - "primeorder", - "sha2", - "sp1-lib", -] - -[[package]] -name = "p3-baby-bear" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7521838ecab2ddf4f7bc4ceebad06ec02414729598485c1ada516c39900820e8" -dependencies = [ - "num-bigint 0.4.6", - "p3-field", - "p3-mds", - "p3-poseidon2", - "p3-symmetric", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-dft" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46414daedd796f1eefcdc1811c0484e4bced5729486b6eaba9521c572c76761a" -dependencies = [ - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", - "tracing", -] - -[[package]] -name = "p3-field" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48948a0516b349e9d1cdb95e7236a6ee010c44e68c5cc78b4b92bf1c4022a0d9" -dependencies = [ - "itertools 0.12.1", - "num-bigint 0.4.6", - "num-traits", - "p3-util", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-matrix" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4de3f373589477cb735ea58e125898ed20935e03664b4614c7fac258b3c42f" -dependencies = [ - "itertools 0.12.1", - "p3-field", - "p3-maybe-rayon", - "p3-util", - "rand 0.8.5", - "serde", - "tracing", -] - -[[package]] -name = "p3-maybe-rayon" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3968ad1160310296eb04f91a5f4edfa38fe1d6b2b8cd6b5c64e6f9b7370979e" - -[[package]] -name = "p3-mds" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2356b1ed0add6d5dfbf7a338ce534a6fde827374394a52cec16a0840af6e97c9" -dependencies = [ - "itertools 0.12.1", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-symmetric", - "p3-util", - "rand 0.8.5", -] - -[[package]] -name = "p3-poseidon2" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da1eec7e1b6900581bedd95e76e1ef4975608dd55be9872c9d257a8a9651c3a" -dependencies = [ - "gcd", - "p3-field", - "p3-mds", - "p3-symmetric", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-symmetric" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb439bea1d822623b41ff4b51e3309e80d13cadf8b86d16ffd5e6efb9fdc360" -dependencies = [ - "itertools 0.12.1", - "p3-field", - "serde", -] - -[[package]] -name = "p3-util" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c2c2010678b9332b563eaa38364915b585c1a94b5ca61e2c7541c087ddda5c" -dependencies = [ - "serde", -] - -[[package]] -name = "pairing" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" -dependencies = [ - "group", -] - -[[package]] -name = "parity-scale-codec" -version = "3.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" -dependencies = [ - "arrayvec", - "bitvec", - "byte-slice-cast", - "const_format", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "rustversion", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "3.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - -[[package]] -name = "pest" -version = "2.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" -dependencies = [ - "memchr", - "ucd-trie", -] - -[[package]] -name = "phf" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" -dependencies = [ - "phf_macros", - "phf_shared", - "serde", -] - -[[package]] -name = "phf_generator" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" -dependencies = [ - "fastrand", - "phf_shared", -] - -[[package]] -name = "phf_macros" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" -dependencies = [ - "phf_generator", - "phf_shared", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "phf_shared" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "portable-atomic" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" - -[[package]] -name = "potential_utf" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" -dependencies = [ - "zerovec", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "primeorder" -version = "0.13.1" -source = "git+https://github.com/sp1-patches/elliptic-curves?tag=patch-p256-13.2-sp1-5.0.0#10cca2ef98bebbad35e2475849433fc3e75e27d9" -dependencies = [ - "elliptic-curve", -] - -[[package]] -name = "primitive-types" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" -dependencies = [ - "fixed-hash", - "impl-codec 0.6.0", - "uint 0.9.5", -] - -[[package]] -name = "primitive-types" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d15600a7d856470b7d278b3fe0e311fe28c2526348549f8ef2ff7db3299c87f5" -dependencies = [ - "fixed-hash", - "impl-codec 0.7.1", - "impl-rlp", - "impl-serde", - "uint 0.10.0", -] - -[[package]] -name = "proc-macro-crate" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" -dependencies = [ - "toml_edit", -] - -[[package]] -name = "proc-macro-error-attr2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "proc-macro-error2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" -dependencies = [ - "proc-macro-error-attr2", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "proc-macro2" -version = "1.0.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proptest" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags", - "num-traits", - "rand 0.9.2", - "rand_chacha 0.9.0", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", - "unarray", -] - -[[package]] -name = "ptr_meta" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79" -dependencies = [ - "ptr_meta_derive", -] - -[[package]] -name = "ptr_meta_derive" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "qfilter" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "746341cd2357c9a4df2d951522b4a8dd1ef553e543119899ad7bf87e938c8fbe" -dependencies = [ - "xxhash-rust", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quote" -version = "1.0.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rancor" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a063ea72381527c2a0561da9c80000ef822bdd7c3241b1cc1b12100e3df081ee" -dependencies = [ - "ptr_meta", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "serde", -] - -[[package]] -name = "rand" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", - "serde", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.16", -] - -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom 0.3.4", - "serde", -] - -[[package]] -name = "rand_xorshift" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" -dependencies = [ - "rand_core 0.9.3", -] - -[[package]] -name = "rayon" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "ref-cast" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "regex-automata" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" - -[[package]] -name = "rend" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6" -dependencies = [ - "bytecheck", -] - -[[package]] -name = "reth-chainspec" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-evm", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "auto_impl", - "derive_more 2.0.1", - "reth-ethereum-forks", - "reth-network-peers", - "reth-primitives-traits", - "serde_json", -] - -[[package]] -name = "reth-codecs" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "bytes", - "modular-bitfield", - "op-alloy-consensus", - "reth-codecs-derive", - "reth-zstd-compressors", - "serde", -] - -[[package]] -name = "reth-codecs-derive" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "reth-consensus" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "auto_impl", - "reth-execution-types", - "reth-primitives-traits", - "thiserror", -] - -[[package]] -name = "reth-consensus-common" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "reth-chainspec", - "reth-consensus", - "reth-primitives-traits", -] - -[[package]] -name = "reth-db-models" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "reth-primitives-traits", -] - -[[package]] -name = "reth-errors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "reth-consensus", - "reth-execution-errors", - "reth-storage-errors", - "thiserror", -] - -[[package]] -name = "reth-ethereum-consensus" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "reth-chainspec", - "reth-consensus", - "reth-consensus-common", - "reth-execution-types", - "reth-primitives-traits", - "tracing", -] - -[[package]] -name = "reth-ethereum-forks" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-eip2124", - "alloy-hardforks", - "alloy-primitives", - "auto_impl", - "once_cell", -] - -[[package]] -name = "reth-ethereum-primitives" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde", - "reth-codecs", - "reth-primitives-traits", - "serde", - "serde_with", -] - -[[package]] -name = "reth-evm" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm", - "alloy-primitives", - "auto_impl", - "derive_more 2.0.1", - "futures-util", - "reth-execution-errors", - "reth-execution-types", - "reth-primitives-traits", - "reth-storage-api", - "reth-storage-errors", - "reth-trie-common", - "revm", -] - -[[package]] -name = "reth-execution-errors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-evm", - "alloy-primitives", - "alloy-rlp", - "nybbles", - "reth-storage-errors", - "thiserror", -] - -[[package]] -name = "reth-execution-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm", - "alloy-primitives", - "derive_more 2.0.1", - "reth-ethereum-primitives", - "reth-primitives-traits", - "reth-trie-common", - "revm", -] - -[[package]] -name = "reth-network-peers" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "serde_with", - "thiserror", - "url", -] - -[[package]] -name = "reth-primitives-traits" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-trie", - "auto_impl", - "bytes", - "derive_more 2.0.1", - "once_cell", - "op-alloy-consensus", - "reth-codecs", - "revm-bytecode", - "revm-primitives", - "revm-state", - "secp256k1", - "serde", - "serde_with", - "thiserror", -] - -[[package]] -name = "reth-prune-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "derive_more 2.0.1", - "strum", - "thiserror", -] - -[[package]] -name = "reth-revm" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "reth-primitives-traits", - "reth-storage-api", - "reth-storage-errors", - "revm", -] - -[[package]] -name = "reth-stages-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "reth-trie-common", -] - -[[package]] -name = "reth-stateless" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-debug", - "alloy-trie", - "itertools 0.14.0", - "reth-chainspec", - "reth-consensus", - "reth-errors", - "reth-ethereum-consensus", - "reth-ethereum-primitives", - "reth-evm", - "reth-primitives-traits", - "reth-revm", - "reth-trie-common", - "reth-trie-sparse", - "serde", - "serde_with", - "thiserror", -] - -[[package]] -name = "reth-static-file-types" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "derive_more 2.0.1", - "serde", - "strum", -] - -[[package]] -name = "reth-storage-api" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "reth-chainspec", - "reth-db-models", - "reth-ethereum-primitives", - "reth-execution-types", - "reth-primitives-traits", - "reth-prune-types", - "reth-stages-types", - "reth-storage-errors", - "reth-trie-common", - "revm-database", -] - -[[package]] -name = "reth-storage-errors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "derive_more 2.0.1", - "reth-primitives-traits", - "reth-prune-types", - "reth-static-file-types", - "revm-database-interface", - "thiserror", -] - -[[package]] -name = "reth-trie-common" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -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-trie-sparse" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "auto_impl", - "reth-execution-errors", - "reth-primitives-traits", - "reth-trie-common", - "smallvec", - "tracing", -] - -[[package]] -name = "reth-zstd-compressors" -version = "1.9.3" -source = "git+https://github.com/paradigmxyz/reth?rev=cfde951976bfa9100a6d9f806e06fb539ae25241#cfde951976bfa9100a6d9f806e06fb539ae25241" -dependencies = [ - "zstd", -] - -[[package]] -name = "revm" -version = "33.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c85ed0028f043f87b3c88d4a4cb6f0a76440085523b6a8afe5ff003cf418054" -dependencies = [ - "revm-bytecode", - "revm-context", - "revm-context-interface", - "revm-database", - "revm-database-interface", - "revm-handler", - "revm-inspector", - "revm-interpreter", - "revm-precompile", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-bytecode" -version = "7.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2c6b5e6e8dd1e28a4a60e5f46615d4ef0809111c9e63208e55b5c7058200fb0" -dependencies = [ - "bitvec", - "phf", - "revm-primitives", - "serde", -] - -[[package]] -name = "revm-context" -version = "12.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f038f0c9c723393ac897a5df9140b21cfa98f5753a2cb7d0f28fa430c4118abf" -dependencies = [ - "bitvec", - "cfg-if", - "derive-where", - "revm-bytecode", - "revm-context-interface", - "revm-database-interface", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-context-interface" -version = "13.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "431c9a14e4ef1be41ae503708fd02d974f80ef1f2b6b23b5e402e8d854d1b225" -dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "auto_impl", - "either", - "revm-database-interface", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-database" -version = "9.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "980d8d6bba78c5dd35b83abbb6585b0b902eb25ea4448ed7bfba6283b0337191" -dependencies = [ - "revm-bytecode", - "revm-database-interface", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-database-interface" -version = "8.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cce03e3780287b07abe58faf4a7f5d8be7e81321f93ccf3343c8f7755602bae" -dependencies = [ - "auto_impl", - "either", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-handler" -version = "14.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d44f8f6dbeec3fecf9fe55f78ef0a758bdd92ea46cd4f1ca6e2a946b32c367f3" -dependencies = [ - "auto_impl", - "derive-where", - "revm-bytecode", - "revm-context", - "revm-context-interface", - "revm-database-interface", - "revm-interpreter", - "revm-precompile", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-inspector" -version = "14.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5617e49216ce1ca6c8826bcead0386bc84f49359ef67cde6d189961735659f93" -dependencies = [ - "auto_impl", - "either", - "revm-context", - "revm-database-interface", - "revm-handler", - "revm-interpreter", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-interpreter" -version = "31.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26ec36405f7477b9dccdc6caa3be19adf5662a7a0dffa6270cdb13a090c077e5" -dependencies = [ - "revm-bytecode", - "revm-context-interface", - "revm-primitives", - "revm-state", -] - -[[package]] -name = "revm-precompile" -version = "31.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a62958af953cc4043e93b5be9b8497df84cc3bd612b865c49a7a7dfa26a84e2" -dependencies = [ - "ark-bls12-381", - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "arrayref", - "aurora-engine-modexp", - "cfg-if", - "k256", - "p256", - "revm-primitives", - "ripemd", - "sha2", -] - -[[package]] -name = "revm-primitives" -version = "21.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29e161db429d465c09ba9cbff0df49e31049fe6b549e28eb0b7bd642fcbd4412" -dependencies = [ - "alloy-primitives", - "num_enum", - "once_cell", - "serde", -] - -[[package]] -name = "revm-state" -version = "8.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d8be953b7e374dbdea0773cf360debed8df394ea8d82a8b240a6b5da37592fc" -dependencies = [ - "bitflags", - "revm-bytecode", - "revm-primitives", - "serde", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "git+https://github.com/sp1-patches/signatures?tag=patch-16.9-sp1-4.1.0#1880299a48fe7ef249edaa616fd411239fb5daf1" -dependencies = [ - "hmac", - "subtle", -] - -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "rkyv" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35a640b26f007713818e9a9b65d34da1cf58538207b052916a83d80e43f3ffa4" -dependencies = [ - "bytecheck", - "bytes", - "hashbrown 0.15.5", - "indexmap 2.12.1", - "munge", - "ptr_meta", - "rancor", - "rend", - "rkyv_derive", - "tinyvec", - "uuid", -] - -[[package]] -name = "rkyv_derive" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd83f5f173ff41e00337d97f6572e416d022ef8a19f371817259ae960324c482" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "rlp" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" -dependencies = [ - "bytes", - "rustc-hex", -] - -[[package]] -name = "rlp" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24e92bb2a83198bb76d661a71df9f7076b8c420b8696e4d3d97d50d94479e3" -dependencies = [ - "bytes", - "rustc-hex", -] - -[[package]] -name = "rlsf" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222fb240c3286247ecdee6fa5341e7cdad0ffdf8e7e401d9937f2d58482a20bf" -dependencies = [ - "cfg-if", - "const-default", - "libc", - "svgbobdoc", -] - -[[package]] -name = "ruint" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" -dependencies = [ - "alloy-rlp", - "ark-ff 0.3.0", - "ark-ff 0.4.2", - "ark-ff 0.5.0", - "bytes", - "fastrlp 0.3.1", - "fastrlp 0.4.0", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "parity-scale-codec", - "primitive-types 0.12.2", - "proptest", - "rand 0.8.5", - "rand 0.9.2", - "rlp 0.5.2", - "ruint-macro", - "serde_core", - "valuable", - "zeroize", -] - -[[package]] -name = "ruint-macro" -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 = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver 1.0.27", -] - -[[package]] -name = "rustix" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys", -] - -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - -[[package]] -name = "rusty-fork" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - -[[package]] -name = "safe_arch" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schemars" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "schemars" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "serdect", - "subtle", - "zeroize", -] - -[[package]] -name = "secp256k1" -version = "0.30.0" -source = "git+https://github.com/sp1-patches/rust-secp256k1?tag=patch-0.30.0-sp1-5.0.0#04d87db04bcc2dc5dd8e1ab3f046cc655440d07a" -dependencies = [ - "bitcoin_hashes", - "cfg-if", - "k256", - "rand 0.8.5", - "secp256k1-sys", - "serde", -] - -[[package]] -name = "secp256k1-sys" -version = "0.10.0" -source = "git+https://github.com/sp1-patches/rust-secp256k1?tag=patch-0.30.0-sp1-5.0.0#04d87db04bcc2dc5dd8e1ab3f046cc655440d07a" -dependencies = [ - "cc", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" - -[[package]] -name = "semver-parser" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" -dependencies = [ - "pest", -] - -[[package]] -name = "serde" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" -dependencies = [ - "serde_core", - "serde_derive", -] - -[[package]] -name = "serde_arrays" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a16b99c5ea4fe3daccd14853ad260ec00ea043b2708d1fd1da3106dcd8d9df" -dependencies = [ - "serde", -] - -[[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.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "serde_json" -version = "1.0.145" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", - "serde_core", -] - -[[package]] -name = "serde_with" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10574371d41b0d9b2cff89418eda27da52bcaff2cc8741db26382a77c29131f1" -dependencies = [ - "base64 0.22.1", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.12.1", - "schemars 0.9.0", - "schemars 1.1.0", - "serde_core", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a72d8216842fdd57820dc78d840bef99248e35fb2554ff923319e60f2d686b" -dependencies = [ - "darling 0.21.3", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "serdect" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" -dependencies = [ - "base16ct", - "serde", -] - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha3" -version = "0.10.8" -source = "git+https://github.com/sp1-patches/RustCrypto-hashes?tag=patch-sha3-0.10.8-sp1-4.0.0#8f6d303c0861ba7e5adcc36207c0f41fe5edaabc" -dependencies = [ - "digest 0.10.7", - "keccak", -] - -[[package]] -name = "sha3-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" -dependencies = [ - "cc", - "cfg-if", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", -] - -[[package]] -name = "simdutf8" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" - -[[package]] -name = "siphasher" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" - -[[package]] -name = "slab" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" -dependencies = [ - "serde", -] - -[[package]] -name = "snap" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" - -[[package]] -name = "sp1-lib" -version = "5.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1a9935d58cb1dcd757a1b10d727090f5b718f1f03b512d48f0c1952e6ead00" -dependencies = [ - "bincode", - "elliptic-curve", - "serde", - "sp1-primitives", -] - -[[package]] -name = "sp1-primitives" -version = "5.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7d2a6187e394c30097ea7a975a4832f172918690dc89a979f0fad67422d3a8b" -dependencies = [ - "bincode", - "blake3", - "cfg-if", - "hex", - "lazy_static", - "num-bigint 0.4.6", - "p3-baby-bear", - "p3-field", - "p3-poseidon2", - "p3-symmetric", - "serde", - "sha2", -] - -[[package]] -name = "sp1-zkvm" -version = "5.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e767ed85f89b1c8d84188c2cc035833079529bb0ddd8f7bd252de91ce562acc7" -dependencies = [ - "cfg-if", - "critical-section", - "embedded-alloc", - "getrandom 0.2.16", - "getrandom 0.3.4", - "lazy_static", - "libm", - "rand 0.8.5", - "sha2", - "sp1-lib", - "sp1-primitives", -] - -[[package]] -name = "sp1_bls12_381" -version = "0.8.0-sp1-5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac255e1704ebcdeec5e02f6a0ebc4d2e9e6b802161938330b6810c13a610c583" -dependencies = [ - "cfg-if", - "ff", - "group", - "pairing", - "rand_core 0.6.4", - "sp1-lib", - "subtle", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "strum" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "substrate-bn" -version = "0.6.0" -source = "git+https://github.com/sp1-patches/bn?tag=patch-0.6.0-sp1-5.0.0#e0d67f219b2ad6a1887e3275b7ba09ada4b1afb6" -dependencies = [ - "bytemuck", - "byteorder", - "cfg-if", - "crunchy", - "lazy_static", - "num-bigint 0.4.6", - "rand 0.8.5", - "rustc-hex", - "sp1-lib", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "svgbobdoc" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c04b93fc15d79b39c63218f15e3fdffaa4c227830686e3b7c5f41244eb3e50" -dependencies = [ - "base64 0.13.1", - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-width", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.111" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn-solidity" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff790eb176cc81bb8936aed0f7b9f14fc4670069a2d371b3e3b0ecce908b2cb3" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" -dependencies = [ - "fastrand", - "getrandom 0.3.4", - "once_cell", - "rustix", - "windows-sys", -] - -[[package]] -name = "thiserror" -version = "2.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "thread_local" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "time" -version = "0.3.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" - -[[package]] -name = "time-macros" -version = "0.2.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "git+https://github.com/sp1-patches/tiny-keccak?tag=patch-2.0.2-sp1-4.0.0#d2ffd330259c8f290b07d99cc1ef1f74774382c2" -dependencies = [ - "cfg-if", - "crunchy", -] - -[[package]] -name = "tinystr" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" -dependencies = [ - "pin-project-lite", -] - -[[package]] -name = "tokio-util" -version = "0.7.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "futures-util", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml_datetime" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" -dependencies = [ - "serde_core", -] - -[[package]] -name = "toml_edit" -version = "0.23.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" -dependencies = [ - "indexmap 2.12.1", - "toml_datetime", - "toml_parser", - "winnow", -] - -[[package]] -name = "toml_parser" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" -dependencies = [ - "winnow", -] - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "tracing-core" -version = "0.1.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex-automata", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "typenum" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" - -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "uint" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "909988d098b2f738727b161a106cfc7cab00c539c2687a8836f8e565976fb53e" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicode-ident" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" - -[[package]] -name = "unicode-segmentation" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" - -[[package]] -name = "unicode-width" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" - -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "url" -version = "2.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - -[[package]] -name = "uuid" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "valuable" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wait-timeout" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" -dependencies = [ - "libc", -] - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - -[[package]] -name = "wasip2" -version = "1.0.1+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" -dependencies = [ - "bumpalo", - "proc-macro2", - "quote", - "syn 2.0.111", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "wide" -version = "0.7.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" -dependencies = [ - "bytemuck", - "safe_arch", -] - -[[package]] -name = "winapi-util" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "windows-core" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link", - "windows-result", - "windows-strings", -] - -[[package]] -name = "windows-implement" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "windows-interface" -version = "0.59.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[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.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-sys" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" -dependencies = [ - "windows-link", -] - -[[package]] -name = "winnow" -version = "0.7.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" -dependencies = [ - "memchr", -] - -[[package]] -name = "wit-bindgen" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "xxhash-rust" -version = "0.8.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" - -[[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", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", - "synstructure", -] - -[[package]] -name = "zerocopy" -version = "0.8.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea879c944afe8a2b25fef16bb4ba234f47c694565e97383b36f3a878219065c" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf955aa904d6040f70dc8e9384444cb1030aed272ba3cb09bbc4ab9e7c1f34f5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "zerotrie" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - -[[package]] -name = "zerovec" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[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.111", -] - -[[package]] -name = "zstd" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "7.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" -dependencies = [ - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.16+zstd.1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" -dependencies = [ - "cc", - "pkg-config", -] - -[[patch.unused]] -name = "sha2" -version = "0.10.8" -source = "git+https://github.com/sp1-patches/RustCrypto-hashes?tag=patch-sha2-0.10.8-sp1-4.0.0#1f224388fdede7cef649bce0d63876d1a9e3f515" diff --git a/ere-guests/stateless-validator/ethrex/sp1/Cargo.toml b/ere-guests/stateless-validator/ethrex/sp1/Cargo.toml deleted file mode 100644 index e9b2bc86..00000000 --- a/ere-guests/stateless-validator/ethrex/sp1/Cargo.toml +++ /dev/null @@ -1,33 +0,0 @@ -[package] -version = "0.1.0" -name = "ethrex-sp1-stateless-validator" -edition = "2024" - -[workspace] - -[dependencies] -ere-platform-sp1 = { git = "https://github.com/eth-applied-research-group/ere", rev = "d15c6b495d0bc42bf160ecfbb11fa7600047c821", default-features = false } -ethrex-guest = { path = "../guest", features = ["std"] } - -k256 = "0.13" -guest_program = { git = "https://github.com/lambdaclass/ethrex.git", rev = "c68e76d6b569c60a667a1240a91e637bf2ea0d0b" } -ethrex-vm = { git = "https://github.com/lambdaclass/ethrex.git", rev = "c68e76d6b569c60a667a1240a91e637bf2ea0d0b", default-features = false, features = [ - "sp1", -] } - -[patch.crates-io] -sha2-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "patch-sha2-0.10.8-sp1-4.0.0" } -sha3-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "patch-sha3-0.10.8-sp1-4.0.0" } -crypto-bigint = { git = "https://github.com/sp1-patches/RustCrypto-bigint", tag = "patch-0.5.5-sp1-4.0.0" } -tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", tag = "patch-2.0.2-sp1-4.0.0" } -p256 = { git = "https://github.com/sp1-patches/elliptic-curves", tag = "patch-p256-13.2-sp1-5.0.0" } -secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", tag = "patch-0.30.0-sp1-5.0.0" } -ecdsa = { git = "https://github.com/sp1-patches/signatures", tag = "patch-16.9-sp1-4.1.0" } -k256 = { git = "https://github.com/sp1-patches/elliptic-curves", tag = "patch-k256-13.4-sp1-5.0.0" } -substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "patch-0.6.0-sp1-5.0.0" } - -[patch."https://github.com/lambdaclass/bls12_381"] -bls12_381 = { git = "https://github.com/lambdaclass/bls12_381-patch/", branch = "expose-fp-struct" } - -[features] -l2 = ["guest_program/l2", "ere-platform-sp1/embedded"] diff --git a/ere-guests/stateless-validator/ethrex/sp1/NOTICE b/ere-guests/stateless-validator/ethrex/sp1/NOTICE deleted file mode 100644 index 6c440f93..00000000 --- a/ere-guests/stateless-validator/ethrex/sp1/NOTICE +++ /dev/null @@ -1,32 +0,0 @@ -# APACHE NOTICE -Original work Copyright [Succinct Labs] -Copyright [2024] [LambdaClass] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - - -# MIT NOTICE -The MIT License (MIT) - -Original work Copyright (c) 2023 Succinct Labs -Copyright [2024] [LambdaClass] - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. diff --git a/ere-guests/stateless-validator/ethrex/sp1/src/main.rs b/ere-guests/stateless-validator/ethrex/sp1/src/main.rs deleted file mode 100644 index 2e8232e1..00000000 --- a/ere-guests/stateless-validator/ethrex/sp1/src/main.rs +++ /dev/null @@ -1,10 +0,0 @@ -#![no_main] - -use ere_platform_sp1::{sp1_zkvm, SP1Platform}; -use ethrex_guest::guest::{EthrexStatelessValidatorGuest, Guest}; - -sp1_zkvm::entrypoint!(main); - -pub fn main() { - EthrexStatelessValidatorGuest::run_output_sha256::(); -} diff --git a/ere-guests/stateless-validator/reth/airbender/Cargo.toml b/ere-guests/stateless-validator/reth/airbender/Cargo.toml deleted file mode 100644 index 09ebfada..00000000 --- a/ere-guests/stateless-validator/reth/airbender/Cargo.toml +++ /dev/null @@ -1,30 +0,0 @@ -[package] -name = "reth-airbender-stateless-validator" -version.workspace = true -edition.workspace = true -rust-version.workspace = true -license.workspace = true - -[dependencies] -ere-platform-airbender = { workspace = true, features = ["custom_allocator"] } -reth-guest.workspace = true -guest-libs.workspace = true - -reth-stateless = { workspace = true, features = ["k256"] } -reth-ethereum-primitives = { workspace = true, features = [ - "serde", - "serde-bincode-compat", -] } -reth-primitives-traits = { workspace = true, features = [ - "serde", - "serde-bincode-compat", -] } - -revm = { workspace = true, default-features = false, features = ["bn"] } -alloy-primitives = { workspace = true, default-features = false, features = [ - "map-foldhash", - "serde", - "sha3-keccak", -] } -k256.workspace = true -sha2.workspace = true diff --git a/ere-guests/stateless-validator/reth/airbender/src/airbender_rt.rs b/ere-guests/stateless-validator/reth/airbender/src/airbender_rt.rs deleted file mode 100644 index b464dc2a..00000000 --- a/ere-guests/stateless-validator/reth/airbender/src/airbender_rt.rs +++ /dev/null @@ -1,99 +0,0 @@ -use core::{ - alloc::{GlobalAlloc, Layout}, - ptr::addr_of_mut, -}; - -core::arch::global_asm!(include_str!("./asm_reduced.S")); - -unsafe extern "C" { - // Boundaries of the heap - static mut _sheap: usize; - static mut _eheap: usize; - - // Boundaries of the .data section (and it's part in ROM) - static mut _sidata: usize; - static mut _sdata: usize; - static mut _edata: usize; - - // Boundaries of the .rodata section - static mut _sirodata: usize; - static mut _srodata: usize; - static mut _erodata: usize; -} - -unsafe fn load_to_ram(src: *const u8, dst_start: *mut u8, dst_end: *mut u8) { - let offset = dst_end.addr() - dst_start.addr(); - - unsafe { core::ptr::copy_nonoverlapping(src, dst_start, offset) }; -} - -#[unsafe(link_section = ".init.rust")] -#[unsafe(export_name = "_start_rust")] -unsafe extern "C" fn start_rust() -> ! { - unsafe { - load_to_ram( - addr_of_mut!(_sirodata) as *const u8, - addr_of_mut!(_srodata) as *mut u8, - addr_of_mut!(_erodata) as *mut u8, - ); - load_to_ram( - addr_of_mut!(_sidata) as *const u8, - addr_of_mut!(_sdata) as *mut u8, - addr_of_mut!(_edata) as *mut u8, - ); - }; - - crate::main(); - - unsafe { core::hint::unreachable_unchecked() } -} - -struct SimpleAlloc; - -unsafe impl GlobalAlloc for SimpleAlloc { - unsafe fn alloc(&self, layout: Layout) -> *mut u8 { - unsafe { sys_alloc_aligned(layout.size(), layout.align()) } - } - - unsafe fn dealloc(&self, _: *mut u8, _: Layout) {} -} - -#[global_allocator] -static HEAP: SimpleAlloc = SimpleAlloc; - -static mut HEAP_POS: usize = 0; - -#[unsafe(no_mangle)] -pub unsafe extern "C" fn sys_alloc_aligned(bytes: usize, align: usize) -> *mut u8 { - let mut heap_pos = unsafe { HEAP_POS }; - - if heap_pos == 0 { - heap_pos = addr_of_mut!(_sheap) as *const u8 as usize; - } - - let offset = heap_pos & (align - 1); - if offset != 0 { - heap_pos += align - offset; - } - - let ptr = heap_pos as *mut u8; - let (heap_pos, overflowed) = heap_pos.overflowing_add(bytes); - - let eheap = addr_of_mut!(_eheap) as *const u8 as usize; - if overflowed || heap_pos > eheap { - panic!("heap exhausted"); - } - - unsafe { HEAP_POS = heap_pos }; - ptr -} - -#[cfg(all(target_arch = "riscv32", target_feature = "a"))] -#[unsafe(no_mangle)] -fn _critical_section_1_0_acquire() -> u32 { - 0 -} - -#[cfg(all(target_arch = "riscv32", target_feature = "a"))] -#[unsafe(no_mangle)] -fn _critical_section_1_0_release(_: u32) {} diff --git a/ere-guests/stateless-validator/reth/airbender/src/asm_reduced.S b/ere-guests/stateless-validator/reth/airbender/src/asm_reduced.S deleted file mode 100644 index 6a76482f..00000000 --- a/ere-guests/stateless-validator/reth/airbender/src/asm_reduced.S +++ /dev/null @@ -1,160 +0,0 @@ -/* Copied from https://github.com/matter-labs/zksync-airbender/blob/v0.5.0/examples/scripts/asm/asm_reduced.S */ - -/* - Entry point of all programs (_start). - - It initializes DWARF call frame information, the stack pointer, the - frame pointer (needed for closures to work in start_rust) and the global - pointer. Then it calls _start_rust. -*/ - -.section .init, "ax" -.global _start - -_start: - /* Jump to the absolute address defined by the linker script. */ - // for 32bit - # lui ra, %hi(_abs_start) - # jr %lo(_abs_start)(ra) - - la ra, _abs_start - jr ra - -_abs_start: - .cfi_startproc - .cfi_undefined ra - - .option push - .option norelax - la gp, __global_pointer$ - .option pop - - // Assume single core, and put SP to the very top address of the stack region - la sp, _sstack - - // Set frame pointer - add s0, sp, zero - - jal zero, _start_rust - - .cfi_endproc - -/* - Machine trap entry point (_machine_start_trap) -*/ -.section .trap, "ax" -.global machine_default_start_trap -.align 4 -machine_default_start_trap: - // We assume that exception stack is always saved to MSCRATCH - - // so we swap it with x31 - csrrw x31, mscratch, x31 - - // write to exception stack - # sw x31, -4(sp) - sw x30, -8(x31) - sw x29, -12(x31) - sw x28, -16(x31) - sw x27, -20(x31) - sw x26, -24(x31) - sw x25, -28(x31) - sw x24, -32(x31) - sw x23, -36(x31) - sw x22, -40(x31) - sw x21, -44(x31) - sw x20, -48(x31) - sw x19, -52(x31) - sw x18, -56(x31) - sw x17, -60(x31) - sw x16, -64(x31) - sw x15, -68(x31) - sw x14, -72(x31) - sw x13, -76(x31) - sw x12, -80(x31) - sw x11, -84(x31) - sw x10, -88(x31) - sw x9, -92(x31) - sw x8, -96(x31) - sw x7, -100(x31) - sw x6, -104(x31) - sw x5, -108(x31) - sw x4, -112(x31) - sw x3, -116(x31) - sw x2, -120(x31) - sw x1, -124(x31) - - // we will not restore it, so we are ok to avoid write - # sw x0, -128(x31) - - // move valid sp into a0, - mv a0, x31 - csrrw x31, mscratch, x0 - sw x31, -4(a0) - // restore sp - mv sp, a0 - // sp is valid now - - addi sp, sp, -128 - // pass pointer as first argument - add a0, sp, zero - - jal ra, _machine_start_trap_rust - - // set return address into mepc - csrw mepc, a0 - - // save original SP to mscratch for now - lw a0, 8(sp) // it's original sp that we saved in the stack - csrw mscratch, a0 // save it for now - - // restore everything we saved - - // it's illegal instruction, so we skip. Anyway can not overwrite x0 - # lw x0, 0(sp) - - lw x1, 4(sp) - # lw x2, 8(sp) // do not overwrite SP yet - lw x3, 12(sp) - lw x4, 16(sp) - lw x5, 20(sp) - lw x6, 24(sp) - lw x7, 28(sp) - lw x8, 32(sp) - lw x9, 36(sp) - lw x10, 40(sp) - lw x11, 44(sp) - lw x12, 48(sp) - lw x13, 52(sp) - lw x14, 56(sp) - lw x15, 60(sp) - lw x16, 64(sp) - lw x17, 68(sp) - lw x18, 72(sp) - lw x19, 76(sp) - lw x20, 80(sp) - lw x21, 84(sp) - lw x22, 88(sp) - lw x23, 92(sp) - lw x24, 96(sp) - lw x25, 100(sp) - lw x26, 104(sp) - lw x27, 108(sp) - lw x28, 112(sp) - lw x29, 116(sp) - lw x30, 120(sp) - lw x31, 124(sp) - - addi sp, sp, 128 - // we popped everything from the stack - // now save current exception SP to mscratch, - // and put original SP back - csrrw sp, mscratch, sp - - mret - -/* Make sure there is an abort when linking */ -.section .text.abort -.globl abort -abort: - j abort diff --git a/ere-guests/stateless-validator/reth/airbender/src/main.rs b/ere-guests/stateless-validator/reth/airbender/src/main.rs deleted file mode 100644 index c2c36951..00000000 --- a/ere-guests/stateless-validator/reth/airbender/src/main.rs +++ /dev/null @@ -1,18 +0,0 @@ -//! Airbender guest program - -#![no_std] -#![no_main] -#![no_builtins] -#![allow(incomplete_features)] -#![feature(allocator_api)] -#![feature(generic_const_exprs)] - -use ere_platform_airbender::AirbenderPlatform; -use reth_guest::guest::{Guest, RethStatelessValidatorGuest}; - -mod airbender_rt; - -/// Entry point. -pub fn main() { - RethStatelessValidatorGuest::run_output_sha256::(); -} diff --git a/ere-guests/stateless-validator/reth/guest/Cargo.toml b/ere-guests/stateless-validator/reth/guest/Cargo.toml deleted file mode 100644 index d231373b..00000000 --- a/ere-guests/stateless-validator/reth/guest/Cargo.toml +++ /dev/null @@ -1,36 +0,0 @@ -[package] -name = "reth-guest" -version.workspace = true -edition.workspace = true -rust-version.workspace = true -license.workspace = true - -[dependencies] -guest-libs.workspace = true -sparsestate.workspace = true -ere-io = { workspace = true, features = ["bincode"] } -ere-platform-trait.workspace = true - -# reth -reth-primitives-traits.workspace = true -reth-ethereum-primitives = { workspace = true, features = [ - "serde", - "serde-bincode-compat", -] } -reth-chainspec.workspace = true -reth-stateless.workspace = true -reth-evm-ethereum.workspace = true -reth-trie-common.workspace = true - -# alloy -alloy-primitives.workspace = true - -# external -k256.workspace = true -serde.workspace = true -serde_with.workspace = true -once_cell.workspace = true - -[features] -default = ["std", "reth-stateless/default"] -std = ["guest-libs/std", "once_cell/std"] diff --git a/ere-guests/stateless-validator/reth/guest/src/guest.rs b/ere-guests/stateless-validator/reth/guest/src/guest.rs deleted file mode 100644 index 793c4008..00000000 --- a/ere-guests/stateless-validator/reth/guest/src/guest.rs +++ /dev/null @@ -1,76 +0,0 @@ -//! [`Guest`] implementation for Reth stateless validator. - -use alloc::{format, sync::Arc, vec::Vec}; -use ere_io::{ - Io, - serde::{IoSerde, bincode::BincodeLegacy}, -}; -use ere_platform_trait::Platform; -use reth_chainspec::ChainSpec; -use reth_evm_ethereum::EthEvmConfig; -use reth_primitives_traits::Block; -use reth_stateless::{ - Genesis, StatelessInput, UncompressedPublicKey, stateless_validation_with_trie, -}; -use serde::{Deserialize, Serialize}; -use sparsestate::SparseState; - -pub use guest_libs::guest::Guest; - -/// Input for the stateless validator guest program. -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct RethStatelessValidatorInput { - /// The stateless input for the stateless validation function. - pub stateless_input: StatelessInput, - /// The recovered signers for the transactions in the block. - pub public_keys: Vec, -} - -/// The public inputs are: -/// - block_hash : [u8;32] -/// - parent_hash : [u8;32] -/// - successful_block_validation : bool -pub type RethStatelessValidatorOutput = ([u8; 32], [u8; 32], bool); - -/// [`Guest`] implementation for Reth stateless validator. -#[derive(Debug, Clone)] -pub struct RethStatelessValidatorGuest; - -impl Guest for RethStatelessValidatorGuest { - type Io = IoSerde; - - fn compute(input: ::Input) -> ::Output { - let genesis = Genesis { - config: input.stateless_input.chain_config.clone(), - ..Default::default() - }; - let chain_spec: Arc = Arc::new(genesis.into()); - let evm_config = EthEvmConfig::new(chain_spec.clone()); - - let (header, parent_hash) = P::cycle_scope("public_inputs_preparation", || { - ( - input.stateless_input.block.header().clone(), - input.stateless_input.block.parent_hash, - ) - }); - - let res = P::cycle_scope("validation", || { - stateless_validation_with_trie::( - input.stateless_input.block, - input.public_keys, - input.stateless_input.witness, - chain_spec, - evm_config, - ) - .map(|(block_hash, _)| block_hash) - }); - - match res { - Ok(block_hash) => (block_hash.0, parent_hash.0, true), - Err(err) => { - P::print(&format!("Block validation failed: {err}\n")); - (header.hash_slow().0, parent_hash.0, false) - } - } - } -} diff --git a/ere-guests/stateless-validator/reth/guest/src/lib.rs b/ere-guests/stateless-validator/reth/guest/src/lib.rs deleted file mode 100644 index f08d2c67..00000000 --- a/ere-guests/stateless-validator/reth/guest/src/lib.rs +++ /dev/null @@ -1,7 +0,0 @@ -//! Stateless Reth guest - -#![cfg_attr(not(feature = "std"), no_std)] - -extern crate alloc; - -pub mod guest; diff --git a/ere-guests/stateless-validator/reth/openvm/Cargo.toml b/ere-guests/stateless-validator/reth/openvm/Cargo.toml deleted file mode 100644 index 458776f4..00000000 --- a/ere-guests/stateless-validator/reth/openvm/Cargo.toml +++ /dev/null @@ -1,31 +0,0 @@ -[package] -name = "reth-openvm-stateless-validator" -version = "0.1.0" -edition = "2021" -rust-version = "1.86" -license = "MIT OR Apache-2.0" - -[dependencies] -ere-platform-openvm = { workspace = true, features = ["std"] } -openvm = { workspace = true, features = ["std"] } -openvm-algebra-guest.workspace = true -openvm-ecc-guest.workspace = true -openvm-revm-crypto.workspace = true - -guest-libs.workspace = true -reth-guest = { workspace = true, default-features = true } - -reth-stateless.workspace = true -reth-ethereum-primitives = { workspace = true, features = [ - "serde", - "serde-bincode-compat", -] } -reth-primitives-traits = { workspace = true, features = [ - "serde", - "serde-bincode-compat", -] } - - -sha2.workspace = true -k256.workspace = true -bincode.workspace = true diff --git a/ere-guests/stateless-validator/reth/openvm/openvm.toml b/ere-guests/stateless-validator/reth/openvm/openvm.toml deleted file mode 100644 index 0840adcc..00000000 --- a/ere-guests/stateless-validator/reth/openvm/openvm.toml +++ /dev/null @@ -1,171 +0,0 @@ -openvm_version = "v1.4" -[app_fri_params.fri_params] -log_blowup = 1 -log_final_poly_len = 0 -num_queries = 100 -proof_of_work_bits = 16 - -[app_vm_config.system.config] -max_constraint_degree = 3 -continuation_enabled = true -num_public_values = 32 -profiling = false - -[app_vm_config.system.config.memory_config] -addr_space_height = 3 -pointer_max_bits = 29 -clk_max_bits = 29 -decomp = 17 -max_access_adapter_n = 32 -timestamp_max_bits = 29 - -[[app_vm_config.system.config.memory_config.addr_spaces]] -num_cells = 0 -min_block_size = 1 -layout = "Null" - -[[app_vm_config.system.config.memory_config.addr_spaces]] -num_cells = 128 -min_block_size = 4 -layout = "U8" - -[[app_vm_config.system.config.memory_config.addr_spaces]] -num_cells = 536870912 -min_block_size = 4 -layout = "U8" - -[[app_vm_config.system.config.memory_config.addr_spaces]] -num_cells = 32 -min_block_size = 4 -layout = "U8" - -[[app_vm_config.system.config.memory_config.addr_spaces]] -num_cells = 0 -min_block_size = 1 -layout = { Native = { size = 4 } } - -[[app_vm_config.system.config.memory_config.addr_spaces]] -num_cells = 0 -min_block_size = 1 -layout = { Native = { size = 4 } } - -[[app_vm_config.system.config.memory_config.addr_spaces]] -num_cells = 0 -min_block_size = 1 -layout = { Native = { size = 4 } } - -[[app_vm_config.system.config.memory_config.addr_spaces]] -num_cells = 0 -min_block_size = 1 -layout = { Native = { size = 4 } } - -[[app_vm_config.system.config.memory_config.addr_spaces]] -num_cells = 0 -min_block_size = 1 -layout = { Native = { size = 4 } } - -[app_vm_config.rv32i] - -[app_vm_config.io] - -[app_vm_config.keccak] - -[app_vm_config.sha256] - -[app_vm_config.rv32m] -range_tuple_checker_sizes = [256, 8192] - -[app_vm_config.bigint] -range_tuple_checker_sizes = [256, 8192] - -[app_vm_config.modular] -supported_moduli = [ - "21888242871839275222246405745257275088696311157297823662689037894645226208583", - "21888242871839275222246405745257275088548364400416034343698204186575808495617", - "115792089237316195423570985008687907853269984665640564039457584007908834671663", - "115792089237316195423570985008687907852837564279074904382605163141518161494337", - "115792089210356248762697446949407573530086143415290314195533631308867097853951", - "115792089210356248762697446949407573529996955224135760342422259061068512044369", - "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787", - "52435875175126190479447740508185965837690552500527637822603658699938581184513", -] - -[app_vm_config.fp2] -supported_moduli = [ - [ - "Bn254Fp2", - "21888242871839275222246405745257275088696311157297823662689037894645226208583", - ], - [ - "Bls12_381Fp2", - "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787", - ], -] - -[app_vm_config.pairing] -supported_curves = ["Bn254", "Bls12_381"] - -[[app_vm_config.ecc.supported_curves]] -struct_name = "Bn254G1Affine" -modulus = "21888242871839275222246405745257275088696311157297823662689037894645226208583" -scalar = "21888242871839275222246405745257275088548364400416034343698204186575808495617" -a = "0" -b = "3" - -[[app_vm_config.ecc.supported_curves]] -struct_name = "Secp256k1Point" -modulus = "115792089237316195423570985008687907853269984665640564039457584007908834671663" -scalar = "115792089237316195423570985008687907852837564279074904382605163141518161494337" -a = "0" -b = "7" - -[[app_vm_config.ecc.supported_curves]] -struct_name = "P256Point" -modulus = "115792089210356248762697446949407573530086143415290314195533631308867097853951" -scalar = "115792089210356248762697446949407573529996955224135760342422259061068512044369" -a = "115792089210356248762697446949407573530086143415290314195533631308867097853948" -b = "41058363725152142129326129780047268409114441015993725554835256314039467401291" - -[[app_vm_config.ecc.supported_curves]] -struct_name = "Bls12_381G1Affine" -modulus = "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787" -scalar = "52435875175126190479447740508185965837690552500527637822603658699938581184513" -a = "0" -b = "4" - -[leaf_fri_params.fri_params] -log_blowup = 1 -log_final_poly_len = 0 -num_queries = 100 -proof_of_work_bits = 16 - -[compiler_options] -word_size = 8 -enable_cycle_tracker = false - -[agg_config] -max_num_user_public_values = 32 -profiling = false -root_max_constraint_degree = 9 - -[agg_config.leaf_fri_params] -log_blowup = 1 -log_final_poly_len = 0 -num_queries = 100 -proof_of_work_bits = 16 - -[agg_config.internal_fri_params] -log_blowup = 2 -log_final_poly_len = 0 -num_queries = 44 -proof_of_work_bits = 16 - -[agg_config.root_fri_params] -log_blowup = 3 -log_final_poly_len = 0 -num_queries = 30 -proof_of_work_bits = 16 - -[agg_config.compiler_options] -word_size = 8 -enable_cycle_tracker = false diff --git a/ere-guests/stateless-validator/reth/openvm/openvm_init.rs b/ere-guests/stateless-validator/reth/openvm/openvm_init.rs deleted file mode 100644 index 257afb31..00000000 --- a/ere-guests/stateless-validator/reth/openvm/openvm_init.rs +++ /dev/null @@ -1,4 +0,0 @@ -// This file is automatically generated by cargo openvm. Do not rename or edit. -openvm_algebra_guest::moduli_macros::moduli_init! { "21888242871839275222246405745257275088696311157297823662689037894645226208583", "21888242871839275222246405745257275088548364400416034343698204186575808495617", "115792089237316195423570985008687907853269984665640564039457584007908834671663", "115792089237316195423570985008687907852837564279074904382605163141518161494337", "115792089210356248762697446949407573530086143415290314195533631308867097853951", "115792089210356248762697446949407573529996955224135760342422259061068512044369", "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787", "52435875175126190479447740508185965837690552500527637822603658699938581184513" } -openvm_algebra_guest::complex_macros::complex_init! { "Bn254Fp2" { mod_idx = 0 }, "Bls12_381Fp2" { mod_idx = 6 } } -openvm_ecc_guest::sw_macros::sw_init! { "Bn254G1Affine", "Secp256k1Point", "P256Point", "Bls12_381G1Affine" } diff --git a/ere-guests/stateless-validator/reth/openvm/src/main.rs b/ere-guests/stateless-validator/reth/openvm/src/main.rs deleted file mode 100644 index e519c524..00000000 --- a/ere-guests/stateless-validator/reth/openvm/src/main.rs +++ /dev/null @@ -1,13 +0,0 @@ -//! OpenVM guest program - -use ere_platform_openvm::OpenVMPlatform; -use reth_guest::guest::{Guest, RethStatelessValidatorGuest}; - -openvm::init!(); - -/// Entry point. -pub fn main() { - openvm_revm_crypto::install_openvm_crypto() - .expect("failed to install OpenVM revm crypto provider"); - RethStatelessValidatorGuest::run_output_sha256::(); -} diff --git a/ere-guests/stateless-validator/reth/pico/Cargo.toml b/ere-guests/stateless-validator/reth/pico/Cargo.toml deleted file mode 100644 index bc2bfb05..00000000 --- a/ere-guests/stateless-validator/reth/pico/Cargo.toml +++ /dev/null @@ -1,30 +0,0 @@ -[package] -name = "reth-pico-stateless-validator" -version = "0.1.0" -edition = "2024" - -[dependencies] -ere-platform-pico.workspace = true -reth-guest = { workspace = true, default-features = true } -guest-libs.workspace = true -sha2.workspace = true - -reth-stateless.workspace = true -reth-ethereum-primitives = { workspace = true, features = [ - "serde", - "serde-bincode-compat", -] } -reth-primitives-traits = { workspace = true, features = [ - "serde", - "serde-bincode-compat", -] } - -revm = { workspace = true, default-features = false, features = ["bn"] } -alloy-primitives = { workspace = true, default-features = false, features = [ - "map-foldhash", - "serde", - "sha3-keccak", -] } -k256.workspace = true - -kzg-rs = { git = "https://github.com/brevis-network/kzg-rs", rev = "b93499a67494bc6d34e108032fd11d375fb886e0" } diff --git a/ere-guests/stateless-validator/reth/pico/src/main.rs b/ere-guests/stateless-validator/reth/pico/src/main.rs deleted file mode 100644 index 8e4adc70..00000000 --- a/ere-guests/stateless-validator/reth/pico/src/main.rs +++ /dev/null @@ -1,66 +0,0 @@ -//! Pico guest program - -#![no_main] - -use ere_platform_pico::{PicoPlatform, pico_sdk}; -use kzg_rs::{Bytes32, Bytes48}; -use reth_guest::guest::{Guest, RethStatelessValidatorGuest}; -use revm::precompile::{Crypto, PrecompileError, interface::install_crypto}; - -pico_sdk::entrypoint!(main); - -#[derive(Debug)] -struct CryptoProvider; - -// See https://github.com/bluealloy/revm/blob/e42a93a86580da9c861e568f24d86482532f3560/crates/precompile/src/kzg_point_evaluation.rs#L79-L119 -impl Crypto for CryptoProvider { - fn verify_kzg_proof( - &self, - z: &[u8; 32], - y: &[u8; 32], - commitment: &[u8; 48], - proof: &[u8; 48], - ) -> Result<(), PrecompileError> { - let env = kzg_rs::EnvKzgSettings::default(); - let kzg_settings = env.get(); - if !kzg_rs::KzgProof::verify_kzg_proof( - as_bytes48(commitment), - as_bytes32(z), - as_bytes32(y), - as_bytes48(proof), - kzg_settings, - ) - .unwrap_or(false) - { - return Err(PrecompileError::BlobVerifyKzgProofFailed); - } - - Ok(()) - } -} - -/// Convert a slice to an array of a specific size. -#[inline] -fn as_array(bytes: &[u8]) -> &[u8; N] { - bytes.try_into().expect("slice with incorrect length") -} - -/// Convert a slice to a 32 byte big endian array. -#[inline] -fn as_bytes32(bytes: &[u8]) -> &Bytes32 { - // SAFETY: `#[repr(C)] Bytes32([u8; 32])` - unsafe { &*as_array::<32>(bytes).as_ptr().cast() } -} - -/// Convert a slice to a 48 byte big endian array. -#[inline] -fn as_bytes48(bytes: &[u8]) -> &Bytes48 { - // SAFETY: `#[repr(C)] Bytes48([u8; 48])` - unsafe { &*as_array::<48>(bytes).as_ptr().cast() } -} - -/// Entry point. -pub fn main() { - install_crypto(CryptoProvider); - RethStatelessValidatorGuest::run_output_sha256::(); -} diff --git a/ere-guests/stateless-validator/reth/risc0/Cargo.toml b/ere-guests/stateless-validator/reth/risc0/Cargo.toml deleted file mode 100644 index f0f3d12e..00000000 --- a/ere-guests/stateless-validator/reth/risc0/Cargo.toml +++ /dev/null @@ -1,30 +0,0 @@ -[package] -name = "reth-risc0-stateless-validator" -version = "0.1.0" -edition = "2021" - -[dependencies] -reth-guest = { workspace = true, default-features = true } -ere-platform-risc0 = { workspace = true, features = ["std", "unstable", "getrandom", "sys-getenv"] } -guest-libs.workspace = true -sha2.workspace = true - -reth-stateless.workspace = true -reth-ethereum-primitives = { workspace = true, features = [ - "serde", - "serde-bincode-compat", -] } -reth-primitives-traits = { workspace = true, features = [ - "serde", - "serde-bincode-compat", -] } - -revm = { workspace = true, features = ["std", "c-kzg", "blst", "bn"] } - -alloy-primitives = { workspace = true, default-features = false, features = [ - "map-foldhash", - "serde", - "tiny-keccak", -] } - -k256.workspace = true diff --git a/ere-guests/stateless-validator/reth/risc0/src/main.rs b/ere-guests/stateless-validator/reth/risc0/src/main.rs deleted file mode 100644 index f59a7aa5..00000000 --- a/ere-guests/stateless-validator/reth/risc0/src/main.rs +++ /dev/null @@ -1,9 +0,0 @@ -//! Risc0 guest program - -use ere_platform_risc0::Risc0Platform; -use reth_guest::guest::{Guest, RethStatelessValidatorGuest}; - -/// Entry point. -pub fn main() { - RethStatelessValidatorGuest::run_output_sha256::(); -} diff --git a/ere-guests/stateless-validator/reth/sp1/Cargo.toml b/ere-guests/stateless-validator/reth/sp1/Cargo.toml deleted file mode 100644 index 92f3b271..00000000 --- a/ere-guests/stateless-validator/reth/sp1/Cargo.toml +++ /dev/null @@ -1,34 +0,0 @@ -[package] -name = "reth-sp1-stateless-validator" -version = "0.1.0" -edition = "2024" -rust-version = "1.85" -license = "MIT OR Apache-2.0" - - -[dependencies] -ere-platform-sp1.workspace = true -reth-guest = { workspace = true, default-features = true } -guest-libs.workspace = true -sha2.workspace = true - -reth-stateless.workspace = true -reth-ethereum-primitives = { workspace = true, features = [ - "serde", - "serde-bincode-compat", -] } -reth-primitives-traits = { workspace = true, features = [ - "serde", - "serde-bincode-compat", -] } - -revm = { workspace = true, default-features = false, features = ["bn"] } -alloy-primitives = { workspace = true, default-features = false, features = [ - "map-foldhash", - "serde", - "sha3-keccak", -] } -k256.workspace = true - -tracing-subscriber = "*" -tracing = "*" diff --git a/ere-guests/stateless-validator/reth/sp1/src/main.rs b/ere-guests/stateless-validator/reth/sp1/src/main.rs deleted file mode 100644 index 8240e4a2..00000000 --- a/ere-guests/stateless-validator/reth/sp1/src/main.rs +++ /dev/null @@ -1,33 +0,0 @@ -//! SP1 guest program - -#![no_main] - -use ere_platform_sp1::{SP1Platform, sp1_zkvm}; -use reth_guest::guest::{Guest, RethStatelessValidatorGuest}; -use tracing_subscriber::fmt; - -sp1_zkvm::entrypoint!(main); - -/// Entry point. -pub fn main() { - init_tracing_just_like_println(); - RethStatelessValidatorGuest::run_output_sha256::(); -} - -/// TODO: can we put this in the host? (Note that if we want sp1 logs, it will look very plain in that case) -/// Initializes a basic `tracing` subscriber that mimics `println!` behavior. -/// -/// This is because we want to use tracing in the `no_std` program to capture cycle counts. -fn init_tracing_just_like_println() { - // Build a formatter that prints *only* the message text + '\n' - let plain = fmt::format() - .without_time() // no timestamp - .with_level(false) // no INFO/TRACE prefix - .with_target(false); // no module path - - fmt::Subscriber::builder() - .event_format(plain) // use the stripped-down format - .with_writer(std::io::stdout) // stdout == println! - .with_max_level(tracing::Level::INFO) // capture info! and up - .init(); // set as global default -} diff --git a/ere-guests/stateless-validator/reth/zisk/Cargo.toml b/ere-guests/stateless-validator/reth/zisk/Cargo.toml deleted file mode 100644 index 1ffd107c..00000000 --- a/ere-guests/stateless-validator/reth/zisk/Cargo.toml +++ /dev/null @@ -1,31 +0,0 @@ -[package] -name = "reth-zisk-stateless-validator" -version.workspace = true -edition.workspace = true -rust-version.workspace = true -license.workspace = true - -[dependencies] -ere-platform-zisk.workspace = true -reth-guest = { workspace = true, default-features = true } -guest-libs.workspace = true - -reth-stateless.workspace = true -reth-ethereum-primitives = { workspace = true, features = [ - "serde", - "serde-bincode-compat", -] } -reth-primitives-traits = { workspace = true, features = [ - "serde", - "serde-bincode-compat", -] } - -revm = { workspace = true, default-features = false, features = ["bn"] } -alloy-primitives = { workspace = true, default-features = false, features = [ - "map-foldhash", - "serde", - "sha3-keccak", -] } -k256.workspace = true -bincode.workspace = true -sha2.workspace = true diff --git a/ere-guests/stateless-validator/reth/zisk/src/main.rs b/ere-guests/stateless-validator/reth/zisk/src/main.rs deleted file mode 100644 index c52df286..00000000 --- a/ere-guests/stateless-validator/reth/zisk/src/main.rs +++ /dev/null @@ -1,13 +0,0 @@ -//! ZisK guest program - -#![no_main] - -use ere_platform_zisk::{ZiskPlatform, ziskos}; -use reth_guest::guest::{Guest, RethStatelessValidatorGuest}; - -ziskos::entrypoint!(main); - -/// Entry point. -pub fn main() { - RethStatelessValidatorGuest::run_output_sha256::(); -} diff --git a/precompile-patches/README.md b/precompile-patches/README.md deleted file mode 100644 index 4d898967..00000000 --- a/precompile-patches/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Precompile Patches - -This directory contains patches for zkVM precompiles used within the zkVM guest programs. - -## Structure - -Patch configurations are defined in TOML files, named after the corresponding zkVM platform: - -- `sp1.toml`: Defines patches applied when building for the SP1 platform. -- `risc0.toml`: Defines patches applied when building for the Risc Zero platform. -- `pico.toml`: Defines patches applied when building for the Pico platform. -- `zisk.toml`: Defines patches applied when building for the Zisk platform. -- `openvm.toml`: Defines patches applied when building for the OpenVM platform. -- `airbender.toml`: Defines patches applied when building for the Airbender platform. -- `zkm.toml`: Defines patches applied when building for the zkMIPS platform. - -These TOML files specify which crates need patching and point to the repositories containing the modified source. - -## Application - -The application of these patches is automated via the workspace's `xtask` runner. - -As mentioned in the main `README.md`, running `cargo ` (e.g., `cargo sp1`, `cargo risc0`) will trigger the `xtask` for that specific zkVM. This task reads the corresponding `.toml` file (`sp1.toml`, `risc0.toml`, etc.) and applies the specified patches to the relevant dependencies within the `[patch.crates-io]` section of the workspace `Cargo.toml`. - -Since the `xtask` integrates with cargo, you can chain standard cargo commands after the zkVM name. For instance, to ensure patches are applied (if needed by the xtask) and then build the corresponding host program, you could run: - -```bash -# Example for SP1 host -cargo sp1 build --release -p ere-hosts - -# Example for Risc Zero host -cargo risc0 build --release -p ere-hosts - -# Example for OpenVM host -cargo openvm build --release -p ere-hosts -``` - -**Note:** It is not necessary to call these commands manually, since `ere-host` automatically applies the patches as part of its execution process depending on which zkVM is being targeted. diff --git a/precompile-patches/airbender.toml b/precompile-patches/airbender.toml deleted file mode 100644 index 7619708a..00000000 --- a/precompile-patches/airbender.toml +++ /dev/null @@ -1,4 +0,0 @@ -[patch.crates-io] -radium = { git = "https://github.com/han0110/radium", branch = "feature/riscv32ima" } -ethereum_ssz_derive = { git = "https://github.com/han0110/ethereum_ssz", branch = "feature/no-std" } -ethereum_ssz = { git = "https://github.com/han0110/ethereum_ssz", branch = "feature/no-std" } diff --git a/precompile-patches/openvm.toml b/precompile-patches/openvm.toml deleted file mode 100644 index e4cec5e1..00000000 --- a/precompile-patches/openvm.toml +++ /dev/null @@ -1,2 +0,0 @@ -[patch.crates-io] -# Uses CryptoProvider diff --git a/precompile-patches/pico.toml b/precompile-patches/pico.toml deleted file mode 100644 index b40bec25..00000000 --- a/precompile-patches/pico.toml +++ /dev/null @@ -1,7 +0,0 @@ -[patch.crates-io] -tiny-keccak = { git = "https://github.com/brevis-network/tiny-keccak", tag = "pico-patch-v1.0.0-keccak-v2.0.2" } -sha2 = { git = "https://github.com/brevis-network/hashes", rev = "2d0f0f9f4abde803c07801ca2fa02fd7911c6b30", package = "sha2" } -sha3 = { git = "https://github.com/brevis-network/hashes", tag = "pico-patch-v1.0.1-sha3-v0.10.8", package = "sha3" } -curve25519-dalek = { git = "https://github.com/brevis-network/curve25519-dalek", tag = "pico-patch-v1.0.1-curve25519-dalek-v4.1.3" } -ecdsa-core = { git = "https://github.com/brevis-network/signatures", tag = "pico-patch-v1.0.1-ecdsa-0.16.9", package = "ecdsa" } -substrate-bn = { git = "https://github.com/brevis-network/bn", tag = "pico-patch-v1.0.1-bn-v0.6.0" } diff --git a/precompile-patches/risc0.toml b/precompile-patches/risc0.toml deleted file mode 100644 index 03213ff6..00000000 --- a/precompile-patches/risc0.toml +++ /dev/null @@ -1,9 +0,0 @@ -[patch.crates-io] -blst = { git = "https://github.com/risc0/blst", tag = "v0.3.15-risczero.1" } -sha2 = { git = "https://github.com/risc0/RustCrypto-hashes", tag = "sha2-v0.10.9-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" } -crypto-bigint = { git = "https://github.com/risc0/RustCrypto-crypto-bigint", tag = "v0.5.5-risczero.0" } -c-kzg = { git = "https://github.com/risc0/c-kzg-4844", tag = "v2.1.5-risczero.0" } diff --git a/precompile-patches/sp1.toml b/precompile-patches/sp1.toml deleted file mode 100644 index 9325b642..00000000 --- a/precompile-patches/sp1.toml +++ /dev/null @@ -1,10 +0,0 @@ -[patch.crates-io] -sha2-v0-10-9 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha2", tag = "patch-sha2-0.10.9-sp1-4.0.0" } -sha3-v0-10-8 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", package = "sha3", tag = "patch-sha3-0.10.8-sp1-4.0.0" } -crypto-bigint = { git = "https://github.com/sp1-patches/RustCrypto-bigint", tag = "patch-0.5.5-sp1-4.0.0" } -tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", tag = "patch-2.0.2-sp1-4.0.0" } -curve25519-dalek = { git = "https://github.com/sp1-patches/curve25519-dalek", tag = "patch-4.1.3-sp1-5.0.0" } -k256 = { git = "https://github.com/sp1-patches/elliptic-curves", tag = "patch-k256-13.4-sp1-5.0.0" } -p256 = { git = "https://github.com/sp1-patches/elliptic-curves", tag = "patch-p256-13.2-sp1-5.0.0" } -substrate-bn = { git = "https://github.com/sp1-patches/bn", tag = "patch-0.6.0-sp1-5.0.0" } -ecdsa = { git = "https://github.com/sp1-patches/signatures", tag = "patch-16.9-sp1-4.1.0" } diff --git a/precompile-patches/zisk.toml b/precompile-patches/zisk.toml deleted file mode 100644 index d35a0643..00000000 --- a/precompile-patches/zisk.toml +++ /dev/null @@ -1,6 +0,0 @@ -# Copied from https://github.com/0xPolygonHermez/zisk-eth-client/blob/main/bin/client/Cargo.toml -[patch.crates-io] -sha2 = { git = "https://github.com/0xPolygonHermez/zisk-patch-hashes.git", tag = "patch-sha2-0.10.9-zisk-0.14.0" } -sha3 = { git = "https://github.com/0xPolygonHermez/zisk-patch-hashes.git", tag = "patch-sha3-0.10.8-zisk-0.14.0" } -k256 = { git = "https://github.com/0xPolygonHermez/zisk-patch-elliptic-curves.git", tag = "patch-k256-0.13.4-zisk-0.14.0" } -bn = { git = "https://github.com/0xPolygonHermez/zisk-patch-bn.git", tag = "patch-0.6.0-zisk-0.14.0", package = "substrate-bn" } diff --git a/precompile-patches/zkm.toml b/precompile-patches/zkm.toml deleted file mode 100644 index 4469adfb..00000000 --- a/precompile-patches/zkm.toml +++ /dev/null @@ -1,8 +0,0 @@ -[patch.crates-io] -sha2 = { git = "https://github.com/zkMIPS-patches/RustCrypto-hashes", package = "sha2", branch = "patch-sha2-0.10.8" } -curve25519-dalek = { git = "https://github.com/zkMIPS-patches/curve25519-dalek", branch = "patch-4.1.3" } -curve25519-dalek-ng = { git = "https://github.com/zkMIPS-patches/curve25519-dalek-ng", branch = "patch-4.1.1" } -secp256k1 = { git = "https://github.com/zkMIPS-patches/rust-secp256k1", branch = "patch-0.29.1" } -substrate-bn = { git = "https://github.com/zkMIPS-patches/bn", branch = "patch-0.6.0" } -rsa = { git = "https://github.com/zkMIPS-patches/RustCrypto-RSA.git", branch = "patch-rsa-0.9.6" } -# This is missing sha3, patch in the mips crate or do it locally diff --git a/scripts/analyze_zisk_profiles.py b/scripts/analyze_zisk_profiles.py new file mode 100755 index 00000000..3d86592d --- /dev/null +++ b/scripts/analyze_zisk_profiles.py @@ -0,0 +1,628 @@ +#!/usr/bin/env python3 +""" +Analyze Zisk profiling outputs and generate an aggregate summary report. + +Parses .prof files from ziskemu and produces a Markdown report with: +- PROFILE TAGS custom scope statistics (primary focus) +- Cost distribution breakdown (MAIN, OPCODES, PRECOMPILES, MEMORY) +- Top opcodes by cost + +Usage: + python3 scripts/analyze_zisk_profiles.py zisk-profiles/reth/ + python3 scripts/analyze_zisk_profiles.py zisk-profiles/reth/ --output report.md + python3 scripts/analyze_zisk_profiles.py zisk-profiles/reth/ --verbose + +Options: + --output, -o FILE Write report to FILE instead of stdout + --verbose, -v Show parsing progress (file count, each file being parsed, + success count). +""" + +import argparse +import re +import statistics +import sys +from dataclasses import dataclass, field +from pathlib import Path +from typing import Dict, List, Optional + + +@dataclass +class ProfileData: + """Data extracted from a single .prof file.""" + + filename: str + block_id: str + total_cost: int = 0 + cost_distribution: Dict[str, int] = field(default_factory=dict) + opcodes: Dict[str, Dict[str, int]] = field(default_factory=dict) + mark_ids: Dict[str, Dict[str, int]] = field(default_factory=dict) + + +# ziskemu's per-step MAIN cost constant. Used to derive per-scope MAIN cost from per-scope STEPS. +# https://github.com/0xPolygonHermez/zisk/blob/v0.18.0/emulator/src/emu_costs.rs#L18 +MAIN_COST_PER_STEP = 68 + + +def parse_number(s: str) -> int: + """Parse a number string, removing commas.""" + return int(s.replace(",", "")) + + +def format_number(n: float) -> str: + """Format a number in human-readable form (e.g., 5.7B, 959M, 12.8K).""" + abs_n = abs(n) + if abs_n >= 1_000_000_000: + return f"{n / 1_000_000_000:.1f}B" + elif abs_n >= 1_000_000: + return f"{n / 1_000_000:.1f}M" + elif abs_n >= 1_000: + return f"{n / 1_000:.1f}K" + else: + return f"{n:.0f}" + + +def format_percent(p: float) -> str: + """Format a percentage value.""" + return f"{p:.1f}%" + + +def extract_block_id(filename: str) -> str: + """Extract block ID from filename like 'zisk_profile_rpc_block_23326233.prof'.""" + match = re.search(r"block_(\d+)", filename) + return match.group(1) if match else filename + + +def parse_profile(filepath: Path, verbose: bool = False) -> Optional[ProfileData]: + """Parse a single .prof file and extract relevant data.""" + try: + content = filepath.read_text() + except Exception as e: + if verbose: + print(f"Warning: Could not read {filepath}: {e}", file=sys.stderr) + return None + + profile = ProfileData( + filename=filepath.name, block_id=extract_block_id(filepath.name) + ) + + lines = content.split("\n") + i = 0 + + while i < len(lines): + line = lines[i].strip() + + # Parse COST DISTRIBUTION section + if line.startswith("COST DISTRIBUTION"): + i += 2 # Skip header line + while i < len(lines): + line = lines[i].strip() + if not line or line.startswith("TOTAL") or line.startswith("FROPS"): + break + # Skip VARIABLE which is a sub-total of MAIN+OPCODES+PRECOMPILES+MEMORY. + if line.startswith("VARIABLE"): + i += 1 + continue + # Match lines like: BASE 293,601,280 1.10% + match = re.match(r"^(\w+)\s+([\d,]+)\s+[\d.]+%$", line) + if match: + category = match.group(1) + cost = parse_number(match.group(2)) + profile.cost_distribution[category] = cost + i += 1 + + # Get total cost from TOTAL line + while i < len(lines): + line = lines[i].strip() + if line.startswith("TOTAL"): + match = re.match(r"^TOTAL\s+([\d,]+)", line) + if match: + profile.total_cost = parse_number(match.group(1)) + break + if line.startswith("FROPS"): + break + i += 1 + continue + + # Parse COST BY OPCODE section + if line.startswith("COST BY OPCODE"): + i += 2 # Skip header line + while i < len(lines): + line = lines[i].strip() + if not line or line.startswith("FROPS"): + break + # Match lines like: OP keccak 44,347 0.03% 5,681,205,476 21.20% #1 + match = re.match( + r"^OP\s+(\w+)\s+([\d,]+)\s+[\d.]+%\s+([\d,]+)\s+[\d.]+%", + line, + ) + if match: + opcode = match.group(1) + count = parse_number(match.group(2)) + cost = parse_number(match.group(3)) + profile.opcodes[opcode] = {"count": count, "cost": cost} + i += 1 + continue + + # Parse PROFILE TAGS COST section. + if line.startswith("PROFILE TAGS COST"): + i += 2 # Skip header line + while i < len(lines): + line = lines[i].strip() + if not line: + break + # Match PROFILE TAGS COST lines (COST, % COST, CALLS, AVG, MIN, MAX, name): + # 28,506,826,487 94.81% 1 28,506,826,487 28,506,826,487 28,506,826,487 stf + match = re.match( + r"^([\d,]+)\s+[\d.]+%\s+[\d,]+\s+[\d,]+\s+[\d,]+\s+[\d,]+\s+(\S+)\s*$", + line, + ) + if match: + name = match.group(2).lower() + cost = parse_number(match.group(1)) + entry = profile.mark_ids.setdefault(name, {}) + entry["total_cost"] = cost + i += 1 + continue + + # Parse PROFILE TAGS STEPS section. + if line.startswith("PROFILE TAGS STEPS"): + i += 2 # Skip header line + while i < len(lines): + line = lines[i].strip() + if not line: + break + # Match PROFILE TAGS STEPS lines (STEPS, % STEPS, CALLS, AVG, MIN, MAX, name): + # 225,526,731 95.12% 1 225,526,731 225,526,731 225,526,731 stf + match = re.match( + r"^([\d,]+)\s+[\d.]+%\s+[\d,]+\s+[\d,]+\s+[\d,]+\s+[\d,]+\s+(\S+)\s*$", + line, + ) + if match: + name = match.group(2).lower() + steps = parse_number(match.group(1)) + entry = profile.mark_ids.setdefault(name, {}) + entry["steps"] = steps + i += 1 + continue + + i += 1 + + return profile + + +def compute_statistics(values: List[float]) -> Dict[str, float]: + """Compute statistics for a list of values.""" + if not values: + return { + "count": 0, + "sum": 0, + "mean": 0, + "median": 0, + "min": 0, + "max": 0, + "std_dev": 0, + } + + sorted_vals = sorted(values) + + def _percentile(sv: list, pct: float) -> float: + if len(sv) < 2: + return sv[0] + rank = pct * (len(sv) - 1) + lo = int(rank) + hi = min(lo + 1, len(sv) - 1) + frac = rank - lo + return sv[lo] + frac * (sv[hi] - sv[lo]) + + result = { + "count": len(values), + "sum": sum(values), + "mean": statistics.mean(values), + "median": statistics.median(values), + "p5": _percentile(sorted_vals, 0.05), + "p95": _percentile(sorted_vals, 0.95), + "min": min(values), + "max": max(values), + "std_dev": statistics.stdev(values) if len(values) > 1 else 0, + } + return result + + +def aggregate_profiles(profiles: List[ProfileData]) -> Dict: + """Aggregate data across all profiles.""" + result = { + "count": len(profiles), + "block_ids": [p.block_id for p in profiles], + "total_costs": [p.total_cost for p in profiles], + "cost_distribution": {}, + "opcodes": {}, + "mark_ids": {}, + } + + # Aggregate cost distribution + all_categories = set() + for p in profiles: + all_categories.update(p.cost_distribution.keys()) + + for category in all_categories: + values = [p.cost_distribution.get(category, 0) for p in profiles] + percentages = [ + (p.cost_distribution.get(category, 0) / p.total_cost * 100) + if p.total_cost > 0 + else 0 + for p in profiles + ] + stats = compute_statistics(values) + stats["avg_pct"] = statistics.mean(percentages) if percentages else 0 + result["cost_distribution"][category] = stats + + # Aggregate opcodes + all_opcodes = set() + for p in profiles: + all_opcodes.update(p.opcodes.keys()) + + for opcode in all_opcodes: + costs = [p.opcodes.get(opcode, {}).get("cost", 0) for p in profiles] + counts = [p.opcodes.get(opcode, {}).get("count", 0) for p in profiles] + percentages = [ + (p.opcodes.get(opcode, {}).get("cost", 0) / p.total_cost * 100) + if p.total_cost > 0 + else 0 + for p in profiles + ] + stats = compute_statistics(costs) + stats["avg_pct"] = statistics.mean(percentages) if percentages else 0 + stats["avg_count"] = statistics.mean(counts) if counts else 0 + result["opcodes"][opcode] = stats + + # Aggregate PROFILE TAGS + all_mark_ids = set() + for p in profiles: + all_mark_ids.update(p.mark_ids.keys()) + + for mark_id in all_mark_ids: + total_costs = [ + p.mark_ids.get(mark_id, {}).get("total_cost", 0) for p in profiles + ] + steps = [p.mark_ids.get(mark_id, {}).get("steps", 0) for p in profiles] + # MAIN cost per scope is derived from steps. Rest is whatever the + # scope's total cost has on top of MAIN, i.e. the OPCODES + + # PRECOMPILES + MEMORY. + main_costs = [s * MAIN_COST_PER_STEP for s in steps] + rest_costs = [ + max(total_cost - main_cost, 0) + for total_cost, main_cost in zip(total_costs, main_costs) + ] + percentages = [ + (p.mark_ids.get(mark_id, {}).get("total_cost", 0) / p.total_cost * 100) + if p.total_cost > 0 + else 0 + for p in profiles + ] + + result["mark_ids"][mark_id] = { + "total_cost": compute_statistics(total_costs), + "steps": compute_statistics(steps), + "main_cost": compute_statistics(main_costs), + "rest_cost": compute_statistics(rest_costs), + "avg_pct": statistics.mean(percentages) if percentages else 0, + } + + return result + + +def generate_markdown_report( + aggregated: Dict, directory: str, ignore_zones: Optional[set] = None +) -> str: + """Generate a Markdown report from aggregated data.""" + lines = [] + + # Header + lines.append("# Zisk Profile Summary\n") + lines.append(f"- **Profiles analyzed:** {aggregated['count']}") + lines.append(f"- **Directory:** `{directory}`") + + block_ids = sorted(aggregated["block_ids"], key=lambda x: int(x) if x.isdigit() else 0) + if block_ids: + lines.append(f"- **Block range:** {block_ids[0]} - {block_ids[-1]}") + + total_cost_stats = compute_statistics(aggregated["total_costs"]) + lines.append(f"- **Total cost (sum):** {format_number(total_cost_stats['sum'])}") + lines.append(f"- **Avg cost per profile:** {format_number(total_cost_stats['mean'])}") + lines.append(f"- **Median cost:** {format_number(total_cost_stats['median'])}") + lines.append(f"- **Cost range:** {format_number(total_cost_stats['min'])} – {format_number(total_cost_stats['max'])}") + lines.append(f"- **Std dev:** {format_number(total_cost_stats['std_dev'])}") + lines.append("") + + # PROFILE TAGS Summary (primary focus) + lines.append("## Custom Scopes (PROFILE TAGS)\n") + lines.append( + "| Scope | Avg Cost | Avg % | Median | Min | Max | Std Dev |" + ) + lines.append("|-------|----------|-------|--------|-----|-----|---------|") + + # Sort by average cost descending, filtering ignored zones + mark_ids = aggregated["mark_ids"] + if ignore_zones: + mark_ids = { + k: v for k, v in mark_ids.items() if k.lower() not in ignore_zones + } + sorted_mark_ids = sorted( + mark_ids.items(), + key=lambda x: x[1]["total_cost"]["mean"], + reverse=True, + ) + + for name, data in sorted_mark_ids: + stats = data["total_cost"] + lines.append( + f"| {name} | {format_number(stats['mean'])} | {format_percent(data['avg_pct'])} | " + f"{format_number(stats['median'])} | {format_number(stats['min'])} | " + f"{format_number(stats['max'])} | {format_number(stats['std_dev'])} |" + ) + + lines.append("") + + # Cost Breakdown by Scope. + # MAIN per scope is derived from steps (steps * MAIN_COST_PER_STEP). + # Rest is the OPCODES + PRECOMPILES + MEMORY portion. + if any(data["steps"]["mean"] > 0 for _, data in sorted_mark_ids): + lines.append("### Cost Breakdown by Scope\n") + lines.append("| Scope | Main | Rest (Opcodes + Precompiles + Memory) |") + lines.append("|-------|------|---------------------------------------|") + + for name, data in sorted_mark_ids: + total_mean = data["total_cost"]["mean"] + main_mean = data["main_cost"]["mean"] + rest_mean = data["rest_cost"]["mean"] + main_pct = main_mean / total_mean * 100 if total_mean > 0 else 0 + rest_pct = rest_mean / total_mean * 100 if total_mean > 0 else 0 + lines.append( + f"| {name} | {format_percent(main_pct)} | {format_percent(rest_pct)} |" + ) + + lines.append("") + + # Cost Distribution Summary + lines.append("## Cost Distribution\n") + lines.append("| Category | Avg Cost | Avg % | Median | Min | Max |") + lines.append("|----------|----------|-------|--------|-----|-----|") + + # Sort by average cost descending + sorted_categories = sorted( + aggregated["cost_distribution"].items(), + key=lambda x: x[1]["mean"], + reverse=True, + ) + + for category, stats in sorted_categories: + lines.append( + f"| {category} | {format_number(stats['mean'])} | {format_percent(stats['avg_pct'])} | " + f"{format_number(stats['median'])} | {format_number(stats['min'])} | " + f"{format_number(stats['max'])} |" + ) + + lines.append("") + + # Top 10 Opcodes by Cost + lines.append("## Top 10 Opcodes by Cost\n") + lines.append("| Opcode | Avg Cost | Avg % | Avg Count | Median Cost |") + lines.append("|--------|----------|-------|-----------|-------------|") + + sorted_opcodes = sorted( + aggregated["opcodes"].items(), key=lambda x: x[1]["mean"], reverse=True + )[:10] + + for opcode, stats in sorted_opcodes: + lines.append( + f"| {opcode} | {format_number(stats['mean'])} | {format_percent(stats['avg_pct'])} | " + f"{format_number(stats['avg_count'])} | {format_number(stats['median'])} |" + ) + + lines.append("") + + return "\n".join(lines) + + +def generate_scope_plot( + aggregated: Dict, output_path: str, ignore_zones: Optional[set] = None +) -> None: + """Generate a per-scope cost variability plot (two subplots). + + Top: mean cost per scope with min/max whiskers and median marker. + Bottom: coefficient of variation (std_dev/mean) per scope. + """ + try: + import matplotlib.pyplot as plt + import numpy as np + except ImportError: + print( + "Error: matplotlib and numpy are required for plot generation.\n" + "Install with: pip install matplotlib numpy", + file=sys.stderr, + ) + sys.exit(1) + + mark_ids = aggregated.get("mark_ids", {}) + if ignore_zones: + mark_ids = { + k: v for k, v in mark_ids.items() if k.lower() not in ignore_zones + } + if not mark_ids: + print("Warning: No PROFILE TAGS data to plot.", file=sys.stderr) + return + + # Sort by mean total_cost descending + sorted_items = sorted( + mark_ids.items(), + key=lambda x: x[1]["total_cost"]["mean"], + reverse=True, + ) + + names = [name for name, _ in sorted_items] + means = [d["total_cost"]["mean"] for _, d in sorted_items] + medians = [d["total_cost"]["median"] for _, d in sorted_items] + p5s = [d["total_cost"]["p5"] for _, d in sorted_items] + p95s = [d["total_cost"]["p95"] for _, d in sorted_items] + mins = [d["total_cost"]["min"] for _, d in sorted_items] + maxs = [d["total_cost"]["max"] for _, d in sorted_items] + # Reverse so highest-cost scope is at the top of the horizontal bar chart + names = names[::-1] + means = means[::-1] + medians = medians[::-1] + p5s = p5s[::-1] + p95s = p95s[::-1] + mins = mins[::-1] + maxs = maxs[::-1] + + y_pos = np.arange(len(names)) + + # Asymmetric error bars: left = mean - min, right = max - mean + xerr_low = [m - lo for m, lo in zip(means, mins)] + xerr_high = [hi - m for hi, m in zip(maxs, means)] + + fig, ax_top = plt.subplots( + figsize=(12, max(6, len(names) * 0.45)), + ) + + # ── Mean cost with min/max whiskers + median marker ── + ax_top.barh( + y_pos, means, + color="#b0c4de", alpha=0.7, edgecolor="#8faabe", label="Mean", + ) + ax_top.errorbar( + means, y_pos, + xerr=[xerr_low, xerr_high], + fmt="none", ecolor="#555555", elinewidth=1.0, capsize=4, + label="Min–Max range", + ) + ax_top.scatter( + medians, y_pos, + marker="D", color="#d62728", zorder=5, s=50, edgecolors="white", + linewidths=0.8, label="Median", + ) + ax_top.scatter( + p5s, y_pos, + marker="<", color="#1a9850", zorder=5, s=45, edgecolors="white", + linewidths=0.8, label="P5", + ) + ax_top.scatter( + p95s, y_pos, + marker=">", color="#7b2d8e", zorder=5, s=45, edgecolors="white", + linewidths=0.8, label="P95", + ) + + ax_top.set_yticks(y_pos) + ax_top.set_yticklabels(names, fontsize=9) + ax_top.set_xscale("log") + ax_top.set_xlabel("Cost (log scale)") + ax_top.set_title("Per-Scope Cost: Mean with Min/Max Range, P5/P95") + ax_top.legend(loc="lower right", fontsize=8) + ax_top.grid(axis="x", alpha=0.3) + + plt.tight_layout() + fig.savefig(output_path, dpi=150, bbox_inches="tight") + plt.close(fig) + print(f"Plot saved to {output_path}", file=sys.stderr) + + +def main(): + parser = argparse.ArgumentParser( + description="Analyze Zisk profiling outputs and generate an aggregate summary.", + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=__doc__, + ) + parser.add_argument( + "directory", + type=str, + help="Directory containing .prof files to analyze", + ) + parser.add_argument( + "--output", + "-o", + type=str, + help="Output file path (default: stdout)", + ) + parser.add_argument( + "--verbose", + "-v", + action="store_true", + help="Show verbose output during parsing", + ) + parser.add_argument( + "--plot", + nargs="?", + const="", + default=None, + help="Generate a per-scope variability plot (PNG). " + "Optionally provide output path; defaults to /scope_variability.png", + ) + parser.add_argument( + "--ignore-zones", + type=str, + default=None, + help="Comma-separated list of zone names to exclude from report and plot (case-insensitive). " + "Example: --ignore-zones stf,pre_state_validation", + ) + + args = parser.parse_args() + + directory = Path(args.directory) + if not directory.exists(): + print(f"Error: Directory does not exist: {directory}", file=sys.stderr) + sys.exit(1) + + if not directory.is_dir(): + print(f"Error: Not a directory: {directory}", file=sys.stderr) + sys.exit(1) + + prof_files = list(directory.glob("*.prof")) + if not prof_files: + print(f"Error: No .prof files found in {directory}", file=sys.stderr) + sys.exit(1) + + if args.verbose: + print(f"Found {len(prof_files)} profile files", file=sys.stderr) + + # Parse all profiles + profiles = [] + for filepath in sorted(prof_files): + if args.verbose: + print(f"Parsing {filepath.name}...", file=sys.stderr) + profile = parse_profile(filepath, args.verbose) + if profile: + profiles.append(profile) + + if not profiles: + print("Error: All profiles failed to parse", file=sys.stderr) + sys.exit(2) + + if args.verbose: + print(f"Successfully parsed {len(profiles)} profiles", file=sys.stderr) + + # Parse ignore zones + ignore_zones = set() + if args.ignore_zones: + ignore_zones = {z.strip().lower() for z in args.ignore_zones.split(",")} + + # Aggregate and generate report + aggregated = aggregate_profiles(profiles) + report = generate_markdown_report(aggregated, str(directory), ignore_zones=ignore_zones) + + # Output + if args.output: + output_path = Path(args.output) + output_path.write_text(report) + print(f"Report written to {output_path}", file=sys.stderr) + else: + print(report) + + # Plot + if args.plot is not None: + plot_path = args.plot if args.plot else str(directory / "scope_variability.png") + generate_scope_plot(aggregated, plot_path, ignore_zones=ignore_zones) + + +if __name__ == "__main__": + main() diff --git a/scripts/download-and-extract-fixtures.sh b/scripts/download-and-extract-fixtures.sh deleted file mode 100755 index 3e54e638..00000000 --- a/scripts/download-and-extract-fixtures.sh +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/env bash -# -# download-and-extract-fixtures.sh -# -# Downloads execution spec test fixtures for zkevm. -# By default, it fetches the benchmark@v0.0.6 release. -# You can optionally provide a tag as the first argument, or use 'latest' to explicitly fetch the latest release. -# The second argument optionally sets the destination directory (default: ./zkevm-fixtures). -# -# Usage: -# ./scripts/download-and-extract-fixtures.sh [TAG|latest] [DEST_DIR] -# -# Examples: -# # Download default release (benchmark@v0.0.6) to default directory -# ./scripts/download-and-extract-fixtures.sh -# # Download latest official release to default directory -# ./scripts/download-and-extract-fixtures.sh latest -# # Download latest official release to a custom directory -# ./scripts/download-and-extract-fixtures.sh latest /tmp/fixtures -# # Download a specific release to default directory -# ./scripts/download-and-extract-fixtures.sh v5.0.0 -# # Download a specific release to a custom directory -# ./scripts/download-and-extract-fixtures.sh v5.0.0 /tmp/fixtures -# - -set -euo pipefail - -REPO="ethereum/execution-spec-tests" -ASSET_NAME="fixtures_benchmark.tar.gz" -DEFAULT_TAG="benchmark%40v0.0.6" - -# Helper function to make authenticated GitHub API calls -github_api_curl() { - local url="$1" - if [ -n "${GITHUB_TOKEN:-}" ]; then - curl -fsSL -H "Authorization: Bearer ${GITHUB_TOKEN}" "${url}" - else - curl -fsSL "${url}" - fi -} - -# Show authentication status -if [ -n "${GITHUB_TOKEN:-}" ]; then - echo "🔑 Using GitHub token for API authentication" -fi - -# Set DEST_DIR from second argument, or default -if [ -n "${2:-}" ]; then - DEST_DIR="$2" -else - DEST_DIR="./zkevm-fixtures" -fi - -# Determine the tag to use -if [ -z "${1:-}" ]; then - # No argument provided, use the default tag - TAG="${DEFAULT_TAG}" - echo "ℹ️ Using default tag: ${TAG}" -elif [ "${1}" = "latest" ]; then - # Find the latest official release (not pre-release, standard version format) - echo "🔎 Finding the latest official release..." - LATEST_TAG=$( \ - github_api_curl "https://api.github.com/repos/${REPO}/releases" | \ - jq -r '.[] | select(.prerelease == false) | .tag_name' | \ - grep '^v[0-9]\+\.[0-9]\+\.[0-9]\+$' | \ - head -n 1 \ - ) - if [[ -z "${LATEST_TAG}" ]]; then - echo "❌ Could not find any official releases in ${REPO}" >&2 - exit 1 - fi - TAG="${LATEST_TAG}" - echo "ℹ️ Using latest official release: ${TAG}" -else - # Use the tag provided as the first argument - TAG="$1" - echo "ℹ️ Using specified tag: ${TAG}" -fi - -API_URL="https://api.github.com/repos/${REPO}/releases/tags/${TAG}" - -echo "🔎 Getting release info for ${TAG} …" -DOWNLOAD_URL=$( - github_api_curl "${API_URL}" | - jq -r ".assets[] | select(.name==\"${ASSET_NAME}\") | .browser_download_url" -) - -if [[ -z "${DOWNLOAD_URL}" || "${DOWNLOAD_URL}" == "null" ]]; then - echo "❌ Asset ${ASSET_NAME} not found in release ${TAG}" >&2 - exit 1 -fi - -TMP_DIR=$(mktemp -d) -cleanup() { - rm -rf "${TMP_DIR}" -} -trap cleanup EXIT -TMP_TAR="${TMP_DIR}/${ASSET_NAME}" - -echo "⬇️ Downloading ${ASSET_NAME} to temporary directory …" -curl -L -o "${TMP_TAR}" "${DOWNLOAD_URL}" - -echo "📂 Extracting to ${DEST_DIR}/" -mkdir -p "${DEST_DIR}" -tar -xzf "${TMP_TAR}" -C "${DEST_DIR}" - -echo "✅ Fixtures ready in ${DEST_DIR}" diff --git a/tests/Cargo.toml b/tests/Cargo.toml deleted file mode 100644 index 0fb316ab..00000000 --- a/tests/Cargo.toml +++ /dev/null @@ -1,22 +0,0 @@ -[package] -name = "integration-tests" -version = "0.1.0" -edition = "2021" - -[dev-dependencies] -benchmark-runner.workspace = true -zkevm-metrics.workspace = true -ere-zkvm-interface.workspace = true -ere-dockerized.workspace = true -witness-generator.workspace = true - -walkdir.workspace = true -serde.workspace = true -tokio = { version = "1", features = ["macros", "rt-multi-thread"] } -tempfile = "3.10" -flate2 = "1.0" -tar = "0.4" - - -[lints] -workspace = true diff --git a/tests/assets/eest-empty-block/fixtures/blockchain_tests/empty_block.json b/tests/assets/eest-empty-block/fixtures/blockchain_tests/empty_block.json deleted file mode 100644 index 08929aa3..00000000 --- a/tests/assets/eest-empty-block/fixtures/blockchain_tests/empty_block.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "tests/benchmark/test_worst_compute.py::test_empty_block[fork_Prague-benchmark-gas-value_1M-blockchain_test]": { - "network": "Prague", - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x6f978e5ec827eef738381e1ca1e9332001ac548e31fdb82b90319b3ae94e22d7", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0xe8d4a51000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "hash": "0x3061e84a3e892dcdf98298dfb231d9d409d776346c2b8a01eaefa73ad1baa681" - }, - "pre": { - "0x00000000219ab540356cbb839cbe05303d7705fa": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a2646970667358221220dceca8706b29e917dacf25fceef95acac8d90d765ac926663ce4096195952b6164736f6c634300060b0033", - "storage": { - "0x22": "0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b", - "0x23": "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71", - "0x24": "0xc78009fdf07fc56a11f122370658a353aaa542ed63e44c4bc15ff4cd105ab33c", - "0x25": "0x536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123c", - "0x26": "0x9efde052aa15429fae05bad4d0b1d7c64da64d03d7a1854a588c2cb8430c0d30", - "0x27": "0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1", - "0x28": "0x87eb0ddba57e35f6d286673802a4af5975e22506c7cf4c64bb6be5ee11527f2c", - "0x29": "0x26846476fd5fc54a5d43385167c95144f2643f533cc85bb9d16b782f8d7db193", - "0x2a": "0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1", - "0x2b": "0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b", - "0x2c": "0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220", - "0x2d": "0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f", - "0x2e": "0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e", - "0x2f": "0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784", - "0x30": "0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb", - "0x31": "0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb", - "0x32": "0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab", - "0x33": "0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4", - "0x34": "0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f", - "0x35": "0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa", - "0x36": "0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c", - "0x37": "0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167", - "0x38": "0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7", - "0x39": "0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0", - "0x3a": "0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544", - "0x3b": "0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765", - "0x3c": "0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4", - "0x3d": "0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1", - "0x3e": "0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636", - "0x3f": "0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c", - "0x40": "0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7" - } - }, - "0x00000961ef480eb55e80d19ad83579a64c007002": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd", - "storage": {} - }, - "0x0000bbddc7ce488642fb579f8b00f3a590007251": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd", - "storage": {} - }, - "0x0000f90827f1c53a10cb7a02335b175320002935": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500", - "storage": {} - }, - "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", - "storage": {} - } - }, - "postState": { - "0x00000000219ab540356cbb839cbe05303d7705fa": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a2646970667358221220dceca8706b29e917dacf25fceef95acac8d90d765ac926663ce4096195952b6164736f6c634300060b0033", - "storage": { - "0x22": "0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b", - "0x23": "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71", - "0x24": "0xc78009fdf07fc56a11f122370658a353aaa542ed63e44c4bc15ff4cd105ab33c", - "0x25": "0x536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123c", - "0x26": "0x9efde052aa15429fae05bad4d0b1d7c64da64d03d7a1854a588c2cb8430c0d30", - "0x27": "0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1", - "0x28": "0x87eb0ddba57e35f6d286673802a4af5975e22506c7cf4c64bb6be5ee11527f2c", - "0x29": "0x26846476fd5fc54a5d43385167c95144f2643f533cc85bb9d16b782f8d7db193", - "0x2a": "0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1", - "0x2b": "0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b", - "0x2c": "0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220", - "0x2d": "0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f", - "0x2e": "0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e", - "0x2f": "0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784", - "0x30": "0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb", - "0x31": "0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb", - "0x32": "0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab", - "0x33": "0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4", - "0x34": "0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f", - "0x35": "0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa", - "0x36": "0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c", - "0x37": "0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167", - "0x38": "0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7", - "0x39": "0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0", - "0x3a": "0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544", - "0x3b": "0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765", - "0x3c": "0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4", - "0x3d": "0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1", - "0x3e": "0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636", - "0x3f": "0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c", - "0x40": "0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7" - } - }, - "0x00000961ef480eb55e80d19ad83579a64c007002": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd", - "storage": {} - }, - "0x0000bbddc7ce488642fb579f8b00f3a590007251": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd", - "storage": {} - }, - "0x0000f90827f1c53a10cb7a02335b175320002935": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500", - "storage": { - "0x00": "0x3061e84a3e892dcdf98298dfb231d9d409d776346c2b8a01eaefa73ad1baa681" - } - }, - "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", - "storage": { - "0x0c": "0x0c" - } - } - }, - "lastblockhash": "0xe4bd1c4dc22a58a0a9a8e789e2c54b4ace2d1ebc16a605c3976723b52fc011f1", - "config": { - "network": "Prague", - "chainid": "0x01", - "blobSchedule": { - "Cancun": { - "target": "0x03", - "max": "0x06", - "baseFeeUpdateFraction": "0x32f0ed" - }, - "Prague": { - "target": "0x06", - "max": "0x09", - "baseFeeUpdateFraction": "0x4c6964" - } - } - }, - "genesisRLP": "0xf9025ef90258a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06f978e5ec827eef738381e1ca1e9332001ac548e31fdb82b90319b3ae94e22d7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808085e8d4a51000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855c0c0c0", - "blocks": [ - { - "blockHeader": { - "parentHash": "0x3061e84a3e892dcdf98298dfb231d9d409d776346c2b8a01eaefa73ad1baa681", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe799e20916255d3334057a4e433654e25232fb41af30c6473c1a1ef52f45bee9", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0xe8d4a51000", - "gasUsed": "0x00", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "hash": "0xe4bd1c4dc22a58a0a9a8e789e2c54b4ace2d1ebc16a605c3976723b52fc011f1" - }, - "transactions": [], - "uncleHeaders": [], - "withdrawals": [], - "rlp": "0xf9025ef90258a03061e84a3e892dcdf98298dfb231d9d409d776346c2b8a01eaefa73ad1baa681a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e799e20916255d3334057a4e433654e25232fb41af30c6473c1a1ef52f45bee9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800185e8d4a51000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855c0c0c0", - "blocknumber": "1" - } - ], - "sealEngine": "NoProof", - "_info": { - "hash": "0xcf84edfe6c8163379f2a9d34c1a8a4f3fa4b4a70ab8ebc239a1a262d3e4fb008", - "comment": "`execution-spec-tests` generated test", - "filling-transition-tool": "evmone-t8n 0.15.0+commit.2cbfad3d", - "description": "Test running an empty block as a baseline for fixed proving costs.", - "url": "https://github.com/ethereum/execution-spec-tests/tree/v5.0.0/tests/benchmark/test_worst_compute.py#L2344", - "fixture-format": "blockchain_test" - } - } -} \ No newline at end of file diff --git a/tests/assets/eest-invalid-block/fixtures/blockchain_tests/invalid_negative_excess_blob_gas.json b/tests/assets/eest-invalid-block/fixtures/blockchain_tests/invalid_negative_excess_blob_gas.json deleted file mode 100644 index 176534cd..00000000 --- a/tests/assets/eest-invalid-block/fixtures/blockchain_tests/invalid_negative_excess_blob_gas.json +++ /dev/null @@ -1,267 +0,0 @@ -{ - "tests/cancun/eip4844_blobs/test_excess_blob_gas.py::test_invalid_negative_excess_blob_gas[fork_Prague-parent_excess_blobs_0-parent_blobs_0-header_excess_blob_gas_18446744073708765184-blockchain_test-new_blobs_1]": { - "network": "Prague", - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xed2f5ad6865984db91bb7e7d8fa6dc1122dea827d40c8ddb0e7d6252d46603f4", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x01c9c380", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "hash": "0x1bdc522483637a6c3209d1a19ae34a98d260f8d7da6b0f33b8a55d1cdc037112" - }, - "pre": { - "0x00000000219ab540356cbb839cbe05303d7705fa": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a2646970667358221220dceca8706b29e917dacf25fceef95acac8d90d765ac926663ce4096195952b6164736f6c634300060b0033", - "storage": { - "0x22": "0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b", - "0x23": "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71", - "0x24": "0xc78009fdf07fc56a11f122370658a353aaa542ed63e44c4bc15ff4cd105ab33c", - "0x25": "0x536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123c", - "0x26": "0x9efde052aa15429fae05bad4d0b1d7c64da64d03d7a1854a588c2cb8430c0d30", - "0x27": "0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1", - "0x28": "0x87eb0ddba57e35f6d286673802a4af5975e22506c7cf4c64bb6be5ee11527f2c", - "0x29": "0x26846476fd5fc54a5d43385167c95144f2643f533cc85bb9d16b782f8d7db193", - "0x2a": "0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1", - "0x2b": "0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b", - "0x2c": "0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220", - "0x2d": "0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f", - "0x2e": "0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e", - "0x2f": "0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784", - "0x30": "0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb", - "0x31": "0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb", - "0x32": "0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab", - "0x33": "0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4", - "0x34": "0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f", - "0x35": "0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa", - "0x36": "0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c", - "0x37": "0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167", - "0x38": "0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7", - "0x39": "0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0", - "0x3a": "0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544", - "0x3b": "0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765", - "0x3c": "0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4", - "0x3d": "0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1", - "0x3e": "0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636", - "0x3f": "0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c", - "0x40": "0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7" - } - }, - "0x00000961ef480eb55e80d19ad83579a64c007002": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd", - "storage": {} - }, - "0x0000bbddc7ce488642fb579f8b00f3a590007251": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd", - "storage": {} - }, - "0x0000f90827f1c53a10cb7a02335b175320002935": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500", - "storage": {} - }, - "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", - "storage": {} - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x06ce79", - "code": "0x", - "storage": {} - }, - "0x1000000000000000000000000000000000001000": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x4a600055", - "storage": {} - } - }, - "postState": { - "0x00000000219ab540356cbb839cbe05303d7705fa": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a2646970667358221220dceca8706b29e917dacf25fceef95acac8d90d765ac926663ce4096195952b6164736f6c634300060b0033", - "storage": { - "0x22": "0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b", - "0x23": "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71", - "0x24": "0xc78009fdf07fc56a11f122370658a353aaa542ed63e44c4bc15ff4cd105ab33c", - "0x25": "0x536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123c", - "0x26": "0x9efde052aa15429fae05bad4d0b1d7c64da64d03d7a1854a588c2cb8430c0d30", - "0x27": "0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1", - "0x28": "0x87eb0ddba57e35f6d286673802a4af5975e22506c7cf4c64bb6be5ee11527f2c", - "0x29": "0x26846476fd5fc54a5d43385167c95144f2643f533cc85bb9d16b782f8d7db193", - "0x2a": "0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1", - "0x2b": "0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b", - "0x2c": "0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220", - "0x2d": "0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f", - "0x2e": "0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e", - "0x2f": "0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784", - "0x30": "0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb", - "0x31": "0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb", - "0x32": "0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab", - "0x33": "0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4", - "0x34": "0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f", - "0x35": "0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa", - "0x36": "0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c", - "0x37": "0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167", - "0x38": "0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7", - "0x39": "0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0", - "0x3a": "0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544", - "0x3b": "0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765", - "0x3c": "0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4", - "0x3d": "0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1", - "0x3e": "0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636", - "0x3f": "0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c", - "0x40": "0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7" - } - }, - "0x00000961ef480eb55e80d19ad83579a64c007002": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd", - "storage": {} - }, - "0x0000bbddc7ce488642fb579f8b00f3a590007251": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd", - "storage": {} - }, - "0x0000f90827f1c53a10cb7a02335b175320002935": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500", - "storage": {} - }, - "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", - "storage": {} - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x06ce79", - "code": "0x", - "storage": {} - }, - "0x1000000000000000000000000000000000001000": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x4a600055", - "storage": {} - } - }, - "lastblockhash": "0x1bdc522483637a6c3209d1a19ae34a98d260f8d7da6b0f33b8a55d1cdc037112", - "config": { - "network": "Prague", - "chainid": "0x01", - "blobSchedule": { - "Cancun": { - "target": "0x03", - "max": "0x06", - "baseFeeUpdateFraction": "0x32f0ed" - }, - "Prague": { - "target": "0x06", - "max": "0x09", - "baseFeeUpdateFraction": "0x4c6964" - } - } - }, - "genesisRLP": "0xf9025df90257a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ed2f5ad6865984db91bb7e7d8fa6dc1122dea827d40c8ddb0e7d6252d46603f4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808401c9c380808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855c0c0c0", - "blocks": [ - { - "rlp": "0xf902f5f90264a01bdc522483637a6c3209d1a19ae34a98d260f8d7da6b0f33b8a55d1cdc037112a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0aff59c0f58a10924f9db8daa37af15be98f426a13f894e8b36f3d4e15eeeb87da0585d6212acb58bcbbfcb731613fe6ff022e1d54bc7800e364f5fdcb25b93a3eaa0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018401c9c38082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffff40000a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855f88ab88803f8850180800782afc89410000000000000000000000000000000000010000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c8dfbc929fcae1fab3e5828e44d597c163e6b72716d4719b88e446387268890ca016835ac58dfac226a9537e6be553549f45be68570ed2b312a5e058c7303cfcc6c0c0", - "expectException": "BlockException.INCORRECT_EXCESS_BLOB_GAS", - "rlp_decoded": { - "blockHeader": { - "parentHash": "0x1bdc522483637a6c3209d1a19ae34a98d260f8d7da6b0f33b8a55d1cdc037112", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xaff59c0f58a10924f9db8daa37af15be98f426a13f894e8b36f3d4e15eeeb87d", - "transactionsTrie": "0x585d6212acb58bcbbfcb731613fe6ff022e1d54bc7800e364f5fdcb25b93a3ea", - "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x01c9c380", - "gasUsed": "0xa861", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x020000", - "excessBlobGas": "0xfffffffffff40000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "hash": "0x7c6cf5941884a4c9a3183bf4d8c0025e771838929ea3651353f9a09ddb0f56de" - }, - "transactions": [ - { - "type": "0x03", - "chainId": "0x01", - "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0xafc8", - "to": "0x1000000000000000000000000000000000001000", - "value": "0x01", - "data": "0x", - "accessList": [], - "maxFeePerBlobGas": "0x01", - "blobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "v": "0x00", - "r": "0xc8dfbc929fcae1fab3e5828e44d597c163e6b72716d4719b88e446387268890c", - "s": "0x16835ac58dfac226a9537e6be553549f45be68570ed2b312a5e058c7303cfcc6", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [], - "blocknumber": "1" - } - } - ], - "sealEngine": "NoProof", - "_info": { - "hash": "0x17e00deb1b6baf61385844688c4a57453cf844d408075e8b6760eecb9513b95e", - "comment": "`execution-spec-tests` generated test", - "filling-transition-tool": "evm version 1.16.2-unstable-ef6e92e5-20250703", - "description": "Test rejection of blocks where the `excessBlobGas` changes to the two's\ncomplement equivalent of the negative value after subtracting target blobs.\n\nReasoning is that the `excessBlobGas` is a `uint64`, so it cannot be negative, and\nwe test for a potential underflow here.", - "url": "https://github.com/ethereum/execution-spec-tests/blob/9be75e81ae54dd5890774a6218afcc1092a6fd20/tests/cancun/eip4844_blobs/test_excess_blob_gas.py#L735", - "fixture-format": "blockchain_test", - "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", - "reference-spec-version": "de2e4a46ad93fc04e6fe3174dc6e90a3307bdb5f" - } - } -} \ No newline at end of file diff --git a/tests/assets/mainnet-zkevm-fixtures-input.tar.gz b/tests/assets/mainnet-zkevm-fixtures-input.tar.gz deleted file mode 100644 index 66201a0a..00000000 Binary files a/tests/assets/mainnet-zkevm-fixtures-input.tar.gz and /dev/null differ diff --git a/tests/src/empty_program.rs b/tests/src/empty_program.rs deleted file mode 100644 index 8add0cc2..00000000 --- a/tests/src/empty_program.rs +++ /dev/null @@ -1,50 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::utils::{ - assert_executions_successful, assert_proving_successful, get_env_zkvm_or_default, run_guest, - }; - - use benchmark_runner::{empty_program, runner::Action}; - use ere_dockerized::zkVMKind; - use tempfile::tempdir; - - #[tokio::test(flavor = "multi_thread")] - async fn execute_empty_program() { - let zkvms = get_env_zkvm_or_default(vec![ - zkVMKind::SP1, - zkVMKind::Risc0, - zkVMKind::OpenVM, - zkVMKind::Zisk, - zkVMKind::Pico, - ]); - empty_program(&zkvms, Action::Execute).await; - } - - #[tokio::test(flavor = "multi_thread")] - async fn prove_empty_program() { - let zkvms = get_env_zkvm_or_default(vec![ - zkVMKind::SP1, - zkVMKind::Risc0, - zkVMKind::OpenVM, - zkVMKind::Pico, - ]); - empty_program(&zkvms, Action::Prove).await; - } - - async fn empty_program(zkvms: &[zkVMKind], action: Action) { - let output_folder = tempdir().unwrap(); - let input = empty_program::empty_program_input().unwrap(); - run_guest( - "empty-program", - zkvms, - vec![input], - output_folder.path(), - None, - action, - ); - match action { - Action::Prove => assert_proving_successful::<()>(output_folder.path(), 1), - Action::Execute => assert_executions_successful::<()>(output_folder.path(), 1), - } - } -} diff --git a/tests/src/lib.rs b/tests/src/lib.rs deleted file mode 100644 index 78f23c8e..00000000 --- a/tests/src/lib.rs +++ /dev/null @@ -1,7 +0,0 @@ -//! Integration tests - -mod utils; - -mod empty_program; -mod panic_guest; -mod stateless_validator; diff --git a/tests/src/panic_guest.rs b/tests/src/panic_guest.rs deleted file mode 100644 index e634eb11..00000000 --- a/tests/src/panic_guest.rs +++ /dev/null @@ -1,44 +0,0 @@ -#[cfg(test)] -mod tests { - use crate::utils::{ - assert_executions_crashed, assert_proving_crashed, get_env_zkvm_or_default, run_guest, - }; - - use benchmark_runner::{empty_program, runner::Action}; - use ere_dockerized::zkVMKind; - use tempfile::tempdir; - - #[tokio::test(flavor = "multi_thread")] - async fn execute_panic_guest() { - let zkvms = get_env_zkvm_or_default(vec![ - zkVMKind::SP1, - zkVMKind::Risc0, - zkVMKind::Zisk, - zkVMKind::OpenVM, - ]); - panic_guest(&zkvms, Action::Execute).await; - } - - #[tokio::test(flavor = "multi_thread")] - async fn prove_panic_guest() { - let zkvms = get_env_zkvm_or_default(vec![zkVMKind::SP1, zkVMKind::Risc0, zkVMKind::OpenVM]); - panic_guest(&zkvms, Action::Prove).await; - } - - async fn panic_guest(zkvms: &[zkVMKind], action: Action) { - let output_folder = tempdir().unwrap(); - let input = empty_program::empty_program_input().unwrap(); - run_guest( - "panic-guest", - zkvms, - vec![input], - output_folder.path(), - None, - action, - ); - match action { - Action::Prove => assert_proving_crashed::<()>(output_folder.path(), 1), - Action::Execute => assert_executions_crashed::<()>(output_folder.path(), 1), - } - } -} diff --git a/tests/src/stateless_validator.rs b/tests/src/stateless_validator.rs deleted file mode 100644 index 9375b3e3..00000000 --- a/tests/src/stateless_validator.rs +++ /dev/null @@ -1,207 +0,0 @@ -#[cfg(test)] -mod tests { - use benchmark_runner::{ - runner::Action, - stateless_validator::{self, BlockMetadata, ExecutionClient}, - }; - use ere_dockerized::zkVMKind; - use std::{env, path::PathBuf}; - use tempfile::{tempdir, TempDir}; - use witness_generator::{eest_generator::EESTFixtureGeneratorBuilder, FixtureGenerator}; - - use crate::utils::{ - assert_executions_successful, assert_proving_successful, filter_el_zkvm_pairs_from_env, - run_guest, untar, - }; - - #[tokio::test(flavor = "multi_thread")] - async fn prove_empty_block() { - let el_zkvms = filter_el_zkvm_pairs_from_env(vec![ - (ExecutionClient::Reth, zkVMKind::SP1), - (ExecutionClient::Reth, zkVMKind::Risc0), - (ExecutionClient::Reth, zkVMKind::OpenVM), - (ExecutionClient::Reth, zkVMKind::Pico), - (ExecutionClient::Reth, zkVMKind::Airbender), - (ExecutionClient::Ethrex, zkVMKind::SP1), - (ExecutionClient::Ethrex, zkVMKind::Risc0), - // (ExecutionClient::Ethrex, zkVMKind::OpenVM), // See https://github.com/eth-act/ere/issues/168 - // (ExecutionClient::Ethrex, zkVMKind::Pico), // See https://github.com/eth-act/ere/issues/174 - ]); - empty_block(Action::Prove, &el_zkvms).await; - } - - #[tokio::test(flavor = "multi_thread")] - async fn execute_empty_block() { - let el_zkvms = filter_el_zkvm_pairs_from_env(vec![ - (ExecutionClient::Reth, zkVMKind::SP1), - (ExecutionClient::Reth, zkVMKind::Risc0), - (ExecutionClient::Reth, zkVMKind::OpenVM), - (ExecutionClient::Reth, zkVMKind::Pico), - (ExecutionClient::Reth, zkVMKind::Zisk), - (ExecutionClient::Reth, zkVMKind::Airbender), - (ExecutionClient::Ethrex, zkVMKind::SP1), - (ExecutionClient::Ethrex, zkVMKind::Risc0), - // (ExecutionClient::Ethrex, zkVMKind::OpenVM), // See https://github.com/eth-act/ere/issues/168 - // (ExecutionClient::Ethrex, zkVMKind::Pico), // See https://github.com/eth-act/ere/issues/174 - // (ExecutionClient::Ethrex, zkVMKind::Zisk), // See https://github.com/eth-act/ere/issues/XXX - ]); - empty_block(Action::Execute, &el_zkvms).await; - } - - #[tokio::test(flavor = "multi_thread")] - async fn execute_mainnet_blocks() { - let el_zkvms = filter_el_zkvm_pairs_from_env(vec![ - (ExecutionClient::Reth, zkVMKind::SP1), - (ExecutionClient::Reth, zkVMKind::Risc0), - (ExecutionClient::Reth, zkVMKind::OpenVM), - (ExecutionClient::Reth, zkVMKind::Pico), - (ExecutionClient::Reth, zkVMKind::Zisk), - (ExecutionClient::Reth, zkVMKind::Airbender), - (ExecutionClient::Ethrex, zkVMKind::SP1), - (ExecutionClient::Ethrex, zkVMKind::Risc0), - ]); - - for (el, zkvm) in el_zkvms { - let bench_fixtures_dir = tempdir().unwrap(); - untar( - &PathBuf::from(env!("CARGO_MANIFEST_DIR")) - .join("assets/mainnet-zkevm-fixtures-input.tar.gz"), - bench_fixtures_dir.path(), - ); - let input_folder = &bench_fixtures_dir - .path() - .join("mainnet-zkevm-fixtures-input"); - - let output_folder = OutputDir::new().unwrap(); - let inputs = stateless_validator::stateless_validator_inputs(input_folder, el).unwrap(); - let len_inputs = inputs.len(); - assert_eq!(len_inputs, 15); - - let el_str = el.as_ref().to_lowercase(); - run_guest( - &format!("stateless-validator/{el_str}"), - &[zkvm], - inputs, - output_folder.path(), - Some(el_str), - Action::Execute, - ); - assert_executions_successful::(output_folder.path(), len_inputs); - } - } - - #[tokio::test(flavor = "multi_thread")] - async fn execute_invalid_block() { - let el_zkvms = filter_el_zkvm_pairs_from_env(vec![ - (ExecutionClient::Reth, zkVMKind::SP1), - (ExecutionClient::Reth, zkVMKind::Risc0), - (ExecutionClient::Reth, zkVMKind::OpenVM), - (ExecutionClient::Reth, zkVMKind::Pico), - (ExecutionClient::Reth, zkVMKind::Zisk), - (ExecutionClient::Reth, zkVMKind::Airbender), - (ExecutionClient::Ethrex, zkVMKind::SP1), - (ExecutionClient::Ethrex, zkVMKind::Risc0), - ]); - for (el, zkvm) in el_zkvms { - let eest_fixtures_path = PathBuf::from("assets/eest-invalid-block"); - let bench_fixtures_dir = tempdir().unwrap(); - EESTFixtureGeneratorBuilder::default() - .with_input_folder(eest_fixtures_path) - .unwrap() - .build() - .unwrap() - .generate_to_path(bench_fixtures_dir.path()) - .await - .unwrap(); - - let output_folder = OutputDir::new().unwrap(); - let inputs = - stateless_validator::stateless_validator_inputs(bench_fixtures_dir.path(), el) - .unwrap(); - - let len_inputs = inputs.len(); - assert_eq!(len_inputs, 1); - - let el_str = el.as_ref().to_lowercase(); - run_guest( - &format!("stateless-validator/{el_str}"), - &[zkvm], - inputs, - output_folder.path(), - Some(el_str), - Action::Execute, - ); - assert_executions_successful::(output_folder.path(), len_inputs); - } - } - - async fn empty_block(action: Action, el_zkvms: &[(ExecutionClient, zkVMKind)]) { - for (el, zkvm) in el_zkvms { - let eest_fixtures_path = PathBuf::from("assets/eest-empty-block"); - let bench_fixtures_dir = tempdir().unwrap(); - EESTFixtureGeneratorBuilder::default() - .with_input_folder(eest_fixtures_path) - .unwrap() - .build() - .unwrap() - .generate_to_path(bench_fixtures_dir.path()) - .await - .unwrap(); - - let output_folder = OutputDir::new().unwrap(); - let inputs = - stateless_validator::stateless_validator_inputs(bench_fixtures_dir.path(), *el) - .unwrap(); - - let len_inputs = inputs.len(); - assert_eq!(len_inputs, 1); - - run_guest( - &format!("stateless-validator/{}", el.as_ref().to_lowercase()), - &[*zkvm], - inputs, - output_folder.path(), - Some(el.as_ref().to_lowercase()), - action, - ); - match action { - Action::Prove => { - assert_proving_successful::(output_folder.path(), len_inputs) - } - Action::Execute => { - assert_executions_successful::(output_folder.path(), len_inputs); - } - } - } - } - struct OutputDir { - path: PathBuf, - // When OutputDir is dropped, the temp dir (if any) meant to be deleted - _temp_dir: Option, - } - - impl OutputDir { - /// Create an output directory from env var or as a temp dir - fn new() -> Result { - if let Ok(base_dir) = env::var("WORKLOAD_OUTPUT_DIR") { - std::fs::create_dir_all(&base_dir)?; - Ok(Self { - path: PathBuf::from(base_dir).canonicalize()?, - _temp_dir: None, - }) - } else { - let temp_dir = tempdir()?; - let path = temp_dir.path().to_path_buf(); - Ok(Self { - path, - _temp_dir: Some(temp_dir), - }) - } - } - - /// Get the path to the directory - fn path(&self) -> &PathBuf { - &self.path - } - } -} diff --git a/tests/src/utils.rs b/tests/src/utils.rs deleted file mode 100644 index bdf3c58e..00000000 --- a/tests/src/utils.rs +++ /dev/null @@ -1,194 +0,0 @@ -//! Test utilities for the benchmark integration tests - -#![cfg(test)] - -use std::{ - fs::File, - path::{Path, PathBuf}, - str::FromStr, -}; - -use benchmark_runner::{ - guest_programs::GuestFixture, - runner::{get_zkvm_instances, run_benchmark, Action, RunConfig}, - stateless_validator::ExecutionClient, -}; -use ere_dockerized::zkVMKind; -use ere_zkvm_interface::ProverResourceType; -use flate2::bufread::GzDecoder; -use serde::{de::DeserializeOwned, Serialize}; -use tar::Archive; -use walkdir::WalkDir; -use zkevm_metrics::{BenchmarkRun, ExecutionMetrics, ProvingMetrics}; - -pub(crate) fn run_guest( - guest_rel: &str, - zkvms: &[zkVMKind], - inputs: Vec, - output_folder: &Path, - sub_folder: Option, - action: Action, -) { - let config = RunConfig { - output_folder: output_folder.to_path_buf(), - sub_folder, - action, - force_rerun: true, - dump_inputs_folder: None, - }; - let instances = get_zkvm_instances( - zkvms, - &PathBuf::from(env!("CARGO_WORKSPACE_DIR")).join("ere-guests"), - Path::new(guest_rel), - ProverResourceType::Cpu, - true, - ) - .unwrap(); - for zkvm in instances { - run_benchmark(&zkvm, &config, &inputs).unwrap(); - } - - assert!( - std::fs::exists(output_folder.join("hardware.json")).unwrap(), - "hardware.json file must exist" - ); -} - -pub(crate) fn assert_executions_crashed( - metrics_folder_path: &Path, - expected_file_count: usize, -) where - Metadata: Serialize + DeserializeOwned, -{ - assert_execution_status::<_, Metadata>(metrics_folder_path, expected_file_count, |exec| { - matches!(exec, ExecutionMetrics::Crashed { .. }) - }); -} - -pub(crate) fn assert_executions_successful( - metrics_folder_path: &Path, - expected_file_count: usize, -) where - Metadata: Serialize + DeserializeOwned, -{ - assert_execution_status::<_, Metadata>(metrics_folder_path, expected_file_count, |exec| { - matches!(exec, ExecutionMetrics::Success { .. }) - }); -} - -fn assert_execution_status( - output_path: &Path, - expected_file_count: usize, - predicate: F, -) where - F: Fn(&ExecutionMetrics) -> bool, - Metadata: Serialize + DeserializeOwned, -{ - let paths = get_result_files(output_path); - assert_eq!( - paths.len(), - expected_file_count, - "Expected {} result files, found {}", - expected_file_count, - paths.len() - ); - for path in &paths { - let result = BenchmarkRun::::from_path(path).unwrap(); - assert!( - predicate(&result.execution.unwrap()), - "Unexpected execution status for: {} (content={})", - path.display(), - std::fs::read_to_string(path).unwrap_or_default() - ); - } -} - -pub(crate) fn assert_proving_successful( - metrics_folder_path: &Path, - expected_file_count: usize, -) where - Metadata: Serialize + DeserializeOwned, -{ - assert_proving_status::<_, Metadata>(metrics_folder_path, expected_file_count, |exec| { - matches!(exec, ProvingMetrics::Success { .. }) - }); -} - -pub(crate) fn assert_proving_crashed( - metrics_folder_path: &Path, - expected_file_count: usize, -) where - Metadata: Serialize + DeserializeOwned, -{ - assert_proving_status::<_, Metadata>(metrics_folder_path, expected_file_count, |exec| { - matches!(exec, ProvingMetrics::Crashed { .. }) - }); -} - -fn assert_proving_status(output_path: &Path, expected_file_count: usize, predicate: F) -where - F: Fn(&ProvingMetrics) -> bool, - Metadata: Serialize + DeserializeOwned, -{ - let paths = get_result_files(output_path); - assert_eq!( - paths.len(), - expected_file_count, - "Expected {} result files, found {}", - expected_file_count, - paths.len() - ); - for path in &paths { - let result = BenchmarkRun::::from_path(path).unwrap(); - assert!( - predicate(&result.proving.unwrap()), - "Unexpected proving status for: {}", - path.display() - ); - } -} - -fn get_result_files(output_path: &Path) -> Vec { - WalkDir::new(output_path) - .min_depth(2) - .into_iter() - .filter_map(|e| e.ok()) - .filter(|e| e.path().extension().and_then(|s| s.to_str()) == Some("json")) - .map(|entry| entry.path().to_path_buf()) - .collect::>() -} - -pub(crate) fn untar(path: &Path, dest_dir: &Path) { - let file = File::open(path).unwrap(); - let buf_reader = std::io::BufReader::new(file); - let tar = GzDecoder::new(buf_reader); - let mut archive = Archive::new(tar); - archive.unpack(dest_dir).unwrap(); -} - -pub(crate) fn get_env_zkvm_or_default(default: Vec) -> Vec { - std::env::var("ZKVM") - .map(|zkvm| vec![zkVMKind::from_str(&zkvm).expect("Invalid ZKVM")]) - .unwrap_or(default) -} - -pub(crate) fn filter_el_zkvm_pairs_from_env( - default: Vec<(ExecutionClient, zkVMKind)>, -) -> Vec<(ExecutionClient, zkVMKind)> { - let env_el = std::env::var("EL").ok().map(|el| { - el.parse::() - .expect("Invalid execution client") - }); - let env_zkvm = std::env::var("ZKVM") - .ok() - .map(|zkvm| zkvm.parse().expect("Invalid ZKVM")); - let pairs = default - .into_iter() - .filter(|(el, zkvm)| { - env_el.as_ref().is_none_or(|ref_el| el == ref_el) - && env_zkvm.as_ref().is_none_or(|ref_zkvm| zkvm == ref_zkvm) - }) - .collect::>(); - assert!(!pairs.is_empty(), "No valid (EL, ZKVM) pairs found"); - pairs -} diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml deleted file mode 100644 index 2986d214..00000000 --- a/xtask/Cargo.toml +++ /dev/null @@ -1,14 +0,0 @@ -[package] -name = "xtask" -version.workspace = true -edition.workspace = true -rust-version.workspace = true -license.workspace = true - -[dependencies] -anyhow = "1" -toml_edit = "0.22" -clap = { version = "4.5", features = ["derive"] } - -[lints] -workspace = true diff --git a/xtask/src/main.rs b/xtask/src/main.rs deleted file mode 100644 index f6606030..00000000 --- a/xtask/src/main.rs +++ /dev/null @@ -1,157 +0,0 @@ -//! xtask – swap pre-compile patch-sets, then delegate to Cargo -//! -//! Build once: cargo build -p xtask --release -//! Run directly: ./target/release/xtask succinct -- build -p succinct -//! -//! (or add aliases in .cargo/config.toml, see README) - -#![cfg_attr(not(test), warn(unused_crate_dependencies))] - -use anyhow::{Context, Result, bail}; -use clap::Parser; -use std::{collections::HashSet, fs, path::PathBuf, process::Command}; -use toml_edit::{DocumentMut, Item, Table}; - -/// Inject one of the `precompile-patches/*.toml` files into the workspace -/// `Cargo.toml`, replacing previous precompile patches, then forward the rest -/// of the command-line to `cargo`. -#[derive(Parser)] -#[command( - author, - version, - about = "Patch-set injector for the workspace", - trailing_var_arg = true, - disable_help_subcommand = true -)] -struct Cli { - /// Patch-set name (file stem of precompile-patches/.toml) - patch: String, - - #[arg(long)] - /// Path to the Cargo manifest file to patch - manifest_folder: Option, - - /// Everything after is passed straight to Cargo - cargo_args: Vec, -} - -fn main() -> Result<()> { - let cli = Cli::parse(); - - let ws_root = workspace_root(); - - let manifest_folder = cli - .manifest_folder - .unwrap_or_else(|| ws_root.join("ere-guests")); - let manifest_path = manifest_folder.join("Cargo.toml"); - - // 1 ── read root manifest - let manifest_src = fs::read_to_string(&manifest_path) - .with_context(|| format!("reading {}", manifest_path.display()))?; - let mut root_doc: DocumentMut = manifest_src.parse()?; - - // 2 ── remove only the keys we “own”, ie the keys in the precompile-patches - let precompile_dir = ws_root.join("precompile-patches"); - let owned_keys = gather_owned_keys(&precompile_dir)?; - { - let ci = root_doc["patch"]["crates-io"] - .or_insert(Item::Table(Table::new())) - .as_table_mut() - .unwrap(); - for key in &owned_keys { - ci.remove(key); - } - } - - // 3 ── insert the selected patch-set - let chosen_file = precompile_dir.join(format!("{}.toml", cli.patch)); - if !chosen_file.exists() { - bail!( - "unknown patch-set `{}` (available: {})", - cli.patch, - display_patch_sets(&precompile_dir)? - ); - } - let chosen_src = fs::read_to_string(&chosen_file)?; - let chosen_doc: DocumentMut = chosen_src.parse()?; - let Some(patches) = chosen_doc - .get("patch") - .and_then(|p| p.get("crates-io")) - .and_then(Item::as_table) - else { - bail!("{} has no [patch.crates-io] table", chosen_file.display()); - }; - for (k, v) in patches { - root_doc["patch"]["crates-io"].as_table_mut().unwrap()[k] = v.clone(); // overwrite / insert - } - - // 4 ── write the updated manifest back - fs::write(&manifest_path, root_doc.to_string()) - .with_context(|| format!("writing {}", manifest_path.display()))?; - - // 5 ── run cargo update for patching crates - let _ = Command::new("cargo") - .current_dir(&manifest_folder) - .arg("update") - .args(patches.iter().flat_map(|(key, value)| { - let pkg = value - .get("package") - .and_then(|pkg| pkg.as_str()) - .unwrap_or(key); - ["--package", pkg] - })) - .status(); - - // 6 ── forward to Cargo - let status = Command::new("cargo") - .current_dir(manifest_folder) - .args(&cli.cargo_args) - .status() - .context("failed to invoke cargo")?; - std::process::exit(status.code().unwrap_or(1)); -} - -/// repo root (assumes xtask lives in /xtask) -fn workspace_root() -> PathBuf { - let mut p = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - p.pop(); - p -} - -/// All crate-keys that occur in any precompile-patches/*.toml -fn gather_owned_keys(dir: &PathBuf) -> Result> { - let mut keys = HashSet::new(); - for entry in fs::read_dir(dir).with_context(|| format!("reading {}", dir.display()))? { - let path = entry?.path(); - if path.extension().and_then(|s| s.to_str()) != Some("toml") { - continue; - } - let src = fs::read_to_string(&path)?; - let doc: DocumentMut = src.parse()?; - if let Some(tbl) = doc - .get("patch") - .and_then(|p| p.get("crates-io")) - .and_then(Item::as_table) - { - for (k, _) in tbl { - keys.insert(k.to_string()); - } - } - } - Ok(keys) -} - -/// Pretty-print available patch-set names -fn display_patch_sets(dir: &PathBuf) -> Result { - let mut names = Vec::new(); - for entry in fs::read_dir(dir)? { - let path = entry?.path(); - if path.extension().and_then(|s| s.to_str()) == Some("toml") - && let Some(stem) = path.file_stem().and_then(|s| s.to_str()) - { - names.push(stem.to_string()); - } - } - names.sort(); - Ok(names.join(", ")) -}