Skip to content

feat: add eddsa mpcv2 custom signers in master express - #279

Open
vibhavgo wants to merge 1 commit into
WCI-923-add-curvetype-sign-requestfrom
WCI-925-eddsa-mpcv2-custom-signers
Open

vibhavgo wants to merge 1 commit into
WCI-923-add-curvetype-sign-requestfrom
WCI-925-eddsa-mpcv2-custom-signers

Conversation

@vibhavgo

Copy link
Copy Markdown
Contributor

Summary

Add createEddsaMPCv2CustomSigners() to src/masterBitgoExpress/handlers/eddsa.ts, mirroring createEcdsaMPCv2CustomSigners in ecdsa.ts:

  • Stateful round-generator closures capture the round 1 and round 2 AWM responses
  • All three generators call the existing signMPCv2Round1/2/3() client methods with curveType: 'eddsa'
  • Rounds 2/3 forward the encrypted data key, session state, and user GPG prv key captured from the previous round
  • Explicit precondition errors for out-of-order round calls: Round 1 must be completed before Round 2, Round 2 must be completed before Round 3

Depends on the curveType client params from WCI-924 (base branch).

Testing

New src/__tests__/api/master/eddsaMpcv2Signing.test.ts (5 tests):

  • Round 1 generator calls AWM with curveType: 'eddsa'
  • Round 2 generator forwards round 1 encrypted state + curveType: 'eddsa'
  • Round 3 generator forwards round 1 + round 2 encrypted state + curveType: 'eddsa'
  • Round 2 before round 1 and round 3 before round 2 throw the exact error strings
    Regression: master suites (eddsaMpcv2Signing + ecdsa + eddsa) — 455 passing, 0 failing.

Ticket: WCI-925
Linear: https://linear.app/bitgo/issue/WCI-925

@linear-code

linear-code Bot commented Oct 13, 2026

Copy link
Copy Markdown

WCI-925

@vibhavgo
vibhavgo added this pull request to stack #280 October 13, 2026 11:13
@vibhavgo
vibhavgo marked this pull request as ready for review October 13, 2026 11:22
@vibhavgo
vibhavgo requested review from a team as code owners October 13, 2026 11:22
Add createEddsaMPCv2CustomSigners() to master express eddsa.ts, mirroring
the ECDSA MPCv2 custom signer pattern. Stateful round generator closures
call the existing signMPCv2Round1/2/3() client methods with curveType
'eddsa', capture round 1/2 responses, and forward the encrypted data key,
session state and user GPG prv key into the next round. Precondition
failures are explicit for out-of-order round calls.

Ticket: WCI-925
@vibhavgo
vibhavgo force-pushed the WCI-925-eddsa-mpcv2-custom-signers branch from f89f76a to 8ec3045 Compare October 14, 2026 10:19

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant