Skip to content

Commit e52557e

Browse files
committed
feat(sdk-core): add EdDSA MPCv2 external signer types and stubs
Add CustomEddsaMPCv2SigningRound{1,2,3}GeneratingFunction interfaces to baseTypes.ts, EddsaMPCv2Round{1,2,3} entries to the ShareType enum, the corresponding optional fields on WalletSignTransactionOptions in iWallet.ts, and a signEddsaMPCv2TssUsingExternalSigner stub in BaseTssUtils that throws "Method not implemented." — scaffolding only, no dispatch logic. Ticket: WCI-373 Session-Id: 999c38eb-ed17-45f3-be26-e1239a8405a4 Task-Id: 4e34455f-37e7-4f98-b35e-4326a225e7f4
1 parent c20d504 commit e52557e

3 files changed

Lines changed: 52 additions & 0 deletions

File tree

modules/sdk-core/src/bitgo/utils/tss/baseTSSUtils.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ import {
1515
CreateBitGoKeychainParamsBase,
1616
CreateKeychainParamsBase,
1717
CustomCommitmentGeneratingFunction,
18+
CustomEddsaMPCv2SigningRound1GeneratingFunction,
19+
CustomEddsaMPCv2SigningRound2GeneratingFunction,
20+
CustomEddsaMPCv2SigningRound3GeneratingFunction,
1821
CustomGShareGeneratingFunction,
1922
CustomKShareGeneratingFunction,
2023
CustomMPCv2SigningRound1GeneratingFunction,
@@ -288,6 +291,16 @@ export default class BaseTssUtils<KeyShare> extends MpcUtils implements ITssUtil
288291
throw new Error('Method not implemented.');
289292
}
290293

294+
signEddsaMPCv2TssUsingExternalSigner(
295+
params: TSSParams | TSSParamsForMessage,
296+
externalSignerEddsaMPCv2SigningRound1Generator: CustomEddsaMPCv2SigningRound1GeneratingFunction,
297+
externalSignerEddsaMPCv2SigningRound2Generator: CustomEddsaMPCv2SigningRound2GeneratingFunction,
298+
externalSignerEddsaMPCv2SigningRound3Generator: CustomEddsaMPCv2SigningRound3GeneratingFunction,
299+
requestType?: RequestType
300+
): Promise<TxRequest> {
301+
throw new Error('Method not implemented.');
302+
}
303+
291304
/**
292305
* Create an Commitment (User to BitGo) share from an unsigned transaction and private user signing material
293306
* EDDSA only

modules/sdk-core/src/bitgo/utils/tss/baseTypes.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,9 @@ export enum ShareType {
9292
MPCv2Round1 = 'MPCv2Round1',
9393
MPCv2Round2 = 'MPCv2Round2',
9494
MPCv2Round3 = 'MPCv2Round3',
95+
EddsaMPCv2Round1 = 'EddsaMPCv2Round1',
96+
EddsaMPCv2Round2 = 'EddsaMPCv2Round2',
97+
EddsaMPCv2Round3 = 'EddsaMPCv2Round3',
9598
}
9699

97100
export enum MPCType {
@@ -189,6 +192,36 @@ export interface CustomMPCv2SigningRound3GeneratingFunction {
189192
}>;
190193
}
191194

195+
export interface CustomEddsaMPCv2SigningRound1GeneratingFunction {
196+
(params: { txRequest: TxRequest }): Promise<{
197+
signatureShareRound1: SignatureShareRecord;
198+
encryptedRound1Session: string;
199+
userGpgPubKey: string;
200+
encryptedUserGpgPrvKey: string;
201+
}>;
202+
}
203+
204+
export interface CustomEddsaMPCv2SigningRound2GeneratingFunction {
205+
(params: {
206+
txRequest: TxRequest;
207+
bitgoPublicGpgKey: string;
208+
encryptedUserGpgPrvKey: string;
209+
encryptedRound1Session: string;
210+
}): Promise<{
211+
signatureShareRound2: SignatureShareRecord;
212+
encryptedRound2Session: string;
213+
}>;
214+
}
215+
216+
export interface CustomEddsaMPCv2SigningRound3GeneratingFunction {
217+
(params: {
218+
txRequest: TxRequest;
219+
bitgoPublicGpgKey: string;
220+
encryptedUserGpgPrvKey: string;
221+
encryptedRound2Session: string;
222+
}): Promise<{ signatureShareRound3: SignatureShareRecord }>;
223+
}
224+
192225
export enum TokenType {
193226
ERC721 = 'ERC721',
194227
ERC1155 = 'ERC1155',

modules/sdk-core/src/bitgo/wallet/iWallet.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ import { IGoStakingWallet, IStakingWallet } from '../staking';
1818
import { ITradingAccount } from '../trading';
1919
import {
2020
CustomCommitmentGeneratingFunction,
21+
CustomEddsaMPCv2SigningRound1GeneratingFunction,
22+
CustomEddsaMPCv2SigningRound2GeneratingFunction,
23+
CustomEddsaMPCv2SigningRound3GeneratingFunction,
2124
CustomGShareGeneratingFunction,
2225
CustomKShareGeneratingFunction,
2326
CustomMPCv2SigningRound1GeneratingFunction,
@@ -323,6 +326,9 @@ export interface WalletSignTransactionOptions extends WalletSignBaseOptions {
323326
customMPCv2SigningRound1GenerationFunction?: CustomMPCv2SigningRound1GeneratingFunction;
324327
customMPCv2SigningRound2GenerationFunction?: CustomMPCv2SigningRound2GeneratingFunction;
325328
customMPCv2SigningRound3GenerationFunction?: CustomMPCv2SigningRound3GeneratingFunction;
329+
customEddsaMPCv2SigningRound1GenerationFunction?: CustomEddsaMPCv2SigningRound1GeneratingFunction;
330+
customEddsaMPCv2SigningRound2GenerationFunction?: CustomEddsaMPCv2SigningRound2GeneratingFunction;
331+
customEddsaMPCv2SigningRound3GenerationFunction?: CustomEddsaMPCv2SigningRound3GeneratingFunction;
326332
apiVersion?: ApiVersion;
327333
multisigTypeVersion?: 'MPCv2';
328334
walletPassphrase?: string;

0 commit comments

Comments
 (0)