@bitgo/sdk-core 38.13.0 → 38.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/src/api/types.d.ts +6 -0
  2. package/dist/src/api/types.d.ts.map +1 -1
  3. package/dist/src/api/types.js +8 -1
  4. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +17 -7
  5. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  6. package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
  7. package/dist/src/bitgo/defi/defiVault.d.ts +42 -8
  8. package/dist/src/bitgo/defi/defiVault.d.ts.map +1 -1
  9. package/dist/src/bitgo/defi/defiVault.js +76 -10
  10. package/dist/src/bitgo/defi/iDefiVault.d.ts +22 -2
  11. package/dist/src/bitgo/defi/iDefiVault.d.ts.map +1 -1
  12. package/dist/src/bitgo/defi/iDefiVault.js +1 -1
  13. package/dist/src/bitgo/environments.js +3 -3
  14. package/dist/src/bitgo/internal/keycard.d.ts +2 -1
  15. package/dist/src/bitgo/internal/keycard.d.ts.map +1 -1
  16. package/dist/src/bitgo/internal/keycard.js +6 -3
  17. package/dist/src/bitgo/keychain/iKeychains.d.ts +6 -2
  18. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  19. package/dist/src/bitgo/keychain/iKeychains.js +1 -1
  20. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  21. package/dist/src/bitgo/keychain/keychains.js +24 -10
  22. package/dist/src/bitgo/safe/iSafe.d.ts +5 -2
  23. package/dist/src/bitgo/safe/iSafe.d.ts.map +1 -1
  24. package/dist/src/bitgo/safe/iSafe.js +1 -1
  25. package/dist/src/bitgo/safe/safe.d.ts +14 -7
  26. package/dist/src/bitgo/safe/safe.d.ts.map +1 -1
  27. package/dist/src/bitgo/safe/safe.js +105 -29
  28. package/dist/src/bitgo/staking/iStakingWallet.d.ts +13 -5
  29. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
  30. package/dist/src/bitgo/staking/iStakingWallet.js +1 -1
  31. package/dist/src/bitgo/staking/stakingWallet.d.ts +2 -2
  32. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
  33. package/dist/src/bitgo/staking/stakingWallet.js +14 -1
  34. package/dist/src/bitgo/tss/common.d.ts.map +1 -1
  35. package/dist/src/bitgo/tss/common.js +4 -1
  36. package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.d.ts +50 -0
  37. package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
  38. package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.js +112 -0
  39. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
  40. package/dist/src/bitgo/utils/mpcUtils.js +15 -1
  41. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +1 -1
  42. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  43. package/dist/src/bitgo/utils/tss/baseTypes.js +1 -1
  44. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +4 -1
  45. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
  46. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +18 -6
  47. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts +9 -1
  48. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts.map +1 -1
  49. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.js +24 -3
  50. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts +88 -0
  51. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts.map +1 -0
  52. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.js +494 -0
  53. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts +1 -0
  54. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts.map +1 -1
  55. package/dist/src/bitgo/utils/tss/ecdsa/index.js +2 -1
  56. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts +20 -2
  57. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts.map +1 -1
  58. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.js +1 -1
  59. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +8 -5
  60. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -1
  61. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +1 -1
  62. package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts +33 -0
  63. package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts.map +1 -0
  64. package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +260 -0
  65. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +1 -0
  66. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -1
  67. package/dist/src/bitgo/utils/tss/eddsa/index.js +2 -1
  68. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts +15 -2
  69. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts.map +1 -1
  70. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.js +13 -2
  71. package/dist/src/bitgo/utils/tss/recipientUtils.d.ts.map +1 -1
  72. package/dist/src/bitgo/utils/tss/recipientUtils.js +13 -1
  73. package/dist/src/bitgo/wallet/BuildParams.d.ts +8 -0
  74. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
  75. package/dist/src/bitgo/wallet/BuildParams.js +6 -1
  76. package/dist/src/bitgo/wallet/iWallet.d.ts +7 -1
  77. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  78. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  79. package/dist/src/bitgo/wallet/safeKeychain.d.ts +25 -2
  80. package/dist/src/bitgo/wallet/safeKeychain.d.ts.map +1 -1
  81. package/dist/src/bitgo/wallet/safeKeychain.js +72 -18
  82. package/dist/src/bitgo/wallet/wallet.d.ts +12 -4
  83. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  84. package/dist/src/bitgo/wallet/wallet.js +82 -17
  85. package/dist/src/bitgo/wallet/wallets.d.ts +6 -0
  86. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  87. package/dist/src/bitgo/wallet/wallets.js +35 -36
  88. package/dist/test/unit/bitgo/defi/defiVault.js +264 -1
  89. package/dist/test/unit/bitgo/keychain/keychains.js +43 -1
  90. package/dist/test/unit/bitgo/safe/safe.js +53 -22
  91. package/dist/test/unit/bitgo/tss/common.d.ts +2 -0
  92. package/dist/test/unit/bitgo/tss/common.d.ts.map +1 -0
  93. package/dist/test/unit/bitgo/tss/common.js +77 -0
  94. package/dist/test/unit/bitgo/tss/redpallas/redpallasMPCv2.d.ts +2 -0
  95. package/dist/test/unit/bitgo/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
  96. package/dist/test/unit/bitgo/tss/redpallas/redpallasMPCv2.js +181 -0
  97. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +70 -1
  98. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts +2 -0
  99. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts.map +1 -0
  100. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +173 -0
  101. package/dist/test/unit/bitgo/utils/tss/recipientUtils.js +33 -1
  102. package/dist/test/unit/bitgo/wallet/safeGetUserPrv.js +10 -10
  103. package/dist/test/unit/bitgo/wallet/safeShareWallet.d.ts +9 -0
  104. package/dist/test/unit/bitgo/wallet/safeShareWallet.d.ts.map +1 -0
  105. package/dist/test/unit/bitgo/wallet/safeShareWallet.js +303 -0
  106. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.js +51 -40
  107. package/dist/tsconfig.tsbuildinfo +1 -1
  108. package/package.json +6 -5
@@ -1,8 +1,16 @@
1
1
  import { MPCv2KeyGenState } from '@bitgo/public-types';
2
- import { GenerateMPCv2KeyRequestBody, GenerateMPCv2KeyRequestResponse } from './typesMPCv2';
2
+ import { GenerateMPCv2DeriveKeyRequest, GenerateMPCv2DeriveKeyRequestResponse, GenerateMPCv2KeyRequestBody, GenerateMPCv2KeyRequestResponse } from './typesMPCv2';
3
3
  import { BitGoBase } from '../../../bitgoBase';
4
4
  export type EcdsaMPCv2KeyGenSendFn<T extends GenerateMPCv2KeyRequestResponse> = (round: MPCv2KeyGenState, payload: GenerateMPCv2KeyRequestBody & {
5
5
  walletId?: string;
6
6
  }) => Promise<T>;
7
7
  export declare function KeyGenSenderForEnterprise<T extends GenerateMPCv2KeyRequestResponse>(bitgo: BitGoBase, enterprise: string, safeId?: string): EcdsaMPCv2KeyGenSendFn<T>;
8
+ export type EcdsaMPCv2DeriveKeySendFn<T extends GenerateMPCv2DeriveKeyRequestResponse> = (round: MPCv2KeyGenState, payload: GenerateMPCv2DeriveKeyRequest) => Promise<T>;
9
+ /**
10
+ * Round sender for the user/BitGo safe-child hard-derivation ceremony. The
11
+ * derive rounds use the same endpoint as MPCv2 keygen (`/mpc/generatekey`),
12
+ * dispatched by the `MPCv2Derive-R*` round values. The R1 payload carries the
13
+ * BitGo root `parentKeyId` and `derivationIndex`.
14
+ */
15
+ export declare function KeyGenSenderForSafeChild<T extends GenerateMPCv2DeriveKeyRequestResponse>(bitgo: BitGoBase, enterprise: string, safeId: string): EcdsaMPCv2DeriveKeySendFn<T>;
8
16
  //# sourceMappingURL=ecdsaMPCv2KeyGenSender.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ecdsaMPCv2KeyGenSender.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,+BAA+B,IAAI,CAC9E,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,2BAA2B,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KACzD,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,+BAA+B,EACjF,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,EAGlB,MAAM,CAAC,EAAE,MAAM,GACd,sBAAsB,CAAC,CAAC,CAAC,CAO3B"}
1
+ {"version":3,"file":"ecdsaMPCv2KeyGenSender.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EACL,6BAA6B,EAC7B,qCAAqC,EACrC,2BAA2B,EAC3B,+BAA+B,EAChC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,+BAA+B,IAAI,CAC9E,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,2BAA2B,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KACzD,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,+BAA+B,EACjF,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,EAGlB,MAAM,CAAC,EAAE,MAAM,GACd,sBAAsB,CAAC,CAAC,CAAC,CAO3B;AAED,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,qCAAqC,IAAI,CACvF,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,6BAA6B,KACnC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,qCAAqC,EACtF,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,yBAAyB,CAAC,CAAC,CAAC,CAa9B"}
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.KeyGenSenderForEnterprise = KeyGenSenderForEnterprise;
4
+ exports.KeyGenSenderForSafeChild = KeyGenSenderForSafeChild;
4
5
  const public_types_1 = require("@bitgo/public-types");
5
6
  function KeyGenSenderForEnterprise(bitgo, enterprise,
6
- // Wallet Safes v1 (@experimental): when set, tags the resulting root keys with this safe. WP only reads it on
7
- // round MPCv2-R1; passing it on a sender used solely for round 1 is sufficient.
7
+ // @experimental: when set, tags the resulting root keys with this safe. Only read
8
+ // on round MPCv2-R1; passing it on a sender used solely for round 1 is sufficient.
8
9
  safeId) {
9
10
  return (round, payload) => {
10
11
  return bitgo
@@ -13,4 +14,24 @@ safeId) {
13
14
  .result();
14
15
  };
15
16
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNkc2FNUEN2MktleUdlblNlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy90c3MvZWNkc2EvZWNkc2FNUEN2MktleUdlblNlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVNBLDhEQWFDO0FBdEJELHNEQUF1RTtBQVN2RSxTQUFnQix5QkFBeUIsQ0FDdkMsS0FBZ0IsRUFDaEIsVUFBa0I7QUFDbEIsOEdBQThHO0FBQzlHLGdGQUFnRjtBQUNoRixNQUFlO0lBRWYsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4QixPQUFPLEtBQUs7YUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN0QyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSw2QkFBYyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7YUFDeEUsTUFBTSxFQUFFLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5R2VuVHlwZUVudW0sIE1QQ3YyS2V5R2VuU3RhdGUgfSBmcm9tICdAYml0Z28vcHVibGljLXR5cGVzJztcbmltcG9ydCB7IEdlbmVyYXRlTVBDdjJLZXlSZXF1ZXN0Qm9keSwgR2VuZXJhdGVNUEN2MktleVJlcXVlc3RSZXNwb25zZSB9IGZyb20gJy4vdHlwZXNNUEN2Mic7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi8uLi8uLi9iaXRnb0Jhc2UnO1xuXG5leHBvcnQgdHlwZSBFY2RzYU1QQ3YyS2V5R2VuU2VuZEZuPFQgZXh0ZW5kcyBHZW5lcmF0ZU1QQ3YyS2V5UmVxdWVzdFJlc3BvbnNlPiA9IChcbiAgcm91bmQ6IE1QQ3YyS2V5R2VuU3RhdGUsXG4gIHBheWxvYWQ6IEdlbmVyYXRlTVBDdjJLZXlSZXF1ZXN0Qm9keSAmIHsgd2FsbGV0SWQ/OiBzdHJpbmcgfVxuKSA9PiBQcm9taXNlPFQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gS2V5R2VuU2VuZGVyRm9yRW50ZXJwcmlzZTxUIGV4dGVuZHMgR2VuZXJhdGVNUEN2MktleVJlcXVlc3RSZXNwb25zZT4oXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIGVudGVycHJpc2U6IHN0cmluZyxcbiAgLy8gV2FsbGV0IFNhZmVzIHYxIChAZXhwZXJpbWVudGFsKTogd2hlbiBzZXQsIHRhZ3MgdGhlIHJlc3VsdGluZyByb290IGtleXMgd2l0aCB0aGlzIHNhZmUuIFdQIG9ubHkgcmVhZHMgaXQgb25cbiAgLy8gcm91bmQgTVBDdjItUjE7IHBhc3NpbmcgaXQgb24gYSBzZW5kZXIgdXNlZCBzb2xlbHkgZm9yIHJvdW5kIDEgaXMgc3VmZmljaWVudC5cbiAgc2FmZUlkPzogc3RyaW5nXG4pOiBFY2RzYU1QQ3YyS2V5R2VuU2VuZEZuPFQ+IHtcbiAgcmV0dXJuIChyb3VuZCwgcGF5bG9hZCkgPT4ge1xuICAgIHJldHVybiBiaXRnb1xuICAgICAgLnBvc3QoYml0Z28udXJsKCcvbXBjL2dlbmVyYXRla2V5JywgMikpXG4gICAgICAuc2VuZCh7IGVudGVycHJpc2UsIHNhZmVJZCwgdHlwZTogS2V5R2VuVHlwZUVudW0uTVBDdjIsIHJvdW5kLCBwYXlsb2FkIH0pXG4gICAgICAucmVzdWx0KCk7XG4gIH07XG59XG4iXX0=
17
+ /**
18
+ * Round sender for the user/BitGo safe-child hard-derivation ceremony. The
19
+ * derive rounds use the same endpoint as MPCv2 keygen (`/mpc/generatekey`),
20
+ * dispatched by the `MPCv2Derive-R*` round values. The R1 payload carries the
21
+ * BitGo root `parentKeyId` and `derivationIndex`.
22
+ */
23
+ function KeyGenSenderForSafeChild(bitgo, enterprise, safeId) {
24
+ return (round, payload) => {
25
+ return bitgo
26
+ .post(bitgo.url('/mpc/generatekey', 2))
27
+ .send({
28
+ enterprise,
29
+ safeId,
30
+ type: public_types_1.KeyGenTypeEnum.MPCv2,
31
+ round,
32
+ payload,
33
+ })
34
+ .result();
35
+ };
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNkc2FNUEN2MktleUdlblNlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy90c3MvZWNkc2EvZWNkc2FNUEN2MktleUdlblNlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWNBLDhEQWFDO0FBYUQsNERBaUJDO0FBekRELHNEQUF1RTtBQWN2RSxTQUFnQix5QkFBeUIsQ0FDdkMsS0FBZ0IsRUFDaEIsVUFBa0I7QUFDbEIsa0ZBQWtGO0FBQ2xGLG1GQUFtRjtBQUNuRixNQUFlO0lBRWYsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4QixPQUFPLEtBQUs7YUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN0QyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSw2QkFBYyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7YUFDeEUsTUFBTSxFQUFFLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSixDQUFDO0FBT0Q7Ozs7O0dBS0c7QUFDSCxTQUFnQix3QkFBd0IsQ0FDdEMsS0FBZ0IsRUFDaEIsVUFBa0IsRUFDbEIsTUFBYztJQUVkLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDeEIsT0FBTyxLQUFLO2FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDdEMsSUFBSSxDQUFDO1lBQ0osVUFBVTtZQUNWLE1BQU07WUFDTixJQUFJLEVBQUUsNkJBQWMsQ0FBQyxLQUFLO1lBQzFCLEtBQUs7WUFDTCxPQUFPO1NBQ1IsQ0FBQzthQUNELE1BQU0sRUFBRSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleUdlblR5cGVFbnVtLCBNUEN2MktleUdlblN0YXRlIH0gZnJvbSAnQGJpdGdvL3B1YmxpYy10eXBlcyc7XG5pbXBvcnQge1xuICBHZW5lcmF0ZU1QQ3YyRGVyaXZlS2V5UmVxdWVzdCxcbiAgR2VuZXJhdGVNUEN2MkRlcml2ZUtleVJlcXVlc3RSZXNwb25zZSxcbiAgR2VuZXJhdGVNUEN2MktleVJlcXVlc3RCb2R5LFxuICBHZW5lcmF0ZU1QQ3YyS2V5UmVxdWVzdFJlc3BvbnNlLFxufSBmcm9tICcuL3R5cGVzTVBDdjInO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vLi4vLi4vYml0Z29CYXNlJztcblxuZXhwb3J0IHR5cGUgRWNkc2FNUEN2MktleUdlblNlbmRGbjxUIGV4dGVuZHMgR2VuZXJhdGVNUEN2MktleVJlcXVlc3RSZXNwb25zZT4gPSAoXG4gIHJvdW5kOiBNUEN2MktleUdlblN0YXRlLFxuICBwYXlsb2FkOiBHZW5lcmF0ZU1QQ3YyS2V5UmVxdWVzdEJvZHkgJiB7IHdhbGxldElkPzogc3RyaW5nIH1cbikgPT4gUHJvbWlzZTxUPjtcblxuZXhwb3J0IGZ1bmN0aW9uIEtleUdlblNlbmRlckZvckVudGVycHJpc2U8VCBleHRlbmRzIEdlbmVyYXRlTVBDdjJLZXlSZXF1ZXN0UmVzcG9uc2U+KFxuICBiaXRnbzogQml0R29CYXNlLFxuICBlbnRlcnByaXNlOiBzdHJpbmcsXG4gIC8vIEBleHBlcmltZW50YWw6IHdoZW4gc2V0LCB0YWdzIHRoZSByZXN1bHRpbmcgcm9vdCBrZXlzIHdpdGggdGhpcyBzYWZlLiBPbmx5IHJlYWRcbiAgLy8gb24gcm91bmQgTVBDdjItUjE7IHBhc3NpbmcgaXQgb24gYSBzZW5kZXIgdXNlZCBzb2xlbHkgZm9yIHJvdW5kIDEgaXMgc3VmZmljaWVudC5cbiAgc2FmZUlkPzogc3RyaW5nXG4pOiBFY2RzYU1QQ3YyS2V5R2VuU2VuZEZuPFQ+IHtcbiAgcmV0dXJuIChyb3VuZCwgcGF5bG9hZCkgPT4ge1xuICAgIHJldHVybiBiaXRnb1xuICAgICAgLnBvc3QoYml0Z28udXJsKCcvbXBjL2dlbmVyYXRla2V5JywgMikpXG4gICAgICAuc2VuZCh7IGVudGVycHJpc2UsIHNhZmVJZCwgdHlwZTogS2V5R2VuVHlwZUVudW0uTVBDdjIsIHJvdW5kLCBwYXlsb2FkIH0pXG4gICAgICAucmVzdWx0KCk7XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIEVjZHNhTVBDdjJEZXJpdmVLZXlTZW5kRm48VCBleHRlbmRzIEdlbmVyYXRlTVBDdjJEZXJpdmVLZXlSZXF1ZXN0UmVzcG9uc2U+ID0gKFxuICByb3VuZDogTVBDdjJLZXlHZW5TdGF0ZSxcbiAgcGF5bG9hZDogR2VuZXJhdGVNUEN2MkRlcml2ZUtleVJlcXVlc3RcbikgPT4gUHJvbWlzZTxUPjtcblxuLyoqXG4gKiBSb3VuZCBzZW5kZXIgZm9yIHRoZSB1c2VyL0JpdEdvIHNhZmUtY2hpbGQgaGFyZC1kZXJpdmF0aW9uIGNlcmVtb255LiBUaGVcbiAqIGRlcml2ZSByb3VuZHMgdXNlIHRoZSBzYW1lIGVuZHBvaW50IGFzIE1QQ3YyIGtleWdlbiAoYC9tcGMvZ2VuZXJhdGVrZXlgKSxcbiAqIGRpc3BhdGNoZWQgYnkgdGhlIGBNUEN2MkRlcml2ZS1SKmAgcm91bmQgdmFsdWVzLiBUaGUgUjEgcGF5bG9hZCBjYXJyaWVzIHRoZVxuICogQml0R28gcm9vdCBgcGFyZW50S2V5SWRgIGFuZCBgZGVyaXZhdGlvbkluZGV4YC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEtleUdlblNlbmRlckZvclNhZmVDaGlsZDxUIGV4dGVuZHMgR2VuZXJhdGVNUEN2MkRlcml2ZUtleVJlcXVlc3RSZXNwb25zZT4oXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIGVudGVycHJpc2U6IHN0cmluZyxcbiAgc2FmZUlkOiBzdHJpbmdcbik6IEVjZHNhTVBDdjJEZXJpdmVLZXlTZW5kRm48VD4ge1xuICByZXR1cm4gKHJvdW5kLCBwYXlsb2FkKSA9PiB7XG4gICAgcmV0dXJuIGJpdGdvXG4gICAgICAucG9zdChiaXRnby51cmwoJy9tcGMvZ2VuZXJhdGVrZXknLCAyKSlcbiAgICAgIC5zZW5kKHtcbiAgICAgICAgZW50ZXJwcmlzZSxcbiAgICAgICAgc2FmZUlkLFxuICAgICAgICB0eXBlOiBLZXlHZW5UeXBlRW51bS5NUEN2MixcbiAgICAgICAgcm91bmQsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICB9KVxuICAgICAgLnJlc3VsdCgpO1xuICB9O1xufVxuIl19
@@ -0,0 +1,88 @@
1
+ import { DklsTypes } from '@bitgo/sdk-lib-mpc';
2
+ import { MPCv2DeriveRound1Response, MPCv2DeriveRound2Response, MPCv2DeriveRound3Response } from '@bitgo/public-types';
3
+ import { KeychainsTriplet } from '../../../baseCoin';
4
+ import { DecryptedRetrofitPayload } from '../../../keychain/iKeychains';
5
+ import { EncryptionVersion } from '../../../../api';
6
+ import { WebauthnKeyEncryptionInfo } from '../../../keychain';
7
+ import { EcdsaMPCv2Utils } from './ecdsaMPCv2';
8
+ import { EcdsaMPCv2DeriveKeySendFn } from './ecdsaMPCv2KeyGenSender';
9
+ /**
10
+ * Combines the signing keyshare with the VRF keyshare into the `encryptedPrv` envelope
11
+ * (`base64(cborEncode({version, prvKeyShare, vrf}))` once the caller base64-encodes the
12
+ * returned buffers). The same container wraps the reduced signing share for
13
+ * `reducedEncryptedPrv`.
14
+ */
15
+ export declare function buildVrfKeyEnvelopes(privateMaterial: Buffer, reducedPrivateMaterial: Buffer, vrfKeyShare: Buffer): {
16
+ envelope: Buffer;
17
+ reducedEnvelope: Buffer;
18
+ };
19
+ /**
20
+ * Parses a decrypted root blob produced by {@link buildVrfKeyEnvelopes}: a CBOR
21
+ * envelope `{version: 1, prvKeyShare, vrf}`. Returns the signing and VRF keyshares
22
+ * as Buffers. Throws if the blob is not a valid VRF key envelope.
23
+ */
24
+ export declare function parseVrfKeyEnvelopes(decryptedBlob: string): {
25
+ signing: Buffer;
26
+ vrf: Buffer;
27
+ };
28
+ /**
29
+ * Encodes a hardened derivation index as the byte path the DKLS hard-derive wasm
30
+ * expects: one big-endian u32 with the hardened bit (0x80000000) set — i.e. the
31
+ * child path `m/<index>'`. The server derives the same hardened path from the
32
+ * `derivationIndex` it receives on round 1.
33
+ */
34
+ export declare function hardenedDerivationPath(index: number): Uint8Array;
35
+ /**
36
+ * EcdsaMPCv2Utils variant that runs the Ristretto VRF DKG alongside the signing DKLS
37
+ * DKG inside the same MPCv2 keygen rounds, for safe MPC root creation.
38
+ *
39
+ * The round enum is unchanged: the VRF commitment rides MPCv2-R1, the opening rides
40
+ * MPCv2-R2, and the VRF DKG finalizes locally before MPCv2-R3. VRF messages travel as
41
+ * opaque base64 fields on the round payloads, never through the DKLS broadcast/p2p slots.
42
+ * At the end, the signing and VRF keyshares are combined into a single CBOR envelope
43
+ * before encryption.
44
+ */
45
+ export declare class EcdsaVrfMPCv2Utils extends EcdsaMPCv2Utils {
46
+ /** @inheritdoc */
47
+ createKeychains(params: {
48
+ passphrase: string;
49
+ enterprise: string;
50
+ originalPasscodeEncryptionCode?: string;
51
+ retrofit?: DecryptedRetrofitPayload;
52
+ webauthnInfo?: WebauthnKeyEncryptionInfo;
53
+ encryptionVersion?: EncryptionVersion;
54
+ safeId: string;
55
+ }): Promise<KeychainsTriplet>;
56
+ /**
57
+ * Sends round 1 for the user/BitGo hard-derive ceremony.
58
+ */
59
+ sendDerivationRound1BySender(senderFn: EcdsaMPCv2DeriveKeySendFn<MPCv2DeriveRound1Response>, userGpgPublicKey: string, payload: DklsTypes.AuthEncMessages, parentKeyId: string, derivationIndex: number): Promise<MPCv2DeriveRound1Response>;
60
+ /**
61
+ * Sends round 2 for the user/BitGo hard-derive ceremony.
62
+ */
63
+ sendDerivationRound2BySender(senderFn: EcdsaMPCv2DeriveKeySendFn<MPCv2DeriveRound2Response>, sessionId: string, payload: DklsTypes.AuthEncMessages): Promise<MPCv2DeriveRound2Response>;
64
+ /**
65
+ * Completes round 3 and returns the child common keychain.
66
+ */
67
+ sendDerivationRound3BySender(senderFn: EcdsaMPCv2DeriveKeySendFn<MPCv2DeriveRound3Response>, sessionId: string): Promise<MPCv2DeriveRound3Response>;
68
+ /**
69
+ * Runs the safe child hard-derive ceremony and registers child key documents.
70
+ */
71
+ createSafeChildKeychains(params: {
72
+ passphrase: string;
73
+ enterprise: string;
74
+ safeId: string;
75
+ /** Root key ID used for the derive. */
76
+ parentKeyId: string;
77
+ derivationIndex: number;
78
+ userRootKeyId: string;
79
+ backupRootKeyId: string;
80
+ userRootKeyShare: Buffer;
81
+ userRootVrfKeyShare: Buffer;
82
+ originalPasscodeEncryptionCode?: string;
83
+ webauthnInfo?: WebauthnKeyEncryptionInfo;
84
+ encryptionVersion?: EncryptionVersion;
85
+ }): Promise<Pick<KeychainsTriplet, 'userKeychain' | 'backupKeychain'>>;
86
+ private createSigningDkgSessions;
87
+ }
88
+ //# sourceMappingURL=ecdsaVrfMPCv2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecdsaVrfMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.ts"],"names":[],"mappings":"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"}