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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/src/abstractUtxoCoin.d.ts +28 -47
  3. package/dist/src/abstractUtxoCoin.d.ts.map +1 -1
  4. package/dist/src/abstractUtxoCoin.js +140 -451
  5. package/dist/src/core/descriptor/DescriptorMap.d.ts +9 -0
  6. package/dist/src/core/descriptor/DescriptorMap.d.ts.map +1 -0
  7. package/dist/src/core/descriptor/DescriptorMap.js +9 -0
  8. package/dist/src/core/descriptor/Output.d.ts +24 -0
  9. package/dist/src/core/descriptor/Output.d.ts.map +1 -0
  10. package/dist/src/core/descriptor/Output.js +22 -0
  11. package/dist/src/core/descriptor/VirtualSize.d.ts +21 -0
  12. package/dist/src/core/descriptor/VirtualSize.d.ts.map +1 -0
  13. package/dist/src/core/descriptor/VirtualSize.js +83 -0
  14. package/dist/src/core/descriptor/address.d.ts +5 -0
  15. package/dist/src/core/descriptor/address.d.ts.map +1 -0
  16. package/dist/src/core/descriptor/address.js +48 -0
  17. package/dist/src/core/descriptor/index.d.ts +9 -0
  18. package/dist/src/core/descriptor/index.d.ts.map +1 -0
  19. package/dist/src/core/descriptor/index.js +17 -0
  20. package/dist/src/core/descriptor/psbt/assertSatisfiable.d.ts +20 -0
  21. package/dist/src/core/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
  22. package/dist/src/core/descriptor/psbt/assertSatisfiable.js +75 -0
  23. package/dist/src/core/descriptor/psbt/createPsbt.d.ts +15 -0
  24. package/dist/src/core/descriptor/psbt/createPsbt.d.ts.map +1 -0
  25. package/dist/src/core/descriptor/psbt/createPsbt.js +83 -0
  26. package/dist/src/core/descriptor/psbt/findDescriptors.d.ts +22 -0
  27. package/dist/src/core/descriptor/psbt/findDescriptors.d.ts.map +1 -0
  28. package/dist/src/core/descriptor/psbt/findDescriptors.js +75 -0
  29. package/dist/src/core/descriptor/psbt/index.d.ts +5 -0
  30. package/dist/src/core/descriptor/psbt/index.d.ts.map +1 -0
  31. package/dist/src/core/descriptor/psbt/index.js +10 -0
  32. package/dist/src/core/descriptor/psbt/parse.d.ts +27 -0
  33. package/dist/src/core/descriptor/psbt/parse.d.ts.map +1 -0
  34. package/dist/src/core/descriptor/psbt/parse.js +87 -0
  35. package/dist/src/core/descriptor/psbt/wrap.d.ts +12 -0
  36. package/dist/src/core/descriptor/psbt/wrap.d.ts.map +1 -0
  37. package/dist/src/core/descriptor/psbt/wrap.js +76 -0
  38. package/dist/src/core/descriptor/signTxLocal.d.ts +3 -0
  39. package/dist/src/core/descriptor/signTxLocal.d.ts.map +1 -0
  40. package/dist/src/core/descriptor/signTxLocal.js +9 -0
  41. package/dist/src/descriptor/NamedDescriptor.js +35 -2
  42. package/dist/src/descriptor/assertDescriptorWalletAddress.d.ts +2 -1
  43. package/dist/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -1
  44. package/dist/src/descriptor/assertDescriptorWalletAddress.js +46 -17
  45. package/dist/src/descriptor/builder/builder.d.ts +13 -0
  46. package/dist/src/descriptor/builder/builder.d.ts.map +1 -0
  47. package/dist/src/descriptor/builder/builder.js +35 -0
  48. package/dist/src/descriptor/builder/index.d.ts +3 -0
  49. package/dist/src/descriptor/builder/index.d.ts.map +1 -0
  50. package/dist/src/descriptor/builder/index.js +8 -0
  51. package/dist/src/descriptor/builder/parse.d.ts +5 -0
  52. package/dist/src/descriptor/builder/parse.d.ts.map +1 -0
  53. package/dist/src/descriptor/builder/parse.js +138 -0
  54. package/dist/src/descriptor/descriptorWallet.d.ts +19 -0
  55. package/dist/src/descriptor/descriptorWallet.d.ts.map +1 -0
  56. package/dist/src/descriptor/descriptorWallet.js +58 -0
  57. package/dist/src/descriptor/index.d.ts +1 -0
  58. package/dist/src/descriptor/index.d.ts.map +1 -1
  59. package/dist/src/descriptor/index.js +7 -2
  60. package/dist/src/index.d.ts +3 -0
  61. package/dist/src/index.d.ts.map +1 -1
  62. package/dist/src/index.js +29 -3
  63. package/dist/src/keychains.d.ts +10 -0
  64. package/dist/src/keychains.d.ts.map +1 -0
  65. package/dist/src/keychains.js +20 -0
  66. package/dist/src/names.d.ts +13 -0
  67. package/dist/src/names.d.ts.map +1 -0
  68. package/dist/src/names.js +175 -0
  69. package/dist/src/recovery/RecoveryProvider.js +2 -3
  70. package/dist/src/recovery/backupKeyRecovery.d.ts +0 -3
  71. package/dist/src/recovery/backupKeyRecovery.d.ts.map +1 -1
  72. package/dist/src/recovery/backupKeyRecovery.js +50 -18
  73. package/dist/src/recovery/baseApi.d.ts +1 -4
  74. package/dist/src/recovery/baseApi.d.ts.map +1 -1
  75. package/dist/src/recovery/baseApi.js +6 -6
  76. package/dist/src/recovery/coingeckoApi.d.ts +0 -3
  77. package/dist/src/recovery/coingeckoApi.d.ts.map +1 -1
  78. package/dist/src/recovery/coingeckoApi.js +1 -4
  79. package/dist/src/recovery/crossChainRecovery.d.ts.map +1 -1
  80. package/dist/src/recovery/crossChainRecovery.js +44 -12
  81. package/dist/src/recovery/mempoolApi.d.ts.map +1 -1
  82. package/dist/src/recovery/mempoolApi.js +7 -7
  83. package/dist/src/replayProtection.js +37 -5
  84. package/dist/src/sign.d.ts +0 -3
  85. package/dist/src/sign.d.ts.map +1 -1
  86. package/dist/src/sign.js +44 -11
  87. package/dist/src/transaction/descriptor/explainPsbt.d.ts +5 -0
  88. package/dist/src/transaction/descriptor/explainPsbt.d.ts.map +1 -0
  89. package/dist/src/transaction/descriptor/explainPsbt.js +80 -0
  90. package/dist/src/transaction/descriptor/index.d.ts +3 -0
  91. package/dist/src/transaction/descriptor/index.d.ts.map +1 -0
  92. package/dist/src/transaction/descriptor/index.js +6 -0
  93. package/dist/src/transaction/explainTransaction.d.ts +17 -0
  94. package/dist/src/transaction/explainTransaction.d.ts.map +1 -0
  95. package/dist/src/transaction/explainTransaction.js +55 -0
  96. package/dist/src/transaction/fetchInputs.d.ts +26 -0
  97. package/dist/src/transaction/fetchInputs.d.ts.map +1 -0
  98. package/dist/src/transaction/fetchInputs.js +110 -0
  99. package/dist/src/transaction/fixedScript/explainTransaction.d.ts +30 -0
  100. package/dist/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
  101. package/dist/src/transaction/fixedScript/explainTransaction.js +220 -0
  102. package/dist/src/transaction/fixedScript/index.d.ts +5 -0
  103. package/dist/src/transaction/fixedScript/index.d.ts.map +1 -0
  104. package/dist/src/transaction/fixedScript/index.js +11 -0
  105. package/dist/src/{parseOutput.d.ts → transaction/fixedScript/parseOutput.d.ts} +6 -6
  106. package/dist/src/transaction/fixedScript/parseOutput.d.ts.map +1 -0
  107. package/dist/src/transaction/fixedScript/parseOutput.js +214 -0
  108. package/dist/src/transaction/fixedScript/parseTransaction.d.ts +9 -0
  109. package/dist/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
  110. package/dist/src/transaction/fixedScript/parseTransaction.js +207 -0
  111. package/dist/src/transaction/fixedScript/verifyTransaction.d.ts +4 -0
  112. package/dist/src/transaction/fixedScript/verifyTransaction.d.ts.map +1 -0
  113. package/dist/src/transaction/fixedScript/verifyTransaction.js +177 -0
  114. package/dist/src/transaction/index.d.ts +6 -0
  115. package/dist/src/transaction/index.d.ts.map +1 -0
  116. package/dist/src/transaction/index.js +26 -0
  117. package/dist/src/transaction/parseTransaction.d.ts +3 -0
  118. package/dist/src/transaction/parseTransaction.d.ts.map +1 -0
  119. package/dist/src/transaction/parseTransaction.js +47 -0
  120. package/dist/src/transaction/recipient.d.ts +28 -0
  121. package/dist/src/transaction/recipient.d.ts.map +1 -0
  122. package/dist/src/transaction/recipient.js +80 -0
  123. package/dist/src/transaction/verifyTransaction.d.ts +4 -0
  124. package/dist/src/transaction/verifyTransaction.d.ts.map +1 -0
  125. package/dist/src/transaction/verifyTransaction.js +47 -0
  126. package/dist/src/verifyKey.d.ts +27 -0
  127. package/dist/src/verifyKey.d.ts.map +1 -0
  128. package/dist/src/verifyKey.js +168 -0
  129. package/dist/test/core/descriptor/descriptor.utils.d.ts +10 -0
  130. package/dist/test/core/descriptor/descriptor.utils.d.ts.map +1 -0
  131. package/dist/test/core/descriptor/descriptor.utils.js +63 -0
  132. package/dist/test/core/descriptor/psbt/VirtualSize.d.ts +2 -0
  133. package/dist/test/core/descriptor/psbt/VirtualSize.d.ts.map +1 -0
  134. package/dist/test/core/descriptor/psbt/VirtualSize.js +78 -0
  135. package/dist/test/core/descriptor/psbt/assertSatisfiable.d.ts +2 -0
  136. package/dist/test/core/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
  137. package/dist/test/core/descriptor/psbt/assertSatisfiable.js +56 -0
  138. package/dist/test/core/descriptor/psbt/createPsbt.d.ts +2 -0
  139. package/dist/test/core/descriptor/psbt/createPsbt.d.ts.map +1 -0
  140. package/dist/test/core/descriptor/psbt/createPsbt.js +85 -0
  141. package/dist/test/core/descriptor/psbt/findDescriptors.d.ts +2 -0
  142. package/dist/test/core/descriptor/psbt/findDescriptors.d.ts.map +1 -0
  143. package/dist/test/core/descriptor/psbt/findDescriptors.js +66 -0
  144. package/dist/test/core/descriptor/psbt/mock.utils.d.ts +34 -0
  145. package/dist/test/core/descriptor/psbt/mock.utils.d.ts.map +1 -0
  146. package/dist/test/core/descriptor/psbt/mock.utils.js +89 -0
  147. package/dist/test/core/descriptor/psbt/parse.d.ts +2 -0
  148. package/dist/test/core/descriptor/psbt/parse.d.ts.map +1 -0
  149. package/dist/test/core/descriptor/psbt/parse.js +32 -0
  150. package/dist/test/core/descriptor/psbt/psbt.utils.d.ts +4 -0
  151. package/dist/test/core/descriptor/psbt/psbt.utils.d.ts.map +1 -0
  152. package/dist/test/core/descriptor/psbt/psbt.utils.js +20 -0
  153. package/dist/test/core/fixtures.utils.d.ts +15 -0
  154. package/dist/test/core/fixtures.utils.d.ts.map +1 -0
  155. package/dist/test/core/fixtures.utils.js +114 -0
  156. package/dist/test/core/key.utils.d.ts +16 -0
  157. package/dist/test/core/key.utils.d.ts.map +1 -0
  158. package/dist/test/core/key.utils.js +59 -0
  159. package/dist/test/core/toPlainObject.utils.d.ts +11 -0
  160. package/dist/test/core/toPlainObject.utils.d.ts.map +1 -0
  161. package/dist/test/core/toPlainObject.utils.js +76 -0
  162. package/dist/test/descriptor/builder.d.ts +2 -0
  163. package/dist/test/descriptor/builder.d.ts.map +1 -0
  164. package/dist/test/descriptor/builder.js +70 -0
  165. package/dist/test/descriptor/descriptorWallet.d.ts +2 -0
  166. package/dist/test/descriptor/descriptorWallet.d.ts.map +1 -0
  167. package/dist/test/descriptor/descriptorWallet.js +24 -0
  168. package/dist/test/outputDifference.d.ts +2 -0
  169. package/dist/test/outputDifference.d.ts.map +1 -0
  170. package/dist/test/outputDifference.js +86 -0
  171. package/dist/test/transaction/descriptor/explainPsbt.d.ts +2 -0
  172. package/dist/test/transaction/descriptor/explainPsbt.d.ts.map +1 -0
  173. package/dist/test/transaction/descriptor/explainPsbt.js +31 -0
  174. package/dist/tsconfig.tsbuildinfo +1 -1
  175. package/package.json +13 -10
  176. package/dist/src/parseOutput.d.ts.map +0 -1
  177. package/dist/src/parseOutput.js +0 -215
  178. package/dist/src/transaction.d.ts +0 -64
  179. package/dist/src/transaction.d.ts.map +0 -1
  180. package/dist/src/transaction.js +0 -323
@@ -0,0 +1,70 @@
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
+ const assert = __importStar(require("assert"));
37
+ const builder_1 = require("../../src/descriptor/builder");
38
+ const key_utils_1 = require("../core/key.utils");
39
+ function getDescriptorBuilderForType(name) {
40
+ const keys = (0, key_utils_1.getKeyTriple)().map((k) => k.neutered());
41
+ switch (name) {
42
+ case 'Wsh2Of2':
43
+ case 'Wsh2Of3':
44
+ return {
45
+ name,
46
+ keys: keys.slice(0, name === 'Wsh2Of3' ? 3 : 2),
47
+ path: '0/*',
48
+ };
49
+ case 'ShWsh2Of3CltvDrop':
50
+ return {
51
+ name,
52
+ keys,
53
+ path: '0/*',
54
+ locktime: 1,
55
+ };
56
+ }
57
+ }
58
+ function describeForName(n) {
59
+ describe(`DescriptorBuilder ${n}`, () => {
60
+ it('parses descriptor template', () => {
61
+ const builder = getDescriptorBuilderForType(n);
62
+ const descriptor = (0, builder_1.getDescriptorFromBuilder)(builder);
63
+ assert.deepStrictEqual(builder, (0, builder_1.parseDescriptor)(descriptor));
64
+ });
65
+ });
66
+ }
67
+ describeForName('Wsh2Of2');
68
+ describeForName('Wsh2Of3');
69
+ describeForName('ShWsh2Of3CltvDrop');
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvZGVzY3JpcHRvci9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBRWpDLDBEQUE0RztBQUM1RyxpREFBaUQ7QUFFakQsU0FBUywyQkFBMkIsQ0FBQyxJQUErQjtJQUNsRSxNQUFNLElBQUksR0FBRyxJQUFBLHdCQUFZLEdBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDYixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssU0FBUztZQUNaLE9BQU87Z0JBQ0wsSUFBSTtnQkFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9DLElBQUksRUFBRSxLQUFLO2FBQ1osQ0FBQztRQUNKLEtBQUssbUJBQW1CO1lBQ3RCLE9BQU87Z0JBQ0wsSUFBSTtnQkFDSixJQUFJO2dCQUNKLElBQUksRUFBRSxLQUFLO2dCQUNYLFFBQVEsRUFBRSxDQUFDO2FBQ1osQ0FBQztJQUNOLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsQ0FBNEI7SUFDbkQsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUU7UUFDdEMsRUFBRSxDQUFDLDRCQUE0QixFQUFFLEdBQUcsRUFBRTtZQUNwQyxNQUFNLE9BQU8sR0FBRywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQyxNQUFNLFVBQVUsR0FBRyxJQUFBLGtDQUF3QixFQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUEseUJBQWUsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzNCLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMzQixlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBwYXJzZURlc2NyaXB0b3IsIERlc2NyaXB0b3JCdWlsZGVyLCBnZXREZXNjcmlwdG9yRnJvbUJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zcmMvZGVzY3JpcHRvci9idWlsZGVyJztcbmltcG9ydCB7IGdldEtleVRyaXBsZSB9IGZyb20gJy4uL2NvcmUva2V5LnV0aWxzJztcblxuZnVuY3Rpb24gZ2V0RGVzY3JpcHRvckJ1aWxkZXJGb3JUeXBlKG5hbWU6IERlc2NyaXB0b3JCdWlsZGVyWyduYW1lJ10pOiBEZXNjcmlwdG9yQnVpbGRlciB7XG4gIGNvbnN0IGtleXMgPSBnZXRLZXlUcmlwbGUoKS5tYXAoKGspID0+IGsubmV1dGVyZWQoKSk7XG4gIHN3aXRjaCAobmFtZSkge1xuICAgIGNhc2UgJ1dzaDJPZjInOlxuICAgIGNhc2UgJ1dzaDJPZjMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAga2V5czoga2V5cy5zbGljZSgwLCBuYW1lID09PSAnV3NoMk9mMycgPyAzIDogMiksXG4gICAgICAgIHBhdGg6ICcwLyonLFxuICAgICAgfTtcbiAgICBjYXNlICdTaFdzaDJPZjNDbHR2RHJvcCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBrZXlzLFxuICAgICAgICBwYXRoOiAnMC8qJyxcbiAgICAgICAgbG9ja3RpbWU6IDEsXG4gICAgICB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlRm9yTmFtZShuOiBEZXNjcmlwdG9yQnVpbGRlclsnbmFtZSddKSB7XG4gIGRlc2NyaWJlKGBEZXNjcmlwdG9yQnVpbGRlciAke259YCwgKCkgPT4ge1xuICAgIGl0KCdwYXJzZXMgZGVzY3JpcHRvciB0ZW1wbGF0ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBnZXREZXNjcmlwdG9yQnVpbGRlckZvclR5cGUobik7XG4gICAgICBjb25zdCBkZXNjcmlwdG9yID0gZ2V0RGVzY3JpcHRvckZyb21CdWlsZGVyKGJ1aWxkZXIpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChidWlsZGVyLCBwYXJzZURlc2NyaXB0b3IoZGVzY3JpcHRvcikpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZGVzY3JpYmVGb3JOYW1lKCdXc2gyT2YyJyk7XG5kZXNjcmliZUZvck5hbWUoJ1dzaDJPZjMnKTtcbmRlc2NyaWJlRm9yTmFtZSgnU2hXc2gyT2YzQ2x0dkRyb3AnKTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=descriptorWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptorWallet.d.ts","sourceRoot":"","sources":["../../../test/descriptor/descriptorWallet.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ const descriptor_1 = require("../../src/descriptor");
8
+ const descriptor_utils_1 = require("../core/descriptor/descriptor.utils");
9
+ describe('isDescriptorWalletData', function () {
10
+ const descriptorMap = (0, descriptor_utils_1.getDescriptorMap)('Wsh2Of3');
11
+ it('should return true for valid DescriptorWalletData', function () {
12
+ const walletData = {
13
+ coinSpecific: {
14
+ descriptors: [...descriptorMap.entries()].map(([name, descriptor]) => ({
15
+ name,
16
+ value: descriptor.toString(),
17
+ })),
18
+ },
19
+ };
20
+ (0, assert_1.default)((0, descriptor_1.isDescriptorWalletData)(walletData));
21
+ assert_1.default.strictEqual((0, descriptor_1.getDescriptorMapFromWalletData)(walletData).size, descriptorMap.size);
22
+ });
23
+ });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvcldhbGxldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvZGVzY3JpcHRvci9kZXNjcmlwdG9yV2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLHFEQUE4RjtBQUU5RiwwRUFBdUU7QUFFdkUsUUFBUSxDQUFDLHdCQUF3QixFQUFFO0lBQ2pDLE1BQU0sYUFBYSxHQUFHLElBQUEsbUNBQWdCLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEQsRUFBRSxDQUFDLG1EQUFtRCxFQUFFO1FBQ3RELE1BQU0sVUFBVSxHQUErQjtZQUM3QyxZQUFZLEVBQUU7Z0JBQ1osV0FBVyxFQUFFLENBQUMsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDckUsSUFBSTtvQkFDSixLQUFLLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRTtpQkFDN0IsQ0FBQyxDQUFDO2FBQ0o7U0FDdUMsQ0FBQztRQUUzQyxJQUFBLGdCQUFNLEVBQUMsSUFBQSxtQ0FBc0IsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzNDLGdCQUFNLENBQUMsV0FBVyxDQUFDLElBQUEsMkNBQThCLEVBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXREYXRhLCBpc0Rlc2NyaXB0b3JXYWxsZXREYXRhIH0gZnJvbSAnLi4vLi4vc3JjL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbldhbGxldERhdGEgfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvck1hcCB9IGZyb20gJy4uL2NvcmUvZGVzY3JpcHRvci9kZXNjcmlwdG9yLnV0aWxzJztcblxuZGVzY3JpYmUoJ2lzRGVzY3JpcHRvcldhbGxldERhdGEnLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBnZXREZXNjcmlwdG9yTWFwKCdXc2gyT2YzJyk7XG4gIGl0KCdzaG91bGQgcmV0dXJuIHRydWUgZm9yIHZhbGlkIERlc2NyaXB0b3JXYWxsZXREYXRhJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHdhbGxldERhdGE6IEFic3RyYWN0VXR4b0NvaW5XYWxsZXREYXRhID0ge1xuICAgICAgY29pblNwZWNpZmljOiB7XG4gICAgICAgIGRlc2NyaXB0b3JzOiBbLi4uZGVzY3JpcHRvck1hcC5lbnRyaWVzKCldLm1hcCgoW25hbWUsIGRlc2NyaXB0b3JdKSA9PiAoe1xuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgdmFsdWU6IGRlc2NyaXB0b3IudG9TdHJpbmcoKSxcbiAgICAgICAgfSkpLFxuICAgICAgfSxcbiAgICB9IGFzIHVua25vd24gYXMgQWJzdHJhY3RVdHhvQ29pbldhbGxldERhdGE7XG5cbiAgICBhc3NlcnQoaXNEZXNjcmlwdG9yV2FsbGV0RGF0YSh3YWxsZXREYXRhKSk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0RGF0YSh3YWxsZXREYXRhKS5zaXplLCBkZXNjcmlwdG9yTWFwLnNpemUpO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ import 'should';
2
+ //# sourceMappingURL=outputDifference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputDifference.d.ts","sourceRoot":"","sources":["../../test/outputDifference.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("should");
4
+ const parseTransaction_1 = require("../src/transaction/fixedScript/parseTransaction");
5
+ describe('Missing output detection', function () {
6
+ it('should recognize count mismatch dupes', function () {
7
+ const expectedOutputs = [
8
+ {
9
+ address: '2N6eb6Gosm2jt4o3djFLjb4kuKyPgAj8teZ',
10
+ amount: '300000',
11
+ },
12
+ {
13
+ amount: '300000',
14
+ address: '2N6eb6Gosm2jt4o3djFLjb4kuKyPgAj8teZ',
15
+ },
16
+ ];
17
+ const actualOutputs = [
18
+ {
19
+ address: '2N6eb6Gosm2jt4o3djFLjb4kuKyPgAj8teZ',
20
+ amount: 300000,
21
+ },
22
+ {
23
+ address: '2N2womedYhTC3YCDtviFte5G7teQczpVcds',
24
+ amount: 15349374,
25
+ },
26
+ ];
27
+ // missing should be one entry of the two
28
+ const missingOutputs = (0, parseTransaction_1.outputDifference)(expectedOutputs, actualOutputs);
29
+ missingOutputs.length.should.equal(1);
30
+ missingOutputs[0].address.should.equal('2N6eb6Gosm2jt4o3djFLjb4kuKyPgAj8teZ');
31
+ missingOutputs[0].amount.should.equal('300000');
32
+ });
33
+ it('should be order-agnostic', function () {
34
+ const expectedOutputs = [
35
+ {
36
+ address: '2N6eb6Gosm2jt4o3djFLjb4kuKyPgAj8teZ',
37
+ amount: '300000',
38
+ },
39
+ {
40
+ amount: '300000',
41
+ address: '2N6eb6Gosm2jt4o3djFLjb4kuKyPgAj8teZ',
42
+ },
43
+ ];
44
+ const actualOutputs = [
45
+ {
46
+ address: '2N2womedYhTC3YCDtviFte5G7teQczpVcds',
47
+ amount: 15349374,
48
+ },
49
+ {
50
+ address: '2N6eb6Gosm2jt4o3djFLjb4kuKyPgAj8teZ',
51
+ amount: 300000,
52
+ },
53
+ ];
54
+ // missing should be one entry of the two
55
+ const missingOutputs = (0, parseTransaction_1.outputDifference)(expectedOutputs, actualOutputs);
56
+ missingOutputs.length.should.equal(1);
57
+ missingOutputs[0].address.should.equal('2N6eb6Gosm2jt4o3djFLjb4kuKyPgAj8teZ');
58
+ missingOutputs[0].amount.should.equal('300000');
59
+ });
60
+ it('should preserve all dupes', function () {
61
+ const expectedOutputs = [
62
+ {
63
+ address: '2N6eb6Gosm2jt4o3djFLjb4kuKyPgAj8teZ',
64
+ amount: '300000',
65
+ },
66
+ {
67
+ amount: '300000',
68
+ address: '2N6eb6Gosm2jt4o3djFLjb4kuKyPgAj8teZ',
69
+ },
70
+ ];
71
+ const actualOutputs = [
72
+ {
73
+ address: '2N2womedYhTC3YCDtviFte5G7teQczpVcds',
74
+ amount: 15349374,
75
+ },
76
+ ];
77
+ // missing should be one entry of the two
78
+ const missingOutputs = (0, parseTransaction_1.outputDifference)(expectedOutputs, actualOutputs);
79
+ missingOutputs.length.should.equal(2);
80
+ missingOutputs[0].address.should.equal('2N6eb6Gosm2jt4o3djFLjb4kuKyPgAj8teZ');
81
+ missingOutputs[1].address.should.equal('2N6eb6Gosm2jt4o3djFLjb4kuKyPgAj8teZ');
82
+ missingOutputs[0].amount.should.equal('300000');
83
+ missingOutputs[1].amount.should.equal('300000');
84
+ });
85
+ });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0RGlmZmVyZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Rlc3Qvb3V0cHV0RGlmZmVyZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtCQUFnQjtBQUNoQixzRkFBbUY7QUFFbkYsUUFBUSxDQUFDLDBCQUEwQixFQUFFO0lBQ25DLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRTtRQUMxQyxNQUFNLGVBQWUsR0FBRztZQUN0QjtnQkFDRSxPQUFPLEVBQUUscUNBQXFDO2dCQUM5QyxNQUFNLEVBQUUsUUFBUTthQUNqQjtZQUNEO2dCQUNFLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixPQUFPLEVBQUUscUNBQXFDO2FBQy9DO1NBQ0YsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFHO1lBQ3BCO2dCQUNFLE9BQU8sRUFBRSxxQ0FBcUM7Z0JBQzlDLE1BQU0sRUFBRSxNQUFNO2FBQ2Y7WUFDRDtnQkFDRSxPQUFPLEVBQUUscUNBQXFDO2dCQUM5QyxNQUFNLEVBQUUsUUFBUTthQUNqQjtTQUNGLENBQUM7UUFDRix5Q0FBeUM7UUFFekMsTUFBTSxjQUFjLEdBQUcsSUFBQSxtQ0FBZ0IsRUFBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFeEUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQzlFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywwQkFBMEIsRUFBRTtRQUM3QixNQUFNLGVBQWUsR0FBRztZQUN0QjtnQkFDRSxPQUFPLEVBQUUscUNBQXFDO2dCQUM5QyxNQUFNLEVBQUUsUUFBUTthQUNqQjtZQUNEO2dCQUNFLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixPQUFPLEVBQUUscUNBQXFDO2FBQy9DO1NBQ0YsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFHO1lBQ3BCO2dCQUNFLE9BQU8sRUFBRSxxQ0FBcUM7Z0JBQzlDLE1BQU0sRUFBRSxRQUFRO2FBQ2pCO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLHFDQUFxQztnQkFDOUMsTUFBTSxFQUFFLE1BQU07YUFDZjtTQUNGLENBQUM7UUFDRix5Q0FBeUM7UUFFekMsTUFBTSxjQUFjLEdBQUcsSUFBQSxtQ0FBZ0IsRUFBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFeEUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQzlFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywyQkFBMkIsRUFBRTtRQUM5QixNQUFNLGVBQWUsR0FBRztZQUN0QjtnQkFDRSxPQUFPLEVBQUUscUNBQXFDO2dCQUM5QyxNQUFNLEVBQUUsUUFBUTthQUNqQjtZQUNEO2dCQUNFLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixPQUFPLEVBQUUscUNBQXFDO2FBQy9DO1NBQ0YsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFHO1lBQ3BCO2dCQUNFLE9BQU8sRUFBRSxxQ0FBcUM7Z0JBQzlDLE1BQU0sRUFBRSxRQUFRO2FBQ2pCO1NBQ0YsQ0FBQztRQUNGLHlDQUF5QztRQUV6QyxNQUFNLGNBQWMsR0FBRyxJQUFBLG1DQUFnQixFQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUV4RSxjQUFjLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDOUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDOUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHsgb3V0cHV0RGlmZmVyZW5jZSB9IGZyb20gJy4uL3NyYy90cmFuc2FjdGlvbi9maXhlZFNjcmlwdC9wYXJzZVRyYW5zYWN0aW9uJztcblxuZGVzY3JpYmUoJ01pc3Npbmcgb3V0cHV0IGRldGVjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgaXQoJ3Nob3VsZCByZWNvZ25pemUgY291bnQgbWlzbWF0Y2ggZHVwZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZXhwZWN0ZWRPdXRwdXRzID0gW1xuICAgICAge1xuICAgICAgICBhZGRyZXNzOiAnMk42ZWI2R29zbTJqdDRvM2RqRkxqYjRrdUt5UGdBajh0ZVonLFxuICAgICAgICBhbW91bnQ6ICczMDAwMDAnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYW1vdW50OiAnMzAwMDAwJyxcbiAgICAgICAgYWRkcmVzczogJzJONmViNkdvc20yanQ0bzNkakZMamI0a3VLeVBnQWo4dGVaJyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGNvbnN0IGFjdHVhbE91dHB1dHMgPSBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6ICcyTjZlYjZHb3NtMmp0NG8zZGpGTGpiNGt1S3lQZ0FqOHRlWicsXG4gICAgICAgIGFtb3VudDogMzAwMDAwLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzczogJzJOMndvbWVkWWhUQzNZQ0R0dmlGdGU1Rzd0ZVFjenBWY2RzJyxcbiAgICAgICAgYW1vdW50OiAxNTM0OTM3NCxcbiAgICAgIH0sXG4gICAgXTtcbiAgICAvLyBtaXNzaW5nIHNob3VsZCBiZSBvbmUgZW50cnkgb2YgdGhlIHR3b1xuXG4gICAgY29uc3QgbWlzc2luZ091dHB1dHMgPSBvdXRwdXREaWZmZXJlbmNlKGV4cGVjdGVkT3V0cHV0cywgYWN0dWFsT3V0cHV0cyk7XG5cbiAgICBtaXNzaW5nT3V0cHV0cy5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgIG1pc3NpbmdPdXRwdXRzWzBdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKCcyTjZlYjZHb3NtMmp0NG8zZGpGTGpiNGt1S3lQZ0FqOHRlWicpO1xuICAgIG1pc3NpbmdPdXRwdXRzWzBdLmFtb3VudC5zaG91bGQuZXF1YWwoJzMwMDAwMCcpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIG9yZGVyLWFnbm9zdGljJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGV4cGVjdGVkT3V0cHV0cyA9IFtcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzczogJzJONmViNkdvc20yanQ0bzNkakZMamI0a3VLeVBnQWo4dGVaJyxcbiAgICAgICAgYW1vdW50OiAnMzAwMDAwJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGFtb3VudDogJzMwMDAwMCcsXG4gICAgICAgIGFkZHJlc3M6ICcyTjZlYjZHb3NtMmp0NG8zZGpGTGpiNGt1S3lQZ0FqOHRlWicsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCBhY3R1YWxPdXRwdXRzID0gW1xuICAgICAge1xuICAgICAgICBhZGRyZXNzOiAnMk4yd29tZWRZaFRDM1lDRHR2aUZ0ZTVHN3RlUWN6cFZjZHMnLFxuICAgICAgICBhbW91bnQ6IDE1MzQ5Mzc0LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzczogJzJONmViNkdvc20yanQ0bzNkakZMamI0a3VLeVBnQWo4dGVaJyxcbiAgICAgICAgYW1vdW50OiAzMDAwMDAsXG4gICAgICB9LFxuICAgIF07XG4gICAgLy8gbWlzc2luZyBzaG91bGQgYmUgb25lIGVudHJ5IG9mIHRoZSB0d29cblxuICAgIGNvbnN0IG1pc3NpbmdPdXRwdXRzID0gb3V0cHV0RGlmZmVyZW5jZShleHBlY3RlZE91dHB1dHMsIGFjdHVhbE91dHB1dHMpO1xuXG4gICAgbWlzc2luZ091dHB1dHMubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICBtaXNzaW5nT3V0cHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgnMk42ZWI2R29zbTJqdDRvM2RqRkxqYjRrdUt5UGdBajh0ZVonKTtcbiAgICBtaXNzaW5nT3V0cHV0c1swXS5hbW91bnQuc2hvdWxkLmVxdWFsKCczMDAwMDAnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwcmVzZXJ2ZSBhbGwgZHVwZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZXhwZWN0ZWRPdXRwdXRzID0gW1xuICAgICAge1xuICAgICAgICBhZGRyZXNzOiAnMk42ZWI2R29zbTJqdDRvM2RqRkxqYjRrdUt5UGdBajh0ZVonLFxuICAgICAgICBhbW91bnQ6ICczMDAwMDAnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYW1vdW50OiAnMzAwMDAwJyxcbiAgICAgICAgYWRkcmVzczogJzJONmViNkdvc20yanQ0bzNkakZMamI0a3VLeVBnQWo4dGVaJyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGNvbnN0IGFjdHVhbE91dHB1dHMgPSBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6ICcyTjJ3b21lZFloVEMzWUNEdHZpRnRlNUc3dGVRY3pwVmNkcycsXG4gICAgICAgIGFtb3VudDogMTUzNDkzNzQsXG4gICAgICB9LFxuICAgIF07XG4gICAgLy8gbWlzc2luZyBzaG91bGQgYmUgb25lIGVudHJ5IG9mIHRoZSB0d29cblxuICAgIGNvbnN0IG1pc3NpbmdPdXRwdXRzID0gb3V0cHV0RGlmZmVyZW5jZShleHBlY3RlZE91dHB1dHMsIGFjdHVhbE91dHB1dHMpO1xuXG4gICAgbWlzc2luZ091dHB1dHMubGVuZ3RoLnNob3VsZC5lcXVhbCgyKTtcbiAgICBtaXNzaW5nT3V0cHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgnMk42ZWI2R29zbTJqdDRvM2RqRkxqYjRrdUt5UGdBajh0ZVonKTtcbiAgICBtaXNzaW5nT3V0cHV0c1sxXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgnMk42ZWI2R29zbTJqdDRvM2RqRkxqYjRrdUt5UGdBajh0ZVonKTtcbiAgICBtaXNzaW5nT3V0cHV0c1swXS5hbW91bnQuc2hvdWxkLmVxdWFsKCczMDAwMDAnKTtcbiAgICBtaXNzaW5nT3V0cHV0c1sxXS5hbW91bnQuc2hvdWxkLmVxdWFsKCczMDAwMDAnKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=explainPsbt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainPsbt.d.ts","sourceRoot":"","sources":["../../../../test/transaction/descriptor/explainPsbt.ts"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ const descriptor_1 = require("../../../src/transaction/descriptor");
8
+ const mock_utils_1 = require("../../core/descriptor/psbt/mock.utils");
9
+ const descriptor_utils_1 = require("../../core/descriptor/descriptor.utils");
10
+ const fixtures_utils_1 = require("../../core/fixtures.utils");
11
+ const key_utils_1 = require("../../core/key.utils");
12
+ async function assertEqualFixture(name, v) {
13
+ assert_1.default.deepStrictEqual(v, await (0, fixtures_utils_1.getFixture)(__dirname + '/fixtures/' + name, v));
14
+ }
15
+ function assertSignatureCount(expl, signatures, inputSignatures) {
16
+ assert_1.default.deepStrictEqual(expl.signatures, signatures);
17
+ assert_1.default.deepStrictEqual(expl.inputSignatures, inputSignatures);
18
+ }
19
+ describe('explainPsbt', function () {
20
+ it('has expected values', async function () {
21
+ const psbt = (0, mock_utils_1.mockPsbtDefaultWithDescriptorTemplate)('Wsh2Of3');
22
+ const keys = (0, key_utils_1.getKeyTriple)('a');
23
+ const descriptorMap = (0, descriptor_utils_1.getDescriptorMap)('Wsh2Of3', keys);
24
+ await assertEqualFixture('explainPsbt.a.json', (0, descriptor_1.explainPsbt)(psbt, descriptorMap));
25
+ psbt.signAllInputsHD(keys[0]);
26
+ assertSignatureCount((0, descriptor_1.explainPsbt)(psbt, descriptorMap), 1, [1, 1]);
27
+ psbt.signAllInputsHD(keys[1]);
28
+ assertSignatureCount((0, descriptor_1.explainPsbt)(psbt, descriptorMap), 2, [2, 2]);
29
+ });
30
+ });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvZXhwbGFpblBzYnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFFNUIsb0VBQWtFO0FBQ2xFLHNFQUE4RjtBQUM5Riw2RUFBMEU7QUFDMUUsOERBQXVEO0FBQ3ZELG9EQUFvRDtBQUdwRCxLQUFLLFVBQVUsa0JBQWtCLENBQUMsSUFBWSxFQUFFLENBQVU7SUFDeEQsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBQSwyQkFBVSxFQUFDLFNBQVMsR0FBRyxZQUFZLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEYsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQUMsSUFBNEIsRUFBRSxVQUFrQixFQUFFLGVBQXlCO0lBQ3ZHLGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDcEQsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsUUFBUSxDQUFDLGFBQWEsRUFBRTtJQUN0QixFQUFFLENBQUMscUJBQXFCLEVBQUUsS0FBSztRQUM3QixNQUFNLElBQUksR0FBRyxJQUFBLGtEQUFxQyxFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sSUFBSSxHQUFHLElBQUEsd0JBQVksRUFBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLGFBQWEsR0FBRyxJQUFBLG1DQUFnQixFQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RCxNQUFNLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLElBQUEsd0JBQVcsRUFBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLG9CQUFvQixDQUFDLElBQUEsd0JBQVcsRUFBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixvQkFBb0IsQ0FBQyxJQUFBLHdCQUFXLEVBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IGV4cGxhaW5Qc2J0IH0gZnJvbSAnLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgbW9ja1BzYnREZWZhdWx0V2l0aERlc2NyaXB0b3JUZW1wbGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVzY3JpcHRvci9wc2J0L21vY2sudXRpbHMnO1xuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvck1hcCB9IGZyb20gJy4uLy4uL2NvcmUvZGVzY3JpcHRvci9kZXNjcmlwdG9yLnV0aWxzJztcbmltcG9ydCB7IGdldEZpeHR1cmUgfSBmcm9tICcuLi8uLi9jb3JlL2ZpeHR1cmVzLnV0aWxzJztcbmltcG9ydCB7IGdldEtleVRyaXBsZSB9IGZyb20gJy4uLy4uL2NvcmUva2V5LnV0aWxzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuXG5hc3luYyBmdW5jdGlvbiBhc3NlcnRFcXVhbEZpeHR1cmUobmFtZTogc3RyaW5nLCB2OiB1bmtub3duKSB7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodiwgYXdhaXQgZ2V0Rml4dHVyZShfX2Rpcm5hbWUgKyAnL2ZpeHR1cmVzLycgKyBuYW1lLCB2KSk7XG59XG5cbmZ1bmN0aW9uIGFzc2VydFNpZ25hdHVyZUNvdW50KGV4cGw6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sIHNpZ25hdHVyZXM6IG51bWJlciwgaW5wdXRTaWduYXR1cmVzOiBudW1iZXJbXSkge1xuICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGV4cGwuc2lnbmF0dXJlcywgc2lnbmF0dXJlcyk7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZXhwbC5pbnB1dFNpZ25hdHVyZXMsIGlucHV0U2lnbmF0dXJlcyk7XG59XG5cbmRlc2NyaWJlKCdleHBsYWluUHNidCcsIGZ1bmN0aW9uICgpIHtcbiAgaXQoJ2hhcyBleHBlY3RlZCB2YWx1ZXMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgcHNidCA9IG1vY2tQc2J0RGVmYXVsdFdpdGhEZXNjcmlwdG9yVGVtcGxhdGUoJ1dzaDJPZjMnKTtcbiAgICBjb25zdCBrZXlzID0gZ2V0S2V5VHJpcGxlKCdhJyk7XG4gICAgY29uc3QgZGVzY3JpcHRvck1hcCA9IGdldERlc2NyaXB0b3JNYXAoJ1dzaDJPZjMnLCBrZXlzKTtcbiAgICBhd2FpdCBhc3NlcnRFcXVhbEZpeHR1cmUoJ2V4cGxhaW5Qc2J0LmEuanNvbicsIGV4cGxhaW5Qc2J0KHBzYnQsIGRlc2NyaXB0b3JNYXApKTtcbiAgICBwc2J0LnNpZ25BbGxJbnB1dHNIRChrZXlzWzBdKTtcbiAgICBhc3NlcnRTaWduYXR1cmVDb3VudChleHBsYWluUHNidChwc2J0LCBkZXNjcmlwdG9yTWFwKSwgMSwgWzEsIDFdKTtcbiAgICBwc2J0LnNpZ25BbGxJbnB1dHNIRChrZXlzWzFdKTtcbiAgICBhc3NlcnRTaWduYXR1cmVDb3VudChleHBsYWluUHNidChwc2J0LCBkZXNjcmlwdG9yTWFwKSwgMiwgWzIsIDJdKTtcbiAgfSk7XG59KTtcbiJdfQ==