@bitgo/sdk-core 38.15.0 → 38.17.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 (70) hide show
  1. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts +3 -1
  2. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts.map +1 -1
  3. package/dist/src/account-lib/util/ed25519KeyDeriver.js +4 -2
  4. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +7 -1
  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 +7 -7
  8. package/dist/src/bitgo/defi/defiVault.d.ts.map +1 -1
  9. package/dist/src/bitgo/defi/defiVault.js +10 -10
  10. package/dist/src/bitgo/defi/iDefiVault.d.ts +7 -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/keychain/iKeychains.d.ts +4 -0
  15. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  16. package/dist/src/bitgo/keychain/iKeychains.js +1 -1
  17. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  18. package/dist/src/bitgo/keychain/keychains.js +15 -15
  19. package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts +24 -81
  20. package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts.map +1 -1
  21. package/dist/src/bitgo/safe/derivableEd25519Pub.js +117 -147
  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 +108 -30
  28. package/dist/src/bitgo/safe/safeDerivation.d.ts +13 -0
  29. package/dist/src/bitgo/safe/safeDerivation.d.ts.map +1 -1
  30. package/dist/src/bitgo/safe/safeDerivation.js +30 -1
  31. package/dist/src/bitgo/safe/safes.d.ts.map +1 -1
  32. package/dist/src/bitgo/safe/safes.js +10 -8
  33. package/dist/src/bitgo/staking/iStakingWallet.d.ts +13 -5
  34. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
  35. package/dist/src/bitgo/staking/iStakingWallet.js +1 -1
  36. package/dist/src/bitgo/staking/stakingWallet.d.ts +2 -2
  37. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
  38. package/dist/src/bitgo/staking/stakingWallet.js +14 -1
  39. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +4 -1
  40. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
  41. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +18 -6
  42. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts +9 -1
  43. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts.map +1 -1
  44. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.js +24 -3
  45. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts +50 -1
  46. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts.map +1 -1
  47. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.js +154 -4
  48. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts +3 -0
  49. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts.map +1 -1
  50. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.js +1 -1
  51. package/dist/src/bitgo/utils/tss/recipientUtils.d.ts.map +1 -1
  52. package/dist/src/bitgo/utils/tss/recipientUtils.js +9 -1
  53. package/dist/src/bitgo/wallet/BuildParams.d.ts +8 -0
  54. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
  55. package/dist/src/bitgo/wallet/BuildParams.js +6 -1
  56. package/dist/src/bitgo/wallet/iWallet.d.ts +5 -1
  57. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  58. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  59. package/dist/test/unit/bitgo/defi/defiVault.js +102 -1
  60. package/dist/test/unit/bitgo/keychain/keychains.js +40 -29
  61. package/dist/test/unit/bitgo/safe/derivableEd25519Pub.js +72 -76
  62. package/dist/test/unit/bitgo/safe/fixtures/derivableEd25519Pub.json +50 -175
  63. package/dist/test/unit/bitgo/safe/safe.js +122 -23
  64. package/dist/test/unit/bitgo/safe/safeDerivation.d.ts +2 -0
  65. package/dist/test/unit/bitgo/safe/safeDerivation.d.ts.map +1 -0
  66. package/dist/test/unit/bitgo/safe/safeDerivation.js +71 -0
  67. package/dist/test/unit/bitgo/safe/safes.js +23 -11
  68. package/dist/test/unit/bitgo/utils/tss/recipientUtils.js +29 -1
  69. package/dist/tsconfig.tsbuildinfo +1 -1
  70. package/package.json +5 -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
@@ -1,8 +1,11 @@
1
+ import { DklsTypes } from '@bitgo/sdk-lib-mpc';
2
+ import { MPCv2DeriveRound1Response, MPCv2DeriveRound2Response, MPCv2DeriveRound3Response } from '@bitgo/public-types';
1
3
  import { KeychainsTriplet } from '../../../baseCoin';
2
4
  import { DecryptedRetrofitPayload } from '../../../keychain/iKeychains';
3
5
  import { EncryptionVersion } from '../../../../api';
4
6
  import { WebauthnKeyEncryptionInfo } from '../../../keychain';
5
7
  import { EcdsaMPCv2Utils } from './ecdsaMPCv2';
8
+ import { EcdsaMPCv2DeriveKeySendFn } from './ecdsaMPCv2KeyGenSender';
6
9
  /**
7
10
  * Combines the signing keyshare with the VRF keyshare into the `encryptedPrv` envelope
8
11
  * (`base64(cborEncode({version, prvKeyShare, vrf}))` once the caller base64-encodes the
@@ -13,6 +16,22 @@ export declare function buildVrfKeyEnvelopes(privateMaterial: Buffer, reducedPri
13
16
  envelope: Buffer;
14
17
  reducedEnvelope: Buffer;
15
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;
16
35
  /**
17
36
  * EcdsaMPCv2Utils variant that runs the Ristretto VRF DKG alongside the signing DKLS
18
37
  * DKG inside the same MPCv2 keygen rounds, for safe MPC root creation.
@@ -34,6 +53,36 @@ export declare class EcdsaVrfMPCv2Utils extends EcdsaMPCv2Utils {
34
53
  encryptionVersion?: EncryptionVersion;
35
54
  safeId: string;
36
55
  }): Promise<KeychainsTriplet>;
37
- private getUserAndBackupSessions;
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;
38
87
  }
39
88
  //# sourceMappingURL=ecdsaVrfMPCv2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ecdsaVrfMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAiD/C;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,MAAM,EACvB,sBAAsB,EAAE,MAAM,EAC9B,WAAW,EAAE,MAAM,GAClB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAY/C;AAED;;;;;;;;;GASG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;IACrD,kBAAkB;IACZ,eAAe,CAAC,MAAM,EAAE;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;QACpC,YAAY,CAAC,EAAE,yBAAyB,CAAC;QACzC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;QAEtC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwa7B,OAAO,CAAC,wBAAwB;CAgBjC"}
1
+ {"version":3,"file":"ecdsaVrfMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,SAAS,EAAW,MAAM,oBAAoB,CAAC;AAIrF,OAAO,EAEL,yBAAyB,EAEzB,yBAAyB,EACzB,yBAAyB,EAI1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,yBAAyB,EAG1B,MAAM,0BAA0B,CAAC;AAyDlC;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,MAAM,EACvB,sBAAsB,EAAE,MAAM,EAC9B,WAAW,EAAE,MAAM,GAClB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAY/C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAsB5F;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAKhE;AAED;;;;;;;;;GASG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;IACrD,kBAAkB;IACZ,eAAe,CAAC,MAAM,EAAE;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;QACpC,YAAY,CAAC,EAAE,yBAAyB,CAAC;QACzC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;QAEtC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAua7B;;OAEG;IACG,4BAA4B,CAChC,QAAQ,EAAE,yBAAyB,CAAC,yBAAyB,CAAC,EAC9D,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,SAAS,CAAC,eAAe,EAClC,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,yBAAyB,CAAC;IAmBrC;;OAEG;IACG,4BAA4B,CAChC,QAAQ,EAAE,yBAAyB,CAAC,yBAAyB,CAAC,EAC9D,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,SAAS,CAAC,eAAe,GACjC,OAAO,CAAC,yBAAyB,CAAC;IAYrC;;OAEG;IACG,4BAA4B,CAChC,QAAQ,EAAE,yBAAyB,CAAC,yBAAyB,CAAC,EAC9D,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,yBAAyB,CAAC;IAKrC;;OAEG;IACG,wBAAwB,CAAC,MAAM,EAAE;QACrC,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,uCAAuC;QACvC,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,YAAY,CAAC,EAAE,yBAAyB,CAAC;QACzC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KACvC,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,GAAG,gBAAgB,CAAC,CAAC;IA0ItE,OAAO,CAAC,wBAAwB;CAgBjC"}