chore(l1): bump zkevm fixtures to tests-zkevm@v0.4.1#6715
Conversation
v0.4.1 is based on bal@v7.2.0, matching our current bal pin. Drops the ~30 EIP-8025 fixture-mismatch skips that v0.3.3 (bal@v5.6.1) required and re-enables broad `test-stateless` coverage in the default `make test` target. One new test is skipped: `stateless_input_invalid_public_key_is_rejected`. v0.4+ also introduces a new schema-id wire format and a filled `public_keys` field; our `decode_eip8025` still expects the v0.3 framing, so the runner can't exercise the canonical SSZ path yet. Tracked in the test comment. Result: 2864 stateless tests pass, 1 documented skip.
|
🤖 Kimi Code ReviewReview: Update zkEVM test fixtures from v0.3.3 to v0.4.1 The PR updates the test fixture URL and adjusts skip lists to accommodate the new bundle. No critical security issues found. Minor observations below. Code Correctness & Logic
Build/Test Configuration
Suggestions
SummaryThe changes are mechanically correct and the comments adequately explain the rationale for remaining skips. The primary risk is assuming the v0.4.1 fixtures align with current implementation gas accounting—confirm this holds in CI before merging. Automated review by Kimi (Moonshot AI) · kimi-k2.5 · custom prompt |
Greptile SummaryBumps the zkevm fixture bundle from v0.3.3 (bal@v5.6.1) to v0.4.1 (bal@v7.2.0), aligning stateless test coverage with the current bal pin. ~30 EIP-8025 gas-accounting skips that were required by the older bundle are removed, and the default
Confidence Score: 4/5Safe to merge for the test-coverage goal; the removed make target leaves two documentation files with broken instructions The fixture URL, skip-list cleanup, and Makefile changes all look correct and are backed by a passing local test run. The only gap is that docs/known_issues.md and docs/eip-8025.md still reference make test-stateless-zkevm, which no longer exists — anyone following those docs will get a make error. docs/known_issues.md and docs/eip-8025.md — both reference the removed test-stateless-zkevm target
|
| Filename | Overview |
|---|---|
| tooling/ef_tests/blockchain/.fixtures_url_zkevm | Bumps fixture download URL to tests-zkevm@v0.4.1 from execution-specs repo (consistent with the amsterdam fixtures URL pattern) |
| tooling/ef_tests/blockchain/Makefile | Removes narrow test-stateless-zkevm target and re-enables full test-stateless in the default test target; docs/known_issues.md and docs/eip-8025.md still reference the removed target |
| tooling/ef_tests/blockchain/tests/all.rs | Removes ~30 now-passing EIP-8025 skips, adds one documented skip for stateless_input_invalid_public_key_is_rejected, and updates comments; minor typo "zkvm" on line 12 |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[make test] --> B[make test-levm]
A --> C[make test-stateless]
B --> D[cargo test --profile release-with-debug\nvectors/]
C --> E[zkevm-vectors\ndownload tests-zkevm@v0.4.1]
E --> F[cargo test --profile release-with-debug --features stateless\nvectors_zkevm/]
F --> G{Skip list}
G --> H[SKIPPED_BASE: 4 entries]
G --> I[EXTRA_SKIPS stateless: 11 entries\ninc. new stateless_input_invalid_public_key_is_rejected]
G --> J[2864 tests pass]
Prompt To Fix All With AI
Fix the following 2 code review issues. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 2
tooling/ef_tests/blockchain/tests/all.rs:12
**Typo in comment: "zkvm" should be "zkevm"**
Line 12 reads "stale zkvm bundle" but the consistent name used throughout the codebase (and in the removed make target) is "zkevm".
### Issue 2 of 2
tooling/ef_tests/blockchain/Makefile:81-83
**Stale docs still reference removed `test-stateless-zkevm` target**
`docs/known_issues.md` (lines 9 and 24) and `docs/eip-8025.md` (line 561) still mention the `test-stateless-zkevm` target that this PR removes. Readers following those docs will get a `make` error. The `known_issues.md` entry in particular describes the narrow EIP-8025-only filtering that no longer applies — the context has changed enough that both files likely need a prose update.
Reviews (1): Last reviewed commit: "chore(l1): bump zkevm fixtures to tests-..." | Re-trigger Greptile
| // test-levm / test-sp1 read bal-devnet-N + legacy from `vectors/`. | ||
| // test-stateless reads the zkevm bundle (the only one that ships | ||
| // executionWitness) from a separate `vectors_zkevm/`. The zkevm cadence trails | ||
| // the bal cadence, so keeping the trees isolated prevents a stale zkvm bundle |
There was a problem hiding this comment.
Typo in comment: "zkvm" should be "zkevm"
Line 12 reads "stale zkvm bundle" but the consistent name used throughout the codebase (and in the removed make target) is "zkevm".
Prompt To Fix With AI
This is a comment left during a code review.
Path: tooling/ef_tests/blockchain/tests/all.rs
Line: 12
Comment:
**Typo in comment: "zkvm" should be "zkevm"**
Line 12 reads "stale zkvm bundle" but the consistent name used throughout the codebase (and in the removed make target) is "zkevm".
How can I resolve this? If you propose a fix, please make it concise.| test: ## 🧪 Run blockchain tests with LEVM both with state and stateless | ||
| $(MAKE) test-levm | ||
| # Narrow stateless coverage to the EIP-8025 optional-proofs suite. The | ||
| # zkevm@v0.3.3 fixtures are filled against bal@v5.6.1, which is out of | ||
| # sync with this branch's bal-devnet-6+ (and bal-devnet-7-prep) gas | ||
| # accounting; the broader `test-stateless` invocation introduced by | ||
| # #6527 trips ~549 of those fixtures with `GasUsedMismatch` / | ||
| # `ReceiptsRootMismatch` / `BlockAccessListHashMismatch`. Re-broaden | ||
| # once the zkevm bundle is regenerated against the current bal spec. | ||
| $(MAKE) test-stateless-zkevm | ||
| $(MAKE) test-stateless |
There was a problem hiding this comment.
Stale docs still reference removed
test-stateless-zkevm target
docs/known_issues.md (lines 9 and 24) and docs/eip-8025.md (line 561) still mention the test-stateless-zkevm target that this PR removes. Readers following those docs will get a make error. The known_issues.md entry in particular describes the narrow EIP-8025-only filtering that no longer applies — the context has changed enough that both files likely need a prose update.
Prompt To Fix With AI
This is a comment left during a code review.
Path: tooling/ef_tests/blockchain/Makefile
Line: 81-83
Comment:
**Stale docs still reference removed `test-stateless-zkevm` target**
`docs/known_issues.md` (lines 9 and 24) and `docs/eip-8025.md` (line 561) still mention the `test-stateless-zkevm` target that this PR removes. Readers following those docs will get a `make` error. The `known_issues.md` entry in particular describes the narrow EIP-8025-only filtering that no longer applies — the context has changed enough that both files likely need a prose update.
How can I resolve this? If you propose a fix, please make it concise.
🤖 Codex Code Review
No other correctness or security issues stood out in the diff itself. I couldn’t run the updated stateless suite locally because the v0.4.1 fixture bundle is not present in the workspace and network access is restricted. Automated review by OpenAI Codex · gpt-5.4 · custom prompt |
🤖 Claude Code ReviewPR #6715 Review —
|
Summary
.fixtures_url_zkevmtotests-zkevm@v0.4.1(based on bal@v7.2.0, matching our current bal pin).test-statelesscoverage in the defaultmake testtarget.stateless_input_invalid_public_key_is_rejected) with an inline comment.The single skip exists because v0.4+ also ships a new schema-id wire format and a filled
public_keysfield onStatelessInput. Ourdecode_eip8025still parses the v0.3 framing, and the ef_test runner consumes JSONexecutionWitnessrather than the canonicalstatelessInputBytes, so the wrong-pubkey rejection is invisible end-to-end. Wiring this up needs:decode_eip8025for the v0.4 schema-id prefix + reshapedChainConfig.execution_program(bytes)(or replicate the public_keys check against the canonical input).Both are out of scope here; the skip comment in
tests/all.rsdocuments the gap.Result: 2864 stateless tests pass, 1 documented skip (up from a narrow ~50-fixture EIP-8025-only run on v0.3.3).
Test plan
make zkevm-vectorsdownloads the v0.4.1 bundle cleanly.cargo test --profile release-with-debug --features stateless→ 2864 passed, 0 failed.cargo check(default features) passes.cargo fmt --checkclean.