Prover: fix invalidity prover#3138
Conversation
* add missing invalidity circuits to PayloadCircuits * add a unit test to catch missing circuits
* fix(prover): remove global overwrite in FullZKEVMWithSuite causing nil panic during setup * test(prover): add test to ensure FullZKEVMWithSuite does not overwrite global state
linea-besu Changelog Preview (informational)[Unreleased] diff (commits touching
|
tx-exclusion-api Changelog Preview (informational)[Unreleased] diff (commits touching
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 0b7b00f. Configure here.
| case circuits.ExecutionDummyCircuitID, circuits.DataAvailabilityDummyCircuitID, | ||
| circuits.InvalidityNonceBalanceDummyCircuitID, | ||
| circuits.InvalidityPrecompileLogsDummyCircuitID, | ||
| circuits.InvalidityFilteredAddressDummyCircuitID: |
There was a problem hiding this comment.
New dummy circuits unhandled in getDummyCircuitParams
High Severity
isPayloadDummyCircuit now returns true for the three new invalidity dummy circuits (InvalidityNonceBalanceDummyCircuitID, InvalidityPrecompileLogsDummyCircuitID, InvalidityFilteredAddressDummyCircuitID), but getDummyCircuitParams was not updated with matching cases for these circuits. When collectPayloadVerifyingKeys calls getDummyCircuitParams for any of these, it hits the default branch and returns an error, causing setup to fail.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 0b7b00f. Configure here.
prover Changelog Preview (informational)[Unreleased] diff (commits touching
|
postman Changelog Preview (informational)[Unreleased] diff (commits touching
|
Codecov Report✅ All modified and coverable lines are covered by tests. Please upload reports for the commit 0b7b00f to get more accurate results. Additional details and impacted files@@ Coverage Diff @@
## main #3138 +/- ##
=========================================
Coverage 77.25% 77.25%
Complexity 7006 7006
=========================================
Files 1118 1118
Lines 44394 44394
Branches 5343 5343
=========================================
Hits 34297 34297
Misses 8734 8734
Partials 1363 1363
*This pull request uses carry forward flags. Click here to find out more. 🚀 New features to boost your workflow:
|
coordinator Changelog Preview (informational)[Unreleased] diff (commits touching
|


This PR implements issue(s) #
Checklist
PR.
Note
Medium Risk
Touches prover setup/aggregation VK wiring and the limitless invalidity circuit’s execution context (VK Merkle root + distributed VKs), which can impact proof compatibility if misconfigured. Changes are localized but affect critical cryptographic asset generation and circuit ID/VK ordering assumptions.
Overview
Invalidity limitless setup now passes verifying-key data needed at prove time.
NewBuilderLimitlesstakes a VK Merkle root andCompile()injects both distributed verifying keys (fromCompiledIOP.ExtraData) and the root intoBadPrecompileCircuit’sExecutionCtx.Aggregation payload VK ordering is expanded from IDs 0–5 to 0–13 by adding all invalidity dummy/production circuits to
PayloadCircuits, updating VK collection and dummy detection accordingly, and updating the invalidity-limitless setup path to load/derive the VK Merkle root when reusing or generating execution-limitless assets.New tests assert
PayloadCircuitsmatchesGlobalCircuitIDMapping(preventing VK digest mismatches) and thatFullZKEVMWithSuitedoes not overwrite the memoizedfullZkEvmglobal;FullZKEVMWithSuiteis also adjusted to avoid unnecessary global assignment.Reviewed by Cursor Bugbot for commit 82765cb. Bugbot is set up for automated code reviews on this repo. Configure here.