@bitgo-beta/abstract-utxo 1.6.1-alpha.24 → 1.6.1-alpha.240

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 (232) hide show
  1. package/.eslintrc.js +6 -0
  2. package/CHANGELOG.md +955 -0
  3. package/dist/src/abstractUtxoCoin.d.ts +192 -98
  4. package/dist/src/abstractUtxoCoin.d.ts.map +1 -1
  5. package/dist/src/abstractUtxoCoin.js +290 -541
  6. package/dist/src/core/descriptor/DescriptorMap.d.ts +9 -0
  7. package/dist/src/core/descriptor/DescriptorMap.d.ts.map +1 -0
  8. package/dist/src/core/descriptor/DescriptorMap.js +9 -0
  9. package/dist/src/core/descriptor/Output.d.ts +24 -0
  10. package/dist/src/core/descriptor/Output.d.ts.map +1 -0
  11. package/dist/src/core/descriptor/Output.js +22 -0
  12. package/dist/src/core/descriptor/VirtualSize.d.ts +21 -0
  13. package/dist/src/core/descriptor/VirtualSize.d.ts.map +1 -0
  14. package/dist/src/core/descriptor/VirtualSize.js +83 -0
  15. package/dist/src/core/descriptor/address.d.ts +5 -0
  16. package/dist/src/core/descriptor/address.d.ts.map +1 -0
  17. package/dist/src/core/descriptor/address.js +48 -0
  18. package/dist/src/core/descriptor/index.d.ts +9 -0
  19. package/dist/src/core/descriptor/index.d.ts.map +1 -0
  20. package/dist/src/core/descriptor/index.js +17 -0
  21. package/dist/src/core/descriptor/psbt/assertSatisfiable.d.ts +20 -0
  22. package/dist/src/core/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
  23. package/dist/src/core/descriptor/psbt/assertSatisfiable.js +74 -0
  24. package/dist/src/core/descriptor/psbt/createPsbt.d.ts +15 -0
  25. package/dist/src/core/descriptor/psbt/createPsbt.d.ts.map +1 -0
  26. package/dist/src/core/descriptor/psbt/createPsbt.js +82 -0
  27. package/dist/src/core/descriptor/psbt/findDescriptors.d.ts +22 -0
  28. package/dist/src/core/descriptor/psbt/findDescriptors.d.ts.map +1 -0
  29. package/dist/src/core/descriptor/psbt/findDescriptors.js +74 -0
  30. package/dist/src/core/descriptor/psbt/index.d.ts +5 -0
  31. package/dist/src/core/descriptor/psbt/index.d.ts.map +1 -0
  32. package/dist/src/core/descriptor/psbt/index.js +10 -0
  33. package/dist/src/core/descriptor/psbt/parse.d.ts +27 -0
  34. package/dist/src/core/descriptor/psbt/parse.d.ts.map +1 -0
  35. package/dist/src/core/descriptor/psbt/parse.js +87 -0
  36. package/dist/src/core/descriptor/psbt/wrap.d.ts +12 -0
  37. package/dist/src/core/descriptor/psbt/wrap.d.ts.map +1 -0
  38. package/dist/src/core/descriptor/psbt/wrap.js +76 -0
  39. package/dist/src/core/descriptor/signTxLocal.d.ts +3 -0
  40. package/dist/src/core/descriptor/signTxLocal.d.ts.map +1 -0
  41. package/dist/src/core/descriptor/signTxLocal.js +9 -0
  42. package/dist/src/descriptor/NamedDescriptor.d.ts +7 -0
  43. package/dist/src/descriptor/NamedDescriptor.d.ts.map +1 -0
  44. package/dist/src/descriptor/NamedDescriptor.js +42 -0
  45. package/dist/src/descriptor/assertDescriptorWalletAddress.d.ts +5 -0
  46. package/dist/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -0
  47. package/dist/src/descriptor/assertDescriptorWalletAddress.js +66 -0
  48. package/dist/src/descriptor/builder/builder.d.ts +13 -0
  49. package/dist/src/descriptor/builder/builder.d.ts.map +1 -0
  50. package/dist/src/descriptor/builder/builder.js +37 -0
  51. package/dist/src/descriptor/builder/index.d.ts +3 -0
  52. package/dist/src/descriptor/builder/index.d.ts.map +1 -0
  53. package/dist/src/descriptor/builder/index.js +8 -0
  54. package/dist/src/descriptor/builder/parse.d.ts +5 -0
  55. package/dist/src/descriptor/builder/parse.d.ts.map +1 -0
  56. package/dist/src/descriptor/builder/parse.js +149 -0
  57. package/dist/src/descriptor/descriptorWallet.d.ts +19 -0
  58. package/dist/src/descriptor/descriptorWallet.d.ts.map +1 -0
  59. package/dist/src/descriptor/descriptorWallet.js +54 -0
  60. package/dist/src/descriptor/index.d.ts +6 -0
  61. package/dist/src/descriptor/index.d.ts.map +1 -0
  62. package/dist/src/descriptor/index.js +16 -0
  63. package/dist/src/descriptor/validatePolicy.d.ts +14 -0
  64. package/dist/src/descriptor/validatePolicy.d.ts.map +1 -0
  65. package/dist/src/descriptor/validatePolicy.js +48 -0
  66. package/dist/src/index.d.ts +2 -0
  67. package/dist/src/index.d.ts.map +1 -1
  68. package/dist/src/index.js +30 -2
  69. package/dist/src/keychains.d.ts +48 -0
  70. package/dist/src/keychains.d.ts.map +1 -0
  71. package/dist/src/keychains.js +104 -0
  72. package/dist/src/names.d.ts +13 -0
  73. package/dist/src/names.d.ts.map +1 -0
  74. package/dist/src/names.js +175 -0
  75. package/dist/src/recovery/RecoveryProvider.d.ts +1 -1
  76. package/dist/src/recovery/RecoveryProvider.d.ts.map +1 -1
  77. package/dist/src/recovery/RecoveryProvider.js +2 -4
  78. package/dist/src/recovery/backupKeyRecovery.d.ts +41 -16
  79. package/dist/src/recovery/backupKeyRecovery.d.ts.map +1 -1
  80. package/dist/src/recovery/backupKeyRecovery.js +168 -96
  81. package/dist/src/recovery/baseApi.d.ts +3 -6
  82. package/dist/src/recovery/baseApi.d.ts.map +1 -1
  83. package/dist/src/recovery/baseApi.js +6 -6
  84. package/dist/src/recovery/coingeckoApi.d.ts +0 -3
  85. package/dist/src/recovery/coingeckoApi.d.ts.map +1 -1
  86. package/dist/src/recovery/coingeckoApi.js +1 -4
  87. package/dist/src/recovery/crossChainRecovery.d.ts +12 -3
  88. package/dist/src/recovery/crossChainRecovery.d.ts.map +1 -1
  89. package/dist/src/recovery/crossChainRecovery.js +93 -21
  90. package/dist/src/recovery/index.d.ts +0 -1
  91. package/dist/src/recovery/index.d.ts.map +1 -1
  92. package/dist/src/recovery/index.js +6 -3
  93. package/dist/src/recovery/mempoolApi.d.ts.map +1 -1
  94. package/dist/src/recovery/mempoolApi.js +10 -7
  95. package/dist/src/replayProtection.js +37 -5
  96. package/dist/src/sign.d.ts +29 -8
  97. package/dist/src/sign.d.ts.map +1 -1
  98. package/dist/src/sign.js +114 -15
  99. package/dist/src/transaction/common/verifyPayGoAmount.d.ts +1 -0
  100. package/dist/src/transaction/common/verifyPayGoAmount.d.ts.map +1 -0
  101. package/dist/src/transaction/common/verifyPayGoAmount.js +1 -0
  102. package/dist/src/transaction/descriptor/explainPsbt.d.ts +5 -0
  103. package/dist/src/transaction/descriptor/explainPsbt.d.ts.map +1 -0
  104. package/dist/src/transaction/descriptor/explainPsbt.js +80 -0
  105. package/dist/src/transaction/descriptor/index.d.ts +7 -0
  106. package/dist/src/transaction/descriptor/index.d.ts.map +1 -0
  107. package/dist/src/transaction/descriptor/index.js +14 -0
  108. package/dist/src/transaction/descriptor/parse.d.ts +14 -0
  109. package/dist/src/transaction/descriptor/parse.d.ts.map +1 -0
  110. package/dist/src/transaction/descriptor/parse.js +115 -0
  111. package/dist/src/transaction/descriptor/parseToAmountType.d.ts +13 -0
  112. package/dist/src/transaction/descriptor/parseToAmountType.d.ts.map +1 -0
  113. package/dist/src/transaction/descriptor/parseToAmountType.js +60 -0
  114. package/dist/src/transaction/descriptor/recipient.d.ts +5 -0
  115. package/dist/src/transaction/descriptor/recipient.d.ts.map +1 -0
  116. package/dist/src/transaction/descriptor/recipient.js +3 -0
  117. package/dist/src/transaction/descriptor/signPsbt.d.ts +25 -0
  118. package/dist/src/transaction/descriptor/signPsbt.d.ts.map +1 -0
  119. package/dist/src/transaction/descriptor/signPsbt.js +43 -0
  120. package/dist/src/transaction/descriptor/verifyTransaction.d.ts +33 -0
  121. package/dist/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -0
  122. package/dist/src/transaction/descriptor/verifyTransaction.js +105 -0
  123. package/dist/src/transaction/explainTransaction.d.ts +17 -0
  124. package/dist/src/transaction/explainTransaction.d.ts.map +1 -0
  125. package/dist/src/transaction/explainTransaction.js +67 -0
  126. package/dist/src/transaction/fetchInputs.d.ts +26 -0
  127. package/dist/src/transaction/fetchInputs.d.ts.map +1 -0
  128. package/dist/src/transaction/fetchInputs.js +109 -0
  129. package/dist/src/transaction/fixedScript/explainTransaction.d.ts +30 -0
  130. package/dist/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
  131. package/dist/src/transaction/fixedScript/explainTransaction.js +216 -0
  132. package/dist/src/transaction/fixedScript/index.d.ts +6 -0
  133. package/dist/src/transaction/fixedScript/index.d.ts.map +1 -0
  134. package/dist/src/transaction/fixedScript/index.js +13 -0
  135. package/dist/src/transaction/fixedScript/parseOutput.d.ts +26 -0
  136. package/dist/src/transaction/fixedScript/parseOutput.d.ts.map +1 -0
  137. package/dist/src/transaction/fixedScript/parseOutput.js +213 -0
  138. package/dist/src/transaction/fixedScript/parseTransaction.d.ts +7 -0
  139. package/dist/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
  140. package/dist/src/transaction/fixedScript/parseTransaction.js +203 -0
  141. package/dist/src/transaction/fixedScript/signTransaction.d.ts +17 -0
  142. package/dist/src/transaction/fixedScript/signTransaction.d.ts.map +1 -0
  143. package/dist/src/transaction/fixedScript/signTransaction.js +138 -0
  144. package/dist/src/transaction/fixedScript/verifyTransaction.d.ts +4 -0
  145. package/dist/src/transaction/fixedScript/verifyTransaction.d.ts.map +1 -0
  146. package/dist/src/transaction/fixedScript/verifyTransaction.js +176 -0
  147. package/dist/src/transaction/index.d.ts +6 -0
  148. package/dist/src/transaction/index.d.ts.map +1 -0
  149. package/dist/src/transaction/index.js +26 -0
  150. package/dist/src/transaction/outputDifference.d.ts +40 -0
  151. package/dist/src/transaction/outputDifference.d.ts.map +1 -0
  152. package/dist/src/transaction/outputDifference.js +47 -0
  153. package/dist/src/transaction/parseTransaction.d.ts +3 -0
  154. package/dist/src/transaction/parseTransaction.d.ts.map +1 -0
  155. package/dist/src/transaction/parseTransaction.js +48 -0
  156. package/dist/src/transaction/recipient.d.ts +29 -0
  157. package/dist/src/transaction/recipient.d.ts.map +1 -0
  158. package/dist/src/transaction/recipient.js +88 -0
  159. package/dist/src/transaction/signTransaction.d.ts +6 -0
  160. package/dist/src/transaction/signTransaction.d.ts.map +1 -0
  161. package/dist/src/transaction/signTransaction.js +102 -0
  162. package/dist/src/transaction/verifyTransaction.d.ts +4 -0
  163. package/dist/src/transaction/verifyTransaction.d.ts.map +1 -0
  164. package/dist/src/transaction/verifyTransaction.js +50 -0
  165. package/dist/src/verifyKey.d.ts +28 -0
  166. package/dist/src/verifyKey.d.ts.map +1 -0
  167. package/dist/src/verifyKey.js +164 -0
  168. package/dist/src/wallet.d.ts +12 -0
  169. package/dist/src/wallet.d.ts.map +1 -0
  170. package/dist/src/wallet.js +3 -0
  171. package/dist/test/core/descriptor/descriptor.utils.d.ts +11 -0
  172. package/dist/test/core/descriptor/descriptor.utils.d.ts.map +1 -0
  173. package/dist/test/core/descriptor/descriptor.utils.js +63 -0
  174. package/dist/test/core/descriptor/psbt/VirtualSize.d.ts +2 -0
  175. package/dist/test/core/descriptor/psbt/VirtualSize.d.ts.map +1 -0
  176. package/dist/test/core/descriptor/psbt/VirtualSize.js +78 -0
  177. package/dist/test/core/descriptor/psbt/assertSatisfiable.d.ts +2 -0
  178. package/dist/test/core/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
  179. package/dist/test/core/descriptor/psbt/assertSatisfiable.js +56 -0
  180. package/dist/test/core/descriptor/psbt/createPsbt.d.ts +2 -0
  181. package/dist/test/core/descriptor/psbt/createPsbt.d.ts.map +1 -0
  182. package/dist/test/core/descriptor/psbt/createPsbt.js +85 -0
  183. package/dist/test/core/descriptor/psbt/findDescriptors.d.ts +2 -0
  184. package/dist/test/core/descriptor/psbt/findDescriptors.d.ts.map +1 -0
  185. package/dist/test/core/descriptor/psbt/findDescriptors.js +66 -0
  186. package/dist/test/core/descriptor/psbt/mock.utils.d.ts +34 -0
  187. package/dist/test/core/descriptor/psbt/mock.utils.d.ts.map +1 -0
  188. package/dist/test/core/descriptor/psbt/mock.utils.js +87 -0
  189. package/dist/test/core/descriptor/psbt/parse.d.ts +2 -0
  190. package/dist/test/core/descriptor/psbt/parse.d.ts.map +1 -0
  191. package/dist/test/core/descriptor/psbt/parse.js +32 -0
  192. package/dist/test/core/descriptor/psbt/psbt.utils.d.ts +4 -0
  193. package/dist/test/core/descriptor/psbt/psbt.utils.d.ts.map +1 -0
  194. package/dist/test/core/descriptor/psbt/psbt.utils.js +20 -0
  195. package/dist/test/core/fixtures.utils.d.ts +15 -0
  196. package/dist/test/core/fixtures.utils.d.ts.map +1 -0
  197. package/dist/test/core/fixtures.utils.js +114 -0
  198. package/dist/test/core/key.utils.d.ts +16 -0
  199. package/dist/test/core/key.utils.d.ts.map +1 -0
  200. package/dist/test/core/key.utils.js +59 -0
  201. package/dist/test/core/toPlainObject.utils.d.ts +11 -0
  202. package/dist/test/core/toPlainObject.utils.d.ts.map +1 -0
  203. package/dist/test/core/toPlainObject.utils.js +75 -0
  204. package/dist/test/descriptor/builder.d.ts +2 -0
  205. package/dist/test/descriptor/builder.d.ts.map +1 -0
  206. package/dist/test/descriptor/builder.js +72 -0
  207. package/dist/test/descriptor/descriptorWallet.d.ts +2 -0
  208. package/dist/test/descriptor/descriptorWallet.d.ts.map +1 -0
  209. package/dist/test/descriptor/descriptorWallet.js +27 -0
  210. package/dist/test/transaction/descriptor/explainPsbt.d.ts +2 -0
  211. package/dist/test/transaction/descriptor/explainPsbt.d.ts.map +1 -0
  212. package/dist/test/transaction/descriptor/explainPsbt.js +28 -0
  213. package/dist/test/transaction/descriptor/fixtures.utils.d.ts +2 -0
  214. package/dist/test/transaction/descriptor/fixtures.utils.d.ts.map +1 -0
  215. package/dist/test/transaction/descriptor/fixtures.utils.js +12 -0
  216. package/dist/test/transaction/descriptor/outputDifference.d.ts +2 -0
  217. package/dist/test/transaction/descriptor/outputDifference.d.ts.map +1 -0
  218. package/dist/test/transaction/descriptor/outputDifference.js +76 -0
  219. package/dist/test/transaction/descriptor/parse.d.ts +2 -0
  220. package/dist/test/transaction/descriptor/parse.d.ts.map +1 -0
  221. package/dist/test/transaction/descriptor/parse.js +78 -0
  222. package/dist/test/transaction/descriptor/sign.d.ts +2 -0
  223. package/dist/test/transaction/descriptor/sign.d.ts.map +1 -0
  224. package/dist/test/transaction/descriptor/sign.js +33 -0
  225. package/dist/tsconfig.tsbuildinfo +1 -7906
  226. package/package.json +16 -11
  227. package/dist/src/parseOutput.d.ts +0 -22
  228. package/dist/src/parseOutput.d.ts.map +0 -1
  229. package/dist/src/parseOutput.js +0 -170
  230. package/dist/src/recovery/smartbitApi.d.ts +0 -11
  231. package/dist/src/recovery/smartbitApi.d.ts.map +0 -1
  232. package/dist/src/recovery/smartbitApi.js +0 -36
@@ -0,0 +1,78 @@
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 VirtualSize_1 = require("../../../../src/core/descriptor/VirtualSize");
38
+ const descriptor_utils_1 = require("../descriptor.utils");
39
+ describe('VirtualSize', function () {
40
+ describe('getInputVSizesForDescriptorWallet', function () {
41
+ it('returns the input virtual sizes for a descriptor wallet', function () {
42
+ assert.deepStrictEqual((0, VirtualSize_1.getInputVSizesForDescriptors)(new Map([
43
+ ['foo', (0, descriptor_utils_1.getDescriptor)('Wsh2Of2')],
44
+ ['bar', (0, descriptor_utils_1.getDescriptor)('Wsh2Of2')],
45
+ ])), {
46
+ foo: 96,
47
+ bar: 96,
48
+ });
49
+ assert.deepStrictEqual((0, VirtualSize_1.getInputVSizesForDescriptors)((0, descriptor_utils_1.getDescriptorMap)('Wsh2Of3')), {
50
+ external: 105,
51
+ internal: 105,
52
+ });
53
+ });
54
+ });
55
+ describe('getChangeOutputVSizesForDescriptor', function () {
56
+ it('returns the output virtual sizes for a descriptor', function () {
57
+ assert.deepStrictEqual((0, VirtualSize_1.getChangeOutputVSizesForDescriptor)((0, descriptor_utils_1.getDescriptor)('Wsh2Of2')), {
58
+ inputVSize: 96,
59
+ outputVSize: 34,
60
+ });
61
+ });
62
+ });
63
+ describe('getVirtualSize', function () {
64
+ it('returns expected virtual size', function () {
65
+ assert.deepStrictEqual((0, VirtualSize_1.getVirtualSize)({
66
+ inputs: [{ descriptorName: 'internal' }],
67
+ outputs: [{ script: Buffer.alloc(32) }],
68
+ }, (0, descriptor_utils_1.getDescriptorMap)('Wsh2Of3')), 157);
69
+ const descriptor = (0, descriptor_utils_1.getDescriptor)('Wsh2Of3');
70
+ assert.deepStrictEqual((0, VirtualSize_1.getVirtualSize)({
71
+ /* as proof we can pass 10_000 inputs */
72
+ inputs: Array.from({ length: 10000 }).map(() => descriptor),
73
+ outputs: [{ script: Buffer.alloc(32) }],
74
+ }), 1050052);
75
+ });
76
+ });
77
+ });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlydHVhbFNpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L2NvcmUvZGVzY3JpcHRvci9wc2J0L1ZpcnR1YWxTaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBRWpDLDZFQUlxRDtBQUNyRCwwREFBc0U7QUFFdEUsUUFBUSxDQUFDLGFBQWEsRUFBRTtJQUN0QixRQUFRLENBQUMsbUNBQW1DLEVBQUU7UUFDNUMsRUFBRSxDQUFDLHlEQUF5RCxFQUFFO1lBQzVELE1BQU0sQ0FBQyxlQUFlLENBQ3BCLElBQUEsMENBQTRCLEVBQzFCLElBQUksR0FBRyxDQUFDO2dCQUNOLENBQUMsS0FBSyxFQUFFLElBQUEsZ0NBQWEsRUFBQyxTQUFTLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxLQUFLLEVBQUUsSUFBQSxnQ0FBYSxFQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ2xDLENBQUMsQ0FDSCxFQUNEO2dCQUNFLEdBQUcsRUFBRSxFQUFFO2dCQUNQLEdBQUcsRUFBRSxFQUFFO2FBQ1IsQ0FDRixDQUFDO1lBQ0YsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLDBDQUE0QixFQUFDLElBQUEsbUNBQWdCLEVBQUMsU0FBUyxDQUFDLENBQUMsRUFBRTtnQkFDaEYsUUFBUSxFQUFFLEdBQUc7Z0JBQ2IsUUFBUSxFQUFFLEdBQUc7YUFDZCxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLG9DQUFvQyxFQUFFO1FBQzdDLEVBQUUsQ0FBQyxtREFBbUQsRUFBRTtZQUN0RCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsZ0RBQWtDLEVBQUMsSUFBQSxnQ0FBYSxFQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ25GLFVBQVUsRUFBRSxFQUFFO2dCQUNkLFdBQVcsRUFBRSxFQUFFO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsZ0JBQWdCLEVBQUU7UUFDekIsRUFBRSxDQUFDLCtCQUErQixFQUFFO1lBQ2xDLE1BQU0sQ0FBQyxlQUFlLENBQ3BCLElBQUEsNEJBQWMsRUFDWjtnQkFDRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsQ0FBQztnQkFDeEMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ3hDLEVBQ0QsSUFBQSxtQ0FBZ0IsRUFBQyxTQUFTLENBQUMsQ0FDNUIsRUFDRCxHQUFHLENBQ0osQ0FBQztZQUVGLE1BQU0sVUFBVSxHQUFHLElBQUEsZ0NBQWEsRUFBQyxTQUFTLENBQUMsQ0FBQztZQUU1QyxNQUFNLENBQUMsZUFBZSxDQUNwQixJQUFBLDRCQUFjLEVBQUM7Z0JBQ2Isd0NBQXdDO2dCQUN4QyxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7Z0JBQzVELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQzthQUN4QyxDQUFDLEVBQ0YsT0FBUyxDQUNWLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHtcbiAgZ2V0Q2hhbmdlT3V0cHV0VlNpemVzRm9yRGVzY3JpcHRvcixcbiAgZ2V0SW5wdXRWU2l6ZXNGb3JEZXNjcmlwdG9ycyxcbiAgZ2V0VmlydHVhbFNpemUsXG59IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9jb3JlL2Rlc2NyaXB0b3IvVmlydHVhbFNpemUnO1xuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvciwgZ2V0RGVzY3JpcHRvck1hcCB9IGZyb20gJy4uL2Rlc2NyaXB0b3IudXRpbHMnO1xuXG5kZXNjcmliZSgnVmlydHVhbFNpemUnLCBmdW5jdGlvbiAoKSB7XG4gIGRlc2NyaWJlKCdnZXRJbnB1dFZTaXplc0ZvckRlc2NyaXB0b3JXYWxsZXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3JldHVybnMgdGhlIGlucHV0IHZpcnR1YWwgc2l6ZXMgZm9yIGEgZGVzY3JpcHRvciB3YWxsZXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFxuICAgICAgICBnZXRJbnB1dFZTaXplc0ZvckRlc2NyaXB0b3JzKFxuICAgICAgICAgIG5ldyBNYXAoW1xuICAgICAgICAgICAgWydmb28nLCBnZXREZXNjcmlwdG9yKCdXc2gyT2YyJyldLFxuICAgICAgICAgICAgWydiYXInLCBnZXREZXNjcmlwdG9yKCdXc2gyT2YyJyldLFxuICAgICAgICAgIF0pXG4gICAgICAgICksXG4gICAgICAgIHtcbiAgICAgICAgICBmb286IDk2LFxuICAgICAgICAgIGJhcjogOTYsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGdldElucHV0VlNpemVzRm9yRGVzY3JpcHRvcnMoZ2V0RGVzY3JpcHRvck1hcCgnV3NoMk9mMycpKSwge1xuICAgICAgICBleHRlcm5hbDogMTA1LFxuICAgICAgICBpbnRlcm5hbDogMTA1LFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRDaGFuZ2VPdXRwdXRWU2l6ZXNGb3JEZXNjcmlwdG9yJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdyZXR1cm5zIHRoZSBvdXRwdXQgdmlydHVhbCBzaXplcyBmb3IgYSBkZXNjcmlwdG9yJywgZnVuY3Rpb24gKCkge1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChnZXRDaGFuZ2VPdXRwdXRWU2l6ZXNGb3JEZXNjcmlwdG9yKGdldERlc2NyaXB0b3IoJ1dzaDJPZjInKSksIHtcbiAgICAgICAgaW5wdXRWU2l6ZTogOTYsXG4gICAgICAgIG91dHB1dFZTaXplOiAzNCxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0VmlydHVhbFNpemUnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3JldHVybnMgZXhwZWN0ZWQgdmlydHVhbCBzaXplJywgZnVuY3Rpb24gKCkge1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChcbiAgICAgICAgZ2V0VmlydHVhbFNpemUoXG4gICAgICAgICAge1xuICAgICAgICAgICAgaW5wdXRzOiBbeyBkZXNjcmlwdG9yTmFtZTogJ2ludGVybmFsJyB9XSxcbiAgICAgICAgICAgIG91dHB1dHM6IFt7IHNjcmlwdDogQnVmZmVyLmFsbG9jKDMyKSB9XSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdldERlc2NyaXB0b3JNYXAoJ1dzaDJPZjMnKVxuICAgICAgICApLFxuICAgICAgICAxNTdcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBnZXREZXNjcmlwdG9yKCdXc2gyT2YzJyk7XG5cbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoXG4gICAgICAgIGdldFZpcnR1YWxTaXplKHtcbiAgICAgICAgICAvKiBhcyBwcm9vZiB3ZSBjYW4gcGFzcyAxMF8wMDAgaW5wdXRzICovXG4gICAgICAgICAgaW5wdXRzOiBBcnJheS5mcm9tKHsgbGVuZ3RoOiAxMF8wMDAgfSkubWFwKCgpID0+IGRlc2NyaXB0b3IpLFxuICAgICAgICAgIG91dHB1dHM6IFt7IHNjcmlwdDogQnVmZmVyLmFsbG9jKDMyKSB9XSxcbiAgICAgICAgfSksXG4gICAgICAgIDFfMDUwXzA1MlxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=assertSatisfiable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertSatisfiable.d.ts","sourceRoot":"","sources":["../../../../../test/core/descriptor/psbt/assertSatisfiable.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
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 wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
38
+ const descriptor_utils_1 = require("../descriptor.utils");
39
+ const assertSatisfiable_1 = require("../../../../src/core/descriptor/psbt/assertSatisfiable");
40
+ function d(s) {
41
+ return wasm_miniscript_1.Descriptor.fromString(s, 'derivable');
42
+ }
43
+ describe('assertSatisfiable', function () {
44
+ describe('getRequiredLocktime', function () {
45
+ const xpubs = (0, descriptor_utils_1.getDefaultXPubs)();
46
+ it('has expected result', function () {
47
+ // OP_DROP
48
+ assert.strictEqual((0, assertSatisfiable_1.getRequiredLocktime)(d(`wsh(and_v(r:after(100),pk(${xpubs[0]})))`)), 100);
49
+ // OP_VERIFY
50
+ assert.strictEqual((0, assertSatisfiable_1.getRequiredLocktime)(d(`wsh(and_v(v:after(100),pk(${xpubs[0]})))`)), 100);
51
+ // no locktime at all
52
+ assert.strictEqual((0, assertSatisfiable_1.getRequiredLocktime)(d(`wsh(pk(${xpubs[0]}))`)), undefined);
53
+ });
54
+ });
55
+ });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0U2F0aXNmaWFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L2NvcmUvZGVzY3JpcHRvci9wc2J0L2Fzc2VydFNhdGlzZmlhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBRWpDLDREQUFvRDtBQUVwRCwwREFBc0Q7QUFDdEQsOEZBQTZGO0FBRTdGLFNBQVMsQ0FBQyxDQUFDLENBQVM7SUFDbEIsT0FBTyw0QkFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELFFBQVEsQ0FBQyxtQkFBbUIsRUFBRTtJQUM1QixRQUFRLENBQUMscUJBQXFCLEVBQUU7UUFDOUIsTUFBTSxLQUFLLEdBQUcsSUFBQSxrQ0FBZSxHQUFFLENBQUM7UUFDaEMsRUFBRSxDQUFDLHFCQUFxQixFQUFFO1lBQ3hCLFVBQVU7WUFDVixNQUFNLENBQUMsV0FBVyxDQUFDLElBQUEsdUNBQW1CLEVBQUMsQ0FBQyxDQUFDLDZCQUE2QixLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDNUYsWUFBWTtZQUNaLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBQSx1Q0FBbUIsRUFBQyxDQUFDLENBQUMsNkJBQTZCLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM1RixxQkFBcUI7WUFDckIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLHVDQUFtQixFQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNoRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuXG5pbXBvcnQgeyBnZXREZWZhdWx0WFB1YnMgfSBmcm9tICcuLi9kZXNjcmlwdG9yLnV0aWxzJztcbmltcG9ydCB7IGdldFJlcXVpcmVkTG9ja3RpbWUgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvY29yZS9kZXNjcmlwdG9yL3BzYnQvYXNzZXJ0U2F0aXNmaWFibGUnO1xuXG5mdW5jdGlvbiBkKHM6IHN0cmluZyk6IERlc2NyaXB0b3Ige1xuICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKHMsICdkZXJpdmFibGUnKTtcbn1cblxuZGVzY3JpYmUoJ2Fzc2VydFNhdGlzZmlhYmxlJywgZnVuY3Rpb24gKCkge1xuICBkZXNjcmliZSgnZ2V0UmVxdWlyZWRMb2NrdGltZScsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB4cHVicyA9IGdldERlZmF1bHRYUHVicygpO1xuICAgIGl0KCdoYXMgZXhwZWN0ZWQgcmVzdWx0JywgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gT1BfRFJPUFxuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdldFJlcXVpcmVkTG9ja3RpbWUoZChgd3NoKGFuZF92KHI6YWZ0ZXIoMTAwKSxwaygke3hwdWJzWzBdfSkpKWApKSwgMTAwKTtcbiAgICAgIC8vIE9QX1ZFUklGWVxuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdldFJlcXVpcmVkTG9ja3RpbWUoZChgd3NoKGFuZF92KHY6YWZ0ZXIoMTAwKSxwaygke3hwdWJzWzBdfSkpKWApKSwgMTAwKTtcbiAgICAgIC8vIG5vIGxvY2t0aW1lIGF0IGFsbFxuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdldFJlcXVpcmVkTG9ja3RpbWUoZChgd3NoKHBrKCR7eHB1YnNbMF19KSlgKSksIHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=createPsbt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPsbt.d.ts","sourceRoot":"","sources":["../../../../../test/core/descriptor/psbt/createPsbt.ts"],"names":[],"mappings":""}
@@ -0,0 +1,85 @@
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 utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
38
+ const descriptor_utils_1 = require("../descriptor.utils");
39
+ const fixtures_utils_1 = require("../../fixtures.utils");
40
+ const descriptor_1 = require("../../../../src/core/descriptor");
41
+ const key_utils_1 = require("../../key.utils");
42
+ const mock_utils_1 = require("./mock.utils");
43
+ const psbt_utils_1 = require("./psbt.utils");
44
+ async function assertEqualsFixture(t, filename, value) {
45
+ filename = __dirname + '/fixtures/' + t + '.' + filename;
46
+ if (value instanceof Buffer) {
47
+ return assert.deepStrictEqual(value.toString('hex'), (await (0, fixtures_utils_1.getFixture)(filename, value)).toString('hex'));
48
+ }
49
+ if (value instanceof utxolib.Psbt) {
50
+ return assert.deepStrictEqual((0, psbt_utils_1.toPlainObjectFromPsbt)(value), await (0, fixtures_utils_1.getFixture)(filename, (0, psbt_utils_1.toPlainObjectFromPsbt)(value)));
51
+ }
52
+ if (value instanceof utxolib.Transaction) {
53
+ return assert.deepStrictEqual((0, psbt_utils_1.toPlainObjectFromTx)(value), await (0, fixtures_utils_1.getFixture)(filename, (0, psbt_utils_1.toPlainObjectFromTx)(value)));
54
+ }
55
+ throw new Error(`unknown value type: ${typeof value}`);
56
+ }
57
+ function describeCreatePsbt(t) {
58
+ describe(`createPsbt ${t}`, function () {
59
+ const keysA = (0, key_utils_1.getKeyTriple)('a');
60
+ function getSignedPsbt(psbt, keys) {
61
+ const cloned = utxolib.bitgo.createPsbtFromBuffer(psbt.toBuffer(), psbt.network);
62
+ for (const key of keys) {
63
+ cloned.signAllInputsHD(key);
64
+ }
65
+ return cloned;
66
+ }
67
+ it('creates psbt with expected properties', async function () {
68
+ const psbt = (0, mock_utils_1.mockPsbtDefaultWithDescriptorTemplate)(t, (0, descriptor_utils_1.getPsbtParams)(t));
69
+ await assertEqualsFixture(t, 'createPsbt.json', psbt);
70
+ const psbtSignedA = getSignedPsbt(psbt, keysA.slice(0, 1));
71
+ await assertEqualsFixture(t, 'createPsbtSignedA.json', psbtSignedA);
72
+ const psbtSignedAB = getSignedPsbt(psbt, keysA.slice(0, 2));
73
+ await assertEqualsFixture(t, 'createPsbtSignedAB.json', psbtSignedAB);
74
+ const psbtFinal = psbtSignedAB.clone();
75
+ (0, descriptor_1.finalizePsbt)(psbtFinal);
76
+ await assertEqualsFixture(t, 'createPsbtFinal.json', psbtFinal);
77
+ const networkTx = psbtFinal.extractTransaction();
78
+ await assertEqualsFixture(t, 'createPsbtFinalTx.json', networkTx);
79
+ await assertEqualsFixture(t, 'createPsbtFinalTx.hex', networkTx.toBuffer());
80
+ });
81
+ });
82
+ }
83
+ describeCreatePsbt('Wsh2Of3');
84
+ describeCreatePsbt('ShWsh2Of3CltvDrop');
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlUHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvY29yZS9kZXNjcmlwdG9yL3BzYnQvY3JlYXRlUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUVqQyw4REFBZ0Q7QUFHaEQsMERBQXdFO0FBQ3hFLHlEQUFrRDtBQUNsRCxnRUFBK0Q7QUFDL0QsK0NBQStDO0FBRS9DLDZDQUFxRTtBQUNyRSw2Q0FBMEU7QUFFMUUsS0FBSyxVQUFVLG1CQUFtQixDQUFDLENBQXFCLEVBQUUsUUFBZ0IsRUFBRSxLQUFjO0lBQ3hGLFFBQVEsR0FBRyxTQUFTLEdBQUcsWUFBWSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDO0lBQ3pELElBQUksS0FBSyxZQUFZLE1BQU0sRUFBRSxDQUFDO1FBQzVCLE9BQU8sTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFBLDJCQUFVLEVBQVMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVELElBQUksS0FBSyxZQUFZLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQyxPQUFPLE1BQU0sQ0FBQyxlQUFlLENBQzNCLElBQUEsa0NBQXFCLEVBQUMsS0FBSyxDQUFDLEVBQzVCLE1BQU0sSUFBQSwyQkFBVSxFQUFDLFFBQVEsRUFBRSxJQUFBLGtDQUFxQixFQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3pELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxLQUFLLFlBQVksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLGdDQUFtQixFQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sSUFBQSwyQkFBVSxFQUFDLFFBQVEsRUFBRSxJQUFBLGdDQUFtQixFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLENBQXFCO0lBQy9DLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUEsd0JBQVksRUFBQyxHQUFHLENBQUMsQ0FBQztRQUVoQyxTQUFTLGFBQWEsQ0FBQyxJQUE0QixFQUFFLElBQXNCO1lBQ3pFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN2QixNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEtBQUs7WUFDL0MsTUFBTSxJQUFJLEdBQUcsSUFBQSxrREFBcUMsRUFBQyxDQUFDLEVBQUUsSUFBQSxnQ0FBYSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEUsTUFBTSxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdEQsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sbUJBQW1CLENBQUMsQ0FBQyxFQUFFLHdCQUF3QixFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RCxNQUFNLG1CQUFtQixDQUFDLENBQUMsRUFBRSx5QkFBeUIsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUN0RSxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkMsSUFBQSx5QkFBWSxFQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sbUJBQW1CLENBQUMsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ2pELE1BQU0sbUJBQW1CLENBQUMsQ0FBQyxFQUFFLHdCQUF3QixFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sbUJBQW1CLENBQUMsQ0FBQyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDOUIsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yVGVtcGxhdGUsIGdldFBzYnRQYXJhbXMgfSBmcm9tICcuLi9kZXNjcmlwdG9yLnV0aWxzJztcbmltcG9ydCB7IGdldEZpeHR1cmUgfSBmcm9tICcuLi8uLi9maXh0dXJlcy51dGlscyc7XG5pbXBvcnQgeyBmaW5hbGl6ZVBzYnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvY29yZS9kZXNjcmlwdG9yJztcbmltcG9ydCB7IGdldEtleVRyaXBsZSB9IGZyb20gJy4uLy4uL2tleS51dGlscyc7XG5cbmltcG9ydCB7IG1vY2tQc2J0RGVmYXVsdFdpdGhEZXNjcmlwdG9yVGVtcGxhdGUgfSBmcm9tICcuL21vY2sudXRpbHMnO1xuaW1wb3J0IHsgdG9QbGFpbk9iamVjdEZyb21Qc2J0LCB0b1BsYWluT2JqZWN0RnJvbVR4IH0gZnJvbSAnLi9wc2J0LnV0aWxzJztcblxuYXN5bmMgZnVuY3Rpb24gYXNzZXJ0RXF1YWxzRml4dHVyZSh0OiBEZXNjcmlwdG9yVGVtcGxhdGUsIGZpbGVuYW1lOiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKSB7XG4gIGZpbGVuYW1lID0gX19kaXJuYW1lICsgJy9maXh0dXJlcy8nICsgdCArICcuJyArIGZpbGVuYW1lO1xuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBCdWZmZXIpIHtcbiAgICByZXR1cm4gYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh2YWx1ZS50b1N0cmluZygnaGV4JyksIChhd2FpdCBnZXRGaXh0dXJlPEJ1ZmZlcj4oZmlsZW5hbWUsIHZhbHVlKSkudG9TdHJpbmcoJ2hleCcpKTtcbiAgfVxuXG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIHV0eG9saWIuUHNidCkge1xuICAgIHJldHVybiBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFxuICAgICAgdG9QbGFpbk9iamVjdEZyb21Qc2J0KHZhbHVlKSxcbiAgICAgIGF3YWl0IGdldEZpeHR1cmUoZmlsZW5hbWUsIHRvUGxhaW5PYmplY3RGcm9tUHNidCh2YWx1ZSkpXG4gICAgKTtcbiAgfVxuXG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIHV0eG9saWIuVHJhbnNhY3Rpb24pIHtcbiAgICByZXR1cm4gYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0b1BsYWluT2JqZWN0RnJvbVR4KHZhbHVlKSwgYXdhaXQgZ2V0Rml4dHVyZShmaWxlbmFtZSwgdG9QbGFpbk9iamVjdEZyb21UeCh2YWx1ZSkpKTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgdW5rbm93biB2YWx1ZSB0eXBlOiAke3R5cGVvZiB2YWx1ZX1gKTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVDcmVhdGVQc2J0KHQ6IERlc2NyaXB0b3JUZW1wbGF0ZSkge1xuICBkZXNjcmliZShgY3JlYXRlUHNidCAke3R9YCwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGtleXNBID0gZ2V0S2V5VHJpcGxlKCdhJyk7XG5cbiAgICBmdW5jdGlvbiBnZXRTaWduZWRQc2J0KHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsIGtleXM6IEJJUDMySW50ZXJmYWNlW10pIHtcbiAgICAgIGNvbnN0IGNsb25lZCA9IHV0eG9saWIuYml0Z28uY3JlYXRlUHNidEZyb21CdWZmZXIocHNidC50b0J1ZmZlcigpLCBwc2J0Lm5ldHdvcmspO1xuICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICBjbG9uZWQuc2lnbkFsbElucHV0c0hEKGtleSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2xvbmVkO1xuICAgIH1cblxuICAgIGl0KCdjcmVhdGVzIHBzYnQgd2l0aCBleHBlY3RlZCBwcm9wZXJ0aWVzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcHNidCA9IG1vY2tQc2J0RGVmYXVsdFdpdGhEZXNjcmlwdG9yVGVtcGxhdGUodCwgZ2V0UHNidFBhcmFtcyh0KSk7XG4gICAgICBhd2FpdCBhc3NlcnRFcXVhbHNGaXh0dXJlKHQsICdjcmVhdGVQc2J0Lmpzb24nLCBwc2J0KTtcbiAgICAgIGNvbnN0IHBzYnRTaWduZWRBID0gZ2V0U2lnbmVkUHNidChwc2J0LCBrZXlzQS5zbGljZSgwLCAxKSk7XG4gICAgICBhd2FpdCBhc3NlcnRFcXVhbHNGaXh0dXJlKHQsICdjcmVhdGVQc2J0U2lnbmVkQS5qc29uJywgcHNidFNpZ25lZEEpO1xuICAgICAgY29uc3QgcHNidFNpZ25lZEFCID0gZ2V0U2lnbmVkUHNidChwc2J0LCBrZXlzQS5zbGljZSgwLCAyKSk7XG4gICAgICBhd2FpdCBhc3NlcnRFcXVhbHNGaXh0dXJlKHQsICdjcmVhdGVQc2J0U2lnbmVkQUIuanNvbicsIHBzYnRTaWduZWRBQik7XG4gICAgICBjb25zdCBwc2J0RmluYWwgPSBwc2J0U2lnbmVkQUIuY2xvbmUoKTtcbiAgICAgIGZpbmFsaXplUHNidChwc2J0RmluYWwpO1xuICAgICAgYXdhaXQgYXNzZXJ0RXF1YWxzRml4dHVyZSh0LCAnY3JlYXRlUHNidEZpbmFsLmpzb24nLCBwc2J0RmluYWwpO1xuICAgICAgY29uc3QgbmV0d29ya1R4ID0gcHNidEZpbmFsLmV4dHJhY3RUcmFuc2FjdGlvbigpO1xuICAgICAgYXdhaXQgYXNzZXJ0RXF1YWxzRml4dHVyZSh0LCAnY3JlYXRlUHNidEZpbmFsVHguanNvbicsIG5ldHdvcmtUeCk7XG4gICAgICBhd2FpdCBhc3NlcnRFcXVhbHNGaXh0dXJlKHQsICdjcmVhdGVQc2J0RmluYWxUeC5oZXgnLCBuZXR3b3JrVHgudG9CdWZmZXIoKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5kZXNjcmliZUNyZWF0ZVBzYnQoJ1dzaDJPZjMnKTtcbmRlc2NyaWJlQ3JlYXRlUHNidCgnU2hXc2gyT2YzQ2x0dkRyb3AnKTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=findDescriptors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findDescriptors.d.ts","sourceRoot":"","sources":["../../../../../test/core/descriptor/psbt/findDescriptors.ts"],"names":[],"mappings":""}
@@ -0,0 +1,66 @@
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 descriptor_utils_1 = require("../descriptor.utils");
38
+ const findDescriptors_1 = require("../../../../src/core/descriptor/psbt/findDescriptors");
39
+ const mock_utils_1 = require("./mock.utils");
40
+ describe('parsePsbt', function () {
41
+ const descriptorA = (0, descriptor_utils_1.getDescriptor)('Wsh2Of3', (0, descriptor_utils_1.getDefaultXPubs)('a'));
42
+ const descriptorB = (0, descriptor_utils_1.getDescriptor)('Wsh2Of3', (0, descriptor_utils_1.getDefaultXPubs)('b'));
43
+ const descriptorMap = new Map([
44
+ ['a', descriptorA],
45
+ ['b', descriptorB],
46
+ ]);
47
+ it('finds descriptors for PSBT inputs/outputs', function () {
48
+ const psbt = (0, mock_utils_1.mockPsbt)([
49
+ { descriptor: descriptorA, index: 0 },
50
+ { descriptor: descriptorB, index: 1, id: { vout: 1 } },
51
+ ], [{ descriptor: descriptorA, index: 2, value: BigInt(1e6) }]);
52
+ assert.deepStrictEqual((0, findDescriptors_1.findDescriptorForInput)(psbt.data.inputs[0], descriptorMap), {
53
+ descriptor: descriptorA,
54
+ index: 0,
55
+ });
56
+ assert.deepStrictEqual((0, findDescriptors_1.findDescriptorForInput)(psbt.data.inputs[1], descriptorMap), {
57
+ descriptor: descriptorB,
58
+ index: 1,
59
+ });
60
+ assert.deepStrictEqual((0, findDescriptors_1.findDescriptorForOutput)(psbt.txOutputs[0].script, psbt.data.outputs[0], descriptorMap), {
61
+ descriptor: descriptorA,
62
+ index: 2,
63
+ });
64
+ });
65
+ });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZERlc2NyaXB0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC9jb3JlL2Rlc2NyaXB0b3IvcHNidC9maW5kRGVzY3JpcHRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFFakMsMERBQXFFO0FBQ3JFLDBGQUF1SDtBQUV2SCw2Q0FBd0M7QUFFeEMsUUFBUSxDQUFDLFdBQVcsRUFBRTtJQUNwQixNQUFNLFdBQVcsR0FBRyxJQUFBLGdDQUFhLEVBQUMsU0FBUyxFQUFFLElBQUEsa0NBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sV0FBVyxHQUFHLElBQUEsZ0NBQWEsRUFBQyxTQUFTLEVBQUUsSUFBQSxrQ0FBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkUsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUM7UUFDNUIsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDO1FBQ2xCLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQztLQUNuQixDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkNBQTJDLEVBQUU7UUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBQSxxQkFBUSxFQUNuQjtZQUNFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1lBQ3JDLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtTQUN2RCxFQUNELENBQUMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQzVELENBQUM7UUFFRixNQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsd0NBQXNCLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDakYsVUFBVSxFQUFFLFdBQVc7WUFDdkIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsd0NBQXNCLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDakYsVUFBVSxFQUFFLFdBQVc7WUFDdkIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUEseUNBQXVCLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDN0csVUFBVSxFQUFFLFdBQVc7WUFDdkIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IGdldERlZmF1bHRYUHVicywgZ2V0RGVzY3JpcHRvciB9IGZyb20gJy4uL2Rlc2NyaXB0b3IudXRpbHMnO1xuaW1wb3J0IHsgZmluZERlc2NyaXB0b3JGb3JJbnB1dCwgZmluZERlc2NyaXB0b3JGb3JPdXRwdXQgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvY29yZS9kZXNjcmlwdG9yL3BzYnQvZmluZERlc2NyaXB0b3JzJztcblxuaW1wb3J0IHsgbW9ja1BzYnQgfSBmcm9tICcuL21vY2sudXRpbHMnO1xuXG5kZXNjcmliZSgncGFyc2VQc2J0JywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBkZXNjcmlwdG9yQSA9IGdldERlc2NyaXB0b3IoJ1dzaDJPZjMnLCBnZXREZWZhdWx0WFB1YnMoJ2EnKSk7XG4gIGNvbnN0IGRlc2NyaXB0b3JCID0gZ2V0RGVzY3JpcHRvcignV3NoMk9mMycsIGdldERlZmF1bHRYUHVicygnYicpKTtcbiAgY29uc3QgZGVzY3JpcHRvck1hcCA9IG5ldyBNYXAoW1xuICAgIFsnYScsIGRlc2NyaXB0b3JBXSxcbiAgICBbJ2InLCBkZXNjcmlwdG9yQl0sXG4gIF0pO1xuXG4gIGl0KCdmaW5kcyBkZXNjcmlwdG9ycyBmb3IgUFNCVCBpbnB1dHMvb3V0cHV0cycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBwc2J0ID0gbW9ja1BzYnQoXG4gICAgICBbXG4gICAgICAgIHsgZGVzY3JpcHRvcjogZGVzY3JpcHRvckEsIGluZGV4OiAwIH0sXG4gICAgICAgIHsgZGVzY3JpcHRvcjogZGVzY3JpcHRvckIsIGluZGV4OiAxLCBpZDogeyB2b3V0OiAxIH0gfSxcbiAgICAgIF0sXG4gICAgICBbeyBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yQSwgaW5kZXg6IDIsIHZhbHVlOiBCaWdJbnQoMWU2KSB9XVxuICAgICk7XG5cbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGZpbmREZXNjcmlwdG9yRm9ySW5wdXQocHNidC5kYXRhLmlucHV0c1swXSwgZGVzY3JpcHRvck1hcCksIHtcbiAgICAgIGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JBLFxuICAgICAgaW5kZXg6IDAsXG4gICAgfSk7XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChmaW5kRGVzY3JpcHRvckZvcklucHV0KHBzYnQuZGF0YS5pbnB1dHNbMV0sIGRlc2NyaXB0b3JNYXApLCB7XG4gICAgICBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yQixcbiAgICAgIGluZGV4OiAxLFxuICAgIH0pO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZmluZERlc2NyaXB0b3JGb3JPdXRwdXQocHNidC50eE91dHB1dHNbMF0uc2NyaXB0LCBwc2J0LmRhdGEub3V0cHV0c1swXSwgZGVzY3JpcHRvck1hcCksIHtcbiAgICAgIGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JBLFxuICAgICAgaW5kZXg6IDIsXG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,34 @@
1
+ import { Descriptor } from '@bitgo/wasm-miniscript';
2
+ import * as utxolib from '@bitgo-beta/utxo-lib';
3
+ import { PsbtParams } from '../../../../src/core/descriptor';
4
+ import { DerivedDescriptorWalletOutput } from '../../../../src/core/descriptor/Output';
5
+ import { DescriptorTemplate } from '../descriptor.utils';
6
+ type MockOutputIdParams = {
7
+ hash?: string;
8
+ vout?: number;
9
+ };
10
+ type BaseMockDescriptorOutputParams = {
11
+ id?: MockOutputIdParams;
12
+ index?: number;
13
+ value?: bigint;
14
+ };
15
+ export declare function mockDerivedDescriptorWalletOutput(descriptor: Descriptor, outputParams?: BaseMockDescriptorOutputParams): DerivedDescriptorWalletOutput;
16
+ type MockInput = BaseMockDescriptorOutputParams & {
17
+ index: number;
18
+ descriptor: Descriptor;
19
+ };
20
+ type MockOutput = {
21
+ descriptor: Descriptor;
22
+ index: number;
23
+ value: bigint;
24
+ external?: boolean;
25
+ };
26
+ export declare function mockPsbt(inputs: MockInput[], outputs: MockOutput[], params?: Partial<PsbtParams>): utxolib.bitgo.UtxoPsbt;
27
+ export declare function mockPsbtDefault({ descriptorSelf, descriptorOther, params, }?: {
28
+ descriptorSelf?: Descriptor;
29
+ descriptorOther?: Descriptor;
30
+ params?: Partial<PsbtParams>;
31
+ }): utxolib.bitgo.UtxoPsbt;
32
+ export declare function mockPsbtDefaultWithDescriptorTemplate(t: DescriptorTemplate, params?: Partial<PsbtParams>): utxolib.bitgo.UtxoPsbt;
33
+ export {};
34
+ //# sourceMappingURL=mock.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.utils.d.ts","sourceRoot":"","sources":["../../../../../test/core/descriptor/psbt/mock.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAgD,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAkC,MAAM,qBAAqB,CAAC;AAEzF,KAAK,kBAAkB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,KAAK,8BAA8B,GAAG;IACpC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAWF,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,UAAU,EACtB,YAAY,GAAE,8BAAmC,GAChD,6BAA6B,CAY/B;AAED,KAAK,SAAS,GAAG,8BAA8B,GAAG;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,QAAQ,CACtB,MAAM,EAAE,SAAS,EAAE,EACnB,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAC/B,OAAO,CAAC,KAAK,CAAC,QAAQ,CAaxB;AAED,wBAAgB,eAAe,CAAC,EAC9B,cAA+D,EAC/D,eAAgE,EAChE,MAAW,GACZ,GAAE;IACD,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CACzB,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAY9B;AAED,wBAAgB,qCAAqC,CACnD,CAAC,EAAE,kBAAkB,EACrB,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,GAC/B,OAAO,CAAC,KAAK,CAAC,QAAQ,CAMxB"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.mockDerivedDescriptorWalletOutput = mockDerivedDescriptorWalletOutput;
37
+ exports.mockPsbt = mockPsbt;
38
+ exports.mockPsbtDefault = mockPsbtDefault;
39
+ exports.mockPsbtDefaultWithDescriptorTemplate = mockPsbtDefaultWithDescriptorTemplate;
40
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
41
+ const descriptor_1 = require("../../../../src/core/descriptor");
42
+ const descriptor_utils_1 = require("../descriptor.utils");
43
+ function mockOutputId(id) {
44
+ const hash = id?.hash ?? Buffer.alloc(32, 1).toString('hex');
45
+ const vout = id?.vout ?? 0;
46
+ return { hash, vout };
47
+ }
48
+ function mockDerivedDescriptorWalletOutput(descriptor, outputParams = {}) {
49
+ const { value = BigInt(1e6) } = outputParams;
50
+ const { hash, vout } = mockOutputId(outputParams.id);
51
+ return {
52
+ hash,
53
+ index: vout,
54
+ witnessUtxo: {
55
+ script: (0, descriptor_1.createScriptPubKeyFromDescriptor)(descriptor),
56
+ value,
57
+ },
58
+ descriptor,
59
+ };
60
+ }
61
+ function mockPsbt(inputs, outputs, params = {}) {
62
+ return (0, descriptor_1.createPsbt)({ ...params, network: params.network ?? utxolib.networks.bitcoin }, inputs.map((i) => mockDerivedDescriptorWalletOutput(i.descriptor.atDerivationIndex(i.index), i)), outputs.map((o) => {
63
+ const derivedDescriptor = o.descriptor.atDerivationIndex(o.index);
64
+ return {
65
+ script: (0, descriptor_1.createScriptPubKeyFromDescriptor)(derivedDescriptor),
66
+ value: o.value,
67
+ descriptor: o.external ? undefined : derivedDescriptor,
68
+ };
69
+ }));
70
+ }
71
+ function mockPsbtDefault({ descriptorSelf = (0, descriptor_utils_1.getDescriptor)('Wsh2Of3', (0, descriptor_utils_1.getDefaultXPubs)('a')), descriptorOther = (0, descriptor_utils_1.getDescriptor)('Wsh2Of3', (0, descriptor_utils_1.getDefaultXPubs)('b')), params = {}, } = {}) {
72
+ return mockPsbt([
73
+ { descriptor: descriptorSelf, index: 0 },
74
+ { descriptor: descriptorSelf, index: 1, id: { vout: 1 } },
75
+ ], [
76
+ { descriptor: descriptorOther, index: 0, value: BigInt(4e5), external: true },
77
+ { descriptor: descriptorSelf, index: 0, value: BigInt(4e5) },
78
+ ], params);
79
+ }
80
+ function mockPsbtDefaultWithDescriptorTemplate(t, params = {}) {
81
+ return mockPsbtDefault({
82
+ descriptorSelf: (0, descriptor_utils_1.getDescriptor)(t, (0, descriptor_utils_1.getDefaultXPubs)('a')),
83
+ descriptorOther: (0, descriptor_utils_1.getDescriptor)(t, (0, descriptor_utils_1.getDefaultXPubs)('b')),
84
+ params,
85
+ });
86
+ }
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvY29yZS9kZXNjcmlwdG9yL3BzYnQvbW9jay51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCQSw4RUFlQztBQWNELDRCQWlCQztBQUVELDBDQW9CQztBQUVELHNGQVNDO0FBdEdELDhEQUFnRDtBQUVoRCxnRUFBMkc7QUFFM0csMERBQXlGO0FBVXpGLFNBQVMsWUFBWSxDQUFDLEVBQXVCO0lBSTNDLE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQzNCLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDeEIsQ0FBQztBQUVELFNBQWdCLGlDQUFpQyxDQUMvQyxVQUFzQixFQUN0QixlQUErQyxFQUFFO0lBRWpELE1BQU0sRUFBRSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDO0lBQzdDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRCxPQUFPO1FBQ0wsSUFBSTtRQUNKLEtBQUssRUFBRSxJQUFJO1FBQ1gsV0FBVyxFQUFFO1lBQ1gsTUFBTSxFQUFFLElBQUEsNkNBQWdDLEVBQUMsVUFBVSxDQUFDO1lBQ3BELEtBQUs7U0FDTjtRQUNELFVBQVU7S0FDWCxDQUFDO0FBQ0osQ0FBQztBQWNELFNBQWdCLFFBQVEsQ0FDdEIsTUFBbUIsRUFDbkIsT0FBcUIsRUFDckIsU0FBOEIsRUFBRTtJQUVoQyxPQUFPLElBQUEsdUJBQVUsRUFDZixFQUFFLEdBQUcsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQ2xFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ2hHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNoQixNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBQSw2Q0FBZ0MsRUFBQyxpQkFBaUIsQ0FBQztZQUMzRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7WUFDZCxVQUFVLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxpQkFBaUI7U0FDdkQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLEVBQzlCLGNBQWMsR0FBRyxJQUFBLGdDQUFhLEVBQUMsU0FBUyxFQUFFLElBQUEsa0NBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQyxFQUMvRCxlQUFlLEdBQUcsSUFBQSxnQ0FBYSxFQUFDLFNBQVMsRUFBRSxJQUFBLGtDQUFlLEVBQUMsR0FBRyxDQUFDLENBQUMsRUFDaEUsTUFBTSxHQUFHLEVBQUUsTUFLVCxFQUFFO0lBQ0osT0FBTyxRQUFRLENBQ2I7UUFDRSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUN4QyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7S0FDMUQsRUFDRDtRQUNFLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtRQUM3RSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0tBQzdELEVBQ0QsTUFBTSxDQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IscUNBQXFDLENBQ25ELENBQXFCLEVBQ3JCLFNBQThCLEVBQUU7SUFFaEMsT0FBTyxlQUFlLENBQUM7UUFDckIsY0FBYyxFQUFFLElBQUEsZ0NBQWEsRUFBQyxDQUFDLEVBQUUsSUFBQSxrQ0FBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELGVBQWUsRUFBRSxJQUFBLGdDQUFhLEVBQUMsQ0FBQyxFQUFFLElBQUEsa0NBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQztRQUN2RCxNQUFNO0tBQ1AsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5pbXBvcnQgeyBjcmVhdGVTY3JpcHRQdWJLZXlGcm9tRGVzY3JpcHRvciwgY3JlYXRlUHNidCwgUHNidFBhcmFtcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9jb3JlL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvY29yZS9kZXNjcmlwdG9yL091dHB1dCc7XG5pbXBvcnQgeyBEZXNjcmlwdG9yVGVtcGxhdGUsIGdldERlZmF1bHRYUHVicywgZ2V0RGVzY3JpcHRvciB9IGZyb20gJy4uL2Rlc2NyaXB0b3IudXRpbHMnO1xuXG50eXBlIE1vY2tPdXRwdXRJZFBhcmFtcyA9IHsgaGFzaD86IHN0cmluZzsgdm91dD86IG51bWJlciB9O1xuXG50eXBlIEJhc2VNb2NrRGVzY3JpcHRvck91dHB1dFBhcmFtcyA9IHtcbiAgaWQ/OiBNb2NrT3V0cHV0SWRQYXJhbXM7XG4gIGluZGV4PzogbnVtYmVyO1xuICB2YWx1ZT86IGJpZ2ludDtcbn07XG5cbmZ1bmN0aW9uIG1vY2tPdXRwdXRJZChpZD86IE1vY2tPdXRwdXRJZFBhcmFtcyk6IHtcbiAgaGFzaDogc3RyaW5nO1xuICB2b3V0OiBudW1iZXI7XG59IHtcbiAgY29uc3QgaGFzaCA9IGlkPy5oYXNoID8/IEJ1ZmZlci5hbGxvYygzMiwgMSkudG9TdHJpbmcoJ2hleCcpO1xuICBjb25zdCB2b3V0ID0gaWQ/LnZvdXQgPz8gMDtcbiAgcmV0dXJuIHsgaGFzaCwgdm91dCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja0Rlcml2ZWREZXNjcmlwdG9yV2FsbGV0T3V0cHV0KFxuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLFxuICBvdXRwdXRQYXJhbXM6IEJhc2VNb2NrRGVzY3JpcHRvck91dHB1dFBhcmFtcyA9IHt9XG4pOiBEZXJpdmVkRGVzY3JpcHRvcldhbGxldE91dHB1dCB7XG4gIGNvbnN0IHsgdmFsdWUgPSBCaWdJbnQoMWU2KSB9ID0gb3V0cHV0UGFyYW1zO1xuICBjb25zdCB7IGhhc2gsIHZvdXQgfSA9IG1vY2tPdXRwdXRJZChvdXRwdXRQYXJhbXMuaWQpO1xuICByZXR1cm4ge1xuICAgIGhhc2gsXG4gICAgaW5kZXg6IHZvdXQsXG4gICAgd2l0bmVzc1V0eG86IHtcbiAgICAgIHNjcmlwdDogY3JlYXRlU2NyaXB0UHViS2V5RnJvbURlc2NyaXB0b3IoZGVzY3JpcHRvciksXG4gICAgICB2YWx1ZSxcbiAgICB9LFxuICAgIGRlc2NyaXB0b3IsXG4gIH07XG59XG5cbnR5cGUgTW9ja0lucHV0ID0gQmFzZU1vY2tEZXNjcmlwdG9yT3V0cHV0UGFyYW1zICYge1xuICBpbmRleDogbnVtYmVyO1xuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yO1xufTtcblxudHlwZSBNb2NrT3V0cHV0ID0ge1xuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yO1xuICBpbmRleDogbnVtYmVyO1xuICB2YWx1ZTogYmlnaW50O1xuICBleHRlcm5hbD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1BzYnQoXG4gIGlucHV0czogTW9ja0lucHV0W10sXG4gIG91dHB1dHM6IE1vY2tPdXRwdXRbXSxcbiAgcGFyYW1zOiBQYXJ0aWFsPFBzYnRQYXJhbXM+ID0ge31cbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQge1xuICByZXR1cm4gY3JlYXRlUHNidChcbiAgICB7IC4uLnBhcmFtcywgbmV0d29yazogcGFyYW1zLm5ldHdvcmsgPz8gdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luIH0sXG4gICAgaW5wdXRzLm1hcCgoaSkgPT4gbW9ja0Rlcml2ZWREZXNjcmlwdG9yV2FsbGV0T3V0cHV0KGkuZGVzY3JpcHRvci5hdERlcml2YXRpb25JbmRleChpLmluZGV4KSwgaSkpLFxuICAgIG91dHB1dHMubWFwKChvKSA9PiB7XG4gICAgICBjb25zdCBkZXJpdmVkRGVzY3JpcHRvciA9IG8uZGVzY3JpcHRvci5hdERlcml2YXRpb25JbmRleChvLmluZGV4KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNjcmlwdDogY3JlYXRlU2NyaXB0UHViS2V5RnJvbURlc2NyaXB0b3IoZGVyaXZlZERlc2NyaXB0b3IpLFxuICAgICAgICB2YWx1ZTogby52YWx1ZSxcbiAgICAgICAgZGVzY3JpcHRvcjogby5leHRlcm5hbCA/IHVuZGVmaW5lZCA6IGRlcml2ZWREZXNjcmlwdG9yLFxuICAgICAgfTtcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1BzYnREZWZhdWx0KHtcbiAgZGVzY3JpcHRvclNlbGYgPSBnZXREZXNjcmlwdG9yKCdXc2gyT2YzJywgZ2V0RGVmYXVsdFhQdWJzKCdhJykpLFxuICBkZXNjcmlwdG9yT3RoZXIgPSBnZXREZXNjcmlwdG9yKCdXc2gyT2YzJywgZ2V0RGVmYXVsdFhQdWJzKCdiJykpLFxuICBwYXJhbXMgPSB7fSxcbn06IHtcbiAgZGVzY3JpcHRvclNlbGY/OiBEZXNjcmlwdG9yO1xuICBkZXNjcmlwdG9yT3RoZXI/OiBEZXNjcmlwdG9yO1xuICBwYXJhbXM/OiBQYXJ0aWFsPFBzYnRQYXJhbXM+O1xufSA9IHt9KTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIHJldHVybiBtb2NrUHNidChcbiAgICBbXG4gICAgICB7IGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JTZWxmLCBpbmRleDogMCB9LFxuICAgICAgeyBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yU2VsZiwgaW5kZXg6IDEsIGlkOiB7IHZvdXQ6IDEgfSB9LFxuICAgIF0sXG4gICAgW1xuICAgICAgeyBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yT3RoZXIsIGluZGV4OiAwLCB2YWx1ZTogQmlnSW50KDRlNSksIGV4dGVybmFsOiB0cnVlIH0sXG4gICAgICB7IGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JTZWxmLCBpbmRleDogMCwgdmFsdWU6IEJpZ0ludCg0ZTUpIH0sXG4gICAgXSxcbiAgICBwYXJhbXNcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tQc2J0RGVmYXVsdFdpdGhEZXNjcmlwdG9yVGVtcGxhdGUoXG4gIHQ6IERlc2NyaXB0b3JUZW1wbGF0ZSxcbiAgcGFyYW1zOiBQYXJ0aWFsPFBzYnRQYXJhbXM+ID0ge31cbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQge1xuICByZXR1cm4gbW9ja1BzYnREZWZhdWx0KHtcbiAgICBkZXNjcmlwdG9yU2VsZjogZ2V0RGVzY3JpcHRvcih0LCBnZXREZWZhdWx0WFB1YnMoJ2EnKSksXG4gICAgZGVzY3JpcHRvck90aGVyOiBnZXREZXNjcmlwdG9yKHQsIGdldERlZmF1bHRYUHVicygnYicpKSxcbiAgICBwYXJhbXMsXG4gIH0pO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../../test/core/descriptor/psbt/parse.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
8
+ const descriptor_1 = require("../../../../src/core/descriptor");
9
+ const descriptor_utils_1 = require("../descriptor.utils");
10
+ const fixtures_utils_1 = require("../../fixtures.utils");
11
+ const toPlainObject_utils_1 = require("../../toPlainObject.utils");
12
+ const mock_utils_1 = require("./mock.utils");
13
+ function normalize(parsed) {
14
+ return (0, toPlainObject_utils_1.toPlainObject)(parsed, {
15
+ apply(v, path) {
16
+ if (v instanceof wasm_miniscript_1.Descriptor) {
17
+ return v.toString();
18
+ }
19
+ },
20
+ }, []);
21
+ }
22
+ function describeWithTemplate(t) {
23
+ describe(`parse ${t}`, function () {
24
+ it('parses a PSBT with descriptors', async function () {
25
+ const psbt = (0, mock_utils_1.mockPsbtDefaultWithDescriptorTemplate)(t);
26
+ const parsed = normalize((0, descriptor_1.parse)(psbt, (0, descriptor_utils_1.getDescriptorMap)(t, (0, descriptor_utils_1.getDefaultXPubs)('a')), psbt.network));
27
+ assert_1.default.deepStrictEqual(parsed, await (0, fixtures_utils_1.getFixture)(__dirname + `/fixtures/${t}.parse.json`, parsed));
28
+ });
29
+ });
30
+ }
31
+ describeWithTemplate('Wsh2Of3');
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L2NvcmUvZGVzY3JpcHRvci9wc2J0L3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBRTVCLDREQUFvRDtBQUVwRCxnRUFBd0Q7QUFDeEQsMERBQTRGO0FBQzVGLHlEQUFrRDtBQUVsRCxtRUFBMEQ7QUFFMUQsNkNBQXFFO0FBRXJFLFNBQVMsU0FBUyxDQUFDLE1BQW1DO0lBQ3BELE9BQU8sSUFBQSxtQ0FBYSxFQUNsQixNQUFNLEVBQ047UUFDRSxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUk7WUFDWCxJQUFJLENBQUMsWUFBWSw0QkFBVSxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO0tBQ0YsRUFDRCxFQUFFLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLENBQXFCO0lBQ2pELFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFO1FBQ3JCLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxLQUFLO1lBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUEsa0RBQXFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEQsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUEsa0JBQUssRUFBQyxJQUFJLEVBQUUsSUFBQSxtQ0FBZ0IsRUFBQyxDQUFDLEVBQUUsSUFBQSxrQ0FBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDL0YsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sSUFBQSwyQkFBVSxFQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDcEcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuXG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9jb3JlL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgRGVzY3JpcHRvclRlbXBsYXRlLCBnZXREZWZhdWx0WFB1YnMsIGdldERlc2NyaXB0b3JNYXAgfSBmcm9tICcuLi9kZXNjcmlwdG9yLnV0aWxzJztcbmltcG9ydCB7IGdldEZpeHR1cmUgfSBmcm9tICcuLi8uLi9maXh0dXJlcy51dGlscyc7XG5pbXBvcnQgeyBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvY29yZS9kZXNjcmlwdG9yL3BzYnQvcGFyc2UnO1xuaW1wb3J0IHsgdG9QbGFpbk9iamVjdCB9IGZyb20gJy4uLy4uL3RvUGxhaW5PYmplY3QudXRpbHMnO1xuXG5pbXBvcnQgeyBtb2NrUHNidERlZmF1bHRXaXRoRGVzY3JpcHRvclRlbXBsYXRlIH0gZnJvbSAnLi9tb2NrLnV0aWxzJztcblxuZnVuY3Rpb24gbm9ybWFsaXplKHBhcnNlZDogUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uKSB7XG4gIHJldHVybiB0b1BsYWluT2JqZWN0KFxuICAgIHBhcnNlZCxcbiAgICB7XG4gICAgICBhcHBseSh2LCBwYXRoKSB7XG4gICAgICAgIGlmICh2IGluc3RhbmNlb2YgRGVzY3JpcHRvcikge1xuICAgICAgICAgIHJldHVybiB2LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICBbXVxuICApO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZVdpdGhUZW1wbGF0ZSh0OiBEZXNjcmlwdG9yVGVtcGxhdGUpIHtcbiAgZGVzY3JpYmUoYHBhcnNlICR7dH1gLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3BhcnNlcyBhIFBTQlQgd2l0aCBkZXNjcmlwdG9ycycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHBzYnQgPSBtb2NrUHNidERlZmF1bHRXaXRoRGVzY3JpcHRvclRlbXBsYXRlKHQpO1xuICAgICAgY29uc3QgcGFyc2VkID0gbm9ybWFsaXplKHBhcnNlKHBzYnQsIGdldERlc2NyaXB0b3JNYXAodCwgZ2V0RGVmYXVsdFhQdWJzKCdhJykpLCBwc2J0Lm5ldHdvcmspKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGFyc2VkLCBhd2FpdCBnZXRGaXh0dXJlKF9fZGlybmFtZSArIGAvZml4dHVyZXMvJHt0fS5wYXJzZS5qc29uYCwgcGFyc2VkKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5kZXNjcmliZVdpdGhUZW1wbGF0ZSgnV3NoMk9mMycpO1xuIl19
@@ -0,0 +1,4 @@
1
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
+ export declare function toPlainObjectFromPsbt(v: utxolib.Psbt): unknown;
3
+ export declare function toPlainObjectFromTx(v: utxolib.Transaction): unknown;
4
+ //# sourceMappingURL=psbt.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"psbt.utils.d.ts","sourceRoot":"","sources":["../../../../../test/core/descriptor/psbt/psbt.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAIhD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAgB9D;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAEnE"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toPlainObjectFromPsbt = toPlainObjectFromPsbt;
4
+ exports.toPlainObjectFromTx = toPlainObjectFromTx;
5
+ const toPlainObject_utils_1 = require("../../toPlainObject.utils");
6
+ function toPlainObjectFromPsbt(v) {
7
+ return (0, toPlainObject_utils_1.toPlainObject)(v, {
8
+ propertyDescriptors: true,
9
+ ignorePaths(path) {
10
+ return ((0, toPlainObject_utils_1.matchPath)(path, ['__CACHE']) ||
11
+ (0, toPlainObject_utils_1.matchPath)(path, ['opts', 'network']) ||
12
+ (0, toPlainObject_utils_1.matchPath)(path, ['data', 'globalMap', 'unsignedTx', 'tx', 'network']) ||
13
+ (0, toPlainObject_utils_1.matchPath)(path, ['network']));
14
+ },
15
+ }, []);
16
+ }
17
+ function toPlainObjectFromTx(v) {
18
+ return (0, toPlainObject_utils_1.toPlainObject)(v, {}, []);
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvY29yZS9kZXNjcmlwdG9yL3BzYnQvcHNidC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHNEQWdCQztBQUVELGtEQUVDO0FBdEJELG1FQUFrRjtBQUVsRixTQUFnQixxQkFBcUIsQ0FBQyxDQUFlO0lBQ25ELE9BQU8sSUFBQSxtQ0FBYSxFQUNsQixDQUFDLEVBQ0Q7UUFDRSxtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLFdBQVcsQ0FBQyxJQUFtQjtZQUM3QixPQUFPLENBQ0wsSUFBQSwrQkFBUyxFQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM1QixJQUFBLCtCQUFTLEVBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNwQyxJQUFBLCtCQUFTLEVBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNyRSxJQUFBLCtCQUFTLEVBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDN0IsQ0FBQztRQUNKLENBQUM7S0FDRixFQUNELEVBQUUsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLENBQXNCO0lBQ3hELE9BQU8sSUFBQSxtQ0FBYSxFQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5pbXBvcnQgeyBtYXRjaFBhdGgsIFBhdGhFbGVtZW50LCB0b1BsYWluT2JqZWN0IH0gZnJvbSAnLi4vLi4vdG9QbGFpbk9iamVjdC51dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1BsYWluT2JqZWN0RnJvbVBzYnQodjogdXR4b2xpYi5Qc2J0KTogdW5rbm93biB7XG4gIHJldHVybiB0b1BsYWluT2JqZWN0KFxuICAgIHYsXG4gICAge1xuICAgICAgcHJvcGVydHlEZXNjcmlwdG9yczogdHJ1ZSxcbiAgICAgIGlnbm9yZVBhdGhzKHBhdGg6IFBhdGhFbGVtZW50W10pIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtYXRjaFBhdGgocGF0aCwgWydfX0NBQ0hFJ10pIHx8XG4gICAgICAgICAgbWF0Y2hQYXRoKHBhdGgsIFsnb3B0cycsICduZXR3b3JrJ10pIHx8XG4gICAgICAgICAgbWF0Y2hQYXRoKHBhdGgsIFsnZGF0YScsICdnbG9iYWxNYXAnLCAndW5zaWduZWRUeCcsICd0eCcsICduZXR3b3JrJ10pIHx8XG4gICAgICAgICAgbWF0Y2hQYXRoKHBhdGgsIFsnbmV0d29yayddKVxuICAgICAgICApO1xuICAgICAgfSxcbiAgICB9LFxuICAgIFtdXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1BsYWluT2JqZWN0RnJvbVR4KHY6IHV0eG9saWIuVHJhbnNhY3Rpb24pOiB1bmtub3duIHtcbiAgcmV0dXJuIHRvUGxhaW5PYmplY3Qodiwge30sIFtdKTtcbn1cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Contains helpers for working with test fixtures
3
+ */
4
+ /**
5
+ * Return fixture described in `path`.
6
+ *
7
+ * If file does not exist and `defaultValue` is provided, writes defaultValue to `path` and throws an error.
8
+ *
9
+ * @param path
10
+ * @param defaultValue
11
+ * @return T - fixture content
12
+ */
13
+ export declare function getFixture<T>(path: string, defaultValue?: T | (() => Promise<T>)): Promise<T>;
14
+ export declare function jsonNormalize<T>(v: T): T;
15
+ //# sourceMappingURL=fixtures.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.utils.d.ts","sourceRoot":"","sources":["../../../test/core/fixtures.utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsCH;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CA+BnG;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAExC"}