@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,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rlc3R1dGlsL2tleS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWFBLHdCQUdDO0FBTUQsb0NBRUM7QUFFRCw4Q0FFQztBQTVCRCwrQ0FBaUM7QUFFakMsOERBQWdEO0FBT2hEOzs7R0FHRztBQUNILFNBQWdCLE1BQU0sQ0FBQyxJQUFhO0lBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xILE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFlBQVksQ0FBQyxNQUFNLEdBQUcsRUFBRTtJQUN0QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBYyxDQUFDO0FBQ3ZGLENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLGtCQUFtQztJQUNoRixPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGtCQUFrQixDQUFDLENBQUM7QUFDcEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5leHBvcnQgdHlwZSBUcmlwbGU8VD4gPSBbVCwgVCwgVF07XG5cbmV4cG9ydCB0eXBlIEtleVRyaXBsZSA9IFRyaXBsZTxCSVAzMkludGVyZmFjZT47XG5cbi8qKlxuICogQ3JlYXRlIG5ldyBiaXAzMiBrZXkuIFVzZXMgcmFuZG9tIHNlZWQgaWYgbm9uZSBpcyBwYXNzZWQuXG4gKiBAcGFyYW0gc2VlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5KHNlZWQ/OiBzdHJpbmcpOiBCSVAzMkludGVyZmFjZSB7XG4gIGNvbnN0IGZpbmFsU2VlZCA9IHNlZWQgPT09IHVuZGVmaW5lZCA/IGNyeXB0by5yYW5kb21CeXRlcygzMikgOiBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKHNlZWQpLmRpZ2VzdCgpO1xuICByZXR1cm4gdXR4b2xpYi5iaXAzMi5mcm9tU2VlZChmaW5hbFNlZWQpO1xufVxuXG4vKipcbiAqIFJldHVybiBkZXRlcm1pbmlzdGljIGtleSB0cmlwbGUgb2YgYmlwMzIga2V5c1xuICogQHBhcmFtIHByZWZpeFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5VHJpcGxlKHByZWZpeCA9ICcnKTogS2V5VHJpcGxlIHtcbiAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IDMgfSkubWFwKChfLCBpKSA9PiBnZXRLZXkoYCR7cHJlZml4fSR7aX1gKSkgYXMgS2V5VHJpcGxlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um9vdFdhbGxldEtleXMocHJlZml4ID0gJycsIGRlcml2YXRpb25QcmVmaXhlcz86IFRyaXBsZTxzdHJpbmc+KTogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyB7XG4gIHJldHVybiBuZXcgdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyhnZXRLZXlUcmlwbGUocHJlZml4KSwgZGVyaXZhdGlvblByZWZpeGVzKTtcbn1cbiJdfQ==
@@ -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":["../../../src/testutil/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,GAAE,iBAAsB,EAAE,IAAI,GAAE,WAAW,EAAO,GAAG,OAAO,CAyCzG"}
@@ -0,0 +1,75 @@
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
+ if (!includePath(opts, [...path, key])) {
19
+ return [];
20
+ }
21
+ if (value === undefined && (opts.skipUndefinedValues ?? true)) {
22
+ return [];
23
+ }
24
+ return [[key, toPlainObject(value, opts, [...path, key])]];
25
+ }
26
+ function toPlainObjectFromPropertyDescriptors(v, opts, path) {
27
+ const descriptors = Object.getOwnPropertyDescriptors(v);
28
+ return Object.fromEntries(Object.entries(descriptors).flatMap(([key, descriptor]) => {
29
+ if (descriptor.value !== undefined) {
30
+ return toPlainEntries(key, descriptor.value, opts, path);
31
+ }
32
+ if (typeof descriptor.get === 'function') {
33
+ return toPlainEntries(key, descriptor.get.call(v), opts, path);
34
+ }
35
+ return [];
36
+ }));
37
+ }
38
+ function toPlainObject(v, opts = {}, path = []) {
39
+ if (opts.apply) {
40
+ const result = opts.apply(v, path);
41
+ if (result !== undefined) {
42
+ return result;
43
+ }
44
+ }
45
+ switch (typeof v) {
46
+ case 'string':
47
+ case 'number':
48
+ case 'boolean':
49
+ case 'undefined':
50
+ return v;
51
+ case 'bigint':
52
+ return v.toString();
53
+ case 'function':
54
+ case 'symbol':
55
+ return undefined;
56
+ }
57
+ if (v === null) {
58
+ return v;
59
+ }
60
+ if (Buffer.isBuffer(v)) {
61
+ return v.toString('hex');
62
+ }
63
+ if (Array.isArray(v)) {
64
+ return v.map((e, i) => toPlainObject(e, opts, [...path, i]));
65
+ }
66
+ if (typeof v === 'object') {
67
+ const result = Object.fromEntries(Object.entries(v).flatMap(([key, value]) => toPlainEntries(key, value, opts, path)));
68
+ if (opts.propertyDescriptors) {
69
+ Object.assign(result, toPlainObjectFromPropertyDescriptors(v, opts, path));
70
+ }
71
+ return result;
72
+ }
73
+ throw new Error(`unknown v ${typeof v}`);
74
+ }
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9QbGFpbk9iamVjdC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0dXRpbC90b1BsYWluT2JqZWN0LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsOEJBRUM7QUEwQ0Qsc0NBeUNDO0FBckZELFNBQWdCLFNBQVMsQ0FBQyxDQUFnQixFQUFFLENBQWdCO0lBQzFELE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLElBQXVCLEVBQUUsSUFBbUI7SUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hGLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FDckIsR0FBVyxFQUNYLEtBQWEsRUFDYixJQUF1QixFQUN2QixJQUFtQjtJQUVuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLEVBQUUsQ0FBQztJQUNaLENB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QUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQ3BGLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLG9DQUFvQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgVG9QbGFpbk9iamVjdE9wdHMgPSB7XG4gIHByb3BlcnR5RGVzY3JpcHRvcnM/OiBib29sZWFuO1xuICBza2lwVW5kZWZpbmVkVmFsdWVzPzogYm9vbGVhbjtcbiAgaWdub3JlUGF0aHM/OiBzdHJpbmdbXSB8ICgocGF0aDogUGF0aEVsZW1lbnRbXSkgPT4gYm9vbGVhbik7XG4gIGFwcGx5PzogKHY6IHVua25vd24sIHBhdGg6IFBhdGhFbGVtZW50W10pID0+IHVua25vd247XG59O1xuZXhwb3J0IHR5cGUgUGF0aEVsZW1lbnQgPSBzdHJpbmcgfCBudW1iZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaFBhdGgoYTogUGF0aEVsZW1lbnRbXSwgYjogUGF0aEVsZW1lbnRbXSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYS5sZW5ndGggPT09IGIubGVuZ3RoICYmIGEuZXZlcnkoKGUsIGkpID0+IGUgPT09IGJbaV0pO1xufVxuXG5mdW5jdGlvbiBpbmNsdWRlUGF0aChvcHRzOiBUb1BsYWluT2JqZWN0T3B0cywgcGF0aDogUGF0aEVsZW1lbnRbXSk6IGJvb2xlYW4ge1xuICBpZiAoIW9wdHMuaWdub3JlUGF0aHMpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIG9wdHMuaWdub3JlUGF0aHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gIW9wdHMuaWdub3JlUGF0aHMocGF0aCk7XG4gIH1cbiAgcmV0dXJuICFvcHRzLmlnbm9yZVBhdGhzLnNvbWUoKGlnbm9yZVBhdGgpID0+IG1hdGNoUGF0aChwYXRoLCBpZ25vcmVQYXRoLnNwbGl0KCcuJykpKTtcbn1cblxuZnVuY3Rpb24gdG9QbGFpbkVudHJpZXMoXG4gIGtleTogc3RyaW5nLFxuICB2YWx1ZTogc3RyaW5nLFxuICBvcHRzOiBUb1BsYWluT2JqZWN0T3B0cyxcbiAgcGF0aDogUGF0aEVsZW1lbnRbXVxuKTogW10gfCBbW3N0cmluZywgdW5rbm93bl1dIHtcbiAgaWYgKCFpbmNsdWRlUGF0aChvcHRzLCBbLi4ucGF0aCwga2V5XSkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgKG9wdHMuc2tpcFVuZGVmaW5lZFZhbHVlcyA/PyB0cnVlKSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gW1trZXksIHRvUGxhaW5PYmplY3QodmFsdWUsIG9wdHMsIFsuLi5wYXRoLCBrZXldKV1dO1xufVxuXG5mdW5jdGlvbiB0b1BsYWluT2JqZWN0RnJvbVByb3BlcnR5RGVzY3JpcHRvcnModjogdW5rbm93biwgb3B0czogVG9QbGFpbk9iamVjdE9wdHMsIHBhdGg6IFBhdGhFbGVtZW50W10pIHtcbiAgY29uc3QgZGVzY3JpcHRvcnMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh2KTtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhkZXNjcmlwdG9ycykuZmxhdE1hcCgoW2tleSwgZGVzY3JpcHRvcl0pID0+IHtcbiAgICAgIGlmIChkZXNjcmlwdG9yLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRvUGxhaW5FbnRyaWVzKGtleSwgZGVzY3JpcHRvci52YWx1ZSwgb3B0cywgcGF0aCk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGRlc2NyaXB0b3IuZ2V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB0b1BsYWluRW50cmllcyhrZXksIGRlc2NyaXB0b3IuZ2V0LmNhbGwodiksIG9wdHMsIHBhdGgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtdO1xuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1BsYWluT2JqZWN0KHY6IHVua25vd24sIG9wdHM6IFRvUGxhaW5PYmplY3RPcHRzID0ge30sIHBhdGg6IFBhdGhFbGVtZW50W10gPSBbXSk6IHVua25vd24ge1xuICBpZiAob3B0cy5hcHBseSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IG9wdHMuYXBwbHkodiwgcGF0aCk7XG4gICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxuXG4gIHN3aXRjaCAodHlwZW9mIHYpIHtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgIGNhc2UgJ251bWJlcic6XG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgIHJldHVybiB2O1xuICAgIGNhc2UgJ2JpZ2ludCc6XG4gICAgICByZXR1cm4gdi50b1N0cmluZygpO1xuICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICBjYXNlICdzeW1ib2wnOlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmICh2ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICBpZiAoQnVmZmVyLmlzQnVmZmVyKHYpKSB7XG4gICAgcmV0dXJuIHYudG9TdHJpbmcoJ2hleCcpO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgcmV0dXJuIHYubWFwKChlLCBpKSA9PiB0b1BsYWluT2JqZWN0KGUsIG9wdHMsIFsuLi5wYXRoLCBpXSkpO1xuICB9XG4gIGlmICh0eXBlb2YgdiA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCByZXN1bHQgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyh2KS5mbGF0TWFwKChba2V5LCB2YWx1ZV0pID0+IHRvUGxhaW5FbnRyaWVzKGtleSwgdmFsdWUsIG9wdHMsIHBhdGgpKVxuICAgICk7XG4gICAgaWYgKG9wdHMucHJvcGVydHlEZXNjcmlwdG9ycykge1xuICAgICAgT2JqZWN0LmFzc2lnbihyZXN1bHQsIHRvUGxhaW5PYmplY3RGcm9tUHJvcGVydHlEZXNjcmlwdG9ycyh2LCBvcHRzLCBwYXRoKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIHYgJHt0eXBlb2Ygdn1gKTtcbn1cbiJdfQ==
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@bitgo-beta/utxo-core",
3
+ "version": "1.0.0-beta.0",
4
+ "description": "BitGo UTXO Core types",
5
+ "main": "./dist/src/index.js",
6
+ "types": "./dist/src/index.d.ts",
7
+ "files": [
8
+ "dist/src"
9
+ ],
10
+ "exports": {
11
+ ".": "./dist/src/index.js",
12
+ "./descriptor": "./dist/src/descriptor/index.js",
13
+ "./testutil": "./dist/src/testutil/index.js",
14
+ "./testutil/descriptor": "./dist/src/testutil/descriptor/index.js"
15
+ },
16
+ "browser": {
17
+ ".": "./dist/src/index.js",
18
+ "./descriptor": "./dist/src/descriptor/index.js",
19
+ "./testutil": "./dist/src/testutil/index.js",
20
+ "./testutil/descriptor": "./dist/src/testutil/descriptor/index.js"
21
+ },
22
+ "scripts": {
23
+ "build": "yarn tsc --build --incremental --verbose .",
24
+ "fmt": "prettier --write .",
25
+ "check-fmt": "prettier --check .",
26
+ "clean": "rm -r ./dist",
27
+ "lint": "eslint --quiet .",
28
+ "prepare": "npm run build",
29
+ "test": "npm run unit-test",
30
+ "unit-test": "mocha --recursive test/"
31
+ },
32
+ "author": "BitGo SDK Team <sdkteam@bitgo.com>",
33
+ "license": "MIT",
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "https://github.com/BitGo/BitGoJS.git",
37
+ "directory": "modules/utxo-core"
38
+ },
39
+ "lint-staged": {
40
+ "*.{js,ts}": [
41
+ "yarn prettier --write",
42
+ "yarn eslint --fix"
43
+ ]
44
+ },
45
+ "publishConfig": {
46
+ "access": "public"
47
+ },
48
+ "nyc": {
49
+ "extension": [
50
+ ".ts"
51
+ ]
52
+ },
53
+ "dependencies": {
54
+ "@bitgo-beta/unspents": "0.13.2-beta.689",
55
+ "@bitgo-beta/utxo-lib": "8.0.3-beta.690",
56
+ "@bitgo/wasm-miniscript": "^2.0.0-beta.2",
57
+ "bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4"
58
+ },
59
+ "gitHead": "42b714eb99f85129c030eaf0faccd28e9dbc8604"
60
+ }