@@ -17,12 +17,8 @@ import { DklsDkg, DklsTypes } from '@bitgo-beta/sdk-lib-mpc';
1717import express from 'express' ;
1818import * as t from 'io-ts' ;
1919
20- import {
21- BadRequestResponse ,
22- InternalServerErrorResponse ,
23- NotImplementedResponse ,
24- UnprocessableEntityResponse ,
25- } from '../../shared/errors' ;
20+ import coinFactory from '../../shared/coinFactory' ;
21+ import { ErrorResponses , NotImplementedError } from '../../shared/errors' ;
2622
2723import { postIndependentKey } from '../../api/advancedWalletManager/handlers/postIndependentKey' ;
2824import { recoveryMultisigTransaction } from '../../api/advancedWalletManager/handlers/recoveryMultisigTransaction' ;
@@ -39,8 +35,6 @@ import { ecdsaMPCv2Finalize } from '../../api/advancedWalletManager/handlers/ecd
3935import { ecdsaMPCv2Recovery } from '../../api/advancedWalletManager/handlers/ecdsaMPCv2Recovery' ;
4036import { signEddsaRecoveryTransaction } from '../../api/advancedWalletManager/handlers/signEddsaRecoveryTransaction' ;
4137import { isEddsaCoin } from '../../shared/coinUtils' ;
42- import { MethodNotImplementedError } from '@bitgo-beta/sdk-core' ;
43- import coinFactory from '../../shared/coinFactory' ;
4438
4539// Request type for /key/independent endpoint
4640const IndependentKeyRequest = {
@@ -52,7 +46,7 @@ const IndependentKeyRequest = {
5246const IndependentKeyResponse : HttpResponse = {
5347 // TODO: Define proper response type
5448 200 : t . any ,
55- ...InternalServerErrorResponse ,
49+ ...ErrorResponses ,
5650} ;
5751
5852// Request type for /multisig/sign endpoint
@@ -66,7 +60,7 @@ const SignMultisigRequest = {
6660const SignMultisigResponse : HttpResponse = {
6761 // TODO: Define proper response type for signed multisig transaction
6862 200 : t . any ,
69- ...InternalServerErrorResponse ,
63+ ...ErrorResponses ,
7064} ;
7165
7266// Request type for /multisig/recovery endpoint
@@ -83,7 +77,7 @@ const RecoveryMultisigResponse: HttpResponse = {
8377 200 : t . type ( {
8478 txHex : t . string ,
8579 } ) , // the full signed tx
86- ...InternalServerErrorResponse ,
80+ ...ErrorResponses ,
8781} ;
8882
8983const RecoveryMpcRequest = {
@@ -105,7 +99,7 @@ const RecoveryMpcResponse: HttpResponse = {
10599 200 : t . type ( {
106100 txHex : t . string ,
107101 } ) , // the full signed tx
108- ...InternalServerErrorResponse ,
102+ ...ErrorResponses ,
109103} ;
110104
111105// Request type for /mpc/sign endpoint
@@ -163,7 +157,7 @@ const SignMpcResponse: HttpResponse = {
163157 signatureShareRound3 : t . any ,
164158 } ) ,
165159 ] ) ,
166- ...InternalServerErrorResponse ,
160+ ...ErrorResponses ,
167161} ;
168162
169163const KeyShare = {
@@ -373,10 +367,7 @@ export const AdvancedWalletManagerApiSpec = apiSpec({
373367 } ) ,
374368 response : {
375369 200 : t . type ( MpcInitializeResponse ) ,
376- 500 : t . type ( {
377- error : t . string ,
378- details : t . string ,
379- } ) ,
370+ ...ErrorResponses ,
380371 } ,
381372 description : 'Initialize MPC for EdDSA key generation' ,
382373 } ) ,
@@ -414,10 +405,7 @@ export const AdvancedWalletManagerApiSpec = apiSpec({
414405 } ) ,
415406 response : {
416407 200 : MpcFinalizeResponseType ,
417- 500 : t . type ( {
418- error : t . string ,
419- details : t . string ,
420- } ) ,
408+ ...ErrorResponses ,
421409 } ,
422410 description : 'Finalize key generation and confirm commonKeychain' ,
423411 } ) ,
@@ -432,10 +420,7 @@ export const AdvancedWalletManagerApiSpec = apiSpec({
432420 } ) ,
433421 response : {
434422 200 : MpcV2InitializeResponseType ,
435- 500 : t . type ( {
436- error : t . string ,
437- details : t . string ,
438- } ) ,
423+ ...ErrorResponses ,
439424 } ,
440425 description : 'Initialize MPC for EdDSA key generation' ,
441426 } ) ,
@@ -450,9 +435,7 @@ export const AdvancedWalletManagerApiSpec = apiSpec({
450435 } ) ,
451436 response : {
452437 200 : MpcV2RoundResponseType ,
453- ...InternalServerErrorResponse ,
454- ...BadRequestResponse ,
455- ...UnprocessableEntityResponse ,
438+ ...ErrorResponses ,
456439 } ,
457440 description : 'Perform a round in the MPC protocol' ,
458441 } ) ,
@@ -467,10 +450,7 @@ export const AdvancedWalletManagerApiSpec = apiSpec({
467450 } ) ,
468451 response : {
469452 200 : MpcV2FinalizeResponseType ,
470- 500 : t . type ( {
471- error : t . string ,
472- details : t . string ,
473- } ) ,
453+ ...ErrorResponses ,
474454 } ,
475455 description : 'Finalize the MPC protocol' ,
476456 } ) ,
@@ -485,9 +465,7 @@ export const AdvancedWalletManagerApiSpec = apiSpec({
485465 } ) ,
486466 response : {
487467 200 : MpcV2RecoveryResponseType ,
488- ...BadRequestResponse ,
489- ...InternalServerErrorResponse ,
490- ...NotImplementedResponse ,
468+ ...ErrorResponses ,
491469 } ,
492470 description : 'Recover a MPC transaction' ,
493471 } ) ,
@@ -567,7 +545,9 @@ export function createKeyGenRouter(
567545 } ) ;
568546 return Response . ok ( result ) ;
569547 } else {
570- throw new MethodNotImplementedError ( ) ;
548+ throw new NotImplementedError (
549+ `MPC recovery is not implemented for ${ coin . getFamily ( ) } coins` ,
550+ ) ;
571551 }
572552 } ) ,
573553 ] ) ;
0 commit comments