Conversation
lispc
approved these changes
Sep 15, 2026
Thegaram
marked this pull request as ready for review
September 16, 2026 08:36
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
v0.9.0changes which contract is deployed, not just versions.v0.8.0deployed the flatHalo2Verifier.v0.9.0deploysOpenVmHalo2Verifier, a wrapper that inherits it. The source moves fromopenvm-solidity-sdk@v1.6tov2.0-deferral(Scroll's bundle circuit defers proof verification).
v2.0.0,stark-backendtov2.0.0,snark-verifier-sdkto gitv0.2.6,scroll-zkvm-verifiertov0.9.0.openvm-native-recursion(removed in OpenVM v2.0.0) and thehalo2-axiomfeature (removed insnark-verifier-sdk@v0.2.6).openvm-sdkevm-provefeature forevm-verify, which subsumes itsolc --standard-json. snark-verifier'scompile_solidityreads one source from stdin, so it cannot resolve the wrapper's importsSdk::builder()withDeferralHookCommits, mirroringopenvm-solidity-sdk's owngenerate-verifiernightly-2025-11-20. The new dependencies need Rust 1.91.1 or newerforge fmtstep and the Foundry v1.5.0 requirement. The SDK generator now emits canonical textWhy the solc settings matter
solcembeds a metadata hash that covers the source unit names and the compiler settings. Both modes therefore use the SDK's exact paths (src/v2.0-deferral/...) and settings: optimizer on with 100000 runs,constantOptimizerand the Yul optimizer off,evmVersionparis, and theforge-std/remapping. Any change alters the codehash even when the executable code is identical.Verification
generate-verifierandcompute-digestboth reproduce the deployed mainnet values exactly:0x00dfb6855747412fa70b8a75aaa4950f1deafaace9d2a4e9923ad2e1a3589928matches theplonkVerifierat0x0d2A59fd7060460F07c30C2817b4E79576da01C6digest-1/digest-2matchverifierDigest1()/verifierDigest2()on theZkEvmVerifierPostFeynmanat0x7966FE0De13e3B81533470640Ac489223476B254cargo build,cargo clippyandcargo fmt --checkare clean.Not verified
--recomputeis untested. It needs roughly 200 GB of RAM. Please run it on a large instance before merging.Note for reviewers
Do not regenerate
Cargo.lockfrom scratch. That drifts alloy-consensus from 1.1.2 to 1.8.3, whoseCryptoProvidertrait gains a required method that zkvm-prover v0.9.0 does not implement, and the build then fails in a dependency.