@bitgo/abstract-utxo 9.8.0 → 9.10.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 (46) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/src/descriptor/NamedDescriptor.d.ts +8 -2
  3. package/dist/src/descriptor/NamedDescriptor.d.ts.map +1 -1
  4. package/dist/src/descriptor/NamedDescriptor.js +30 -5
  5. package/dist/src/descriptor/createWallet/createDescriptorWallet.d.ts +20 -0
  6. package/dist/src/descriptor/createWallet/createDescriptorWallet.d.ts.map +1 -0
  7. package/dist/src/descriptor/createWallet/createDescriptorWallet.js +74 -0
  8. package/dist/src/descriptor/createWallet/createDescriptors.d.ts +12 -0
  9. package/dist/src/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
  10. package/dist/src/descriptor/createWallet/createDescriptors.js +31 -0
  11. package/dist/src/descriptor/createWallet/index.d.ts +3 -0
  12. package/dist/src/descriptor/createWallet/index.d.ts.map +1 -0
  13. package/dist/src/descriptor/createWallet/index.js +19 -0
  14. package/dist/src/descriptor/index.d.ts +1 -0
  15. package/dist/src/descriptor/index.d.ts.map +1 -1
  16. package/dist/src/descriptor/index.js +36 -2
  17. package/dist/src/transaction/descriptor/parse.d.ts +6 -2
  18. package/dist/src/transaction/descriptor/parse.d.ts.map +1 -1
  19. package/dist/src/transaction/descriptor/parse.js +6 -6
  20. package/dist/src/transaction/descriptor/parseToAmountType.d.ts.map +1 -1
  21. package/dist/src/transaction/descriptor/parseToAmountType.js +4 -1
  22. package/dist/src/transaction/descriptor/verifyTransaction.d.ts +5 -5
  23. package/dist/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
  24. package/dist/src/transaction/descriptor/verifyTransaction.js +1 -1
  25. package/dist/src/transaction/fixedScript/parseTransaction.d.ts +5 -7
  26. package/dist/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
  27. package/dist/src/transaction/fixedScript/parseTransaction.js +27 -30
  28. package/dist/src/transaction/outputDifference.d.ts +40 -0
  29. package/dist/src/transaction/outputDifference.d.ts.map +1 -0
  30. package/dist/src/transaction/outputDifference.js +47 -0
  31. package/dist/test/descriptor/NamedDescriptor.d.ts +2 -0
  32. package/dist/test/descriptor/NamedDescriptor.d.ts.map +1 -0
  33. package/dist/test/descriptor/NamedDescriptor.js +19 -0
  34. package/dist/test/descriptor/createWallet/createDescriptors.d.ts +2 -0
  35. package/dist/test/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
  36. package/dist/test/descriptor/createWallet/createDescriptors.js +21 -0
  37. package/dist/test/transaction/descriptor/outputDifference.js +41 -25
  38. package/dist/test/transaction/descriptor/parse.js +14 -1
  39. package/dist/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +4 -4
  41. package/dist/src/transaction/descriptor/outputDifference.d.ts +0 -30
  42. package/dist/src/transaction/descriptor/outputDifference.d.ts.map +0 -1
  43. package/dist/src/transaction/descriptor/outputDifference.js +0 -38
  44. package/dist/test/outputDifference.d.ts +0 -2
  45. package/dist/test/outputDifference.d.ts.map +0 -1
  46. package/dist/test/outputDifference.js +0 -86
package/CHANGELOG.md CHANGED
@@ -3,6 +3,20 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [9.10.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/abstract-utxo@9.9.0...@bitgo/abstract-utxo@9.10.0) (2025-01-03)
7
+
8
+ ### Features
9
+
10
+ - **abstract-utxo:** sign descriptors when creating wallet ([079d9b9](https://github.com/BitGo/BitGoJS/commit/079d9b91281ee05b1140aaf8fbf0758627820bba))
11
+
12
+ # [9.9.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/abstract-utxo@9.8.0...@bitgo/abstract-utxo@9.9.0) (2024-12-24)
13
+
14
+ ### Features
15
+
16
+ - **abstract-utxo:** add support for 'max' value parse.ts ([e664c26](https://github.com/BitGo/BitGoJS/commit/e664c267a2f35f9dcc5d62cbd3386be5943748e9))
17
+ - **abstract-utxo:** allow 'max' value in ExpectedOutput ([470767a](https://github.com/BitGo/BitGoJS/commit/470767ab3e4df7946d12f354dee12906566bc7d4))
18
+ - use descriptor outputDifference method ([663944a](https://github.com/BitGo/BitGoJS/commit/663944af14072b988d80cc69d85d257438f8846b))
19
+
6
20
  # [9.8.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/abstract-utxo@9.7.0...@bitgo/abstract-utxo@9.8.0) (2024-12-19)
7
21
 
8
22
  ### Bug Fixes
@@ -1,7 +1,13 @@
1
1
  import * as t from 'io-ts';
2
- export declare const NamedDescriptor: t.TypeC<{
2
+ import { Descriptor } from '@bitgo/wasm-miniscript';
3
+ import { BIP32Interface } from '@bitgo/utxo-lib';
4
+ export declare const NamedDescriptor: t.IntersectionC<[t.TypeC<{
3
5
  name: t.StringC;
4
6
  value: t.StringC;
5
- }>;
7
+ }>, t.PartialC<{
8
+ signatures: t.UnionC<[t.ArrayC<t.StringC>, t.UndefinedC]>;
9
+ }>]>;
6
10
  export type NamedDescriptor = t.TypeOf<typeof NamedDescriptor>;
11
+ export declare function createNamedDescriptorWithSignature(name: string, descriptor: Descriptor, signingKey: BIP32Interface): NamedDescriptor;
12
+ export declare function assertHasValidSignature(namedDescriptor: NamedDescriptor, key: BIP32Interface): void;
7
13
  //# sourceMappingURL=NamedDescriptor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NamedDescriptor.d.ts","sourceRoot":"","sources":["../../../src/descriptor/NamedDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAE3B,eAAO,MAAM,eAAe;;;EAG1B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"NamedDescriptor.d.ts","sourceRoot":"","sources":["../../../src/descriptor/NamedDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAY,MAAM,iBAAiB,CAAC;AAG3D,eAAO,MAAM,eAAe;;;;;IAW3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAE/D,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,cAAc,GACzB,eAAe,CAIjB;AAED,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAUnG"}
@@ -34,9 +34,34 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.NamedDescriptor = void 0;
37
+ exports.createNamedDescriptorWithSignature = createNamedDescriptorWithSignature;
38
+ exports.assertHasValidSignature = assertHasValidSignature;
37
39
  const t = __importStar(require("io-ts"));
38
- exports.NamedDescriptor = t.type({
39
- name: t.string,
40
- value: t.string,
41
- });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmFtZWREZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvTmFtZWREZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUEyQjtBQUVkLFFBQUEsZUFBZSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ2QsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNO0NBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuXG5leHBvcnQgY29uc3QgTmFtZWREZXNjcmlwdG9yID0gdC50eXBlKHtcbiAgbmFtZTogdC5zdHJpbmcsXG4gIHZhbHVlOiB0LnN0cmluZyxcbn0pO1xuXG5leHBvcnQgdHlwZSBOYW1lZERlc2NyaXB0b3IgPSB0LlR5cGVPZjx0eXBlb2YgTmFtZWREZXNjcmlwdG9yPjtcbiJdfQ==
40
+ const utxo_lib_1 = require("@bitgo/utxo-lib");
41
+ const sdk_core_1 = require("@bitgo/sdk-core");
42
+ exports.NamedDescriptor = t.intersection([
43
+ t.type({
44
+ name: t.string,
45
+ value: t.string,
46
+ }),
47
+ t.partial({
48
+ signatures: t.union([t.array(t.string), t.undefined]),
49
+ }),
50
+ ], 'NamedDescriptor');
51
+ function createNamedDescriptorWithSignature(name, descriptor, signingKey) {
52
+ const value = descriptor.toString();
53
+ const signature = (0, sdk_core_1.signMessage)(value, signingKey, utxo_lib_1.networks.bitcoin).toString('hex');
54
+ return { name, value, signatures: [signature] };
55
+ }
56
+ function assertHasValidSignature(namedDescriptor, key) {
57
+ if (namedDescriptor.signatures === undefined) {
58
+ throw new Error(`Descriptor ${namedDescriptor.name} does not have a signature`);
59
+ }
60
+ const isValid = namedDescriptor.signatures.some((signature) => {
61
+ return (0, sdk_core_1.verifyMessage)(namedDescriptor.value, key, Buffer.from(signature, 'hex'), utxo_lib_1.networks.bitcoin);
62
+ });
63
+ if (!isValid) {
64
+ throw new Error(`Descriptor ${namedDescriptor.name} does not have a valid signature (key=${key.toBase58()})`);
65
+ }
66
+ }
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmFtZWREZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvTmFtZWREZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQSxnRkFRQztBQUVELDBEQVVDO0FBeENELHlDQUEyQjtBQUUzQiw4Q0FBMkQ7QUFDM0QsOENBQTZEO0FBRWhELFFBQUEsZUFBZSxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQzNDO0lBQ0UsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNMLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNkLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTTtLQUNoQixDQUFDO0lBQ0YsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNSLFVBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQ3RELENBQUM7Q0FDSCxFQUNELGlCQUFpQixDQUNsQixDQUFDO0FBSUYsU0FBZ0Isa0NBQWtDLENBQ2hELElBQVksRUFDWixVQUFzQixFQUN0QixVQUEwQjtJQUUxQixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBQSxzQkFBVyxFQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsbUJBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkYsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztBQUNsRCxDQUFDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsZUFBZ0MsRUFBRSxHQUFtQjtJQUMzRixJQUFJLGVBQWUsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxjQUFjLGVBQWUsQ0FBQyxJQUFJLDRCQUE0QixDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7UUFDNUQsT0FBTyxJQUFBLHdCQUFhLEVBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsbUJBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRyxDQUFDLENBQUMsQ0FBQztJQUNILElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxlQUFlLENBQUMsSUFBSSx5Q0FBeUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNoSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuaW1wb3J0IHsgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuaW1wb3J0IHsgQklQMzJJbnRlcmZhY2UsIG5ldHdvcmtzIH0gZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IHNpZ25NZXNzYWdlLCB2ZXJpZnlNZXNzYWdlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuZXhwb3J0IGNvbnN0IE5hbWVkRGVzY3JpcHRvciA9IHQuaW50ZXJzZWN0aW9uKFxuICBbXG4gICAgdC50eXBlKHtcbiAgICAgIG5hbWU6IHQuc3RyaW5nLFxuICAgICAgdmFsdWU6IHQuc3RyaW5nLFxuICAgIH0pLFxuICAgIHQucGFydGlhbCh7XG4gICAgICBzaWduYXR1cmVzOiB0LnVuaW9uKFt0LmFycmF5KHQuc3RyaW5nKSwgdC51bmRlZmluZWRdKSxcbiAgICB9KSxcbiAgXSxcbiAgJ05hbWVkRGVzY3JpcHRvcidcbik7XG5cbmV4cG9ydCB0eXBlIE5hbWVkRGVzY3JpcHRvciA9IHQuVHlwZU9mPHR5cGVvZiBOYW1lZERlc2NyaXB0b3I+O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTmFtZWREZXNjcmlwdG9yV2l0aFNpZ25hdHVyZShcbiAgbmFtZTogc3RyaW5nLFxuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLFxuICBzaWduaW5nS2V5OiBCSVAzMkludGVyZmFjZVxuKTogTmFtZWREZXNjcmlwdG9yIHtcbiAgY29uc3QgdmFsdWUgPSBkZXNjcmlwdG9yLnRvU3RyaW5nKCk7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IHNpZ25NZXNzYWdlKHZhbHVlLCBzaWduaW5nS2V5LCBuZXR3b3Jrcy5iaXRjb2luKS50b1N0cmluZygnaGV4Jyk7XG4gIHJldHVybiB7IG5hbWUsIHZhbHVlLCBzaWduYXR1cmVzOiBbc2lnbmF0dXJlXSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0SGFzVmFsaWRTaWduYXR1cmUobmFtZWREZXNjcmlwdG9yOiBOYW1lZERlc2NyaXB0b3IsIGtleTogQklQMzJJbnRlcmZhY2UpOiB2b2lkIHtcbiAgaWYgKG5hbWVkRGVzY3JpcHRvci5zaWduYXR1cmVzID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYERlc2NyaXB0b3IgJHtuYW1lZERlc2NyaXB0b3IubmFtZX0gZG9lcyBub3QgaGF2ZSBhIHNpZ25hdHVyZWApO1xuICB9XG4gIGNvbnN0IGlzVmFsaWQgPSBuYW1lZERlc2NyaXB0b3Iuc2lnbmF0dXJlcy5zb21lKChzaWduYXR1cmUpID0+IHtcbiAgICByZXR1cm4gdmVyaWZ5TWVzc2FnZShuYW1lZERlc2NyaXB0b3IudmFsdWUsIGtleSwgQnVmZmVyLmZyb20oc2lnbmF0dXJlLCAnaGV4JyksIG5ldHdvcmtzLmJpdGNvaW4pO1xuICB9KTtcbiAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBEZXNjcmlwdG9yICR7bmFtZWREZXNjcmlwdG9yLm5hbWV9IGRvZXMgbm90IGhhdmUgYSB2YWxpZCBzaWduYXR1cmUgKGtleT0ke2tleS50b0Jhc2U1OCgpfSlgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,20 @@
1
+ import { BitGoAPI } from '@bitgo/sdk-api';
2
+ import { AbstractUtxoCoin } from '../../abstractUtxoCoin';
3
+ import { IDescriptorWallet } from '../descriptorWallet';
4
+ import { NamedDescriptor } from '../NamedDescriptor';
5
+ import { DescriptorFromKeys } from './createDescriptors';
6
+ export declare function createDescriptorWallet(bitgo: BitGoAPI, coin: AbstractUtxoCoin, { descriptors, ...params }: {
7
+ type: 'hot';
8
+ label: string;
9
+ enterprise: string;
10
+ keys: string[];
11
+ descriptors: NamedDescriptor[];
12
+ }): Promise<IDescriptorWallet>;
13
+ export declare function createDescriptorWalletWithWalletPassphrase(bitgo: BitGoAPI, coin: AbstractUtxoCoin, { enterprise, walletPassphrase, descriptorsFromKeys, ...params }: {
14
+ label: string;
15
+ enterprise: string;
16
+ walletPassphrase: string;
17
+ descriptorsFromKeys: DescriptorFromKeys;
18
+ [key: string]: unknown;
19
+ }): Promise<IDescriptorWallet>;
20
+ //# sourceMappingURL=createDescriptorWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDescriptorWallet.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/createWallet/createDescriptorWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,gBAAgB,EACtB,EACE,WAAW,EACX,GAAG,MAAM,EACV,EAAE;IACD,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC,GACA,OAAO,CAAC,iBAAiB,CAAC,CAW5B;AAED,wBAAsB,0CAA0C,CAC9D,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,gBAAgB,EACtB,EACE,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,GAAG,MAAM,EACV,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,kBAAkB,CAAC;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,GACA,OAAO,CAAC,iBAAiB,CAAC,CAqB5B"}
@@ -0,0 +1,74 @@
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.createDescriptorWallet = createDescriptorWallet;
37
+ exports.createDescriptorWalletWithWalletPassphrase = createDescriptorWalletWithWalletPassphrase;
38
+ const utxolib = __importStar(require("@bitgo/utxo-lib"));
39
+ const sdk_core_1 = require("@bitgo/sdk-core");
40
+ async function createDescriptorWallet(bitgo, coin, { descriptors, ...params }) {
41
+ // We don't use `coin.wallets().add` here because it does a bunch of validation that does not make sense
42
+ // for descriptor wallets.
43
+ const newWallet = await bitgo
44
+ .post(coin.url('/wallet/add'))
45
+ .send({
46
+ ...params,
47
+ coinSpecific: { descriptors },
48
+ })
49
+ .result();
50
+ return new sdk_core_1.Wallet(bitgo, coin, newWallet);
51
+ }
52
+ async function createDescriptorWalletWithWalletPassphrase(bitgo, coin, { enterprise, walletPassphrase, descriptorsFromKeys, ...params }) {
53
+ const userKeychain = await coin.keychains().createUserKeychain(walletPassphrase);
54
+ const backupKeychain = await coin.keychains().createBackup();
55
+ const bitgoKeychain = await coin.keychains().createBitGo({ enterprise });
56
+ if (!userKeychain.prv) {
57
+ throw new Error('Missing private key');
58
+ }
59
+ const userKey = utxolib.bip32.fromBase58(userKeychain.prv);
60
+ const cosigners = [backupKeychain, bitgoKeychain].map((keychain) => {
61
+ if (!keychain.pub) {
62
+ throw new Error('Missing public key');
63
+ }
64
+ return utxolib.bip32.fromBase58(keychain.pub);
65
+ });
66
+ return createDescriptorWallet(bitgo, coin, {
67
+ ...params,
68
+ type: 'hot',
69
+ enterprise,
70
+ keys: [userKeychain.id, backupKeychain.id, bitgoKeychain.id],
71
+ descriptors: descriptorsFromKeys(userKey, cosigners),
72
+ });
73
+ }
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlRGVzY3JpcHRvcldhbGxldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL2NyZWF0ZVdhbGxldC9jcmVhdGVEZXNjcmlwdG9yV2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVUEsd0RBd0JDO0FBRUQsZ0dBb0NDO0FBdkVELHlEQUEyQztBQUMzQyw4Q0FBeUM7QUFRbEMsS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxLQUFlLEVBQ2YsSUFBc0IsRUFDdEIsRUFDRSxXQUFXLEVBQ1gsR0FBRyxNQUFNLEVBT1Y7SUFFRCx3R0FBd0c7SUFDeEcsMEJBQTBCO0lBQzFCLE1BQU0sU0FBUyxHQUFHLE1BQU0sS0FBSztTQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUM3QixJQUFJLENBQUM7UUFDSixHQUFHLE1BQU07UUFDVCxZQUFZLEVBQUUsRUFBRSxXQUFXLEVBQUU7S0FDOUIsQ0FBQztTQUNELE1BQU0sRUFBRSxDQUFDO0lBQ1osT0FBTyxJQUFJLGlCQUFNLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLENBQXNCLENBQUM7QUFDakUsQ0FBQztBQUVNLEtBQUssVUFBVSwwQ0FBMEMsQ0FDOUQsS0FBZSxFQUNmLElBQXNCLEVBQ3RCLEVBQ0UsVUFBVSxFQUNWLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsR0FBRyxNQUFNLEVBT1Y7SUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2pGLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdELE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDekUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzRCxNQUFNLFNBQVMsR0FBRyxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUNqRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLHNCQUFzQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUU7UUFDekMsR0FBRyxNQUFNO1FBQ1QsSUFBSSxFQUFFLEtBQUs7UUFDWCxVQUFVO1FBQ1YsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDNUQsV0FBVyxFQUFFLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUM7S0FDckQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvL3Nkay1hcGknO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgV2FsbGV0IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgSURlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICcuLi9kZXNjcmlwdG9yV2FsbGV0JztcbmltcG9ydCB7IE5hbWVkRGVzY3JpcHRvciB9IGZyb20gJy4uL05hbWVkRGVzY3JpcHRvcic7XG5cbmltcG9ydCB7IERlc2NyaXB0b3JGcm9tS2V5cyB9IGZyb20gJy4vY3JlYXRlRGVzY3JpcHRvcnMnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlRGVzY3JpcHRvcldhbGxldChcbiAgYml0Z286IEJpdEdvQVBJLFxuICBjb2luOiBBYnN0cmFjdFV0eG9Db2luLFxuICB7XG4gICAgZGVzY3JpcHRvcnMsXG4gICAgLi4ucGFyYW1zXG4gIH06IHtcbiAgICB0eXBlOiAnaG90JztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGVudGVycHJpc2U6IHN0cmluZztcbiAgICBrZXlzOiBzdHJpbmdbXTtcbiAgICBkZXNjcmlwdG9yczogTmFtZWREZXNjcmlwdG9yW107XG4gIH1cbik6IFByb21pc2U8SURlc2NyaXB0b3JXYWxsZXQ+IHtcbiAgLy8gV2UgZG9uJ3QgdXNlIGBjb2luLndhbGxldHMoKS5hZGRgIGhlcmUgYmVjYXVzZSBpdCBkb2VzIGEgYnVuY2ggb2YgdmFsaWRhdGlvbiB0aGF0IGRvZXMgbm90IG1ha2Ugc2Vuc2VcbiAgLy8gZm9yIGRlc2NyaXB0b3Igd2FsbGV0cy5cbiAgY29uc3QgbmV3V2FsbGV0ID0gYXdhaXQgYml0Z29cbiAgICAucG9zdChjb2luLnVybCgnL3dhbGxldC9hZGQnKSlcbiAgICAuc2VuZCh7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBjb2luU3BlY2lmaWM6IHsgZGVzY3JpcHRvcnMgfSxcbiAgICB9KVxuICAgIC5yZXN1bHQoKTtcbiAgcmV0dXJuIG5ldyBXYWxsZXQoYml0Z28sIGNvaW4sIG5ld1dhbGxldCkgYXMgSURlc2NyaXB0b3JXYWxsZXQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVEZXNjcmlwdG9yV2FsbGV0V2l0aFdhbGxldFBhc3NwaHJhc2UoXG4gIGJpdGdvOiBCaXRHb0FQSSxcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAge1xuICAgIGVudGVycHJpc2UsXG4gICAgd2FsbGV0UGFzc3BocmFzZSxcbiAgICBkZXNjcmlwdG9yc0Zyb21LZXlzLFxuICAgIC4uLnBhcmFtc1xuICB9OiB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBlbnRlcnByaXNlOiBzdHJpbmc7XG4gICAgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0b3JzRnJvbUtleXM6IERlc2NyaXB0b3JGcm9tS2V5cztcbiAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICB9XG4pOiBQcm9taXNlPElEZXNjcmlwdG9yV2FsbGV0PiB7XG4gIGNvbnN0IHVzZXJLZXljaGFpbiA9IGF3YWl0IGNvaW4ua2V5Y2hhaW5zKCkuY3JlYXRlVXNlcktleWNoYWluKHdhbGxldFBhc3NwaHJhc2UpO1xuICBjb25zdCBiYWNrdXBLZXljaGFpbiA9IGF3YWl0IGNvaW4ua2V5Y2hhaW5zKCkuY3JlYXRlQmFja3VwKCk7XG4gIGNvbnN0IGJpdGdvS2V5Y2hhaW4gPSBhd2FpdCBjb2luLmtleWNoYWlucygpLmNyZWF0ZUJpdEdvKHsgZW50ZXJwcmlzZSB9KTtcbiAgaWYgKCF1c2VyS2V5Y2hhaW4ucHJ2KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gIH1cbiAgY29uc3QgdXNlcktleSA9IHV0eG9saWIuYmlwMzIuZnJvbUJhc2U1OCh1c2VyS2V5Y2hhaW4ucHJ2KTtcbiAgY29uc3QgY29zaWduZXJzID0gW2JhY2t1cEtleWNoYWluLCBiaXRnb0tleWNoYWluXS5tYXAoKGtleWNoYWluKSA9PiB7XG4gICAgaWYgKCFrZXljaGFpbi5wdWIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBwdWJsaWMga2V5Jyk7XG4gICAgfVxuICAgIHJldHVybiB1dHhvbGliLmJpcDMyLmZyb21CYXNlNTgoa2V5Y2hhaW4ucHViKTtcbiAgfSk7XG4gIHJldHVybiBjcmVhdGVEZXNjcmlwdG9yV2FsbGV0KGJpdGdvLCBjb2luLCB7XG4gICAgLi4ucGFyYW1zLFxuICAgIHR5cGU6ICdob3QnLFxuICAgIGVudGVycHJpc2UsXG4gICAga2V5czogW3VzZXJLZXljaGFpbi5pZCwgYmFja3VwS2V5Y2hhaW4uaWQsIGJpdGdvS2V5Y2hhaW4uaWRdLFxuICAgIGRlc2NyaXB0b3JzOiBkZXNjcmlwdG9yc0Zyb21LZXlzKHVzZXJLZXksIGNvc2lnbmVycyksXG4gIH0pO1xufVxuIl19
@@ -0,0 +1,12 @@
1
+ import { BIP32Interface } from '@bitgo/utxo-lib';
2
+ import { NamedDescriptor } from '../NamedDescriptor';
3
+ export type DescriptorFromKeys = (userKey: BIP32Interface, cosigners: BIP32Interface[]) => NamedDescriptor[];
4
+ /**
5
+ * Create a pair of external and internal descriptors for a 2-of-3 multisig wallet.
6
+ *
7
+ * @param userKey
8
+ * @param cosigners
9
+ * @constructor
10
+ */
11
+ export declare const DefaultWsh2Of3: DescriptorFromKeys;
12
+ //# sourceMappingURL=createDescriptors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDescriptors.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/createWallet/createDescriptors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAsC,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGzF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,CAAC;AA8B7G;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,kBACiF,CAAC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultWsh2Of3 = void 0;
4
+ const NamedDescriptor_1 = require("../NamedDescriptor");
5
+ const builder_1 = require("../builder");
6
+ /**
7
+ * Create a pair of external and internal descriptors for a 2-of-3 multisig wallet.
8
+ * Overrides the path of the builder to use the external and internal derivation paths (0/* and 1/*).
9
+ *
10
+ * @param builder
11
+ * @param userKey
12
+ */
13
+ function createExternalInternalPair(builder, userKey) {
14
+ if (userKey.isNeutered()) {
15
+ throw new Error('User key must be private');
16
+ }
17
+ return [
18
+ (0, NamedDescriptor_1.createNamedDescriptorWithSignature)(builder.name + '/external', (0, builder_1.getDescriptorFromBuilder)({ ...builder, path: '0/*' }), userKey),
19
+ (0, NamedDescriptor_1.createNamedDescriptorWithSignature)(builder.name + '/internal', (0, builder_1.getDescriptorFromBuilder)({ ...builder, path: '1/*' }), userKey),
20
+ ];
21
+ }
22
+ /**
23
+ * Create a pair of external and internal descriptors for a 2-of-3 multisig wallet.
24
+ *
25
+ * @param userKey
26
+ * @param cosigners
27
+ * @constructor
28
+ */
29
+ const DefaultWsh2Of3 = (userKey, cosigners) => createExternalInternalPair({ name: 'Wsh2Of3', keys: [userKey.neutered(), ...cosigners], path: '' }, userKey);
30
+ exports.DefaultWsh2Of3 = DefaultWsh2Of3;
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlRGVzY3JpcHRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9jcmVhdGVXYWxsZXQvY3JlYXRlRGVzY3JpcHRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsd0RBQXlGO0FBQ3pGLHdDQUF5RTtBQUl6RTs7Ozs7O0dBTUc7QUFDSCxTQUFTLDBCQUEwQixDQUNqQyxPQUEwQixFQUMxQixPQUF1QjtJQUV2QixJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUEsb0RBQWtDLEVBQ2hDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsV0FBVyxFQUMxQixJQUFBLGtDQUF3QixFQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQ3JELE9BQU8sQ0FDUjtRQUNELElBQUEsb0RBQWtDLEVBQ2hDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsV0FBVyxFQUMxQixJQUFBLGtDQUF3QixFQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQ3JELE9BQU8sQ0FDUjtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0ksTUFBTSxjQUFjLEdBQXVCLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQ3ZFLDBCQUEwQixDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFEbEcsUUFBQSxjQUFjLGtCQUNvRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgY3JlYXRlTmFtZWREZXNjcmlwdG9yV2l0aFNpZ25hdHVyZSwgTmFtZWREZXNjcmlwdG9yIH0gZnJvbSAnLi4vTmFtZWREZXNjcmlwdG9yJztcbmltcG9ydCB7IGdldERlc2NyaXB0b3JGcm9tQnVpbGRlciwgRGVzY3JpcHRvckJ1aWxkZXIgfSBmcm9tICcuLi9idWlsZGVyJztcblxuZXhwb3J0IHR5cGUgRGVzY3JpcHRvckZyb21LZXlzID0gKHVzZXJLZXk6IEJJUDMySW50ZXJmYWNlLCBjb3NpZ25lcnM6IEJJUDMySW50ZXJmYWNlW10pID0+IE5hbWVkRGVzY3JpcHRvcltdO1xuXG4vKipcbiAqIENyZWF0ZSBhIHBhaXIgb2YgZXh0ZXJuYWwgYW5kIGludGVybmFsIGRlc2NyaXB0b3JzIGZvciBhIDItb2YtMyBtdWx0aXNpZyB3YWxsZXQuXG4gKiBPdmVycmlkZXMgdGhlIHBhdGggb2YgdGhlIGJ1aWxkZXIgdG8gdXNlIHRoZSBleHRlcm5hbCBhbmQgaW50ZXJuYWwgZGVyaXZhdGlvbiBwYXRocyAoMC8qIGFuZCAxLyopLlxuICpcbiAqIEBwYXJhbSBidWlsZGVyXG4gKiBAcGFyYW0gdXNlcktleVxuICovXG5mdW5jdGlvbiBjcmVhdGVFeHRlcm5hbEludGVybmFsUGFpcihcbiAgYnVpbGRlcjogRGVzY3JpcHRvckJ1aWxkZXIsXG4gIHVzZXJLZXk6IEJJUDMySW50ZXJmYWNlXG4pOiBbTmFtZWREZXNjcmlwdG9yLCBOYW1lZERlc2NyaXB0b3JdIHtcbiAgaWYgKHVzZXJLZXkuaXNOZXV0ZXJlZCgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVc2VyIGtleSBtdXN0IGJlIHByaXZhdGUnKTtcbiAgfVxuICByZXR1cm4gW1xuICAgIGNyZWF0ZU5hbWVkRGVzY3JpcHRvcldpdGhTaWduYXR1cmUoXG4gICAgICBidWlsZGVyLm5hbWUgKyAnL2V4dGVybmFsJyxcbiAgICAgIGdldERlc2NyaXB0b3JGcm9tQnVpbGRlcih7IC4uLmJ1aWxkZXIsIHBhdGg6ICcwLyonIH0pLFxuICAgICAgdXNlcktleVxuICAgICksXG4gICAgY3JlYXRlTmFtZWREZXNjcmlwdG9yV2l0aFNpZ25hdHVyZShcbiAgICAgIGJ1aWxkZXIubmFtZSArICcvaW50ZXJuYWwnLFxuICAgICAgZ2V0RGVzY3JpcHRvckZyb21CdWlsZGVyKHsgLi4uYnVpbGRlciwgcGF0aDogJzEvKicgfSksXG4gICAgICB1c2VyS2V5XG4gICAgKSxcbiAgXTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBwYWlyIG9mIGV4dGVybmFsIGFuZCBpbnRlcm5hbCBkZXNjcmlwdG9ycyBmb3IgYSAyLW9mLTMgbXVsdGlzaWcgd2FsbGV0LlxuICpcbiAqIEBwYXJhbSB1c2VyS2V5XG4gKiBAcGFyYW0gY29zaWduZXJzXG4gKiBAY29uc3RydWN0b3JcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRXc2gyT2YzOiBEZXNjcmlwdG9yRnJvbUtleXMgPSAodXNlcktleSwgY29zaWduZXJzKSA9PlxuICBjcmVhdGVFeHRlcm5hbEludGVybmFsUGFpcih7IG5hbWU6ICdXc2gyT2YzJywga2V5czogW3VzZXJLZXkubmV1dGVyZWQoKSwgLi4uY29zaWduZXJzXSwgcGF0aDogJycgfSwgdXNlcktleSk7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './createDescriptors';
2
+ export * from './createDescriptorWallet';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/createWallet/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,19 @@
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("./createDescriptors"), exports);
18
+ __exportStar(require("./createDescriptorWallet"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9jcmVhdGVXYWxsZXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNEQUFvQztBQUNwQywyREFBeUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NyZWF0ZURlc2NyaXB0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlRGVzY3JpcHRvcldhbGxldCc7XG4iXX0=
@@ -3,4 +3,5 @@ export { assertDescriptorWalletAddress } from './assertDescriptorWalletAddress';
3
3
  export { NamedDescriptor } from './NamedDescriptor';
4
4
  export { isDescriptorWallet, getDescriptorMapFromWallet } from './descriptorWallet';
5
5
  export { getPolicyForEnv } from './validatePolicy';
6
+ export * as createWallet from './createWallet';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/descriptor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/descriptor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC"}
@@ -1,6 +1,39 @@
1
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
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPolicyForEnv = exports.getDescriptorMapFromWallet = exports.isDescriptorWallet = exports.NamedDescriptor = exports.assertDescriptorWalletAddress = exports.Descriptor = exports.Miniscript = void 0;
36
+ exports.createWallet = exports.getPolicyForEnv = exports.getDescriptorMapFromWallet = exports.isDescriptorWallet = exports.NamedDescriptor = exports.assertDescriptorWalletAddress = exports.Descriptor = exports.Miniscript = void 0;
4
37
  var wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
5
38
  Object.defineProperty(exports, "Miniscript", { enumerable: true, get: function () { return wasm_miniscript_1.Miniscript; } });
6
39
  Object.defineProperty(exports, "Descriptor", { enumerable: true, get: function () { return wasm_miniscript_1.Descriptor; } });
@@ -13,4 +46,5 @@ Object.defineProperty(exports, "isDescriptorWallet", { enumerable: true, get: fu
13
46
  Object.defineProperty(exports, "getDescriptorMapFromWallet", { enumerable: true, get: function () { return descriptorWallet_1.getDescriptorMapFromWallet; } });
14
47
  var validatePolicy_1 = require("./validatePolicy");
15
48
  Object.defineProperty(exports, "getPolicyForEnv", { enumerable: true, get: function () { return validatePolicy_1.getPolicyForEnv; } });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwREFBZ0U7QUFBdkQsNkdBQUEsVUFBVSxPQUFBO0FBQUUsNkdBQUEsVUFBVSxPQUFBO0FBQy9CLGlGQUFnRjtBQUF2RSw4SUFBQSw2QkFBNkIsT0FBQTtBQUN0QyxxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLHVEQUFvRjtBQUEzRSxzSEFBQSxrQkFBa0IsT0FBQTtBQUFFLDhIQUFBLDBCQUEwQixPQUFBO0FBQ3ZELG1EQUFtRDtBQUExQyxpSEFBQSxlQUFlLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBNaW5pc2NyaXB0LCBEZXNjcmlwdG9yIH0gZnJvbSAnQGJpdGdvL3dhc20tbWluaXNjcmlwdCc7XG5leHBvcnQgeyBhc3NlcnREZXNjcmlwdG9yV2FsbGV0QWRkcmVzcyB9IGZyb20gJy4vYXNzZXJ0RGVzY3JpcHRvcldhbGxldEFkZHJlc3MnO1xuZXhwb3J0IHsgTmFtZWREZXNjcmlwdG9yIH0gZnJvbSAnLi9OYW1lZERlc2NyaXB0b3InO1xuZXhwb3J0IHsgaXNEZXNjcmlwdG9yV2FsbGV0LCBnZXREZXNjcmlwdG9yTWFwRnJvbVdhbGxldCB9IGZyb20gJy4vZGVzY3JpcHRvcldhbGxldCc7XG5leHBvcnQgeyBnZXRQb2xpY3lGb3JFbnYgfSBmcm9tICcuL3ZhbGlkYXRlUG9saWN5JztcbiJdfQ==
49
+ exports.createWallet = __importStar(require("./createWallet"));
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwREFBZ0U7QUFBdkQsNkdBQUEsVUFBVSxPQUFBO0FBQUUsNkdBQUEsVUFBVSxPQUFBO0FBQy9CLGlGQUFnRjtBQUF2RSw4SUFBQSw2QkFBNkIsT0FBQTtBQUN0QyxxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLHVEQUFvRjtBQUEzRSxzSEFBQSxrQkFBa0IsT0FBQTtBQUFFLDhIQUFBLDBCQUEwQixPQUFBO0FBQ3ZELG1EQUFtRDtBQUExQyxpSEFBQSxlQUFlLE9BQUE7QUFDeEIsK0RBQStDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTWluaXNjcmlwdCwgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuZXhwb3J0IHsgYXNzZXJ0RGVzY3JpcHRvcldhbGxldEFkZHJlc3MgfSBmcm9tICcuL2Fzc2VydERlc2NyaXB0b3JXYWxsZXRBZGRyZXNzJztcbmV4cG9ydCB7IE5hbWVkRGVzY3JpcHRvciB9IGZyb20gJy4vTmFtZWREZXNjcmlwdG9yJztcbmV4cG9ydCB7IGlzRGVzY3JpcHRvcldhbGxldCwgZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQgfSBmcm9tICcuL2Rlc2NyaXB0b3JXYWxsZXQnO1xuZXhwb3J0IHsgZ2V0UG9saWN5Rm9yRW52IH0gZnJvbSAnLi92YWxpZGF0ZVBvbGljeSc7XG5leHBvcnQgKiBhcyBjcmVhdGVXYWxsZXQgZnJvbSAnLi9jcmVhdGVXYWxsZXQnO1xuIl19
@@ -3,8 +3,12 @@ import { ITransactionRecipient } from '@bitgo/sdk-core';
3
3
  import { AbstractUtxoCoin, BaseOutput, BaseParsedTransaction, BaseParsedTransactionOutputs, ParseTransactionOptions } from '../../abstractUtxoCoin';
4
4
  import { IDescriptorWallet } from '../../descriptor/descriptorWallet';
5
5
  import * as coreDescriptors from '../../core/descriptor';
6
- export type ParsedOutputsBigInt = BaseParsedTransactionOutputs<bigint, BaseOutput<bigint>>;
6
+ import { ParsedOutput } from '../../core/descriptor/psbt/parse';
7
+ export type RecipientOutput = Omit<ParsedOutput, 'value'> & {
8
+ value: bigint | 'max';
9
+ };
10
+ export type ParsedOutputsBigInt = BaseParsedTransactionOutputs<bigint, BaseOutput<bigint | 'max'>>;
7
11
  export declare function toBaseParsedTransactionOutputsFromPsbt(psbt: utxolib.bitgo.UtxoPsbt, descriptorMap: coreDescriptors.DescriptorMap, recipients: ITransactionRecipient[], network: utxolib.Network): ParsedOutputsBigInt;
8
- export type ParsedDescriptorTransaction<TAmount extends number | bigint> = BaseParsedTransaction<TAmount, BaseOutput<TAmount>>;
12
+ export type ParsedDescriptorTransaction<TAmount extends number | bigint> = BaseParsedTransaction<TAmount, BaseOutput<TAmount | 'max'>>;
9
13
  export declare function parse(coin: AbstractUtxoCoin, wallet: IDescriptorWallet, params: ParseTransactionOptions<number | bigint>): ParsedDescriptorTransaction<bigint>;
10
14
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/transaction/descriptor/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAC;AAiDzD,MAAM,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAiB3F,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,aAAa,EAAE,eAAe,CAAC,aAAa,EAC5C,UAAU,EAAE,qBAAqB,EAAE,EACnC,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,mBAAmB,CASrB;AAED,MAAM,MAAM,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI,qBAAqB,CAC9F,OAAO,EACP,UAAU,CAAC,OAAO,CAAC,CACpB,CAAC;AAEF,wBAAgB,KAAK,CACnB,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,uBAAuB,CAAC,MAAM,GAAG,MAAM,CAAC,GAC/C,2BAA2B,CAAC,MAAM,CAAC,CA4BrC"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/transaction/descriptor/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAIhE,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;IAC1D,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;CACvB,CAAC;AAmDF,MAAM,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;AAiBnG,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,aAAa,EAAE,eAAe,CAAC,aAAa,EAC5C,UAAU,EAAE,qBAAqB,EAAE,EACnC,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,mBAAmB,CASrB;AAED,MAAM,MAAM,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI,qBAAqB,CAC9F,OAAO,EACP,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,CAC5B,CAAC;AAEF,wBAAgB,KAAK,CACnB,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,uBAAuB,CAAC,MAAM,GAAG,MAAM,CAAC,GAC/C,2BAA2B,CAAC,MAAM,CAAC,CA4BrC"}
@@ -40,11 +40,11 @@ const keychains_1 = require("../../keychains");
40
40
  const descriptor_1 = require("../../descriptor");
41
41
  const coreDescriptors = __importStar(require("../../core/descriptor"));
42
42
  const recipient_1 = require("../recipient");
43
- const outputDifference_1 = require("./outputDifference");
44
- function toParsedOutput(recipient, network) {
43
+ const outputDifference_1 = require("../outputDifference");
44
+ function toRecipientOutput(recipient, network) {
45
45
  return {
46
46
  address: recipient.address,
47
- value: BigInt(recipient.amount),
47
+ value: recipient.amount === 'max' ? 'max' : BigInt(recipient.amount),
48
48
  script: (0, recipient_1.fromExtendedAddressFormatToScript)(recipient.address, network),
49
49
  };
50
50
  }
@@ -65,7 +65,7 @@ function sumValues(arr) {
65
65
  function toBaseOutputs(outputs, network) {
66
66
  return outputs.map((o) => ({
67
67
  address: (0, recipient_1.toExtendedAddressFormat)(o.script, network),
68
- amount: BigInt(o.value),
68
+ amount: o.value === 'max' ? 'max' : BigInt(o.value),
69
69
  external: o.scriptId === undefined,
70
70
  }));
71
71
  }
@@ -81,7 +81,7 @@ function toBaseParsedTransactionOutputs({ outputs, changeOutputs, explicitExtern
81
81
  };
82
82
  }
83
83
  function toBaseParsedTransactionOutputsFromPsbt(psbt, descriptorMap, recipients, network) {
84
- return toBaseParsedTransactionOutputs(parseOutputsWithPsbt(psbt, descriptorMap, recipients.map((r) => toParsedOutput(r, psbt.network))), network);
84
+ return toBaseParsedTransactionOutputs(parseOutputsWithPsbt(psbt, descriptorMap, recipients.map((r) => toRecipientOutput(r, psbt.network))), network);
85
85
  }
86
86
  function parse(coin, wallet, params) {
87
87
  if (params.txParams.allowExternalChangeAddress) {
@@ -112,4 +112,4 @@ function parse(coin, wallet, params) {
112
112
  needsCustomChangeKeySignatureVerification: false,
113
113
  };
114
114
  }
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9wYXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQStFQSx3RkFjQztBQU9ELHNCQWdDQztBQXBJRCx5REFBMkM7QUFVM0MsK0NBQXNGO0FBQ3RGLGlEQUErRTtBQUUvRSx1RUFBeUQ7QUFFekQsNENBQTBGO0FBRTFGLHlEQUFpRztBQUVqRyxTQUFTLGNBQWMsQ0FBQyxTQUFnQyxFQUFFLE9BQXdCO0lBQ2hGLE9BQU87UUFDTCxPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87UUFDMUIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQy9CLE1BQU0sRUFBRSxJQUFBLDZDQUFpQyxFQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO0tBQ3RFLENBQUM7QUFDSixDQUFDO0FBT0QsU0FBUyxvQkFBb0IsQ0FDM0IsSUFBNEIsRUFDNUIsYUFBNEMsRUFDNUMsZ0JBQWdDO0lBRWhDLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEUsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDL0UsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDN0UsTUFBTSxXQUFXLEdBQUcsSUFBQSxnREFBNkIsRUFBQyxlQUFlLEVBQUUsZ0JBQWdCLENBQUMs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QUFNLElBQUksR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLElBQUksQ0FBQyxDQUFDLElBQUksWUFBWSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFBLHlCQUFhLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsTUFBTSxhQUFhLEdBQUcsSUFBQSx1Q0FBMEIsRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUEsNEJBQWUsRUFBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9HLE9BQU87UUFDTCxHQUFHLHNDQUFzQyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEYsU0FBUztRQUNULGFBQWEsRUFBRSxJQUFBLDRCQUFnQixFQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDN0MsWUFBWSxFQUFFLFNBQVM7UUFDdkIseUNBQXlDLEVBQUUsS0FBSztLQUNqRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IElUcmFuc2FjdGlvblJlY2lwaWVudCB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmltcG9ydCB7XG4gIEFic3RyYWN0VXR4b0NvaW4sXG4gIEJhc2VPdXRwdXQsXG4gIEJhc2VQYXJzZWRUcmFuc2FjdGlvbixcbiAgQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0cyxcbiAgUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMsXG59IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgZ2V0S2V5U2lnbmF0dXJlcywgdG9CaXAzMlRyaXBsZSwgVXR4b05hbWVkS2V5Y2hhaW5zIH0gZnJvbSAnLi4vLi4va2V5Y2hhaW5zJztcbmltcG9ydCB7IGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0LCBnZXRQb2xpY3lGb3JFbnYgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9yJztcbmltcG9ydCB7IElEZXNjcmlwdG9yV2FsbGV0IH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvci9kZXNjcmlwdG9yV2FsbGV0JztcbmltcG9ydCAqIGFzIGNvcmVEZXNjcmlwdG9ycyBmcm9tICcuLi8uLi9jb3JlL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgUGFyc2VkT3V0cHV0IH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yL3BzYnQvcGFyc2UnO1xuaW1wb3J0IHsgZnJvbUV4dGVuZGVkQWRkcmVzc0Zvcm1hdFRvU2NyaXB0LCB0b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdCB9IGZyb20gJy4uL3JlY2lwaWVudCc7XG5cbmltcG9ydCB7IG91dHB1dERpZmZlcmVuY2VzV2l0aEV4cGVjdGVkLCBPdXRwdXREaWZmZXJlbmNlV2l0aEV4cGVjdGVkIH0gZnJvbSAnLi9vdXRwdXREaWZmZXJlbmNlJztcblxuZnVuY3Rpb24gdG9QYXJzZWRPdXRwdXQocmVjaXBpZW50OiBJVHJhbnNhY3Rpb25SZWNpcGllbnQsIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IFBhcnNlZE91dHB1dCB7XG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogcmVjaXBpZW50LmFkZHJlc3MsXG4gICAgdmFsdWU6IEJpZ0ludChyZWNpcGllbnQuYW1vdW50KSxcbiAgICBzY3JpcHQ6IGZyb21FeHRlbmRlZEFkZHJlc3NGb3JtYXRUb1NjcmlwdChyZWNpcGllbnQuYWRkcmVzcywgbmV0d29yayksXG4gIH07XG59XG5cbnR5cGUgUGFyc2VkT3V0cHV0cyA9IE91dHB1dERpZmZlcmVuY2VXaXRoRXhwZWN0ZWQ8UGFyc2VkT3V0cHV0PiAmIHtcbiAgb3V0cHV0czogUGFyc2VkT3V0cHV0W107XG4gIGNoYW5nZU91dHB1dHM6IFBhcnNlZE91dHB1dFtdO1xufTtcblxuZnVuY3Rpb24gcGFyc2VPdXRwdXRzV2l0aFBzYnQoXG4gIHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsXG4gIGRlc2NyaXB0b3JNYXA6IGNvcmVEZXNjcmlwdG9ycy5EZXNjcmlwdG9yTWFwLFxuICByZWNpcGllbnRPdXRwdXRzOiBQYXJzZWRPdXRwdXRbXVxuKTogUGFyc2VkT3V0cHV0cyB7XG4gIGNvbnN0IHBhcnNlZCA9IGNvcmVEZXNjcmlwdG9ycy5wYXJzZShwc2J0LCBkZXNjcmlwdG9yTWFwLCBwc2J0Lm5ldHdvcmspO1xuICBjb25zdCBleHRlcm5hbE91dHB1dHMgPSBwYXJzZWQub3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCk7XG4gIGNvbnN0IGNoYW5nZU91dHB1dHMgPSBwYXJzZWQub3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uc2NyaXB0SWQgIT09IHVuZGVmaW5lZCk7XG4gIGNvbnN0IG91dHB1dERpZmZzID0gb3V0cHV0RGlmZmVyZW5jZXNXaXRoRXhwZWN0ZWQoZXh0ZXJuYWxPdXRwdXRzLCByZWNpcGllbnRPdXRwdXRzKTtcbiAgcmV0dXJuIHtcbiAgICBvdXRwdXRzOiBwYXJzZWQub3V0cHV0cyxcbiAgICBjaGFuZ2VPdXRwdXRzLFxuICAgIC4uLm91dHB1dERpZmZzLFxuICB9O1xufVxuXG5mdW5jdGlvbiBzdW1WYWx1ZXMoYXJyOiB7IHZhbHVlOiBiaWdpbnQgfVtdKTogYmlnaW50IHtcbiAgcmV0dXJuIGFyci5yZWR1Y2UoKHN1bSwgZSkgPT4gc3VtICsgZS52YWx1ZSwgQmlnSW50KDApKTtcbn1cblxuZnVuY3Rpb24gdG9CYXNlT3V0cHV0cyhvdXRwdXRzOiBQYXJzZWRPdXRwdXRbXSwgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrKTogQmFzZU91dHB1dDxiaWdpbnQ+W10ge1xuICByZXR1cm4gb3V0cHV0cy5tYXAoXG4gICAgKG8pOiBCYXNlT3V0cHV0PGJpZ2ludD4gPT4gKHtcbiAgICAgIGFkZHJlc3M6IHRvRXh0ZW5kZWRBZGRyZXNzRm9ybWF0KG8uc2NyaXB0LCBuZXR3b3JrKSxcbiAgICAgIGFtb3VudDogQmlnSW50KG8udmFsdWUpLFxuICAgICAgZXh0ZXJuYWw6IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCxcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgdHlwZSBQYXJzZWRPdXRwdXRzQmlnSW50ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0czxiaWdpbnQsIEJhc2VPdXRwdXQ8YmlnaW50Pj47XG5cbmZ1bmN0aW9uIHRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0cyhcbiAgeyBvdXRwdXRzLCBjaGFuZ2VPdXRwdXRzLCBleHBsaWNpdEV4dGVybmFsT3V0cHV0cywgaW1wbGljaXRFeHRlcm5hbE91dHB1dHMsIG1pc3NpbmdPdXRwdXRzIH06IFBhcnNlZE91dHB1dHMsXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29ya1xuKTogUGFyc2VkT3V0cHV0c0JpZ0ludCB7XG4gIHJldHVybiB7XG4gICAgb3V0cHV0czogdG9CYXNlT3V0cHV0cyhvdXRwdXRzLCBuZXR3b3JrKSxcbiAgICBjaGFuZ2VPdXRwdXRzOiB0b0Jhc2VPdXRwdXRzKGNoYW5nZU91dHB1dHMsIG5ldHdvcmspLFxuICAgIGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiB0b0Jhc2VPdXRwdXRzKGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzLCBuZXR3b3JrKSxcbiAgICBleHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IHN1bVZhbHVlcyhleHBsaWNpdEV4dGVybmFsT3V0cHV0cyksXG4gICAgaW1wbGljaXRFeHRlcm5hbE91dHB1dHM6IHRvQmFzZU91dHB1dHMoaW1wbGljaXRFeHRlcm5hbE91dHB1dHMsIG5ldHdvcmspLFxuICAgIGltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogc3VtVmFsdWVzKGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzKSxcbiAgICBtaXNzaW5nT3V0cHV0czogdG9CYXNlT3V0cHV0cyhtaXNzaW5nT3V0cHV0cywgbmV0d29yayksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0Jhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHNGcm9tUHNidChcbiAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgZGVzY3JpcHRvck1hcDogY29yZURlc2NyaXB0b3JzLkRlc2NyaXB0b3JNYXAsXG4gIHJlY2lwaWVudHM6IElUcmFuc2FjdGlvblJlY2lwaWVudFtdLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IFBhcnNlZE91dHB1dHNCaWdJbnQge1xuICByZXR1cm4gdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzKFxuICAgIHBhcnNlT3V0cHV0c1dpdGhQc2J0KFxuICAgICAgcHNidCxcbiAgICAgIGRlc2NyaXB0b3JNYXAsXG4gICAgICByZWNpcGllbnRzLm1hcCgocikgPT4gdG9QYXJzZWRPdXRwdXQociwgcHNidC5uZXR3b3JrKSlcbiAgICApLFxuICAgIG5ldHdvcmtcbiAgKTtcbn1cblxuZXhwb3J0IHR5cGUgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uPFRBbW91bnQgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFxuICBUQW1vdW50LFxuICBCYXNlT3V0cHV0PFRBbW91bnQ+XG4+O1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UoXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHdhbGxldDogSURlc2NyaXB0b3JXYWxsZXQsXG4gIHBhcmFtczogUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnM8bnVtYmVyIHwgYmlnaW50PlxuKTogUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uPGJpZ2ludD4ge1xuICBpZiAocGFyYW1zLnR4UGFyYW1zLmFsbG93RXh0ZXJuYWxDaGFuZ2VBZGRyZXNzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdhbGxvd0V4dGVybmFsQ2hhbmdlQWRkcmVzcyBpcyBub3Qgc3VwcG9ydGVkIGZvciBkZXNjcmlwdG9yIHdhbGxldHMnKTtcbiAgfVxuICBpZiAocGFyYW1zLnR4UGFyYW1zLmNoYW5nZUFkZHJlc3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NoYW5nZUFkZHJlc3MgaXMgbm90IHN1cHBvcnRlZCBmb3IgZGVzY3JpcHRvciB3YWxsZXRzJyk7XG4gIH1cbiAgY29uc3Qga2V5Y2hhaW5zID0gcGFyYW1zLnZlcmlmaWNhdGlvbj8ua2V5Y2hhaW5zO1xuICBpZiAoIWtleWNoYWlucyB8fCAhVXR4b05hbWVkS2V5Y2hhaW5zLmlzKGtleWNoYWlucykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2tleWNoYWluIGlzIHJlcXVpcmVkIGZvciBkZXNjcmlwdG9yIHdhbGxldHMnKTtcbiAgfVxuICBjb25zdCB7IHJlY2lwaWVudHMgfSA9IHBhcmFtcy50eFBhcmFtcztcbiAgaWYgKCFyZWNpcGllbnRzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdyZWNpcGllbnRzIGlzIHJlcXVpcmVkJyk7XG4gIH1cbiAgY29uc3QgcHNidCA9IGNvaW4uZGVjb2RlVHJhbnNhY3Rpb25Gcm9tUHJlYnVpbGQocGFyYW1zLnR4UHJlYnVpbGQpO1xuICBpZiAoIShwc2J0IGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvUHNidCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIHBzYnQgdG8gYmUgYW4gaW5zdGFuY2Ugb2YgVXR4b1BzYnQnKTtcbiAgfVxuICBjb25zdCB3YWxsZXRLZXlzID0gdG9CaXAzMlRyaXBsZShrZXljaGFpbnMpO1xuICBjb25zdCBkZXNjcmlwdG9yTWFwID0gZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQod2FsbGV0LCB3YWxsZXRLZXlzLCBnZXRQb2xpY3lGb3JFbnYocGFyYW1zLndhbGxldC5iaXRnby5lbnYpKTtcbiAgcmV0dXJuIHtcbiAgICAuLi50b0Jhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHNGcm9tUHNidChwc2J0LCBkZXNjcmlwdG9yTWFwLCByZWNpcGllbnRzLCBwc2J0Lm5ldHdvcmspLFxuICAgIGtleWNoYWlucyxcbiAgICBrZXlTaWduYXR1cmVzOiBnZXRLZXlTaWduYXR1cmVzKHdhbGxldCkgPz8ge30sXG4gICAgY3VzdG9tQ2hhbmdlOiB1bmRlZmluZWQsXG4gICAgbmVlZHNDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVWZXJpZmljYXRpb246IGZhbHNlLFxuICB9O1xufVxuIl19
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9wYXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdGQSx3RkFjQztBQU9ELHNCQWdDQztBQTdJRCx5REFBMkM7QUFVM0MsK0NBQXNGO0FBQ3RGLGlEQUErRTtBQUUvRSx1RUFBeUQ7QUFFekQsNENBQTBGO0FBQzFGLDBEQUFrRztBQU1sRyxTQUFTLGlCQUFpQixDQUFDLFNBQWdDLEVBQUUsT0FBd0I7SUFDbkYsT0FBTztRQUNMLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztRQUMxQixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDcEUsTUFBTSxFQUFFLElBQUEsNkNBQWlDLEVBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7S0FDdEUsQ0FBQztBQUNKLENBQUM7QUFRRCxTQUFTLG9CQUFvQixDQUMzQixJQUE0QixFQUM1QixhQUE0QyxFQUM1QyxnQkFBbUM7SUFFbkMsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RSxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUMvRSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FB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VUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUN2QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLElBQUksQ0FBQyxDQUFDLElBQUksWUFBWSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFBLHlCQUFhLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsTUFBTSxhQUFhLEdBQUcsSUFBQSx1Q0FBMEIsRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUEsNEJBQWUsRUFBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9HLE9BQU87UUFDTCxHQUFHLHNDQUFzQyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEYsU0FBUztRQUNULGFBQWEsRUFBRSxJQUFBLDRCQUFnQixFQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDN0MsWUFBWSxFQUFFLFNBQVM7UUFDdkIseUNBQXlDLEVBQUUsS0FBSztLQUNqRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IElUcmFuc2FjdGlvblJlY2lwaWVudCB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmltcG9ydCB7XG4gIEFic3RyYWN0VXR4b0NvaW4sXG4gIEJhc2VPdXRwdXQsXG4gIEJhc2VQYXJzZWRUcmFuc2FjdGlvbixcbiAgQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0cyxcbiAgUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMsXG59IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgZ2V0S2V5U2lnbmF0dXJlcywgdG9CaXAzMlRyaXBsZSwgVXR4b05hbWVkS2V5Y2hhaW5zIH0gZnJvbSAnLi4vLi4va2V5Y2hhaW5zJztcbmltcG9ydCB7IGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0LCBnZXRQb2xpY3lGb3JFbnYgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9yJztcbmltcG9ydCB7IElEZXNjcmlwdG9yV2FsbGV0IH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvci9kZXNjcmlwdG9yV2FsbGV0JztcbmltcG9ydCAqIGFzIGNvcmVEZXNjcmlwdG9ycyBmcm9tICcuLi8uLi9jb3JlL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgUGFyc2VkT3V0cHV0IH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yL3BzYnQvcGFyc2UnO1xuaW1wb3J0IHsgZnJvbUV4dGVuZGVkQWRkcmVzc0Zvcm1hdFRvU2NyaXB0LCB0b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdCB9IGZyb20gJy4uL3JlY2lwaWVudCc7XG5pbXBvcnQgeyBvdXRwdXREaWZmZXJlbmNlc1dpdGhFeHBlY3RlZCwgT3V0cHV0RGlmZmVyZW5jZVdpdGhFeHBlY3RlZCB9IGZyb20gJy4uL291dHB1dERpZmZlcmVuY2UnO1xuXG5leHBvcnQgdHlwZSBSZWNpcGllbnRPdXRwdXQgPSBPbWl0PFBhcnNlZE91dHB1dCwgJ3ZhbHVlJz4gJiB7XG4gIHZhbHVlOiBiaWdpbnQgfCAnbWF4Jztcbn07XG5cbmZ1bmN0aW9uIHRvUmVjaXBpZW50T3V0cHV0KHJlY2lwaWVudDogSVRyYW5zYWN0aW9uUmVjaXBpZW50LCBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBSZWNpcGllbnRPdXRwdXQge1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzLFxuICAgIHZhbHVlOiByZWNpcGllbnQuYW1vdW50ID09PSAnbWF4JyA/ICdtYXgnIDogQmlnSW50KHJlY2lwaWVudC5hbW91bnQpLFxuICAgIHNjcmlwdDogZnJvbUV4dGVuZGVkQWRkcmVzc0Zvcm1hdFRvU2NyaXB0KHJlY2lwaWVudC5hZGRyZXNzLCBuZXR3b3JrKSxcbiAgfTtcbn1cblxuLy8gVE9ETyhCVEMtMTY5Nyk6IGFsbG93IG91dHB1dHMgd2l0aCBgdmFsdWU6ICdtYXgnYCBoZXJlXG50eXBlIFBhcnNlZE91dHB1dHMgPSBPdXRwdXREaWZmZXJlbmNlV2l0aEV4cGVjdGVkPFBhcnNlZE91dHB1dCwgUmVjaXBpZW50T3V0cHV0PiAmIHtcbiAgb3V0cHV0czogUGFyc2VkT3V0cHV0W107XG4gIGNoYW5nZU91dHB1dHM6IFBhcnNlZE91dHB1dFtdO1xufTtcblxuZnVuY3Rpb24gcGFyc2VPdXRwdXRzV2l0aFBzYnQoXG4gIHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsXG4gIGRlc2NyaXB0b3JNYXA6IGNvcmVEZXNjcmlwdG9ycy5EZXNjcmlwdG9yTWFwLFxuICByZWNpcGllbnRPdXRwdXRzOiBSZWNpcGllbnRPdXRwdXRbXVxuKTogUGFyc2VkT3V0cHV0cyB7XG4gIGNvbnN0IHBhcnNlZCA9IGNvcmVEZXNjcmlwdG9ycy5wYXJzZShwc2J0LCBkZXNjcmlwdG9yTWFwLCBwc2J0Lm5ldHdvcmspO1xuICBjb25zdCBleHRlcm5hbE91dHB1dHMgPSBwYXJzZWQub3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCk7XG4gIGNvbnN0IGNoYW5nZU91dHB1dHMgPSBwYXJzZWQub3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uc2NyaXB0SWQgIT09IHVuZGVmaW5lZCk7XG4gIGNvbnN0IG91dHB1dERpZmZzID0gb3V0cHV0RGlmZmVyZW5jZXNXaXRoRXhwZWN0ZWQoZXh0ZXJuYWxPdXRwdXRzLCByZWNpcGllbnRPdXRwdXRzKTtcbiAgcmV0dXJuIHtcbiAgICBvdXRwdXRzOiBwYXJzZWQub3V0cHV0cyxcbiAgICBjaGFuZ2VPdXRwdXRzLFxuICAgIC4uLm91dHB1dERpZmZzLFxuICB9O1xufVxuXG5mdW5jdGlvbiBzdW1WYWx1ZXMoYXJyOiB7IHZhbHVlOiBiaWdpbnQgfVtdKTogYmlnaW50IHtcbiAgcmV0dXJuIGFyci5yZWR1Y2UoKHN1bSwgZSkgPT4gc3VtICsgZS52YWx1ZSwgQmlnSW50KDApKTtcbn1cblxuZnVuY3Rpb24gdG9CYXNlT3V0cHV0cyhvdXRwdXRzOiBQYXJzZWRPdXRwdXRbXSwgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrKTogQmFzZU91dHB1dDxiaWdpbnQ+W107XG5mdW5jdGlvbiB0b0Jhc2VPdXRwdXRzKG91dHB1dHM6IFJlY2lwaWVudE91dHB1dFtdLCBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBCYXNlT3V0cHV0PGJpZ2ludCB8ICdtYXgnPltdO1xuZnVuY3Rpb24gdG9CYXNlT3V0cHV0cyhcbiAgb3V0cHV0czogKFBhcnNlZE91dHB1dCB8IFJlY2lwaWVudE91dHB1dClbXSxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBCYXNlT3V0cHV0PGJpZ2ludCB8ICdtYXgnPltdIHtcbiAgcmV0dXJuIG91dHB1dHMubWFwKFxuICAgIChvKTogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz4gPT4gKHtcbiAgICAgIGFkZHJlc3M6IHRvRXh0ZW5kZWRBZGRyZXNzRm9ybWF0KG8uc2NyaXB0LCBuZXR3b3JrKSxcbiAgICAgIGFtb3VudDogby52YWx1ZSA9PT0gJ21heCcgPyAnbWF4JyA6IEJpZ0ludChvLnZhbHVlKSxcbiAgICAgIGV4dGVybmFsOiBvLnNjcmlwdElkID09PSB1bmRlZmluZWQsXG4gICAgfSlcbiAgKTtcbn1cblxuZXhwb3J0IHR5cGUgUGFyc2VkT3V0cHV0c0JpZ0ludCA9IEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHM8YmlnaW50LCBCYXNlT3V0cHV0PGJpZ2ludCB8ICdtYXgnPj47XG5cbmZ1bmN0aW9uIHRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0cyhcbiAgeyBvdXRwdXRzLCBjaGFuZ2VPdXRwdXRzLCBleHBsaWNpdEV4dGVybmFsT3V0cHV0cywgaW1wbGljaXRFeHRlcm5hbE91dHB1dHMsIG1pc3NpbmdPdXRwdXRzIH06IFBhcnNlZE91dHB1dHMsXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29ya1xuKTogUGFyc2VkT3V0cHV0c0JpZ0ludCB7XG4gIHJldHVybiB7XG4gICAgb3V0cHV0czogdG9CYXNlT3V0cHV0cyhvdXRwdXRzLCBuZXR3b3JrKSxcbiAgICBjaGFuZ2VPdXRwdXRzOiB0b0Jhc2VPdXRwdXRzKGNoYW5nZU91dHB1dHMsIG5ldHdvcmspLFxuICAgIGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiB0b0Jhc2VPdXRwdXRzKGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzLCBuZXR3b3JrKSxcbiAgICBleHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IHN1bVZhbHVlcyhleHBsaWNpdEV4dGVybmFsT3V0cHV0cyksXG4gICAgaW1wbGljaXRFeHRlcm5hbE91dHB1dHM6IHRvQmFzZU91dHB1dHMoaW1wbGljaXRFeHRlcm5hbE91dHB1dHMsIG5ldHdvcmspLFxuICAgIGltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogc3VtVmFsdWVzKGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzKSxcbiAgICBtaXNzaW5nT3V0cHV0czogdG9CYXNlT3V0cHV0cyhtaXNzaW5nT3V0cHV0cywgbmV0d29yayksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0Jhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHNGcm9tUHNidChcbiAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgZGVzY3JpcHRvck1hcDogY29yZURlc2NyaXB0b3JzLkRlc2NyaXB0b3JNYXAsXG4gIHJlY2lwaWVudHM6IElUcmFuc2FjdGlvblJlY2lwaWVudFtdLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IFBhcnNlZE91dHB1dHNCaWdJbnQge1xuICByZXR1cm4gdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzKFxuICAgIHBhcnNlT3V0cHV0c1dpdGhQc2J0KFxuICAgICAgcHNidCxcbiAgICAgIGRlc2NyaXB0b3JNYXAsXG4gICAgICByZWNpcGllbnRzLm1hcCgocikgPT4gdG9SZWNpcGllbnRPdXRwdXQociwgcHNidC5uZXR3b3JrKSlcbiAgICApLFxuICAgIG5ldHdvcmtcbiAgKTtcbn1cblxuZXhwb3J0IHR5cGUgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uPFRBbW91bnQgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFxuICBUQW1vdW50LFxuICBCYXNlT3V0cHV0PFRBbW91bnQgfCAnbWF4Jz5cbj47XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZShcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgd2FsbGV0OiBJRGVzY3JpcHRvcldhbGxldCxcbiAgcGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9uczxudW1iZXIgfCBiaWdpbnQ+XG4pOiBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248YmlnaW50PiB7XG4gIGlmIChwYXJhbXMudHhQYXJhbXMuYWxsb3dFeHRlcm5hbENoYW5nZUFkZHJlc3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2FsbG93RXh0ZXJuYWxDaGFuZ2VBZGRyZXNzIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9XG4gIGlmIChwYXJhbXMudHhQYXJhbXMuY2hhbmdlQWRkcmVzcykge1xuICAgIHRocm93IG5ldyBFcnJvcignY2hhbmdlQWRkcmVzcyBpcyBub3Qgc3VwcG9ydGVkIGZvciBkZXNjcmlwdG9yIHdhbGxldHMnKTtcbiAgfVxuICBjb25zdCBrZXljaGFpbnMgPSBwYXJhbXMudmVyaWZpY2F0aW9uPy5rZXljaGFpbnM7XG4gIGlmICgha2V5Y2hhaW5zIHx8ICFVdHhvTmFtZWRLZXljaGFpbnMuaXMoa2V5Y2hhaW5zKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigna2V5Y2hhaW4gaXMgcmVxdWlyZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9XG4gIGNvbnN0IHsgcmVjaXBpZW50cyB9ID0gcGFyYW1zLnR4UGFyYW1zO1xuICBpZiAoIXJlY2lwaWVudHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlY2lwaWVudHMgaXMgcmVxdWlyZWQnKTtcbiAgfVxuICBjb25zdCBwc2J0ID0gY29pbi5kZWNvZGVUcmFuc2FjdGlvbkZyb21QcmVidWlsZChwYXJhbXMudHhQcmVidWlsZCk7XG4gIGlmICghKHBzYnQgaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgcHNidCB0byBiZSBhbiBpbnN0YW5jZSBvZiBVdHhvUHNidCcpO1xuICB9XG4gIGNvbnN0IHdhbGxldEtleXMgPSB0b0JpcDMyVHJpcGxlKGtleWNoYWlucyk7XG4gIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBnZXREZXNjcmlwdG9yTWFwRnJvbVdhbGxldCh3YWxsZXQsIHdhbGxldEtleXMsIGdldFBvbGljeUZvckVudihwYXJhbXMud2FsbGV0LmJpdGdvLmVudikpO1xuICByZXR1cm4ge1xuICAgIC4uLnRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0KHBzYnQsIGRlc2NyaXB0b3JNYXAsIHJlY2lwaWVudHMsIHBzYnQubmV0d29yayksXG4gICAga2V5Y2hhaW5zLFxuICAgIGtleVNpZ25hdHVyZXM6IGdldEtleVNpZ25hdHVyZXMod2FsbGV0KSA/PyB7fSxcbiAgICBjdXN0b21DaGFuZ2U6IHVuZGVmaW5lZCxcbiAgICBuZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvbjogZmFsc2UsXG4gIH07XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"parseToAmountType.d.ts","sourceRoot":"","sources":["../../../../src/transaction/descriptor/parseToAmountType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAS,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAE7D,KAAK,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CASjG;AAED,KAAK,iBAAiB,GAAG;IACvB,oBAAoB,EAAE,UAAU,CAAC;IACjC,mBAAmB,EAAE,UAAU,CAAC;CACjC,CAAC;AAyCF,wBAAgB,oCAAoC,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,EAC3F,GAAG,EAAE,2BAA2B,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,iBAAiB,GACxB,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAIzC;AAED,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/D,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,GACvC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAKpD"}
1
+ {"version":3,"file":"parseToAmountType.d.ts","sourceRoot":"","sources":["../../../../src/transaction/descriptor/parseToAmountType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAS,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAE7D,KAAK,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAYjG;AAED,KAAK,iBAAiB,GAAG;IACvB,oBAAoB,EAAE,UAAU,CAAC;IACjC,mBAAmB,EAAE,UAAU,CAAC;CACjC,CAAC;AAyCF,wBAAgB,oCAAoC,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,EAC3F,GAAG,EAAE,2BAA2B,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,iBAAiB,GACxB,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAIzC;AAED,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/D,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,GACvC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAKpD"}
@@ -5,6 +5,9 @@ exports.parsedDescriptorTransactionToTNumber = parsedDescriptorTransactionToTNum
5
5
  exports.parseToAmountType = parseToAmountType;
6
6
  const parse_1 = require("./parse");
7
7
  function toAmountType(v, t) {
8
+ if (v === 'max') {
9
+ return v;
10
+ }
8
11
  switch (t) {
9
12
  case 'number':
10
13
  return Number(v);
@@ -54,4 +57,4 @@ function parseToAmountType(coin, wallet, params) {
54
57
  amountTypeBaseOutput: 'string',
55
58
  });
56
59
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VUb0Ftb3VudFR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9wYXJzZVRvQW1vdW50VHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU9BLG9DQVNDO0FBOENELG9GQU9DO0FBRUQsOENBU0M7QUE3RUQsbUNBQTZEO0FBSTdELFNBQWdCLFlBQVksQ0FBQyxDQUEyQixFQUFFLENBQWE7SUFDckUsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNWLEtBQUssUUFBUTtZQUNYLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLEtBQUssUUFBUTtZQUNYLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLEtBQUssUUFBUTtZQUNYLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDO0FBT0QsU0FBUyxtQkFBbUIsQ0FDMUIsTUFBMEIsRUFDMUIsVUFBc0I7SUFFdEIsT0FBTztRQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztRQUN2QixNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFZO1FBQzFELFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtLQUMxQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsY0FBYyxDQUdyQixDQUFJLEVBQUUsQ0FBSSxFQUFFLE1BQXlCO0lBQ3JDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDVixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssZUFBZSxDQUFDO1FBQ3JCLEtBQUsseUJBQXlCLENBQUM7UUFDL0IsS0FBSyx5QkFBeUIsQ0FBQztRQUMvQixLQUFLLGdCQUFnQjtZQUNuQixJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoQixDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFNLENBQUMsQ0FBQztZQUNyRixDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BDLEtBQUssNkJBQTZCLENBQUM7UUFDbkMsS0FBSyw2QkFBNkI7WUFDaEMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUFNLENBQUMsQ0FBQztRQUMvRDtZQUNFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFnQixvQ0FBb0MsQ0FDbEQsR0FBd0MsRUFDeEMsTUFBeUI7SUFFekIsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBOEMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FDcEUsQ0FBQztBQUMvQyxDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQy9CLElBQXNCLEVBQ3RCLE1BQXlCLEVBQ3pCLE1BQXdDO0lBRXhDLE9BQU8sb0NBQW9DLENBQThCLElBQUEsYUFBSyxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDcEcsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFVBQVU7UUFDcEMsb0JBQW9CLEVBQUUsUUFBUTtLQUMvQixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgQmFzZU91dHB1dCwgQmFzZVBhcnNlZFRyYW5zYWN0aW9uLCBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgSURlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9yL2Rlc2NyaXB0b3JXYWxsZXQnO1xuXG5pbXBvcnQgeyBwYXJzZSwgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uIH0gZnJvbSAnLi9wYXJzZSc7XG5cbnR5cGUgQW1vdW50VHlwZSA9ICdudW1iZXInIHwgJ2JpZ2ludCcgfCAnc3RyaW5nJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRvQW1vdW50VHlwZSh2OiBudW1iZXIgfCBiaWdpbnQgfCBzdHJpbmcsIHQ6IEFtb3VudFR5cGUpOiBudW1iZXIgfCBiaWdpbnQgfCBzdHJpbmcge1xuICBzd2l0Y2ggKHQpIHtcbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgcmV0dXJuIE51bWJlcih2KTtcbiAgICBjYXNlICdiaWdpbnQnOlxuICAgICAgcmV0dXJuIEJpZ0ludCh2KTtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgcmV0dXJuIFN0cmluZyh2KTtcbiAgfVxufVxuXG50eXBlIEFtb3VudFR5cGVPcHRpb25zID0ge1xuICBhbW91bnRUeXBlQmFzZU91dHB1dDogQW1vdW50VHlwZTtcbiAgYW1vdW50VHlwZUFnZ3JlZ2F0ZTogQW1vdW50VHlwZTtcbn07XG5cbmZ1bmN0aW9uIGJhc2VPdXRwdXRUb1ROdW1iZXI8VEFtb3VudCBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIG91dHB1dDogQmFzZU91dHB1dDxiaWdpbnQ+LFxuICBhbW91bnRUeXBlOiBBbW91bnRUeXBlXG4pOiBCYXNlT3V0cHV0PFRBbW91bnQ+IHtcbiAgcmV0dXJuIHtcbiAgICBhZGRyZXNzOiBvdXRwdXQuYWRkcmVzcyxcbiAgICBhbW91bnQ6IHRvQW1vdW50VHlwZShvdXRwdXQuYW1vdW50LCBhbW91bnRUeXBlKSBhcyBUQW1vdW50LFxuICAgIGV4dGVybmFsOiBvdXRwdXQuZXh0ZXJuYWwsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGVudHJ5VG9UTnVtYmVyPFxuICBLIGV4dGVuZHMga2V5b2YgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uPGJpZ2ludD4sXG4gIFYgZXh0ZW5kcyBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248YmlnaW50PltLXVxuPihrOiBLLCB2OiBWLCBwYXJhbXM6IEFtb3VudFR5cGVPcHRpb25zKTogW0ssIFZdIHtcbiAgc3dpdGNoIChrKSB7XG4gICAgY2FzZSAnb3V0cHV0cyc6XG4gICAgY2FzZSAnY2hhbmdlT3V0cHV0cyc6XG4gICAgY2FzZSAnZXhwbGljaXRFeHRlcm5hbE91dHB1dHMnOlxuICAgIGNhc2UgJ2ltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzJzpcbiAgICBjYXNlICdtaXNzaW5nT3V0cHV0cyc6XG4gICAgICBpZiAodiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBbaywgdl07XG4gICAgICB9XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2KSkge1xuICAgICAgICByZXR1cm4gW2ssIHYubWFwKChvKSA9PiBiYXNlT3V0cHV0VG9UTnVtYmVyKG8sIHBhcmFtcy5hbW91bnRUeXBlQmFzZU91dHB1dCkpIGFzIFZdO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdleHBlY3RlZCBhcnJheScpO1xuICAgIGNhc2UgJ2V4cGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudCc6XG4gICAgY2FzZSAnaW1wbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50JzpcbiAgICAgIGlmICh0eXBlb2YgdiAhPT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdleHBlY3RlZCBiaWdpbnQnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbaywgdG9BbW91bnRUeXBlKHYsIHBhcmFtcy5hbW91bnRUeXBlQWdncmVnYXRlKSBhcyBWXTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFtrLCB2XTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uVG9UTnVtYmVyPFRBbW91bnQgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQsIFRPdXRwdXQ+KFxuICBvYmo6IFBhcnNlZERlc2NyaXB0b3JUcmFuc2FjdGlvbjxiaWdpbnQ+LFxuICBwYXJhbXM6IEFtb3VudFR5cGVPcHRpb25zXG4pOiBCYXNlUGFyc2VkVHJhbnNhY3Rpb248VEFtb3VudCwgVE91dHB1dD4ge1xuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIE9iamVjdC5lbnRyaWVzKG9iaikubWFwKChbaywgdl0pID0+IGVudHJ5VG9UTnVtYmVyKGsgYXMga2V5b2YgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uPGJpZ2ludD4sIHYsIHBhcmFtcykpXG4gICkgYXMgQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFRBbW91bnQsIFRPdXRwdXQ+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUb0Ftb3VudFR5cGU8VEFtb3VudCBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHdhbGxldDogSURlc2NyaXB0b3JXYWxsZXQsXG4gIHBhcmFtczogUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnM8VEFtb3VudD5cbik6IEJhc2VQYXJzZWRUcmFuc2FjdGlvbjxUQW1vdW50LCBCYXNlT3V0cHV0PHN0cmluZz4+IHtcbiAgcmV0dXJuIHBhcnNlZERlc2NyaXB0b3JUcmFuc2FjdGlvblRvVE51bWJlcjxUQW1vdW50LCBCYXNlT3V0cHV0PHN0cmluZz4+KHBhcnNlKGNvaW4sIHdhbGxldCwgcGFyYW1zKSwge1xuICAgIGFtb3VudFR5cGVBZ2dyZWdhdGU6IGNvaW4uYW1vdW50VHlwZSxcbiAgICBhbW91bnRUeXBlQmFzZU91dHB1dDogJ3N0cmluZycsXG4gIH0pO1xufVxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VUb0Ftb3VudFR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9wYXJzZVRvQW1vdW50VHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU9BLG9DQVlDO0FBOENELG9GQU9DO0FBRUQsOENBU0M7QUFoRkQsbUNBQTZEO0FBSTdELFNBQWdCLFlBQVksQ0FBQyxDQUEyQixFQUFFLENBQWE7SUFDckUsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNWLEtBQUssUUFBUTtZQUNYLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLEtBQUssUUFBUTtZQUNYLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLEtBQUssUUFBUTtZQUNYLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDO0FBT0QsU0FBUyxtQkFBbUIsQ0FDMUIsTUFBa0MsRUFDbEMsVUFBc0I7SUFFdEIsT0FBTztRQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztRQUN2QixNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFZO1FBQzFELFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtLQUMxQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsY0FBYyxDQUdyQixDQUFJLEVBQUUsQ0FBSSxFQUFFLE1BQXlCO0lBQ3JDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDVixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssZUFBZSxDQUFDO1FBQ3JCLEtBQUsseUJBQXlCLENBQUM7UUFDL0IsS0FBSyx5QkFBeUIsQ0FBQztRQUMvQixLQUFLLGdCQUFnQjtZQUNuQixJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoQixDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFNLENBQUMsQ0FBQztZQUNyRixDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BDLEtBQUssNkJBQTZCLENBQUM7UUFDbkMsS0FBSyw2QkFBNkI7WUFDaEMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUFNLENBQUMsQ0FBQztRQUMvRDtZQUNFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFnQixvQ0FBb0MsQ0FDbEQsR0FBd0MsRUFDeEMsTUFBeUI7SUFFekIsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBOEMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FDcEUsQ0FBQztBQUMvQyxDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQy9CLElBQXNCLEVBQ3RCLE1BQXlCLEVBQ3pCLE1BQXdDO0lBRXhDLE9BQU8sb0NBQW9DLENBQThCLElBQUEsYUFBSyxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDcEcsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFVBQVU7UUFDcEMsb0JBQW9CLEVBQUUsUUFBUTtLQUMvQixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgQmFzZU91dHB1dCwgQmFzZVBhcnNlZFRyYW5zYWN0aW9uLCBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgSURlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9yL2Rlc2NyaXB0b3JXYWxsZXQnO1xuXG5pbXBvcnQgeyBwYXJzZSwgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uIH0gZnJvbSAnLi9wYXJzZSc7XG5cbnR5cGUgQW1vdW50VHlwZSA9ICdudW1iZXInIHwgJ2JpZ2ludCcgfCAnc3RyaW5nJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRvQW1vdW50VHlwZSh2OiBudW1iZXIgfCBiaWdpbnQgfCBzdHJpbmcsIHQ6IEFtb3VudFR5cGUpOiBudW1iZXIgfCBiaWdpbnQgfCBzdHJpbmcge1xuICBpZiAodiA9PT0gJ21heCcpIHtcbiAgICByZXR1cm4gdjtcbiAgfVxuICBzd2l0Y2ggKHQpIHtcbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgcmV0dXJuIE51bWJlcih2KTtcbiAgICBjYXNlICdiaWdpbnQnOlxuICAgICAgcmV0dXJuIEJpZ0ludCh2KTtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgcmV0dXJuIFN0cmluZyh2KTtcbiAgfVxufVxuXG50eXBlIEFtb3VudFR5cGVPcHRpb25zID0ge1xuICBhbW91bnRUeXBlQmFzZU91dHB1dDogQW1vdW50VHlwZTtcbiAgYW1vdW50VHlwZUFnZ3JlZ2F0ZTogQW1vdW50VHlwZTtcbn07XG5cbmZ1bmN0aW9uIGJhc2VPdXRwdXRUb1ROdW1iZXI8VEFtb3VudCBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIG91dHB1dDogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz4sXG4gIGFtb3VudFR5cGU6IEFtb3VudFR5cGVcbik6IEJhc2VPdXRwdXQ8VEFtb3VudD4ge1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzLFxuICAgIGFtb3VudDogdG9BbW91bnRUeXBlKG91dHB1dC5hbW91bnQsIGFtb3VudFR5cGUpIGFzIFRBbW91bnQsXG4gICAgZXh0ZXJuYWw6IG91dHB1dC5leHRlcm5hbCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZW50cnlUb1ROdW1iZXI8XG4gIEsgZXh0ZW5kcyBrZXlvZiBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248YmlnaW50PixcbiAgViBleHRlbmRzIFBhcnNlZERlc2NyaXB0b3JUcmFuc2FjdGlvbjxiaWdpbnQ+W0tdXG4+KGs6IEssIHY6IFYsIHBhcmFtczogQW1vdW50VHlwZU9wdGlvbnMpOiBbSywgVl0ge1xuICBzd2l0Y2ggKGspIHtcbiAgICBjYXNlICdvdXRwdXRzJzpcbiAgICBjYXNlICdjaGFuZ2VPdXRwdXRzJzpcbiAgICBjYXNlICdleHBsaWNpdEV4dGVybmFsT3V0cHV0cyc6XG4gICAgY2FzZSAnaW1wbGljaXRFeHRlcm5hbE91dHB1dHMnOlxuICAgIGNhc2UgJ21pc3NpbmdPdXRwdXRzJzpcbiAgICAgIGlmICh2ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIFtrLCB2XTtcbiAgICAgIH1cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICAgIHJldHVybiBbaywgdi5tYXAoKG8pID0+IGJhc2VPdXRwdXRUb1ROdW1iZXIobywgcGFyYW1zLmFtb3VudFR5cGVCYXNlT3V0cHV0KSkgYXMgVl07XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIGFycmF5Jyk7XG4gICAgY2FzZSAnZXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50JzpcbiAgICBjYXNlICdpbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQnOlxuICAgICAgaWYgKHR5cGVvZiB2ICE9PSAnYmlnaW50Jykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIGJpZ2ludCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtrLCB0b0Ftb3VudFR5cGUodiwgcGFyYW1zLmFtb3VudFR5cGVBZ2dyZWdhdGUpIGFzIFZdO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gW2ssIHZdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb25Ub1ROdW1iZXI8VEFtb3VudCBleHRlbmRzIG51bWJlciB8IGJpZ2ludCwgVE91dHB1dD4oXG4gIG9iajogUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uPGJpZ2ludD4sXG4gIHBhcmFtczogQW1vdW50VHlwZU9wdGlvbnNcbik6IEJhc2VQYXJzZWRUcmFuc2FjdGlvbjxUQW1vdW50LCBUT3V0cHV0PiB7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgT2JqZWN0LmVudHJpZXMob2JqKS5tYXAoKFtrLCB2XSkgPT4gZW50cnlUb1ROdW1iZXIoayBhcyBrZXlvZiBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248YmlnaW50PiwgdiwgcGFyYW1zKSlcbiAgKSBhcyBCYXNlUGFyc2VkVHJhbnNhY3Rpb248VEFtb3VudCwgVE91dHB1dD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRvQW1vdW50VHlwZTxUQW1vdW50IGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgd2FsbGV0OiBJRGVzY3JpcHRvcldhbGxldCxcbiAgcGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9uczxUQW1vdW50PlxuKTogQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFRBbW91bnQsIEJhc2VPdXRwdXQ8c3RyaW5nPj4ge1xuICByZXR1cm4gcGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uVG9UTnVtYmVyPFRBbW91bnQsIEJhc2VPdXRwdXQ8c3RyaW5nPj4ocGFyc2UoY29pbiwgd2FsbGV0LCBwYXJhbXMpLCB7XG4gICAgYW1vdW50VHlwZUFnZ3JlZ2F0ZTogY29pbi5hbW91bnRUeXBlLFxuICAgIGFtb3VudFR5cGVCYXNlT3V0cHV0OiAnc3RyaW5nJyxcbiAgfSk7XG59XG4iXX0=
@@ -6,18 +6,18 @@ export declare class ValidationError extends Error {
6
6
  constructor(message: string);
7
7
  }
8
8
  export declare class ErrorMissingOutputs extends ValidationError {
9
- missingOutputs: BaseOutput<bigint>[];
10
- constructor(missingOutputs: BaseOutput<bigint>[]);
9
+ missingOutputs: BaseOutput<bigint | 'max'>[];
10
+ constructor(missingOutputs: BaseOutput<bigint | 'max'>[]);
11
11
  }
12
12
  export declare class ErrorImplicitExternalOutputs extends ValidationError {
13
- implicitExternalOutputs: BaseOutput<bigint>[];
14
- constructor(implicitExternalOutputs: BaseOutput<bigint>[]);
13
+ implicitExternalOutputs: BaseOutput<bigint | 'max'>[];
14
+ constructor(implicitExternalOutputs: BaseOutput<bigint | 'max'>[]);
15
15
  }
16
16
  export declare class AggregateValidationError extends ValidationError {
17
17
  errors: ValidationError[];
18
18
  constructor(errors: ValidationError[]);
19
19
  }
20
- export declare function assertExpectedOutputDifference(parsedOutputs: BaseParsedTransactionOutputs<bigint, BaseOutput<bigint>>): void;
20
+ export declare function assertExpectedOutputDifference(parsedOutputs: BaseParsedTransactionOutputs<bigint, BaseOutput<bigint | 'max'>>): void;
21
21
  export declare function assertValidTransaction(psbt: utxolib.bitgo.UtxoPsbt, descriptors: DescriptorMap, recipients: ITransactionRecipient[], network: utxolib.Network): void;
22
22
  /**
23
23
  * Wrapper around assertValidTransaction that returns a boolean instead of throwing.
@@ -1 +1 @@
1
- {"version":3,"file":"verifyTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/descriptor/verifyTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAIpG,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,mBAAoB,SAAQ,eAAe;IACnC,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE;gBAApC,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE;CAGxD;AAED,qBAAa,4BAA6B,SAAQ,eAAe;IAC5C,uBAAuB,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE;gBAA7C,uBAAuB,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE;CAGjE;AAED,qBAAa,wBAAyB,SAAQ,eAAe;IACxC,MAAM,EAAE,eAAe,EAAE;gBAAzB,MAAM,EAAE,eAAe,EAAE;CAG7C;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,4BAA4B,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,GACtE,IAAI,CAcN;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,WAAW,EAAE,aAAa,EAC1B,UAAU,EAAE,qBAAqB,EAAE,EACnC,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,IAAI,CAEN;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,wBAAwB,EAChC,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,OAAO,CAAC,CAOlB"}
1
+ {"version":3,"file":"verifyTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/descriptor/verifyTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAIpG,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,mBAAoB,SAAQ,eAAe;IACnC,cAAc,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;gBAA5C,cAAc,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;CAGhE;AAED,qBAAa,4BAA6B,SAAQ,eAAe;IAC5C,uBAAuB,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;gBAArD,uBAAuB,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;CAGzE;AAED,qBAAa,wBAAyB,SAAQ,eAAe;IACxC,MAAM,EAAE,eAAe,EAAE;gBAAzB,MAAM,EAAE,eAAe,EAAE;CAG7C;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,4BAA4B,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,GAC9E,IAAI,CAcN;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,WAAW,EAAE,aAAa,EAC1B,UAAU,EAAE,qBAAqB,EAAE,EACnC,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,IAAI,CAEN;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,wBAAwB,EAChC,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,OAAO,CAAC,CAOlB"}
@@ -102,4 +102,4 @@ async function verifyTransaction(coin, params, descriptorMap) {
102
102
  assertValidTransaction(tx, descriptorMap, params.txParams.recipients ?? [], tx.network);
103
103
  return true;
104
104
  }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5VHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci92ZXJpZnlUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQ0Esd0VBZ0JDO0FBRUQsd0RBT0M7QUFZRCw4Q0FXQztBQWhGRCx5REFBMkM7QUFNM0MsbUNBQWlFO0FBRWpFLE1BQWEsZUFBZ0IsU0FBUSxLQUFLO0lBQ3hDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBSkQsMENBSUM7QUFFRCxNQUFhLG1CQUFvQixTQUFRLGVBQWU7SUFDdEQsWUFBbUIsY0FBb0M7UUFDckQsS0FBSyxDQUFDLDBCQUEwQixjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUR6QyxtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7SUFFdkQsQ0FBQztDQUNGO0FBSkQsa0RBSUM7QUFFRCxNQUFhLDRCQUE2QixTQUFRLGVBQWU7SUFDL0QsWUFBbUIsdUJBQTZDO1FBQzlELEtBQUssQ0FBQywrQ0FBK0MsdUJBQXVCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUR2RSw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXNCO0lBRWhFLENBQUM7Q0FDRjtBQUpELG9FQUlDO0FBRUQsTUFBYSx3QkFBeUIsU0FBUSxlQUFlO0lBQzNELFlBQW1CLE1BQXlCO1FBQzFDLEtBQUssQ0FBQyxxQ0FBcUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFENUMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7SUFFNUMsQ0FBQztDQUNGO0FBSkQsNERBSUM7QUFFRCxTQUFnQiw4QkFBOEIsQ0FDNUMsYUFBdUU7SUFFdkUsTUFBTSxNQUFNLEdBQXNCLEVBQUUsQ0FBQztJQUNyQyxJQUFJLGFBQWEsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBSSxhQUFhLENBQUMsdUJBQXVCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3JELHNEQUFzRDtRQUN0RCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQTRCLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RCLGlDQUFpQztRQUNqQyxvQ0FBb0M7UUFDcEMsTUFBTSxJQUFJLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQ3BDLElBQTRCLEVBQzVCLFdBQTBCLEVBQzFCLFVBQW1DLEVBQ25DLE9BQXdCO0lBRXhCLDhCQUE4QixDQUFDLElBQUEsOENBQXNDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNqSCxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0ksS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxJQUFzQixFQUN0QixNQUFnQyxFQUNoQyxhQUE0QjtJQUU1QixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pFLElBQUksQ0FBQyxDQUFDLEVBQUUsWUFBWSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDRCxzQkFBc0IsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEYsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgSVRyYW5zYWN0aW9uUmVjaXBpZW50LCBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yJztcbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIEJhc2VPdXRwdXQsIEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHMgfSBmcm9tICcuLi8uLi9hYnN0cmFjdFV0eG9Db2luJztcblxuaW1wb3J0IHsgdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzRnJvbVBzYnQgfSBmcm9tICcuL3BhcnNlJztcblxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVycm9yTWlzc2luZ091dHB1dHMgZXh0ZW5kcyBWYWxpZGF0aW9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbWlzc2luZ091dHB1dHM6IEJhc2VPdXRwdXQ8YmlnaW50PltdKSB7XG4gICAgc3VwZXIoYG1pc3Npbmcgb3V0cHV0cyAoY291bnQ9JHttaXNzaW5nT3V0cHV0cy5sZW5ndGh9KWApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFcnJvckltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzIGV4dGVuZHMgVmFsaWRhdGlvbkVycm9yIHtcbiAgY29uc3RydWN0b3IocHVibGljIGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiBCYXNlT3V0cHV0PGJpZ2ludD5bXSkge1xuICAgIHN1cGVyKGB1bmV4cGVjdGVkIGltcGxpY2l0IGV4dGVybmFsIG91dHB1dHMgKGNvdW50PSR7aW1wbGljaXRFeHRlcm5hbE91dHB1dHMubGVuZ3RofSlgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgVmFsaWRhdGlvbkVycm9yIHtcbiAgY29uc3RydWN0b3IocHVibGljIGVycm9yczogVmFsaWRhdGlvbkVycm9yW10pIHtcbiAgICBzdXBlcihgYWdncmVnYXRlIHZhbGlkYXRpb24gZXJyb3IgKGNvdW50PSR7ZXJyb3JzLmxlbmd0aH0pYCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydEV4cGVjdGVkT3V0cHV0RGlmZmVyZW5jZShcbiAgcGFyc2VkT3V0cHV0czogQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0czxiaWdpbnQsIEJhc2VPdXRwdXQ8YmlnaW50Pj5cbik6IHZvaWQge1xuICBjb25zdCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcltdID0gW107XG4gIGlmIChwYXJzZWRPdXRwdXRzLm1pc3NpbmdPdXRwdXRzLmxlbmd0aCA+IDApIHtcbiAgICBlcnJvcnMucHVzaChuZXcgRXJyb3JNaXNzaW5nT3V0cHV0cyhwYXJzZWRPdXRwdXRzLm1pc3NpbmdPdXRwdXRzKSk7XG4gIH1cbiAgaWYgKHBhcnNlZE91dHB1dHMuaW1wbGljaXRFeHRlcm5hbE91dHB1dHMubGVuZ3RoID4gMCkge1xuICAgIC8vIEZJWE1FOiBmb3IgcGF5Z28gd2UgbmVlZCB0byByZWxheCB0aGlzIGEgbGl0dGxlIGJpdFxuICAgIGVycm9ycy5wdXNoKG5ldyBFcnJvckltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzKHBhcnNlZE91dHB1dHMuaW1wbGljaXRFeHRlcm5hbE91dHB1dHMpKTtcbiAgfVxuICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAvLyBGSVhNRShCVEMtMTY4OCk6IGVuYWJsZSBFUzIwMjFcbiAgICAvLyB0aHJvdyBuZXcgQWdncmVnYXRlRXJyb3IoZXJyb3JzKTtcbiAgICB0aHJvdyBuZXcgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yKGVycm9ycyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFZhbGlkVHJhbnNhY3Rpb24oXG4gIHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsXG4gIGRlc2NyaXB0b3JzOiBEZXNjcmlwdG9yTWFwLFxuICByZWNpcGllbnRzOiBJVHJhbnNhY3Rpb25SZWNpcGllbnRbXSxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiB2b2lkIHtcbiAgYXNzZXJ0RXhwZWN0ZWRPdXRwdXREaWZmZXJlbmNlKHRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0KHBzYnQsIGRlc2NyaXB0b3JzLCByZWNpcGllbnRzLCBuZXR3b3JrKSk7XG59XG5cbi8qKlxuICogV3JhcHBlciBhcm91bmQgYXNzZXJ0VmFsaWRUcmFuc2FjdGlvbiB0aGF0IHJldHVybnMgYSBib29sZWFuIGluc3RlYWQgb2YgdGhyb3dpbmcuXG4gKlxuICogV2UgZm9sbG93IHRoZSBBYnN0cmFjdFV0eG9Db2luIGludGVyZmFjZSBoZXJlIHdoaWNoIGlzIGEgYml0IGNvbmZ1c2VkIC0gdGhlIHJldHVybiB2YWx1ZSBpcyBhIGJvb2xlYW4gYnV0IHdlXG4gKiBhbHNvIHRocm93IGVycm9ycyAoYmVjYXVzZSB3ZSBhY3R1YWxseSB3YW50IHRvIGtub3cgd2hhdCB3ZW50IHdyb25nKS5cbiAqXG4gKiBAcGFyYW0gY29pblxuICogQHBhcmFtIHBhcmFtc1xuICogQHBhcmFtIGRlc2NyaXB0b3JNYXBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZlcmlmeVRyYW5zYWN0aW9uKFxuICBjb2luOiBBYnN0cmFjdFV0eG9Db2luLFxuICBwYXJhbXM6IFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgZGVzY3JpcHRvck1hcDogRGVzY3JpcHRvck1hcFxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHR4ID0gY29pbi5kZWNvZGVUcmFuc2FjdGlvbkZyb21QcmVidWlsZChwYXJhbXMudHhQcmVidWlsZCk7XG4gIGlmICghKHR4IGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvUHNidCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VuZXhwZWN0ZWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICB9XG4gIGFzc2VydFZhbGlkVHJhbnNhY3Rpb24odHgsIGRlc2NyaXB0b3JNYXAsIHBhcmFtcy50eFBhcmFtcy5yZWNpcGllbnRzID8/IFtdLCB0eC5uZXR3b3JrKTtcbiAgcmV0dXJuIHRydWU7XG59XG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5VHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci92ZXJpZnlUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQ0Esd0VBZ0JDO0FBRUQsd0RBT0M7QUFZRCw4Q0FXQztBQWhGRCx5REFBMkM7QUFNM0MsbUNBQWlFO0FBRWpFLE1BQWEsZUFBZ0IsU0FBUSxLQUFLO0lBQ3hDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBSkQsMENBSUM7QUFFRCxNQUFhLG1CQUFvQixTQUFRLGVBQWU7SUFDdEQsWUFBbUIsY0FBNEM7UUFDN0QsS0FBSyxDQUFDLDBCQUEwQixjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUR6QyxtQkFBYyxHQUFkLGNBQWMsQ0FBOEI7SUFFL0QsQ0FBQztDQUNGO0FBSkQsa0RBSUM7QUFFRCxNQUFhLDRCQUE2QixTQUFRLGVBQWU7SUFDL0QsWUFBbUIsdUJBQXFEO1FBQ3RFLEtBQUssQ0FBQywrQ0FBK0MsdUJBQXVCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUR2RSw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQThCO0lBRXhFLENBQUM7Q0FDRjtBQUpELG9FQUlDO0FBRUQsTUFBYSx3QkFBeUIsU0FBUSxlQUFlO0lBQzNELFlBQW1CLE1BQXlCO1FBQzFDLEtBQUssQ0FBQyxxQ0FBcUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFENUMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7SUFFNUMsQ0FBQztDQUNGO0FBSkQsNERBSUM7QUFFRCxTQUFnQiw4QkFBOEIsQ0FDNUMsYUFBK0U7SUFFL0UsTUFBTSxNQUFNLEdBQXNCLEVBQUUsQ0FBQztJQUNyQyxJQUFJLGFBQWEsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBSSxhQUFhLENBQUMsdUJBQXVCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3JELHNEQUFzRDtRQUN0RCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQTRCLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RCLGlDQUFpQztRQUNqQyxvQ0FBb0M7UUFDcEMsTUFBTSxJQUFJLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQ3BDLElBQTRCLEVBQzVCLFdBQTBCLEVBQzFCLFVBQW1DLEVBQ25DLE9BQXdCO0lBRXhCLDhCQUE4QixDQUFDLElBQUEsOENBQXNDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNqSCxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0ksS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxJQUFzQixFQUN0QixNQUFnQyxFQUNoQyxhQUE0QjtJQUU1QixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pFLElBQUksQ0FBQyxDQUFDLEVBQUUsWUFBWSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDRCxzQkFBc0IsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEYsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgSVRyYW5zYWN0aW9uUmVjaXBpZW50LCBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yJztcbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIEJhc2VPdXRwdXQsIEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHMgfSBmcm9tICcuLi8uLi9hYnN0cmFjdFV0eG9Db2luJztcblxuaW1wb3J0IHsgdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzRnJvbVBzYnQgfSBmcm9tICcuL3BhcnNlJztcblxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVycm9yTWlzc2luZ091dHB1dHMgZXh0ZW5kcyBWYWxpZGF0aW9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbWlzc2luZ091dHB1dHM6IEJhc2VPdXRwdXQ8YmlnaW50IHwgJ21heCc+W10pIHtcbiAgICBzdXBlcihgbWlzc2luZyBvdXRwdXRzIChjb3VudD0ke21pc3NpbmdPdXRwdXRzLmxlbmd0aH0pYCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVycm9ySW1wbGljaXRFeHRlcm5hbE91dHB1dHMgZXh0ZW5kcyBWYWxpZGF0aW9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgaW1wbGljaXRFeHRlcm5hbE91dHB1dHM6IEJhc2VPdXRwdXQ8YmlnaW50IHwgJ21heCc+W10pIHtcbiAgICBzdXBlcihgdW5leHBlY3RlZCBpbXBsaWNpdCBleHRlcm5hbCBvdXRwdXRzIChjb3VudD0ke2ltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzLmxlbmd0aH0pYCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFnZ3JlZ2F0ZVZhbGlkYXRpb25FcnJvciBleHRlbmRzIFZhbGlkYXRpb25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcltdKSB7XG4gICAgc3VwZXIoYGFnZ3JlZ2F0ZSB2YWxpZGF0aW9uIGVycm9yIChjb3VudD0ke2Vycm9ycy5sZW5ndGh9KWApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRFeHBlY3RlZE91dHB1dERpZmZlcmVuY2UoXG4gIHBhcnNlZE91dHB1dHM6IEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHM8YmlnaW50LCBCYXNlT3V0cHV0PGJpZ2ludCB8ICdtYXgnPj5cbik6IHZvaWQge1xuICBjb25zdCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcltdID0gW107XG4gIGlmIChwYXJzZWRPdXRwdXRzLm1pc3NpbmdPdXRwdXRzLmxlbmd0aCA+IDApIHtcbiAgICBlcnJvcnMucHVzaChuZXcgRXJyb3JNaXNzaW5nT3V0cHV0cyhwYXJzZWRPdXRwdXRzLm1pc3NpbmdPdXRwdXRzKSk7XG4gIH1cbiAgaWYgKHBhcnNlZE91dHB1dHMuaW1wbGljaXRFeHRlcm5hbE91dHB1dHMubGVuZ3RoID4gMCkge1xuICAgIC8vIEZJWE1FOiBmb3IgcGF5Z28gd2UgbmVlZCB0byByZWxheCB0aGlzIGEgbGl0dGxlIGJpdFxuICAgIGVycm9ycy5wdXNoKG5ldyBFcnJvckltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzKHBhcnNlZE91dHB1dHMuaW1wbGljaXRFeHRlcm5hbE91dHB1dHMpKTtcbiAgfVxuICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAvLyBGSVhNRShCVEMtMTY4OCk6IGVuYWJsZSBFUzIwMjFcbiAgICAvLyB0aHJvdyBuZXcgQWdncmVnYXRlRXJyb3IoZXJyb3JzKTtcbiAgICB0aHJvdyBuZXcgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yKGVycm9ycyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFZhbGlkVHJhbnNhY3Rpb24oXG4gIHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsXG4gIGRlc2NyaXB0b3JzOiBEZXNjcmlwdG9yTWFwLFxuICByZWNpcGllbnRzOiBJVHJhbnNhY3Rpb25SZWNpcGllbnRbXSxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiB2b2lkIHtcbiAgYXNzZXJ0RXhwZWN0ZWRPdXRwdXREaWZmZXJlbmNlKHRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0KHBzYnQsIGRlc2NyaXB0b3JzLCByZWNpcGllbnRzLCBuZXR3b3JrKSk7XG59XG5cbi8qKlxuICogV3JhcHBlciBhcm91bmQgYXNzZXJ0VmFsaWRUcmFuc2FjdGlvbiB0aGF0IHJldHVybnMgYSBib29sZWFuIGluc3RlYWQgb2YgdGhyb3dpbmcuXG4gKlxuICogV2UgZm9sbG93IHRoZSBBYnN0cmFjdFV0eG9Db2luIGludGVyZmFjZSBoZXJlIHdoaWNoIGlzIGEgYml0IGNvbmZ1c2VkIC0gdGhlIHJldHVybiB2YWx1ZSBpcyBhIGJvb2xlYW4gYnV0IHdlXG4gKiBhbHNvIHRocm93IGVycm9ycyAoYmVjYXVzZSB3ZSBhY3R1YWxseSB3YW50IHRvIGtub3cgd2hhdCB3ZW50IHdyb25nKS5cbiAqXG4gKiBAcGFyYW0gY29pblxuICogQHBhcmFtIHBhcmFtc1xuICogQHBhcmFtIGRlc2NyaXB0b3JNYXBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZlcmlmeVRyYW5zYWN0aW9uKFxuICBjb2luOiBBYnN0cmFjdFV0eG9Db2luLFxuICBwYXJhbXM6IFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgZGVzY3JpcHRvck1hcDogRGVzY3JpcHRvck1hcFxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHR4ID0gY29pbi5kZWNvZGVUcmFuc2FjdGlvbkZyb21QcmVidWlsZChwYXJhbXMudHhQcmVidWlsZCk7XG4gIGlmICghKHR4IGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvUHNidCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VuZXhwZWN0ZWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICB9XG4gIGFzc2VydFZhbGlkVHJhbnNhY3Rpb24odHgsIGRlc2NyaXB0b3JNYXAsIHBhcmFtcy50eFBhcmFtcy5yZWNpcGllbnRzID8/IFtdLCB0eC5uZXR3b3JrKTtcbiAgcmV0dXJuIHRydWU7XG59XG4iXX0=
@@ -1,9 +1,7 @@
1
- import { AbstractUtxoCoin, Output, ParsedTransaction, ParseTransactionOptions } from '../../abstractUtxoCoin';
2
- /**
3
- * @param first
4
- * @param second
5
- * @returns {Array} All outputs that are in the first array but not in the second
6
- */
7
- export declare function outputDifference(first: Output[], second: Output[]): Output[];
1
+ import { AbstractUtxoCoin, ParsedTransaction, ParseTransactionOptions } from '../../abstractUtxoCoin';
2
+ import { ComparableOutput } from '../outputDifference';
3
+ export type ComparableOutputWithExternal<TValue> = ComparableOutput<TValue> & {
4
+ external: boolean | undefined;
5
+ };
8
6
  export declare function parseTransaction<TNumber extends bigint | number>(coin: AbstractUtxoCoin, params: ParseTransactionOptions<TNumber>): Promise<ParsedTransaction<TNumber>>;
9
7
  //# sourceMappingURL=parseTransaction.d.ts.map