@bitgo-beta/utxo-core 1.0.0-beta.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 (63) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +6 -0
  3. package/dist/src/descriptor/DescriptorMap.d.ts +9 -0
  4. package/dist/src/descriptor/DescriptorMap.d.ts.map +1 -0
  5. package/dist/src/descriptor/DescriptorMap.js +12 -0
  6. package/dist/src/descriptor/Output.d.ts +24 -0
  7. package/dist/src/descriptor/Output.d.ts.map +1 -0
  8. package/dist/src/descriptor/Output.js +22 -0
  9. package/dist/src/descriptor/VirtualSize.d.ts +21 -0
  10. package/dist/src/descriptor/VirtualSize.d.ts.map +1 -0
  11. package/dist/src/descriptor/VirtualSize.js +87 -0
  12. package/dist/src/descriptor/address.d.ts +5 -0
  13. package/dist/src/descriptor/address.d.ts.map +1 -0
  14. package/dist/src/descriptor/address.js +48 -0
  15. package/dist/src/descriptor/index.d.ts +9 -0
  16. package/dist/src/descriptor/index.d.ts.map +1 -0
  17. package/dist/src/descriptor/index.js +49 -0
  18. package/dist/src/descriptor/psbt/assertSatisfiable.d.ts +20 -0
  19. package/dist/src/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
  20. package/dist/src/descriptor/psbt/assertSatisfiable.js +74 -0
  21. package/dist/src/descriptor/psbt/createPsbt.d.ts +15 -0
  22. package/dist/src/descriptor/psbt/createPsbt.d.ts.map +1 -0
  23. package/dist/src/descriptor/psbt/createPsbt.js +82 -0
  24. package/dist/src/descriptor/psbt/findDescriptors.d.ts +22 -0
  25. package/dist/src/descriptor/psbt/findDescriptors.d.ts.map +1 -0
  26. package/dist/src/descriptor/psbt/findDescriptors.js +85 -0
  27. package/dist/src/descriptor/psbt/index.d.ts +6 -0
  28. package/dist/src/descriptor/psbt/index.d.ts.map +1 -0
  29. package/dist/src/descriptor/psbt/index.js +22 -0
  30. package/dist/src/descriptor/psbt/parse.d.ts +27 -0
  31. package/dist/src/descriptor/psbt/parse.d.ts.map +1 -0
  32. package/dist/src/descriptor/psbt/parse.js +87 -0
  33. package/dist/src/descriptor/psbt/wrap.d.ts +12 -0
  34. package/dist/src/descriptor/psbt/wrap.d.ts.map +1 -0
  35. package/dist/src/descriptor/psbt/wrap.js +76 -0
  36. package/dist/src/index.d.ts +3 -0
  37. package/dist/src/index.d.ts.map +1 -0
  38. package/dist/src/index.js +39 -0
  39. package/dist/src/testutil/descriptor/descriptors.d.ts +11 -0
  40. package/dist/src/testutil/descriptor/descriptors.d.ts.map +1 -0
  41. package/dist/src/testutil/descriptor/descriptors.js +95 -0
  42. package/dist/src/testutil/descriptor/index.d.ts +4 -0
  43. package/dist/src/testutil/descriptor/index.d.ts.map +1 -0
  44. package/dist/src/testutil/descriptor/index.js +20 -0
  45. package/dist/src/testutil/descriptor/mock.utils.d.ts +34 -0
  46. package/dist/src/testutil/descriptor/mock.utils.d.ts.map +1 -0
  47. package/dist/src/testutil/descriptor/mock.utils.js +87 -0
  48. package/dist/src/testutil/descriptor/psbt.utils.d.ts +4 -0
  49. package/dist/src/testutil/descriptor/psbt.utils.d.ts.map +1 -0
  50. package/dist/src/testutil/descriptor/psbt.utils.js +20 -0
  51. package/dist/src/testutil/fixtures.utils.d.ts +15 -0
  52. package/dist/src/testutil/fixtures.utils.d.ts.map +1 -0
  53. package/dist/src/testutil/fixtures.utils.js +117 -0
  54. package/dist/src/testutil/index.d.ts +4 -0
  55. package/dist/src/testutil/index.d.ts.map +1 -0
  56. package/dist/src/testutil/index.js +20 -0
  57. package/dist/src/testutil/key.utils.d.ts +16 -0
  58. package/dist/src/testutil/key.utils.d.ts.map +1 -0
  59. package/dist/src/testutil/key.utils.js +59 -0
  60. package/dist/src/testutil/toPlainObject.utils.d.ts +11 -0
  61. package/dist/src/testutil/toPlainObject.utils.d.ts.map +1 -0
  62. package/dist/src/testutil/toPlainObject.utils.js +75 -0
  63. package/package.json +60 -0
@@ -0,0 +1,39 @@
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.testutil = exports.descriptor = void 0;
37
+ exports.descriptor = __importStar(require("./descriptor"));
38
+ exports.testutil = __importStar(require("./testutil"));
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkRBQTJDO0FBQzNDLHVEQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGFzIGRlc2NyaXB0b3IgZnJvbSAnLi9kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGFzIHRlc3R1dGlsIGZyb20gJy4vdGVzdHV0aWwnO1xuIl19
@@ -0,0 +1,11 @@
1
+ import { Descriptor } from '@bitgo/wasm-miniscript';
2
+ import { DescriptorMap, PsbtParams } from '../../descriptor';
3
+ import { Triple, KeyTriple } from '../key.utils';
4
+ export declare function getDefaultXPubs(seed?: string): Triple<string>;
5
+ export declare function getUnspendableKey(): string;
6
+ export type DescriptorTemplate = 'Wsh2Of3' | 'Tr2Of3-NoKeyPath' | 'Wsh2Of2' | 'ShWsh2Of3CltvDrop';
7
+ export declare function getPsbtParams(t: DescriptorTemplate): Partial<PsbtParams>;
8
+ export declare function getDescriptorString(template: DescriptorTemplate, keys?: KeyTriple | string[], path?: string): string;
9
+ export declare function getDescriptor(template: DescriptorTemplate, keys?: KeyTriple | string[], path?: string): Descriptor;
10
+ export declare function getDescriptorMap(template: DescriptorTemplate, keys?: KeyTriple | string[]): DescriptorMap;
11
+ //# sourceMappingURL=descriptors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptors.d.ts","sourceRoot":"","sources":["../../../../src/testutil/descriptor/descriptors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAgB,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE/D,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAE7D;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAsB1C;AAMD,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,kBAAkB,GAClB,SAAS,GAMT,mBAAmB,CAAC;AAkCxB,wBAAgB,aAAa,CAAC,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CASxE;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,GAAE,SAAS,GAAG,MAAM,EAAsB,EAC9C,IAAI,SAAQ,GACX,MAAM,CAaR;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,GAAE,SAAS,GAAG,MAAM,EAAsB,EAC9C,IAAI,SAAQ,GACX,UAAU,CAEZ;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,GAAE,SAAS,GAAG,MAAM,EAAsB,GAC7C,aAAa,CAKf"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDefaultXPubs = getDefaultXPubs;
4
+ exports.getUnspendableKey = getUnspendableKey;
5
+ exports.getPsbtParams = getPsbtParams;
6
+ exports.getDescriptorString = getDescriptorString;
7
+ exports.getDescriptor = getDescriptor;
8
+ exports.getDescriptorMap = getDescriptorMap;
9
+ const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
10
+ const key_utils_1 = require("../key.utils");
11
+ function getDefaultXPubs(seed) {
12
+ return (0, key_utils_1.getKeyTriple)(seed).map((k) => k.neutered().toBase58());
13
+ }
14
+ function getUnspendableKey() {
15
+ /*
16
+ https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#constructing-and-spending-taproot-outputs
17
+
18
+ ```
19
+ If one or more of the spending conditions consist of just a single key (after aggregation), the most likely one should
20
+ be made the internal key. If no such condition exists, it may be worthwhile adding one that consists of an aggregation
21
+ of all keys participating in all scripts combined; effectively adding an "everyone agrees" branch. If that is
22
+ inacceptable, pick as internal key a "Nothing Up My Sleeve" (NUMS) point, i.e., a point with unknown discrete
23
+ logarithm.
24
+
25
+ One example of such a point is H = lift_x(0x50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0) which is
26
+ constructed by taking the hash of the standard uncompressed encoding of the secp256k1 base point G as X coordinate.
27
+ In order to avoid leaking the information that key path spending is not possible it is recommended to pick a fresh
28
+ integer r in the range 0...n-1 uniformly at random and use H + rG as internal key. It is possible to prove that this
29
+ internal key does not have a known discrete logarithm with respect to G by revealing r to a verifier who can then
30
+ reconstruct how the internal key was created.
31
+ ```
32
+
33
+ We could do the random integer trick here, but for internal testing it is sufficient to use the fixed point.
34
+ */
35
+ return '50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0';
36
+ }
37
+ function toDescriptorMap(v) {
38
+ return new Map(Object.entries(v).map(([k, v]) => [k, wasm_miniscript_1.Descriptor.fromString(v, 'derivable')]));
39
+ }
40
+ function toXPub(k) {
41
+ if (typeof k === 'string') {
42
+ return k;
43
+ }
44
+ return k.neutered().toBase58();
45
+ }
46
+ function multi(prefix, m, n, keys, path) {
47
+ if (n < m) {
48
+ throw new Error(`Cannot create ${m} of ${n} multisig`);
49
+ }
50
+ if (keys.length < n) {
51
+ throw new Error(`Not enough keys for ${m} of ${n} multisig: keys.length=${keys.length}`);
52
+ }
53
+ keys = keys.slice(0, n);
54
+ return prefix + `(${m},${keys.map((k) => `${toXPub(k)}/${path}`).join(',')})`;
55
+ }
56
+ function multiWsh(m, n, keys, path) {
57
+ return multi('multi', m, n, keys, path);
58
+ }
59
+ function multiTap(m, n, keys, path) {
60
+ return multi('multi_a', m, n, keys, path);
61
+ }
62
+ function getPsbtParams(t) {
63
+ switch (t) {
64
+ case 'Wsh2Of3':
65
+ case 'Wsh2Of2':
66
+ case 'Tr2Of3-NoKeyPath':
67
+ return {};
68
+ case 'ShWsh2Of3CltvDrop':
69
+ return { locktime: 1 };
70
+ }
71
+ }
72
+ function getDescriptorString(template, keys = getDefaultXPubs(), path = '0/*') {
73
+ switch (template) {
74
+ case 'Wsh2Of3':
75
+ return `wsh(${multiWsh(2, 3, keys, path)})`;
76
+ case 'ShWsh2Of3CltvDrop':
77
+ const { locktime } = getPsbtParams(template);
78
+ return `sh(wsh(and_v(r:after(${locktime}),${multiWsh(2, 3, keys, path)})))`;
79
+ case 'Wsh2Of2':
80
+ return `wsh(${multiWsh(2, 2, keys, path)})`;
81
+ case 'Tr2Of3-NoKeyPath':
82
+ return `tr(${getUnspendableKey()},${multiTap(2, 3, keys, path)})`;
83
+ }
84
+ throw new Error(`Unknown descriptor template: ${template}`);
85
+ }
86
+ function getDescriptor(template, keys = getDefaultXPubs(), path = '0/*') {
87
+ return wasm_miniscript_1.Descriptor.fromString(getDescriptorString(template, keys, path), 'derivable');
88
+ }
89
+ function getDescriptorMap(template, keys = getDefaultXPubs()) {
90
+ return toDescriptorMap({
91
+ external: getDescriptor(template, keys, '0/*').toString(),
92
+ internal: getDescriptor(template, keys, '1/*').toString(),
93
+ });
94
+ }
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVzdHV0aWwvZGVzY3JpcHRvci9kZXNjcmlwdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU1BLDBDQUVDO0FBRUQsOENBc0JDO0FBaURELHNDQVNDO0FBRUQsa0RBaUJDO0FBRUQsc0NBTUM7QUFFRCw0Q0FRQztBQS9IRCw0REFBb0Q7QUFJcEQsNENBQStEO0FBRS9ELFNBQWdCLGVBQWUsQ0FBQyxJQUFhO0lBQzNDLE9BQU8sSUFBQSx3QkFBWSxFQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFtQixDQUFDO0FBQ2xGLENBQUM7QUFFRCxTQUFnQixpQkFBaUI7SUFDL0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFtQkU7SUFDRixPQUFPLGtFQUFrRSxDQUFDO0FBQzVFLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxDQUF5QjtJQUNoRCxPQUFPLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLDRCQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRyxDQUFDO0FBYUQsU0FBUyxNQUFNLENBQUMsQ0FBMEI7SUFDeEMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMxQixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUNqQyxDQUFDO0FBRUQsU0FBUyxLQUFLLENBQ1osTUFBMkIsRUFDM0Is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Q0FBQztBQUN2RixDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQzlCLFFBQTRCLEVBQzVCLE9BQTZCLGVBQWUsRUFBRTtJQUU5QyxPQUFPLGVBQWUsQ0FBQztRQUNyQixRQUFRLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFO1FBQ3pELFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUU7S0FDMUQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yTWFwLCBQc2J0UGFyYW1zIH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBnZXRLZXlUcmlwbGUsIFRyaXBsZSwgS2V5VHJpcGxlIH0gZnJvbSAnLi4va2V5LnV0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRYUHVicyhzZWVkPzogc3RyaW5nKTogVHJpcGxlPHN0cmluZz4ge1xuICByZXR1cm4gZ2V0S2V5VHJpcGxlKHNlZWQpLm1hcCgoaykgPT4gay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpIGFzIFRyaXBsZTxzdHJpbmc+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VW5zcGVuZGFibGVLZXkoKTogc3RyaW5nIHtcbiAgLypcbiAgaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYmlwcy9ibG9iL21hc3Rlci9iaXAtMDM0MS5tZWRpYXdpa2kjY29uc3RydWN0aW5nLWFuZC1zcGVuZGluZy10YXByb290LW91dHB1dHNcblxuICBgYGBcbiAgSWYgb25lIG9yIG1vcmUgb2YgdGhlIHNwZW5kaW5nIGNvbmRpdGlvbnMgY29uc2lzdCBvZiBqdXN0IGEgc2luZ2xlIGtleSAoYWZ0ZXIgYWdncmVnYXRpb24pLCB0aGUgbW9zdCBsaWtlbHkgb25lIHNob3VsZFxuICBiZSBtYWRlIHRoZSBpbnRlcm5hbCBrZXkuIElmIG5vIHN1Y2ggY29uZGl0aW9uIGV4aXN0cywgaXQgbWF5IGJlIHdvcnRod2hpbGUgYWRkaW5nIG9uZSB0aGF0IGNvbnNpc3RzIG9mIGFuIGFnZ3JlZ2F0aW9uXG4gIG9mIGFsbCBrZXlzIHBhcnRpY2lwYXRpbmcgaW4gYWxsIHNjcmlwdHMgY29tYmluZWQ7IGVmZmVjdGl2ZWx5IGFkZGluZyBhbiBcImV2ZXJ5b25lIGFncmVlc1wiIGJyYW5jaC4gSWYgdGhhdCBpc1xuICBpbmFjY2VwdGFibGUsIHBpY2sgYXMgaW50ZXJuYWwga2V5IGEgXCJOb3RoaW5nIFVwIE15IFNsZWV2ZVwiIChOVU1TKSBwb2ludCwgaS5lLiwgYSBwb2ludCB3aXRoIHVua25vd24gZGlzY3JldGVcbiAgbG9nYXJpdGhtLlxuXG4gIE9uZSBleGFtcGxlIG9mIHN1Y2ggYSBwb2ludCBpcyBIID0gbGlmdF94KDB4NTA5MjliNzRjMWEwNDk1NGI3OGI0YjYwMzVlOTdhNWUwNzhhNWEwZjI4ZWM5NmQ1NDdiZmVlOWFjZTgwM2FjMCkgd2hpY2ggaXNcbiAgY29uc3RydWN0ZWQgYnkgdGFraW5nIHRoZSBoYXNoIG9mIHRoZSBzdGFuZGFyZCB1bmNvbXByZXNzZWQgZW5jb2Rpbmcgb2YgdGhlIHNlY3AyNTZrMSBiYXNlIHBvaW50IEcgYXMgWCBjb29yZGluYXRlLlxuICBJbiBvcmRlciB0byBhdm9pZCBsZWFraW5nIHRoZSBpbmZvcm1hdGlvbiB0aGF0IGtleSBwYXRoIHNwZW5kaW5nIGlzIG5vdCBwb3NzaWJsZSBpdCBpcyByZWNvbW1lbmRlZCB0byBwaWNrIGEgZnJlc2hcbiAgaW50ZWdlciByIGluIHRoZSByYW5nZSAwLi4ubi0xIHVuaWZvcm1seSBhdCByYW5kb20gYW5kIHVzZSBIICsgckcgYXMgaW50ZXJuYWwga2V5LiBJdCBpcyBwb3NzaWJsZSB0byBwcm92ZSB0aGF0IHRoaXNcbiAgaW50ZXJuYWwga2V5IGRvZXMgbm90IGhhdmUgYSBrbm93biBkaXNjcmV0ZSBsb2dhcml0aG0gd2l0aCByZXNwZWN0IHRvIEcgYnkgcmV2ZWFsaW5nIHIgdG8gYSB2ZXJpZmllciB3aG8gY2FuIHRoZW5cbiAgcmVjb25zdHJ1Y3QgaG93IHRoZSBpbnRlcm5hbCBrZXkgd2FzIGNyZWF0ZWQuXG4gIGBgYFxuXG4gIFdlIGNvdWxkIGRvIHRoZSByYW5kb20gaW50ZWdlciB0cmljayBoZXJlLCBidXQgZm9yIGludGVybmFsIHRlc3RpbmcgaXQgaXMgc3VmZmljaWVudCB0byB1c2UgdGhlIGZpeGVkIHBvaW50LlxuICAqL1xuICByZXR1cm4gJzUwOTI5Yjc0YzFhMDQ5NTRiNzhiNGI2MDM1ZTk3YTVlMDc4YTVhMGYyOGVjOTZkNTQ3YmZlZTlhY2U4MDNhYzAnO1xufVxuXG5mdW5jdGlvbiB0b0Rlc2NyaXB0b3JNYXAodjogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IERlc2NyaXB0b3JNYXAge1xuICByZXR1cm4gbmV3IE1hcChPYmplY3QuZW50cmllcyh2KS5tYXAoKFtrLCB2XSkgPT4gW2ssIERlc2NyaXB0b3IuZnJvbVN0cmluZyh2LCAnZGVyaXZhYmxlJyldKSk7XG59XG5cbmV4cG9ydCB0eXBlIERlc2NyaXB0b3JUZW1wbGF0ZSA9XG4gIHwgJ1dzaDJPZjMnXG4gIHwgJ1RyMk9mMy1Ob0tleVBhdGgnXG4gIHwgJ1dzaDJPZjInXG4gIC8qXG4gICAqIFRoaXMgaXMgYSB3cmFwcGVkIHNlZ3dpdCAyb2YzIG11bHRpc2lnIHRoYXQgYWxzbyB1c2VzIGEgcmVsYXRpdmUgbG9ja3RpbWUgd2l0aFxuICAgKiBhbiBPUF9EUk9QIChyZXF1aXJpbmcgYSBtaW5pc2NyaXB0IGV4dGVuc2lvbikuXG4gICAqIEl0IGlzIGJhc2ljYWxseSB3aGF0IGlzIHVzZWQgaW4gQ29yZURhbyBzdGFraW5nIHRyYW5zYWN0aW9ucy5cbiAgICovXG4gIHwgJ1NoV3NoMk9mM0NsdHZEcm9wJztcblxuZnVuY3Rpb24gdG9YUHViKGs6IEJJUDMySW50ZXJmYWNlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBrID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBrO1xuICB9XG4gIHJldHVybiBrLm5ldXRlcmVkKCkudG9CYXNlNTgoKTtcbn1cblxuZnVuY3Rpb24gbXVsdGkoXG4gIHByZWZpeDogJ211bHRpJyB8ICdtdWx0aV9hJyxcbiAgbTogbnVtYmVyLFxuICBuOiBudW1iZXIsXG4gIGtleXM6IEJJUDMySW50ZXJmYWNlW10gfCBzdHJpbmdbXSxcbiAgcGF0aDogc3RyaW5nXG4pOiBzdHJpbmcge1xuICBpZiAobiA8IG0pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjcmVhdGUgJHttfSBvZiAke259IG11bHRpc2lnYCk7XG4gIH1cbiAgaWYgKGtleXMubGVuZ3RoIDwgbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm90IGVub3VnaCBrZXlzIGZvciAke219IG9mICR7bn0gbXVsdGlzaWc6IGtleXMubGVuZ3RoPSR7a2V5cy5sZW5ndGh9YCk7XG4gIH1cbiAga2V5cyA9IGtleXMuc2xpY2UoMCwgbik7XG4gIHJldHVybiBwcmVmaXggKyBgKCR7bX0sJHtrZXlzLm1hcCgoaykgPT4gYCR7dG9YUHViKGspfS8ke3BhdGh9YCkuam9pbignLCcpfSlgO1xufVxuXG5mdW5jdGlvbiBtdWx0aVdzaChtOiBudW1iZXIsIG46IG51bWJlciwga2V5czogQklQMzJJbnRlcmZhY2VbXSB8IHN0cmluZ1tdLCBwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbXVsdGkoJ211bHRpJywgbSwgbiwga2V5cywgcGF0aCk7XG59XG5cbmZ1bmN0aW9uIG11bHRpVGFwKG06IG51bWJlciwgbjogbnVtYmVyLCBrZXlzOiBCSVAzMkludGVyZmFjZVtdIHwgc3RyaW5nW10sIHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBtdWx0aSgnbXVsdGlfYScsIG0sIG4sIGtleXMsIHBhdGgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHNidFBhcmFtcyh0OiBEZXNjcmlwdG9yVGVtcGxhdGUpOiBQYXJ0aWFsPFBzYnRQYXJhbXM+IHtcbiAgc3dpdGNoICh0KSB7XG4gICAgY2FzZSAnV3NoMk9mMyc6XG4gICAgY2FzZSAnV3NoMk9mMic6XG4gICAgY2FzZSAnVHIyT2YzLU5vS2V5UGF0aCc6XG4gICAgICByZXR1cm4ge307XG4gICAgY2FzZSAnU2hXc2gyT2YzQ2x0dkRyb3AnOlxuICAgICAgcmV0dXJuIHsgbG9ja3RpbWU6IDEgfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvclN0cmluZyhcbiAgdGVtcGxhdGU6IERlc2NyaXB0b3JUZW1wbGF0ZSxcbiAga2V5czogS2V5VHJpcGxlIHwgc3RyaW5nW10gPSBnZXREZWZhdWx0WFB1YnMoKSxcbiAgcGF0aCA9ICcwLyonXG4pOiBzdHJpbmcge1xuICBzd2l0Y2ggKHRlbXBsYXRlKSB7XG4gICAgY2FzZSAnV3NoMk9mMyc6XG4gICAgICByZXR1cm4gYHdzaCgke211bHRpV3NoKDIsIDMsIGtleXMsIHBhdGgpfSlgO1xuICAgIGNhc2UgJ1NoV3NoMk9mM0NsdHZEcm9wJzpcbiAgICAgIGNvbnN0IHsgbG9ja3RpbWUgfSA9IGdldFBzYnRQYXJhbXModGVtcGxhdGUpO1xuICAgICAgcmV0dXJuIGBzaCh3c2goYW5kX3YocjphZnRlcigke2xvY2t0aW1lfSksJHttdWx0aVdzaCgyLCAzLCBrZXlzLCBwYXRoKX0pKSlgO1xuICAgIGNhc2UgJ1dzaDJPZjInOlxuICAgICAgcmV0dXJuIGB3c2goJHttdWx0aVdzaCgyLCAyLCBrZXlzLCBwYXRoKX0pYDtcbiAgICBjYXNlICdUcjJPZjMtTm9LZXlQYXRoJzpcbiAgICAgIHJldHVybiBgdHIoJHtnZXRVbnNwZW5kYWJsZUtleSgpfSwke211bHRpVGFwKDIsIDMsIGtleXMsIHBhdGgpfSlgO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBkZXNjcmlwdG9yIHRlbXBsYXRlOiAke3RlbXBsYXRlfWApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvcihcbiAgdGVtcGxhdGU6IERlc2NyaXB0b3JUZW1wbGF0ZSxcbiAga2V5czogS2V5VHJpcGxlIHwgc3RyaW5nW10gPSBnZXREZWZhdWx0WFB1YnMoKSxcbiAgcGF0aCA9ICcwLyonXG4pOiBEZXNjcmlwdG9yIHtcbiAgcmV0dXJuIERlc2NyaXB0b3IuZnJvbVN0cmluZyhnZXREZXNjcmlwdG9yU3RyaW5nKHRlbXBsYXRlLCBrZXlzLCBwYXRoKSwgJ2Rlcml2YWJsZScpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvck1hcChcbiAgdGVtcGxhdGU6IERlc2NyaXB0b3JUZW1wbGF0ZSxcbiAga2V5czogS2V5VHJpcGxlIHwgc3RyaW5nW10gPSBnZXREZWZhdWx0WFB1YnMoKVxuKTogRGVzY3JpcHRvck1hcCB7XG4gIHJldHVybiB0b0Rlc2NyaXB0b3JNYXAoe1xuICAgIGV4dGVybmFsOiBnZXREZXNjcmlwdG9yKHRlbXBsYXRlLCBrZXlzLCAnMC8qJykudG9TdHJpbmcoKSxcbiAgICBpbnRlcm5hbDogZ2V0RGVzY3JpcHRvcih0ZW1wbGF0ZSwga2V5cywgJzEvKicpLnRvU3RyaW5nKCksXG4gIH0pO1xufVxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './descriptors';
2
+ export * from './mock.utils';
3
+ export * from './psbt.utils';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/testutil/descriptor/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,20 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./descriptors"), exports);
18
+ __exportStar(require("./mock.utils"), exports);
19
+ __exportStar(require("./psbt.utils"), exports);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVzdHV0aWwvZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQThCO0FBQzlCLCtDQUE2QjtBQUM3QiwrQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9jay51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3BzYnQudXRpbHMnO1xuIl19
@@ -0,0 +1,34 @@
1
+ import { Descriptor } from '@bitgo/wasm-miniscript';
2
+ import * as utxolib from '@bitgo-beta/utxo-lib';
3
+ import { PsbtParams } from '../../descriptor';
4
+ import { DerivedDescriptorWalletOutput } from '../../descriptor/Output';
5
+ import { DescriptorTemplate } from './descriptors';
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":["../../../../src/testutil/descriptor/mock.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAgD,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAkC,MAAM,eAAe,CAAC;AAEnF,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,87 @@
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("../../descriptor");
42
+ const descriptors_1 = require("./descriptors");
43
+ function mockOutputId(id) {
44
+ const hash = id?.hash ?? Buffer.alloc(32, 1).toString('hex');
45
+ const vout = id?.vout ?? 0;
46
+ return { hash, vout };
47
+ }
48
+ function mockDerivedDescriptorWalletOutput(descriptor, outputParams = {}) {
49
+ const { value = BigInt(1e6) } = outputParams;
50
+ const { hash, vout } = mockOutputId(outputParams.id);
51
+ return {
52
+ hash,
53
+ index: vout,
54
+ witnessUtxo: {
55
+ script: (0, descriptor_1.createScriptPubKeyFromDescriptor)(descriptor),
56
+ value,
57
+ },
58
+ descriptor,
59
+ };
60
+ }
61
+ function mockPsbt(inputs, outputs, params = {}) {
62
+ return (0, descriptor_1.createPsbt)({ ...params, network: params.network ?? utxolib.networks.bitcoin }, inputs.map((i) => mockDerivedDescriptorWalletOutput(i.descriptor.atDerivationIndex(i.index), i)), outputs.map((o) => {
63
+ const derivedDescriptor = o.descriptor.atDerivationIndex(o.index);
64
+ return {
65
+ script: (0, descriptor_1.createScriptPubKeyFromDescriptor)(derivedDescriptor),
66
+ value: o.value,
67
+ descriptor: o.external ? undefined : derivedDescriptor,
68
+ };
69
+ }));
70
+ }
71
+ function mockPsbtDefault({ descriptorSelf = (0, descriptors_1.getDescriptor)('Wsh2Of3', (0, descriptors_1.getDefaultXPubs)('a')), descriptorOther = (0, descriptors_1.getDescriptor)('Wsh2Of3', (0, descriptors_1.getDefaultXPubs)('b')), params = {}, } = {}) {
72
+ return mockPsbt([
73
+ { descriptor: descriptorSelf, index: 0 },
74
+ { descriptor: descriptorSelf, index: 1, id: { vout: 1 } },
75
+ ], [
76
+ { descriptor: descriptorOther, index: 0, value: BigInt(4e5), external: true },
77
+ { descriptor: descriptorSelf, index: 0, value: BigInt(4e5) },
78
+ ], params);
79
+ }
80
+ function mockPsbtDefaultWithDescriptorTemplate(t, params = {}) {
81
+ return mockPsbtDefault({
82
+ descriptorSelf: (0, descriptors_1.getDescriptor)(t, (0, descriptors_1.getDefaultXPubs)('a')),
83
+ descriptorOther: (0, descriptors_1.getDescriptor)(t, (0, descriptors_1.getDefaultXPubs)('b')),
84
+ params,
85
+ });
86
+ }
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90ZXN0dXRpbC9kZXNjcmlwdG9yL21vY2sudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QkEsOEVBZUM7QUFjRCw0QkFpQkM7QUFFRCwwQ0FvQkM7QUFFRCxzRkFTQztBQXJHRCw4REFBZ0Q7QUFDaEQsaURBQTRGO0FBRTVGLCtDQUFtRjtBQVVuRixTQUFTLFlBQVksQ0FBQyxFQUF1QjtJQUkzQyxNQUFNLElBQUksR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RCxNQUFNLElBQUksR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUMzQixPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ3hCLENBQUM7QUFFRCxTQUFnQixpQ0FBaUMsQ0FDL0MsVUFBc0IsRUFDdEIsZUFBK0MsRUFBRTtJQUVqRCxNQUFNLEVBQUUsS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLFlBQVksQ0FBQztJQUM3QyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckQsT0FBTztRQUNMLElBQUk7UUFDSixLQUFLLEVBQUUsSUFBSTtRQUNYLFdBQVcsRUFBRTtZQUNYLE1BQU0sRUFBRSxJQUFBLDZDQUFnQyxFQUFDLFVBQVUsQ0FBQztZQUNwRCxLQUFLO1NBQ047UUFDRCxVQUFVO0tBQ1gsQ0FBQztBQUNKLENBQUM7QUFjRCxTQUFnQixRQUFRLENBQ3RCLE1BQW1CLEVBQ25CLE9BQXFCLEVBQ3JCLFNBQThCLEVBQUU7SUFFaEMsT0FBTyxJQUFBLHVCQUFVLEVBQ2YsRUFBRSxHQUFHLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUNsRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNoRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDaEIsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRSxPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUEsNkNBQWdDLEVBQUMsaUJBQWlCLENBQUM7WUFDM0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1lBQ2QsVUFBVSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCO1NBQ3ZELENBQUM7SUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxFQUM5QixjQUFjLEdBQUcsSUFBQSwyQkFBYSxFQUFDLFNBQVMsRUFBRSxJQUFBLDZCQUFlLEVBQUMsR0FBRyxDQUFDLENBQUMsRUFDL0QsZUFBZSxHQUFHLElBQUEsMkJBQWEsRUFBQyxTQUFTLEVBQUUsSUFBQSw2QkFBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ2hFLE1BQU0sR0FBRyxFQUFFLE1BS1QsRUFBRTtJQUNKLE9BQU8sUUFBUSxDQUNiO1FBQ0UsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7UUFDeEMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO0tBQzFELEVBQ0Q7UUFDRSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7UUFDN0UsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtLQUM3RCxFQUNELE1BQU0sQ0FDUCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLHFDQUFxQyxDQUNuRCxDQUFxQixFQUNyQixTQUE4QixFQUFFO0lBRWhDLE9BQU8sZUFBZSxDQUFDO1FBQ3JCLGNBQWMsRUFBRSxJQUFBLDJCQUFhLEVBQUMsQ0FBQyxFQUFFLElBQUEsNkJBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQztRQUN0RCxlQUFlLEVBQUUsSUFBQSwyQkFBYSxFQUFDLENBQUMsRUFBRSxJQUFBLDZCQUFlLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkQsTUFBTTtLQUNQLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXNjcmlwdG9yIH0gZnJvbSAnQGJpdGdvL3dhc20tbWluaXNjcmlwdCc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IFBzYnRQYXJhbXMsIGNyZWF0ZVBzYnQsIGNyZWF0ZVNjcmlwdFB1YktleUZyb21EZXNjcmlwdG9yIH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBEZXJpdmVkRGVzY3JpcHRvcldhbGxldE91dHB1dCB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3IvT3V0cHV0JztcbmltcG9ydCB7IERlc2NyaXB0b3JUZW1wbGF0ZSwgZ2V0RGVmYXVsdFhQdWJzLCBnZXREZXNjcmlwdG9yIH0gZnJvbSAnLi9kZXNjcmlwdG9ycyc7XG5cbnR5cGUgTW9ja091dHB1dElkUGFyYW1zID0geyBoYXNoPzogc3RyaW5nOyB2b3V0PzogbnVtYmVyIH07XG5cbnR5cGUgQmFzZU1vY2tEZXNjcmlwdG9yT3V0cHV0UGFyYW1zID0ge1xuICBpZD86IE1vY2tPdXRwdXRJZFBhcmFtcztcbiAgaW5kZXg/OiBudW1iZXI7XG4gIHZhbHVlPzogYmlnaW50O1xufTtcblxuZnVuY3Rpb24gbW9ja091dHB1dElkKGlkPzogTW9ja091dHB1dElkUGFyYW1zKToge1xuICBoYXNoOiBzdHJpbmc7XG4gIHZvdXQ6IG51bWJlcjtcbn0ge1xuICBjb25zdCBoYXNoID0gaWQ/Lmhhc2ggPz8gQnVmZmVyLmFsbG9jKDMyLCAxKS50b1N0cmluZygnaGV4Jyk7XG4gIGNvbnN0IHZvdXQgPSBpZD8udm91dCA/PyAwO1xuICByZXR1cm4geyBoYXNoLCB2b3V0IH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQoXG4gIGRlc2NyaXB0b3I6IERlc2NyaXB0b3IsXG4gIG91dHB1dFBhcmFtczogQmFzZU1vY2tEZXNjcmlwdG9yT3V0cHV0UGFyYW1zID0ge31cbik6IERlcml2ZWREZXNjcmlwdG9yV2FsbGV0T3V0cHV0IHtcbiAgY29uc3QgeyB2YWx1ZSA9IEJpZ0ludCgxZTYpIH0gPSBvdXRwdXRQYXJhbXM7XG4gIGNvbnN0IHsgaGFzaCwgdm91dCB9ID0gbW9ja091dHB1dElkKG91dHB1dFBhcmFtcy5pZCk7XG4gIHJldHVybiB7XG4gICAgaGFzaCxcbiAgICBpbmRleDogdm91dCxcbiAgICB3aXRuZXNzVXR4bzoge1xuICAgICAgc2NyaXB0OiBjcmVhdGVTY3JpcHRQdWJLZXlGcm9tRGVzY3JpcHRvcihkZXNjcmlwdG9yKSxcbiAgICAgIHZhbHVlLFxuICAgIH0sXG4gICAgZGVzY3JpcHRvcixcbiAgfTtcbn1cblxudHlwZSBNb2NrSW5wdXQgPSBCYXNlTW9ja0Rlc2NyaXB0b3JPdXRwdXRQYXJhbXMgJiB7XG4gIGluZGV4OiBudW1iZXI7XG4gIGRlc2NyaXB0b3I6IERlc2NyaXB0b3I7XG59O1xuXG50eXBlIE1vY2tPdXRwdXQgPSB7XG4gIGRlc2NyaXB0b3I6IERlc2NyaXB0b3I7XG4gIGluZGV4OiBudW1iZXI7XG4gIHZhbHVlOiBiaWdpbnQ7XG4gIGV4dGVybmFsPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrUHNidChcbiAgaW5wdXRzOiBNb2NrSW5wdXRbXSxcbiAgb3V0cHV0czogTW9ja091dHB1dFtdLFxuICBwYXJhbXM6IFBhcnRpYWw8UHNidFBhcmFtcz4gPSB7fVxuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIHJldHVybiBjcmVhdGVQc2J0KFxuICAgIHsgLi4ucGFyYW1zLCBuZXR3b3JrOiBwYXJhbXMubmV0d29yayA/PyB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4gfSxcbiAgICBpbnB1dHMubWFwKChpKSA9PiBtb2NrRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQoaS5kZXNjcmlwdG9yLmF0RGVyaXZhdGlvbkluZGV4KGkuaW5kZXgpLCBpKSksXG4gICAgb3V0cHV0cy5tYXAoKG8pID0+IHtcbiAgICAgIGNvbnN0IGRlcml2ZWREZXNjcmlwdG9yID0gby5kZXNjcmlwdG9yLmF0RGVyaXZhdGlvbkluZGV4KG8uaW5kZXgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2NyaXB0OiBjcmVhdGVTY3JpcHRQdWJLZXlGcm9tRGVzY3JpcHRvcihkZXJpdmVkRGVzY3JpcHRvciksXG4gICAgICAgIHZhbHVlOiBvLnZhbHVlLFxuICAgICAgICBkZXNjcmlwdG9yOiBvLmV4dGVybmFsID8gdW5kZWZpbmVkIDogZGVyaXZlZERlc2NyaXB0b3IsXG4gICAgICB9O1xuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrUHNidERlZmF1bHQoe1xuICBkZXNjcmlwdG9yU2VsZiA9IGdldERlc2NyaXB0b3IoJ1dzaDJPZjMnLCBnZXREZWZhdWx0WFB1YnMoJ2EnKSksXG4gIGRlc2NyaXB0b3JPdGhlciA9IGdldERlc2NyaXB0b3IoJ1dzaDJPZjMnLCBnZXREZWZhdWx0WFB1YnMoJ2InKSksXG4gIHBhcmFtcyA9IHt9LFxufToge1xuICBkZXNjcmlwdG9yU2VsZj86IERlc2NyaXB0b3I7XG4gIGRlc2NyaXB0b3JPdGhlcj86IERlc2NyaXB0b3I7XG4gIHBhcmFtcz86IFBhcnRpYWw8UHNidFBhcmFtcz47XG59ID0ge30pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgcmV0dXJuIG1vY2tQc2J0KFxuICAgIFtcbiAgICAgIHsgZGVzY3JpcHRvcjogZGVzY3JpcHRvclNlbGYsIGluZGV4OiAwIH0sXG4gICAgICB7IGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JTZWxmLCBpbmRleDogMSwgaWQ6IHsgdm91dDogMSB9IH0sXG4gICAgXSxcbiAgICBbXG4gICAgICB7IGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JPdGhlciwgaW5kZXg6IDAsIHZhbHVlOiBCaWdJbnQoNGU1KSwgZXh0ZXJuYWw6IHRydWUgfSxcbiAgICAgIHsgZGVzY3JpcHRvcjogZGVzY3JpcHRvclNlbGYsIGluZGV4OiAwLCB2YWx1ZTogQmlnSW50KDRlNSkgfSxcbiAgICBdLFxuICAgIHBhcmFtc1xuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1BzYnREZWZhdWx0V2l0aERlc2NyaXB0b3JUZW1wbGF0ZShcbiAgdDogRGVzY3JpcHRvclRlbXBsYXRlLFxuICBwYXJhbXM6IFBhcnRpYWw8UHNidFBhcmFtcz4gPSB7fVxuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIHJldHVybiBtb2NrUHNidERlZmF1bHQoe1xuICAgIGRlc2NyaXB0b3JTZWxmOiBnZXREZXNjcmlwdG9yKHQsIGdldERlZmF1bHRYUHVicygnYScpKSxcbiAgICBkZXNjcmlwdG9yT3RoZXI6IGdldERlc2NyaXB0b3IodCwgZ2V0RGVmYXVsdFhQdWJzKCdiJykpLFxuICAgIHBhcmFtcyxcbiAgfSk7XG59XG4iXX0=
@@ -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":["../../../../src/testutil/descriptor/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("../../../src/testutil/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90ZXN0dXRpbC9kZXNjcmlwdG9yL3BzYnQudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxzREFnQkM7QUFFRCxrREFFQztBQXRCRCxtRkFBa0c7QUFFbEcsU0FBZ0IscUJBQXFCLENBQUMsQ0FBZTtJQUNuRCxPQUFPLElBQUEsbUNBQWEsRUFDbEIsQ0FBQyxFQUNEO1FBQ0UsbUJBQW1CLEVBQUUsSUFBSTtRQUN6QixXQUFXLENBQUMsSUFBbUI7WUFDN0IsT0FBTyxDQUNMLElBQUEsK0JBQVMsRUFBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDNUIsSUFBQSwrQkFBUyxFQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDcEMsSUFBQSwrQkFBUyxFQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDckUsSUFBQSwrQkFBUyxFQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQzdCLENBQUM7UUFDSixDQUFDO0tBQ0YsRUFDRCxFQUFFLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxDQUFzQjtJQUN4RCxPQUFPLElBQUEsbUNBQWEsRUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgbWF0Y2hQYXRoLCBQYXRoRWxlbWVudCwgdG9QbGFpbk9iamVjdCB9IGZyb20gJy4uLy4uLy4uL3NyYy90ZXN0dXRpbC90b1BsYWluT2JqZWN0LnV0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRvUGxhaW5PYmplY3RGcm9tUHNidCh2OiB1dHhvbGliLlBzYnQpOiB1bmtub3duIHtcbiAgcmV0dXJuIHRvUGxhaW5PYmplY3QoXG4gICAgdixcbiAgICB7XG4gICAgICBwcm9wZXJ0eURlc2NyaXB0b3JzOiB0cnVlLFxuICAgICAgaWdub3JlUGF0aHMocGF0aDogUGF0aEVsZW1lbnRbXSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG1hdGNoUGF0aChwYXRoLCBbJ19fQ0FDSEUnXSkgfHxcbiAgICAgICAgICBtYXRjaFBhdGgocGF0aCwgWydvcHRzJywgJ25ldHdvcmsnXSkgfHxcbiAgICAgICAgICBtYXRjaFBhdGgocGF0aCwgWydkYXRhJywgJ2dsb2JhbE1hcCcsICd1bnNpZ25lZFR4JywgJ3R4JywgJ25ldHdvcmsnXSkgfHxcbiAgICAgICAgICBtYXRjaFBhdGgocGF0aCwgWyduZXR3b3JrJ10pXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgIH0sXG4gICAgW11cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvUGxhaW5PYmplY3RGcm9tVHgodjogdXR4b2xpYi5UcmFuc2FjdGlvbik6IHVua25vd24ge1xuICByZXR1cm4gdG9QbGFpbk9iamVjdCh2LCB7fSwgW10pO1xufVxuIl19
@@ -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":["../../../src/testutil/fixtures.utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0CH;;;;;;;;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,117 @@
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 isNodeJsError(e) {
44
+ return e instanceof Error && typeof e.code === 'string';
45
+ }
46
+ function fixtureEncoding(path) {
47
+ if (path.endsWith('.json')) {
48
+ return 'json';
49
+ }
50
+ if (path.endsWith('.hex')) {
51
+ return 'hex';
52
+ }
53
+ throw new Error(`unknown fixture encoding for ${path}`);
54
+ }
55
+ function decodeFixture(raw, encoding) {
56
+ switch (encoding) {
57
+ case 'json':
58
+ return JSON.parse(raw);
59
+ case 'hex':
60
+ return Buffer.from(raw, 'hex');
61
+ }
62
+ }
63
+ function encodeFixture(value, encoding) {
64
+ switch (encoding) {
65
+ case 'json':
66
+ return JSON.stringify(value, null, 2) + '\n';
67
+ case 'hex':
68
+ if (!Buffer.isBuffer(value)) {
69
+ throw new Error(`expected Buffer, got ${typeof value}`);
70
+ }
71
+ return value.toString('hex');
72
+ }
73
+ }
74
+ /**
75
+ * Return fixture described in `path`.
76
+ *
77
+ * If file does not exist and `defaultValue` is provided, writes defaultValue to `path` and throws an error.
78
+ *
79
+ * @param path
80
+ * @param defaultValue
81
+ * @return T - fixture content
82
+ */
83
+ async function getFixture(path, defaultValue) {
84
+ try {
85
+ await fs.promises.stat(mpath.dirname(path));
86
+ }
87
+ catch (e) {
88
+ if (isNodeJsError(e) && e.code === 'ENOENT') {
89
+ throw new Error(`fixture directory ${mpath.dirname(path)} not found, please create it first`);
90
+ }
91
+ throw e;
92
+ }
93
+ const encoding = fixtureEncoding(path);
94
+ try {
95
+ return decodeFixture(await fs.promises.readFile(path, 'utf8'), encoding);
96
+ }
97
+ catch (e) {
98
+ if (isNodeJsError(e) && e.code === 'ENOENT') {
99
+ if (process.env.WRITE_FIXTURES === '0') {
100
+ throw new Error(`fixture ${path} not found, WRITE_FIXTURES=0`);
101
+ }
102
+ if (defaultValue === undefined) {
103
+ throw new Error(`fixture ${path} not found and no default value given`);
104
+ }
105
+ if (typeof defaultValue === 'function') {
106
+ defaultValue = await defaultValue();
107
+ }
108
+ await fs.promises.writeFile(path, encodeFixture(defaultValue, encoding));
109
+ throw new Error(`wrote default value for ${path}, please inspect and restart test`);
110
+ }
111
+ throw e;
112
+ }
113
+ }
114
+ function jsonNormalize(v) {
115
+ return JSON.parse(JSON.stringify(v));
116
+ }
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHV0aWwvZml4dHVyZXMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1ESCxnQ0ErQkM7QUFFRCxzQ0FFQztBQXBGRCx1Q0FBeUI7QUFDekIsNENBQThCO0FBSTlCLFNBQVMsYUFBYSxDQUFDLENBQVU7SUFDL0IsT0FBTyxDQUFDLFlBQVksS0FBSyxJQUFJLE9BQVEsQ0FBMkIsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO0FBQ3JGLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxJQUFZO0lBQ25DLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxHQUFXLEVBQUUsUUFBeUI7SUFDM0QsUUFBUSxRQUFRLEVBQUUsQ0FBQztRQUNqQixLQUFLLE1BQU07WUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsS0FBSyxLQUFLO1lBQ1IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLEtBQWMsRUFBRSxRQUF5QjtJQUM5RCxRQUFRLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLEtBQUssTUFBTTtZQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMvQyxLQUFLLEtBQUs7WUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixPQUFPLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDMUQsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0ksS0FBSyxVQUFVLFVBQVUsQ0FBSSxJQUFZLEVBQUUsWUFBcUM7SUFDckYsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDaEcsQ0FBQztRQUNELE1BQU0sQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV2QyxJQUFJLENBQUM7UUFDSCxPQUFPLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxRQUFRLENBQU0sQ0FBQztJQUNoRixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksOEJBQThCLENBQUMsQ0FBQztZQUNqRSxDQUFDO1lBQ0QsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLHVDQUF1QyxDQUFDLENBQUM7WUFDMUUsQ0FBQztZQUNELElBQUksT0FBTyxZQUFZLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3ZDLFlBQVksR0FBRyxNQUFPLFlBQWlDLEVBQUUsQ0FBQztZQUM1RCxDQUFDO1lBQ0QsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLElBQUksbUNBQW1DLENBQUMsQ0FBQztRQUN0RixDQUFDO1FBRUQsTUFBTSxDQUFDLENBQUM7SUFDVixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBSSxDQUFJO0lBQ25DLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFNLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udGFpbnMgaGVscGVycyBmb3Igd29ya2luZyB3aXRoIHRlc3QgZml4dHVyZXNcbiAqL1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBtcGF0aCBmcm9tICdwYXRoJztcblxudHlwZSBGaXh0dXJlRW5jb2RpbmcgPSAnanNvbicgfCAnaGV4JztcblxuZnVuY3Rpb24gaXNOb2RlSnNFcnJvcihlOiB1bmtub3duKTogZSBpcyBOb2RlSlMuRXJybm9FeGNlcHRpb24ge1xuICByZXR1cm4gZSBpbnN0YW5jZW9mIEVycm9yICYmIHR5cGVvZiAoZSBhcyBOb2RlSlMuRXJybm9FeGNlcHRpb24pLmNvZGUgPT09ICdzdHJpbmcnO1xufVxuXG5mdW5jdGlvbiBmaXh0dXJlRW5jb2RpbmcocGF0aDogc3RyaW5nKTogRml4dHVyZUVuY29kaW5nIHtcbiAgaWYgKHBhdGguZW5kc1dpdGgoJy5qc29uJykpIHtcbiAgICByZXR1cm4gJ2pzb24nO1xuICB9XG4gIGlmIChwYXRoLmVuZHNXaXRoKCcuaGV4JykpIHtcbiAgICByZXR1cm4gJ2hleCc7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIGZpeHR1cmUgZW5jb2RpbmcgZm9yICR7cGF0aH1gKTtcbn1cblxuZnVuY3Rpb24gZGVjb2RlRml4dHVyZShyYXc6IHN0cmluZywgZW5jb2Rpbmc6IEZpeHR1cmVFbmNvZGluZyk6IHVua25vd24ge1xuICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgY2FzZSAnanNvbic6XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShyYXcpO1xuICAgIGNhc2UgJ2hleCc6XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20ocmF3LCAnaGV4Jyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZW5jb2RlRml4dHVyZSh2YWx1ZTogdW5rbm93biwgZW5jb2Rpbmc6IEZpeHR1cmVFbmNvZGluZyk6IHN0cmluZyB7XG4gIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICBjYXNlICdqc29uJzpcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgbnVsbCwgMikgKyAnXFxuJztcbiAgICBjYXNlICdoZXgnOlxuICAgICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgQnVmZmVyLCBnb3QgJHt0eXBlb2YgdmFsdWV9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoJ2hleCcpO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIGZpeHR1cmUgZGVzY3JpYmVkIGluIGBwYXRoYC5cbiAqXG4gKiBJZiBmaWxlIGRvZXMgbm90IGV4aXN0IGFuZCBgZGVmYXVsdFZhbHVlYCBpcyBwcm92aWRlZCwgd3JpdGVzIGRlZmF1bHRWYWx1ZSB0byBgcGF0aGAgYW5kIHRocm93cyBhbiBlcnJvci5cbiAqXG4gKiBAcGFyYW0gcGF0aFxuICogQHBhcmFtIGRlZmF1bHRWYWx1ZVxuICogQHJldHVybiBUIC0gZml4dHVyZSBjb250ZW50XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRGaXh0dXJlPFQ+KHBhdGg6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogVCB8ICgoKSA9PiBQcm9taXNlPFQ+KSk6IFByb21pc2U8VD4ge1xuICB0cnkge1xuICAgIGF3YWl0IGZzLnByb21pc2VzLnN0YXQobXBhdGguZGlybmFtZShwYXRoKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoaXNOb2RlSnNFcnJvcihlKSAmJiBlLmNvZGUgPT09ICdFTk9FTlQnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGZpeHR1cmUgZGlyZWN0b3J5ICR7bXBhdGguZGlybmFtZShwYXRoKX0gbm90IGZvdW5kLCBwbGVhc2UgY3JlYXRlIGl0IGZpcnN0YCk7XG4gICAgfVxuICAgIHRocm93IGU7XG4gIH1cblxuICBjb25zdCBlbmNvZGluZyA9IGZpeHR1cmVFbmNvZGluZyhwYXRoKTtcblxuICB0cnkge1xuICAgIHJldHVybiBkZWNvZGVGaXh0dXJlKGF3YWl0IGZzLnByb21pc2VzLnJlYWRGaWxlKHBhdGgsICd1dGY4JyksIGVuY29kaW5nKSBhcyBUO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGlzTm9kZUpzRXJyb3IoZSkgJiYgZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgaWYgKHByb2Nlc3MuZW52LldSSVRFX0ZJWFRVUkVTID09PSAnMCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBmaXh0dXJlICR7cGF0aH0gbm90IGZvdW5kLCBXUklURV9GSVhUVVJFUz0wYCk7XG4gICAgICB9XG4gICAgICBpZiAoZGVmYXVsdFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBmaXh0dXJlICR7cGF0aH0gbm90IGZvdW5kIGFuZCBubyBkZWZhdWx0IHZhbHVlIGdpdmVuYCk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGRlZmF1bHRWYWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSBhd2FpdCAoZGVmYXVsdFZhbHVlIGFzICgpID0+IFByb21pc2U8VD4pKCk7XG4gICAgICB9XG4gICAgICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUocGF0aCwgZW5jb2RlRml4dHVyZShkZWZhdWx0VmFsdWUsIGVuY29kaW5nKSk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHdyb3RlIGRlZmF1bHQgdmFsdWUgZm9yICR7cGF0aH0sIHBsZWFzZSBpbnNwZWN0IGFuZCByZXN0YXJ0IHRlc3RgKTtcbiAgICB9XG5cbiAgICB0aHJvdyBlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBqc29uTm9ybWFsaXplPFQ+KHY6IFQpOiBUIHtcbiAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodikpIGFzIFQ7XG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './fixtures.utils';
2
+ export * from './key.utils';
3
+ export * from './toPlainObject.utils';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testutil/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,20 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./fixtures.utils"), exports);
18
+ __exportStar(require("./key.utils"), exports);
19
+ __exportStar(require("./toPlainObject.utils"), exports);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHV0aWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUFpQztBQUNqQyw4Q0FBNEI7QUFDNUIsd0RBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9maXh0dXJlcy51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2tleS51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3RvUGxhaW5PYmplY3QudXRpbHMnO1xuIl19
@@ -0,0 +1,16 @@
1
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
+ import { BIP32Interface } from '@bitgo-beta/utxo-lib';
3
+ export type Triple<T> = [T, T, T];
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":["../../../src/testutil/key.utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAElC,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"}