@bitgo-beta/abstract-utxo 1.6.1-alpha.238 → 1.6.1-alpha.239

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 (180) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/src/abstractUtxoCoin.d.ts +28 -47
  3. package/dist/src/abstractUtxoCoin.d.ts.map +1 -1
  4. package/dist/src/abstractUtxoCoin.js +140 -451
  5. package/dist/src/core/descriptor/DescriptorMap.d.ts +9 -0
  6. package/dist/src/core/descriptor/DescriptorMap.d.ts.map +1 -0
  7. package/dist/src/core/descriptor/DescriptorMap.js +9 -0
  8. package/dist/src/core/descriptor/Output.d.ts +24 -0
  9. package/dist/src/core/descriptor/Output.d.ts.map +1 -0
  10. package/dist/src/core/descriptor/Output.js +22 -0
  11. package/dist/src/core/descriptor/VirtualSize.d.ts +21 -0
  12. package/dist/src/core/descriptor/VirtualSize.d.ts.map +1 -0
  13. package/dist/src/core/descriptor/VirtualSize.js +83 -0
  14. package/dist/src/core/descriptor/address.d.ts +5 -0
  15. package/dist/src/core/descriptor/address.d.ts.map +1 -0
  16. package/dist/src/core/descriptor/address.js +48 -0
  17. package/dist/src/core/descriptor/index.d.ts +9 -0
  18. package/dist/src/core/descriptor/index.d.ts.map +1 -0
  19. package/dist/src/core/descriptor/index.js +17 -0
  20. package/dist/src/core/descriptor/psbt/assertSatisfiable.d.ts +20 -0
  21. package/dist/src/core/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
  22. package/dist/src/core/descriptor/psbt/assertSatisfiable.js +75 -0
  23. package/dist/src/core/descriptor/psbt/createPsbt.d.ts +15 -0
  24. package/dist/src/core/descriptor/psbt/createPsbt.d.ts.map +1 -0
  25. package/dist/src/core/descriptor/psbt/createPsbt.js +83 -0
  26. package/dist/src/core/descriptor/psbt/findDescriptors.d.ts +22 -0
  27. package/dist/src/core/descriptor/psbt/findDescriptors.d.ts.map +1 -0
  28. package/dist/src/core/descriptor/psbt/findDescriptors.js +75 -0
  29. package/dist/src/core/descriptor/psbt/index.d.ts +5 -0
  30. package/dist/src/core/descriptor/psbt/index.d.ts.map +1 -0
  31. package/dist/src/core/descriptor/psbt/index.js +10 -0
  32. package/dist/src/core/descriptor/psbt/parse.d.ts +27 -0
  33. package/dist/src/core/descriptor/psbt/parse.d.ts.map +1 -0
  34. package/dist/src/core/descriptor/psbt/parse.js +87 -0
  35. package/dist/src/core/descriptor/psbt/wrap.d.ts +12 -0
  36. package/dist/src/core/descriptor/psbt/wrap.d.ts.map +1 -0
  37. package/dist/src/core/descriptor/psbt/wrap.js +76 -0
  38. package/dist/src/core/descriptor/signTxLocal.d.ts +3 -0
  39. package/dist/src/core/descriptor/signTxLocal.d.ts.map +1 -0
  40. package/dist/src/core/descriptor/signTxLocal.js +9 -0
  41. package/dist/src/descriptor/NamedDescriptor.js +35 -2
  42. package/dist/src/descriptor/assertDescriptorWalletAddress.d.ts +2 -1
  43. package/dist/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -1
  44. package/dist/src/descriptor/assertDescriptorWalletAddress.js +46 -17
  45. package/dist/src/descriptor/builder/builder.d.ts +13 -0
  46. package/dist/src/descriptor/builder/builder.d.ts.map +1 -0
  47. package/dist/src/descriptor/builder/builder.js +35 -0
  48. package/dist/src/descriptor/builder/index.d.ts +3 -0
  49. package/dist/src/descriptor/builder/index.d.ts.map +1 -0
  50. package/dist/src/descriptor/builder/index.js +8 -0
  51. package/dist/src/descriptor/builder/parse.d.ts +5 -0
  52. package/dist/src/descriptor/builder/parse.d.ts.map +1 -0
  53. package/dist/src/descriptor/builder/parse.js +138 -0
  54. package/dist/src/descriptor/descriptorWallet.d.ts +19 -0
  55. package/dist/src/descriptor/descriptorWallet.d.ts.map +1 -0
  56. package/dist/src/descriptor/descriptorWallet.js +58 -0
  57. package/dist/src/descriptor/index.d.ts +1 -0
  58. package/dist/src/descriptor/index.d.ts.map +1 -1
  59. package/dist/src/descriptor/index.js +7 -2
  60. package/dist/src/index.d.ts +3 -0
  61. package/dist/src/index.d.ts.map +1 -1
  62. package/dist/src/index.js +29 -3
  63. package/dist/src/keychains.d.ts +10 -0
  64. package/dist/src/keychains.d.ts.map +1 -0
  65. package/dist/src/keychains.js +20 -0
  66. package/dist/src/names.d.ts +13 -0
  67. package/dist/src/names.d.ts.map +1 -0
  68. package/dist/src/names.js +175 -0
  69. package/dist/src/recovery/RecoveryProvider.js +2 -3
  70. package/dist/src/recovery/backupKeyRecovery.d.ts +0 -3
  71. package/dist/src/recovery/backupKeyRecovery.d.ts.map +1 -1
  72. package/dist/src/recovery/backupKeyRecovery.js +50 -18
  73. package/dist/src/recovery/baseApi.d.ts +1 -4
  74. package/dist/src/recovery/baseApi.d.ts.map +1 -1
  75. package/dist/src/recovery/baseApi.js +6 -6
  76. package/dist/src/recovery/coingeckoApi.d.ts +0 -3
  77. package/dist/src/recovery/coingeckoApi.d.ts.map +1 -1
  78. package/dist/src/recovery/coingeckoApi.js +1 -4
  79. package/dist/src/recovery/crossChainRecovery.d.ts.map +1 -1
  80. package/dist/src/recovery/crossChainRecovery.js +44 -12
  81. package/dist/src/recovery/mempoolApi.d.ts.map +1 -1
  82. package/dist/src/recovery/mempoolApi.js +7 -7
  83. package/dist/src/replayProtection.js +37 -5
  84. package/dist/src/sign.d.ts +0 -3
  85. package/dist/src/sign.d.ts.map +1 -1
  86. package/dist/src/sign.js +44 -11
  87. package/dist/src/transaction/descriptor/explainPsbt.d.ts +5 -0
  88. package/dist/src/transaction/descriptor/explainPsbt.d.ts.map +1 -0
  89. package/dist/src/transaction/descriptor/explainPsbt.js +80 -0
  90. package/dist/src/transaction/descriptor/index.d.ts +3 -0
  91. package/dist/src/transaction/descriptor/index.d.ts.map +1 -0
  92. package/dist/src/transaction/descriptor/index.js +6 -0
  93. package/dist/src/transaction/explainTransaction.d.ts +17 -0
  94. package/dist/src/transaction/explainTransaction.d.ts.map +1 -0
  95. package/dist/src/transaction/explainTransaction.js +55 -0
  96. package/dist/src/transaction/fetchInputs.d.ts +26 -0
  97. package/dist/src/transaction/fetchInputs.d.ts.map +1 -0
  98. package/dist/src/transaction/fetchInputs.js +110 -0
  99. package/dist/src/transaction/fixedScript/explainTransaction.d.ts +30 -0
  100. package/dist/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
  101. package/dist/src/transaction/fixedScript/explainTransaction.js +220 -0
  102. package/dist/src/transaction/fixedScript/index.d.ts +5 -0
  103. package/dist/src/transaction/fixedScript/index.d.ts.map +1 -0
  104. package/dist/src/transaction/fixedScript/index.js +11 -0
  105. package/dist/src/{parseOutput.d.ts → transaction/fixedScript/parseOutput.d.ts} +6 -6
  106. package/dist/src/transaction/fixedScript/parseOutput.d.ts.map +1 -0
  107. package/dist/src/transaction/fixedScript/parseOutput.js +214 -0
  108. package/dist/src/transaction/fixedScript/parseTransaction.d.ts +9 -0
  109. package/dist/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
  110. package/dist/src/transaction/fixedScript/parseTransaction.js +207 -0
  111. package/dist/src/transaction/fixedScript/verifyTransaction.d.ts +4 -0
  112. package/dist/src/transaction/fixedScript/verifyTransaction.d.ts.map +1 -0
  113. package/dist/src/transaction/fixedScript/verifyTransaction.js +177 -0
  114. package/dist/src/transaction/index.d.ts +6 -0
  115. package/dist/src/transaction/index.d.ts.map +1 -0
  116. package/dist/src/transaction/index.js +26 -0
  117. package/dist/src/transaction/parseTransaction.d.ts +3 -0
  118. package/dist/src/transaction/parseTransaction.d.ts.map +1 -0
  119. package/dist/src/transaction/parseTransaction.js +47 -0
  120. package/dist/src/transaction/recipient.d.ts +28 -0
  121. package/dist/src/transaction/recipient.d.ts.map +1 -0
  122. package/dist/src/transaction/recipient.js +80 -0
  123. package/dist/src/transaction/verifyTransaction.d.ts +4 -0
  124. package/dist/src/transaction/verifyTransaction.d.ts.map +1 -0
  125. package/dist/src/transaction/verifyTransaction.js +47 -0
  126. package/dist/src/verifyKey.d.ts +27 -0
  127. package/dist/src/verifyKey.d.ts.map +1 -0
  128. package/dist/src/verifyKey.js +168 -0
  129. package/dist/test/core/descriptor/descriptor.utils.d.ts +10 -0
  130. package/dist/test/core/descriptor/descriptor.utils.d.ts.map +1 -0
  131. package/dist/test/core/descriptor/descriptor.utils.js +63 -0
  132. package/dist/test/core/descriptor/psbt/VirtualSize.d.ts +2 -0
  133. package/dist/test/core/descriptor/psbt/VirtualSize.d.ts.map +1 -0
  134. package/dist/test/core/descriptor/psbt/VirtualSize.js +78 -0
  135. package/dist/test/core/descriptor/psbt/assertSatisfiable.d.ts +2 -0
  136. package/dist/test/core/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
  137. package/dist/test/core/descriptor/psbt/assertSatisfiable.js +56 -0
  138. package/dist/test/core/descriptor/psbt/createPsbt.d.ts +2 -0
  139. package/dist/test/core/descriptor/psbt/createPsbt.d.ts.map +1 -0
  140. package/dist/test/core/descriptor/psbt/createPsbt.js +85 -0
  141. package/dist/test/core/descriptor/psbt/findDescriptors.d.ts +2 -0
  142. package/dist/test/core/descriptor/psbt/findDescriptors.d.ts.map +1 -0
  143. package/dist/test/core/descriptor/psbt/findDescriptors.js +66 -0
  144. package/dist/test/core/descriptor/psbt/mock.utils.d.ts +34 -0
  145. package/dist/test/core/descriptor/psbt/mock.utils.d.ts.map +1 -0
  146. package/dist/test/core/descriptor/psbt/mock.utils.js +89 -0
  147. package/dist/test/core/descriptor/psbt/parse.d.ts +2 -0
  148. package/dist/test/core/descriptor/psbt/parse.d.ts.map +1 -0
  149. package/dist/test/core/descriptor/psbt/parse.js +32 -0
  150. package/dist/test/core/descriptor/psbt/psbt.utils.d.ts +4 -0
  151. package/dist/test/core/descriptor/psbt/psbt.utils.d.ts.map +1 -0
  152. package/dist/test/core/descriptor/psbt/psbt.utils.js +20 -0
  153. package/dist/test/core/fixtures.utils.d.ts +15 -0
  154. package/dist/test/core/fixtures.utils.d.ts.map +1 -0
  155. package/dist/test/core/fixtures.utils.js +114 -0
  156. package/dist/test/core/key.utils.d.ts +16 -0
  157. package/dist/test/core/key.utils.d.ts.map +1 -0
  158. package/dist/test/core/key.utils.js +59 -0
  159. package/dist/test/core/toPlainObject.utils.d.ts +11 -0
  160. package/dist/test/core/toPlainObject.utils.d.ts.map +1 -0
  161. package/dist/test/core/toPlainObject.utils.js +76 -0
  162. package/dist/test/descriptor/builder.d.ts +2 -0
  163. package/dist/test/descriptor/builder.d.ts.map +1 -0
  164. package/dist/test/descriptor/builder.js +70 -0
  165. package/dist/test/descriptor/descriptorWallet.d.ts +2 -0
  166. package/dist/test/descriptor/descriptorWallet.d.ts.map +1 -0
  167. package/dist/test/descriptor/descriptorWallet.js +24 -0
  168. package/dist/test/outputDifference.d.ts +2 -0
  169. package/dist/test/outputDifference.d.ts.map +1 -0
  170. package/dist/test/outputDifference.js +86 -0
  171. package/dist/test/transaction/descriptor/explainPsbt.d.ts +2 -0
  172. package/dist/test/transaction/descriptor/explainPsbt.d.ts.map +1 -0
  173. package/dist/test/transaction/descriptor/explainPsbt.js +31 -0
  174. package/dist/tsconfig.tsbuildinfo +1 -1
  175. package/package.json +13 -10
  176. package/dist/src/parseOutput.d.ts.map +0 -1
  177. package/dist/src/parseOutput.js +0 -215
  178. package/dist/src/transaction.d.ts +0 -64
  179. package/dist/src/transaction.d.ts.map +0 -1
  180. package/dist/src/transaction.js +0 -323
@@ -0,0 +1,34 @@
1
+ import { Descriptor } from '@bitgo/wasm-miniscript';
2
+ import * as utxolib from '@bitgo-beta/utxo-lib';
3
+ import { PsbtParams } from '../../../../src/core/descriptor';
4
+ import { DerivedDescriptorWalletOutput } from '../../../../src/core/descriptor/Output';
5
+ import { DescriptorTemplate } from '../descriptor.utils';
6
+ type MockOutputIdParams = {
7
+ hash?: string;
8
+ vout?: number;
9
+ };
10
+ type BaseMockDescriptorOutputParams = {
11
+ id?: MockOutputIdParams;
12
+ index?: number;
13
+ value?: bigint;
14
+ };
15
+ export declare function mockDerivedDescriptorWalletOutput(descriptor: Descriptor, outputParams?: BaseMockDescriptorOutputParams): DerivedDescriptorWalletOutput;
16
+ type MockInput = BaseMockDescriptorOutputParams & {
17
+ index: number;
18
+ descriptor: Descriptor;
19
+ };
20
+ type MockOutput = {
21
+ descriptor: Descriptor;
22
+ index: number;
23
+ value: bigint;
24
+ external?: boolean;
25
+ };
26
+ export declare function mockPsbt(inputs: MockInput[], outputs: MockOutput[], params?: Partial<PsbtParams>): utxolib.bitgo.UtxoPsbt;
27
+ export declare function mockPsbtDefault({ descriptorSelf, descriptorOther, params, }?: {
28
+ descriptorSelf?: Descriptor;
29
+ descriptorOther?: Descriptor;
30
+ params?: Partial<PsbtParams>;
31
+ }): utxolib.bitgo.UtxoPsbt;
32
+ export declare function mockPsbtDefaultWithDescriptorTemplate(t: DescriptorTemplate, params?: Partial<PsbtParams>): utxolib.bitgo.UtxoPsbt;
33
+ export {};
34
+ //# sourceMappingURL=mock.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.utils.d.ts","sourceRoot":"","sources":["../../../../../test/core/descriptor/psbt/mock.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAgD,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAkC,MAAM,qBAAqB,CAAC;AAEzF,KAAK,kBAAkB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,KAAK,8BAA8B,GAAG;IACpC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAWF,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,UAAU,EACtB,YAAY,GAAE,8BAAmC,GAChD,6BAA6B,CAY/B;AAED,KAAK,SAAS,GAAG,8BAA8B,GAAG;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,QAAQ,CACtB,MAAM,EAAE,SAAS,EAAE,EACnB,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAC/B,OAAO,CAAC,KAAK,CAAC,QAAQ,CAaxB;AAED,wBAAgB,eAAe,CAAC,EAC9B,cAA+D,EAC/D,eAAgE,EAChE,MAAW,GACZ,GAAE;IACD,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CACzB,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAY9B;AAED,wBAAgB,qCAAqC,CACnD,CAAC,EAAE,kBAAkB,EACrB,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAC/B,OAAO,CAAC,KAAK,CAAC,QAAQ,CAMxB"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.mockDerivedDescriptorWalletOutput = mockDerivedDescriptorWalletOutput;
37
+ exports.mockPsbt = mockPsbt;
38
+ exports.mockPsbtDefault = mockPsbtDefault;
39
+ exports.mockPsbtDefaultWithDescriptorTemplate = mockPsbtDefaultWithDescriptorTemplate;
40
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
41
+ const descriptor_1 = require("../../../../src/core/descriptor");
42
+ const descriptor_utils_1 = require("../descriptor.utils");
43
+ function mockOutputId(id) {
44
+ var _a, _b;
45
+ const hash = (_a = id === null || id === void 0 ? void 0 : id.hash) !== null && _a !== void 0 ? _a : Buffer.alloc(32, 1).toString('hex');
46
+ const vout = (_b = id === null || id === void 0 ? void 0 : id.vout) !== null && _b !== void 0 ? _b : 0;
47
+ return { hash, vout };
48
+ }
49
+ function mockDerivedDescriptorWalletOutput(descriptor, outputParams = {}) {
50
+ const { value = BigInt(1e6) } = outputParams;
51
+ const { hash, vout } = mockOutputId(outputParams.id);
52
+ return {
53
+ hash,
54
+ index: vout,
55
+ witnessUtxo: {
56
+ script: (0, descriptor_1.createScriptPubKeyFromDescriptor)(descriptor),
57
+ value,
58
+ },
59
+ descriptor,
60
+ };
61
+ }
62
+ function mockPsbt(inputs, outputs, params = {}) {
63
+ var _a;
64
+ return (0, descriptor_1.createPsbt)({ ...params, network: (_a = params.network) !== null && _a !== void 0 ? _a : utxolib.networks.bitcoin }, inputs.map((i) => mockDerivedDescriptorWalletOutput(i.descriptor.atDerivationIndex(i.index), i)), outputs.map((o) => {
65
+ const derivedDescriptor = o.descriptor.atDerivationIndex(o.index);
66
+ return {
67
+ script: (0, descriptor_1.createScriptPubKeyFromDescriptor)(derivedDescriptor),
68
+ value: o.value,
69
+ descriptor: o.external ? undefined : derivedDescriptor,
70
+ };
71
+ }));
72
+ }
73
+ function mockPsbtDefault({ descriptorSelf = (0, descriptor_utils_1.getDescriptor)('Wsh2Of3', (0, descriptor_utils_1.getDefaultXPubs)('a')), descriptorOther = (0, descriptor_utils_1.getDescriptor)('Wsh2Of3', (0, descriptor_utils_1.getDefaultXPubs)('b')), params = {}, } = {}) {
74
+ return mockPsbt([
75
+ { descriptor: descriptorSelf, index: 0 },
76
+ { descriptor: descriptorSelf, index: 1, id: { vout: 1 } },
77
+ ], [
78
+ { descriptor: descriptorOther, index: 0, value: BigInt(4e5), external: true },
79
+ { descriptor: descriptorSelf, index: 0, value: BigInt(4e5) },
80
+ ], params);
81
+ }
82
+ function mockPsbtDefaultWithDescriptorTemplate(t, params = {}) {
83
+ return mockPsbtDefault({
84
+ descriptorSelf: (0, descriptor_utils_1.getDescriptor)(t, (0, descriptor_utils_1.getDefaultXPubs)('a')),
85
+ descriptorOther: (0, descriptor_utils_1.getDescriptor)(t, (0, descriptor_utils_1.getDefaultXPubs)('b')),
86
+ params,
87
+ });
88
+ }
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvY29yZS9kZXNjcmlwdG9yL3BzYnQvbW9jay51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCQSw4RUFlQztBQWNELDRCQWlCQztBQUVELDBDQW9CQztBQUVELHNGQVNDO0FBdEdELDhEQUFnRDtBQUVoRCxnRUFBMkc7QUFFM0csMERBQXlGO0FBVXpGLFNBQVMsWUFBWSxDQUFDLEVBQXVCOztJQUkzQyxNQUFNLElBQUksR0FBRyxNQUFBLEVBQUUsYUFBRixFQUFFLHVCQUFGLEVBQUUsQ0FBRSxJQUFJLG1DQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RCxNQUFNLElBQUksR0FBRyxNQUFBLEVBQUUsYUFBRixFQUFFLHVCQUFGLEVBQUUsQ0FBRSxJQUFJLG1DQUFJLENBQUMsQ0FBQztJQUMzQixPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ3hCLENBQUM7QUFFRCxTQUFnQixpQ0FBaUMsQ0FDL0MsVUFBc0IsRUFDdEIsZUFBK0MsRUFBRTtJQUVqRCxNQUFNLEVBQUUsS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLFlBQVksQ0FBQztJQUM3QyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckQsT0FBTztRQUNMLElBQUk7UUFDSixLQUFLLEVBQUUsSUFBSTtRQUNYLFdBQVcsRUFBRTtZQUNYLE1BQU0sRUFBRSxJQUFBLDZDQUFnQyxFQUFDLFVBQVUsQ0FBQztZQUNwRCxLQUFLO1NBQ047UUFDRCxVQUFVO0tBQ1gsQ0FBQztBQUNKLENBQUM7QUFjRCxTQUFnQixRQUFRLENBQ3RCLE1BQW1CLEVBQ25CLE9BQXFCLEVBQ3JCLFNBQThCLEVBQUU7O0lBRWhDLE9BQU8sSUFBQSx1QkFBVSxFQUNmLEVBQUUsR0FBRyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQUEsTUFBTSxDQUFDLE9BQU8sbUNBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFDbEUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDaEcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ2hCLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEUsT0FBTztZQUNMLE1BQU0sRUFBRSxJQUFBLDZDQUFnQyxFQUFDLGlCQUFpQixDQUFDO1lBQzNELEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztZQUNkLFVBQVUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtTQUN2RCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixlQUFlLENBQUMsRUFDOUIsY0FBYyxHQUFHLElBQUEsZ0NBQWEsRUFBQyxTQUFTLEVBQUUsSUFBQSxrQ0FBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQy9ELGVBQWUsR0FBRyxJQUFBLGdDQUFhLEVBQUMsU0FBUyxFQUFFLElBQUEsa0NBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQyxFQUNoRSxNQUFNLEdBQUcsRUFBRSxNQUtULEVBQUU7SUFDSixPQUFPLFFBQVEsQ0FDYjtRQUNFLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3hDLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtLQUMxRCxFQUNEO1FBQ0UsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1FBQzdFLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7S0FDN0QsRUFDRCxNQUFNLENBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixxQ0FBcUMsQ0FDbkQsQ0FBcUIsRUFDckIsU0FBOEIsRUFBRTtJQUVoQyxPQUFPLGVBQWUsQ0FBQztRQUNyQixjQUFjLEVBQUUsSUFBQSxnQ0FBYSxFQUFDLENBQUMsRUFBRSxJQUFBLGtDQUFlLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsZUFBZSxFQUFFLElBQUEsZ0NBQWEsRUFBQyxDQUFDLEVBQUUsSUFBQSxrQ0FBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELE1BQU07S0FDUCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmltcG9ydCB7IGNyZWF0ZVNjcmlwdFB1YktleUZyb21EZXNjcmlwdG9yLCBjcmVhdGVQc2J0LCBQc2J0UGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL2NvcmUvZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBEZXJpdmVkRGVzY3JpcHRvcldhbGxldE91dHB1dCB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9jb3JlL2Rlc2NyaXB0b3IvT3V0cHV0JztcbmltcG9ydCB7IERlc2NyaXB0b3JUZW1wbGF0ZSwgZ2V0RGVmYXVsdFhQdWJzLCBnZXREZXNjcmlwdG9yIH0gZnJvbSAnLi4vZGVzY3JpcHRvci51dGlscyc7XG5cbnR5cGUgTW9ja091dHB1dElkUGFyYW1zID0geyBoYXNoPzogc3RyaW5nOyB2b3V0PzogbnVtYmVyIH07XG5cbnR5cGUgQmFzZU1vY2tEZXNjcmlwdG9yT3V0cHV0UGFyYW1zID0ge1xuICBpZD86IE1vY2tPdXRwdXRJZFBhcmFtcztcbiAgaW5kZXg/OiBudW1iZXI7XG4gIHZhbHVlPzogYmlnaW50O1xufTtcblxuZnVuY3Rpb24gbW9ja091dHB1dElkKGlkPzogTW9ja091dHB1dElkUGFyYW1zKToge1xuICBoYXNoOiBzdHJpbmc7XG4gIHZvdXQ6IG51bWJlcjtcbn0ge1xuICBjb25zdCBoYXNoID0gaWQ/Lmhhc2ggPz8gQnVmZmVyLmFsbG9jKDMyLCAxKS50b1N0cmluZygnaGV4Jyk7XG4gIGNvbnN0IHZvdXQgPSBpZD8udm91dCA/PyAwO1xuICByZXR1cm4geyBoYXNoLCB2b3V0IH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQoXG4gIGRlc2NyaXB0b3I6IERlc2NyaXB0b3IsXG4gIG91dHB1dFBhcmFtczogQmFzZU1vY2tEZXNjcmlwdG9yT3V0cHV0UGFyYW1zID0ge31cbik6IERlcml2ZWREZXNjcmlwdG9yV2FsbGV0T3V0cHV0IHtcbiAgY29uc3QgeyB2YWx1ZSA9IEJpZ0ludCgxZTYpIH0gPSBvdXRwdXRQYXJhbXM7XG4gIGNvbnN0IHsgaGFzaCwgdm91dCB9ID0gbW9ja091dHB1dElkKG91dHB1dFBhcmFtcy5pZCk7XG4gIHJldHVybiB7XG4gICAgaGFzaCxcbiAgICBpbmRleDogdm91dCxcbiAgICB3aXRuZXNzVXR4bzoge1xuICAgICAgc2NyaXB0OiBjcmVhdGVTY3JpcHRQdWJLZXlGcm9tRGVzY3JpcHRvcihkZXNjcmlwdG9yKSxcbiAgICAgIHZhbHVlLFxuICAgIH0sXG4gICAgZGVzY3JpcHRvcixcbiAgfTtcbn1cblxudHlwZSBNb2NrSW5wdXQgPSBCYXNlTW9ja0Rlc2NyaXB0b3JPdXRwdXRQYXJhbXMgJiB7XG4gIGluZGV4OiBudW1iZXI7XG4gIGRlc2NyaXB0b3I6IERlc2NyaXB0b3I7XG59O1xuXG50eXBlIE1vY2tPdXRwdXQgPSB7XG4gIGRlc2NyaXB0b3I6IERlc2NyaXB0b3I7XG4gIGluZGV4OiBudW1iZXI7XG4gIHZhbHVlOiBiaWdpbnQ7XG4gIGV4dGVybmFsPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrUHNidChcbiAgaW5wdXRzOiBNb2NrSW5wdXRbXSxcbiAgb3V0cHV0czogTW9ja091dHB1dFtdLFxuICBwYXJhbXM6IFBhcnRpYWw8UHNidFBhcmFtcz4gPSB7fVxuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIHJldHVybiBjcmVhdGVQc2J0KFxuICAgIHsgLi4ucGFyYW1zLCBuZXR3b3JrOiBwYXJhbXMubmV0d29yayA/PyB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4gfSxcbiAgICBpbnB1dHMubWFwKChpKSA9PiBtb2NrRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQoaS5kZXNjcmlwdG9yLmF0RGVyaXZhdGlvbkluZGV4KGkuaW5kZXgpLCBpKSksXG4gICAgb3V0cHV0cy5tYXAoKG8pID0+IHtcbiAgICAgIGNvbnN0IGRlcml2ZWREZXNjcmlwdG9yID0gby5kZXNjcmlwdG9yLmF0RGVyaXZhdGlvbkluZGV4KG8uaW5kZXgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2NyaXB0OiBjcmVhdGVTY3JpcHRQdWJLZXlGcm9tRGVzY3JpcHRvcihkZXJpdmVkRGVzY3JpcHRvciksXG4gICAgICAgIHZhbHVlOiBvLnZhbHVlLFxuICAgICAgICBkZXNjcmlwdG9yOiBvLmV4dGVybmFsID8gdW5kZWZpbmVkIDogZGVyaXZlZERlc2NyaXB0b3IsXG4gICAgICB9O1xuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrUHNidERlZmF1bHQoe1xuICBkZXNjcmlwdG9yU2VsZiA9IGdldERlc2NyaXB0b3IoJ1dzaDJPZjMnLCBnZXREZWZhdWx0WFB1YnMoJ2EnKSksXG4gIGRlc2NyaXB0b3JPdGhlciA9IGdldERlc2NyaXB0b3IoJ1dzaDJPZjMnLCBnZXREZWZhdWx0WFB1YnMoJ2InKSksXG4gIHBhcmFtcyA9IHt9LFxufToge1xuICBkZXNjcmlwdG9yU2VsZj86IERlc2NyaXB0b3I7XG4gIGRlc2NyaXB0b3JPdGhlcj86IERlc2NyaXB0b3I7XG4gIHBhcmFtcz86IFBhcnRpYWw8UHNidFBhcmFtcz47XG59ID0ge30pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgcmV0dXJuIG1vY2tQc2J0KFxuICAgIFtcbiAgICAgIHsgZGVzY3JpcHRvcjogZGVzY3JpcHRvclNlbGYsIGluZGV4OiAwIH0sXG4gICAgICB7IGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JTZWxmLCBpbmRleDogMSwgaWQ6IHsgdm91dDogMSB9IH0sXG4gICAgXSxcbiAgICBbXG4gICAgICB7IGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JPdGhlciwgaW5kZXg6IDAsIHZhbHVlOiBCaWdJbnQoNGU1KSwgZXh0ZXJuYWw6IHRydWUgfSxcbiAgICAgIHsgZGVzY3JpcHRvcjogZGVzY3JpcHRvclNlbGYsIGluZGV4OiAwLCB2YWx1ZTogQmlnSW50KDRlNSkgfSxcbiAgICBdLFxuICAgIHBhcmFtc1xuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1BzYnREZWZhdWx0V2l0aERlc2NyaXB0b3JUZW1wbGF0ZShcbiAgdDogRGVzY3JpcHRvclRlbXBsYXRlLFxuICBwYXJhbXM6IFBhcnRpYWw8UHNidFBhcmFtcz4gPSB7fVxuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIHJldHVybiBtb2NrUHNidERlZmF1bHQoe1xuICAgIGRlc2NyaXB0b3JTZWxmOiBnZXREZXNjcmlwdG9yKHQsIGdldERlZmF1bHRYUHVicygnYScpKSxcbiAgICBkZXNjcmlwdG9yT3RoZXI6IGdldERlc2NyaXB0b3IodCwgZ2V0RGVmYXVsdFhQdWJzKCdiJykpLFxuICAgIHBhcmFtcyxcbiAgfSk7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../../test/core/descriptor/psbt/parse.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ const descriptor_1 = require("../../../../src/core/descriptor");
8
+ const descriptor_utils_1 = require("../descriptor.utils");
9
+ const mock_utils_1 = require("./mock.utils");
10
+ const fixtures_utils_1 = require("../../fixtures.utils");
11
+ const toPlainObject_utils_1 = require("../../toPlainObject.utils");
12
+ const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
13
+ function normalize(parsed) {
14
+ return (0, toPlainObject_utils_1.toPlainObject)(parsed, {
15
+ apply(v, path) {
16
+ if (v instanceof wasm_miniscript_1.Descriptor) {
17
+ return v.toString();
18
+ }
19
+ },
20
+ }, []);
21
+ }
22
+ function describeWithTemplate(t) {
23
+ describe(`parse ${t}`, function () {
24
+ it('parses a PSBT with descriptors', async function () {
25
+ const psbt = (0, mock_utils_1.mockPsbtDefaultWithDescriptorTemplate)(t);
26
+ const parsed = normalize((0, descriptor_1.parse)(psbt, (0, descriptor_utils_1.getDescriptorMap)(t, (0, descriptor_utils_1.getDefaultXPubs)('a')), psbt.network));
27
+ assert_1.default.deepStrictEqual(parsed, await (0, fixtures_utils_1.getFixture)(__dirname + `/fixtures/${t}.parse.json`, parsed));
28
+ });
29
+ });
30
+ }
31
+ describeWithTemplate('Wsh2Of3');
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L2NvcmUvZGVzY3JpcHRvci9wc2J0L3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLGdFQUF3RDtBQUN4RCwwREFBNEY7QUFDNUYsNkNBQXFFO0FBQ3JFLHlEQUFrRDtBQUVsRCxtRUFBMEQ7QUFDMUQsNERBQW9EO0FBRXBELFNBQVMsU0FBUyxDQUFDLE1BQW1DO0lBQ3BELE9BQU8sSUFBQSxtQ0FBYSxFQUNsQixNQUFNLEVBQ047UUFDRSxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUk7WUFDWCxJQUFJLENBQUMsWUFBWSw0QkFBVSxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO0tBQ0YsRUFDRCxFQUFFLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLENBQXFCO0lBQ2pELFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFO1FBQ3JCLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxLQUFLO1lBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUEsa0RBQXFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEQsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUEsa0JBQUssRUFBQyxJQUFJLEVBQUUsSUFBQSxtQ0FBZ0IsRUFBQyxDQUFDLEVBQUUsSUFBQSxrQ0FBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDL0YsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sSUFBQSwyQkFBVSxFQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDcEcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IHBhcnNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL2NvcmUvZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBEZXNjcmlwdG9yVGVtcGxhdGUsIGdldERlZmF1bHRYUHVicywgZ2V0RGVzY3JpcHRvck1hcCB9IGZyb20gJy4uL2Rlc2NyaXB0b3IudXRpbHMnO1xuaW1wb3J0IHsgbW9ja1BzYnREZWZhdWx0V2l0aERlc2NyaXB0b3JUZW1wbGF0ZSB9IGZyb20gJy4vbW9jay51dGlscyc7XG5pbXBvcnQgeyBnZXRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vZml4dHVyZXMudXRpbHMnO1xuaW1wb3J0IHsgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL2NvcmUvZGVzY3JpcHRvci9wc2J0L3BhcnNlJztcbmltcG9ydCB7IHRvUGxhaW5PYmplY3QgfSBmcm9tICcuLi8uLi90b1BsYWluT2JqZWN0LnV0aWxzJztcbmltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcblxuZnVuY3Rpb24gbm9ybWFsaXplKHBhcnNlZDogUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uKSB7XG4gIHJldHVybiB0b1BsYWluT2JqZWN0KFxuICAgIHBhcnNlZCxcbiAgICB7XG4gICAgICBhcHBseSh2LCBwYXRoKSB7XG4gICAgICAgIGlmICh2IGluc3RhbmNlb2YgRGVzY3JpcHRvcikge1xuICAgICAgICAgIHJldHVybiB2LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICBbXVxuICApO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZVdpdGhUZW1wbGF0ZSh0OiBEZXNjcmlwdG9yVGVtcGxhdGUpIHtcbiAgZGVzY3JpYmUoYHBhcnNlICR7dH1gLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3BhcnNlcyBhIFBTQlQgd2l0aCBkZXNjcmlwdG9ycycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHBzYnQgPSBtb2NrUHNidERlZmF1bHRXaXRoRGVzY3JpcHRvclRlbXBsYXRlKHQpO1xuICAgICAgY29uc3QgcGFyc2VkID0gbm9ybWFsaXplKHBhcnNlKHBzYnQsIGdldERlc2NyaXB0b3JNYXAodCwgZ2V0RGVmYXVsdFhQdWJzKCdhJykpLCBwc2J0Lm5ldHdvcmspKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VkLCBhd2FpdCBnZXRGaXh0dXJlKF9fZGlybmFtZSArIGAvZml4dHVyZXMvJHt0fS5wYXJzZS5qc29uYCwgcGFyc2VkKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5kZXNjcmliZVdpdGhUZW1wbGF0ZSgnV3NoMk9mMycpO1xuIl19
@@ -0,0 +1,4 @@
1
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
+ export declare function toPlainObjectFromPsbt(v: utxolib.Psbt): unknown;
3
+ export declare function toPlainObjectFromTx(v: utxolib.Transaction): unknown;
4
+ //# sourceMappingURL=psbt.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"psbt.utils.d.ts","sourceRoot":"","sources":["../../../../../test/core/descriptor/psbt/psbt.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAIhD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAgB9D;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAEnE"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toPlainObjectFromPsbt = toPlainObjectFromPsbt;
4
+ exports.toPlainObjectFromTx = toPlainObjectFromTx;
5
+ const toPlainObject_utils_1 = require("../../toPlainObject.utils");
6
+ function toPlainObjectFromPsbt(v) {
7
+ return (0, toPlainObject_utils_1.toPlainObject)(v, {
8
+ propertyDescriptors: true,
9
+ ignorePaths(path) {
10
+ return ((0, toPlainObject_utils_1.matchPath)(path, ['__CACHE']) ||
11
+ (0, toPlainObject_utils_1.matchPath)(path, ['opts', 'network']) ||
12
+ (0, toPlainObject_utils_1.matchPath)(path, ['data', 'globalMap', 'unsignedTx', 'tx', 'network']) ||
13
+ (0, toPlainObject_utils_1.matchPath)(path, ['network']));
14
+ },
15
+ }, []);
16
+ }
17
+ function toPlainObjectFromTx(v) {
18
+ return (0, toPlainObject_utils_1.toPlainObject)(v, {}, []);
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvY29yZS9kZXNjcmlwdG9yL3BzYnQvcHNidC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHNEQWdCQztBQUVELGtEQUVDO0FBdEJELG1FQUFrRjtBQUVsRixTQUFnQixxQkFBcUIsQ0FBQyxDQUFlO0lBQ25ELE9BQU8sSUFBQSxtQ0FBYSxFQUNsQixDQUFDLEVBQ0Q7UUFDRSxtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLFdBQVcsQ0FBQyxJQUFtQjtZQUM3QixPQUFPLENBQ0wsSUFBQSwrQkFBUyxFQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM1QixJQUFBLCtCQUFTLEVBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNwQyxJQUFBLCtCQUFTLEVBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNyRSxJQUFBLCtCQUFTLEVBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDN0IsQ0FBQztRQUNKLENBQUM7S0FDRixFQUNELEVBQUUsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLENBQXNCO0lBQ3hELE9BQU8sSUFBQSxtQ0FBYSxFQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5pbXBvcnQgeyBtYXRjaFBhdGgsIFBhdGhFbGVtZW50LCB0b1BsYWluT2JqZWN0IH0gZnJvbSAnLi4vLi4vdG9QbGFpbk9iamVjdC51dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1BsYWluT2JqZWN0RnJvbVBzYnQodjogdXR4b2xpYi5Qc2J0KTogdW5rbm93biB7XG4gIHJldHVybiB0b1BsYWluT2JqZWN0KFxuICAgIHYsXG4gICAge1xuICAgICAgcHJvcGVydHlEZXNjcmlwdG9yczogdHJ1ZSxcbiAgICAgIGlnbm9yZVBhdGhzKHBhdGg6IFBhdGhFbGVtZW50W10pIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtYXRjaFBhdGgocGF0aCwgWydfX0NBQ0hFJ10pIHx8XG4gICAgICAgICAgbWF0Y2hQYXRoKHBhdGgsIFsnb3B0cycsICduZXR3b3JrJ10pIHx8XG4gICAgICAgICAgbWF0Y2hQYXRoKHBhdGgsIFsnZGF0YScsICdnbG9iYWxNYXAnLCAndW5zaWduZWRUeCcsICd0eCcsICduZXR3b3JrJ10pIHx8XG4gICAgICAgICAgbWF0Y2hQYXRoKHBhdGgsIFsnbmV0d29yayddKVxuICAgICAgICApO1xuICAgICAgfSxcbiAgICB9LFxuICAgIFtdXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1BsYWluT2JqZWN0RnJvbVR4KHY6IHV0eG9saWIuVHJhbnNhY3Rpb24pOiB1bmtub3duIHtcbiAgcmV0dXJuIHRvUGxhaW5PYmplY3Qodiwge30sIFtdKTtcbn1cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Contains helpers for working with test fixtures
3
+ */
4
+ /**
5
+ * Return fixture described in `path`.
6
+ *
7
+ * If file does not exist and `defaultValue` is provided, writes defaultValue to `path` and throws an error.
8
+ *
9
+ * @param path
10
+ * @param defaultValue
11
+ * @return T - fixture content
12
+ */
13
+ export declare function getFixture<T>(path: string, defaultValue?: T | (() => Promise<T>)): Promise<T>;
14
+ export declare function jsonNormalize<T>(v: T): T;
15
+ //# sourceMappingURL=fixtures.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.utils.d.ts","sourceRoot":"","sources":["../../../test/core/fixtures.utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsCH;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CA+BnG;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAExC"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ /**
3
+ * Contains helpers for working with test fixtures
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.getFixture = getFixture;
40
+ exports.jsonNormalize = jsonNormalize;
41
+ const fs = __importStar(require("fs"));
42
+ const mpath = __importStar(require("path"));
43
+ function fixtureEncoding(path) {
44
+ if (path.endsWith('.json')) {
45
+ return 'json';
46
+ }
47
+ if (path.endsWith('.hex')) {
48
+ return 'hex';
49
+ }
50
+ throw new Error(`unknown fixture encoding for ${path}`);
51
+ }
52
+ function decodeFixture(raw, encoding) {
53
+ switch (encoding) {
54
+ case 'json':
55
+ return JSON.parse(raw);
56
+ case 'hex':
57
+ return Buffer.from(raw, 'hex');
58
+ }
59
+ }
60
+ function encodeFixture(value, encoding) {
61
+ switch (encoding) {
62
+ case 'json':
63
+ return JSON.stringify(value, null, 2) + '\n';
64
+ case 'hex':
65
+ if (!Buffer.isBuffer(value)) {
66
+ throw new Error(`expected Buffer, got ${typeof value}`);
67
+ }
68
+ return value.toString('hex');
69
+ }
70
+ }
71
+ /**
72
+ * Return fixture described in `path`.
73
+ *
74
+ * If file does not exist and `defaultValue` is provided, writes defaultValue to `path` and throws an error.
75
+ *
76
+ * @param path
77
+ * @param defaultValue
78
+ * @return T - fixture content
79
+ */
80
+ async function getFixture(path, defaultValue) {
81
+ try {
82
+ await fs.promises.stat(mpath.dirname(path));
83
+ }
84
+ catch (e) {
85
+ if (e.code === 'ENOENT') {
86
+ throw new Error(`fixture directory ${mpath.dirname(path)} not found, please create it first`);
87
+ }
88
+ throw e;
89
+ }
90
+ const encoding = fixtureEncoding(path);
91
+ try {
92
+ return decodeFixture(await fs.promises.readFile(path, 'utf8'), encoding);
93
+ }
94
+ catch (e) {
95
+ if (e.code === 'ENOENT') {
96
+ if (process.env.WRITE_FIXTURES === '0') {
97
+ throw new Error(`fixture ${path} not found, WRITE_FIXTURES=0`);
98
+ }
99
+ if (defaultValue === undefined) {
100
+ throw new Error(`fixture ${path} not found and no default value given`);
101
+ }
102
+ if (typeof defaultValue === 'function') {
103
+ defaultValue = await defaultValue();
104
+ }
105
+ await fs.promises.writeFile(path, encodeFixture(defaultValue, encoding));
106
+ throw new Error(`wrote default value for ${path}, please inspect and restart test`);
107
+ }
108
+ throw e;
109
+ }
110
+ }
111
+ function jsonNormalize(v) {
112
+ return JSON.parse(JSON.stringify(v));
113
+ }
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L2NvcmUvZml4dHVyZXMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQStDSCxnQ0ErQkM7QUFFRCxzQ0FFQztBQWhGRCx1Q0FBeUI7QUFDekIsNENBQThCO0FBSTlCLFNBQVMsZUFBZSxDQUFDLElBQVk7SUFDbkMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDM0IsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLElBQUksRUFBRSxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLEdBQVcsRUFBRSxRQUF5QjtJQUMzRCxRQUFRLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLEtBQUssTUFBTTtZQUNULE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixLQUFLLEtBQUs7WUFDUixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsS0FBYyxFQUFFLFFBQXlCO0lBQzlELFFBQVEsUUFBUSxFQUFFLENBQUM7UUFDakIsS0FBSyxNQUFNO1lBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQy9DLEtBQUssS0FBSztZQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMxRCxDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSSxLQUFLLFVBQVUsVUFBVSxDQUFJLElBQVksRUFBRSxZQUFxQztJQUNyRixJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ2hHLENBQUM7UUFDRCxNQUFNLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdkMsSUFBSSxDQUFDO1FBQ0gsT0FBTyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsUUFBUSxDQUFNLENBQUM7SUFDaEYsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksOEJBQThCLENBQUMsQ0FBQztZQUNqRSxDQUFDO1lBQ0QsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLHVDQUF1QyxDQUFDLENBQUM7WUFDMUUsQ0FBQztZQUNELElBQUksT0FBTyxZQUFZLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3ZDLFlBQVksR0FBRyxNQUFPLFlBQWlDLEVBQUUsQ0FBQztZQUM1RCxDQUFDO1lBQ0QsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLElBQUksbUNBQW1DLENBQUMsQ0FBQztRQUN0RixDQUFDO1FBRUQsTUFBTSxDQUFDLENBQUM7SUFDVixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBSSxDQUFJO0lBQ25DLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFNLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udGFpbnMgaGVscGVycyBmb3Igd29ya2luZyB3aXRoIHRlc3QgZml4dHVyZXNcbiAqL1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBtcGF0aCBmcm9tICdwYXRoJztcblxudHlwZSBGaXh0dXJlRW5jb2RpbmcgPSAnanNvbicgfCAnaGV4JztcblxuZnVuY3Rpb24gZml4dHVyZUVuY29kaW5nKHBhdGg6IHN0cmluZyk6IEZpeHR1cmVFbmNvZGluZyB7XG4gIGlmIChwYXRoLmVuZHNXaXRoKCcuanNvbicpKSB7XG4gICAgcmV0dXJuICdqc29uJztcbiAgfVxuICBpZiAocGF0aC5lbmRzV2l0aCgnLmhleCcpKSB7XG4gICAgcmV0dXJuICdoZXgnO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBmaXh0dXJlIGVuY29kaW5nIGZvciAke3BhdGh9YCk7XG59XG5cbmZ1bmN0aW9uIGRlY29kZUZpeHR1cmUocmF3OiBzdHJpbmcsIGVuY29kaW5nOiBGaXh0dXJlRW5jb2RpbmcpOiB1bmtub3duIHtcbiAgc3dpdGNoIChlbmNvZGluZykge1xuICAgIGNhc2UgJ2pzb24nOlxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmF3KTtcbiAgICBjYXNlICdoZXgnOlxuICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHJhdywgJ2hleCcpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGVuY29kZUZpeHR1cmUodmFsdWU6IHVua25vd24sIGVuY29kaW5nOiBGaXh0dXJlRW5jb2RpbmcpOiBzdHJpbmcge1xuICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgY2FzZSAnanNvbic6XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUsIG51bGwsIDIpICsgJ1xcbic7XG4gICAgY2FzZSAnaGV4JzpcbiAgICAgIGlmICghQnVmZmVyLmlzQnVmZmVyKHZhbHVlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkIEJ1ZmZlciwgZ290ICR7dHlwZW9mIHZhbHVlfWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiBmaXh0dXJlIGRlc2NyaWJlZCBpbiBgcGF0aGAuXG4gKlxuICogSWYgZmlsZSBkb2VzIG5vdCBleGlzdCBhbmQgYGRlZmF1bHRWYWx1ZWAgaXMgcHJvdmlkZWQsIHdyaXRlcyBkZWZhdWx0VmFsdWUgdG8gYHBhdGhgIGFuZCB0aHJvd3MgYW4gZXJyb3IuXG4gKlxuICogQHBhcmFtIHBhdGhcbiAqIEBwYXJhbSBkZWZhdWx0VmFsdWVcbiAqIEByZXR1cm4gVCAtIGZpeHR1cmUgY29udGVudFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Rml4dHVyZTxUPihwYXRoOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IFQgfCAoKCkgPT4gUHJvbWlzZTxUPikpOiBQcm9taXNlPFQ+IHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy5wcm9taXNlcy5zdGF0KG1wYXRoLmRpcm5hbWUocGF0aCkpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGUuY29kZSA9PT0gJ0VOT0VOVCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZml4dHVyZSBkaXJlY3RvcnkgJHttcGF0aC5kaXJuYW1lKHBhdGgpfSBub3QgZm91bmQsIHBsZWFzZSBjcmVhdGUgaXQgZmlyc3RgKTtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxuXG4gIGNvbnN0IGVuY29kaW5nID0gZml4dHVyZUVuY29kaW5nKHBhdGgpO1xuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGRlY29kZUZpeHR1cmUoYXdhaXQgZnMucHJvbWlzZXMucmVhZEZpbGUocGF0aCwgJ3V0ZjgnKSwgZW5jb2RpbmcpIGFzIFQ7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgaWYgKHByb2Nlc3MuZW52LldSSVRFX0ZJWFRVUkVTID09PSAnMCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBmaXh0dXJlICR7cGF0aH0gbm90IGZvdW5kLCBXUklURV9GSVhUVVJFUz0wYCk7XG4gICAgICB9XG4gICAgICBpZiAoZGVmYXVsdFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBmaXh0dXJlICR7cGF0aH0gbm90IGZvdW5kIGFuZCBubyBkZWZhdWx0IHZhbHVlIGdpdmVuYCk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGRlZmF1bHRWYWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBhd2FpdCAoZGVmYXVsdFZhbHVlIGFzICgpID0+IFByb21pc2U8VD4pKCk7XG4gICAgICB9XG4gICAgICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUocGF0aCwgZW5jb2RlRml4dHVyZShkZWZhdWx0VmFsdWUsIGVuY29kaW5nKSk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHdyb3RlIGRlZmF1bHQgdmFsdWUgZm9yICR7cGF0aH0sIHBsZWFzZSBpbnNwZWN0IGFuZCByZXN0YXJ0IHRlc3RgKTtcbiAgICB9XG5cbiAgICB0aHJvdyBlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBqc29uTm9ybWFsaXplPFQ+KHY6IFQpOiBUIHtcbiAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodikpIGFzIFQ7XG59XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { Triple } from '@bitgo-beta/sdk-core';
2
+ import * as utxolib from '@bitgo-beta/utxo-lib';
3
+ import { BIP32Interface } from '@bitgo-beta/utxo-lib';
4
+ export type KeyTriple = Triple<BIP32Interface>;
5
+ /**
6
+ * Create new bip32 key. Uses random seed if none is passed.
7
+ * @param seed
8
+ */
9
+ export declare function getKey(seed?: string): BIP32Interface;
10
+ /**
11
+ * Return deterministic key triple of bip32 keys
12
+ * @param prefix
13
+ */
14
+ export declare function getKeyTriple(prefix?: string): KeyTriple;
15
+ export declare function getRootWalletKeys(prefix?: string, derivationPrefixes?: Triple<string>): utxolib.bitgo.RootWalletKeys;
16
+ //# sourceMappingURL=key.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key.utils.d.ts","sourceRoot":"","sources":["../../../test/core/key.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAGpD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,SAAK,GAAG,SAAS,CAEnD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,SAAK,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAEhH"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getKey = getKey;
37
+ exports.getKeyTriple = getKeyTriple;
38
+ exports.getRootWalletKeys = getRootWalletKeys;
39
+ const crypto = __importStar(require("crypto"));
40
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
41
+ /**
42
+ * Create new bip32 key. Uses random seed if none is passed.
43
+ * @param seed
44
+ */
45
+ function getKey(seed) {
46
+ const finalSeed = seed === undefined ? crypto.randomBytes(32) : crypto.createHash('sha256').update(seed).digest();
47
+ return utxolib.bip32.fromSeed(finalSeed);
48
+ }
49
+ /**
50
+ * Return deterministic key triple of bip32 keys
51
+ * @param prefix
52
+ */
53
+ function getKeyTriple(prefix = '') {
54
+ return Array.from({ length: 3 }).map((_, i) => getKey(`${prefix}${i}`));
55
+ }
56
+ function getRootWalletKeys(prefix = '', derivationPrefixes) {
57
+ return new utxolib.bitgo.RootWalletKeys(getKeyTriple(prefix), derivationPrefixes);
58
+ }
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9jb3JlL2tleS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVlBLHdCQUdDO0FBTUQsb0NBRUM7QUFFRCw4Q0FFQztBQTFCRCwrQ0FBaUM7QUFFakMsOERBQWdEO0FBS2hEOzs7R0FHRztBQUNILFNBQWdCLE1BQU0sQ0FBQyxJQUFhO0lBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xILE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFlBQVksQ0FBQyxNQUFNLEdBQUcsRUFBRTtJQUN0QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBYyxDQUFDO0FBQ3ZGLENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLGtCQUFtQztJQUNoRixPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGtCQUFrQixDQUFDLENBQUM7QUFDcEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyaXBsZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5leHBvcnQgdHlwZSBLZXlUcmlwbGUgPSBUcmlwbGU8QklQMzJJbnRlcmZhY2U+O1xuXG4vKipcbiAqIENyZWF0ZSBuZXcgYmlwMzIga2V5LiBVc2VzIHJhbmRvbSBzZWVkIGlmIG5vbmUgaXMgcGFzc2VkLlxuICogQHBhcmFtIHNlZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEtleShzZWVkPzogc3RyaW5nKTogQklQMzJJbnRlcmZhY2Uge1xuICBjb25zdCBmaW5hbFNlZWQgPSBzZWVkID09PSB1bmRlZmluZWQgPyBjcnlwdG8ucmFuZG9tQnl0ZXMoMzIpIDogY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShzZWVkKS5kaWdlc3QoKTtcbiAgcmV0dXJuIHV0eG9saWIuYmlwMzIuZnJvbVNlZWQoZmluYWxTZWVkKTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gZGV0ZXJtaW5pc3RpYyBrZXkgdHJpcGxlIG9mIGJpcDMyIGtleXNcbiAqIEBwYXJhbSBwcmVmaXhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEtleVRyaXBsZShwcmVmaXggPSAnJyk6IEtleVRyaXBsZSB7XG4gIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiAzIH0pLm1hcCgoXywgaSkgPT4gZ2V0S2V5KGAke3ByZWZpeH0ke2l9YCkpIGFzIEtleVRyaXBsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJvb3RXYWxsZXRLZXlzKHByZWZpeCA9ICcnLCBkZXJpdmF0aW9uUHJlZml4ZXM/OiBUcmlwbGU8c3RyaW5nPik6IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXMge1xuICByZXR1cm4gbmV3IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXMoZ2V0S2V5VHJpcGxlKHByZWZpeCksIGRlcml2YXRpb25QcmVmaXhlcyk7XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ type ToPlainObjectOpts = {
2
+ propertyDescriptors?: boolean;
3
+ skipUndefinedValues?: boolean;
4
+ ignorePaths?: string[] | ((path: PathElement[]) => boolean);
5
+ apply?: (v: unknown, path: PathElement[]) => unknown;
6
+ };
7
+ export type PathElement = string | number;
8
+ export declare function matchPath(a: PathElement[], b: PathElement[]): boolean;
9
+ export declare function toPlainObject(v: unknown, opts: ToPlainObjectOpts, path: PathElement[]): unknown;
10
+ export {};
11
+ //# sourceMappingURL=toPlainObject.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toPlainObject.utils.d.ts","sourceRoot":"","sources":["../../../test/core/toPlainObject.utils.ts"],"names":[],"mappings":"AAAA,KAAK,iBAAiB,GAAG;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC;IAC5D,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC;CACtD,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,wBAAgB,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,OAAO,CAErE;AA0CD,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,CAyC/F"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.matchPath = matchPath;
4
+ exports.toPlainObject = toPlainObject;
5
+ function matchPath(a, b) {
6
+ return a.length === b.length && a.every((e, i) => e === b[i]);
7
+ }
8
+ function includePath(opts, path) {
9
+ if (!opts.ignorePaths) {
10
+ return true;
11
+ }
12
+ if (typeof opts.ignorePaths === 'function') {
13
+ return !opts.ignorePaths(path);
14
+ }
15
+ return !opts.ignorePaths.some((ignorePath) => matchPath(path, ignorePath.split('.')));
16
+ }
17
+ function toPlainEntries(key, value, opts, path) {
18
+ var _a;
19
+ if (!includePath(opts, [...path, key])) {
20
+ return [];
21
+ }
22
+ if (value === undefined && ((_a = opts.skipUndefinedValues) !== null && _a !== void 0 ? _a : true)) {
23
+ return [];
24
+ }
25
+ return [[key, toPlainObject(value, opts, [...path, key])]];
26
+ }
27
+ function toPlainObjectFromPropertyDescriptors(v, opts, path) {
28
+ const descriptors = Object.getOwnPropertyDescriptors(v);
29
+ return Object.fromEntries(Object.entries(descriptors).flatMap(([key, descriptor]) => {
30
+ if (descriptor.value !== undefined) {
31
+ return toPlainEntries(key, descriptor.value, opts, path);
32
+ }
33
+ if (typeof descriptor.get === 'function') {
34
+ return toPlainEntries(key, descriptor.get.call(v), opts, path);
35
+ }
36
+ return [];
37
+ }));
38
+ }
39
+ function toPlainObject(v, opts, path) {
40
+ if (opts.apply) {
41
+ const result = opts.apply(v, path);
42
+ if (result !== undefined) {
43
+ return result;
44
+ }
45
+ }
46
+ switch (typeof v) {
47
+ case 'string':
48
+ case 'number':
49
+ case 'boolean':
50
+ case 'undefined':
51
+ return v;
52
+ case 'bigint':
53
+ return v.toString();
54
+ case 'function':
55
+ case 'symbol':
56
+ return undefined;
57
+ }
58
+ if (v === null) {
59
+ return v;
60
+ }
61
+ if (Buffer.isBuffer(v)) {
62
+ return v.toString('hex');
63
+ }
64
+ if (Array.isArray(v)) {
65
+ return v.map((e, i) => toPlainObject(e, opts, [...path, i]));
66
+ }
67
+ if (typeof v === 'object') {
68
+ const result = Object.fromEntries(Object.entries(v).flatMap(([key, value]) => toPlainEntries(key, value, opts, path)));
69
+ if (opts.propertyDescriptors) {
70
+ Object.assign(result, toPlainObjectFromPropertyDescriptors(v, opts, path));
71
+ }
72
+ return result;
73
+ }
74
+ throw new Error(`unknown v ${typeof v}`);
75
+ }
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9QbGFpbk9iamVjdC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvY29yZS90b1BsYWluT2JqZWN0LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsOEJBRUM7QUEwQ0Qsc0NBeUNDO0FBckZELFNBQWdCLFNBQVMsQ0FBQyxDQUFnQixFQUFFLENBQWdCO0lBQzFELE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLElBQXVCLEVBQUUsSUFBbUI7SUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hGLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FDckIsR0FBVyxFQUNYLEtBQWEsRUFDYixJQUF1QixFQUN2QixJQUFtQjs7SUFFbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdkMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsTUFBQSxJQUFJLENBQUMsbUJBQW1CLG1DQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDOUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVELFNBQVMsb0NBQW9DLENBQUMsQ0FBVSxFQUFFLElBQXVCLEVBQUUsSUFBbUI7SUFDcEcsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FDdkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFO1FBQ3hELElBQUksVUFBVSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxPQUFPLGNBQWMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUNELElBQUksT0FBTyxVQUFVLENBQUMsR0FBRyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sY0FBYyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsQ0FBVSxFQUFFLElBQXVCLEVBQUUsSUFBbUI7SUFDcEYsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN6QixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNqQixLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLFdBQVc7WUFDZCxPQUFPLENBQUMsQ0FBQztRQUNYLEtBQUssUUFBUTtZQUNYLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLEtBQUssVUFBVSxDQUFDO1FBQ2hCLEtBQUssUUFBUTtZQUNYLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckIsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDMUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FDL0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQ3BGLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLG9DQUFvQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgVG9QbGFpbk9iamVjdE9wdHMgPSB7XG4gIHByb3BlcnR5RGVzY3JpcHRvcnM/OiBib29sZWFuO1xuICBza2lwVW5kZWZpbmVkVmFsdWVzPzogYm9vbGVhbjtcbiAgaWdub3JlUGF0aHM/OiBzdHJpbmdbXSB8ICgocGF0aDogUGF0aEVsZW1lbnRbXSkgPT4gYm9vbGVhbik7XG4gIGFwcGx5PzogKHY6IHVua25vd24sIHBhdGg6IFBhdGhFbGVtZW50W10pID0+IHVua25vd247XG59O1xuZXhwb3J0IHR5cGUgUGF0aEVsZW1lbnQgPSBzdHJpbmcgfCBudW1iZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaFBhdGgoYTogUGF0aEVsZW1lbnRbXSwgYjogUGF0aEVsZW1lbnRbXSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYS5sZW5ndGggPT09IGIubGVuZ3RoICYmIGEuZXZlcnkoKGUsIGkpID0+IGUgPT09IGJbaV0pO1xufVxuXG5mdW5jdGlvbiBpbmNsdWRlUGF0aChvcHRzOiBUb1BsYWluT2JqZWN0T3B0cywgcGF0aDogUGF0aEVsZW1lbnRbXSk6IGJvb2xlYW4ge1xuICBpZiAoIW9wdHMuaWdub3JlUGF0aHMpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIG9wdHMuaWdub3JlUGF0aHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gIW9wdHMuaWdub3JlUGF0aHMocGF0aCk7XG4gIH1cbiAgcmV0dXJuICFvcHRzLmlnbm9yZVBhdGhzLnNvbWUoKGlnbm9yZVBhdGgpID0+IG1hdGNoUGF0aChwYXRoLCBpZ25vcmVQYXRoLnNwbGl0KCcuJykpKTtcbn1cblxuZnVuY3Rpb24gdG9QbGFpbkVudHJpZXMoXG4gIGtleTogc3RyaW5nLFxuICB2YWx1ZTogc3RyaW5nLFxuICBvcHRzOiBUb1BsYWluT2JqZWN0T3B0cyxcbiAgcGF0aDogUGF0aEVsZW1lbnRbXVxuKTogW10gfCBbW3N0cmluZywgdW5rbm93bl1dIHtcbiAgaWYgKCFpbmNsdWRlUGF0aChvcHRzLCBbLi4ucGF0aCwga2V5XSkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgKG9wdHMuc2tpcFVuZGVmaW5lZFZhbHVlcyA/PyB0cnVlKSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gW1trZXksIHRvUGxhaW5PYmplY3QodmFsdWUsIG9wdHMsIFsuLi5wYXRoLCBrZXldKV1dO1xufVxuXG5mdW5jdGlvbiB0b1BsYWluT2JqZWN0RnJvbVByb3BlcnR5RGVzY3JpcHRvcnModjogdW5rbm93biwgb3B0czogVG9QbGFpbk9iamVjdE9wdHMsIHBhdGg6IFBhdGhFbGVtZW50W10pIHtcbiAgY29uc3QgZGVzY3JpcHRvcnMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh2KTtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhkZXNjcmlwdG9ycykuZmxhdE1hcCgoW2tleSwgZGVzY3JpcHRvcl0pID0+IHtcbiAgICAgIGlmIChkZXNjcmlwdG9yLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRvUGxhaW5FbnRyaWVzKGtleSwgZGVzY3JpcHRvci52YWx1ZSwgb3B0cywgcGF0aCk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGRlc2NyaXB0b3IuZ2V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB0b1BsYWluRW50cmllcyhrZXksIGRlc2NyaXB0b3IuZ2V0LmNhbGwodiksIG9wdHMsIHBhdGgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtdO1xuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1BsYWluT2JqZWN0KHY6IHVua25vd24sIG9wdHM6IFRvUGxhaW5PYmplY3RPcHRzLCBwYXRoOiBQYXRoRWxlbWVudFtdKTogdW5rbm93biB7XG4gIGlmIChvcHRzLmFwcGx5KSB7XG4gICAgY29uc3QgcmVzdWx0ID0gb3B0cy5hcHBseSh2LCBwYXRoKTtcbiAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG5cbiAgc3dpdGNoICh0eXBlb2Ygdikge1xuICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICBjYXNlICdib29sZWFuJzpcbiAgICBjYXNlICd1bmRlZmluZWQnOlxuICAgICAgcmV0dXJuIHY7XG4gICAgY2FzZSAnYmlnaW50JzpcbiAgICAgIHJldHVybiB2LnRvU3RyaW5nKCk7XG4gICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgIGNhc2UgJ3N5bWJvbCc6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKHYgPT09IG51bGwpIHtcbiAgICByZXR1cm4gdjtcbiAgfVxuXG4gIGlmIChCdWZmZXIuaXNCdWZmZXIodikpIHtcbiAgICByZXR1cm4gdi50b1N0cmluZygnaGV4Jyk7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICByZXR1cm4gdi5tYXAoKGUsIGkpID0+IHRvUGxhaW5PYmplY3QoZSwgb3B0cywgWy4uLnBhdGgsIGldKSk7XG4gIH1cbiAgaWYgKHR5cGVvZiB2ID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKHYpLmZsYXRNYXAoKFtrZXksIHZhbHVlXSkgPT4gdG9QbGFpbkVudHJpZXMoa2V5LCB2YWx1ZSwgb3B0cywgcGF0aCkpXG4gICAgKTtcbiAgICBpZiAob3B0cy5wcm9wZXJ0eURlc2NyaXB0b3JzKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHJlc3VsdCwgdG9QbGFpbk9iamVjdEZyb21Qcm9wZXJ0eURlc2NyaXB0b3JzKHYsIG9wdHMsIHBhdGgpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYHVua25vd24gdiAke3R5cGVvZiB2fWApO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../test/descriptor/builder.ts"],"names":[],"mappings":""}