diff --git a/.github/release-please/manifest.json b/.github/release-please/manifest.json
index a0d1d73bddaf..47fc53044802 100644
--- a/.github/release-please/manifest.json
+++ b/.github/release-please/manifest.json
@@ -1,5 +1,5 @@
{
"core": "25.0.0",
- "prover": "16.5.0",
+ "prover": "16.6.0",
"zkstack_cli": "0.1.2"
}
diff --git a/.github/workflows/build-contract-verifier-template.yml b/.github/workflows/build-contract-verifier-template.yml
index e4d04b90410e..1481e542de57 100644
--- a/.github/workflows/build-contract-verifier-template.yml
+++ b/.github/workflows/build-contract-verifier-template.yml
@@ -101,7 +101,6 @@ jobs:
- name: start-services
run: |
echo "IMAGE_TAG_SUFFIX=${{ env.IMAGE_TAG_SUFFIX }}" >> .env
- mkdir -p ./volumes/postgres
run_retried docker compose pull zk postgres
docker compose up -d zk postgres
ci_run pre_download_compilers.sh
diff --git a/.github/workflows/build-core-template.yml b/.github/workflows/build-core-template.yml
index fe1d23427645..15d4432191dd 100644
--- a/.github/workflows/build-core-template.yml
+++ b/.github/workflows/build-core-template.yml
@@ -114,7 +114,6 @@ jobs:
- name: start-services
run: |
echo "IMAGE_TAG_SUFFIX=${{ env.IMAGE_TAG_SUFFIX }}" >> .env
- mkdir -p ./volumes/postgres
run_retried docker compose pull zk postgres
docker compose up -d zk postgres
ci_run pre_download_compilers.sh
diff --git a/.github/workflows/build-local-node-docker.yml b/.github/workflows/build-local-node-docker.yml
index 80142cb6005c..cbb4239b5725 100644
--- a/.github/workflows/build-local-node-docker.yml
+++ b/.github/workflows/build-local-node-docker.yml
@@ -50,7 +50,6 @@ jobs:
- name: start-services
run: |
- mkdir -p ./volumes/postgres
run_retried docker compose pull zk postgres
docker compose up -d zk postgres
diff --git a/.github/workflows/build-prover-fri-gpu-gar-and-circuit-prover-gpu-gar.yml b/.github/workflows/build-prover-fri-gpu-gar-and-circuit-prover-gpu-gar.yml
index 4639f8c77c41..30990889caf6 100644
--- a/.github/workflows/build-prover-fri-gpu-gar-and-circuit-prover-gpu-gar.yml
+++ b/.github/workflows/build-prover-fri-gpu-gar-and-circuit-prover-gpu-gar.yml
@@ -69,10 +69,6 @@ jobs:
--tag europe-docker.pkg.dev/matterlabs-infra/matterlabs-docker/prover-fri-gpu-gar:2.0-${{ inputs.protocol_version }}-${{ inputs.image_tag_suffix }} \
us-docker.pkg.dev/matterlabs-infra/matterlabs-docker/prover-fri-gpu-gar:2.0-${{ inputs.protocol_version }}-${{ inputs.image_tag_suffix }}
- - name: Remove prover-gpu-fri-gar image to free space
- run: |
- docker image rm us-docker.pkg.dev/matterlabs-infra/matterlabs-docker/prover-fri-gpu-gar:2.0-${{ inputs.protocol_version }}-${{ inputs.image_tag_suffix }}
-
- name: Move Setup data from prover-gpu-fri-gar to circuit-prover-gpu-gar
run: |
mv -v docker/prover-gpu-fri-gar/*.bin docker/circuit-prover-gpu-gar/
diff --git a/.github/workflows/build-prover-template.yml b/.github/workflows/build-prover-template.yml
index 2dcb5dadb174..91de5dd51ecf 100644
--- a/.github/workflows/build-prover-template.yml
+++ b/.github/workflows/build-prover-template.yml
@@ -75,7 +75,6 @@ jobs:
- name: start-services
run: |
echo "IMAGE_TAG_SUFFIX=${{ env.IMAGE_TAG_SUFFIX }}" >> .env
- mkdir -p ./volumes/postgres
run_retried docker compose pull zk postgres
docker compose up -d zk postgres
ci_run sccache --start-server
diff --git a/.github/workflows/build-witness-generator-template.yml b/.github/workflows/build-witness-generator-template.yml
index 33d78b3cf2fc..d9493f97cae1 100644
--- a/.github/workflows/build-witness-generator-template.yml
+++ b/.github/workflows/build-witness-generator-template.yml
@@ -75,7 +75,6 @@ jobs:
- name: start-services
run: |
echo "IMAGE_TAG_SUFFIX=${{ env.IMAGE_TAG_SUFFIX }}" >> .env
- mkdir -p ./volumes/postgres
run_retried docker compose pull zk postgres
docker compose up -d zk postgres
ci_run sccache --start-server
diff --git a/.github/workflows/ci-common-reusable.yml b/.github/workflows/ci-common-reusable.yml
index 7d75fb224d6e..ea91fc4a7cd6 100644
--- a/.github/workflows/ci-common-reusable.yml
+++ b/.github/workflows/ci-common-reusable.yml
@@ -27,7 +27,6 @@ jobs:
- name: Start services
run: |
run_retried docker-compose -f ${RUNNER_COMPOSE_FILE} pull
- mkdir -p ./volumes/postgres
docker-compose -f ${RUNNER_COMPOSE_FILE} up --build -d zk postgres
- name: Install zkstack
diff --git a/.github/workflows/ci-core-reusable.yml b/.github/workflows/ci-core-reusable.yml
index 9aaa476d740d..c245e7341d03 100644
--- a/.github/workflows/ci-core-reusable.yml
+++ b/.github/workflows/ci-core-reusable.yml
@@ -8,6 +8,10 @@ on:
required: false
default: '[{ "zksolc": ["1.3.14", "1.3.16", "1.3.17", "1.3.1", "1.3.7", "1.3.18", "1.3.19", "1.3.21"] } , { "zkvyper": ["1.3.13"] }]'
+env:
+ RUST_BACKTRACE: 1
+ PASSED_ENV_VARS: RUST_BACKTRACE
+
jobs:
lint:
name: lint
@@ -101,7 +105,7 @@ jobs:
- name: Loadtest configuration
run: |
- echo EXPECTED_TX_COUNT=${{ matrix.vm_mode == 'NEW' && 21000 || 16000 }} >> .env
+ echo EXPECTED_TX_COUNT=${{ matrix.vm_mode == 'NEW' && 30000 || 16000 }} >> .env
echo ACCOUNTS_AMOUNT="100" >> .env
echo MAX_INFLIGHT_TXS="10" >> .env
echo SYNC_API_REQUESTS_LIMIT="15" >> .env
@@ -272,8 +276,8 @@ jobs:
--wallet-creation localhost \
--l1-batch-commit-data-generator-mode rollup \
--base-token-address ${{ env.CUSTOM_TOKEN_ADDRESS }} \
- --base-token-price-nominator 3 \
- --base-token-price-denominator 2 \
+ --base-token-price-nominator 314 \
+ --base-token-price-denominator 1000 \
--set-as-default false \
--ignore-prerequisites
@@ -328,8 +332,8 @@ jobs:
--wallet-creation localhost \
--l1-batch-commit-data-generator-mode validium \
--base-token-address ${{ env.CUSTOM_TOKEN_ADDRESS }} \
- --base-token-price-nominator 3 \
- --base-token-price-denominator 2 \
+ --base-token-price-nominator 314 \
+ --base-token-price-denominator 1000 \
--set-as-default false \
--ignore-prerequisites
@@ -356,12 +360,16 @@ jobs:
- name: Run servers
run: |
+ # Override config for part of chains to test the default config as well
+ ci_run zkstack dev config-writer --path etc/env/file_based/overrides/tests/integration.yaml --chain era
+ ci_run zkstack dev config-writer --path etc/env/file_based/overrides/tests/integration.yaml --chain validium
+
ci_run zkstack server --ignore-prerequisites --chain era &> ${{ env.SERVER_LOGS_DIR }}/rollup.log &
ci_run zkstack server --ignore-prerequisites --chain validium &> ${{ env.SERVER_LOGS_DIR }}/validium.log &
ci_run zkstack server --ignore-prerequisites --chain custom_token &> ${{ env.SERVER_LOGS_DIR }}/custom_token.log &
ci_run zkstack server --ignore-prerequisites --chain consensus \
- --components=api,tree,eth,state_keeper,housekeeper,commitment_generator,vm_runner_protective_reads,vm_runner_bwip,vm_playground,da_dispatcher,consensus \
- &> ${{ env.SERVER_LOGS_DIR }}/consensus.log &
+ --components=api,tree,eth,state_keeper,housekeeper,commitment_generator,vm_runner_protective_reads,vm_runner_bwip,vm_playground,da_dispatcher,consensus \
+ &> ${{ env.SERVER_LOGS_DIR }}/consensus.log &
ci_run sleep 5
diff --git a/.github/workflows/ci-prover-e2e.yml b/.github/workflows/ci-prover-e2e.yml
index 105ae1f1485d..b0b9caf888fc 100644
--- a/.github/workflows/ci-prover-e2e.yml
+++ b/.github/workflows/ci-prover-e2e.yml
@@ -29,7 +29,6 @@ jobs:
- name: Start services
run: |
run_retried docker-compose -f ${RUNNER_COMPOSE_FILE} pull
- mkdir -p ./volumes/postgres ./volumes/reth/data
docker-compose -f ${RUNNER_COMPOSE_FILE} --profile runner up -d --wait
ci_run sccache --start-server
diff --git a/.github/workflows/ci-prover-reusable.yml b/.github/workflows/ci-prover-reusable.yml
index 6cb9c26d21e7..7f719b2240db 100644
--- a/.github/workflows/ci-prover-reusable.yml
+++ b/.github/workflows/ci-prover-reusable.yml
@@ -27,7 +27,6 @@ jobs:
- name: Start services
run: |
run_retried docker-compose -f ${RUNNER_COMPOSE_FILE} pull
- mkdir -p ./volumes/postgres
docker-compose -f ${RUNNER_COMPOSE_FILE} up --build -d zk postgres
- name: Install zkstack
@@ -40,7 +39,9 @@ jobs:
ci_run zkstack dev db setup --prover-url=${{ env.prover_url }} --core-url=${{ env.core_url }}
- name: Formatting
- run: ci_run bash -c "cd prover && cargo fmt --check"
+ run: |
+ ci_run git config --global --add safe.directory /usr/src/zksync
+ ci_run zkstack dev fmt --check rustfmt
unit-tests:
runs-on: [ matterlabs-ci-runner-highmem-long ]
@@ -66,7 +67,6 @@ jobs:
- name: Start services
run: |
run_retried docker-compose -f ${RUNNER_COMPOSE_FILE} pull
- mkdir -p ./volumes/postgres
docker-compose -f ${RUNNER_COMPOSE_FILE} up --build -d zk postgres
- name: Install zkstack
diff --git a/.github/workflows/vm-perf-comparison.yml b/.github/workflows/vm-perf-comparison.yml
index 49830a30cc1e..3520419f1337 100644
--- a/.github/workflows/vm-perf-comparison.yml
+++ b/.github/workflows/vm-perf-comparison.yml
@@ -40,6 +40,8 @@ jobs:
echo "SCCACHE_GCS_SERVICE_ACCOUNT=gha-ci-runners@matterlabs-infra.iam.gserviceaccount.com" >> .env
echo "SCCACHE_GCS_RW_MODE=READ_WRITE" >> .env
echo "RUSTC_WRAPPER=sccache" >> .env
+ # Set the minimum reported instruction count difference to reduce noise
+ echo "BENCHMARK_DIFF_THRESHOLD_PERCENT=2" >> .env
- name: init
run: |
@@ -51,8 +53,8 @@ jobs:
run: |
ci_run zkstackup -g --local
ci_run zkstack dev contracts --system-contracts
- ci_run cargo bench --package vm-benchmark --bench iai | tee base-iai
- ci_run cargo run --package vm-benchmark --release --bin instruction_counts | tee base-opcodes || touch base-opcodes
+ ci_run cargo bench --package vm-benchmark --bench instructions -- --verbose || echo "Instructions benchmark is missing"
+ ci_run cargo run --package vm-benchmark --release --bin instruction_counts | tee base-opcodes
- name: checkout PR
run: |
@@ -60,24 +62,39 @@ jobs:
- name: run benchmarks on PR
shell: bash
+ id: comparison
run: |
ci_run zkstackup -g --local
ci_run zkstack dev contracts --system-contracts
- ci_run cargo bench --package vm-benchmark --bench iai | tee pr-iai
- ci_run cargo run --package vm-benchmark --release --bin instruction_counts | tee pr-opcodes || touch pr-opcodes
+ ci_run cargo bench --package vm-benchmark --bench instructions -- --verbose
+ ci_run cargo bench --package vm-benchmark --bench instructions -- --print > instructions.log 2>/dev/null
+ # Output all lines from the benchmark result starting from the "## ..." comparison header.
+ # Since the output spans multiple lines, we use a heredoc declaration.
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "speedup<<$EOF" >> $GITHUB_OUTPUT
- ci_run cargo run --package vm-benchmark --release --bin compare_iai_results base-iai pr-iai base-opcodes pr-opcodes >> $GITHUB_OUTPUT
+ sed -n '/^## /,$p' instructions.log >> $GITHUB_OUTPUT
+ echo "$EOF" >> $GITHUB_OUTPUT
+
+ ci_run cargo run --package vm-benchmark --release --bin instruction_counts -- --diff base-opcodes > opcodes.log
+ echo "opcodes<<$EOF" >> $GITHUB_OUTPUT
+ sed -n '/^## /,$p' opcodes.log >> $GITHUB_OUTPUT
echo "$EOF" >> $GITHUB_OUTPUT
- id: comparison
- name: Comment on PR
uses: thollander/actions-comment-pull-request@fabd468d3a1a0b97feee5f6b9e499eab0dd903f6 # v2.5.0
+ if: steps.comparison.outputs.speedup != '' || steps.comparison.outputs.opcodes != ''
with:
message: |
- ${{ steps.comparison.outputs.speedup == '' && '## No performance difference detected (anymore)' || '## Detected VM performance changes' }}
${{ steps.comparison.outputs.speedup }}
+ ${{ steps.comparison.outputs.opcodes }}
comment_tag: vm-performance-changes
mode: recreate
- create_if_not_exists: ${{ steps.comparison.outputs.speedup != '' }}
+ create_if_not_exists: true
+ - name: Remove PR comment
+ uses: thollander/actions-comment-pull-request@fabd468d3a1a0b97feee5f6b9e499eab0dd903f6 # v2.5.0
+ if: steps.comparison.outputs.speedup == '' && steps.comparison.outputs.opcodes == ''
+ with:
+ comment_tag: vm-performance-changes
+ message: 'No performance difference detected (anymore)'
+ mode: delete
diff --git a/.github/workflows/vm-perf-to-prometheus.yml b/.github/workflows/vm-perf-to-prometheus.yml
index d336a1472e4a..93d33116794f 100644
--- a/.github/workflows/vm-perf-to-prometheus.yml
+++ b/.github/workflows/vm-perf-to-prometheus.yml
@@ -48,5 +48,5 @@ jobs:
ci_run cargo bench --package vm-benchmark --bench oneshot
# Run only benches with 1,000 transactions per batch to not spend too much time
ci_run cargo bench --package vm-benchmark --bench batch '/1000$'
- ci_run cargo bench --package vm-benchmark --bench iai | tee iai-result
- ci_run cargo run --package vm-benchmark --bin iai_results_to_prometheus --release < iai-result
+ ci_run cargo bench --package vm-benchmark --bench instructions -- --verbose
+ ci_run cargo bench --package vm-benchmark --bench instructions -- --print
diff --git a/.gitignore b/.gitignore
index 86ed40c70417..adf3b7799618 100644
--- a/.gitignore
+++ b/.gitignore
@@ -115,6 +115,7 @@ prover/data/keys/setup_*
# ZK Stack CLI
chains/era/configs/*
chains/gateway/*
+chains/avail/*
configs/*
era-observability/
core/tests/ts-integration/deployments-zk
diff --git a/Cargo.lock b/Cargo.lock
index 7e4cad34cf8f..eb2a72eb8c4a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -15,9 +15,9 @@ dependencies = [
[[package]]
name = "addr2line"
-version = "0.24.1"
+version = "0.24.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375"
+checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1"
dependencies = [
"gimli",
]
@@ -101,6 +101,16 @@ version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
+[[package]]
+name = "alloy-rlp"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0822426598f95e45dd1ea32a738dac057529a709ee645fcc516ffa4cbde08f"
+dependencies = [
+ "arrayvec 0.7.6",
+ "bytes",
+]
+
[[package]]
name = "android-tzdata"
version = "0.1.1"
@@ -133,9 +143,9 @@ dependencies = [
[[package]]
name = "anstream"
-version = "0.6.15"
+version = "0.6.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526"
+checksum = "23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338"
dependencies = [
"anstyle",
"anstyle-parse",
@@ -148,43 +158,167 @@ dependencies = [
[[package]]
name = "anstyle"
-version = "1.0.8"
+version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
+checksum = "8365de52b16c035ff4fcafe0092ba9390540e3e352870ac09933bebcaa2c8c56"
[[package]]
name = "anstyle-parse"
-version = "0.2.5"
+version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb"
+checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9"
dependencies = [
"utf8parse",
]
[[package]]
name = "anstyle-query"
-version = "1.1.1"
+version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a"
+checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c"
dependencies = [
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
]
[[package]]
name = "anstyle-wincon"
-version = "3.0.4"
+version = "3.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8"
+checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125"
dependencies = [
"anstyle",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
]
[[package]]
name = "anyhow"
-version = "1.0.89"
+version = "1.0.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8"
+
+[[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-asm"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44"
+dependencies = [
+ "quote 1.0.37",
+ "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 1.0.37",
+ "syn 1.0.109",
+]
+
+[[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 1.0.37",
+ "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 1.0.89",
+ "quote 1.0.37",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "ark-serialize"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6"
+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-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 = "arr_macro"
@@ -294,9 +428,9 @@ dependencies = [
[[package]]
name = "async-compression"
-version = "0.4.11"
+version = "0.4.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd066d0b4ef8ecb03a55319dc13aa6910616d0f44008a045bb1835af830abff5"
+checksum = "0cb8f1d480b0ea3783ab015936d2a55c87e219676f0c0b7dec61494043f21857"
dependencies = [
"futures-core",
"memchr",
@@ -420,9 +554,9 @@ version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -473,9 +607,9 @@ dependencies = [
[[package]]
name = "async-stream"
-version = "0.3.5"
+version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
+checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476"
dependencies = [
"async-stream-impl",
"futures-core",
@@ -484,13 +618,13 @@ dependencies = [
[[package]]
name = "async-stream-impl"
-version = "0.3.5"
+version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
+checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -505,9 +639,9 @@ version = "0.1.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -542,17 +676,28 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "auto_impl"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42"
+dependencies = [
+ "proc-macro2 1.0.89",
+ "quote 1.0.37",
+ "syn 2.0.85",
+]
+
[[package]]
name = "autocfg"
-version = "1.3.0"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
[[package]]
name = "aws-lc-rs"
-version = "1.9.0"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f95446d919226d587817a7d21379e6eb099b97b45110a7f272a444ca5c54070"
+checksum = "cdd82dba44d209fddb11c190e0a94b78651f95299598e472215667417a03ff1d"
dependencies = [
"aws-lc-sys",
"mirai-annotations",
@@ -562,11 +707,11 @@ dependencies = [
[[package]]
name = "aws-lc-sys"
-version = "0.21.2"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3ddc4a5b231dd6958b140ff3151b6412b3f4321fab354f399eec8f14b06df62"
+checksum = "df7a4168111d7eb622a31b214057b8509c0a7e1794f44c546d742330dc793972"
dependencies = [
- "bindgen 0.69.4",
+ "bindgen 0.69.5",
"cc",
"cmake",
"dunce",
@@ -577,18 +722,46 @@ dependencies = [
[[package]]
name = "axum"
-version = "0.7.6"
+version = "0.6.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
+dependencies = [
+ "async-trait",
+ "axum-core 0.3.4",
+ "bitflags 1.3.2",
+ "bytes",
+ "futures-util",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.31",
+ "itoa",
+ "matchit",
+ "memchr",
+ "mime",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustversion",
+ "serde",
+ "sync_wrapper 0.1.2",
+ "tower 0.4.13",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum"
+version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f43644eed690f5374f1af436ecd6aea01cd201f6fbdf0178adaf6907afb2cec"
+checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae"
dependencies = [
"async-trait",
- "axum-core",
+ "axum-core 0.4.5",
"bytes",
"futures-util",
"http 1.1.0",
"http-body 1.0.1",
"http-body-util",
- "hyper 1.4.1",
+ "hyper 1.5.0",
"hyper-util",
"itoa",
"matchit",
@@ -612,9 +785,26 @@ dependencies = [
[[package]]
name = "axum-core"
-version = "0.4.4"
+version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e6b8ba012a258d63c9adfa28b9ddcf66149da6f986c5b5452e629d5ee64bf00"
+checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
+dependencies = [
+ "async-trait",
+ "bytes",
+ "futures-util",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "mime",
+ "rustversion",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum-core"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199"
dependencies = [
"async-trait",
"bytes",
@@ -658,6 +848,12 @@ dependencies = [
"windows-targets 0.52.6",
]
+[[package]]
+name = "base-x"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270"
+
[[package]]
name = "base16ct"
version = "0.1.1"
@@ -711,6 +907,12 @@ dependencies = [
"regex",
]
+[[package]]
+name = "bech32"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d"
+
[[package]]
name = "beef"
version = "0.5.2"
@@ -722,9 +924,9 @@ dependencies = [
[[package]]
name = "bigdecimal"
-version = "0.4.5"
+version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51d712318a27c7150326677b321a5fa91b55f6d9034ffd67f20319e147d40cee"
+checksum = "8f850665a0385e070b64c38d2354e6c104c8479c59868d1e48a0c13ee2c7a1c1"
dependencies = [
"autocfg",
"libm",
@@ -755,19 +957,19 @@ dependencies = [
"lazycell",
"peeking_take_while",
"prettyplease",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"regex",
"rustc-hash",
"shlex",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
name = "bindgen"
-version = "0.69.4"
+version = "0.69.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
+checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088"
dependencies = [
"bitflags 2.6.0",
"cexpr",
@@ -777,20 +979,20 @@ dependencies = [
"lazycell",
"log",
"prettyplease",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"regex",
"rustc-hash",
"shlex",
- "syn 2.0.77",
+ "syn 2.0.85",
"which",
]
[[package]]
name = "bip39"
-version = "2.0.0"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f"
+checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387"
dependencies = [
"bitcoin_hashes",
"serde",
@@ -815,11 +1017,21 @@ dependencies = [
"serde",
]
+[[package]]
+name = "bitcoin-internals"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb"
+
[[package]]
name = "bitcoin_hashes"
-version = "0.11.0"
+version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4"
+checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b"
+dependencies = [
+ "bitcoin-internals",
+ "hex-conservative",
+]
[[package]]
name = "bitflags"
@@ -959,7 +1171,7 @@ name = "block_reverter"
version = "0.1.0"
dependencies = [
"anyhow",
- "clap 4.5.18",
+ "clap 4.5.20",
"serde_json",
"tokio",
"zksync_block_reverter",
@@ -986,6 +1198,18 @@ dependencies = [
"piper",
]
+[[package]]
+name = "blockstore"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7679095248a6dc7555fae81154ed1baef264383c16621ef881a219576c72a9be"
+dependencies = [
+ "cid",
+ "dashmap 6.1.0",
+ "multihash",
+ "thiserror",
+]
+
[[package]]
name = "blst"
version = "0.3.13"
@@ -1047,9 +1271,9 @@ checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b"
dependencies = [
"once_cell",
"proc-macro-crate 3.2.0",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
"syn_derive",
]
@@ -1097,7 +1321,7 @@ version = "0.6.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"syn 1.0.109",
]
@@ -1116,9 +1340,12 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
-version = "1.7.2"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3"
+checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da"
+dependencies = [
+ "serde",
+]
[[package]]
name = "bytesize"
@@ -1163,7 +1390,7 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa"
dependencies = [
"camino",
"cargo-platform",
- "semver",
+ "semver 1.0.23",
"serde",
"serde_json",
]
@@ -1176,15 +1403,105 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
[[package]]
name = "cc"
-version = "1.1.21"
+version = "1.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0"
+checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f"
dependencies = [
"jobserver",
"libc",
"shlex",
]
+[[package]]
+name = "celestia-proto"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6eb26c852e42015f85f3aed5c3d1472c751b143e2199d0401ebac2f4500b20d"
+dependencies = [
+ "celestia-tendermint-proto",
+ "prost 0.12.6",
+ "prost-build",
+ "prost-types",
+ "protox 0.6.1",
+ "serde",
+]
+
+[[package]]
+name = "celestia-tendermint"
+version = "0.32.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce8c92a01145f79a0f3ac7c44a43a9b5ee58e8a4c716b56d98833a3848db1afd"
+dependencies = [
+ "bytes",
+ "celestia-tendermint-proto",
+ "digest 0.10.7",
+ "ed25519",
+ "ed25519-consensus",
+ "flex-error",
+ "futures 0.3.31",
+ "num-traits",
+ "once_cell",
+ "prost 0.12.6",
+ "prost-types",
+ "serde",
+ "serde_bytes",
+ "serde_json",
+ "serde_repr",
+ "sha2 0.10.8",
+ "signature 2.2.0",
+ "subtle",
+ "subtle-encoding",
+ "time",
+ "zeroize",
+]
+
+[[package]]
+name = "celestia-tendermint-proto"
+version = "0.32.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a95746c5221a74d7b913a415fdbb9e7c90e1b4d818dbbff59bddc034cfce2ec"
+dependencies = [
+ "bytes",
+ "flex-error",
+ "num-derive 0.3.3",
+ "num-traits",
+ "prost 0.12.6",
+ "prost-types",
+ "serde",
+ "serde_bytes",
+ "subtle-encoding",
+ "time",
+]
+
+[[package]]
+name = "celestia-types"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "caf52cc4b4cdf73fc07d9eeaea6d27bb39eed81f4bf8c89f01df86ace4e6da10"
+dependencies = [
+ "base64 0.22.1",
+ "bech32",
+ "blockstore",
+ "bytes",
+ "celestia-proto",
+ "celestia-tendermint",
+ "celestia-tendermint-proto",
+ "cid",
+ "const_format",
+ "enum_dispatch",
+ "leopard-codec",
+ "libp2p-identity",
+ "multiaddr",
+ "multihash",
+ "nmt-rs",
+ "ruint",
+ "serde",
+ "serde_repr",
+ "sha2 0.10.8",
+ "thiserror",
+ "time",
+]
+
[[package]]
name = "cesu8"
version = "1.1.0"
@@ -1278,6 +1595,18 @@ dependencies = [
"half",
]
+[[package]]
+name = "cid"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3147d8272e8fa0ccd29ce51194dd98f79ddfb8191ba9e3409884e751798acf3a"
+dependencies = [
+ "core2",
+ "multibase",
+ "multihash",
+ "unsigned-varint",
+]
+
[[package]]
name = "cipher"
version = "0.4.4"
@@ -1327,14 +1656,14 @@ dependencies = [
[[package]]
name = "circuit_encodings"
-version = "0.150.6"
+version = "0.150.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5128d4b8fbb27ac453f573a95601058e74487bdafd22a3168cded66bf340c28"
+checksum = "2501cc688ef391013019495ae7035cfd54f86987e36d10f73976ce4c5d413c5a"
dependencies = [
"derivative",
"serde",
- "zk_evm 0.150.6",
- "zkevm_circuits 0.150.6",
+ "zk_evm 0.150.7",
+ "zkevm_circuits 0.150.7",
]
[[package]]
@@ -1394,11 +1723,11 @@ dependencies = [
[[package]]
name = "circuit_sequencer_api"
-version = "0.150.6"
+version = "0.150.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "093d0c2c0b39144ddb4e1e88d73d95067ce34ec7750808b2eed01edbb510b88e"
+checksum = "917d27db531fdd98a51e42ea465bc097f48cc849e7fad68d7856087d15125be1"
dependencies = [
- "circuit_encodings 0.150.6",
+ "circuit_encodings 0.150.7",
"derivative",
"rayon",
"serde",
@@ -1445,9 +1774,9 @@ dependencies = [
[[package]]
name = "clap"
-version = "4.5.18"
+version = "4.5.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3"
+checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8"
dependencies = [
"clap_builder",
"clap_derive",
@@ -1455,14 +1784,15 @@ dependencies = [
[[package]]
name = "clap_builder"
-version = "4.5.18"
+version = "4.5.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b"
+checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54"
dependencies = [
"anstream",
"anstyle",
"clap_lex 0.7.2",
"strsim 0.11.1",
+ "terminal_size",
]
[[package]]
@@ -1472,9 +1802,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab"
dependencies = [
"heck 0.5.0",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -1512,9 +1842,9 @@ dependencies = [
[[package]]
name = "colorchoice"
-version = "1.0.2"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
+checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
[[package]]
name = "combine"
@@ -1583,7 +1913,7 @@ version = "0.2.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eff1a44b93f47b1bac19a27932f5c591e43d1ba357ee4f61526c8a25603f0eb1"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"unicode-xid 0.2.6",
]
@@ -1631,6 +1961,15 @@ 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.14"
@@ -1814,7 +2153,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f"
dependencies = [
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -1847,7 +2186,7 @@ dependencies = [
"curve25519-dalek-derive",
"digest 0.10.7",
"fiat-crypto",
- "rustc_version",
+ "rustc_version 0.4.1",
"subtle",
"zeroize",
]
@@ -1858,9 +2197,22 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
+]
+
+[[package]]
+name = "curve25519-dalek-ng"
+version = "4.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8"
+dependencies = [
+ "byteorder",
+ "digest 0.9.0",
+ "rand_core 0.6.4",
+ "subtle-ng",
+ "zeroize",
]
[[package]]
@@ -1901,7 +2253,7 @@ checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
dependencies = [
"fnv",
"ident_case",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"strsim 0.10.0",
"syn 1.0.109",
@@ -1915,7 +2267,7 @@ checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
dependencies = [
"fnv",
"ident_case",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"strsim 0.10.0",
"syn 1.0.109",
@@ -1929,10 +2281,10 @@ checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
dependencies = [
"fnv",
"ident_case",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"strsim 0.11.1",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -1965,7 +2317,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
dependencies = [
"darling_core 0.20.10",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -1981,6 +2333,46 @@ dependencies = [
"parking_lot_core",
]
+[[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 = "data-encoding"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
+
+[[package]]
+name = "data-encoding-macro"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639"
+dependencies = [
+ "data-encoding",
+ "data-encoding-macro-internal",
+]
+
+[[package]]
+name = "data-encoding-macro-internal"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f"
+dependencies = [
+ "data-encoding",
+ "syn 1.0.109",
+]
+
[[package]]
name = "debugid"
version = "0.8.0"
@@ -2028,7 +2420,7 @@ version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"syn 1.0.109",
]
@@ -2040,10 +2432,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce"
dependencies = [
"convert_case 0.4.0",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "rustc_version",
- "syn 2.0.77",
+ "rustc_version 0.4.1",
+ "syn 2.0.85",
]
[[package]]
@@ -2061,9 +2453,9 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
"unicode-xid 0.2.6",
]
@@ -2175,6 +2567,19 @@ dependencies = [
"signature 2.2.0",
]
+[[package]]
+name = "ed25519-consensus"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b"
+dependencies = [
+ "curve25519-dalek-ng",
+ "hex",
+ "rand_core 0.6.4",
+ "sha2 0.9.9",
+ "zeroize",
+]
+
[[package]]
name = "ed25519-dalek"
version = "2.1.1"
@@ -2280,9 +2685,9 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
[[package]]
name = "encoding_rs"
-version = "0.8.34"
+version = "0.8.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
+checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
dependencies = [
"cfg-if",
]
@@ -2294,9 +2699,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd"
dependencies = [
"once_cell",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -2446,12 +2851,33 @@ dependencies = [
"pin-project-lite",
]
+[[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 = "fastrand"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
+[[package]]
+name = "fastrlp"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418"
+dependencies = [
+ "arrayvec 0.7.6",
+ "auto_impl",
+ "bytes",
+]
+
[[package]]
name = "ff"
version = "0.12.1"
@@ -2524,11 +2950,21 @@ dependencies = [
"miniz_oxide",
]
+[[package]]
+name = "flex-error"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c606d892c9de11507fa0dcffc116434f94e105d0bbdc4e405b61519464c49d7b"
+dependencies = [
+ "eyre",
+ "paste",
+]
+
[[package]]
name = "flume"
-version = "0.11.0"
+version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
+checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095"
dependencies = [
"futures-core",
"futures-sink",
@@ -2541,6 +2977,12 @@ version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+[[package]]
+name = "foldhash"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2"
+
[[package]]
name = "foreign-types"
version = "0.3.2"
@@ -2618,7 +3060,7 @@ dependencies = [
"itertools 0.10.5",
"lazy_static",
"num-bigint 0.4.6",
- "num-derive",
+ "num-derive 0.2.5",
"num-integer",
"num-traits",
"rand 0.4.6",
@@ -2657,9 +3099,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678"
[[package]]
name = "futures"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
dependencies = [
"futures-channel",
"futures-core",
@@ -2672,9 +3114,9 @@ dependencies = [
[[package]]
name = "futures-channel"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
dependencies = [
"futures-core",
"futures-sink",
@@ -2682,15 +3124,15 @@ dependencies = [
[[package]]
name = "futures-core"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
[[package]]
name = "futures-executor"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"
dependencies = [
"futures-core",
"futures-task",
@@ -2711,9 +3153,9 @@ dependencies = [
[[package]]
name = "futures-io"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
[[package]]
name = "futures-lite"
@@ -2730,26 +3172,26 @@ dependencies = [
[[package]]
name = "futures-macro"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
name = "futures-sink"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
[[package]]
name = "futures-task"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
[[package]]
name = "futures-timer"
@@ -2763,9 +3205,9 @@ dependencies = [
[[package]]
name = "futures-util"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
dependencies = [
"futures 0.1.31",
"futures-channel",
@@ -2796,8 +3238,8 @@ name = "genesis_generator"
version = "0.1.0"
dependencies = [
"anyhow",
- "clap 4.5.18",
- "futures 0.3.30",
+ "clap 4.5.20",
+ "futures 0.3.31",
"serde",
"serde_json",
"serde_yaml",
@@ -2850,9 +3292,9 @@ dependencies = [
[[package]]
name = "gimli"
-version = "0.31.0"
+version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64"
+checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
[[package]]
name = "glob"
@@ -2930,7 +3372,7 @@ dependencies = [
"google-cloud-token",
"home",
"jsonwebtoken",
- "reqwest 0.12.7",
+ "reqwest 0.12.9",
"serde",
"serde_json",
"thiserror",
@@ -2946,7 +3388,7 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04f945a208886a13d07636f38fb978da371d0abc3e34bad338124b9f8c135a8f"
dependencies = [
- "reqwest 0.12.7",
+ "reqwest 0.12.9",
"thiserror",
"tokio",
]
@@ -2971,7 +3413,7 @@ dependencies = [
"percent-encoding",
"pkcs8 0.10.2",
"regex",
- "reqwest 0.12.7",
+ "reqwest 0.12.9",
"reqwest-middleware",
"ring",
"serde",
@@ -2999,8 +3441,8 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19775995ee20209163239355bc3ad2f33f83da35d9ef72dea26e5af753552c87"
dependencies = [
- "dashmap",
- "futures 0.3.30",
+ "dashmap 5.5.3",
+ "futures 0.3.31",
"futures-timer",
"no-std-compat",
"nonzero_ext",
@@ -3044,7 +3486,7 @@ dependencies = [
"futures-sink",
"futures-util",
"http 0.2.12",
- "indexmap 2.5.0",
+ "indexmap 2.6.0",
"slab",
"tokio",
"tokio-util",
@@ -3063,7 +3505,7 @@ dependencies = [
"futures-core",
"futures-sink",
"http 1.1.0",
- "indexmap 2.5.0",
+ "indexmap 2.6.0",
"slab",
"tokio",
"tokio-util",
@@ -3114,6 +3556,17 @@ dependencies = [
"serde",
]
+[[package]]
+name = "hashbrown"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb"
+dependencies = [
+ "allocator-api2",
+ "equivalent",
+ "foldhash",
+]
+
[[package]]
name = "hashlink"
version = "0.9.1"
@@ -3171,6 +3624,12 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+[[package]]
+name = "hex-conservative"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20"
+
[[package]]
name = "hkdf"
version = "0.12.4"
@@ -3288,9 +3747,9 @@ dependencies = [
[[package]]
name = "httparse"
-version = "1.9.4"
+version = "1.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9"
+checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946"
[[package]]
name = "httpdate"
@@ -3313,7 +3772,7 @@ dependencies = [
"crossbeam-utils",
"form_urlencoded",
"futures-util",
- "hyper 0.14.30",
+ "hyper 0.14.31",
"lazy_static",
"levenshtein",
"log",
@@ -3334,9 +3793,9 @@ checksum = "f58b778a5761513caf593693f8951c97a5b610841e754788400f32102eefdff1"
[[package]]
name = "hyper"
-version = "0.14.30"
+version = "0.14.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9"
+checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85"
dependencies = [
"bytes",
"futures-channel",
@@ -3358,9 +3817,9 @@ dependencies = [
[[package]]
name = "hyper"
-version = "1.4.1"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05"
+checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a"
dependencies = [
"bytes",
"futures-channel",
@@ -3385,7 +3844,7 @@ checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
dependencies = [
"futures-util",
"http 0.2.12",
- "hyper 0.14.30",
+ "hyper 0.14.31",
"log",
"rustls 0.21.12",
"rustls-native-certs 0.6.3",
@@ -3401,23 +3860,35 @@ checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333"
dependencies = [
"futures-util",
"http 1.1.0",
- "hyper 1.4.1",
+ "hyper 1.5.0",
"hyper-util",
"log",
- "rustls 0.23.13",
+ "rustls 0.23.16",
"rustls-pki-types",
"tokio",
"tokio-rustls 0.26.0",
"tower-service",
]
+[[package]]
+name = "hyper-timeout"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
+dependencies = [
+ "hyper 0.14.31",
+ "pin-project-lite",
+ "tokio",
+ "tokio-io-timeout",
+]
+
[[package]]
name = "hyper-timeout"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793"
dependencies = [
- "hyper 1.4.1",
+ "hyper 1.5.0",
"hyper-util",
"pin-project-lite",
"tokio",
@@ -3431,7 +3902,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
dependencies = [
"bytes",
- "hyper 0.14.30",
+ "hyper 0.14.31",
"native-tls",
"tokio",
"tokio-native-tls",
@@ -3445,7 +3916,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0"
dependencies = [
"bytes",
"http-body-util",
- "hyper 1.4.1",
+ "hyper 1.5.0",
"hyper-util",
"native-tls",
"tokio",
@@ -3455,16 +3926,16 @@ dependencies = [
[[package]]
name = "hyper-util"
-version = "0.1.9"
+version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b"
+checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4"
dependencies = [
"bytes",
"futures-channel",
"futures-util",
"http 1.1.0",
"http-body 1.0.1",
- "hyper 1.4.1",
+ "hyper 1.5.0",
"pin-project-lite",
"socket2",
"tokio",
@@ -3472,12 +3943,6 @@ dependencies = [
"tracing",
]
-[[package]]
-name = "iai"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71a816c97c42258aa5834d07590b718b4c9a598944cd39a52dc25b351185d678"
-
[[package]]
name = "iana-time-zone"
version = "0.1.61"
@@ -3564,11 +4029,17 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"syn 1.0.109",
]
+[[package]]
+name = "indenter"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
+
[[package]]
name = "indexmap"
version = "1.9.3"
@@ -3581,12 +4052,12 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "2.5.0"
+version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
+checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da"
dependencies = [
"equivalent",
- "hashbrown 0.14.5",
+ "hashbrown 0.15.0",
]
[[package]]
@@ -3606,9 +4077,9 @@ dependencies = [
[[package]]
name = "insta"
-version = "1.40.0"
+version = "1.41.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6593a41c7a73841868772495db7dc1e8ecab43bb5c0b6da2059246c4b506ab60"
+checksum = "a1f72d3e19488cf7d8ea52d2fc0f8754fc933398b337cd3cbdb28aaeb35159ef"
dependencies = [
"console",
"lazy_static",
@@ -3628,9 +4099,9 @@ dependencies = [
[[package]]
name = "ipnet"
-version = "2.10.0"
+version = "2.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4"
+checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708"
[[package]]
name = "ipnetwork"
@@ -3720,9 +4191,9 @@ dependencies = [
[[package]]
name = "js-sys"
-version = "0.3.70"
+version = "0.3.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
+checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9"
dependencies = [
"wasm-bindgen",
]
@@ -3791,7 +4262,7 @@ dependencies = [
"http 1.1.0",
"jsonrpsee-core 0.23.2",
"pin-project",
- "rustls 0.23.13",
+ "rustls 0.23.16",
"rustls-pki-types",
"rustls-platform-verifier",
"soketto 0.8.0",
@@ -3815,7 +4286,7 @@ dependencies = [
"beef",
"futures-timer",
"futures-util",
- "hyper 0.14.30",
+ "hyper 0.14.31",
"jsonrpsee-types 0.21.0",
"pin-project",
"rustc-hash",
@@ -3863,7 +4334,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78b7de9f3219d95985eb77fd03194d7c1b56c19bce1abfcc9d07462574b15572"
dependencies = [
"async-trait",
- "hyper 0.14.30",
+ "hyper 0.14.31",
"hyper-rustls 0.24.2",
"jsonrpsee-core 0.21.0",
"jsonrpsee-types 0.21.0",
@@ -3885,12 +4356,12 @@ dependencies = [
"async-trait",
"base64 0.22.1",
"http-body 1.0.1",
- "hyper 1.4.1",
+ "hyper 1.5.0",
"hyper-rustls 0.27.3",
"hyper-util",
"jsonrpsee-core 0.23.2",
"jsonrpsee-types 0.23.2",
- "rustls 0.23.13",
+ "rustls 0.23.16",
"rustls-platform-verifier",
"serde",
"serde_json",
@@ -3909,9 +4380,9 @@ checksum = "7895f186d5921065d96e16bd795e5ca89ac8356ec423fafc6e3d7cf8ec11aee4"
dependencies = [
"heck 0.5.0",
"proc-macro-crate 3.2.0",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -3925,7 +4396,7 @@ dependencies = [
"http 1.1.0",
"http-body 1.0.1",
"http-body-util",
- "hyper 1.4.1",
+ "hyper 1.5.0",
"hyper-util",
"jsonrpsee-core 0.23.2",
"jsonrpsee-types 0.23.2",
@@ -4065,7 +4536,7 @@ dependencies = [
"petgraph",
"pico-args",
"regex",
- "regex-syntax 0.8.4",
+ "regex-syntax 0.8.5",
"string_cache",
"term",
"tiny-keccak 2.0.2",
@@ -4079,7 +4550,7 @@ version = "0.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553"
dependencies = [
- "regex-automata 0.4.7",
+ "regex-automata 0.4.8",
]
[[package]]
@@ -4103,6 +4574,17 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
+[[package]]
+name = "leopard-codec"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee58dbc414bd23885d7da915e0457618b36d1fc950a6169ef2cb29829d1b1a1d"
+dependencies = [
+ "bytes",
+ "lazy_static",
+ "thiserror",
+]
+
[[package]]
name = "levenshtein"
version = "1.0.5"
@@ -4111,9 +4593,9 @@ checksum = "db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760"
[[package]]
name = "libc"
-version = "0.2.159"
+version = "0.2.161"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
+checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1"
[[package]]
name = "libloading"
@@ -4127,9 +4609,24 @@ dependencies = [
[[package]]
name = "libm"
-version = "0.2.8"
+version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa"
+
+[[package]]
+name = "libp2p-identity"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55cca1eb2bc1fd29f099f3daaab7effd01e1a54b7c577d0ed082521034d912e8"
+dependencies = [
+ "bs58",
+ "hkdf",
+ "multihash",
+ "quick-protobuf",
+ "sha2 0.10.8",
+ "thiserror",
+ "tracing",
+]
[[package]]
name = "libredox"
@@ -4246,13 +4743,13 @@ dependencies = [
"anyhow",
"async-trait",
"envy",
- "futures 0.3.30",
+ "futures 0.3.31",
"hex",
"num",
"once_cell",
"rand 0.8.5",
"regex",
- "reqwest 0.12.7",
+ "reqwest 0.12.9",
"serde",
"serde_json",
"static_assertions",
@@ -4296,7 +4793,16 @@ version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c000ca4d908ff18ac99b93a062cb8958d331c3220719c52e77cb19cc6ac5d2c1"
dependencies = [
- "logos-derive",
+ "logos-derive 0.13.0",
+]
+
+[[package]]
+name = "logos"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c6b6e02facda28ca5fb8dbe4b152496ba3b1bd5a4b40bb2b1b2d8ad74e0f39b"
+dependencies = [
+ "logos-derive 0.14.2",
]
[[package]]
@@ -4307,10 +4813,25 @@ checksum = "dc487311295e0002e452025d6b580b77bb17286de87b57138f3b5db711cded68"
dependencies = [
"beef",
"fnv",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"regex-syntax 0.6.29",
- "syn 2.0.77",
+ "syn 2.0.85",
+]
+
+[[package]]
+name = "logos-codegen"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b32eb6b5f26efacd015b000bfc562186472cd9b34bdba3f6b264e2a052676d10"
+dependencies = [
+ "beef",
+ "fnv",
+ "lazy_static",
+ "proc-macro2 1.0.89",
+ "quote 1.0.37",
+ "regex-syntax 0.8.5",
+ "syn 2.0.85",
]
[[package]]
@@ -4319,16 +4840,25 @@ version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbfc0d229f1f42d790440136d941afd806bc9e949e2bcb8faa813b0f00d1267e"
dependencies = [
- "logos-codegen",
+ "logos-codegen 0.13.0",
+]
+
+[[package]]
+name = "logos-derive"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e5d0c5463c911ef55624739fc353238b4e310f0144be1f875dc42fec6bfd5ec"
+dependencies = [
+ "logos-codegen 0.14.2",
]
[[package]]
name = "lru"
-version = "0.12.4"
+version = "0.12.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904"
+checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38"
dependencies = [
- "hashbrown 0.14.5",
+ "hashbrown 0.15.0",
]
[[package]]
@@ -4392,7 +4922,7 @@ name = "merkle_tree_consistency_checker"
version = "0.1.0"
dependencies = [
"anyhow",
- "clap 4.5.18",
+ "clap 4.5.20",
"tracing",
"zksync_config",
"zksync_env_config",
@@ -4420,21 +4950,44 @@ version = "5.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59bb584eaeeab6bd0226ccf3509a69d7936d148cf3d036ad350abe35e8c6856e"
dependencies = [
- "miette-derive",
+ "miette-derive 5.10.0",
"once_cell",
"thiserror",
"unicode-width",
]
+[[package]]
+name = "miette"
+version = "7.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4edc8853320c2a0dab800fbda86253c8938f6ea88510dc92c5f1ed20e794afc1"
+dependencies = [
+ "cfg-if",
+ "miette-derive 7.2.0",
+ "thiserror",
+ "unicode-width",
+]
+
[[package]]
name = "miette-derive"
version = "5.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
+]
+
+[[package]]
+name = "miette-derive"
+version = "7.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c"
+dependencies = [
+ "proc-macro2 1.0.89",
+ "quote 1.0.37",
+ "syn 2.0.85",
]
[[package]]
@@ -4461,7 +5014,7 @@ checksum = "c325dfab65f261f386debee8b0969da215b3fa0037e74c8a1234db7ba986d803"
dependencies = [
"crossbeam-channel",
"crossbeam-utils",
- "dashmap",
+ "dashmap 5.5.3",
"skeptic",
"smallvec",
"tagptr",
@@ -4518,6 +5071,46 @@ dependencies = [
"version_check",
]
+[[package]]
+name = "multiaddr"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961"
+dependencies = [
+ "arrayref",
+ "byteorder",
+ "data-encoding",
+ "libp2p-identity",
+ "multibase",
+ "multihash",
+ "percent-encoding",
+ "serde",
+ "static_assertions",
+ "unsigned-varint",
+ "url",
+]
+
+[[package]]
+name = "multibase"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404"
+dependencies = [
+ "base-x",
+ "data-encoding",
+ "data-encoding-macro",
+]
+
+[[package]]
+name = "multihash"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc41f430805af9d1cf4adae4ed2149c759b877b01d909a1f40256188d09345d2"
+dependencies = [
+ "core2",
+ "unsigned-varint",
+]
+
[[package]]
name = "multimap"
version = "0.10.0"
@@ -4559,6 +5152,18 @@ dependencies = [
"libc",
]
+[[package]]
+name = "nmt-rs"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e408e823bdc9b4bb525a61b44e846239833a8f9bd86c03a43e4ca314a5497582"
+dependencies = [
+ "borsh",
+ "bytes",
+ "serde",
+ "sha2 0.10.8",
+]
+
[[package]]
name = "no-std-compat"
version = "0.4.1"
@@ -4676,11 +5281,22 @@ checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
name = "num-derive"
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eafd0b45c5537c3ba526f79d3e75120036502bebacbb3f3220914067ce39dbf2"
+checksum = "eafd0b45c5537c3ba526f79d3e75120036502bebacbb3f3220914067ce39dbf2"
+dependencies = [
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "syn 0.15.44",
+]
+
+[[package]]
+name = "num-derive"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
dependencies = [
- "proc-macro2 0.4.30",
- "quote 0.6.13",
- "syn 0.15.44",
+ "proc-macro2 1.0.89",
+ "quote 1.0.37",
+ "syn 1.0.109",
]
[[package]]
@@ -4770,9 +5386,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6"
dependencies = [
"proc-macro-crate 1.3.1",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -4782,25 +5398,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56"
dependencies = [
"proc-macro-crate 3.2.0",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
name = "object"
-version = "0.36.4"
+version = "0.36.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a"
+checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e"
dependencies = [
"memchr",
]
[[package]]
name = "once_cell"
-version = "1.19.0"
+version = "1.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
[[package]]
name = "oorandom"
@@ -4816,9 +5432,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
[[package]]
name = "openssl"
-version = "0.10.66"
+version = "0.10.68"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1"
+checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5"
dependencies = [
"bitflags 2.6.0",
"cfg-if",
@@ -4835,9 +5451,9 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -4848,9 +5464,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
[[package]]
name = "openssl-sys"
-version = "0.9.103"
+version = "0.9.104"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6"
+checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741"
dependencies = [
"cc",
"libc",
@@ -4894,7 +5510,7 @@ dependencies = [
"bytes",
"http 1.1.0",
"opentelemetry",
- "reqwest 0.12.7",
+ "reqwest 0.12.9",
]
[[package]]
@@ -4911,10 +5527,10 @@ dependencies = [
"opentelemetry-proto",
"opentelemetry_sdk",
"prost 0.13.3",
- "reqwest 0.12.7",
+ "reqwest 0.12.9",
"thiserror",
"tokio",
- "tonic",
+ "tonic 0.12.3",
]
[[package]]
@@ -4926,7 +5542,7 @@ dependencies = [
"opentelemetry",
"opentelemetry_sdk",
"prost 0.13.3",
- "tonic",
+ "tonic 0.12.3",
]
[[package]]
@@ -5021,7 +5637,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c"
dependencies = [
"proc-macro-crate 3.2.0",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"syn 1.0.109",
]
@@ -5061,6 +5677,43 @@ version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
+[[package]]
+name = "pbjson"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1030c719b0ec2a2d25a5df729d6cff1acf3cc230bf766f4f97833591f7577b90"
+dependencies = [
+ "base64 0.21.7",
+ "serde",
+]
+
+[[package]]
+name = "pbjson-build"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2580e33f2292d34be285c5bc3dba5259542b083cfad6037b6d70345f24dcb735"
+dependencies = [
+ "heck 0.4.1",
+ "itertools 0.11.0",
+ "prost 0.12.6",
+ "prost-types",
+]
+
+[[package]]
+name = "pbjson-types"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18f596653ba4ac51bdecbb4ef6773bc7f56042dc13927910de1684ad3d32aa12"
+dependencies = [
+ "bytes",
+ "chrono",
+ "pbjson",
+ "pbjson-build",
+ "prost 0.12.6",
+ "prost-build",
+ "serde",
+]
+
[[package]]
name = "pbkdf2"
version = "0.12.2"
@@ -5103,9 +5756,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]]
name = "pest"
-version = "2.7.13"
+version = "2.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9"
+checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442"
dependencies = [
"memchr",
"thiserror",
@@ -5114,9 +5767,9 @@ dependencies = [
[[package]]
name = "pest_derive"
-version = "2.7.13"
+version = "2.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d3a6e3394ec80feb3b6393c725571754c6188490265c61aaf260810d6b95aa0"
+checksum = "d214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd"
dependencies = [
"pest",
"pest_generator",
@@ -5124,22 +5777,22 @@ dependencies = [
[[package]]
name = "pest_generator"
-version = "2.7.13"
+version = "2.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94429506bde1ca69d1b5601962c73f4172ab4726571a59ea95931218cb0e930e"
+checksum = "eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e"
dependencies = [
"pest",
"pest_meta",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
name = "pest_meta"
-version = "2.7.13"
+version = "2.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac8a071862e93690b6e34e9a5fb8e33ff3734473ac0245b27232222c4906a33f"
+checksum = "b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d"
dependencies = [
"once_cell",
"pest",
@@ -5153,7 +5806,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
dependencies = [
"fixedbitset",
- "indexmap 2.5.0",
+ "indexmap 2.6.0",
]
[[package]]
@@ -5173,29 +5826,29 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
[[package]]
name = "pin-project"
-version = "1.1.5"
+version = "1.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
+checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
-version = "1.1.5"
+version = "1.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
+checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
name = "pin-project-lite"
-version = "0.2.14"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff"
[[package]]
name = "pin-utils"
@@ -5350,12 +6003,12 @@ dependencies = [
[[package]]
name = "prettyplease"
-version = "0.2.22"
+version = "0.2.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba"
+checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033"
dependencies = [
- "proc-macro2 1.0.86",
- "syn 2.0.77",
+ "proc-macro2 1.0.89",
+ "syn 2.0.85",
]
[[package]]
@@ -5407,7 +6060,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"syn 1.0.109",
"version_check",
@@ -5419,7 +6072,7 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"version_check",
]
@@ -5441,9 +6094,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.86"
+version = "1.0.89"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
+checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
dependencies = [
"unicode-ident",
]
@@ -5466,9 +6119,25 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
+]
+
+[[package]]
+name = "proptest"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d"
+dependencies = [
+ "bitflags 2.6.0",
+ "lazy_static",
+ "num-traits",
+ "rand 0.8.5",
+ "rand_chacha",
+ "rand_xorshift",
+ "regex-syntax 0.8.5",
+ "unarray",
]
[[package]]
@@ -5508,7 +6177,7 @@ dependencies = [
"prost 0.12.6",
"prost-types",
"regex",
- "syn 2.0.77",
+ "syn 2.0.85",
"tempfile",
]
@@ -5520,9 +6189,9 @@ checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
dependencies = [
"anyhow",
"itertools 0.12.1",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -5533,9 +6202,9 @@ checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5"
dependencies = [
"anyhow",
"itertools 0.13.0",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -5545,8 +6214,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "057237efdb71cf4b3f9396302a3d6599a92fa94063ba537b66130980ea9909f3"
dependencies = [
"base64 0.21.7",
- "logos",
- "miette",
+ "logos 0.13.0",
+ "miette 5.10.0",
"once_cell",
"prost 0.12.6",
"prost-types",
@@ -5554,6 +6223,19 @@ dependencies = [
"serde-value",
]
+[[package]]
+name = "prost-reflect"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f5eec97d5d34bdd17ad2db2219aabf46b054c6c41bd5529767c9ce55be5898f"
+dependencies = [
+ "logos 0.14.2",
+ "miette 7.2.0",
+ "once_cell",
+ "prost 0.12.6",
+ "prost-types",
+]
+
[[package]]
name = "prost-types"
version = "0.12.6"
@@ -5570,11 +6252,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00bb76c5f6221de491fe2c8f39b106330bbd9762c6511119c07940e10eb9ff11"
dependencies = [
"bytes",
- "miette",
+ "miette 5.10.0",
+ "prost 0.12.6",
+ "prost-reflect 0.12.0",
+ "prost-types",
+ "protox-parse 0.5.0",
+ "thiserror",
+]
+
+[[package]]
+name = "protox"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac532509cee918d40f38c3e12f8ef9230f215f017d54de7dd975015538a42ce7"
+dependencies = [
+ "bytes",
+ "miette 7.2.0",
"prost 0.12.6",
- "prost-reflect",
+ "prost-reflect 0.13.1",
"prost-types",
- "protox-parse",
+ "protox-parse 0.6.1",
"thiserror",
]
@@ -5584,8 +6281,20 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b4581f441c58863525a3e6bec7b8de98188cf75239a56c725a3e7288450a33f"
dependencies = [
- "logos",
- "miette",
+ "logos 0.13.0",
+ "miette 5.10.0",
+ "prost-types",
+ "thiserror",
+]
+
+[[package]]
+name = "protox-parse"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f6c33f43516fe397e2f930779d720ca12cd057f7da4cd6326a0ef78d69dee96"
+dependencies = [
+ "logos 0.14.2",
+ "miette 7.2.0",
"prost-types",
"thiserror",
]
@@ -5605,7 +6314,7 @@ version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"syn 1.0.109",
]
@@ -5667,7 +6376,7 @@ version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
]
[[package]]
@@ -5734,6 +6443,15 @@ dependencies = [
"getrandom",
]
+[[package]]
+name = "rand_xorshift"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
+dependencies = [
+ "rand_core 0.6.4",
+]
+
[[package]]
name = "rand_xoshiro"
version = "0.6.0"
@@ -5783,9 +6501,9 @@ dependencies = [
[[package]]
name = "redox_syscall"
-version = "0.5.6"
+version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "355ae415ccd3a04315d3f8246e86d67689ea74d88d915576e1589a351062a13b"
+checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f"
dependencies = [
"bitflags 2.6.0",
]
@@ -5803,14 +6521,14 @@ dependencies = [
[[package]]
name = "regex"
-version = "1.10.6"
+version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
+checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
dependencies = [
"aho-corasick",
"memchr",
- "regex-automata 0.4.7",
- "regex-syntax 0.8.4",
+ "regex-automata 0.4.8",
+ "regex-syntax 0.8.5",
]
[[package]]
@@ -5824,13 +6542,13 @@ dependencies = [
[[package]]
name = "regex-automata"
-version = "0.4.7"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
+checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3"
dependencies = [
"aho-corasick",
"memchr",
- "regex-syntax 0.8.4",
+ "regex-syntax 0.8.5",
]
[[package]]
@@ -5841,9 +6559,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
[[package]]
name = "regex-syntax"
-version = "0.8.4"
+version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
+checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]]
name = "rend"
@@ -5868,7 +6586,7 @@ dependencies = [
"h2 0.3.26",
"http 0.2.12",
"http-body 0.4.6",
- "hyper 0.14.30",
+ "hyper 0.14.31",
"hyper-tls 0.5.0",
"ipnet",
"js-sys",
@@ -5896,9 +6614,9 @@ dependencies = [
[[package]]
name = "reqwest"
-version = "0.12.7"
+version = "0.12.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63"
+checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f"
dependencies = [
"async-compression",
"base64 0.22.1",
@@ -5911,7 +6629,7 @@ dependencies = [
"http 1.1.0",
"http-body 1.0.1",
"http-body-util",
- "hyper 1.4.1",
+ "hyper 1.5.0",
"hyper-rustls 0.27.3",
"hyper-tls 0.6.0",
"hyper-util",
@@ -5924,7 +6642,7 @@ dependencies = [
"once_cell",
"percent-encoding",
"pin-project-lite",
- "rustls-pemfile 2.1.3",
+ "rustls-pemfile 2.2.0",
"serde",
"serde_json",
"serde_urlencoded",
@@ -5951,7 +6669,7 @@ dependencies = [
"anyhow",
"async-trait",
"http 1.1.0",
- "reqwest 0.12.7",
+ "reqwest 0.12.9",
"serde",
"thiserror",
"tower-service",
@@ -6018,6 +6736,15 @@ dependencies = [
"windows-sys 0.52.0",
]
+[[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.7.45"
@@ -6042,7 +6769,7 @@ version = "0.7.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"syn 1.0.109",
]
@@ -6093,6 +6820,36 @@ dependencies = [
"zeroize",
]
+[[package]]
+name = "ruint"
+version = "1.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286"
+dependencies = [
+ "alloy-rlp",
+ "ark-ff 0.3.0",
+ "ark-ff 0.4.2",
+ "bytes",
+ "fastrlp",
+ "num-bigint 0.4.6",
+ "num-traits",
+ "parity-scale-codec",
+ "primitive-types",
+ "proptest",
+ "rand 0.8.5",
+ "rlp",
+ "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 = "rust_decimal"
version = "1.36.0"
@@ -6127,20 +6884,29 @@ 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",
+ "semver 1.0.23",
]
[[package]]
name = "rustix"
-version = "0.38.37"
+version = "0.38.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
+checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a"
dependencies = [
"bitflags 2.6.0",
"errno",
@@ -6177,9 +6943,9 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.23.13"
+version = "0.23.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8"
+checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e"
dependencies = [
"aws-lc-rs",
"log",
@@ -6210,7 +6976,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5"
dependencies = [
"openssl-probe",
- "rustls-pemfile 2.1.3",
+ "rustls-pemfile 2.2.0",
"rustls-pki-types",
"schannel",
"security-framework",
@@ -6227,19 +6993,18 @@ dependencies = [
[[package]]
name = "rustls-pemfile"
-version = "2.1.3"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425"
+checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50"
dependencies = [
- "base64 0.22.1",
"rustls-pki-types",
]
[[package]]
name = "rustls-pki-types"
-version = "1.8.0"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0"
+checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b"
[[package]]
name = "rustls-platform-verifier"
@@ -6252,7 +7017,7 @@ dependencies = [
"jni",
"log",
"once_cell",
- "rustls 0.23.13",
+ "rustls 0.23.16",
"rustls-native-certs 0.7.3",
"rustls-platform-verifier-android",
"rustls-webpki 0.102.8",
@@ -6292,9 +7057,9 @@ dependencies = [
[[package]]
name = "rustversion"
-version = "1.0.17"
+version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
+checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248"
[[package]]
name = "ruzstd"
@@ -6356,7 +7121,7 @@ checksum = "d3475108a1b62c7efd1b5c65974f30109a598b2f45f23c9ae030acb9686966db"
dependencies = [
"darling 0.14.4",
"proc-macro-crate 1.3.1",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"syn 1.0.109",
]
@@ -6384,20 +7149,20 @@ checksum = "995491f110efdc6bea96d6a746140e32bfceb4ea47510750a5467295a4707a25"
dependencies = [
"darling 0.14.4",
"proc-macro-crate 1.3.1",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"syn 1.0.109",
]
[[package]]
name = "scale-info"
-version = "2.11.3"
+version = "2.11.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024"
+checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b"
dependencies = [
"bitvec",
"cfg-if",
- "derive_more 0.99.18",
+ "derive_more 1.0.0",
"parity-scale-codec",
"scale-info-derive",
"serde",
@@ -6405,14 +7170,14 @@ dependencies = [
[[package]]
name = "scale-info-derive"
-version = "2.11.3"
+version = "2.11.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62"
+checksum = "46385cc24172cf615450267463f937c10072516359b3ff1cb24228a4a08bf951"
dependencies = [
"proc-macro-crate 3.2.0",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 1.0.109",
+ "syn 2.0.85",
]
[[package]]
@@ -6421,10 +7186,10 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00860983481ac590ac87972062909bef0d6a658013b592ccc0f2feb272feab11"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"scale-info",
- "syn 2.0.77",
+ "syn 2.0.85",
"thiserror",
]
@@ -6450,9 +7215,9 @@ dependencies = [
[[package]]
name = "schannel"
-version = "0.1.24"
+version = "0.1.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b"
+checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1"
dependencies = [
"windows-sys 0.59.0",
]
@@ -6583,7 +7348,7 @@ name = "selector_generator"
version = "0.1.0"
dependencies = [
"anyhow",
- "clap 4.5.18",
+ "clap 4.5.20",
"ethabi",
"glob",
"hex",
@@ -6592,6 +7357,15 @@ dependencies = [
"tokio",
]
+[[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.23"
@@ -6601,6 +7375,15 @@ dependencies = [
"serde",
]
+[[package]]
+name = "semver-parser"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
+dependencies = [
+ "pest",
+]
+
[[package]]
name = "send_wrapper"
version = "0.4.0"
@@ -6647,7 +7430,7 @@ dependencies = [
"hostname",
"libc",
"os_info",
- "rustc_version",
+ "rustc_version 0.4.1",
"sentry-core",
"uname",
]
@@ -6723,9 +7506,9 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
[[package]]
name = "serde"
-version = "1.0.210"
+version = "1.0.214"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
+checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5"
dependencies = [
"serde_derive",
]
@@ -6751,20 +7534,20 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.210"
+version = "1.0.214"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
+checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
name = "serde_json"
-version = "1.0.128"
+version = "1.0.132"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
+checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03"
dependencies = [
"itoa",
"memchr",
@@ -6792,6 +7575,17 @@ dependencies = [
"serde",
]
+[[package]]
+name = "serde_repr"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
+dependencies = [
+ "proc-macro2 1.0.89",
+ "quote 1.0.37",
+ "syn 2.0.85",
+]
+
[[package]]
name = "serde_spanned"
version = "0.6.8"
@@ -6832,7 +7626,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082"
dependencies = [
"darling 0.13.4",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"syn 1.0.109",
]
@@ -6843,7 +7637,7 @@ version = "0.9.34+deprecated"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
dependencies = [
- "indexmap 2.5.0",
+ "indexmap 2.6.0",
"itoa",
"ryu",
"serde",
@@ -7177,7 +7971,7 @@ name = "snapshots_creator"
version = "0.1.0"
dependencies = [
"anyhow",
- "futures 0.3.30",
+ "futures 0.3.31",
"rand 0.8.5",
"structopt",
"test-casing",
@@ -7204,7 +7998,7 @@ dependencies = [
"chacha20poly1305",
"curve25519-dalek",
"rand_core 0.6.4",
- "rustc_version",
+ "rustc_version 0.4.1",
"sha2 0.10.8",
"subtle",
]
@@ -7227,7 +8021,7 @@ checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2"
dependencies = [
"base64 0.13.1",
"bytes",
- "futures 0.3.30",
+ "futures 0.3.31",
"httparse",
"log",
"rand 0.8.5",
@@ -7242,7 +8036,7 @@ checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53"
dependencies = [
"base64 0.22.1",
"bytes",
- "futures 0.3.30",
+ "futures 0.3.31",
"http 1.1.0",
"httparse",
"log",
@@ -7345,7 +8139,7 @@ dependencies = [
"hashbrown 0.14.5",
"hashlink",
"hex",
- "indexmap 2.5.0",
+ "indexmap 2.6.0",
"ipnetwork",
"log",
"memchr",
@@ -7372,11 +8166,11 @@ version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cac0692bcc9de3b073e8d747391827297e075c7710ff6276d9f7a1f3d58c6657"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"sqlx-core",
"sqlx-macros-core",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -7390,7 +8184,7 @@ dependencies = [
"heck 0.5.0",
"hex",
"once_cell",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"serde",
"serde_json",
@@ -7399,7 +8193,7 @@ dependencies = [
"sqlx-mysql",
"sqlx-postgres",
"sqlx-sqlite",
- "syn 2.0.77",
+ "syn 2.0.85",
"tempfile",
"tokio",
"url",
@@ -7590,7 +8384,7 @@ checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
dependencies = [
"heck 0.3.3",
"proc-macro-error",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"syn 1.0.109",
]
@@ -7611,10 +8405,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
dependencies = [
"heck 0.5.0",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"rustversion",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -7623,6 +8417,21 @@ version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
+[[package]]
+name = "subtle-encoding"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945"
+dependencies = [
+ "zeroize",
+]
+
+[[package]]
+name = "subtle-ng"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142"
+
[[package]]
name = "subxt"
version = "0.34.0"
@@ -7635,7 +8444,7 @@ dependencies = [
"derivative",
"either",
"frame-metadata 16.0.0",
- "futures 0.3.30",
+ "futures 0.3.31",
"hex",
"impl-serde",
"instant",
@@ -7670,12 +8479,12 @@ dependencies = [
"hex",
"jsonrpsee 0.21.0",
"parity-scale-codec",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"scale-info",
"scale-typegen",
"subxt-metadata",
- "syn 2.0.77",
+ "syn 2.0.85",
"thiserror",
"tokio",
]
@@ -7686,7 +8495,7 @@ version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ecec7066ba7bc0c3608fcd1d0c7d9584390990cd06095b6ae4f114f74c4b8550"
dependencies = [
- "futures 0.3.30",
+ "futures 0.3.31",
"futures-util",
"serde",
"serde_json",
@@ -7709,7 +8518,7 @@ dependencies = [
"quote 1.0.37",
"scale-typegen",
"subxt-codegen",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -7763,18 +8572,18 @@ version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"unicode-ident",
]
[[package]]
name = "syn"
-version = "2.0.77"
+version = "2.0.85"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
+checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"unicode-ident",
]
@@ -7786,9 +8595,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b"
dependencies = [
"proc-macro-error",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -7874,11 +8683,17 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+[[package]]
+name = "target-triple"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42a4d50cdb458045afc8131fd91b64904da29548bcb63c7236e0844936c13078"
+
[[package]]
name = "tempfile"
-version = "3.12.0"
+version = "3.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
+checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b"
dependencies = [
"cfg-if",
"fastrand",
@@ -7907,6 +8722,16 @@ dependencies = [
"winapi-util",
]
+[[package]]
+name = "terminal_size"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f599bd7ca042cfdf8f4512b277c02ba102247820f9d9d4a9f521f496751a6ef"
+dependencies = [
+ "rustix",
+ "windows-sys 0.59.0",
+]
+
[[package]]
name = "test-casing"
version = "0.1.3"
@@ -7922,9 +8747,9 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9b53c7124dd88026d5d98a1eb1fd062a578b7d783017c9298825526c7fb6427"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -7944,9 +8769,9 @@ version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5999e24eaa32083191ba4e425deb75cdf25efefabe5aaccb7446dd0d4122a3f5"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -7966,22 +8791,22 @@ checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
[[package]]
name = "thiserror"
-version = "1.0.64"
+version = "1.0.65"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84"
+checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.64"
+version = "1.0.65"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3"
+checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -8112,9 +8937,9 @@ dependencies = [
[[package]]
name = "tokio"
-version = "1.40.0"
+version = "1.41.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998"
+checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb"
dependencies = [
"backtrace",
"bytes",
@@ -8128,15 +8953,25 @@ dependencies = [
"windows-sys 0.52.0",
]
+[[package]]
+name = "tokio-io-timeout"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf"
+dependencies = [
+ "pin-project-lite",
+ "tokio",
+]
+
[[package]]
name = "tokio-macros"
version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -8176,7 +9011,7 @@ version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"
dependencies = [
- "rustls 0.23.13",
+ "rustls 0.23.16",
"rustls-pki-types",
"tokio",
]
@@ -8234,7 +9069,7 @@ version = "0.19.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [
- "indexmap 2.5.0",
+ "indexmap 2.6.0",
"toml_datetime",
"winnow 0.5.40",
]
@@ -8245,13 +9080,44 @@ version = "0.22.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5"
dependencies = [
- "indexmap 2.5.0",
+ "indexmap 2.6.0",
"serde",
"serde_spanned",
"toml_datetime",
"winnow 0.6.20",
]
+[[package]]
+name = "tonic"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13"
+dependencies = [
+ "async-stream",
+ "async-trait",
+ "axum 0.6.20",
+ "base64 0.21.7",
+ "bytes",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.31",
+ "hyper-timeout 0.4.1",
+ "percent-encoding",
+ "pin-project",
+ "prost 0.12.6",
+ "rustls-native-certs 0.7.3",
+ "rustls-pemfile 2.2.0",
+ "rustls-pki-types",
+ "tokio",
+ "tokio-rustls 0.25.0",
+ "tokio-stream",
+ "tower 0.4.13",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
[[package]]
name = "tonic"
version = "0.12.3"
@@ -8260,15 +9126,15 @@ checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52"
dependencies = [
"async-stream",
"async-trait",
- "axum",
+ "axum 0.7.7",
"base64 0.22.1",
"bytes",
"h2 0.4.6",
"http 1.1.0",
"http-body 1.0.1",
"http-body-util",
- "hyper 1.4.1",
- "hyper-timeout",
+ "hyper 1.5.0",
+ "hyper-timeout 0.5.1",
"hyper-util",
"percent-encoding",
"pin-project",
@@ -8368,9 +9234,9 @@ version = "0.1.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -8446,9 +9312,9 @@ dependencies = [
[[package]]
name = "triomphe"
-version = "0.1.13"
+version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6631e42e10b40c0690bf92f404ebcfe6e1fdb480391d15f17cc8e96eeed5369"
+checksum = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85"
[[package]]
name = "try-lock"
@@ -8458,14 +9324,15 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
[[package]]
name = "trybuild"
-version = "1.0.99"
+version = "1.0.101"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "207aa50d36c4be8d8c6ea829478be44a372c6a77669937bb39c698e52f1491e8"
+checksum = "8dcd332a5496c026f1e14b7f3d2b7bd98e509660c04239c58b0ba38a12daded4"
dependencies = [
"glob",
"serde",
"serde_derive",
"serde_json",
+ "target-triple",
"termcolor",
"toml",
]
@@ -8495,9 +9362,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
[[package]]
name = "ucd-trie"
-version = "0.1.6"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
+checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971"
[[package]]
name = "uint"
@@ -8520,20 +9387,23 @@ dependencies = [
"libc",
]
+[[package]]
+name = "unarray"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
+
[[package]]
name = "unicase"
-version = "2.7.0"
+version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
-dependencies = [
- "version_check",
-]
+checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df"
[[package]]
name = "unicode-bidi"
-version = "0.3.15"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893"
[[package]]
name = "unicode-ident"
@@ -8552,9 +9422,9 @@ dependencies = [
[[package]]
name = "unicode-properties"
-version = "0.1.2"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52ea75f83c0137a9b98608359a5f1af8144876eb67bcb1ce837368e906a9f524"
+checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0"
[[package]]
name = "unicode-segmentation"
@@ -8612,6 +9482,12 @@ version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
+[[package]]
+name = "unsigned-varint"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06"
+
[[package]]
name = "untrusted"
version = "0.9.0"
@@ -8657,9 +9533,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]]
name = "uuid"
-version = "1.10.0"
+version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314"
+checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a"
dependencies = [
"serde",
]
@@ -8672,9 +9548,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
[[package]]
name = "value-bag"
-version = "1.9.0"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a84c137d37ab0142f0f2ddfe332651fdbf252e7b7dbb4e67b6c1f1b2e925101"
+checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2"
[[package]]
name = "vcpkg"
@@ -8727,7 +9603,7 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "671d3b894d5d0849f0a597f56bf071f42d4f2a1cbcf2f78ca21f870ab7c0cc2b"
dependencies = [
- "hyper 0.14.30",
+ "hyper 0.14.31",
"once_cell",
"tokio",
"tracing",
@@ -8740,9 +9616,9 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a511871dc5de990a3b2a0e715facfbc5da848c0c0395597a1415029fb7c250a"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -8751,11 +9627,11 @@ version = "0.1.0"
dependencies = [
"assert_matches",
"criterion",
- "iai",
"once_cell",
"rand 0.8.5",
"tokio",
"vise",
+ "yab",
"zksync_contracts",
"zksync_multivm",
"zksync_types",
@@ -8803,9 +9679,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
[[package]]
name = "wasm-bindgen"
-version = "0.2.93"
+version = "0.2.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
+checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e"
dependencies = [
"cfg-if",
"once_cell",
@@ -8814,24 +9690,24 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.93"
+version = "0.2.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
+checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358"
dependencies = [
"bumpalo",
"log",
"once_cell",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.43"
+version = "0.4.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed"
+checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b"
dependencies = [
"cfg-if",
"js-sys",
@@ -8841,9 +9717,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.93"
+version = "0.2.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
+checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56"
dependencies = [
"quote 1.0.37",
"wasm-bindgen-macro-support",
@@ -8851,28 +9727,28 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.93"
+version = "0.2.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
+checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.93"
+version = "0.2.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
+checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d"
[[package]]
name = "wasm-streams"
-version = "0.4.0"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129"
+checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65"
dependencies = [
"futures-util",
"js-sys",
@@ -8923,9 +9799,9 @@ dependencies = [
[[package]]
name = "web-sys"
-version = "0.3.70"
+version = "0.3.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0"
+checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -9239,6 +10115,18 @@ dependencies = [
"zeroize",
]
+[[package]]
+name = "yab"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b06cc62d4cec617d3c259537be0fcaa8a5bcf72ddf2983823d9528605f36ed3"
+dependencies = [
+ "anes",
+ "clap 4.5.20",
+ "num_cpus",
+ "thiserror",
+]
+
[[package]]
name = "yansi"
version = "1.0.1"
@@ -9267,9 +10155,9 @@ version = "0.7.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -9287,9 +10175,9 @@ version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -9360,9 +10248,9 @@ dependencies = [
[[package]]
name = "zk_evm"
-version = "0.150.6"
+version = "0.150.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c14bda6c101389145cd01fac900f1392876bc0284d98faf7f376237baa2cb19d"
+checksum = "3cc74fbe2b45fd19e95c59ea792c795feebdb616ebaa463f0ac567f495f47387"
dependencies = [
"anyhow",
"lazy_static",
@@ -9370,7 +10258,7 @@ dependencies = [
"serde",
"serde_json",
"static_assertions",
- "zk_evm_abstractions 0.150.6",
+ "zk_evm_abstractions 0.150.7",
]
[[package]]
@@ -9401,15 +10289,15 @@ dependencies = [
[[package]]
name = "zk_evm_abstractions"
-version = "0.150.6"
+version = "0.150.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a008f2442fc6a508bdd1f902380242cb6ff11b8b27acdac2677c6d9f75cbb004"
+checksum = "37f333a3b059899df09e40deb041af881bc03e496fda5eec618ffb5e854ee7df"
dependencies = [
"anyhow",
"num_enum 0.6.1",
"serde",
"static_assertions",
- "zkevm_opcode_defs 0.150.6",
+ "zkevm_opcode_defs 0.150.7",
]
[[package]]
@@ -9458,9 +10346,9 @@ dependencies = [
[[package]]
name = "zkevm_circuits"
-version = "0.150.6"
+version = "0.150.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f68518aedd5358b17224771bb78bacd912cf66011aeda98b1f887cfb9e0972f"
+checksum = "d06fb35b00699d25175a2ad447f86a9088af8b0bc698bb57086fb04c13e52eab"
dependencies = [
"arrayvec 0.7.6",
"boojum",
@@ -9472,7 +10360,7 @@ dependencies = [
"seq-macro",
"serde",
"smallvec",
- "zkevm_opcode_defs 0.150.6",
+ "zkevm_opcode_defs 0.150.7",
"zksync_cs_derive",
]
@@ -9520,9 +10408,9 @@ dependencies = [
[[package]]
name = "zkevm_opcode_defs"
-version = "0.150.6"
+version = "0.150.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "762b5f1c1b283c5388995a85d40a05aef1c14f50eb904998b7e9364739f5b899"
+checksum = "b83f3b279248af4ca86dec20a54127f02110b45570f3f6c1d13df49ba75c28a5"
dependencies = [
"bitflags 2.6.0",
"blake2 0.10.6",
@@ -9590,7 +10478,7 @@ dependencies = [
"byteorder",
"cfg-if",
"crossbeam",
- "futures 0.3.30",
+ "futures 0.3.31",
"hex",
"lazy_static",
"num_cpus",
@@ -9608,7 +10496,7 @@ dependencies = [
"anyhow",
"assert_matches",
"async-trait",
- "futures 0.3.30",
+ "futures 0.3.31",
"serde",
"tempfile",
"test-casing",
@@ -9646,8 +10534,8 @@ dependencies = [
"anyhow",
"circuit_sequencer_api 0.140.3",
"circuit_sequencer_api 0.141.2",
- "circuit_sequencer_api 0.150.6",
- "futures 0.3.30",
+ "circuit_sequencer_api 0.150.7",
+ "futures 0.3.31",
"itertools 0.10.5",
"num_cpus",
"rand 0.8.5",
@@ -9658,7 +10546,7 @@ dependencies = [
"vise",
"zk_evm 0.133.0",
"zk_evm 0.141.0",
- "zk_evm 0.150.6",
+ "zk_evm 0.150.7",
"zksync_contracts",
"zksync_dal",
"zksync_eth_client",
@@ -9667,6 +10555,7 @@ dependencies = [
"zksync_multivm",
"zksync_node_genesis",
"zksync_node_test_utils",
+ "zksync_system_constants",
"zksync_types",
"zksync_utils",
"zksync_web3_decl",
@@ -9765,7 +10654,7 @@ dependencies = [
"anyhow",
"async-trait",
"rand 0.8.5",
- "semver",
+ "semver 1.0.23",
"tracing",
"vise",
"zksync_concurrency",
@@ -9791,14 +10680,14 @@ dependencies = [
"bytesize",
"http-body-util",
"human-repr",
- "hyper 1.4.1",
+ "hyper 1.5.0",
"hyper-util",
"im",
"once_cell",
"pin-project",
"prost 0.12.6",
"rand 0.8.5",
- "semver",
+ "semver 1.0.23",
"snow",
"thiserror",
"tls-listener",
@@ -9899,7 +10788,7 @@ name = "zksync_contract_verification_server"
version = "0.1.0"
dependencies = [
"anyhow",
- "axum",
+ "axum 0.7.7",
"serde",
"serde_json",
"tokio",
@@ -9917,7 +10806,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"ctrlc",
- "futures 0.3.30",
+ "futures 0.3.31",
"structopt",
"tokio",
"tracing",
@@ -9941,7 +10830,7 @@ dependencies = [
"hex",
"lazy_static",
"regex",
- "semver",
+ "semver 1.0.23",
"serde",
"serde_json",
"tempfile",
@@ -10008,7 +10897,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5939e2df4288c263c706ff18ac718e984149223ad4289d6d957d767dcfc04c81"
dependencies = [
"proc-macro-error",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"syn 1.0.109",
]
@@ -10028,21 +10917,36 @@ version = "0.1.0"
dependencies = [
"anyhow",
"async-trait",
+ "backon",
"base58",
+ "bech32",
+ "bincode",
"blake2 0.10.6",
"blake2b_simd",
+ "bytes",
+ "celestia-types",
"flate2",
- "futures 0.3.30",
+ "futures 0.3.31",
"hex",
+ "http 1.1.0",
"jsonrpsee 0.23.2",
"parity-scale-codec",
+ "pbjson-types",
+ "prost 0.12.6",
+ "reqwest 0.12.9",
+ "ripemd",
"scale-encode",
+ "secp256k1",
"serde",
"serde_json",
+ "sha2 0.10.8",
"subxt-metadata",
"subxt-signer",
"tokio",
+ "tokio-stream",
+ "tonic 0.11.0",
"tracing",
+ "zksync_basic_types",
"zksync_config",
"zksync_da_client",
"zksync_env_config",
@@ -10056,7 +10960,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"chrono",
- "futures 0.3.30",
+ "futures 0.3.31",
"rand 0.8.5",
"tokio",
"tracing",
@@ -10225,10 +11129,10 @@ dependencies = [
"anyhow",
"assert_matches",
"async-trait",
- "clap 4.5.18",
+ "clap 4.5.20",
"envy",
- "futures 0.3.30",
- "rustc_version",
+ "futures 0.3.31",
+ "rustc_version 0.4.1",
"serde",
"serde_json",
"tempfile",
@@ -10285,7 +11189,7 @@ dependencies = [
"fraction",
"httpmock",
"rand 0.8.5",
- "reqwest 0.12.7",
+ "reqwest 0.12.9",
"serde",
"serde_json",
"tokio",
@@ -10301,7 +11205,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"async-trait",
- "axum",
+ "axum 0.7.7",
"bincode",
"thiserror",
"tokio",
@@ -10335,7 +11239,7 @@ dependencies = [
"num-bigint 0.4.6",
"num-integer",
"num-traits",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
"serde",
"syn 1.0.109",
@@ -10347,7 +11251,7 @@ version = "0.1.0"
dependencies = [
"assert_matches",
"async-trait",
- "futures 0.3.30",
+ "futures 0.3.31",
"serde",
"serde_json",
"thiserror",
@@ -10373,9 +11277,9 @@ dependencies = [
[[package]]
name = "zksync_kzg"
-version = "0.150.6"
+version = "0.150.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c006b6b7a27cc50ff0c515b6d0b197dbb907bbf65d1d2ea42fc3ed21b315642"
+checksum = "dc58af8e4e4ad1a851ffd2275e6a44ead0f15a7eaac9dc9d60a56b3b9c9b08e8"
dependencies = [
"boojum",
"derivative",
@@ -10385,7 +11289,7 @@ dependencies = [
"serde",
"serde_json",
"serde_with",
- "zkevm_circuits 0.150.6",
+ "zkevm_circuits 0.150.7",
]
[[package]]
@@ -10433,7 +11337,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"assert_matches",
- "clap 4.5.18",
+ "clap 4.5.20",
"insta",
"leb128",
"once_cell",
@@ -10464,11 +11368,11 @@ dependencies = [
"anyhow",
"assert_matches",
"async-trait",
- "axum",
- "futures 0.3.30",
+ "axum 0.7.7",
+ "futures 0.3.31",
"itertools 0.10.5",
"once_cell",
- "reqwest 0.12.7",
+ "reqwest 0.12.9",
"serde",
"serde_json",
"tempfile",
@@ -10512,7 +11416,7 @@ dependencies = [
"circuit_sequencer_api 0.140.3",
"circuit_sequencer_api 0.141.2",
"circuit_sequencer_api 0.142.2",
- "circuit_sequencer_api 0.150.6",
+ "circuit_sequencer_api 0.150.7",
"ethabi",
"hex",
"itertools 0.10.5",
@@ -10526,9 +11430,10 @@ dependencies = [
"zk_evm 0.133.0",
"zk_evm 0.140.0",
"zk_evm 0.141.0",
- "zk_evm 0.150.6",
+ "zk_evm 0.150.7",
"zksync_contracts",
"zksync_eth_signer",
+ "zksync_mini_merkle_tree",
"zksync_system_constants",
"zksync_test_account",
"zksync_types",
@@ -10544,10 +11449,10 @@ dependencies = [
"anyhow",
"assert_matches",
"async-trait",
- "axum",
+ "axum 0.7.7",
"chrono",
"const-decoder",
- "futures 0.3.30",
+ "futures 0.3.31",
"governor",
"hex",
"http 1.1.0",
@@ -10567,7 +11472,7 @@ dependencies = [
"tower-http",
"tracing",
"vise",
- "zk_evm 0.150.6",
+ "zk_evm 0.150.7",
"zksync_config",
"zksync_consensus_roles",
"zksync_contracts",
@@ -10599,7 +11504,7 @@ dependencies = [
"async-trait",
"rand 0.8.5",
"secrecy",
- "semver",
+ "semver 1.0.23",
"tempfile",
"test-casing",
"thiserror",
@@ -10682,9 +11587,9 @@ dependencies = [
"assert_matches",
"async-trait",
"ctrlc",
- "futures 0.3.30",
+ "futures 0.3.31",
"pin-project-lite",
- "semver",
+ "semver 1.0.23",
"thiserror",
"tokio",
"tracing",
@@ -10738,9 +11643,9 @@ dependencies = [
name = "zksync_node_framework_derive"
version = "0.1.0"
dependencies = [
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -10795,7 +11700,7 @@ dependencies = [
"async-trait",
"backon",
"chrono",
- "futures 0.3.30",
+ "futures 0.3.31",
"once_cell",
"serde",
"serde_json",
@@ -10849,7 +11754,7 @@ dependencies = [
"http 1.1.0",
"prost 0.12.6",
"rand 0.8.5",
- "reqwest 0.12.7",
+ "reqwest 0.12.9",
"serde_json",
"tempfile",
"tokio",
@@ -10878,9 +11783,9 @@ name = "zksync_proof_data_handler"
version = "0.1.0"
dependencies = [
"anyhow",
- "axum",
+ "axum 0.7.7",
"chrono",
- "hyper 1.4.1",
+ "hyper 1.5.0",
"serde_json",
"tokio",
"tower 0.4.13",
@@ -10909,7 +11814,7 @@ dependencies = [
"bit-vec",
"once_cell",
"prost 0.12.6",
- "prost-reflect",
+ "prost-reflect 0.12.0",
"quick-protobuf",
"rand 0.8.5",
"serde",
@@ -10929,12 +11834,12 @@ dependencies = [
"anyhow",
"heck 0.5.0",
"prettyplease",
- "proc-macro2 1.0.86",
+ "proc-macro2 1.0.89",
"prost-build",
- "prost-reflect",
- "protox",
+ "prost-reflect 0.12.0",
+ "protox 0.5.1",
"quote 1.0.37",
- "syn 2.0.77",
+ "syn 2.0.85",
]
[[package]]
@@ -10963,7 +11868,7 @@ version = "0.1.0"
dependencies = [
"bincode",
"chrono",
- "circuit_sequencer_api 0.150.6",
+ "circuit_sequencer_api 0.150.7",
"serde",
"serde_json",
"serde_with",
@@ -11012,8 +11917,8 @@ name = "zksync_server"
version = "0.1.0"
dependencies = [
"anyhow",
- "clap 4.5.18",
- "futures 0.3.30",
+ "clap 4.5.20",
+ "futures 0.3.31",
"serde_json",
"tikv-jemallocator",
"tokio",
@@ -11042,7 +11947,7 @@ dependencies = [
name = "zksync_shared_metrics"
version = "0.1.0"
dependencies = [
- "rustc_version",
+ "rustc_version 0.4.1",
"tracing",
"vise",
"zksync_dal",
@@ -11056,7 +11961,7 @@ dependencies = [
"anyhow",
"assert_matches",
"async-trait",
- "futures 0.3.30",
+ "futures 0.3.31",
"serde",
"test-casing",
"thiserror",
@@ -11122,7 +12027,7 @@ dependencies = [
"anyhow",
"assert_matches",
"async-trait",
- "futures 0.3.30",
+ "futures 0.3.31",
"hex",
"itertools 0.10.5",
"once_cell",
@@ -11183,7 +12088,7 @@ dependencies = [
"anyhow",
"async-trait",
"envy",
- "reqwest 0.12.7",
+ "reqwest 0.12.9",
"secp256k1",
"serde",
"thiserror",
@@ -11277,12 +12182,12 @@ dependencies = [
"assert_matches",
"bigdecimal",
"bincode",
- "futures 0.3.30",
+ "futures 0.3.31",
"hex",
"num",
"once_cell",
"rand 0.8.5",
- "reqwest 0.12.7",
+ "reqwest 0.12.9",
"serde",
"serde_json",
"thiserror",
@@ -11325,8 +12230,8 @@ source = "git+https://github.com/matter-labs/vm2.git?rev=df5bec3d04d64d434f9b0cc
dependencies = [
"enum_dispatch",
"primitive-types",
- "zk_evm_abstractions 0.150.6",
- "zkevm_opcode_defs 0.150.6",
+ "zk_evm_abstractions 0.150.7",
+ "zkevm_opcode_defs 0.150.7",
"zksync_vm2_interface",
]
@@ -11346,6 +12251,7 @@ dependencies = [
"assert_matches",
"async-trait",
"once_cell",
+ "test-casing",
"tokio",
"tracing",
"vise",
@@ -11382,8 +12288,8 @@ dependencies = [
"assert_matches",
"async-trait",
"backon",
- "dashmap",
- "futures 0.3.30",
+ "dashmap 5.5.3",
+ "futures 0.3.31",
"once_cell",
"rand 0.8.5",
"serde",
@@ -11416,12 +12322,12 @@ dependencies = [
"anyhow",
"assert_matches",
"async-trait",
- "futures 0.3.30",
+ "futures 0.3.31",
"jsonrpsee 0.23.2",
"pin-project-lite",
"rand 0.8.5",
"rlp",
- "rustls 0.23.13",
+ "rustls 0.23.16",
"serde",
"serde_json",
"test-casing",
diff --git a/Cargo.toml b/Cargo.toml
index f1e70e7f3028..e7cce4c4c421 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -110,6 +110,7 @@ backon = "0.4.4"
bigdecimal = "0.4.5"
bincode = "1"
blake2 = "0.10"
+bytes = "1"
chrono = "0.4"
clap = "4.2.2"
codegen = "0.2.0"
@@ -121,6 +122,7 @@ derive_more = "1.0.0"
envy = "0.4"
ethabi = "18.0.0"
flate2 = "1.0.28"
+fraction = "0.15.3"
futures = "0.3"
glob = "0.3"
google-cloud-auth = "0.16.0"
@@ -130,7 +132,6 @@ hex = "0.4"
http = "1.1"
httpmock = "0.7.0"
hyper = "1.3"
-iai = "0.1"
insta = "1.29.0"
itertools = "0.10"
jsonrpsee = { version = "0.23", default-features = false }
@@ -149,13 +150,13 @@ opentelemetry-semantic-conventions = "0.16.0"
opentelemetry-appender-tracing = "0.5"
pin-project-lite = "0.2.13"
pretty_assertions = "1"
-prost = "0.12.1"
+prost = "0.12.6"
rand = "0.8"
rayon = "1.3.1"
regex = "1"
reqwest = "0.12"
rlp = "0.5"
-rocksdb = "0.21.0"
+rocksdb = "0.21"
rustc_version = "0.4.0"
rustls = "0.23"
secp256k1 = { version = "0.27.0", features = ["recovery", "global-context"] }
@@ -189,7 +190,7 @@ tracing-opentelemetry = "0.25.0"
time = "0.3.36" # Has to be same as used by `tracing-subscriber`
url = "2"
web3 = "0.19.0"
-fraction = "0.15.3"
+yab = "0.1.0"
# Proc-macro
syn = "2.0"
@@ -210,6 +211,16 @@ subxt-metadata = "0.34.0"
parity-scale-codec = { version = "3.6.9", default-features = false }
subxt-signer = { version = "0.34", default-features = false }
+# Celestia
+celestia-types = "0.6.1"
+bech32 = "0.11.0"
+ripemd = "0.1.3"
+tonic = { version = "0.11.0", default-features = false }
+pbjson-types = "0.6.0"
+
+# Eigen
+tokio-stream = "0.1.16"
+
# Here and below:
# We *always* pin the latest version of protocol to disallow accidental changes in the execution logic.
# However, for the historical version of protocol crates, we have lax requirements. Otherwise,
@@ -218,15 +229,15 @@ circuit_sequencer_api_1_3_3 = { package = "circuit_sequencer_api", version = "0.
circuit_sequencer_api_1_4_0 = { package = "circuit_sequencer_api", version = "0.140" }
circuit_sequencer_api_1_4_1 = { package = "circuit_sequencer_api", version = "0.141" }
circuit_sequencer_api_1_4_2 = { package = "circuit_sequencer_api", version = "0.142" }
-circuit_sequencer_api_1_5_0 = { package = "circuit_sequencer_api", version = "=0.150.6" }
+circuit_sequencer_api_1_5_0 = { package = "circuit_sequencer_api", version = "=0.150.7" }
crypto_codegen = { package = "zksync_solidity_vk_codegen", version = "=0.30.1" }
-kzg = { package = "zksync_kzg", version = "=0.150.6" }
+kzg = { package = "zksync_kzg", version = "=0.150.7" }
zk_evm = { version = "=0.133.0" }
zk_evm_1_3_1 = { package = "zk_evm", version = "0.131.0-rc.2" }
zk_evm_1_3_3 = { package = "zk_evm", version = "0.133" }
zk_evm_1_4_0 = { package = "zk_evm", version = "0.140" }
zk_evm_1_4_1 = { package = "zk_evm", version = "0.141" }
-zk_evm_1_5_0 = { package = "zk_evm", version = "=0.150.6" }
+zk_evm_1_5_0 = { package = "zk_evm", version = "=0.150.7" }
# New VM; pinned to a specific commit because of instability
zksync_vm2 = { git = "https://github.com/matter-labs/vm2.git", rev = "df5bec3d04d64d434f9b0ccb285ba4681008f7b3" }
diff --git a/bin/ci_localnet_up b/bin/ci_localnet_up
index 8673a909af77..c399de410d74 100755
--- a/bin/ci_localnet_up
+++ b/bin/ci_localnet_up
@@ -4,6 +4,5 @@ set -e
cd $ZKSYNC_HOME
-mkdir -p ./volumes/postgres ./volumes/reth/data
run_retried docker-compose pull
docker-compose --profile runner up -d --wait
diff --git a/core/bin/external_node/src/config/mod.rs b/core/bin/external_node/src/config/mod.rs
index 56ee3edfd253..70803a663110 100644
--- a/core/bin/external_node/src/config/mod.rs
+++ b/core/bin/external_node/src/config/mod.rs
@@ -110,7 +110,12 @@ pub(crate) struct RemoteENConfig {
// the `l2_erc20_bridge_addr` and `l2_shared_bridge_addr` are basically the same contract, but with
// a different name, with names adapted only for consistency.
pub l1_shared_bridge_proxy_addr: Option
,
+ /// Contract address that serves as a shared bridge on L2.
+ /// It is expected that `L2SharedBridge` is used before gateway upgrade, and `L2AssetRouter` is used after.
pub l2_shared_bridge_addr: Option,
+ /// Address of `L2SharedBridge` that was used before gateway upgrade.
+ /// `None` if chain genesis used post-gateway protocol version.
+ pub l2_legacy_shared_bridge_addr: Option,
pub l1_erc20_bridge_proxy_addr: Option,
pub l2_erc20_bridge_addr: Option,
pub l1_weth_bridge_addr: Option,
@@ -189,6 +194,7 @@ impl RemoteENConfig {
l2_erc20_bridge_addr: l2_erc20_default_bridge,
l1_shared_bridge_proxy_addr: bridges.l1_shared_default_bridge,
l2_shared_bridge_addr: l2_erc20_shared_bridge,
+ l2_legacy_shared_bridge_addr: bridges.l2_legacy_shared_bridge,
l1_weth_bridge_addr: bridges.l1_weth_bridge,
l2_weth_bridge_addr: bridges.l2_weth_bridge,
base_token_addr,
@@ -218,6 +224,7 @@ impl RemoteENConfig {
l1_shared_bridge_proxy_addr: Some(Address::repeat_byte(5)),
l1_weth_bridge_addr: None,
l2_shared_bridge_addr: Some(Address::repeat_byte(6)),
+ l2_legacy_shared_bridge_addr: Some(Address::repeat_byte(7)),
l1_batch_commit_data_generator_mode: L1BatchCommitmentMode::Rollup,
dummy_verifier: true,
}
@@ -1403,6 +1410,7 @@ impl From<&ExternalNodeConfig> for InternalApiConfig {
l2_erc20_default_bridge: config.remote.l2_erc20_bridge_addr,
l1_shared_default_bridge: config.remote.l1_shared_bridge_proxy_addr,
l2_shared_default_bridge: config.remote.l2_shared_bridge_addr,
+ l2_legacy_shared_bridge: config.remote.l2_legacy_shared_bridge_addr,
l1_weth_bridge: config.remote.l1_weth_bridge_addr,
l2_weth_bridge: config.remote.l2_weth_bridge_addr,
},
diff --git a/core/bin/external_node/src/node_builder.rs b/core/bin/external_node/src/node_builder.rs
index 7d8489013535..b7f6f8039025 100644
--- a/core/bin/external_node/src/node_builder.rs
+++ b/core/bin/external_node/src/node_builder.rs
@@ -11,7 +11,9 @@ use zksync_config::{
},
PostgresConfig,
};
-use zksync_metadata_calculator::{MetadataCalculatorConfig, MetadataCalculatorRecoveryConfig};
+use zksync_metadata_calculator::{
+ MerkleTreeReaderConfig, MetadataCalculatorConfig, MetadataCalculatorRecoveryConfig,
+};
use zksync_node_api_server::web3::Namespace;
use zksync_node_framework::{
implementations::layers::{
@@ -25,7 +27,7 @@ use zksync_node_framework::{
logs_bloom_backfill::LogsBloomBackfillLayer,
main_node_client::MainNodeClientLayer,
main_node_fee_params_fetcher::MainNodeFeeParamsFetcherLayer,
- metadata_calculator::MetadataCalculatorLayer,
+ metadata_calculator::{MetadataCalculatorLayer, TreeApiServerLayer},
node_storage_init::{
external_node_strategy::{ExternalNodeInitStrategyLayer, SnapshotRecoveryConfig},
NodeStorageInitializerLayer,
@@ -55,6 +57,7 @@ use zksync_node_framework::{
service::{ZkStackService, ZkStackServiceBuilder},
};
use zksync_state::RocksdbStorageOptions;
+use zksync_types::L2_NATIVE_TOKEN_VAULT_ADDRESS;
use crate::{config::ExternalNodeConfig, metrics::framework::ExternalNodeMetricsLayer, Component};
@@ -192,11 +195,22 @@ impl ExternalNodeBuilder {
// compression.
const OPTIONAL_BYTECODE_COMPRESSION: bool = true;
+ let l2_shared_bridge_addr = self
+ .config
+ .remote
+ .l2_shared_bridge_addr
+ .context("Missing `l2_shared_bridge_addr`")?;
+ let l2_legacy_shared_bridge_addr = if l2_shared_bridge_addr == L2_NATIVE_TOKEN_VAULT_ADDRESS
+ {
+ // System has migrated to `L2_NATIVE_TOKEN_VAULT_ADDRESS`, use legacy shared bridge address from main node.
+ self.config.remote.l2_legacy_shared_bridge_addr
+ } else {
+ // System hasn't migrated on `L2_NATIVE_TOKEN_VAULT_ADDRESS`, we can safely use `l2_shared_bridge_addr`.
+ Some(l2_shared_bridge_addr)
+ };
+
let persistence_layer = OutputHandlerLayer::new(
- self.config
- .remote
- .l2_shared_bridge_addr
- .expect("L2 shared bridge address is not set"),
+ l2_legacy_shared_bridge_addr,
self.config.optional.l2_block_seal_queue_capacity,
)
.with_pre_insert_txs(true) // EN requires txs to be pre-inserted.
@@ -373,6 +387,29 @@ impl ExternalNodeBuilder {
Ok(self)
}
+ fn add_isolated_tree_api_layer(mut self) -> anyhow::Result {
+ let reader_config = MerkleTreeReaderConfig {
+ db_path: self.config.required.merkle_tree_path.clone(),
+ max_open_files: self.config.optional.merkle_tree_max_open_files,
+ multi_get_chunk_size: self.config.optional.merkle_tree_multi_get_chunk_size,
+ block_cache_capacity: self.config.optional.merkle_tree_block_cache_size(),
+ include_indices_and_filters_in_block_cache: self
+ .config
+ .optional
+ .merkle_tree_include_indices_and_filters_in_block_cache,
+ };
+ let api_config = MerkleTreeApiConfig {
+ port: self
+ .config
+ .tree_component
+ .api_port
+ .context("should contain tree api port")?,
+ };
+ self.node
+ .add_layer(TreeApiServerLayer::new(reader_config, api_config));
+ Ok(self)
+ }
+
fn add_tx_sender_layer(mut self) -> anyhow::Result {
let postgres_storage_config = PostgresStorageCachesConfig {
factory_deps_cache_size: self.config.optional.factory_deps_cache_size() as u64,
@@ -595,11 +632,11 @@ impl ExternalNodeBuilder {
self = self.add_metadata_calculator_layer(with_tree_api)?;
}
Component::TreeApi => {
- anyhow::ensure!(
- components.contains(&Component::Tree),
- "Merkle tree API cannot be started without a tree component"
- );
- // Do nothing, will be handled by the `Tree` component.
+ if components.contains(&Component::Tree) {
+ // Do nothing, will be handled by the `Tree` component.
+ } else {
+ self = self.add_isolated_tree_api_layer()?;
+ }
}
Component::TreeFetcher => {
self = self.add_tree_data_fetcher_layer()?;
diff --git a/core/bin/external_node/src/tests/mod.rs b/core/bin/external_node/src/tests/mod.rs
index c5dd88748e52..59aceea819f1 100644
--- a/core/bin/external_node/src/tests/mod.rs
+++ b/core/bin/external_node/src/tests/mod.rs
@@ -17,7 +17,7 @@ mod utils;
const SHUTDOWN_TIMEOUT: Duration = Duration::from_secs(10);
const POLL_INTERVAL: Duration = Duration::from_millis(100);
-#[test_casing(3, ["all", "core", "api"])]
+#[test_casing(4, ["all", "core", "api", "core,tree_api"])]
#[tokio::test]
#[tracing::instrument] // Add args to the test logs
async fn external_node_basics(components_str: &'static str) {
@@ -170,40 +170,3 @@ async fn running_tree_without_core_is_not_allowed() {
err
);
}
-
-#[tokio::test]
-async fn running_tree_api_without_tree_is_not_allowed() {
- let _guard = zksync_vlog::ObservabilityBuilder::new().try_build().ok(); // Enable logging to simplify debugging
- let (env, _env_handles) = utils::TestEnvironment::with_genesis_block("core,tree_api").await;
-
- let l2_client = utils::mock_l2_client(&env);
- let eth_client = utils::mock_eth_client(env.config.diamond_proxy_address());
-
- let node_handle = tokio::task::spawn_blocking(move || {
- std::thread::spawn(move || {
- let mut node = ExternalNodeBuilder::new(env.config)?;
- inject_test_layers(
- &mut node,
- env.sigint_receiver,
- env.app_health_sender,
- eth_client,
- l2_client,
- );
-
- // We're only interested in the error, so we drop the result.
- node.build(env.components.0.into_iter().collect()).map(drop)
- })
- .join()
- .unwrap()
- });
-
- // Check that we cannot build the node without the core component.
- let result = node_handle.await.expect("Building the node panicked");
- let err = result.expect_err("Building the node with tree api but without tree should fail");
- assert!(
- err.to_string()
- .contains("Merkle tree API cannot be started without a tree component"),
- "Unexpected errror: {}",
- err
- );
-}
diff --git a/core/bin/snapshots_creator/src/tests.rs b/core/bin/snapshots_creator/src/tests.rs
index a440d836b4c9..f3c191388803 100644
--- a/core/bin/snapshots_creator/src/tests.rs
+++ b/core/bin/snapshots_creator/src/tests.rs
@@ -167,6 +167,7 @@ async fn create_l2_block(
base_fee_per_gas: 0,
gas_per_pubdata_limit: 0,
batch_fee_input: Default::default(),
+ pubdata_params: Default::default(),
base_system_contracts_hashes: Default::default(),
protocol_version: Some(Default::default()),
virtual_blocks: 0,
diff --git a/core/bin/system-constants-generator/src/utils.rs b/core/bin/system-constants-generator/src/utils.rs
index 800da68ee50d..16167975cf0e 100644
--- a/core/bin/system-constants-generator/src/utils.rs
+++ b/core/bin/system-constants-generator/src/utils.rs
@@ -9,7 +9,7 @@ use zksync_multivm::{
interface::{
storage::{InMemoryStorage, StorageView, WriteStorage},
tracer::VmExecutionStopReason,
- L1BatchEnv, L2BlockEnv, SystemEnv, TxExecutionMode, VmExecutionMode, VmFactory,
+ InspectExecutionMode, L1BatchEnv, L2BlockEnv, SystemEnv, TxExecutionMode, VmFactory,
VmInterface, VmInterfaceExt,
},
tracers::dynamic::vm_1_5_0::DynTracer,
@@ -271,8 +271,9 @@ pub(super) fn execute_internal_transfer_test() -> u32 {
output: tracer_result.clone(),
}
.into_tracer_pointer();
+
let mut vm: Vm<_, HistoryEnabled> = Vm::new(l1_batch, system_env, storage_view.to_rc_ptr());
- let result = vm.inspect(&mut tracer.into(), VmExecutionMode::Bootloader);
+ let result = vm.inspect(&mut tracer.into(), InspectExecutionMode::Bootloader);
assert!(!result.result.is_failed(), "The internal call has reverted");
tracer_result.take()
@@ -331,7 +332,7 @@ pub(super) fn execute_user_txs_in_test_gas_vm(
let mut total_gas_refunded = 0;
for tx in txs {
vm.push_transaction(tx);
- let tx_execution_result = vm.execute(VmExecutionMode::OneTx);
+ let tx_execution_result = vm.execute(InspectExecutionMode::OneTx);
total_gas_refunded += tx_execution_result.refunds.gas_refunded;
if !accept_failure {
@@ -343,7 +344,7 @@ pub(super) fn execute_user_txs_in_test_gas_vm(
}
}
- let result = vm.execute(VmExecutionMode::Bootloader);
+ let result = vm.execute(InspectExecutionMode::Bootloader);
let metrics = result.get_execution_metrics(None);
VmSpentResourcesResult {
diff --git a/core/bin/zksync_server/src/main.rs b/core/bin/zksync_server/src/main.rs
index 9e1a1b5948c7..855f50df1419 100644
--- a/core/bin/zksync_server/src/main.rs
+++ b/core/bin/zksync_server/src/main.rs
@@ -11,12 +11,11 @@ use zksync_config::{
},
fri_prover_group::FriProverGroupConfig,
house_keeper::HouseKeeperConfig,
- secrets::DataAvailabilitySecrets,
- BasicWitnessInputProducerConfig, ContractsConfig, DatabaseSecrets, ExperimentalVmConfig,
- ExternalPriceApiClientConfig, FriProofCompressorConfig, FriProverConfig,
- FriProverGatewayConfig, FriWitnessGeneratorConfig, FriWitnessVectorGeneratorConfig,
- L1Secrets, ObservabilityConfig, PrometheusConfig, ProofDataHandlerConfig,
- ProtectiveReadsWriterConfig, Secrets,
+ BasicWitnessInputProducerConfig, ContractsConfig, DataAvailabilitySecrets, DatabaseSecrets,
+ ExperimentalVmConfig, ExternalPriceApiClientConfig, FriProofCompressorConfig,
+ FriProverConfig, FriProverGatewayConfig, FriWitnessGeneratorConfig,
+ FriWitnessVectorGeneratorConfig, L1Secrets, ObservabilityConfig, PrometheusConfig,
+ ProofDataHandlerConfig, ProtectiveReadsWriterConfig, Secrets,
},
ApiConfig, BaseTokenAdjusterConfig, ContractVerifierConfig, DAClientConfig, DADispatcherConfig,
DBConfig, EthConfig, EthWatchConfig, ExternalProofIntegrationApiConfig, GasAdjusterConfig,
diff --git a/core/bin/zksync_server/src/node_builder.rs b/core/bin/zksync_server/src/node_builder.rs
index 234e22894240..e7a3dca77f15 100644
--- a/core/bin/zksync_server/src/node_builder.rs
+++ b/core/bin/zksync_server/src/node_builder.rs
@@ -1,7 +1,7 @@
//! This module provides a "builder" for the main node,
//! as well as an interface to run the node with the specified components.
-use anyhow::Context;
+use anyhow::{bail, Context};
use zksync_config::{
configs::{
da_client::DAClientConfig, secrets::DataAvailabilitySecrets, wallets::Wallets,
@@ -26,8 +26,8 @@ use zksync_node_framework::{
consensus::MainNodeConsensusLayer,
contract_verification_api::ContractVerificationApiLayer,
da_clients::{
- avail::AvailWiringLayer, no_da::NoDAClientWiringLayer,
- object_store::ObjectStorageClientWiringLayer,
+ avail::AvailWiringLayer, celestia::CelestiaWiringLayer, eigen::EigenWiringLayer,
+ no_da::NoDAClientWiringLayer, object_store::ObjectStorageClientWiringLayer,
},
da_dispatcher::DataAvailabilityDispatcherLayer,
eth_sender::{EthTxAggregatorLayer, EthTxManagerLayer},
@@ -238,9 +238,7 @@ impl MainNodeBuilder {
let wallets = self.wallets.clone();
let sk_config = try_load_config!(self.configs.state_keeper_config);
let persistence_layer = OutputHandlerLayer::new(
- self.contracts_config
- .l2_shared_bridge_addr
- .context("L2 shared bridge address")?,
+ self.contracts_config.l2_legacy_shared_bridge_addr,
sk_config.l2_block_seal_queue_capacity,
)
.with_protective_reads_persistence_enabled(sk_config.protective_reads_persistence_enabled);
@@ -249,6 +247,8 @@ impl MainNodeBuilder {
sk_config.clone(),
try_load_config!(self.configs.mempool_config),
try_load_config!(wallets.state_keeper),
+ self.contracts_config.l2_da_validator_addr,
+ self.genesis_config.l1_batch_commit_data_generator_mode,
);
let db_config = try_load_config!(self.configs.db_config);
let experimental_vm_config = self
@@ -309,10 +309,12 @@ impl MainNodeBuilder {
latest_values_cache_size: rpc_config.latest_values_cache_size() as u64,
latest_values_max_block_lag: rpc_config.latest_values_max_block_lag(),
};
+ let vm_config = try_load_config!(self.configs.experimental_vm_config);
// On main node we always use master pool sink.
self.node.add_layer(MasterPoolSinkLayer);
- self.node.add_layer(TxSenderLayer::new(
+
+ let layer = TxSenderLayer::new(
TxSenderConfig::new(
&sk_config,
&rpc_config,
@@ -323,7 +325,9 @@ impl MainNodeBuilder {
),
postgres_storage_caches_config,
rpc_config.vm_concurrency_limit(),
- ));
+ );
+ let layer = layer.with_vm_mode(vm_config.api_fast_vm_mode);
+ self.node.add_layer(layer);
Ok(self)
}
@@ -503,16 +507,25 @@ impl MainNodeBuilder {
};
let secrets = try_load_config!(self.secrets.data_availability);
-
match (da_client_config, secrets) {
(DAClientConfig::Avail(config), DataAvailabilitySecrets::Avail(secret)) => {
self.node.add_layer(AvailWiringLayer::new(config, secret));
}
+ (DAClientConfig::Celestia(config), DataAvailabilitySecrets::Celestia(secret)) => {
+ self.node
+ .add_layer(CelestiaWiringLayer::new(config, secret));
+ }
+
+ (DAClientConfig::Eigen(config), DataAvailabilitySecrets::Eigen(secret)) => {
+ self.node.add_layer(EigenWiringLayer::new(config, secret));
+ }
+
(DAClientConfig::ObjectStore(config), _) => {
self.node
.add_layer(ObjectStorageClientWiringLayer::new(config));
}
+ _ => bail!("invalid pair of da_client and da_secrets"),
}
Ok(self)
diff --git a/core/bin/zksync_tee_prover/src/main.rs b/core/bin/zksync_tee_prover/src/main.rs
index 70c6f888185a..aa0881011da1 100644
--- a/core/bin/zksync_tee_prover/src/main.rs
+++ b/core/bin/zksync_tee_prover/src/main.rs
@@ -45,11 +45,12 @@ fn main() -> anyhow::Result<()> {
.add_layer(SigintHandlerLayer)
.add_layer(TeeProverLayer::new(tee_prover_config));
- if let Some(gateway) = prometheus_config.gateway_endpoint() {
- let exporter_config =
- PrometheusExporterConfig::push(gateway, prometheus_config.push_interval());
- builder.add_layer(PrometheusExporterLayer(exporter_config));
- }
+ let exporter_config = if let Some(gateway) = prometheus_config.gateway_endpoint() {
+ PrometheusExporterConfig::push(gateway, prometheus_config.push_interval())
+ } else {
+ PrometheusExporterConfig::pull(prometheus_config.listener_port)
+ };
+ builder.add_layer(PrometheusExporterLayer(exporter_config));
builder.build().run(observability_guard)?;
Ok(())
diff --git a/core/lib/basic_types/src/commitment.rs b/core/lib/basic_types/src/commitment.rs
index eca339f40f42..0eed46aad782 100644
--- a/core/lib/basic_types/src/commitment.rs
+++ b/core/lib/basic_types/src/commitment.rs
@@ -1,10 +1,12 @@
+use std::str::FromStr;
+
use serde::{Deserialize, Serialize};
use strum::{Display, EnumIter};
use crate::{
ethabi,
web3::contract::{Detokenize, Error as ContractError},
- U256,
+ Address, U256,
};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize, EnumIter, Display)]
@@ -41,3 +43,23 @@ impl Detokenize for L1BatchCommitmentMode {
}
}
}
+
+impl FromStr for L1BatchCommitmentMode {
+ type Err = &'static str;
+
+ fn from_str(s: &str) -> Result {
+ match s {
+ "Rollup" => Ok(Self::Rollup),
+ "Validium" => Ok(Self::Validium),
+ _ => {
+ Err("Incorrect l1 batch commitment mode type; expected one of `Rollup`, `Validium`")
+ }
+ }
+ }
+}
+
+#[derive(Default, Copy, Debug, Clone, PartialEq, Serialize, Deserialize)]
+pub struct PubdataParams {
+ pub l2_da_validator_address: Address,
+ pub pubdata_type: L1BatchCommitmentMode,
+}
diff --git a/core/lib/basic_types/src/lib.rs b/core/lib/basic_types/src/lib.rs
index 79c7b3924e34..1b462fdf77d1 100644
--- a/core/lib/basic_types/src/lib.rs
+++ b/core/lib/basic_types/src/lib.rs
@@ -30,7 +30,7 @@ pub mod network;
pub mod protocol_version;
pub mod prover_dal;
pub mod pubdata_da;
-pub mod seed_phrase;
+pub mod secrets;
pub mod settlement;
pub mod tee_types;
pub mod url;
diff --git a/core/lib/basic_types/src/protocol_version.rs b/core/lib/basic_types/src/protocol_version.rs
index e01586cdad7d..ebecfaa1b872 100644
--- a/core/lib/basic_types/src/protocol_version.rs
+++ b/core/lib/basic_types/src/protocol_version.rs
@@ -69,6 +69,7 @@ pub enum ProtocolVersionId {
Version24,
Version25,
Version26,
+ Version27,
}
impl ProtocolVersionId {
@@ -122,6 +123,7 @@ impl ProtocolVersionId {
ProtocolVersionId::Version24 => VmVersion::Vm1_5_0IncreasedBootloaderMemory,
ProtocolVersionId::Version25 => VmVersion::Vm1_5_0IncreasedBootloaderMemory,
ProtocolVersionId::Version26 => VmVersion::Vm1_5_0IncreasedBootloaderMemory,
+ ProtocolVersionId::Version27 => VmVersion::VmGateway,
}
}
@@ -139,6 +141,10 @@ impl ProtocolVersionId {
self <= &Self::Version22
}
+ pub fn is_pre_gateway(&self) -> bool {
+ self <= &Self::Version26
+ }
+
pub fn is_1_4_0(&self) -> bool {
self >= &ProtocolVersionId::Version18 && self < &ProtocolVersionId::Version20
}
@@ -278,6 +284,7 @@ impl From for VmVersion {
ProtocolVersionId::Version24 => VmVersion::Vm1_5_0IncreasedBootloaderMemory,
ProtocolVersionId::Version25 => VmVersion::Vm1_5_0IncreasedBootloaderMemory,
ProtocolVersionId::Version26 => VmVersion::Vm1_5_0IncreasedBootloaderMemory,
+ ProtocolVersionId::Version27 => VmVersion::VmGateway,
}
}
}
diff --git a/core/lib/basic_types/src/prover_dal.rs b/core/lib/basic_types/src/prover_dal.rs
index bec5a55ced1f..d86f79ba77aa 100644
--- a/core/lib/basic_types/src/prover_dal.rs
+++ b/core/lib/basic_types/src/prover_dal.rs
@@ -28,12 +28,6 @@ pub struct ExtendedJobCountStatistics {
pub successful: usize,
}
-#[derive(Debug, Clone, Copy, Default, Serialize, Deserialize)]
-pub struct JobCountStatistics {
- pub queued: usize,
- pub in_progress: usize,
-}
-
impl Add for ExtendedJobCountStatistics {
type Output = ExtendedJobCountStatistics;
@@ -47,6 +41,19 @@ impl Add for ExtendedJobCountStatistics {
}
}
+#[derive(Debug, Clone, Copy, Default, Serialize, Deserialize)]
+pub struct JobCountStatistics {
+ pub queued: usize,
+ pub in_progress: usize,
+}
+
+impl JobCountStatistics {
+ /// all returns sum of queued and in_progress.
+ pub fn all(&self) -> usize {
+ self.queued + self.in_progress
+ }
+}
+
#[derive(Debug)]
pub struct StuckJobs {
pub id: u64,
diff --git a/core/lib/basic_types/src/secrets.rs b/core/lib/basic_types/src/secrets.rs
new file mode 100644
index 000000000000..b3627470660c
--- /dev/null
+++ b/core/lib/basic_types/src/secrets.rs
@@ -0,0 +1,54 @@
+use std::str::FromStr;
+
+use secrecy::{ExposeSecret, Secret};
+
+#[derive(Debug, Clone)]
+pub struct SeedPhrase(pub Secret);
+
+impl PartialEq for SeedPhrase {
+ fn eq(&self, other: &Self) -> bool {
+ self.0.expose_secret().eq(other.0.expose_secret())
+ }
+}
+
+impl FromStr for SeedPhrase {
+ type Err = anyhow::Error;
+
+ fn from_str(s: &str) -> Result {
+ Ok(SeedPhrase(s.parse()?))
+ }
+}
+
+#[derive(Debug, Clone)]
+pub struct PrivateKey(pub Secret);
+
+impl PartialEq for PrivateKey {
+ fn eq(&self, other: &Self) -> bool {
+ self.0.expose_secret().eq(other.0.expose_secret())
+ }
+}
+
+impl FromStr for PrivateKey {
+ type Err = anyhow::Error;
+
+ fn from_str(s: &str) -> Result {
+ Ok(PrivateKey(s.parse()?))
+ }
+}
+
+#[derive(Debug, Clone)]
+pub struct APIKey(pub Secret);
+
+impl PartialEq for APIKey {
+ fn eq(&self, other: &Self) -> bool {
+ self.0.expose_secret().eq(other.0.expose_secret())
+ }
+}
+
+impl FromStr for APIKey {
+ type Err = anyhow::Error;
+
+ fn from_str(s: &str) -> Result {
+ Ok(APIKey(s.parse()?))
+ }
+}
diff --git a/core/lib/basic_types/src/seed_phrase.rs b/core/lib/basic_types/src/seed_phrase.rs
deleted file mode 100644
index 332bfd585945..000000000000
--- a/core/lib/basic_types/src/seed_phrase.rs
+++ /dev/null
@@ -1,20 +0,0 @@
-use std::str::FromStr;
-
-use secrecy::{ExposeSecret, Secret};
-
-#[derive(Debug, Clone)]
-pub struct SeedPhrase(pub Secret);
-
-impl PartialEq for SeedPhrase {
- fn eq(&self, other: &Self) -> bool {
- self.0.expose_secret().eq(other.0.expose_secret())
- }
-}
-
-impl FromStr for SeedPhrase {
- type Err = anyhow::Error;
-
- fn from_str(s: &str) -> Result {
- Ok(SeedPhrase(s.parse()?))
- }
-}
diff --git a/core/lib/basic_types/src/vm.rs b/core/lib/basic_types/src/vm.rs
index c753bbfc8183..f11f98596f18 100644
--- a/core/lib/basic_types/src/vm.rs
+++ b/core/lib/basic_types/src/vm.rs
@@ -16,6 +16,7 @@ pub enum VmVersion {
Vm1_4_2,
Vm1_5_0SmallBootloaderMemory,
Vm1_5_0IncreasedBootloaderMemory,
+ VmGateway,
}
impl VmVersion {
diff --git a/core/lib/config/src/configs/contracts.rs b/core/lib/config/src/configs/contracts.rs
index b68720ebaefe..0bf7aab3bcab 100644
--- a/core/lib/config/src/configs/contracts.rs
+++ b/core/lib/config/src/configs/contracts.rs
@@ -29,7 +29,13 @@ pub struct ContractsConfig {
pub diamond_proxy_addr: Address,
pub validator_timelock_addr: Address,
pub l1_shared_bridge_proxy_addr: Option,
+ /// Contract address that serves as a shared bridge on L2.
+ /// It is expected that `L2SharedBridge` is used before gateway upgrade, and `L2AssetRouter` is used after.
pub l2_shared_bridge_addr: Option,
+ /// Address of `L2SharedBridge` that was used before gateway upgrade.
+ /// `None` if chain genesis used post-gateway protocol version.
+ /// If present it will be used as L2 token deployer address.
+ pub l2_legacy_shared_bridge_addr: Option,
pub l1_erc20_bridge_proxy_addr: Option,
pub l2_erc20_bridge_addr: Option,
pub l1_weth_bridge_proxy_addr: Option,
@@ -40,6 +46,7 @@ pub struct ContractsConfig {
// Used by the RPC API and by the node builder in wiring the BaseTokenRatioProvider layer.
pub base_token_addr: Option,
pub chain_admin_addr: Option,
+ pub l2_da_validator_addr: Option,
}
impl ContractsConfig {
@@ -53,6 +60,7 @@ impl ContractsConfig {
l2_erc20_bridge_addr: Some(Address::repeat_byte(0x0c)),
l1_shared_bridge_proxy_addr: Some(Address::repeat_byte(0x0e)),
l2_shared_bridge_addr: Some(Address::repeat_byte(0x0f)),
+ l2_legacy_shared_bridge_addr: Some(Address::repeat_byte(0x19)),
l1_weth_bridge_proxy_addr: Some(Address::repeat_byte(0x0b)),
l2_weth_bridge_addr: Some(Address::repeat_byte(0x0c)),
l2_testnet_paymaster_addr: Some(Address::repeat_byte(0x11)),
@@ -61,6 +69,7 @@ impl ContractsConfig {
base_token_addr: Some(Address::repeat_byte(0x14)),
ecosystem_contracts: Some(EcosystemContracts::for_tests()),
chain_admin_addr: Some(Address::repeat_byte(0x18)),
+ l2_da_validator_addr: Some(Address::repeat_byte(0x1a)),
}
}
}
diff --git a/core/lib/config/src/configs/da_client/avail.rs b/core/lib/config/src/configs/da_client/avail.rs
index 590dc5fef18a..3993656d667a 100644
--- a/core/lib/config/src/configs/da_client/avail.rs
+++ b/core/lib/config/src/configs/da_client/avail.rs
@@ -1,16 +1,38 @@
use serde::Deserialize;
-use zksync_basic_types::seed_phrase::SeedPhrase;
+use zksync_basic_types::secrets::{APIKey, SeedPhrase};
+
+pub const AVAIL_GAS_RELAY_CLIENT_NAME: &str = "GasRelay";
+pub const AVAIL_FULL_CLIENT_NAME: &str = "FullClient";
+
+#[derive(Clone, Debug, PartialEq, Deserialize)]
+#[serde(tag = "avail_client")]
+pub enum AvailClientConfig {
+ FullClient(AvailDefaultConfig),
+ GasRelay(AvailGasRelayConfig),
+}
#[derive(Clone, Debug, PartialEq, Deserialize)]
pub struct AvailConfig {
- pub api_node_url: String,
pub bridge_api_url: String,
+ pub timeout_ms: usize,
+ #[serde(flatten)]
+ pub config: AvailClientConfig,
+}
+
+#[derive(Clone, Debug, PartialEq, Deserialize)]
+pub struct AvailDefaultConfig {
+ pub api_node_url: String,
pub app_id: u32,
- pub timeout: usize,
+}
+
+#[derive(Clone, Debug, PartialEq, Deserialize)]
+pub struct AvailGasRelayConfig {
+ pub gas_relay_api_url: String,
pub max_retries: usize,
}
#[derive(Clone, Debug, PartialEq)]
pub struct AvailSecrets {
pub seed_phrase: Option,
+ pub gas_relay_api_key: Option,
}
diff --git a/core/lib/config/src/configs/da_client/celestia.rs b/core/lib/config/src/configs/da_client/celestia.rs
new file mode 100644
index 000000000000..45810e0381e8
--- /dev/null
+++ b/core/lib/config/src/configs/da_client/celestia.rs
@@ -0,0 +1,15 @@
+use serde::Deserialize;
+use zksync_basic_types::secrets::PrivateKey;
+
+#[derive(Clone, Debug, Default, PartialEq, Deserialize)]
+pub struct CelestiaConfig {
+ pub api_node_url: String,
+ pub namespace: String,
+ pub chain_id: String,
+ pub timeout_ms: u64,
+}
+
+#[derive(Clone, Debug, PartialEq)]
+pub struct CelestiaSecrets {
+ pub private_key: PrivateKey,
+}
diff --git a/core/lib/config/src/configs/da_client/eigen.rs b/core/lib/config/src/configs/da_client/eigen.rs
new file mode 100644
index 000000000000..f2c05a0f61ef
--- /dev/null
+++ b/core/lib/config/src/configs/da_client/eigen.rs
@@ -0,0 +1,13 @@
+use serde::Deserialize;
+use zksync_basic_types::secrets::PrivateKey;
+
+#[derive(Clone, Debug, Default, PartialEq, Deserialize)]
+pub struct EigenConfig {
+ pub rpc_node_url: String,
+ pub inclusion_polling_interval_ms: u64,
+}
+
+#[derive(Clone, Debug, PartialEq)]
+pub struct EigenSecrets {
+ pub private_key: PrivateKey,
+}
diff --git a/core/lib/config/src/configs/da_client/mod.rs b/core/lib/config/src/configs/da_client/mod.rs
index 406305a77b16..322c4a20aac8 100644
--- a/core/lib/config/src/configs/da_client/mod.rs
+++ b/core/lib/config/src/configs/da_client/mod.rs
@@ -1,12 +1,18 @@
-use crate::{AvailConfig, ObjectStoreConfig};
+use crate::{AvailConfig, CelestiaConfig, EigenConfig, ObjectStoreConfig};
pub mod avail;
+pub mod celestia;
+pub mod eigen;
pub const AVAIL_CLIENT_CONFIG_NAME: &str = "Avail";
+pub const CELESTIA_CLIENT_CONFIG_NAME: &str = "Celestia";
+pub const EIGEN_CLIENT_CONFIG_NAME: &str = "Eigen";
pub const OBJECT_STORE_CLIENT_CONFIG_NAME: &str = "ObjectStore";
#[derive(Debug, Clone, PartialEq)]
pub enum DAClientConfig {
Avail(AvailConfig),
+ Celestia(CelestiaConfig),
+ Eigen(EigenConfig),
ObjectStore(ObjectStoreConfig),
}
diff --git a/core/lib/config/src/configs/experimental.rs b/core/lib/config/src/configs/experimental.rs
index 618cfd3d388c..a87a221ef222 100644
--- a/core/lib/config/src/configs/experimental.rs
+++ b/core/lib/config/src/configs/experimental.rs
@@ -106,4 +106,9 @@ pub struct ExperimentalVmConfig {
/// the new VM doesn't produce call traces and can diverge from the old VM!
#[serde(default)]
pub state_keeper_fast_vm_mode: FastVmMode,
+
+ /// Fast VM mode to use in the API server. Currently, some operations are not supported by the fast VM (e.g., `debug_traceCall`
+ /// or transaction validation), so the legacy VM will always be used for them.
+ #[serde(default)]
+ pub api_fast_vm_mode: FastVmMode,
}
diff --git a/core/lib/config/src/configs/external_price_api_client.rs b/core/lib/config/src/configs/external_price_api_client.rs
index 15cc7d29d848..c1092f3a7275 100644
--- a/core/lib/config/src/configs/external_price_api_client.rs
+++ b/core/lib/config/src/configs/external_price_api_client.rs
@@ -4,16 +4,21 @@ use serde::Deserialize;
pub const DEFAULT_TIMEOUT_MS: u64 = 10_000;
+pub const DEFAULT_FORCED_NEXT_VALUE_FLUCTUATION: u32 = 3;
+
#[derive(Debug, Clone, PartialEq, Deserialize)]
pub struct ForcedPriceClientConfig {
/// Forced conversion ratio
pub numerator: Option,
pub denominator: Option,
- /// Forced fluctuation. It defines how much percent numerator /
- /// denominator should fluctuate from their forced values. If it's None or 0, then ForcedPriceClient
- /// will return the same quote every time it's called. Otherwise, ForcedPriceClient will return
- /// forced_quote +/- forced_fluctuation % from its values.
+ /// Forced fluctuation. It defines how much percent the ratio should fluctuate from its forced
+ /// value. If it's None or 0, then the ForcedPriceClient will return the same quote every time
+ /// it's called. Otherwise, ForcedPriceClient will return quote with numerator +/- fluctuation %.
pub fluctuation: Option,
+ /// In order to smooth out fluctuation, consecutive values returned by forced client will not
+ /// differ more than next_value_fluctuation percent. If it's None, a default of 3% will be applied.
+ #[serde(default = "ExternalPriceApiClientConfig::default_forced_next_value_fluctuation")]
+ pub next_value_fluctuation: u32,
}
#[derive(Debug, Clone, PartialEq, Deserialize)]
@@ -31,6 +36,10 @@ impl ExternalPriceApiClientConfig {
DEFAULT_TIMEOUT_MS
}
+ fn default_forced_next_value_fluctuation() -> u32 {
+ DEFAULT_FORCED_NEXT_VALUE_FLUCTUATION
+ }
+
pub fn client_timeout(&self) -> Duration {
Duration::from_millis(self.client_timeout_ms)
}
diff --git a/core/lib/config/src/configs/mod.rs b/core/lib/config/src/configs/mod.rs
index a8d136d632ea..2b848030d719 100644
--- a/core/lib/config/src/configs/mod.rs
+++ b/core/lib/config/src/configs/mod.rs
@@ -5,7 +5,7 @@ pub use self::{
commitment_generator::CommitmentGeneratorConfig,
contract_verifier::ContractVerifierConfig,
contracts::{ContractsConfig, EcosystemContracts},
- da_client::{avail::AvailConfig, DAClientConfig},
+ da_client::{avail::AvailConfig, celestia::CelestiaConfig, eigen::EigenConfig, DAClientConfig},
da_dispatcher::DADispatcherConfig,
database::{DBConfig, PostgresConfig},
eth_sender::{EthConfig, GasAdjusterConfig},
@@ -22,10 +22,10 @@ pub use self::{
genesis::GenesisConfig,
object_store::ObjectStoreConfig,
observability::{ObservabilityConfig, OpentelemetryConfig},
- proof_data_handler::ProofDataHandlerConfig,
+ proof_data_handler::{ProofDataHandlerConfig, TeeConfig},
prover_job_monitor::ProverJobMonitorConfig,
pruning::PruningConfig,
- secrets::{DatabaseSecrets, L1Secrets, Secrets},
+ secrets::{DataAvailabilitySecrets, DatabaseSecrets, L1Secrets, Secrets},
snapshot_recovery::SnapshotRecoveryConfig,
snapshots_creator::SnapshotsCreatorConfig,
utils::PrometheusConfig,
diff --git a/core/lib/config/src/configs/proof_data_handler.rs b/core/lib/config/src/configs/proof_data_handler.rs
index de7f6969b05f..1d8703df51aa 100644
--- a/core/lib/config/src/configs/proof_data_handler.rs
+++ b/core/lib/config/src/configs/proof_data_handler.rs
@@ -1,12 +1,56 @@
use std::time::Duration;
use serde::Deserialize;
+use zksync_basic_types::L1BatchNumber;
+
+#[derive(Debug, Deserialize, Clone, PartialEq)]
+pub struct TeeConfig {
+ /// If true, the TEE support is enabled.
+ pub tee_support: bool,
+ /// All batches before this one are considered to be processed.
+ pub first_tee_processed_batch: L1BatchNumber,
+ /// Timeout in seconds for retrying TEE proof generation if it fails. Retries continue
+ /// indefinitely until successful.
+ pub tee_proof_generation_timeout_in_secs: u16,
+}
+
+impl Default for TeeConfig {
+ fn default() -> Self {
+ TeeConfig {
+ tee_support: Self::default_tee_support(),
+ first_tee_processed_batch: Self::default_first_tee_processed_batch(),
+ tee_proof_generation_timeout_in_secs:
+ Self::default_tee_proof_generation_timeout_in_secs(),
+ }
+ }
+}
+
+impl TeeConfig {
+ pub fn default_tee_support() -> bool {
+ false
+ }
+
+ pub fn default_first_tee_processed_batch() -> L1BatchNumber {
+ L1BatchNumber(0)
+ }
+
+ pub fn default_tee_proof_generation_timeout_in_secs() -> u16 {
+ 600
+ }
+
+ pub fn tee_proof_generation_timeout(&self) -> Duration {
+ Duration::from_secs(self.tee_proof_generation_timeout_in_secs.into())
+ }
+}
#[derive(Debug, Deserialize, Clone, PartialEq)]
pub struct ProofDataHandlerConfig {
pub http_port: u16,
pub proof_generation_timeout_in_secs: u16,
- pub tee_support: bool,
+ #[serde(skip)]
+ // ^ Filled in separately in `Self::from_env()`. We cannot use `serde(flatten)` because it
+ // doesn't work with `envy`: https://github.com/softprops/envy/issues/26
+ pub tee_config: TeeConfig,
}
impl ProofDataHandlerConfig {
diff --git a/core/lib/config/src/configs/prover_autoscaler.rs b/core/lib/config/src/configs/prover_autoscaler.rs
index b24a1a26651f..ab6b8fdf202f 100644
--- a/core/lib/config/src/configs/prover_autoscaler.rs
+++ b/core/lib/config/src/configs/prover_autoscaler.rs
@@ -61,6 +61,11 @@ pub struct ProverAutoscalerScalerConfig {
/// Duration after which pending pod considered long pending.
#[serde(default = "ProverAutoscalerScalerConfig::default_long_pending_duration")]
pub long_pending_duration: Duration,
+ /// List of simple autoscaler targets.
+ pub scaler_targets: Vec,
+ /// If dry-run enabled don't send any scale requests.
+ #[serde(default)]
+ pub dry_run: bool,
}
#[derive(
@@ -93,6 +98,41 @@ pub enum Gpu {
A100,
}
+// TODO: generate this enum by QueueReport from https://github.com/matter-labs/zksync-era/blob/main/prover/crates/bin/prover_job_monitor/src/autoscaler_queue_reporter.rs#L23
+// and remove allowing of non_camel_case_types by generating field name parser.
+#[derive(Debug, Display, PartialEq, Eq, Hash, Clone, Deserialize, EnumString, Default)]
+#[allow(non_camel_case_types)]
+pub enum QueueReportFields {
+ #[strum(ascii_case_insensitive)]
+ basic_witness_jobs,
+ #[strum(ascii_case_insensitive)]
+ leaf_witness_jobs,
+ #[strum(ascii_case_insensitive)]
+ node_witness_jobs,
+ #[strum(ascii_case_insensitive)]
+ recursion_tip_witness_jobs,
+ #[strum(ascii_case_insensitive)]
+ scheduler_witness_jobs,
+ #[strum(ascii_case_insensitive)]
+ proof_compressor_jobs,
+ #[default]
+ #[strum(ascii_case_insensitive)]
+ prover_jobs,
+}
+
+/// ScalerTarget can be configured to autoscale any of services for which queue is reported by
+/// prover-job-monitor, except of provers. Provers need special treatment due to GPU requirement.
+#[derive(Debug, Clone, PartialEq, Deserialize, Default)]
+pub struct ScalerTarget {
+ pub queue_report_field: QueueReportFields,
+ pub deployment: String,
+ /// Max replicas per cluster.
+ pub max_replicas: HashMap,
+ /// The queue will be divided by the speed and rounded up to get number of replicas.
+ #[serde(default = "ScalerTarget::default_speed")]
+ pub speed: usize,
+}
+
impl ProverAutoscalerConfig {
/// Default graceful shutdown timeout -- 5 seconds
pub fn default_graceful_shutdown_timeout() -> Duration {
@@ -126,3 +166,9 @@ impl ProverAutoscalerScalerConfig {
Duration::minutes(10)
}
}
+
+impl ScalerTarget {
+ pub fn default_speed() -> usize {
+ 1
+ }
+}
diff --git a/core/lib/config/src/configs/secrets.rs b/core/lib/config/src/configs/secrets.rs
index 779bad370659..75ff067c2473 100644
--- a/core/lib/config/src/configs/secrets.rs
+++ b/core/lib/config/src/configs/secrets.rs
@@ -1,7 +1,10 @@
use anyhow::Context;
use zksync_basic_types::url::SensitiveUrl;
-use crate::configs::{consensus::ConsensusSecrets, da_client::avail::AvailSecrets};
+use crate::configs::{
+ consensus::ConsensusSecrets,
+ da_client::{avail::AvailSecrets, celestia::CelestiaSecrets, eigen::EigenSecrets},
+};
#[derive(Debug, Clone, PartialEq)]
pub struct DatabaseSecrets {
@@ -18,6 +21,8 @@ pub struct L1Secrets {
#[derive(Debug, Clone, PartialEq)]
pub enum DataAvailabilitySecrets {
Avail(AvailSecrets),
+ Celestia(CelestiaSecrets),
+ Eigen(EigenSecrets),
}
#[derive(Debug, Clone, PartialEq)]
diff --git a/core/lib/config/src/lib.rs b/core/lib/config/src/lib.rs
index 9191edc39822..f77a8ceb39ad 100644
--- a/core/lib/config/src/lib.rs
+++ b/core/lib/config/src/lib.rs
@@ -1,10 +1,10 @@
#![allow(clippy::upper_case_acronyms, clippy::derive_partial_eq_without_eq)]
pub use crate::configs::{
- ApiConfig, AvailConfig, BaseTokenAdjusterConfig, ContractVerifierConfig, ContractsConfig,
- DAClientConfig, DADispatcherConfig, DBConfig, EthConfig, EthWatchConfig,
- ExternalProofIntegrationApiConfig, GasAdjusterConfig, GenesisConfig, ObjectStoreConfig,
- PostgresConfig, SnapshotsCreatorConfig,
+ ApiConfig, AvailConfig, BaseTokenAdjusterConfig, CelestiaConfig, ContractVerifierConfig,
+ ContractsConfig, DAClientConfig, DADispatcherConfig, DBConfig, EigenConfig, EthConfig,
+ EthWatchConfig, ExternalProofIntegrationApiConfig, GasAdjusterConfig, GenesisConfig,
+ ObjectStoreConfig, PostgresConfig, SnapshotsCreatorConfig,
};
pub mod configs;
diff --git a/core/lib/config/src/testonly.rs b/core/lib/config/src/testonly.rs
index 9b1ec13e2d2e..49c5cff1dca0 100644
--- a/core/lib/config/src/testonly.rs
+++ b/core/lib/config/src/testonly.rs
@@ -8,7 +8,7 @@ use zksync_basic_types::{
network::Network,
protocol_version::{ProtocolSemanticVersion, ProtocolVersionId, VersionPatch},
pubdata_da::PubdataSendingMode,
- seed_phrase::SeedPhrase,
+ secrets::{APIKey, SeedPhrase},
vm::FastVmMode,
L1BatchNumber, L1ChainId, L2ChainId,
};
@@ -17,7 +17,12 @@ use zksync_crypto_primitives::K256PrivateKey;
use crate::{
configs::{
- self, da_client::DAClientConfig::Avail, external_price_api_client::ForcedPriceClientConfig,
+ self,
+ da_client::{
+ avail::{AvailClientConfig, AvailDefaultConfig},
+ DAClientConfig::Avail,
+ },
+ external_price_api_client::ForcedPriceClientConfig,
},
AvailConfig,
};
@@ -256,6 +261,7 @@ impl Distribution for EncodeDist {
l2_erc20_bridge_addr: self.sample_opt(|| rng.gen()),
l1_shared_bridge_proxy_addr: self.sample_opt(|| rng.gen()),
l2_shared_bridge_addr: self.sample_opt(|| rng.gen()),
+ l2_legacy_shared_bridge_addr: self.sample_opt(|| rng.gen()),
l1_weth_bridge_proxy_addr: self.sample_opt(|| rng.gen()),
l2_weth_bridge_addr: self.sample_opt(|| rng.gen()),
l2_testnet_paymaster_addr: self.sample_opt(|| rng.gen()),
@@ -263,6 +269,7 @@ impl Distribution for EncodeDist {
ecosystem_contracts: self.sample(rng),
base_token_addr: self.sample_opt(|| rng.gen()),
chain_admin_addr: self.sample_opt(|| rng.gen()),
+ l2_da_validator_addr: self.sample_opt(|| rng.gen()),
}
}
}
@@ -328,6 +335,7 @@ impl Distribution for EncodeDist {
configs::ExperimentalVmConfig {
playground: self.sample(rng),
state_keeper_fast_vm_mode: gen_fast_vm_mode(rng),
+ api_fast_vm_mode: gen_fast_vm_mode(rng),
}
}
}
@@ -669,7 +677,11 @@ impl Distribution for EncodeDist {
configs::ProofDataHandlerConfig {
http_port: self.sample(rng),
proof_generation_timeout_in_secs: self.sample(rng),
- tee_support: self.sample(rng),
+ tee_config: configs::TeeConfig {
+ tee_support: self.sample(rng),
+ first_tee_processed_batch: L1BatchNumber(rng.gen()),
+ tee_proof_generation_timeout_in_secs: self.sample(rng),
+ },
}
}
}
@@ -935,11 +947,12 @@ impl Distribution for EncodeDist {
impl Distribution for EncodeDist {
fn sample(&self, rng: &mut R) -> configs::da_client::DAClientConfig {
Avail(AvailConfig {
- api_node_url: self.sample(rng),
bridge_api_url: self.sample(rng),
- app_id: self.sample(rng),
- timeout: self.sample(rng),
- max_retries: self.sample(rng),
+ timeout_ms: self.sample(rng),
+ config: AvailClientConfig::FullClient(AvailDefaultConfig {
+ api_node_url: self.sample(rng),
+ app_id: self.sample(rng),
+ }),
})
}
}
@@ -948,6 +961,7 @@ impl Distribution for EncodeDist {
fn sample(&self, rng: &mut R) -> configs::secrets::DataAvailabilitySecrets {
configs::secrets::DataAvailabilitySecrets::Avail(configs::da_client::avail::AvailSecrets {
seed_phrase: Some(SeedPhrase(Secret::new(self.sample(rng)))),
+ gas_relay_api_key: Some(APIKey(Secret::new(self.sample(rng)))),
})
}
}
@@ -1099,6 +1113,7 @@ impl DistributionL1 logs tree root hash
pub const L2_TO_L1_LOGS_TREE_ROOT_KEY: u32 = 0;
-/// The key of the system log with value of the state diff hash
-pub const STATE_DIFF_HASH_KEY: u32 = 2;
+/// The key of the system log with value of the state diff hash for pre-gateway protocol versions
+pub const STATE_DIFF_HASH_KEY_PRE_GATEWAY: u32 = 2;
-/// The key of the system log with value of the first blob linear hash
-pub const BLOB1_LINEAR_HASH_KEY: u32 = 7;
-
-/// The key of the system log with value of the second blob linear hash
-pub const BLOB2_LINEAR_HASH_KEY: u32 = 8;
+/// The key of the system log with value of the first blob linear hash for pre-gateway protocol versions
+pub const BLOB1_LINEAR_HASH_KEY_PRE_GATEWAY: u32 = 7;
diff --git a/core/lib/contracts/src/lib.rs b/core/lib/contracts/src/lib.rs
index 0ee773abcd4a..cb5be504c8a0 100644
--- a/core/lib/contracts/src/lib.rs
+++ b/core/lib/contracts/src/lib.rs
@@ -516,6 +516,13 @@ impl BaseSystemContracts {
BaseSystemContracts::load_with_bootloader(bootloader_bytecode)
}
+ pub fn playground_gateway() -> Self {
+ let bootloader_bytecode = read_zbin_bytecode(
+ "etc/multivm_bootloaders/vm_gateway/playground_batch.yul/playground_batch.yul.zbin",
+ );
+ BaseSystemContracts::load_with_bootloader(bootloader_bytecode)
+ }
+
pub fn estimate_gas_pre_virtual_blocks() -> Self {
let bootloader_bytecode = read_zbin_bytecode(
"etc/multivm_bootloaders/vm_1_3_2/fee_estimate.yul/fee_estimate.yul.zbin",
@@ -586,6 +593,13 @@ impl BaseSystemContracts {
BaseSystemContracts::load_with_bootloader(bootloader_bytecode)
}
+ pub fn estimate_gas_gateway() -> Self {
+ let bootloader_bytecode = read_zbin_bytecode(
+ "etc/multivm_bootloaders/vm_gateway/fee_estimate.yul/fee_estimate.yul.zbin",
+ );
+ BaseSystemContracts::load_with_bootloader(bootloader_bytecode)
+ }
+
pub fn hashes(&self) -> BaseSystemContractsHashes {
BaseSystemContractsHashes {
bootloader: self.bootloader.hash,
diff --git a/core/lib/dal/.sqlx/query-7aebc0d8eb43bd835c4f175edc4c0371bdc118b25d64fcf526bd6575e4d675c8.json b/core/lib/dal/.sqlx/query-1cb61327bed4d65a3fc81aa2229e01396dacefc0cea8cbcf5807185eb00fc0f7.json
similarity index 78%
rename from core/lib/dal/.sqlx/query-7aebc0d8eb43bd835c4f175edc4c0371bdc118b25d64fcf526bd6575e4d675c8.json
rename to core/lib/dal/.sqlx/query-1cb61327bed4d65a3fc81aa2229e01396dacefc0cea8cbcf5807185eb00fc0f7.json
index dffd3ed8f9d2..48adcd412676 100644
--- a/core/lib/dal/.sqlx/query-7aebc0d8eb43bd835c4f175edc4c0371bdc118b25d64fcf526bd6575e4d675c8.json
+++ b/core/lib/dal/.sqlx/query-1cb61327bed4d65a3fc81aa2229e01396dacefc0cea8cbcf5807185eb00fc0f7.json
@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
- "query": "\n SELECT\n number,\n timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n protocol_version,\n compressed_state_diffs,\n system_logs,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address\n FROM\n l1_batches\n LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number\n WHERE\n number = 0\n OR eth_commit_tx_id IS NOT NULL\n AND commitment IS NOT NULL\n ORDER BY\n number DESC\n LIMIT\n 1\n ",
+ "query": "\n SELECT\n number,\n timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n protocol_version,\n compressed_state_diffs,\n system_logs,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address,\n aggregation_root,\n local_root,\n state_diff_hash,\n data_availability.inclusion_data\n FROM\n l1_batches\n LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number\n LEFT JOIN\n data_availability\n ON data_availability.l1_batch_number = l1_batches.number\n WHERE\n number = 0\n OR eth_commit_tx_id IS NOT NULL\n AND commitment IS NOT NULL\n ORDER BY\n number DESC\n LIMIT\n 1\n ",
"describe": {
"columns": [
{
@@ -142,6 +142,26 @@
"ordinal": 27,
"name": "fee_address",
"type_info": "Bytea"
+ },
+ {
+ "ordinal": 28,
+ "name": "aggregation_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 29,
+ "name": "local_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 30,
+ "name": "state_diff_hash",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 31,
+ "name": "inclusion_data",
+ "type_info": "Bytea"
}
],
"parameters": {
@@ -175,8 +195,12 @@
true,
true,
true,
- false
+ false,
+ true,
+ true,
+ true,
+ true
]
},
- "hash": "7aebc0d8eb43bd835c4f175edc4c0371bdc118b25d64fcf526bd6575e4d675c8"
+ "hash": "1cb61327bed4d65a3fc81aa2229e01396dacefc0cea8cbcf5807185eb00fc0f7"
}
diff --git a/core/lib/dal/.sqlx/query-a62f400a5b0b66300f5febf762c7e0c8a39a49d1cea78ef771d4c64fbbc16756.json b/core/lib/dal/.sqlx/query-250cc655f48144137906a72490680cc9e176729744c779fee97ca9392ae8a8c8.json
similarity index 83%
rename from core/lib/dal/.sqlx/query-a62f400a5b0b66300f5febf762c7e0c8a39a49d1cea78ef771d4c64fbbc16756.json
rename to core/lib/dal/.sqlx/query-250cc655f48144137906a72490680cc9e176729744c779fee97ca9392ae8a8c8.json
index c8c438295e49..5c4ce3d6a4e3 100644
--- a/core/lib/dal/.sqlx/query-a62f400a5b0b66300f5febf762c7e0c8a39a49d1cea78ef771d4c64fbbc16756.json
+++ b/core/lib/dal/.sqlx/query-250cc655f48144137906a72490680cc9e176729744c779fee97ca9392ae8a8c8.json
@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
- "query": "\n SELECT\n number,\n timestamp,\n hash,\n l1_tx_count,\n l2_tx_count,\n fee_account_address AS \"fee_account_address!\",\n base_fee_per_gas,\n l1_gas_price,\n l2_fair_gas_price,\n gas_per_pubdata_limit,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n protocol_version,\n virtual_blocks,\n fair_pubdata_price,\n gas_limit,\n logs_bloom\n FROM\n miniblocks\n ORDER BY\n number DESC\n LIMIT\n 1\n ",
+ "query": "\n SELECT\n number,\n timestamp,\n hash,\n l1_tx_count,\n l2_tx_count,\n fee_account_address AS \"fee_account_address!\",\n base_fee_per_gas,\n l1_gas_price,\n l2_fair_gas_price,\n gas_per_pubdata_limit,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n protocol_version,\n virtual_blocks,\n fair_pubdata_price,\n gas_limit,\n logs_bloom,\n l2_da_validator_address,\n pubdata_type\n FROM\n miniblocks\n ORDER BY\n number DESC\n LIMIT\n 1\n ",
"describe": {
"columns": [
{
@@ -92,6 +92,16 @@
"ordinal": 17,
"name": "logs_bloom",
"type_info": "Bytea"
+ },
+ {
+ "ordinal": 18,
+ "name": "l2_da_validator_address",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 19,
+ "name": "pubdata_type",
+ "type_info": "Text"
}
],
"parameters": {
@@ -115,8 +125,10 @@
false,
true,
true,
- true
+ true,
+ false,
+ false
]
},
- "hash": "a62f400a5b0b66300f5febf762c7e0c8a39a49d1cea78ef771d4c64fbbc16756"
+ "hash": "250cc655f48144137906a72490680cc9e176729744c779fee97ca9392ae8a8c8"
}
diff --git a/core/lib/dal/.sqlx/query-55f4585be3d0f1a147cb10f6e59325fad494a512ba92df95439d2d7fe0f3a285.json b/core/lib/dal/.sqlx/query-398598e20f1892b47bf749b220f611345ef888824e0ca3c5f39befbbc5bd0388.json
similarity index 65%
rename from core/lib/dal/.sqlx/query-55f4585be3d0f1a147cb10f6e59325fad494a512ba92df95439d2d7fe0f3a285.json
rename to core/lib/dal/.sqlx/query-398598e20f1892b47bf749b220f611345ef888824e0ca3c5f39befbbc5bd0388.json
index ecf54f0417b8..ffe785d754ca 100644
--- a/core/lib/dal/.sqlx/query-55f4585be3d0f1a147cb10f6e59325fad494a512ba92df95439d2d7fe0f3a285.json
+++ b/core/lib/dal/.sqlx/query-398598e20f1892b47bf749b220f611345ef888824e0ca3c5f39befbbc5bd0388.json
@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
- "query": "\n UPDATE l1_batches\n SET\n commitment = $1,\n aux_data_hash = $2,\n pass_through_data_hash = $3,\n meta_parameters_hash = $4,\n l2_l1_merkle_root = $5,\n zkporter_is_available = $6,\n compressed_state_diffs = $7,\n compressed_initial_writes = $8,\n compressed_repeated_writes = $9,\n updated_at = NOW()\n WHERE\n number = $10\n AND commitment IS NULL\n ",
+ "query": "\n UPDATE l1_batches\n SET\n commitment = $1,\n aux_data_hash = $2,\n pass_through_data_hash = $3,\n meta_parameters_hash = $4,\n l2_l1_merkle_root = $5,\n zkporter_is_available = $6,\n compressed_state_diffs = $7,\n compressed_initial_writes = $8,\n compressed_repeated_writes = $9,\n state_diff_hash = $10,\n aggregation_root = $11,\n local_root = $12,\n updated_at = NOW()\n WHERE\n number = $13\n AND commitment IS NULL\n ",
"describe": {
"columns": [],
"parameters": {
@@ -14,10 +14,13 @@
"Bytea",
"Bytea",
"Bytea",
+ "Bytea",
+ "Bytea",
+ "Bytea",
"Int8"
]
},
"nullable": []
},
- "hash": "55f4585be3d0f1a147cb10f6e59325fad494a512ba92df95439d2d7fe0f3a285"
+ "hash": "398598e20f1892b47bf749b220f611345ef888824e0ca3c5f39befbbc5bd0388"
}
diff --git a/core/lib/dal/.sqlx/query-2def67eb8372245ed59e76e07d615598f5d22a3aebd893afddded0e3c6b94a3b.json b/core/lib/dal/.sqlx/query-45154c2efc8d07c4f83ae3e229f9892118f5732374e62f35e27800422afb5746.json
similarity index 70%
rename from core/lib/dal/.sqlx/query-2def67eb8372245ed59e76e07d615598f5d22a3aebd893afddded0e3c6b94a3b.json
rename to core/lib/dal/.sqlx/query-45154c2efc8d07c4f83ae3e229f9892118f5732374e62f35e27800422afb5746.json
index afac14e6d5cd..11bff1102932 100644
--- a/core/lib/dal/.sqlx/query-2def67eb8372245ed59e76e07d615598f5d22a3aebd893afddded0e3c6b94a3b.json
+++ b/core/lib/dal/.sqlx/query-45154c2efc8d07c4f83ae3e229f9892118f5732374e62f35e27800422afb5746.json
@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
- "query": "\n SELECT\n number,\n l1_batches.timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n l1_batches.bootloader_code_hash,\n l1_batches.default_aa_code_hash,\n l1_batches.evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n protocol_version,\n compressed_state_diffs,\n system_logs,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address\n FROM\n l1_batches\n LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number\n JOIN protocol_versions ON protocol_versions.id = l1_batches.protocol_version\n WHERE\n eth_commit_tx_id IS NULL\n AND number != 0\n AND protocol_versions.bootloader_code_hash = $1\n AND protocol_versions.default_account_code_hash = $2\n AND commitment IS NOT NULL\n AND (\n protocol_versions.id = $3\n OR protocol_versions.upgrade_tx_hash IS NULL\n )\n ORDER BY\n number\n LIMIT\n $4\n ",
+ "query": "\n SELECT\n number,\n l1_batches.timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n l1_batches.bootloader_code_hash,\n l1_batches.default_aa_code_hash,\n l1_batches.evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n protocol_version,\n compressed_state_diffs,\n system_logs,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address,\n aggregation_root,\n local_root,\n state_diff_hash,\n data_availability.inclusion_data\n FROM\n l1_batches\n LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number\n LEFT JOIN\n data_availability\n ON data_availability.l1_batch_number = l1_batches.number\n JOIN protocol_versions ON protocol_versions.id = l1_batches.protocol_version\n WHERE\n eth_commit_tx_id IS NULL\n AND number != 0\n AND protocol_versions.bootloader_code_hash = $1\n AND protocol_versions.default_account_code_hash = $2\n AND commitment IS NOT NULL\n AND (\n protocol_versions.id = $3\n OR protocol_versions.upgrade_tx_hash IS NULL\n )\n AND events_queue_commitment IS NOT NULL\n AND bootloader_initial_content_commitment IS NOT NULL\n AND (\n data_availability.inclusion_data IS NOT NULL\n OR $4 IS FALSE\n )\n ORDER BY\n number\n LIMIT\n $5\n ",
"describe": {
"columns": [
{
@@ -142,6 +142,26 @@
"ordinal": 27,
"name": "fee_address",
"type_info": "Bytea"
+ },
+ {
+ "ordinal": 28,
+ "name": "aggregation_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 29,
+ "name": "local_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 30,
+ "name": "state_diff_hash",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 31,
+ "name": "inclusion_data",
+ "type_info": "Bytea"
}
],
"parameters": {
@@ -149,6 +169,7 @@
"Bytea",
"Bytea",
"Int4",
+ "Bool",
"Int8"
]
},
@@ -180,8 +201,12 @@
true,
true,
true,
- false
+ false,
+ true,
+ true,
+ true,
+ true
]
},
- "hash": "2def67eb8372245ed59e76e07d615598f5d22a3aebd893afddded0e3c6b94a3b"
+ "hash": "45154c2efc8d07c4f83ae3e229f9892118f5732374e62f35e27800422afb5746"
}
diff --git a/core/lib/dal/.sqlx/query-e2d0bd978f76e0ce09b36b0e4b0a2baec4b2531ecaa8da234863e2eb810761c7.json b/core/lib/dal/.sqlx/query-4bd1a4e612d10f2ca26068c140442f38816f163a3e3fba4fdbb81076b969e970.json
similarity index 79%
rename from core/lib/dal/.sqlx/query-e2d0bd978f76e0ce09b36b0e4b0a2baec4b2531ecaa8da234863e2eb810761c7.json
rename to core/lib/dal/.sqlx/query-4bd1a4e612d10f2ca26068c140442f38816f163a3e3fba4fdbb81076b969e970.json
index e55d10d6f9a8..66d3e18075bf 100644
--- a/core/lib/dal/.sqlx/query-e2d0bd978f76e0ce09b36b0e4b0a2baec4b2531ecaa8da234863e2eb810761c7.json
+++ b/core/lib/dal/.sqlx/query-4bd1a4e612d10f2ca26068c140442f38816f163a3e3fba4fdbb81076b969e970.json
@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
- "query": "\n SELECT\n number,\n timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n protocol_version,\n compressed_state_diffs,\n system_logs,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address\n FROM\n l1_batches\n LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number\n WHERE\n number BETWEEN $1 AND $2\n ORDER BY\n number\n LIMIT\n $3\n ",
+ "query": "\n SELECT\n number,\n timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n protocol_version,\n compressed_state_diffs,\n system_logs,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address,\n aggregation_root,\n local_root,\n state_diff_hash,\n data_availability.inclusion_data\n FROM\n l1_batches\n LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number\n LEFT JOIN\n data_availability\n ON data_availability.l1_batch_number = l1_batches.number\n WHERE\n number BETWEEN $1 AND $2\n ORDER BY\n number\n LIMIT\n $3\n ",
"describe": {
"columns": [
{
@@ -142,6 +142,26 @@
"ordinal": 27,
"name": "fee_address",
"type_info": "Bytea"
+ },
+ {
+ "ordinal": 28,
+ "name": "aggregation_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 29,
+ "name": "local_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 30,
+ "name": "state_diff_hash",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 31,
+ "name": "inclusion_data",
+ "type_info": "Bytea"
}
],
"parameters": {
@@ -179,8 +199,12 @@
true,
true,
true,
- false
+ false,
+ true,
+ true,
+ true,
+ true
]
},
- "hash": "e2d0bd978f76e0ce09b36b0e4b0a2baec4b2531ecaa8da234863e2eb810761c7"
+ "hash": "4bd1a4e612d10f2ca26068c140442f38816f163a3e3fba4fdbb81076b969e970"
}
diff --git a/core/lib/dal/.sqlx/query-0784f2cc13f85763cc7da29902850fa76a03907957b7a0d87ea55a7873f3312e.json b/core/lib/dal/.sqlx/query-62e8330881b73917394384adbf73911add046315e5f8877bc57a34e3dadf9e37.json
similarity index 79%
rename from core/lib/dal/.sqlx/query-0784f2cc13f85763cc7da29902850fa76a03907957b7a0d87ea55a7873f3312e.json
rename to core/lib/dal/.sqlx/query-62e8330881b73917394384adbf73911add046315e5f8877bc57a34e3dadf9e37.json
index 84f677a36c86..dfdb4b6c82e7 100644
--- a/core/lib/dal/.sqlx/query-0784f2cc13f85763cc7da29902850fa76a03907957b7a0d87ea55a7873f3312e.json
+++ b/core/lib/dal/.sqlx/query-62e8330881b73917394384adbf73911add046315e5f8877bc57a34e3dadf9e37.json
@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
- "query": "\n SELECT\n number,\n timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n protocol_version,\n compressed_state_diffs,\n system_logs,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address\n FROM\n l1_batches\n LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number\n WHERE\n eth_commit_tx_id IS NOT NULL\n AND eth_prove_tx_id IS NULL\n ORDER BY\n number\n LIMIT\n $1\n ",
+ "query": "\n SELECT\n number,\n timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n protocol_version,\n compressed_state_diffs,\n system_logs,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address,\n aggregation_root,\n local_root,\n state_diff_hash,\n data_availability.inclusion_data\n FROM\n l1_batches\n LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number\n LEFT JOIN\n data_availability\n ON data_availability.l1_batch_number = l1_batches.number\n WHERE\n eth_commit_tx_id IS NOT NULL\n AND eth_prove_tx_id IS NULL\n ORDER BY\n number\n LIMIT\n $1\n ",
"describe": {
"columns": [
{
@@ -142,6 +142,26 @@
"ordinal": 27,
"name": "fee_address",
"type_info": "Bytea"
+ },
+ {
+ "ordinal": 28,
+ "name": "aggregation_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 29,
+ "name": "local_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 30,
+ "name": "state_diff_hash",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 31,
+ "name": "inclusion_data",
+ "type_info": "Bytea"
}
],
"parameters": {
@@ -177,8 +197,12 @@
true,
true,
true,
- false
+ false,
+ true,
+ true,
+ true,
+ true
]
},
- "hash": "0784f2cc13f85763cc7da29902850fa76a03907957b7a0d87ea55a7873f3312e"
+ "hash": "62e8330881b73917394384adbf73911add046315e5f8877bc57a34e3dadf9e37"
}
diff --git a/core/lib/dal/.sqlx/query-2049362aad5e32981e48e5c5ef7a00a91254ec6c8a68a359d22b02df5a40911f.json b/core/lib/dal/.sqlx/query-7553d8013d101af0451830d26b7d7bd02627ebaf2df7c5ad517cb60a243182d2.json
similarity index 83%
rename from core/lib/dal/.sqlx/query-2049362aad5e32981e48e5c5ef7a00a91254ec6c8a68a359d22b02df5a40911f.json
rename to core/lib/dal/.sqlx/query-7553d8013d101af0451830d26b7d7bd02627ebaf2df7c5ad517cb60a243182d2.json
index b8f8db874b63..6cc2e22382dd 100644
--- a/core/lib/dal/.sqlx/query-2049362aad5e32981e48e5c5ef7a00a91254ec6c8a68a359d22b02df5a40911f.json
+++ b/core/lib/dal/.sqlx/query-7553d8013d101af0451830d26b7d7bd02627ebaf2df7c5ad517cb60a243182d2.json
@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
- "query": "\n SELECT\n miniblocks.number,\n COALESCE(\n miniblocks.l1_batch_number,\n (\n SELECT\n (MAX(number) + 1)\n FROM\n l1_batches\n WHERE\n is_sealed\n ),\n (\n SELECT\n MAX(l1_batch_number) + 1\n FROM\n snapshot_recovery\n )\n ) AS \"l1_batch_number!\",\n (miniblocks.l1_tx_count + miniblocks.l2_tx_count) AS \"tx_count!\",\n miniblocks.timestamp,\n miniblocks.l1_gas_price,\n miniblocks.l2_fair_gas_price,\n miniblocks.fair_pubdata_price,\n miniblocks.bootloader_code_hash,\n miniblocks.default_aa_code_hash,\n miniblocks.evm_emulator_code_hash,\n miniblocks.virtual_blocks,\n miniblocks.hash,\n miniblocks.protocol_version AS \"protocol_version!\",\n miniblocks.fee_account_address AS \"fee_account_address!\"\n FROM\n miniblocks\n WHERE\n miniblocks.number BETWEEN $1 AND $2\n ",
+ "query": "\n SELECT\n miniblocks.number,\n COALESCE(\n miniblocks.l1_batch_number,\n (\n SELECT\n (MAX(number) + 1)\n FROM\n l1_batches\n WHERE\n is_sealed\n ),\n (\n SELECT\n MAX(l1_batch_number) + 1\n FROM\n snapshot_recovery\n )\n ) AS \"l1_batch_number!\",\n (miniblocks.l1_tx_count + miniblocks.l2_tx_count) AS \"tx_count!\",\n miniblocks.timestamp,\n miniblocks.l1_gas_price,\n miniblocks.l2_fair_gas_price,\n miniblocks.fair_pubdata_price,\n miniblocks.bootloader_code_hash,\n miniblocks.default_aa_code_hash,\n miniblocks.evm_emulator_code_hash,\n miniblocks.virtual_blocks,\n miniblocks.hash,\n miniblocks.protocol_version AS \"protocol_version!\",\n miniblocks.fee_account_address AS \"fee_account_address!\",\n miniblocks.l2_da_validator_address AS \"l2_da_validator_address!\",\n miniblocks.pubdata_type AS \"pubdata_type!\"\n FROM\n miniblocks\n WHERE\n miniblocks.number BETWEEN $1 AND $2\n ",
"describe": {
"columns": [
{
@@ -72,6 +72,16 @@
"ordinal": 13,
"name": "fee_account_address!",
"type_info": "Bytea"
+ },
+ {
+ "ordinal": 14,
+ "name": "l2_da_validator_address!",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 15,
+ "name": "pubdata_type!",
+ "type_info": "Text"
}
],
"parameters": {
@@ -94,8 +104,10 @@
false,
false,
true,
+ false,
+ false,
false
]
},
- "hash": "2049362aad5e32981e48e5c5ef7a00a91254ec6c8a68a359d22b02df5a40911f"
+ "hash": "7553d8013d101af0451830d26b7d7bd02627ebaf2df7c5ad517cb60a243182d2"
}
diff --git a/core/lib/dal/.sqlx/query-b456147560b107640abdc10f7ac76b563ff2f0f3a818e8c8a02c2ef632d0b960.json b/core/lib/dal/.sqlx/query-77864e5eb5eada8edf8f4457aa153369701d7cd5f75ca031bf77ca27d0437cb9.json
similarity index 80%
rename from core/lib/dal/.sqlx/query-b456147560b107640abdc10f7ac76b563ff2f0f3a818e8c8a02c2ef632d0b960.json
rename to core/lib/dal/.sqlx/query-77864e5eb5eada8edf8f4457aa153369701d7cd5f75ca031bf77ca27d0437cb9.json
index 80a6946026b0..f4e08abe31c5 100644
--- a/core/lib/dal/.sqlx/query-b456147560b107640abdc10f7ac76b563ff2f0f3a818e8c8a02c2ef632d0b960.json
+++ b/core/lib/dal/.sqlx/query-77864e5eb5eada8edf8f4457aa153369701d7cd5f75ca031bf77ca27d0437cb9.json
@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
- "query": "\n SELECT\n number,\n timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n protocol_version,\n system_logs,\n compressed_state_diffs,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address\n FROM\n l1_batches\n LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number\n WHERE\n is_sealed\n AND number = $1\n ",
+ "query": "\n SELECT\n number,\n timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n protocol_version,\n system_logs,\n compressed_state_diffs,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address,\n aggregation_root,\n local_root,\n state_diff_hash,\n data_availability.inclusion_data\n FROM\n l1_batches\n LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number\n LEFT JOIN\n data_availability\n ON data_availability.l1_batch_number = l1_batches.number\n WHERE\n is_sealed\n AND number = $1\n ",
"describe": {
"columns": [
{
@@ -142,6 +142,26 @@
"ordinal": 27,
"name": "fee_address",
"type_info": "Bytea"
+ },
+ {
+ "ordinal": 28,
+ "name": "aggregation_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 29,
+ "name": "local_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 30,
+ "name": "state_diff_hash",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 31,
+ "name": "inclusion_data",
+ "type_info": "Bytea"
}
],
"parameters": {
@@ -177,8 +197,12 @@
true,
true,
true,
- false
+ false,
+ true,
+ true,
+ true,
+ true
]
},
- "hash": "b456147560b107640abdc10f7ac76b563ff2f0f3a818e8c8a02c2ef632d0b960"
+ "hash": "77864e5eb5eada8edf8f4457aa153369701d7cd5f75ca031bf77ca27d0437cb9"
}
diff --git a/core/lib/dal/.sqlx/query-34910600545933d85931d41bfe2dfcb3522a0772ac3d2476652df4216d823e04.json b/core/lib/dal/.sqlx/query-7d8c19c3568c03ec3e4a788b22c233f6503bc79cc9f809d35c558e275ba117ba.json
similarity index 55%
rename from core/lib/dal/.sqlx/query-34910600545933d85931d41bfe2dfcb3522a0772ac3d2476652df4216d823e04.json
rename to core/lib/dal/.sqlx/query-7d8c19c3568c03ec3e4a788b22c233f6503bc79cc9f809d35c558e275ba117ba.json
index 35c606bf22bb..f89f531c4463 100644
--- a/core/lib/dal/.sqlx/query-34910600545933d85931d41bfe2dfcb3522a0772ac3d2476652df4216d823e04.json
+++ b/core/lib/dal/.sqlx/query-7d8c19c3568c03ec3e4a788b22c233f6503bc79cc9f809d35c558e275ba117ba.json
@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
- "query": "\n INSERT INTO\n miniblocks (\n number,\n timestamp,\n hash,\n l1_tx_count,\n l2_tx_count,\n fee_account_address,\n base_fee_per_gas,\n l1_gas_price,\n l2_fair_gas_price,\n gas_per_pubdata_limit,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n protocol_version,\n virtual_blocks,\n fair_pubdata_price,\n gas_limit,\n logs_bloom,\n created_at,\n updated_at\n )\n VALUES\n (\n $1,\n $2,\n $3,\n $4,\n $5,\n $6,\n $7,\n $8,\n $9,\n $10,\n $11,\n $12,\n $13,\n $14,\n $15,\n $16,\n $17,\n $18,\n NOW(),\n NOW()\n )\n ",
+ "query": "\n INSERT INTO\n miniblocks (\n number,\n timestamp,\n hash,\n l1_tx_count,\n l2_tx_count,\n fee_account_address,\n base_fee_per_gas,\n l1_gas_price,\n l2_fair_gas_price,\n gas_per_pubdata_limit,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n protocol_version,\n virtual_blocks,\n fair_pubdata_price,\n gas_limit,\n logs_bloom,\n l2_da_validator_address,\n pubdata_type,\n created_at,\n updated_at\n )\n VALUES\n (\n $1,\n $2,\n $3,\n $4,\n $5,\n $6,\n $7,\n $8,\n $9,\n $10,\n $11,\n $12,\n $13,\n $14,\n $15,\n $16,\n $17,\n $18,\n $19,\n $20,\n NOW(),\n NOW()\n )\n ",
"describe": {
"columns": [],
"parameters": {
@@ -22,10 +22,12 @@
"Int8",
"Int8",
"Int8",
- "Bytea"
+ "Bytea",
+ "Bytea",
+ "Text"
]
},
"nullable": []
},
- "hash": "34910600545933d85931d41bfe2dfcb3522a0772ac3d2476652df4216d823e04"
+ "hash": "7d8c19c3568c03ec3e4a788b22c233f6503bc79cc9f809d35c558e275ba117ba"
}
diff --git a/core/lib/dal/.sqlx/query-f30748bef5f8d08b60739cdfd9508c8132d0958e4e25f4954e93d2095b4f11e8.json b/core/lib/dal/.sqlx/query-a42121cd85daeb95ee268ba5cff1806fcc54d73216a7dc54be6ba210ef02d789.json
similarity index 73%
rename from core/lib/dal/.sqlx/query-f30748bef5f8d08b60739cdfd9508c8132d0958e4e25f4954e93d2095b4f11e8.json
rename to core/lib/dal/.sqlx/query-a42121cd85daeb95ee268ba5cff1806fcc54d73216a7dc54be6ba210ef02d789.json
index 4f138822ad1b..9a93ba45978e 100644
--- a/core/lib/dal/.sqlx/query-f30748bef5f8d08b60739cdfd9508c8132d0958e4e25f4954e93d2095b4f11e8.json
+++ b/core/lib/dal/.sqlx/query-a42121cd85daeb95ee268ba5cff1806fcc54d73216a7dc54be6ba210ef02d789.json
@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
- "query": "\n SELECT\n number,\n timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n system_logs,\n compressed_state_diffs,\n protocol_version,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address\n FROM\n (\n SELECT\n l1_batches.*,\n ROW_NUMBER() OVER (\n ORDER BY\n number ASC\n ) AS row_number\n FROM\n l1_batches\n WHERE\n eth_commit_tx_id IS NOT NULL\n AND l1_batches.skip_proof = TRUE\n AND l1_batches.number > $1\n ORDER BY\n number\n LIMIT\n $2\n ) inn\n LEFT JOIN commitments ON commitments.l1_batch_number = inn.number\n WHERE\n number - row_number = $1\n ",
+ "query": "\n SELECT\n number,\n timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n system_logs,\n compressed_state_diffs,\n protocol_version,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address,\n aggregation_root,\n local_root,\n state_diff_hash,\n data_availability.inclusion_data\n FROM\n (\n SELECT\n l1_batches.*,\n ROW_NUMBER() OVER (\n ORDER BY\n number ASC\n ) AS row_number\n FROM\n l1_batches\n WHERE\n eth_commit_tx_id IS NOT NULL\n AND l1_batches.skip_proof = TRUE\n AND l1_batches.number > $1\n ORDER BY\n number\n LIMIT\n $2\n ) inn\n LEFT JOIN commitments ON commitments.l1_batch_number = inn.number\n LEFT JOIN data_availability ON data_availability.l1_batch_number = inn.number\n WHERE\n number - row_number = $1\n ",
"describe": {
"columns": [
{
@@ -142,6 +142,26 @@
"ordinal": 27,
"name": "fee_address",
"type_info": "Bytea"
+ },
+ {
+ "ordinal": 28,
+ "name": "aggregation_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 29,
+ "name": "local_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 30,
+ "name": "state_diff_hash",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 31,
+ "name": "inclusion_data",
+ "type_info": "Bytea"
}
],
"parameters": {
@@ -178,8 +198,12 @@
true,
true,
true,
- false
+ false,
+ true,
+ true,
+ true,
+ true
]
},
- "hash": "f30748bef5f8d08b60739cdfd9508c8132d0958e4e25f4954e93d2095b4f11e8"
+ "hash": "a42121cd85daeb95ee268ba5cff1806fcc54d73216a7dc54be6ba210ef02d789"
}
diff --git a/core/lib/dal/.sqlx/query-942d6d948770c374ba4d3566c50e56e43137ac0cf45312d70dec0c407cadc1bf.json b/core/lib/dal/.sqlx/query-b7d448837439a3e3dfe73070d3c20e9c138d0a6d35e9ce7fc396c5e76fbc25dd.json
similarity index 73%
rename from core/lib/dal/.sqlx/query-942d6d948770c374ba4d3566c50e56e43137ac0cf45312d70dec0c407cadc1bf.json
rename to core/lib/dal/.sqlx/query-b7d448837439a3e3dfe73070d3c20e9c138d0a6d35e9ce7fc396c5e76fbc25dd.json
index 8c22b4f92c4e..8a68b1a9b9bd 100644
--- a/core/lib/dal/.sqlx/query-942d6d948770c374ba4d3566c50e56e43137ac0cf45312d70dec0c407cadc1bf.json
+++ b/core/lib/dal/.sqlx/query-b7d448837439a3e3dfe73070d3c20e9c138d0a6d35e9ce7fc396c5e76fbc25dd.json
@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
- "query": "\n SELECT\n number,\n l1_batches.timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n l1_batches.bootloader_code_hash,\n l1_batches.default_aa_code_hash,\n l1_batches.evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n protocol_version,\n compressed_state_diffs,\n system_logs,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address\n FROM\n l1_batches\n LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number\n LEFT JOIN\n data_availability\n ON data_availability.l1_batch_number = l1_batches.number\n JOIN protocol_versions ON protocol_versions.id = l1_batches.protocol_version\n WHERE\n eth_commit_tx_id IS NULL\n AND number != 0\n AND protocol_versions.bootloader_code_hash = $1\n AND protocol_versions.default_account_code_hash = $2\n AND commitment IS NOT NULL\n AND (\n protocol_versions.id = $3\n OR protocol_versions.upgrade_tx_hash IS NULL\n )\n AND events_queue_commitment IS NOT NULL\n AND bootloader_initial_content_commitment IS NOT NULL\n AND (\n data_availability.inclusion_data IS NOT NULL\n OR $4 IS FALSE\n )\n ORDER BY\n number\n LIMIT\n $5\n ",
+ "query": "\n SELECT\n number,\n l1_batches.timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n l1_batches.bootloader_code_hash,\n l1_batches.default_aa_code_hash,\n l1_batches.evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n protocol_version,\n compressed_state_diffs,\n system_logs,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address,\n aggregation_root,\n local_root,\n state_diff_hash,\n data_availability.inclusion_data\n FROM\n l1_batches\n LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number\n JOIN protocol_versions ON protocol_versions.id = l1_batches.protocol_version\n LEFT JOIN\n data_availability\n ON data_availability.l1_batch_number = l1_batches.number\n WHERE\n eth_commit_tx_id IS NULL\n AND number != 0\n AND protocol_versions.bootloader_code_hash = $1\n AND protocol_versions.default_account_code_hash = $2\n AND commitment IS NOT NULL\n AND (\n protocol_versions.id = $3\n OR protocol_versions.upgrade_tx_hash IS NULL\n )\n ORDER BY\n number\n LIMIT\n $4\n ",
"describe": {
"columns": [
{
@@ -142,6 +142,26 @@
"ordinal": 27,
"name": "fee_address",
"type_info": "Bytea"
+ },
+ {
+ "ordinal": 28,
+ "name": "aggregation_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 29,
+ "name": "local_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 30,
+ "name": "state_diff_hash",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 31,
+ "name": "inclusion_data",
+ "type_info": "Bytea"
}
],
"parameters": {
@@ -149,7 +169,6 @@
"Bytea",
"Bytea",
"Int4",
- "Bool",
"Int8"
]
},
@@ -181,8 +200,12 @@
true,
true,
true,
- false
+ false,
+ true,
+ true,
+ true,
+ true
]
},
- "hash": "942d6d948770c374ba4d3566c50e56e43137ac0cf45312d70dec0c407cadc1bf"
+ "hash": "b7d448837439a3e3dfe73070d3c20e9c138d0a6d35e9ce7fc396c5e76fbc25dd"
}
diff --git a/core/lib/dal/.sqlx/query-5aa487a98dff53a5d32a5916a26cbf3ffb03b3791c0e9a9f39fb85cfffc65db2.json b/core/lib/dal/.sqlx/query-c5aedd2b1871d8f6276a31482caa673e4b5bba059ebe07bbbb64578881db030b.json
similarity index 77%
rename from core/lib/dal/.sqlx/query-5aa487a98dff53a5d32a5916a26cbf3ffb03b3791c0e9a9f39fb85cfffc65db2.json
rename to core/lib/dal/.sqlx/query-c5aedd2b1871d8f6276a31482caa673e4b5bba059ebe07bbbb64578881db030b.json
index 4eae4f778cee..f97ea8a6ccd5 100644
--- a/core/lib/dal/.sqlx/query-5aa487a98dff53a5d32a5916a26cbf3ffb03b3791c0e9a9f39fb85cfffc65db2.json
+++ b/core/lib/dal/.sqlx/query-c5aedd2b1871d8f6276a31482caa673e4b5bba059ebe07bbbb64578881db030b.json
@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
- "query": "\n SELECT\n number,\n timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n protocol_version,\n compressed_state_diffs,\n system_logs,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address\n FROM\n l1_batches\n LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number\n WHERE\n eth_prove_tx_id IS NOT NULL\n AND eth_execute_tx_id IS NULL\n ORDER BY\n number\n LIMIT\n $1\n ",
+ "query": "\n SELECT\n number,\n timestamp,\n l1_tx_count,\n l2_tx_count,\n bloom,\n priority_ops_onchain_data,\n hash,\n commitment,\n l2_to_l1_messages,\n used_contract_hashes,\n compressed_initial_writes,\n compressed_repeated_writes,\n l2_l1_merkle_root,\n rollup_last_leaf_index,\n zkporter_is_available,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n aux_data_hash,\n pass_through_data_hash,\n meta_parameters_hash,\n protocol_version,\n compressed_state_diffs,\n system_logs,\n events_queue_commitment,\n bootloader_initial_content_commitment,\n pubdata_input,\n fee_address,\n aggregation_root,\n local_root,\n state_diff_hash,\n data_availability.inclusion_data\n FROM\n l1_batches\n LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number\n LEFT JOIN\n data_availability\n ON data_availability.l1_batch_number = l1_batches.number\n WHERE\n eth_prove_tx_id IS NOT NULL\n AND eth_execute_tx_id IS NULL\n ORDER BY\n number\n LIMIT\n $1\n ",
"describe": {
"columns": [
{
@@ -142,6 +142,26 @@
"ordinal": 27,
"name": "fee_address",
"type_info": "Bytea"
+ },
+ {
+ "ordinal": 28,
+ "name": "aggregation_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 29,
+ "name": "local_root",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 30,
+ "name": "state_diff_hash",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 31,
+ "name": "inclusion_data",
+ "type_info": "Bytea"
}
],
"parameters": {
@@ -177,8 +197,12 @@
true,
true,
true,
- false
+ false,
+ true,
+ true,
+ true,
+ true
]
},
- "hash": "5aa487a98dff53a5d32a5916a26cbf3ffb03b3791c0e9a9f39fb85cfffc65db2"
+ "hash": "c5aedd2b1871d8f6276a31482caa673e4b5bba059ebe07bbbb64578881db030b"
}
diff --git a/core/lib/dal/.sqlx/query-f208ac4d454220cdd5cf8fa1405b21ca4cc94c38a7d18023ef1e89de484e60d8.json b/core/lib/dal/.sqlx/query-d4cdd4eed07dfdad2757c480903f7999eabb611338925abe9dc9e64c837183d9.json
similarity index 84%
rename from core/lib/dal/.sqlx/query-f208ac4d454220cdd5cf8fa1405b21ca4cc94c38a7d18023ef1e89de484e60d8.json
rename to core/lib/dal/.sqlx/query-d4cdd4eed07dfdad2757c480903f7999eabb611338925abe9dc9e64c837183d9.json
index 700352c1a8bf..111234e02b75 100644
--- a/core/lib/dal/.sqlx/query-f208ac4d454220cdd5cf8fa1405b21ca4cc94c38a7d18023ef1e89de484e60d8.json
+++ b/core/lib/dal/.sqlx/query-d4cdd4eed07dfdad2757c480903f7999eabb611338925abe9dc9e64c837183d9.json
@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
- "query": "\n SELECT\n number,\n timestamp,\n hash,\n l1_tx_count,\n l2_tx_count,\n fee_account_address AS \"fee_account_address!\",\n base_fee_per_gas,\n l1_gas_price,\n l2_fair_gas_price,\n gas_per_pubdata_limit,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n protocol_version,\n virtual_blocks,\n fair_pubdata_price,\n gas_limit,\n logs_bloom\n FROM\n miniblocks\n WHERE\n number = $1\n ",
+ "query": "\n SELECT\n number,\n timestamp,\n hash,\n l1_tx_count,\n l2_tx_count,\n fee_account_address AS \"fee_account_address!\",\n base_fee_per_gas,\n l1_gas_price,\n l2_fair_gas_price,\n gas_per_pubdata_limit,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n protocol_version,\n virtual_blocks,\n fair_pubdata_price,\n gas_limit,\n logs_bloom,\n l2_da_validator_address,\n pubdata_type\n FROM\n miniblocks\n WHERE\n number = $1\n ",
"describe": {
"columns": [
{
@@ -92,6 +92,16 @@
"ordinal": 17,
"name": "logs_bloom",
"type_info": "Bytea"
+ },
+ {
+ "ordinal": 18,
+ "name": "l2_da_validator_address",
+ "type_info": "Bytea"
+ },
+ {
+ "ordinal": 19,
+ "name": "pubdata_type",
+ "type_info": "Text"
}
],
"parameters": {
@@ -117,8 +127,10 @@
false,
true,
true,
- true
+ true,
+ false,
+ false
]
},
- "hash": "f208ac4d454220cdd5cf8fa1405b21ca4cc94c38a7d18023ef1e89de484e60d8"
+ "hash": "d4cdd4eed07dfdad2757c480903f7999eabb611338925abe9dc9e64c837183d9"
}
diff --git a/core/lib/dal/migrations/20240925103531_gateway_upgrade.down.sql b/core/lib/dal/migrations/20240925103531_gateway_upgrade.down.sql
new file mode 100644
index 000000000000..9af34d7dc8ee
--- /dev/null
+++ b/core/lib/dal/migrations/20240925103531_gateway_upgrade.down.sql
@@ -0,0 +1,8 @@
+ALTER TABLE l1_batches DROP COLUMN IF EXISTS state_diff_hash BYTEA;
+
+ALTER TABLE l1_batches DROP COLUMN IF EXISTS aggregation_root;
+ALTER TABLE l1_batches DROP COLUMN IF EXISTS local_root;
+
+ALTER TABLE miniblocks
+ DROP COLUMN IF EXISTS l2_da_validator_address,
+ DROP COLUMN IF EXISTS pubdata_type;
diff --git a/core/lib/dal/migrations/20240925103531_gateway_upgrade.up.sql b/core/lib/dal/migrations/20240925103531_gateway_upgrade.up.sql
new file mode 100644
index 000000000000..a58464f6ebb3
--- /dev/null
+++ b/core/lib/dal/migrations/20240925103531_gateway_upgrade.up.sql
@@ -0,0 +1,11 @@
+ALTER TABLE l1_batches ADD COLUMN IF NOT EXISTS state_diff_hash BYTEA;
+
+ALTER TABLE l1_batches ADD COLUMN IF NOT EXISTS aggregation_root BYTEA;
+ALTER TABLE l1_batches ADD COLUMN IF NOT EXISTS local_root BYTEA;
+
+ALTER TABLE miniblocks
+ ADD COLUMN IF NOT EXISTS l2_da_validator_address BYTEA NOT NULL DEFAULT '\x0000000000000000000000000000000000000000'::bytea,
+ -- There are miniblocks that used the `Rollup' type, but were actually used on a Validium chain.
+ -- This is okay, since this field represents how the VM works with the DA, rather what is committed on L1.
+ ADD COLUMN IF NOT EXISTS pubdata_type TEXT NOT NULL DEFAULT 'Rollup';
+-- ^ Add a default value so that DB queries don't fail even if the DB migration is not completed.
diff --git a/core/lib/dal/src/blocks_dal.rs b/core/lib/dal/src/blocks_dal.rs
index f71dc68ce757..943aa12caf75 100644
--- a/core/lib/dal/src/blocks_dal.rs
+++ b/core/lib/dal/src/blocks_dal.rs
@@ -344,10 +344,17 @@ impl BlocksDal<'_, '_> {
events_queue_commitment,
bootloader_initial_content_commitment,
pubdata_input,
- fee_address
+ fee_address,
+ aggregation_root,
+ local_root,
+ state_diff_hash,
+ data_availability.inclusion_data
FROM
l1_batches
LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number
+ LEFT JOIN
+ data_availability
+ ON data_availability.l1_batch_number = l1_batches.number
WHERE
is_sealed
AND number = $1
@@ -841,6 +848,8 @@ impl BlocksDal<'_, '_> {
fair_pubdata_price,
gas_limit,
logs_bloom,
+ l2_da_validator_address,
+ pubdata_type,
created_at,
updated_at
)
@@ -864,6 +873,8 @@ impl BlocksDal<'_, '_> {
$16,
$17,
$18,
+ $19,
+ $20,
NOW(),
NOW()
)
@@ -896,6 +907,11 @@ impl BlocksDal<'_, '_> {
l2_block_header.batch_fee_input.fair_pubdata_price() as i64,
l2_block_header.gas_limit as i64,
l2_block_header.logs_bloom.as_bytes(),
+ l2_block_header
+ .pubdata_params
+ .l2_da_validator_address
+ .as_bytes(),
+ l2_block_header.pubdata_params.pubdata_type.to_string(),
);
instrumentation.with(query).execute(self.storage).await?;
@@ -924,7 +940,9 @@ impl BlocksDal<'_, '_> {
virtual_blocks,
fair_pubdata_price,
gas_limit,
- logs_bloom
+ logs_bloom,
+ l2_da_validator_address,
+ pubdata_type
FROM
miniblocks
ORDER BY
@@ -965,7 +983,9 @@ impl BlocksDal<'_, '_> {
virtual_blocks,
fair_pubdata_price,
gas_limit,
- logs_bloom
+ logs_bloom,
+ l2_da_validator_address,
+ pubdata_type
FROM
miniblocks
WHERE
@@ -1062,9 +1082,12 @@ impl BlocksDal<'_, '_> {
compressed_state_diffs = $7,
compressed_initial_writes = $8,
compressed_repeated_writes = $9,
+ state_diff_hash = $10,
+ aggregation_root = $11,
+ local_root = $12,
updated_at = NOW()
WHERE
- number = $10
+ number = $13
AND commitment IS NULL
"#,
commitment_artifacts.commitment_hash.commitment.as_bytes(),
@@ -1082,6 +1105,9 @@ impl BlocksDal<'_, '_> {
commitment_artifacts.compressed_state_diffs,
commitment_artifacts.compressed_initial_writes,
commitment_artifacts.compressed_repeated_writes,
+ commitment_artifacts.state_diff_hash.as_bytes(),
+ commitment_artifacts.aggregation_root.as_bytes(),
+ commitment_artifacts.local_root.as_bytes(),
i64::from(number.0),
)
.instrument("save_l1_batch_commitment_artifacts")
@@ -1189,10 +1215,17 @@ impl BlocksDal<'_, '_> {
events_queue_commitment,
bootloader_initial_content_commitment,
pubdata_input,
- fee_address
+ fee_address,
+ aggregation_root,
+ local_root,
+ state_diff_hash,
+ data_availability.inclusion_data
FROM
l1_batches
LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number
+ LEFT JOIN
+ data_availability
+ ON data_availability.l1_batch_number = l1_batches.number
WHERE
number = 0
OR eth_commit_tx_id IS NOT NULL
@@ -1377,10 +1410,17 @@ impl BlocksDal<'_, '_> {
events_queue_commitment,
bootloader_initial_content_commitment,
pubdata_input,
- fee_address
+ fee_address,
+ aggregation_root,
+ local_root,
+ state_diff_hash,
+ data_availability.inclusion_data
FROM
l1_batches
LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number
+ LEFT JOIN
+ data_availability
+ ON data_availability.l1_batch_number = l1_batches.number
WHERE
eth_commit_tx_id IS NOT NULL
AND eth_prove_tx_id IS NULL
@@ -1459,7 +1499,11 @@ impl BlocksDal<'_, '_> {
events_queue_commitment,
bootloader_initial_content_commitment,
pubdata_input,
- fee_address
+ fee_address,
+ aggregation_root,
+ local_root,
+ state_diff_hash,
+ data_availability.inclusion_data
FROM
(
SELECT
@@ -1480,6 +1524,7 @@ impl BlocksDal<'_, '_> {
$2
) inn
LEFT JOIN commitments ON commitments.l1_batch_number = inn.number
+ LEFT JOIN data_availability ON data_availability.l1_batch_number = inn.number
WHERE
number - row_number = $1
"#,
@@ -1534,10 +1579,17 @@ impl BlocksDal<'_, '_> {
events_queue_commitment,
bootloader_initial_content_commitment,
pubdata_input,
- fee_address
+ fee_address,
+ aggregation_root,
+ local_root,
+ state_diff_hash,
+ data_availability.inclusion_data
FROM
l1_batches
LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number
+ LEFT JOIN
+ data_availability
+ ON data_availability.l1_batch_number = l1_batches.number
WHERE
eth_prove_tx_id IS NOT NULL
AND eth_execute_tx_id IS NULL
@@ -1663,10 +1715,17 @@ impl BlocksDal<'_, '_> {
events_queue_commitment,
bootloader_initial_content_commitment,
pubdata_input,
- fee_address
+ fee_address,
+ aggregation_root,
+ local_root,
+ state_diff_hash,
+ data_availability.inclusion_data
FROM
l1_batches
LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number
+ LEFT JOIN
+ data_availability
+ ON data_availability.l1_batch_number = l1_batches.number
WHERE
number BETWEEN $1 AND $2
ORDER BY
@@ -1729,11 +1788,18 @@ impl BlocksDal<'_, '_> {
events_queue_commitment,
bootloader_initial_content_commitment,
pubdata_input,
- fee_address
+ fee_address,
+ aggregation_root,
+ local_root,
+ state_diff_hash,
+ data_availability.inclusion_data
FROM
l1_batches
LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number
JOIN protocol_versions ON protocol_versions.id = l1_batches.protocol_version
+ LEFT JOIN
+ data_availability
+ ON data_availability.l1_batch_number = l1_batches.number
WHERE
eth_commit_tx_id IS NULL
AND number != 0
@@ -1809,7 +1875,11 @@ impl BlocksDal<'_, '_> {
events_queue_commitment,
bootloader_initial_content_commitment,
pubdata_input,
- fee_address
+ fee_address,
+ aggregation_root,
+ local_root,
+ state_diff_hash,
+ data_availability.inclusion_data
FROM
l1_batches
LEFT JOIN commitments ON commitments.l1_batch_number = l1_batches.number
diff --git a/core/lib/dal/src/consensus/conv.rs b/core/lib/dal/src/consensus/conv.rs
index 269c47fa2dd1..f0948adfd1da 100644
--- a/core/lib/dal/src/consensus/conv.rs
+++ b/core/lib/dal/src/consensus/conv.rs
@@ -2,9 +2,11 @@
use anyhow::{anyhow, Context as _};
use zksync_concurrency::net;
use zksync_consensus_roles::{attester, node};
-use zksync_protobuf::{read_required, required, ProtoFmt, ProtoRepr};
+use zksync_protobuf::{read_optional_repr, read_required, required, ProtoFmt, ProtoRepr};
use zksync_types::{
- abi, ethabi,
+ abi,
+ commitment::{L1BatchCommitmentMode, PubdataParams},
+ ethabi,
fee::Fee,
l1::{OpProcessingType, PriorityQueueType},
l2::TransactionType,
@@ -102,6 +104,31 @@ impl ProtoFmt for AttestationStatus {
}
}
+impl ProtoRepr for proto::PubdataParams {
+ type Type = PubdataParams;
+
+ fn read(&self) -> anyhow::Result {
+ Ok(Self::Type {
+ l2_da_validator_address: required(&self.l2_da_validator_address)
+ .and_then(|a| parse_h160(a))
+ .context("l2_da_validator_address")?,
+ pubdata_type: required(&self.pubdata_type)
+ .and_then(|x| Ok(proto::L1BatchCommitDataGeneratorMode::try_from(*x)?))
+ .context("pubdata_type")?
+ .parse(),
+ })
+ }
+
+ fn build(this: &Self::Type) -> Self {
+ Self {
+ l2_da_validator_address: Some(this.l2_da_validator_address.as_bytes().into()),
+ pubdata_type: Some(
+ proto::L1BatchCommitDataGeneratorMode::new(&this.pubdata_type) as i32,
+ ),
+ }
+ }
+}
+
impl ProtoFmt for Payload {
type Proto = proto::Payload;
@@ -135,7 +162,7 @@ impl ProtoFmt for Payload {
}
}
- Ok(Self {
+ let this = Self {
protocol_version,
hash: required(&r.hash)
.and_then(|h| parse_h256(h))
@@ -153,10 +180,32 @@ impl ProtoFmt for Payload {
.context("operator_address")?,
transactions,
last_in_batch: *required(&r.last_in_batch).context("last_in_batch")?,
- })
+ pubdata_params: read_optional_repr(&r.pubdata_params)
+ .context("pubdata_params")?
+ .unwrap_or_default(),
+ };
+ if this.protocol_version.is_pre_gateway() {
+ anyhow::ensure!(
+ this.pubdata_params == PubdataParams::default(),
+ "pubdata_params should have the default value in pre-gateway protocol_version"
+ );
+ }
+ if this.pubdata_params == PubdataParams::default() {
+ anyhow::ensure!(
+ r.pubdata_params.is_none(),
+ "default pubdata_params should be encoded as None"
+ );
+ }
+ Ok(this)
}
fn build(&self) -> Self::Proto {
+ if self.protocol_version.is_pre_gateway() {
+ assert_eq!(
+ self.pubdata_params, PubdataParams::default(),
+ "BUG DETECTED: pubdata_params should have the default value in pre-gateway protocol_version"
+ );
+ }
let mut x = Self::Proto {
protocol_version: Some((self.protocol_version as u16).into()),
hash: Some(self.hash.as_bytes().into()),
@@ -171,6 +220,11 @@ impl ProtoFmt for Payload {
transactions: vec![],
transactions_v25: vec![],
last_in_batch: Some(self.last_in_batch),
+ pubdata_params: if self.pubdata_params == PubdataParams::default() {
+ None
+ } else {
+ Some(ProtoRepr::build(&self.pubdata_params))
+ },
};
match self.protocol_version {
v if v >= ProtocolVersionId::Version25 => {
@@ -517,3 +571,19 @@ impl ProtoRepr for proto::AttesterCommittee {
}
}
}
+
+impl proto::L1BatchCommitDataGeneratorMode {
+ pub(crate) fn new(n: &L1BatchCommitmentMode) -> Self {
+ match n {
+ L1BatchCommitmentMode::Rollup => Self::Rollup,
+ L1BatchCommitmentMode::Validium => Self::Validium,
+ }
+ }
+
+ pub(crate) fn parse(&self) -> L1BatchCommitmentMode {
+ match self {
+ Self::Rollup => L1BatchCommitmentMode::Rollup,
+ Self::Validium => L1BatchCommitmentMode::Validium,
+ }
+ }
+}
diff --git a/core/lib/dal/src/consensus/mod.rs b/core/lib/dal/src/consensus/mod.rs
index 8e88265730e9..96efc6348350 100644
--- a/core/lib/dal/src/consensus/mod.rs
+++ b/core/lib/dal/src/consensus/mod.rs
@@ -2,7 +2,9 @@ use std::collections::BTreeMap;
use zksync_concurrency::net;
use zksync_consensus_roles::{attester, node, validator};
-use zksync_types::{ethabi, Address, L1BatchNumber, ProtocolVersionId, Transaction, H256};
+use zksync_types::{
+ commitment::PubdataParams, ethabi, Address, L1BatchNumber, ProtocolVersionId, Transaction, H256,
+};
mod conv;
pub mod proto;
@@ -46,6 +48,7 @@ pub struct Payload {
pub operator_address: Address,
pub transactions: Vec,
pub last_in_batch: bool,
+ pub pubdata_params: PubdataParams,
}
impl Payload {
diff --git a/core/lib/dal/src/consensus/proto/mod.proto b/core/lib/dal/src/consensus/proto/mod.proto
index 421904bf966b..49a69e8a36ec 100644
--- a/core/lib/dal/src/consensus/proto/mod.proto
+++ b/core/lib/dal/src/consensus/proto/mod.proto
@@ -26,6 +26,12 @@ message Payload {
// Set for protocol_version >= 25.
repeated TransactionV25 transactions_v25 = 12;
optional bool last_in_batch = 10; // required
+ optional PubdataParams pubdata_params = 13; // optional
+}
+
+message PubdataParams {
+ optional bytes l2_da_validator_address = 1; // required; H160
+ optional L1BatchCommitDataGeneratorMode pubdata_type = 2; // required
}
message L1Transaction {
@@ -142,3 +148,8 @@ message AttestationStatus {
optional roles.validator.GenesisHash genesis = 1; // required
optional uint64 next_batch_to_attest = 2; // required
}
+
+enum L1BatchCommitDataGeneratorMode {
+ Rollup = 0;
+ Validium = 1;
+}
diff --git a/core/lib/dal/src/consensus/tests.rs b/core/lib/dal/src/consensus/tests.rs
index e8342b7446cc..df6ee24bfa94 100644
--- a/core/lib/dal/src/consensus/tests.rs
+++ b/core/lib/dal/src/consensus/tests.rs
@@ -1,7 +1,7 @@
use std::fmt::Debug;
use rand::Rng;
-use zksync_concurrency::ctx;
+use zksync_concurrency::{ctx, testonly::abort_on_panic};
use zksync_protobuf::{
repr::{decode, encode},
testonly::{test_encode, test_encode_all_formats, FmtConv},
@@ -9,7 +9,9 @@ use zksync_protobuf::{
};
use zksync_test_account::Account;
use zksync_types::{
- web3::Bytes, Execute, ExecuteTransactionCommon, L1BatchNumber, ProtocolVersionId, Transaction,
+ commitment::{L1BatchCommitmentMode, PubdataParams},
+ web3::Bytes,
+ Execute, ExecuteTransactionCommon, L1BatchNumber, ProtocolVersionId, Transaction,
};
use super::*;
@@ -51,12 +53,24 @@ fn payload(rng: &mut impl Rng, protocol_version: ProtocolVersionId) -> Payload {
})
.collect(),
last_in_batch: rng.gen(),
+ pubdata_params: if protocol_version.is_pre_gateway() {
+ PubdataParams::default()
+ } else {
+ PubdataParams {
+ pubdata_type: match rng.gen_range(0..2) {
+ 0 => L1BatchCommitmentMode::Rollup,
+ _ => L1BatchCommitmentMode::Validium,
+ },
+ l2_da_validator_address: rng.gen(),
+ }
+ },
}
}
/// Tests struct <-> proto struct conversions.
#[test]
fn test_encoding() {
+ abort_on_panic();
let ctx = &ctx::test_root(&ctx::RealClock);
let rng = &mut ctx.rng();
test_encode_all_formats::>(rng);
@@ -69,10 +83,15 @@ fn test_encoding() {
encode_decode::(
mock_protocol_upgrade_transaction().into(),
);
- let p = payload(rng, ProtocolVersionId::Version24);
- test_encode(rng, &p);
- let p = payload(rng, ProtocolVersionId::Version25);
- test_encode(rng, &p);
+ // Test encoding in the current and all the future versions.
+ for v in ProtocolVersionId::latest() as u16.. {
+ let Ok(v) = ProtocolVersionId::try_from(v) else {
+ break;
+ };
+ tracing::info!("version {v}");
+ let p = payload(rng, v);
+ test_encode(rng, &p);
+ }
}
fn encode_decode(msg: P::Type)
diff --git a/core/lib/dal/src/consensus_dal/mod.rs b/core/lib/dal/src/consensus_dal/mod.rs
index 4516434868c4..a091421d857c 100644
--- a/core/lib/dal/src/consensus_dal/mod.rs
+++ b/core/lib/dal/src/consensus_dal/mod.rs
@@ -69,8 +69,8 @@ pub struct ConsensusDal<'a, 'c> {
pub enum InsertCertificateError {
#[error("corresponding payload is missing")]
MissingPayload,
- #[error("certificate doesn't match the payload")]
- PayloadMismatch,
+ #[error("certificate doesn't match the payload, payload = {0:?}")]
+ PayloadMismatch(Payload),
#[error(transparent)]
Dal(#[from] DalError),
#[error(transparent)]
@@ -528,7 +528,7 @@ impl ConsensusDal<'_, '_> {
.await?
.ok_or(E::MissingPayload)?;
if header.payload != want_payload.encode().hash() {
- return Err(E::PayloadMismatch);
+ return Err(E::PayloadMismatch(want_payload));
}
sqlx::query!(
r#"
@@ -634,7 +634,7 @@ impl ConsensusDal<'_, '_> {
pub async fn insert_batch_certificate(
&mut self,
cert: &attester::BatchQC,
- ) -> Result<(), InsertCertificateError> {
+ ) -> anyhow::Result<()> {
let cfg = self
.global_config()
.await
@@ -652,9 +652,7 @@ impl ConsensusDal<'_, '_> {
.context("batch()")?
.context("batch is missing")?,
);
- if cert.message.hash != hash {
- return Err(InsertCertificateError::PayloadMismatch);
- }
+ anyhow::ensure!(cert.message.hash == hash, "hash mismatch");
cert.verify(cfg.genesis.hash(), &committee)
.context("cert.verify()")?;
sqlx::query!(
diff --git a/core/lib/dal/src/consensus_dal/tests.rs b/core/lib/dal/src/consensus_dal/tests.rs
index 772e7b2bf5e7..694abc8508b6 100644
--- a/core/lib/dal/src/consensus_dal/tests.rs
+++ b/core/lib/dal/src/consensus_dal/tests.rs
@@ -131,6 +131,9 @@ async fn test_batch_certificate() {
compressed_repeated_writes: None,
zkporter_is_available: false,
aux_commitments: None,
+ aggregation_root: rng.gen(),
+ local_root: rng.gen(),
+ state_diff_hash: rng.gen(),
},
)
.await
diff --git a/core/lib/dal/src/eth_watcher_dal.rs b/core/lib/dal/src/eth_watcher_dal.rs
index bdfc7f24c7b5..062ad47219d8 100644
--- a/core/lib/dal/src/eth_watcher_dal.rs
+++ b/core/lib/dal/src/eth_watcher_dal.rs
@@ -107,7 +107,7 @@ mod tests {
async fn test_get_or_set_next_block_to_process_with_different_event_types() {
let pool = ConnectionPool::::test_pool().await;
let mut conn = pool.connection().await.unwrap();
- let mut dal = conn.processed_events_dal();
+ let mut dal = conn.eth_watcher_dal();
// Test with ProtocolUpgrades
let next_block = dal
diff --git a/core/lib/dal/src/lib.rs b/core/lib/dal/src/lib.rs
index fbe225beb902..20b428adec44 100644
--- a/core/lib/dal/src/lib.rs
+++ b/core/lib/dal/src/lib.rs
@@ -131,7 +131,7 @@ where
fn base_token_dal(&mut self) -> BaseTokenDal<'_, 'a>;
- fn processed_events_dal(&mut self) -> EthWatcherDal<'_, 'a>;
+ fn eth_watcher_dal(&mut self) -> EthWatcherDal<'_, 'a>;
}
#[derive(Clone, Debug)]
@@ -255,7 +255,7 @@ impl<'a> CoreDal<'a> for Connection<'a, Core> {
BaseTokenDal { storage: self }
}
- fn processed_events_dal(&mut self) -> EthWatcherDal<'_, 'a> {
+ fn eth_watcher_dal(&mut self) -> EthWatcherDal<'_, 'a> {
EthWatcherDal { storage: self }
}
}
diff --git a/core/lib/dal/src/models/storage_block.rs b/core/lib/dal/src/models/storage_block.rs
index 3bb433a05cf8..159ed71cc3e9 100644
--- a/core/lib/dal/src/models/storage_block.rs
+++ b/core/lib/dal/src/models/storage_block.rs
@@ -7,7 +7,7 @@ use zksync_contracts::BaseSystemContractsHashes;
use zksync_types::{
api,
block::{L1BatchHeader, L2BlockHeader, UnsealedL1BatchHeader},
- commitment::{L1BatchMetaParameters, L1BatchMetadata},
+ commitment::{L1BatchCommitmentMode, L1BatchMetaParameters, L1BatchMetadata, PubdataParams},
fee_model::{BatchFeeInput, L1PeggedBatchFeeModelInput, PubdataIndependentBatchFeeModelInput},
l2_to_l1_log::{L2ToL1Log, SystemL2ToL1Log, UserL2ToL1Log},
Address, Bloom, L1BatchNumber, L2BlockNumber, ProtocolVersionId, H256,
@@ -155,6 +155,10 @@ pub(crate) struct StorageL1Batch {
pub bootloader_initial_content_commitment: Option>,
pub pubdata_input: Option>,
pub fee_address: Vec,
+ pub aggregation_root: Option>,
+ pub local_root: Option>,
+ pub state_diff_hash: Option>,
+ pub inclusion_data: Option>,
}
impl StorageL1Batch {
@@ -263,6 +267,10 @@ impl TryFrom for L1BatchMetadata {
bootloader_initial_content_commitment: batch
.bootloader_initial_content_commitment
.map(|v| H256::from_slice(&v)),
+ state_diff_hash: batch.state_diff_hash.map(|v| H256::from_slice(&v)),
+ local_root: batch.local_root.map(|v| H256::from_slice(&v)),
+ aggregation_root: batch.aggregation_root.map(|v| H256::from_slice(&v)),
+ da_inclusion_data: batch.inclusion_data,
})
}
}
@@ -485,6 +493,8 @@ pub(crate) struct StorageL2BlockHeader {
/// This value should bound the maximal amount of gas that can be spent by transactions in the miniblock.
pub gas_limit: Option,
pub logs_bloom: Option>,
+ pub l2_da_validator_address: Vec,
+ pub pubdata_type: String,
}
impl From for L2BlockHeader {
@@ -532,6 +542,10 @@ impl From for L2BlockHeader {
.logs_bloom
.map(|b| Bloom::from_slice(&b))
.unwrap_or_default(),
+ pubdata_params: PubdataParams {
+ l2_da_validator_address: Address::from_slice(&row.l2_da_validator_address),
+ pubdata_type: L1BatchCommitmentMode::from_str(&row.pubdata_type).unwrap(),
+ },
}
}
}
diff --git a/core/lib/dal/src/models/storage_sync.rs b/core/lib/dal/src/models/storage_sync.rs
index 7a4ebe074fe0..3f80f52c56eb 100644
--- a/core/lib/dal/src/models/storage_sync.rs
+++ b/core/lib/dal/src/models/storage_sync.rs
@@ -1,7 +1,11 @@
+use std::str::FromStr;
+
use zksync_contracts::BaseSystemContractsHashes;
use zksync_db_connection::error::SqlxContext;
use zksync_types::{
- api::en, parse_h160, parse_h256, parse_h256_opt, Address, L1BatchNumber, L2BlockNumber,
+ api::en,
+ commitment::{L1BatchCommitmentMode, PubdataParams},
+ parse_h160, parse_h256, parse_h256_opt, Address, L1BatchNumber, L2BlockNumber,
ProtocolVersionId, Transaction, H256,
};
@@ -25,6 +29,8 @@ pub(crate) struct StorageSyncBlock {
pub protocol_version: i32,
pub virtual_blocks: i64,
pub hash: Vec,
+ pub l2_da_validator_address: Vec,
+ pub pubdata_type: String,
}
pub(crate) struct SyncBlock {
@@ -40,6 +46,7 @@ pub(crate) struct SyncBlock {
pub virtual_blocks: u32,
pub hash: H256,
pub protocol_version: ProtocolVersionId,
+ pub pubdata_params: PubdataParams,
}
impl TryFrom for SyncBlock {
@@ -89,6 +96,12 @@ impl TryFrom for SyncBlock {
.decode_column("virtual_blocks")?,
hash: parse_h256(&block.hash).decode_column("hash")?,
protocol_version: parse_protocol_version(block.protocol_version)?,
+ pubdata_params: PubdataParams {
+ pubdata_type: L1BatchCommitmentMode::from_str(&block.pubdata_type)
+ .decode_column("Invalid pubdata type")?,
+ l2_da_validator_address: parse_h160(&block.l2_da_validator_address)
+ .decode_column("l2_da_validator_address")?,
+ },
})
}
}
@@ -109,6 +122,7 @@ impl SyncBlock {
virtual_blocks: Some(self.virtual_blocks),
hash: Some(self.hash),
protocol_version: self.protocol_version,
+ pubdata_params: Some(self.pubdata_params),
}
}
@@ -125,6 +139,7 @@ impl SyncBlock {
operator_address: self.fee_account_address,
transactions,
last_in_batch: self.last_in_batch,
+ pubdata_params: self.pubdata_params,
}
}
}
diff --git a/core/lib/dal/src/models/storage_transaction.rs b/core/lib/dal/src/models/storage_transaction.rs
index 78daaebb335e..dbd4fa947520 100644
--- a/core/lib/dal/src/models/storage_transaction.rs
+++ b/core/lib/dal/src/models/storage_transaction.rs
@@ -392,7 +392,6 @@ impl From for TransactionReceipt {
logs: vec![],
l2_to_l1_logs: vec![],
status,
- root: block_hash,
logs_bloom: Default::default(),
// Even though the Rust SDK recommends us to supply "None" for legacy transactions
// we always supply some number anyway to have the same behavior as most popular RPCs
diff --git a/core/lib/dal/src/sync_dal.rs b/core/lib/dal/src/sync_dal.rs
index 265c61354887..55e6543c0285 100644
--- a/core/lib/dal/src/sync_dal.rs
+++ b/core/lib/dal/src/sync_dal.rs
@@ -56,7 +56,9 @@ impl SyncDal<'_, '_> {
miniblocks.virtual_blocks,
miniblocks.hash,
miniblocks.protocol_version AS "protocol_version!",
- miniblocks.fee_account_address AS "fee_account_address!"
+ miniblocks.fee_account_address AS "fee_account_address!",
+ miniblocks.l2_da_validator_address AS "l2_da_validator_address!",
+ miniblocks.pubdata_type AS "pubdata_type!"
FROM
miniblocks
WHERE
diff --git a/core/lib/dal/src/tee_proof_generation_dal.rs b/core/lib/dal/src/tee_proof_generation_dal.rs
index bde07f732802..755d02769101 100644
--- a/core/lib/dal/src/tee_proof_generation_dal.rs
+++ b/core/lib/dal/src/tee_proof_generation_dal.rs
@@ -32,10 +32,10 @@ impl TeeProofGenerationDal<'_, '_> {
&mut self,
tee_type: TeeType,
processing_timeout: Duration,
- min_batch_number: Option,
+ min_batch_number: L1BatchNumber,
) -> DalResult