chore: bump leanVM to f66d4a9#411
Conversation
Adapts to two upstream API changes: - xmss_aggregate now returns Result with an upstream AggregationError; surfaced via a new AggregationError::Upstream variant instead of the previous panic on invalid child proofs - AggregatedXMSS::serialize/deserialize renamed to compress/decompress (lz4+postcard proof wire format) Plonky3 p3-* crates are pinned back to the previously locked 82cfad73 because newer Plonky3 commits require unstable features unavailable on Rust 1.92.0.
🤖 Kimi Code ReviewThe PR updates the
|
🤖 Claude Code ReviewNow I have everything needed to write a thorough review. PR #411 Review:
|
🤖 Codex Code Review
No other repo-local correctness issues stood out in the diff. I could not run a compile/test sanity check here because the new Automated review by OpenAI Codex · gpt-5.4 · custom prompt |
Greptile SummaryTracks the leanVM upstream at commit
Confidence Score: 5/5Safe to merge. All call sites are correctly updated, error propagation is properly wired, and the wire-format change is intentional and documented. The adaptation is complete and consistent: all three No files require special attention.
|
| Filename | Overview |
|---|---|
| crates/common/crypto/src/lib.rs | Adapts to two upstream API changes: xmss_aggregate now returns Result (handled with ? at all 3 call sites + new Upstream error variant), and serialize/deserialize renamed to compress/decompress (updated in serialize_aggregate, deserialize_children, and verify_aggregated_signature). |
| crates/common/crypto/Cargo.toml | Bumps lean-multisig and leansig_wrapper git revisions from 5eba3b1 to f66d4a9, consistent with the Cargo.lock update. |
| Cargo.lock | All leanVM crates updated to f66d4a9. Transitive additions include system-info, zk-alloc, include_dir, objc2-foundation, and several windows-sys downgrades. objc2/objc2-foundation appear as new transitive deps of rec_aggregation. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["aggregate_signatures / aggregate_mixed / aggregate_proofs"] -->|"xmss_aggregate(...)?"|B{Result}
B -->|Ok| C["serialize_aggregate\naggregate.compress()"]
B -->|Err LeanAggregationError| D["AggregationError::Upstream"]
C --> E["ByteListMiB (lz4+postcard wire format)"]
E -->|"AggregatedXMSS::decompress()"| F["verify_aggregated_signature\ndeserialize_children"]
F -->|"Ok(AggregatedXMSS)"| G["xmss_verify_aggregation"]
F -->|"None"| H["DeserializationFailed / ChildDeserializationFailed"]
Reviews (1): Last reviewed commit: "chore: bump leanVM to f66d4a9" | Re-trigger Greptile
Motivation
Track upstream leanVM at
f66d4a9(previously5eba3b1).Description
Two upstream API changes required adaptation in
ethlambda-crypto:xmss_aggregatenow returnsResult<_, AggregationError>instead of panicking on invalid child proofsAggregationError::Upstreamvariant,?at the 3 call sitesAggregatedXMSS::serialize/deserializerenamed tocompress/decompress(lz4+postcard)serialize_aggregate,deserialize_children, and verificationNotes:
p3-*crates are pinned back to the previously locked82cfad73: newer Plonky3 commits use the unstablemaybe_uninit_slicefeature, which doesn't build on Rust 1.92.0.The 24
forkchoice_spectestsfailures (missing field proofData) are pre-existing onmain(stale local fixtures) and unrelated to this bump.