chore(deps): bump leanMultisig (5eba3b1) and leansig (c08a3ba)#387
Conversation
Pulls latest leanMultisig devnet4 (5eba3b1) and follows leansig default branch (currently c08a3ba). leanMultisig depends on leansig without a rev/branch spec, so matching that source avoids two leansig copies in the lockfile. Adapts to the leansig rename SchemeAbortingTargetSumLifetime32Dim46Base8 -> SIGAbortingTargetSumLifetime32Dim46Base8.
🤖 Kimi Code ReviewOverall Assessment: The PR updates dependencies and adapts to a breaking API change in the 1. Critical: Dependency Pinning and ReproducibilityFile: The removal of the -leansig = { git = "https://github.com/leanEthereum/leanSig", branch = "devnet4" }
+leansig = { git = "https://github.com/leanEthereum/leanSig" }Issue: While Recommendation: Pin to a specific revision: leansig = { git = "https://github.com/leanEthereum/leanSig", rev = "c08a3bae74b0d85379cab72dcbefa4091546ecbb" }2. High: XMSS Type Rename VerificationFile: The type alias changes from -pub type LeanSignatureScheme = leansig::signature::generalized_xmss::instantiations_aborting::lifetime_2_to_the_32::SchemeAbortingTargetSumLifetime32Dim46Base8;
+pub type LeanSignatureScheme = leansig::signature::generalized_xmss::instantiations_aborting::lifetime_2_to_the_32::SIGAbortingTargetSumLifetime32Dim46Base8;Consensus Risk: Ensure this is purely a naming change and not a semantic change to the signature scheme parameters (lifetime 2^32, dimension 46, base 8, Poseidon1 hashing). If the upstream library changed the underlying XMSS tree construction or hash function, this would fork the chain. Action Required: Verify the upstream commit history between 3. Medium: Cryptographic Dependency UpdatesFile: Large-scale updates to cryptographic libraries require careful validation:
Concern: SSZ encoding/decoding changes in Recommendation: Run consensus spec tests and verify block/attestation SSZ serialization round-trips match the reference implementation. 4. Low: Removal of Unused DependenciesFile: The lockfile cleanup removes several unused crates ( Summary of Action Items
The PR is acceptable if the above verification steps pass, but Item 1 (pinning) should be addressed before merge. Automated review by Kimi (Moonshot AI) · kimi-k2.5 · custom prompt |
🤖 Codex Code Review
I did not find a separate source-level correctness bug in the touched Rust code; the Automated review by OpenAI Codex · gpt-5.4 · custom prompt |
🤖 Claude Code ReviewHere are the full review findings: PR #387 Review —
|
Greptile SummaryThis PR bumps
Confidence Score: 4/5Safe to merge; the rename adaptation and rev bumps are mechanical and correct, and the lock file confirms a single unified leansig entry. The rename in signature.rs is straightforward and the leansig deduplication goal is achieved. The workspace leansig entry now carries no branch, rev, or tag specifier and relies entirely on the lock file for pinning — for a cryptographic dependency that was previously explicitly tracking devnet4, this makes future cargo update runs less auditable. Cargo.toml — the leansig entry lost its branch specifier and has no rev to replace it.
|
| Filename | Overview |
|---|---|
| Cargo.toml | Removes branch = "devnet4" from the leansig git dependency, leaving no branch, tag, or rev specifier — the dependency now floats on the default branch. |
| crates/common/crypto/Cargo.toml | Bumps lean-multisig and leansig_wrapper rev from 2eb4b9d to 5eba3b1; no issues. |
| crates/common/types/src/signature.rs | Adapts LeanSignatureScheme type alias to the upstream rename SchemeAborting… → SIGAborting…; rest of the file is unchanged. |
| Cargo.lock | Lock file updated to reflect a single leansig entry at c08a3ba and cascading transitive version bumps; looks consistent. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[ethlambda-crypto] -->|rev=5eba3b1| B[lean-multisig]
A -->|rev=5eba3b1| C[leansig_wrapper]
A -->|workspace| D[leansig @ c08a3ba]
B -->|no rev/branch spec| D
C -->|no rev/branch spec| D
E[ethlambda-types] -->|workspace| D
D --> F["SIGAbortingTargetSumLifetime32Dim46Base8
(renamed from SchemeAborting…)"]
Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 1
Cargo.toml:59
The `leansig` git dependency previously tracked `branch = "devnet4"`, which made the intended tracking target explicit. Now it has no `branch`, `tag`, or `rev` specifier at all, so it floats on whatever the upstream default branch happens to be. The lock file pins it to `c08a3ba` today, but the next `cargo update` will silently advance to whatever HEAD the default branch points to at that moment. For a cryptographic signature library this makes audits and deliberate upgrades harder. Adding `rev = "c08a3ba"` (the commit already recorded in `Cargo.lock`) would keep the deduplication benefit while making the pinned state explicit and reviewable.
```suggestion
leansig = { git = "https://github.com/leanEthereum/leanSig", rev = "c08a3ba" }
```
Reviews (1): Last reviewed commit: "fix" | Re-trigger Greptile
Resolves conflicts from devnet5's leanMultisig/leansig bump (#387) against this branch's leanMultisig devnet5 integration. Keep lean-multisig and leansig_wrapper at 0242c909 (leanMultisig devnet5 branch); leansig stays on the devnet4 branch to mirror leanMultisig 0242c909's own pin and keep one leansig copy in Cargo.lock. Drop the local LeanSignatureScheme alias in crypto tests in favor of the import already provided by ethlambda-types, and adopt the SIGAborting* rename in types/signature.rs (both leansig branches carry it now).
Summary
leanMultisig(lean-multisig,leansig_wrapper) from2eb4b9dto5eba3b1(latestdevnet4).leansigtoc08a3baby following its default branch.leanMultisigdepends onleansigwithout abranch/revspec, so matching that source avoids twoleansigcopies inCargo.lock.SchemeAbortingTargetSumLifetime32Dim46Base8→SIGAbortingTargetSumLifetime32Dim46Base8incrates/common/types/src/signature.rs.Test plan
make lintmake testmake run-devnet)