@bitgo-beta/utxo-core 1.0.1-alpha.150 → 1.0.1-alpha.152

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 (352) hide show
  1. package/dist/cjs/src/Output.d.ts.map +1 -0
  2. package/dist/cjs/src/Output.js +60 -0
  3. package/dist/cjs/src/bip322/index.d.ts.map +1 -0
  4. package/dist/{src → cjs/src}/bip322/index.js +1 -1
  5. package/dist/cjs/src/bip322/toSign.d.ts.map +1 -0
  6. package/dist/cjs/src/bip322/toSign.js +126 -0
  7. package/dist/cjs/src/bip322/toSpend.d.ts.map +1 -0
  8. package/dist/cjs/src/bip322/toSpend.js +72 -0
  9. package/dist/cjs/src/bip322/utils.d.ts.map +1 -0
  10. package/dist/cjs/src/bip322/utils.js +115 -0
  11. package/dist/cjs/src/bip322/verify.d.ts.map +1 -0
  12. package/dist/cjs/src/bip322/verify.js +115 -0
  13. package/dist/cjs/src/bip32utils.d.ts.map +1 -0
  14. package/dist/cjs/src/bip32utils.js +71 -0
  15. package/dist/cjs/src/bip65/index.d.ts.map +1 -0
  16. package/dist/{src → cjs/src}/bip65/index.js +1 -1
  17. package/dist/cjs/src/bip65/locktime.d.ts.map +1 -0
  18. package/dist/cjs/src/bip65/locktime.js +37 -0
  19. package/dist/cjs/src/descriptor/DescriptorMap.d.ts.map +1 -0
  20. package/dist/cjs/src/descriptor/DescriptorMap.js +9 -0
  21. package/dist/cjs/src/descriptor/Output.d.ts.map +1 -0
  22. package/dist/cjs/src/descriptor/Output.js +41 -0
  23. package/dist/cjs/src/descriptor/VirtualSize.d.ts.map +1 -0
  24. package/dist/cjs/src/descriptor/VirtualSize.js +100 -0
  25. package/dist/cjs/src/descriptor/address.d.ts.map +1 -0
  26. package/dist/{src → cjs/src}/descriptor/address.js +1 -1
  27. package/dist/cjs/src/descriptor/derive.d.ts.map +1 -0
  28. package/dist/cjs/src/descriptor/derive.js +45 -0
  29. package/dist/cjs/src/descriptor/fromFixedScriptWallet.d.ts.map +1 -0
  30. package/dist/cjs/src/descriptor/fromFixedScriptWallet.js +88 -0
  31. package/dist/cjs/src/descriptor/index.d.ts.map +1 -0
  32. package/dist/{src → cjs/src}/descriptor/index.js +1 -1
  33. package/dist/cjs/src/descriptor/parse/PatternMatcher.d.ts.map +1 -0
  34. package/dist/cjs/src/descriptor/parse/PatternMatcher.js +60 -0
  35. package/dist/cjs/src/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
  36. package/dist/cjs/src/descriptor/psbt/assertSatisfiable.js +74 -0
  37. package/dist/cjs/src/descriptor/psbt/createPsbt.d.ts.map +1 -0
  38. package/dist/cjs/src/descriptor/psbt/createPsbt.js +107 -0
  39. package/dist/cjs/src/descriptor/psbt/findDescriptors.d.ts.map +1 -0
  40. package/dist/cjs/src/descriptor/psbt/findDescriptors.js +98 -0
  41. package/dist/cjs/src/descriptor/psbt/index.d.ts.map +1 -0
  42. package/dist/{src → cjs/src}/descriptor/psbt/index.js +1 -1
  43. package/dist/cjs/src/descriptor/psbt/parse.d.ts.map +1 -0
  44. package/dist/cjs/src/descriptor/psbt/parse.js +87 -0
  45. package/dist/cjs/src/descriptor/psbt/sign.d.ts.map +1 -0
  46. package/dist/cjs/src/descriptor/psbt/sign.js +42 -0
  47. package/dist/cjs/src/descriptor/psbt/wrap.d.ts.map +1 -0
  48. package/dist/cjs/src/descriptor/psbt/wrap.js +76 -0
  49. package/dist/cjs/src/dustThreshold.d.ts.map +1 -0
  50. package/dist/cjs/src/dustThreshold.js +134 -0
  51. package/dist/cjs/src/index.d.ts.map +1 -0
  52. package/dist/{src → cjs/src}/index.js +1 -1
  53. package/dist/cjs/src/paygo/attestation.d.ts.map +1 -0
  54. package/dist/{src → cjs/src}/paygo/attestation.js +1 -1
  55. package/dist/cjs/src/paygo/index.d.ts.map +1 -0
  56. package/dist/{src → cjs/src}/paygo/index.js +1 -1
  57. package/dist/cjs/src/paygo/parsePayGoAttestation.d.ts.map +1 -0
  58. package/dist/cjs/src/paygo/parsePayGoAttestation.js +50 -0
  59. package/dist/cjs/src/paygo/psbt/Errors.d.ts.map +1 -0
  60. package/dist/cjs/src/paygo/psbt/Errors.js +44 -0
  61. package/dist/cjs/src/paygo/psbt/index.d.ts.map +1 -0
  62. package/dist/{src → cjs/src}/paygo/psbt/index.js +1 -1
  63. package/dist/cjs/src/paygo/psbt/payGoAddressProof.d.ts.map +1 -0
  64. package/dist/cjs/src/paygo/psbt/payGoAddressProof.js +124 -0
  65. package/dist/cjs/src/testutil/descriptor/descriptors.d.ts.map +1 -0
  66. package/dist/cjs/src/testutil/descriptor/descriptors.js +162 -0
  67. package/dist/cjs/src/testutil/descriptor/index.d.ts.map +1 -0
  68. package/dist/{src → cjs/src}/testutil/descriptor/index.js +1 -1
  69. package/dist/cjs/src/testutil/descriptor/mock.utils.d.ts.map +1 -0
  70. package/dist/cjs/src/testutil/descriptor/mock.utils.js +92 -0
  71. package/dist/cjs/src/testutil/descriptor/psbt.utils.d.ts.map +1 -0
  72. package/dist/cjs/src/testutil/descriptor/psbt.utils.js +21 -0
  73. package/dist/cjs/src/testutil/fixtures.utils.d.ts.map +1 -0
  74. package/dist/cjs/src/testutil/fixtures.utils.js +127 -0
  75. package/dist/cjs/src/testutil/generatePayGoAttestationProof.utils.d.ts.map +1 -0
  76. package/dist/cjs/src/testutil/generatePayGoAttestationProof.utils.js +38 -0
  77. package/dist/cjs/src/testutil/index.d.ts.map +1 -0
  78. package/dist/{src → cjs/src}/testutil/index.js +1 -1
  79. package/dist/cjs/src/testutil/key.utils.d.ts.map +1 -0
  80. package/dist/{src → cjs/src}/testutil/key.utils.js +1 -1
  81. package/dist/cjs/src/testutil/toPlainObject.utils.d.ts.map +1 -0
  82. package/dist/cjs/src/testutil/toPlainObject.utils.js +89 -0
  83. package/dist/cjs/src/testutil/trimMessagePrefix.d.ts.map +1 -0
  84. package/dist/{src → cjs/src}/testutil/trimMessagePrefix.js +1 -1
  85. package/dist/cjs/src/xOnlyPubkey.d.ts.map +1 -0
  86. package/dist/cjs/src/xOnlyPubkey.js +18 -0
  87. package/dist/cjs/test/Output.d.ts +2 -0
  88. package/dist/cjs/test/Output.d.ts.map +1 -0
  89. package/dist/cjs/test/Output.js +70 -0
  90. package/dist/cjs/test/bip322/bip322.utils.d.ts +7 -0
  91. package/dist/cjs/test/bip322/bip322.utils.d.ts.map +1 -0
  92. package/dist/cjs/test/bip322/bip322.utils.js +16 -0
  93. package/dist/cjs/test/bip322/toSign.d.ts +2 -0
  94. package/dist/cjs/test/bip322/toSign.d.ts.map +1 -0
  95. package/dist/cjs/test/bip322/toSign.js +133 -0
  96. package/dist/cjs/test/bip322/toSpend.d.ts +2 -0
  97. package/dist/cjs/test/bip322/toSpend.d.ts.map +1 -0
  98. package/dist/cjs/test/bip322/toSpend.js +70 -0
  99. package/dist/cjs/test/bip322/utils.d.ts +2 -0
  100. package/dist/cjs/test/bip322/utils.d.ts.map +1 -0
  101. package/dist/cjs/test/bip322/utils.js +79 -0
  102. package/dist/cjs/test/bip322/verify.d.ts +2 -0
  103. package/dist/cjs/test/bip322/verify.d.ts.map +1 -0
  104. package/dist/cjs/test/bip322/verify.js +293 -0
  105. package/dist/cjs/test/bip32utils.d.ts +2 -0
  106. package/dist/cjs/test/bip32utils.d.ts.map +1 -0
  107. package/dist/cjs/test/bip32utils.js +62 -0
  108. package/dist/cjs/test/bip65/locktime.d.ts +2 -0
  109. package/dist/cjs/test/bip65/locktime.d.ts.map +1 -0
  110. package/dist/cjs/test/bip65/locktime.js +22 -0
  111. package/dist/cjs/test/descriptor/Output.d.ts +2 -0
  112. package/dist/cjs/test/descriptor/Output.d.ts.map +1 -0
  113. package/dist/cjs/test/descriptor/Output.js +44 -0
  114. package/dist/cjs/test/descriptor/derive.d.ts +2 -0
  115. package/dist/cjs/test/descriptor/derive.d.ts.map +1 -0
  116. package/dist/cjs/test/descriptor/derive.js +27 -0
  117. package/dist/cjs/test/descriptor/fromFixedScriptWallet.d.ts +2 -0
  118. package/dist/cjs/test/descriptor/fromFixedScriptWallet.d.ts.map +1 -0
  119. package/dist/cjs/test/descriptor/fromFixedScriptWallet.js +145 -0
  120. package/dist/cjs/test/descriptor/parse/PatternMatcher.d.ts +2 -0
  121. package/dist/cjs/test/descriptor/parse/PatternMatcher.d.ts.map +1 -0
  122. package/dist/cjs/test/descriptor/parse/PatternMatcher.js +120 -0
  123. package/dist/cjs/test/descriptor/psbt/VirtualSize.d.ts +2 -0
  124. package/dist/cjs/test/descriptor/psbt/VirtualSize.d.ts.map +1 -0
  125. package/dist/cjs/test/descriptor/psbt/VirtualSize.js +71 -0
  126. package/dist/cjs/test/descriptor/psbt/assertSatisfiable.d.ts +2 -0
  127. package/dist/cjs/test/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
  128. package/dist/cjs/test/descriptor/psbt/assertSatisfiable.js +56 -0
  129. package/dist/cjs/test/descriptor/psbt/findDescriptors.d.ts +2 -0
  130. package/dist/cjs/test/descriptor/psbt/findDescriptors.d.ts.map +1 -0
  131. package/dist/cjs/test/descriptor/psbt/findDescriptors.js +70 -0
  132. package/dist/cjs/test/descriptor/psbt/psbt.d.ts +2 -0
  133. package/dist/cjs/test/descriptor/psbt/psbt.d.ts.map +1 -0
  134. package/dist/cjs/test/descriptor/psbt/psbt.js +211 -0
  135. package/dist/cjs/test/dustThreshold.d.ts +2 -0
  136. package/dist/cjs/test/dustThreshold.d.ts.map +1 -0
  137. package/dist/cjs/test/dustThreshold.js +110 -0
  138. package/dist/cjs/test/paygo/attestation.d.ts +2 -0
  139. package/dist/cjs/test/paygo/attestation.d.ts.map +1 -0
  140. package/dist/cjs/test/paygo/attestation.js +23 -0
  141. package/dist/cjs/test/paygo/parsePayGoAttestation.d.ts +2 -0
  142. package/dist/cjs/test/paygo/parsePayGoAttestation.d.ts.map +1 -0
  143. package/dist/cjs/test/paygo/parsePayGoAttestation.js +75 -0
  144. package/dist/cjs/test/paygo/psbt/payGoAddressProof.d.ts +10 -0
  145. package/dist/cjs/test/paygo/psbt/payGoAddressProof.d.ts.map +1 -0
  146. package/dist/cjs/test/paygo/psbt/payGoAddressProof.js +137 -0
  147. package/dist/cjs/test/xOnlyPubkey.d.ts +2 -0
  148. package/dist/cjs/test/xOnlyPubkey.d.ts.map +1 -0
  149. package/dist/cjs/test/xOnlyPubkey.js +18 -0
  150. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  151. package/dist/esm/Output.d.ts +43 -0
  152. package/dist/esm/Output.js +53 -0
  153. package/dist/esm/bip322/index.d.ts +5 -0
  154. package/dist/esm/bip322/index.js +5 -0
  155. package/dist/esm/bip322/toSign.d.ts +25 -0
  156. package/dist/esm/bip322/toSign.js +120 -0
  157. package/dist/esm/bip322/toSpend.d.ts +22 -0
  158. package/dist/esm/bip322/toSpend.js +66 -0
  159. package/dist/esm/bip322/utils.d.ts +18 -0
  160. package/dist/esm/bip322/utils.js +77 -0
  161. package/dist/esm/bip322/verify.d.ts +12 -0
  162. package/dist/esm/bip322/verify.js +76 -0
  163. package/dist/esm/bip32utils.d.ts +16 -0
  164. package/dist/esm/bip32utils.js +34 -0
  165. package/dist/esm/bip65/index.d.ts +2 -0
  166. package/dist/esm/bip65/index.js +2 -0
  167. package/dist/esm/bip65/locktime.d.ts +8 -0
  168. package/dist/esm/bip65/locktime.js +34 -0
  169. package/dist/esm/descriptor/DescriptorMap.d.ts +9 -0
  170. package/dist/esm/descriptor/DescriptorMap.js +6 -0
  171. package/dist/esm/descriptor/Output.d.ts +23 -0
  172. package/dist/esm/descriptor/Output.js +32 -0
  173. package/dist/esm/descriptor/VirtualSize.d.ts +23 -0
  174. package/dist/esm/descriptor/VirtualSize.js +94 -0
  175. package/dist/esm/descriptor/address.d.ts +5 -0
  176. package/dist/esm/descriptor/address.js +11 -0
  177. package/dist/esm/descriptor/derive.d.ts +13 -0
  178. package/dist/esm/descriptor/derive.js +38 -0
  179. package/dist/esm/descriptor/fromFixedScriptWallet.d.ts +16 -0
  180. package/dist/esm/descriptor/fromFixedScriptWallet.js +51 -0
  181. package/dist/esm/descriptor/index.d.ts +11 -0
  182. package/dist/esm/descriptor/index.js +11 -0
  183. package/dist/esm/descriptor/parse/PatternMatcher.d.ts +14 -0
  184. package/dist/esm/descriptor/parse/PatternMatcher.js +56 -0
  185. package/dist/esm/descriptor/psbt/assertSatisfiable.d.ts +20 -0
  186. package/dist/esm/descriptor/psbt/assertSatisfiable.js +69 -0
  187. package/dist/esm/descriptor/psbt/createPsbt.d.ts +23 -0
  188. package/dist/esm/descriptor/psbt/createPsbt.js +69 -0
  189. package/dist/esm/descriptor/psbt/findDescriptors.d.ts +26 -0
  190. package/dist/esm/descriptor/psbt/findDescriptors.js +94 -0
  191. package/dist/esm/descriptor/psbt/index.d.ts +7 -0
  192. package/dist/esm/descriptor/psbt/index.js +7 -0
  193. package/dist/esm/descriptor/psbt/parse.d.ts +27 -0
  194. package/dist/esm/descriptor/psbt/parse.js +51 -0
  195. package/dist/esm/descriptor/psbt/sign.d.ts +26 -0
  196. package/dist/esm/descriptor/psbt/sign.js +34 -0
  197. package/dist/esm/descriptor/psbt/wrap.d.ts +12 -0
  198. package/dist/esm/descriptor/psbt/wrap.js +38 -0
  199. package/dist/esm/dustThreshold.d.ts +4 -0
  200. package/dist/esm/dustThreshold.js +97 -0
  201. package/dist/esm/index.d.ts +10 -0
  202. package/dist/esm/index.js +10 -0
  203. package/dist/esm/paygo/attestation.d.ts +11 -0
  204. package/dist/esm/paygo/attestation.js +18 -0
  205. package/dist/esm/paygo/index.d.ts +3 -0
  206. package/dist/esm/paygo/index.js +3 -0
  207. package/dist/esm/paygo/parsePayGoAttestation.d.ts +16 -0
  208. package/dist/esm/paygo/parsePayGoAttestation.js +43 -0
  209. package/dist/esm/paygo/psbt/Errors.d.ts +22 -0
  210. package/dist/esm/paygo/psbt/Errors.js +35 -0
  211. package/dist/esm/paygo/psbt/index.d.ts +2 -0
  212. package/dist/esm/paygo/psbt/index.js +2 -0
  213. package/dist/esm/paygo/psbt/payGoAddressProof.d.ts +29 -0
  214. package/dist/esm/paygo/psbt/payGoAddressProof.js +85 -0
  215. package/dist/esm/testutil/descriptor/descriptors.d.ts +13 -0
  216. package/dist/esm/testutil/descriptor/descriptors.js +150 -0
  217. package/dist/esm/testutil/descriptor/index.d.ts +4 -0
  218. package/dist/esm/testutil/descriptor/index.js +4 -0
  219. package/dist/esm/testutil/descriptor/mock.utils.d.ts +36 -0
  220. package/dist/esm/testutil/descriptor/mock.utils.js +53 -0
  221. package/dist/esm/testutil/descriptor/psbt.utils.d.ts +4 -0
  222. package/dist/esm/testutil/descriptor/psbt.utils.js +17 -0
  223. package/dist/esm/testutil/fixtures.utils.d.ts +15 -0
  224. package/dist/{src → esm}/testutil/fixtures.utils.js +5 -42
  225. package/dist/esm/testutil/generatePayGoAttestationProof.utils.d.ts +12 -0
  226. package/dist/esm/testutil/generatePayGoAttestationProof.utils.js +32 -0
  227. package/dist/esm/testutil/index.d.ts +6 -0
  228. package/dist/esm/testutil/index.js +6 -0
  229. package/dist/esm/testutil/key.utils.d.ts +16 -0
  230. package/dist/esm/testutil/key.utils.js +22 -0
  231. package/dist/esm/testutil/toPlainObject.utils.d.ts +11 -0
  232. package/dist/esm/testutil/toPlainObject.utils.js +85 -0
  233. package/dist/esm/testutil/trimMessagePrefix.d.ts +11 -0
  234. package/dist/esm/testutil/trimMessagePrefix.js +24 -0
  235. package/dist/esm/xOnlyPubkey.d.ts +2 -0
  236. package/dist/esm/xOnlyPubkey.js +15 -0
  237. package/package.json +54 -20
  238. package/dist/src/Output.js +0 -60
  239. package/dist/src/bip322/toSign.js +0 -126
  240. package/dist/src/bip322/toSpend.js +0 -72
  241. package/dist/src/bip322/utils.js +0 -115
  242. package/dist/src/bip322/verify.js +0 -115
  243. package/dist/src/bip32utils.js +0 -71
  244. package/dist/src/bip65/locktime.js +0 -37
  245. package/dist/src/descriptor/DescriptorMap.js +0 -9
  246. package/dist/src/descriptor/Output.js +0 -41
  247. package/dist/src/descriptor/VirtualSize.js +0 -100
  248. package/dist/src/descriptor/derive.js +0 -45
  249. package/dist/src/descriptor/fromFixedScriptWallet.js +0 -88
  250. package/dist/src/descriptor/parse/PatternMatcher.js +0 -60
  251. package/dist/src/descriptor/psbt/assertSatisfiable.js +0 -74
  252. package/dist/src/descriptor/psbt/createPsbt.js +0 -107
  253. package/dist/src/descriptor/psbt/findDescriptors.js +0 -98
  254. package/dist/src/descriptor/psbt/parse.js +0 -87
  255. package/dist/src/descriptor/psbt/sign.js +0 -42
  256. package/dist/src/descriptor/psbt/wrap.js +0 -76
  257. package/dist/src/dustThreshold.js +0 -134
  258. package/dist/src/paygo/parsePayGoAttestation.js +0 -50
  259. package/dist/src/paygo/psbt/Errors.js +0 -44
  260. package/dist/src/paygo/psbt/payGoAddressProof.js +0 -124
  261. package/dist/src/testutil/descriptor/descriptors.js +0 -162
  262. package/dist/src/testutil/descriptor/mock.utils.js +0 -92
  263. package/dist/src/testutil/descriptor/psbt.utils.js +0 -21
  264. package/dist/src/testutil/generatePayGoAttestationProof.utils.js +0 -38
  265. package/dist/src/testutil/toPlainObject.utils.js +0 -89
  266. package/dist/src/xOnlyPubkey.js +0 -18
  267. /package/dist/{src → cjs/src}/Output.d.ts +0 -0
  268. /package/dist/{src → cjs/src}/bip322/index.d.ts +0 -0
  269. /package/dist/{src → cjs/src}/bip322/toSign.d.ts +0 -0
  270. /package/dist/{src → cjs/src}/bip322/toSpend.d.ts +0 -0
  271. /package/dist/{src → cjs/src}/bip322/utils.d.ts +0 -0
  272. /package/dist/{src → cjs/src}/bip322/verify.d.ts +0 -0
  273. /package/dist/{src → cjs/src}/bip32utils.d.ts +0 -0
  274. /package/dist/{src → cjs/src}/bip65/index.d.ts +0 -0
  275. /package/dist/{src → cjs/src}/bip65/locktime.d.ts +0 -0
  276. /package/dist/{src → cjs/src}/descriptor/DescriptorMap.d.ts +0 -0
  277. /package/dist/{src → cjs/src}/descriptor/Output.d.ts +0 -0
  278. /package/dist/{src → cjs/src}/descriptor/VirtualSize.d.ts +0 -0
  279. /package/dist/{src → cjs/src}/descriptor/address.d.ts +0 -0
  280. /package/dist/{src → cjs/src}/descriptor/derive.d.ts +0 -0
  281. /package/dist/{src → cjs/src}/descriptor/fromFixedScriptWallet.d.ts +0 -0
  282. /package/dist/{src → cjs/src}/descriptor/index.d.ts +0 -0
  283. /package/dist/{src → cjs/src}/descriptor/parse/PatternMatcher.d.ts +0 -0
  284. /package/dist/{src → cjs/src}/descriptor/psbt/assertSatisfiable.d.ts +0 -0
  285. /package/dist/{src → cjs/src}/descriptor/psbt/createPsbt.d.ts +0 -0
  286. /package/dist/{src → cjs/src}/descriptor/psbt/findDescriptors.d.ts +0 -0
  287. /package/dist/{src → cjs/src}/descriptor/psbt/index.d.ts +0 -0
  288. /package/dist/{src → cjs/src}/descriptor/psbt/parse.d.ts +0 -0
  289. /package/dist/{src → cjs/src}/descriptor/psbt/sign.d.ts +0 -0
  290. /package/dist/{src → cjs/src}/descriptor/psbt/wrap.d.ts +0 -0
  291. /package/dist/{src → cjs/src}/dustThreshold.d.ts +0 -0
  292. /package/dist/{src → cjs/src}/index.d.ts +0 -0
  293. /package/dist/{src → cjs/src}/paygo/attestation.d.ts +0 -0
  294. /package/dist/{src → cjs/src}/paygo/index.d.ts +0 -0
  295. /package/dist/{src → cjs/src}/paygo/parsePayGoAttestation.d.ts +0 -0
  296. /package/dist/{src → cjs/src}/paygo/psbt/Errors.d.ts +0 -0
  297. /package/dist/{src → cjs/src}/paygo/psbt/index.d.ts +0 -0
  298. /package/dist/{src → cjs/src}/paygo/psbt/payGoAddressProof.d.ts +0 -0
  299. /package/dist/{src → cjs/src}/testutil/descriptor/descriptors.d.ts +0 -0
  300. /package/dist/{src → cjs/src}/testutil/descriptor/index.d.ts +0 -0
  301. /package/dist/{src → cjs/src}/testutil/descriptor/mock.utils.d.ts +0 -0
  302. /package/dist/{src → cjs/src}/testutil/descriptor/psbt.utils.d.ts +0 -0
  303. /package/dist/{src → cjs/src}/testutil/fixtures.utils.d.ts +0 -0
  304. /package/dist/{src → cjs/src}/testutil/generatePayGoAttestationProof.utils.d.ts +0 -0
  305. /package/dist/{src → cjs/src}/testutil/index.d.ts +0 -0
  306. /package/dist/{src → cjs/src}/testutil/key.utils.d.ts +0 -0
  307. /package/dist/{src → cjs/src}/testutil/toPlainObject.utils.d.ts +0 -0
  308. /package/dist/{src → cjs/src}/testutil/trimMessagePrefix.d.ts +0 -0
  309. /package/dist/{src → cjs/src}/xOnlyPubkey.d.ts +0 -0
  310. /package/dist/{src → esm}/Output.d.ts.map +0 -0
  311. /package/dist/{src → esm}/bip322/index.d.ts.map +0 -0
  312. /package/dist/{src → esm}/bip322/toSign.d.ts.map +0 -0
  313. /package/dist/{src → esm}/bip322/toSpend.d.ts.map +0 -0
  314. /package/dist/{src → esm}/bip322/utils.d.ts.map +0 -0
  315. /package/dist/{src → esm}/bip322/verify.d.ts.map +0 -0
  316. /package/dist/{src → esm}/bip32utils.d.ts.map +0 -0
  317. /package/dist/{src → esm}/bip65/index.d.ts.map +0 -0
  318. /package/dist/{src → esm}/bip65/locktime.d.ts.map +0 -0
  319. /package/dist/{src → esm}/descriptor/DescriptorMap.d.ts.map +0 -0
  320. /package/dist/{src → esm}/descriptor/Output.d.ts.map +0 -0
  321. /package/dist/{src → esm}/descriptor/VirtualSize.d.ts.map +0 -0
  322. /package/dist/{src → esm}/descriptor/address.d.ts.map +0 -0
  323. /package/dist/{src → esm}/descriptor/derive.d.ts.map +0 -0
  324. /package/dist/{src → esm}/descriptor/fromFixedScriptWallet.d.ts.map +0 -0
  325. /package/dist/{src → esm}/descriptor/index.d.ts.map +0 -0
  326. /package/dist/{src → esm}/descriptor/parse/PatternMatcher.d.ts.map +0 -0
  327. /package/dist/{src → esm}/descriptor/psbt/assertSatisfiable.d.ts.map +0 -0
  328. /package/dist/{src → esm}/descriptor/psbt/createPsbt.d.ts.map +0 -0
  329. /package/dist/{src → esm}/descriptor/psbt/findDescriptors.d.ts.map +0 -0
  330. /package/dist/{src → esm}/descriptor/psbt/index.d.ts.map +0 -0
  331. /package/dist/{src → esm}/descriptor/psbt/parse.d.ts.map +0 -0
  332. /package/dist/{src → esm}/descriptor/psbt/sign.d.ts.map +0 -0
  333. /package/dist/{src → esm}/descriptor/psbt/wrap.d.ts.map +0 -0
  334. /package/dist/{src → esm}/dustThreshold.d.ts.map +0 -0
  335. /package/dist/{src → esm}/index.d.ts.map +0 -0
  336. /package/dist/{src → esm}/paygo/attestation.d.ts.map +0 -0
  337. /package/dist/{src → esm}/paygo/index.d.ts.map +0 -0
  338. /package/dist/{src → esm}/paygo/parsePayGoAttestation.d.ts.map +0 -0
  339. /package/dist/{src → esm}/paygo/psbt/Errors.d.ts.map +0 -0
  340. /package/dist/{src → esm}/paygo/psbt/index.d.ts.map +0 -0
  341. /package/dist/{src → esm}/paygo/psbt/payGoAddressProof.d.ts.map +0 -0
  342. /package/dist/{src → esm}/testutil/descriptor/descriptors.d.ts.map +0 -0
  343. /package/dist/{src → esm}/testutil/descriptor/index.d.ts.map +0 -0
  344. /package/dist/{src → esm}/testutil/descriptor/mock.utils.d.ts.map +0 -0
  345. /package/dist/{src → esm}/testutil/descriptor/psbt.utils.d.ts.map +0 -0
  346. /package/dist/{src → esm}/testutil/fixtures.utils.d.ts.map +0 -0
  347. /package/dist/{src → esm}/testutil/generatePayGoAttestationProof.utils.d.ts.map +0 -0
  348. /package/dist/{src → esm}/testutil/index.d.ts.map +0 -0
  349. /package/dist/{src → esm}/testutil/key.utils.d.ts.map +0 -0
  350. /package/dist/{src → esm}/testutil/toPlainObject.utils.d.ts.map +0 -0
  351. /package/dist/{src → esm}/testutil/trimMessagePrefix.d.ts.map +0 -0
  352. /package/dist/{src → esm}/xOnlyPubkey.d.ts.map +0 -0
@@ -0,0 +1,71 @@
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.signMessage = signMessage;
37
+ exports.verifyMessage = verifyMessage;
38
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
39
+ const bitcoinMessage = __importStar(require("bitcoinjs-message"));
40
+ /**
41
+ * bip32-aware wrapper around bitcoin-message package
42
+ * @see {bitcoinMessage.sign}
43
+ */
44
+ function signMessage(message, privateKey, network) {
45
+ if (!Buffer.isBuffer(privateKey)) {
46
+ privateKey = privateKey.privateKey;
47
+ if (!privateKey) {
48
+ throw new Error(`must provide privateKey`);
49
+ }
50
+ }
51
+ if (network === null || typeof network !== 'object' || typeof network.messagePrefix !== 'string') {
52
+ throw new Error(`invalid argument 'network'`);
53
+ }
54
+ const compressed = true;
55
+ return bitcoinMessage.sign(message, privateKey, compressed, network.messagePrefix);
56
+ }
57
+ /**
58
+ * bip32-aware wrapper around bitcoin-message package
59
+ * @see {bitcoinMessage.verify}
60
+ */
61
+ function verifyMessage(message, publicKey, signature, network) {
62
+ if (!Buffer.isBuffer(publicKey)) {
63
+ publicKey = publicKey.publicKey;
64
+ }
65
+ if (network === null || typeof network !== 'object' || typeof network.messagePrefix !== 'string') {
66
+ throw new Error(`invalid argument 'network'`);
67
+ }
68
+ const address = utxolib.address.toBase58Check(utxolib.crypto.hash160(publicKey), utxolib.networks.bitcoin.pubKeyHash, utxolib.networks.bitcoin);
69
+ return bitcoinMessage.verify(message, address, signature, network.messagePrefix);
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlwMzJ1dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXAzMnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0Esa0NBZ0JDO0FBTUQsc0NBbUJDO0FBL0NELDhEQUFnRDtBQUNoRCxrRUFBb0Q7QUFDcEQ7OztHQUdHO0FBQ0gsU0FBZ0IsV0FBVyxDQUN6QixPQUF3QixFQUN4QixVQUFtQyxFQUNuQyxPQUFrQztJQUVsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ2pDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBb0IsQ0FBQztRQUM3QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFBSSxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDakcsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDeEIsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNyRixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsYUFBYSxDQUMzQixPQUF3QixFQUN4QixTQUFrQyxFQUNsQyxTQUFpQixFQUNqQixPQUFrQztJQUVsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ2hDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxJQUFJLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLGFBQWEsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNqRyxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUMzQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFDakMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUNuQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FDekIsQ0FBQztJQUNGLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDbkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2VjcDI1NmsxJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0ICogYXMgYml0Y29pbk1lc3NhZ2UgZnJvbSAnYml0Y29pbmpzLW1lc3NhZ2UnO1xuLyoqXG4gKiBiaXAzMi1hd2FyZSB3cmFwcGVyIGFyb3VuZCBiaXRjb2luLW1lc3NhZ2UgcGFja2FnZVxuICogQHNlZSB7Yml0Y29pbk1lc3NhZ2Uuc2lnbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25NZXNzYWdlKFxuICBtZXNzYWdlOiBzdHJpbmcgfCBCdWZmZXIsXG4gIHByaXZhdGVLZXk6IEJJUDMySW50ZXJmYWNlIHwgQnVmZmVyLFxuICBuZXR3b3JrOiB7IG1lc3NhZ2VQcmVmaXg6IHN0cmluZyB9XG4pOiBCdWZmZXIge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihwcml2YXRlS2V5KSkge1xuICAgIHByaXZhdGVLZXkgPSBwcml2YXRlS2V5LnByaXZhdGVLZXkgYXMgQnVmZmVyO1xuICAgIGlmICghcHJpdmF0ZUtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgcHJpdmF0ZUtleWApO1xuICAgIH1cbiAgfVxuICBpZiAobmV0d29yayA9PT0gbnVsbCB8fCB0eXBlb2YgbmV0d29yayAhPT0gJ29iamVjdCcgfHwgdHlwZW9mIG5ldHdvcmsubWVzc2FnZVByZWZpeCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgYXJndW1lbnQgJ25ldHdvcmsnYCk7XG4gIH1cbiAgY29uc3QgY29tcHJlc3NlZCA9IHRydWU7XG4gIHJldHVybiBiaXRjb2luTWVzc2FnZS5zaWduKG1lc3NhZ2UsIHByaXZhdGVLZXksIGNvbXByZXNzZWQsIG5ldHdvcmsubWVzc2FnZVByZWZpeCk7XG59XG5cbi8qKlxuICogYmlwMzItYXdhcmUgd3JhcHBlciBhcm91bmQgYml0Y29pbi1tZXNzYWdlIHBhY2thZ2VcbiAqIEBzZWUge2JpdGNvaW5NZXNzYWdlLnZlcmlmeX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeU1lc3NhZ2UoXG4gIG1lc3NhZ2U6IHN0cmluZyB8IEJ1ZmZlcixcbiAgcHVibGljS2V5OiBCSVAzMkludGVyZmFjZSB8IEJ1ZmZlcixcbiAgc2lnbmF0dXJlOiBCdWZmZXIsXG4gIG5ldHdvcms6IHsgbWVzc2FnZVByZWZpeDogc3RyaW5nIH1cbik6IGJvb2xlYW4ge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihwdWJsaWNLZXkpKSB7XG4gICAgcHVibGljS2V5ID0gcHVibGljS2V5LnB1YmxpY0tleTtcbiAgfVxuICBpZiAobmV0d29yayA9PT0gbnVsbCB8fCB0eXBlb2YgbmV0d29yayAhPT0gJ29iamVjdCcgfHwgdHlwZW9mIG5ldHdvcmsubWVzc2FnZVByZWZpeCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgYXJndW1lbnQgJ25ldHdvcmsnYCk7XG4gIH1cblxuICBjb25zdCBhZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLnRvQmFzZTU4Q2hlY2soXG4gICAgdXR4b2xpYi5jcnlwdG8uaGFzaDE2MChwdWJsaWNLZXkpLFxuICAgIHV0eG9saWIubmV0d29ya3MuYml0Y29pbi5wdWJLZXlIYXNoLFxuICAgIHV0eG9saWIubmV0d29ya3MuYml0Y29pblxuICApO1xuICByZXR1cm4gYml0Y29pbk1lc3NhZ2UudmVyaWZ5KG1lc3NhZ2UsIGFkZHJlc3MsIHNpZ25hdHVyZSwgbmV0d29yay5tZXNzYWdlUHJlZml4KTtcbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bip65/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -15,4 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./locktime"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmlwNjUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbG9ja3RpbWUnO1xuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmlwNjUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbG9ja3RpbWUnO1xuIl19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locktime.d.ts","sourceRoot":"","sources":["../../../../src/bip65/locktime.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAwBrE"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /*
3
+
4
+ Modified version of https://github.com/bitcoinjs/bip65/blob/master/index.js
5
+
6
+ BIP0065: https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki
7
+
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.encodeLocktime = encodeLocktime;
11
+ // https://github.com/bitcoin/bitcoin/blob/v28.0/src/script/script.h#L44-L46
12
+ const LOCKTIME_THRESHOLD = 500000000;
13
+ /**
14
+ * @param obj
15
+ * @return number
16
+ */
17
+ function encodeLocktime(obj) {
18
+ if (obj instanceof Date) {
19
+ if (!Number.isFinite(obj.getTime())) {
20
+ throw new Error('invalid date');
21
+ }
22
+ const seconds = Math.floor(obj.getTime() / 1000);
23
+ if (seconds < LOCKTIME_THRESHOLD) {
24
+ throw new TypeError('Expected Number utc >= ' + LOCKTIME_THRESHOLD);
25
+ }
26
+ return seconds;
27
+ }
28
+ const { blocks } = obj;
29
+ if (!Number.isFinite(blocks) || !Number.isInteger(blocks)) {
30
+ throw new TypeError('Expected Number blocks');
31
+ }
32
+ if (blocks >= LOCKTIME_THRESHOLD) {
33
+ throw new TypeError('Expected Number blocks < ' + LOCKTIME_THRESHOLD);
34
+ }
35
+ return blocks;
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ja3RpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmlwNjUvbG9ja3RpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7RUFNRTs7QUFTRix3Q0F3QkM7QUEvQkQsNEVBQTRFO0FBQzVFLE1BQU0sa0JBQWtCLEdBQUcsU0FBVyxDQUFDO0FBRXZDOzs7R0FHRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxHQUE4QjtJQUMzRCxJQUFJLEdBQUcsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2pELElBQUksT0FBTyxHQUFHLGtCQUFrQixFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLFNBQVMsQ0FBQyx5QkFBeUIsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQztJQUV2QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMxRCxNQUFNLElBQUksU0FBUyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksTUFBTSxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDakMsTUFBTSxJQUFJLFNBQVMsQ0FBQywyQkFBMkIsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcblxuTW9kaWZpZWQgdmVyc2lvbiBvZiBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbmpzL2JpcDY1L2Jsb2IvbWFzdGVyL2luZGV4LmpzXG5cbkJJUDAwNjU6IGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpcHMvYmxvYi9tYXN0ZXIvYmlwLTAwNjUubWVkaWF3aWtpXG5cbiovXG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpdGNvaW4vYmxvYi92MjguMC9zcmMvc2NyaXB0L3NjcmlwdC5oI0w0NC1MNDZcbmNvbnN0IExPQ0tUSU1FX1RIUkVTSE9MRCA9IDUwMF8wMDBfMDAwO1xuXG4vKipcbiAqIEBwYXJhbSBvYmpcbiAqIEByZXR1cm4gbnVtYmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVMb2NrdGltZShvYmo6IERhdGUgfCB7IGJsb2NrczogbnVtYmVyIH0pOiBudW1iZXIge1xuICBpZiAob2JqIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKG9iai5nZXRUaW1lKCkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgZGF0ZScpO1xuICAgIH1cbiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcihvYmouZ2V0VGltZSgpIC8gMTAwMCk7XG4gICAgaWYgKHNlY29uZHMgPCBMT0NLVElNRV9USFJFU0hPTEQpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIE51bWJlciB1dGMgPj0gJyArIExPQ0tUSU1FX1RIUkVTSE9MRCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlY29uZHM7XG4gIH1cblxuICBjb25zdCB7IGJsb2NrcyB9ID0gb2JqO1xuXG4gIGlmICghTnVtYmVyLmlzRmluaXRlKGJsb2NrcykgfHwgIU51bWJlci5pc0ludGVnZXIoYmxvY2tzKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIE51bWJlciBibG9ja3MnKTtcbiAgfVxuXG4gIGlmIChibG9ja3MgPj0gTE9DS1RJTUVfVEhSRVNIT0xEKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgTnVtYmVyIGJsb2NrcyA8ICcgKyBMT0NLVElNRV9USFJFU0hPTEQpO1xuICB9XG5cbiAgcmV0dXJuIGJsb2Nrcztcbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DescriptorMap.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/DescriptorMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEpD,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAAA;CAAE,EAAE,GAAG,aAAa,CAI1G"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toDescriptorMap = toDescriptorMap;
4
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
5
+ /** Convert an array of descriptor name-value pairs to a descriptor map */
6
+ function toDescriptorMap(descriptors) {
7
+ return new Map(descriptors.map((d) => [d.name, d.value instanceof wasm_utxo_1.Descriptor ? d.value : wasm_utxo_1.Descriptor.fromStringDetectType(d.value)]));
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVzY3JpcHRvck1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL0Rlc2NyaXB0b3JNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSwwQ0FJQztBQVZELGdEQUE4QztBQUs5QywwRUFBMEU7QUFDMUUsU0FBZ0IsZUFBZSxDQUFDLFdBQTJEO0lBQ3pGLE9BQU8sSUFBSSxHQUFHLENBQ1osV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLFlBQVksc0JBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsc0JBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNySCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuLyoqIE1hcCBmcm9tIGRlc2NyaXB0b3IgbmFtZSB0byBkZXNjcmlwdG9yICovXG5leHBvcnQgdHlwZSBEZXNjcmlwdG9yTWFwID0gTWFwPHN0cmluZywgRGVzY3JpcHRvcj47XG5cbi8qKiBDb252ZXJ0IGFuIGFycmF5IG9mIGRlc2NyaXB0b3IgbmFtZS12YWx1ZSBwYWlycyB0byBhIGRlc2NyaXB0b3IgbWFwICovXG5leHBvcnQgZnVuY3Rpb24gdG9EZXNjcmlwdG9yTWFwKGRlc2NyaXB0b3JzOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IERlc2NyaXB0b3IgfCBzdHJpbmcgfVtdKTogRGVzY3JpcHRvck1hcCB7XG4gIHJldHVybiBuZXcgTWFwKFxuICAgIGRlc2NyaXB0b3JzLm1hcCgoZCkgPT4gW2QubmFtZSwgZC52YWx1ZSBpbnN0YW5jZW9mIERlc2NyaXB0b3IgPyBkLnZhbHVlIDogRGVzY3JpcHRvci5mcm9tU3RyaW5nRGV0ZWN0VHlwZShkLnZhbHVlKV0pXG4gICk7XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Output.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/Output.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAqB,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG;IAClC,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG;IACrC,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC,CAE7G;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAE7F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,CAE/F;AAED,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;AAEvE,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,sBAAsB,EAC9B,aAAa,EAAE,aAAa,GAC3B,6BAA6B,CAkB/B"}
@@ -0,0 +1,41 @@
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
+ exports.isInternalOutput = isInternalOutput;
7
+ exports.isExternalOutput = isExternalOutput;
8
+ exports.getExternalFixedAmount = getExternalFixedAmount;
9
+ exports.toDerivedDescriptorWalletOutput = toDerivedDescriptorWalletOutput;
10
+ const assert_1 = __importDefault(require("assert"));
11
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
12
+ const Output_1 = require("../Output");
13
+ const derive_1 = require("./derive");
14
+ function isInternalOutput(output) {
15
+ return 'descriptor' in output && output.descriptor !== undefined;
16
+ }
17
+ function isExternalOutput(output) {
18
+ return !isInternalOutput(output);
19
+ }
20
+ /**
21
+ * @return the sum of the external outputs that are not 'max'
22
+ * @param outputs
23
+ */
24
+ function getExternalFixedAmount(outputs) {
25
+ return (0, Output_1.getFixedOutputSum)(outputs.filter(isExternalOutput));
26
+ }
27
+ function toDerivedDescriptorWalletOutput(output, descriptorMap) {
28
+ const descriptor = descriptorMap.get(output.descriptorName);
29
+ if (!descriptor) {
30
+ throw new Error(`Descriptor not found: ${output.descriptorName}`);
31
+ }
32
+ (0, assert_1.default)(descriptor instanceof wasm_utxo_1.Descriptor);
33
+ const descriptorAtIndex = (0, derive_1.getDescriptorAtIndexCheckScript)(descriptor, output.descriptorIndex, output.witnessUtxo.script, output.descriptorName);
34
+ return {
35
+ hash: output.hash,
36
+ index: output.index,
37
+ witnessUtxo: output.witnessUtxo,
38
+ descriptor: descriptorAtIndex,
39
+ };
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvT3V0cHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBaUJBLDRDQUVDO0FBRUQsNENBRUM7QUFNRCx3REFFQztBQVNELDBFQXFCQztBQTdERCxvREFBNEI7QUFFNUIsZ0RBQThDO0FBRTlDLHNDQUE2RTtBQUc3RSxxQ0FBMkQ7QUFVM0QsU0FBZ0IsZ0JBQWdCLENBQW1CLE1BQTZCO0lBQzlFLE9BQU8sWUFBWSxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQztBQUNuRSxDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQW1CLE1BQTZCO0lBQzlFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsT0FBZ0Q7SUFDckYsT0FBTyxJQUFBLDBCQUFpQixFQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFTRCxTQUFnQiwrQkFBK0IsQ0FDN0MsTUFBOEIsRUFDOUIsYUFBNEI7SUFFNUIsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFDRCxJQUFBLGdCQUFNLEVBQUMsVUFBVSxZQUFZLHNCQUFVLENBQUMsQ0FBQztJQUN6QyxNQUFNLGlCQUFpQixHQUFHLElBQUEsd0NBQStCLEVBQ3ZELFVBQVUsRUFDVixNQUFNLENBQUMsZUFBZSxFQUN0QixNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFDekIsTUFBTSxDQUFDLGNBQWMsQ0FDdEIsQ0FBQztJQUNGLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1FBQ25CLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztRQUMvQixVQUFVLEVBQUUsaUJBQWlCO0tBQzlCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yIH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB7IGdldEZpeGVkT3V0cHV0U3VtLCBNYXhPdXRwdXQsIE91dHB1dCwgUHJldk91dHB1dCB9IGZyb20gJy4uL091dHB1dCc7XG5cbmltcG9ydCB7IERlc2NyaXB0b3JNYXAgfSBmcm9tICcuL0Rlc2NyaXB0b3JNYXAnO1xuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvckF0SW5kZXhDaGVja1NjcmlwdCB9IGZyb20gJy4vZGVyaXZlJztcblxuZXhwb3J0IHR5cGUgV2l0aERlc2NyaXB0b3I8VD4gPSBUICYge1xuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yO1xufTtcblxuZXhwb3J0IHR5cGUgV2l0aE9wdERlc2NyaXB0b3I8VD4gPSBUICYge1xuICBkZXNjcmlwdG9yPzogRGVzY3JpcHRvcjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ludGVybmFsT3V0cHV0PFQgZXh0ZW5kcyBvYmplY3Q+KG91dHB1dDogVCB8IFdpdGhEZXNjcmlwdG9yPFQ+KTogb3V0cHV0IGlzIFdpdGhEZXNjcmlwdG9yPFQ+IHtcbiAgcmV0dXJuICdkZXNjcmlwdG9yJyBpbiBvdXRwdXQgJiYgb3V0cHV0LmRlc2NyaXB0b3IgIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRXh0ZXJuYWxPdXRwdXQ8VCBleHRlbmRzIG9iamVjdD4ob3V0cHV0OiBUIHwgV2l0aERlc2NyaXB0b3I8VD4pOiBvdXRwdXQgaXMgVCB7XG4gIHJldHVybiAhaXNJbnRlcm5hbE91dHB1dChvdXRwdXQpO1xufVxuXG4vKipcbiAqIEByZXR1cm4gdGhlIHN1bSBvZiB0aGUgZXh0ZXJuYWwgb3V0cHV0cyB0aGF0IGFyZSBub3QgJ21heCdcbiAqIEBwYXJhbSBvdXRwdXRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHRlcm5hbEZpeGVkQW1vdW50KG91dHB1dHM6IFdpdGhPcHREZXNjcmlwdG9yPE91dHB1dCB8IE1heE91dHB1dD5bXSk6IGJpZ2ludCB7XG4gIHJldHVybiBnZXRGaXhlZE91dHB1dFN1bShvdXRwdXRzLmZpbHRlcihpc0V4dGVybmFsT3V0cHV0KSk7XG59XG5cbmV4cG9ydCB0eXBlIERlc2NyaXB0b3JXYWxsZXRPdXRwdXQgPSBQcmV2T3V0cHV0ICYge1xuICBkZXNjcmlwdG9yTmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdG9ySW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCB0eXBlIERlcml2ZWREZXNjcmlwdG9yV2FsbGV0T3V0cHV0ID0gV2l0aERlc2NyaXB0b3I8UHJldk91dHB1dD47XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0Rlcml2ZWREZXNjcmlwdG9yV2FsbGV0T3V0cHV0KFxuICBvdXRwdXQ6IERlc2NyaXB0b3JXYWxsZXRPdXRwdXQsXG4gIGRlc2NyaXB0b3JNYXA6IERlc2NyaXB0b3JNYXBcbik6IERlcml2ZWREZXNjcmlwdG9yV2FsbGV0T3V0cHV0IHtcbiAgY29uc3QgZGVzY3JpcHRvciA9IGRlc2NyaXB0b3JNYXAuZ2V0KG91dHB1dC5kZXNjcmlwdG9yTmFtZSk7XG4gIGlmICghZGVzY3JpcHRvcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgRGVzY3JpcHRvciBub3QgZm91bmQ6ICR7b3V0cHV0LmRlc2NyaXB0b3JOYW1lfWApO1xuICB9XG4gIGFzc2VydChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRGVzY3JpcHRvcik7XG4gIGNvbnN0IGRlc2NyaXB0b3JBdEluZGV4ID0gZ2V0RGVzY3JpcHRvckF0SW5kZXhDaGVja1NjcmlwdChcbiAgICBkZXNjcmlwdG9yLFxuICAgIG91dHB1dC5kZXNjcmlwdG9ySW5kZXgsXG4gICAgb3V0cHV0LndpdG5lc3NVdHhvLnNjcmlwdCxcbiAgICBvdXRwdXQuZGVzY3JpcHRvck5hbWVcbiAgKTtcbiAgcmV0dXJuIHtcbiAgICBoYXNoOiBvdXRwdXQuaGFzaCxcbiAgICBpbmRleDogb3V0cHV0LmluZGV4LFxuICAgIHdpdG5lc3NVdHhvOiBvdXRwdXQud2l0bmVzc1V0eG8sXG4gICAgZGVzY3JpcHRvcjogZGVzY3JpcHRvckF0SW5kZXgsXG4gIH07XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualSize.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/VirtualSize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAkDhD,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM/F;AAED,wBAAgB,kCAAkC,CAAC,CAAC,EAAE,UAAU,GAAG;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAKA;AAED,KAAK,uBAAuB,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1D,KAAK,gBAAgB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C,KAAK,EAAE,CAAC,MAAM,IAAI;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;AAC3D,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,uBAAuB,CAAC,EAAE,WAAW,EAAE,aAAa,GAAG,MAAM,CAAC;AA6BpG,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,GAAG,MAAM,CAUtG"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getInputVSizesForDescriptors = getInputVSizesForDescriptors;
4
+ exports.getChangeOutputVSizesForDescriptor = getChangeOutputVSizesForDescriptor;
5
+ exports.getVirtualSize = getVirtualSize;
6
+ exports.getVirtualSizeEstimateForPsbt = getVirtualSizeEstimateForPsbt;
7
+ const unspents_1 = require("@bitgo-beta/unspents");
8
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
9
+ const psbt_1 = require("./psbt");
10
+ function getScriptPubKeyLength(descType) {
11
+ // See https://bitcoinops.org/en/tools/calc-size/
12
+ switch (descType) {
13
+ case 'Wpkh':
14
+ // https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#p2wpkh
15
+ return 22;
16
+ case 'Sh':
17
+ case 'ShWsh':
18
+ case 'ShWpkh':
19
+ // https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki#specification
20
+ return 23;
21
+ case 'Pkh':
22
+ return 25;
23
+ case 'Wsh':
24
+ case 'Tr':
25
+ // P2WSH: https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#p2wsh
26
+ // P2TR: https://github.com/bitcoin/bips/blob/58ffd93812ff25e87d53d1f202fbb389fdfb85bb/bip-0341.mediawiki#script-validation-rules
27
+ // > A Taproot output is a native SegWit output (see BIP141) with version number 1, and a 32-byte witness program.
28
+ // 32 bytes for the hash, 1 byte for the version, 1 byte for the push opcode
29
+ return 34;
30
+ case 'Bare':
31
+ throw new Error('cannot determine scriptPubKey length for Bare descriptor');
32
+ default:
33
+ throw new Error('unexpected descriptor type ' + descType);
34
+ }
35
+ }
36
+ function getInputVSizeForDescriptor(descriptor) {
37
+ // FIXME(BTC-1489): this can overestimate the size of the input significantly
38
+ const maxWeight = descriptor.maxWeightToSatisfy();
39
+ const maxVSize = Math.ceil(maxWeight / 4);
40
+ const sizeOpPushdata1 = 1;
41
+ const sizeOpPushdata2 = 2;
42
+ return (
43
+ // inputId
44
+ 32 +
45
+ // vOut
46
+ 4 +
47
+ // nSequence
48
+ 4 +
49
+ // script overhead
50
+ (maxVSize < 255 ? sizeOpPushdata1 : sizeOpPushdata2) +
51
+ // script
52
+ maxVSize);
53
+ }
54
+ function getInputVSizesForDescriptors(descriptors) {
55
+ return Object.fromEntries(Array.from(descriptors.entries()).map(([name, d]) => {
56
+ return [name, getInputVSizeForDescriptor(d)];
57
+ }));
58
+ }
59
+ function getChangeOutputVSizesForDescriptor(d) {
60
+ return {
61
+ inputVSize: getInputVSizeForDescriptor(d),
62
+ outputVSize: getScriptPubKeyLength(d.descType()),
63
+ };
64
+ }
65
+ function getVirtualSize(tx, descriptorMap) {
66
+ const lookup = descriptorMap ? getInputVSizesForDescriptors(descriptorMap) : undefined;
67
+ const inputVSize = tx.inputs.reduce((sum, input) => {
68
+ if (input instanceof wasm_utxo_1.Descriptor) {
69
+ return sum + getInputVSizeForDescriptor(input);
70
+ }
71
+ if ('descriptorName' in input) {
72
+ if (!lookup) {
73
+ throw new Error('missing descriptorMap');
74
+ }
75
+ const vsize = lookup[input.descriptorName];
76
+ if (!vsize) {
77
+ throw new Error(`Could not find descriptor ${input.descriptorName}`);
78
+ }
79
+ return sum + vsize;
80
+ }
81
+ throw new Error('unexpected input');
82
+ }, 0);
83
+ const outputVSize = tx.outputs.reduce((sum, o) => {
84
+ return sum + unspents_1.Dimensions.getVSizeForOutputWithScriptLength(o.script.length);
85
+ }, 0);
86
+ // we will just assume that we have at least one segwit input
87
+ return inputVSize + outputVSize + unspents_1.VirtualSizes.txSegOverheadVSize;
88
+ }
89
+ function getVirtualSizeEstimateForPsbt(psbt, descriptorMap) {
90
+ const inputs = psbt.data.inputs.map((i) => {
91
+ const result = (0, psbt_1.findDescriptorForInput)(i, descriptorMap);
92
+ if (!result) {
93
+ throw new Error('Could not find descriptor for input');
94
+ }
95
+ return result.descriptor;
96
+ });
97
+ const outputs = psbt.txOutputs.map((o) => ({ script: o.script }));
98
+ return getVirtualSize({ inputs, outputs });
99
+ }
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlydHVhbFNpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9WaXJ0dWFsU2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXNEQSxvRUFNQztBQUVELGdGQVFDO0FBWUQsd0NBMEJDO0FBRUQsc0VBVUM7QUF2SEQsbURBQWdFO0FBQ2hFLGdEQUE4QztBQUc5QyxpQ0FBZ0Q7QUFFaEQsU0FBUyxxQkFBcUIsQ0FBQyxRQUFnQjtJQUM3QyxpREFBaUQ7SUFDakQsUUFBUSxRQUFRLEVBQUUsQ0FBQztRQUNqQixLQUFLLE1BQU07WUFDVCx3RUFBd0U7WUFDeEUsT0FBTyxFQUFFLENBQUM7UUFDWixLQUFLLElBQUksQ0FBQztRQUNWLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxRQUFRO1lBQ1gsK0VBQStFO1lBQy9FLE9BQU8sRUFBRSxDQUFDO1FBQ1osS0FBSyxLQUFLO1lBQ1IsT0FBTyxFQUFFLENBQUM7UUFDWixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssSUFBSTtZQUNQLDhFQUE4RTtZQUM5RSxpSUFBaUk7WUFDakksa0hBQWtIO1lBQ2xILDRFQUE0RTtZQUM1RSxPQUFPLEVBQUUsQ0FBQztRQUNaLEtBQUssTUFBTTtZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztRQUM5RTtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFDOUQsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUFDLFVBQXNCO0lBQ3hELDZFQUE2RTtJQUM3RSxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxQyxNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDMUIsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLE9BQU87SUFDTCxVQUFVO0lBQ1YsRUFBRTtRQUNGLE9BQU87UUFDUCxDQUFDO1FBQ0QsWUFBWTtRQUNaLENBQUM7UUFDRCxrQkFBa0I7UUFDbEIsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztRQUNwRCxTQUFTO1FBQ1QsUUFBUSxDQUNULENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsNEJBQTRCLENBQUMsV0FBMEI7SUFDckUsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDbEQsT0FBTyxDQUFDLElBQUksRUFBRSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0Isa0NBQWtDLENBQUMsQ0FBYTtJQUk5RCxPQUFPO1FBQ0wsVUFBVSxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztRQUN6QyxXQUFXLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQ2pELENBQUM7QUFDSixDQUFDO0FBWUQsU0FBZ0IsY0FBYyxDQUM1QixFQUFnRCxFQUNoRCxhQUE2QjtJQUU3QixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdkYsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDakQsSUFBSSxLQUFLLFlBQVksc0JBQVUsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sR0FBRyxHQUFHLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLGdCQUFnQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDM0MsQ0FBQztZQUNELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLENBQUM7WUFDRCxPQUFPLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDckIsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN0QyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDTixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMvQyxPQUFPLEdBQUcsR0FBRyxxQkFBVSxDQUFDLGlDQUFpQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0UsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ04sNkRBQTZEO0lBQzdELE9BQU8sVUFBVSxHQUFHLFdBQVcsR0FBRyx1QkFBWSxDQUFDLGtCQUFrQixDQUFDO0FBQ3BFLENBQUM7QUFFRCxTQUFnQiw2QkFBNkIsQ0FBQyxJQUFrQixFQUFFLGFBQTRCO0lBQzVGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUEsNkJBQXNCLEVBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRSxPQUFPLGNBQWMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERpbWVuc2lvbnMsIFZpcnR1YWxTaXplcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Vuc3BlbnRzJztcbmltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgRGVzY3JpcHRvck1hcCB9IGZyb20gJy4vRGVzY3JpcHRvck1hcCc7XG5pbXBvcnQgeyBmaW5kRGVzY3JpcHRvckZvcklucHV0IH0gZnJvbSAnLi9wc2J0JztcblxuZnVuY3Rpb24gZ2V0U2NyaXB0UHViS2V5TGVuZ3RoKGRlc2NUeXBlOiBzdHJpbmcpOiBudW1iZXIge1xuICAvLyBTZWUgaHR0cHM6Ly9iaXRjb2lub3BzLm9yZy9lbi90b29scy9jYWxjLXNpemUvXG4gIHN3aXRjaCAoZGVzY1R5cGUpIHtcbiAgICBjYXNlICdXcGtoJzpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpcHMvYmxvYi9tYXN0ZXIvYmlwLTAxNDEubWVkaWF3aWtpI3Ayd3BraFxuICAgICAgcmV0dXJuIDIyO1xuICAgIGNhc2UgJ1NoJzpcbiAgICBjYXNlICdTaFdzaCc6XG4gICAgY2FzZSAnU2hXcGtoJzpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpcHMvYmxvYi9tYXN0ZXIvYmlwLTAwMTYubWVkaWF3aWtpI3NwZWNpZmljYXRpb25cbiAgICAgIHJldHVybiAyMztcbiAgICBjYXNlICdQa2gnOlxuICAgICAgcmV0dXJuIDI1O1xuICAgIGNhc2UgJ1dzaCc6XG4gICAgY2FzZSAnVHInOlxuICAgICAgLy8gUDJXU0g6IGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpcHMvYmxvYi9tYXN0ZXIvYmlwLTAxNDEubWVkaWF3aWtpI3Ayd3NoXG4gICAgICAvLyBQMlRSOiBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXBzL2Jsb2IvNThmZmQ5MzgxMmZmMjVlODdkNTNkMWYyMDJmYmIzODlmZGZiODViYi9iaXAtMDM0MS5tZWRpYXdpa2kjc2NyaXB0LXZhbGlkYXRpb24tcnVsZXNcbiAgICAgIC8vID4gQSBUYXByb290IG91dHB1dCBpcyBhIG5hdGl2ZSBTZWdXaXQgb3V0cHV0IChzZWUgQklQMTQxKSB3aXRoIHZlcnNpb24gbnVtYmVyIDEsIGFuZCBhIDMyLWJ5dGUgd2l0bmVzcyBwcm9ncmFtLlxuICAgICAgLy8gMzIgYnl0ZXMgZm9yIHRoZSBoYXNoLCAxIGJ5dGUgZm9yIHRoZSB2ZXJzaW9uLCAxIGJ5dGUgZm9yIHRoZSBwdXNoIG9wY29kZVxuICAgICAgcmV0dXJuIDM0O1xuICAgIGNhc2UgJ0JhcmUnOlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjYW5ub3QgZGV0ZXJtaW5lIHNjcmlwdFB1YktleSBsZW5ndGggZm9yIEJhcmUgZGVzY3JpcHRvcicpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VuZXhwZWN0ZWQgZGVzY3JpcHRvciB0eXBlICcgKyBkZXNjVHlwZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SW5wdXRWU2l6ZUZvckRlc2NyaXB0b3IoZGVzY3JpcHRvcjogRGVzY3JpcHRvcik6IG51bWJlciB7XG4gIC8vIEZJWE1FKEJUQy0xNDg5KTogdGhpcyBjYW4gb3ZlcmVzdGltYXRlIHRoZSBzaXplIG9mIHRoZSBpbnB1dCBzaWduaWZpY2FudGx5XG4gIGNvbnN0IG1heFdlaWdodCA9IGRlc2NyaXB0b3IubWF4V2VpZ2h0VG9TYXRpc2Z5KCk7XG4gIGNvbnN0IG1heFZTaXplID0gTWF0aC5jZWlsKG1heFdlaWdodCAvIDQpO1xuICBjb25zdCBzaXplT3BQdXNoZGF0YTEgPSAxO1xuICBjb25zdCBzaXplT3BQdXNoZGF0YTIgPSAyO1xuICByZXR1cm4gKFxuICAgIC8vIGlucHV0SWRcbiAgICAzMiArXG4gICAgLy8gdk91dFxuICAgIDQgK1xuICAgIC8vIG5TZXF1ZW5jZVxuICAgIDQgK1xuICAgIC8vIHNjcmlwdCBvdmVyaGVhZFxuICAgIChtYXhWU2l6ZSA8IDI1NSA/IHNpemVPcFB1c2hkYXRhMSA6IHNpemVPcFB1c2hkYXRhMikgK1xuICAgIC8vIHNjcmlwdFxuICAgIG1heFZTaXplXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnB1dFZTaXplc0ZvckRlc2NyaXB0b3JzKGRlc2NyaXB0b3JzOiBEZXNjcmlwdG9yTWFwKTogUmVjb3JkPHN0cmluZywgbnVtYmVyPiB7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgQXJyYXkuZnJvbShkZXNjcmlwdG9ycy5lbnRyaWVzKCkpLm1hcCgoW25hbWUsIGRdKSA9PiB7XG4gICAgICByZXR1cm4gW25hbWUsIGdldElucHV0VlNpemVGb3JEZXNjcmlwdG9yKGQpXTtcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhbmdlT3V0cHV0VlNpemVzRm9yRGVzY3JpcHRvcihkOiBEZXNjcmlwdG9yKToge1xuICBpbnB1dFZTaXplOiBudW1iZXI7XG4gIG91dHB1dFZTaXplOiBudW1iZXI7XG59IHtcbiAgcmV0dXJuIHtcbiAgICBpbnB1dFZTaXplOiBnZXRJbnB1dFZTaXplRm9yRGVzY3JpcHRvcihkKSxcbiAgICBvdXRwdXRWU2l6ZTogZ2V0U2NyaXB0UHViS2V5TGVuZ3RoKGQuZGVzY1R5cGUoKSksXG4gIH07XG59XG5cbnR5cGUgSW5wdXRXaXRoRGVzY3JpcHRvck5hbWUgPSB7IGRlc2NyaXB0b3JOYW1lOiBzdHJpbmcgfTtcbnR5cGUgT3V0cHV0V2l0aFNjcmlwdCA9IHsgc2NyaXB0OiBCdWZmZXIgfTtcblxudHlwZSBUeDxUSW5wdXQ+ID0ge1xuICBpbnB1dHM6IFRJbnB1dFtdO1xuICBvdXRwdXRzOiBPdXRwdXRXaXRoU2NyaXB0W107XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmlydHVhbFNpemUodHg6IFR4PERlc2NyaXB0b3I+KTogbnVtYmVyO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZpcnR1YWxTaXplKHR4OiBUeDxJbnB1dFdpdGhEZXNjcmlwdG9yTmFtZT4sIGRlc2NyaXB0b3JzOiBEZXNjcmlwdG9yTWFwKTogbnVtYmVyO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZpcnR1YWxTaXplKFxuICB0eDogVHg8RGVzY3JpcHRvcj4gfCBUeDxJbnB1dFdpdGhEZXNjcmlwdG9yTmFtZT4sXG4gIGRlc2NyaXB0b3JNYXA/OiBEZXNjcmlwdG9yTWFwXG4pOiBudW1iZXIge1xuICBjb25zdCBsb29rdXAgPSBkZXNjcmlwdG9yTWFwID8gZ2V0SW5wdXRWU2l6ZXNGb3JEZXNjcmlwdG9ycyhkZXNjcmlwdG9yTWFwKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgaW5wdXRWU2l6ZSA9IHR4LmlucHV0cy5yZWR1Y2UoKHN1bSwgaW5wdXQpID0+IHtcbiAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBEZXNjcmlwdG9yKSB7XG4gICAgICByZXR1cm4gc3VtICsgZ2V0SW5wdXRWU2l6ZUZvckRlc2NyaXB0b3IoaW5wdXQpO1xuICAgIH1cbiAgICBpZiAoJ2Rlc2NyaXB0b3JOYW1lJyBpbiBpbnB1dCkge1xuICAgICAgaWYgKCFsb29rdXApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIGRlc2NyaXB0b3JNYXAnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZzaXplID0gbG9va3VwW2lucHV0LmRlc2NyaXB0b3JOYW1lXTtcbiAgICAgIGlmICghdnNpemUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBkZXNjcmlwdG9yICR7aW5wdXQuZGVzY3JpcHRvck5hbWV9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3VtICsgdnNpemU7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBpbnB1dCcpO1xuICB9LCAwKTtcbiAgY29uc3Qgb3V0cHV0VlNpemUgPSB0eC5vdXRwdXRzLnJlZHVjZSgoc3VtLCBvKSA9PiB7XG4gICAgcmV0dXJuIHN1bSArIERpbWVuc2lvbnMuZ2V0VlNpemVGb3JPdXRwdXRXaXRoU2NyaXB0TGVuZ3RoKG8uc2NyaXB0Lmxlbmd0aCk7XG4gIH0sIDApO1xuICAvLyB3ZSB3aWxsIGp1c3QgYXNzdW1lIHRoYXQgd2UgaGF2ZSBhdCBsZWFzdCBvbmUgc2Vnd2l0IGlucHV0XG4gIHJldHVybiBpbnB1dFZTaXplICsgb3V0cHV0VlNpemUgKyBWaXJ0dWFsU2l6ZXMudHhTZWdPdmVyaGVhZFZTaXplO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmlydHVhbFNpemVFc3RpbWF0ZUZvclBzYnQocHNidDogdXR4b2xpYi5Qc2J0LCBkZXNjcmlwdG9yTWFwOiBEZXNjcmlwdG9yTWFwKTogbnVtYmVyIHtcbiAgY29uc3QgaW5wdXRzID0gcHNidC5kYXRhLmlucHV0cy5tYXAoKGkpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBmaW5kRGVzY3JpcHRvckZvcklucHV0KGksIGRlc2NyaXB0b3JNYXApO1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIGRlc2NyaXB0b3IgZm9yIGlucHV0Jyk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQuZGVzY3JpcHRvcjtcbiAgfSk7XG4gIGNvbnN0IG91dHB1dHMgPSBwc2J0LnR4T3V0cHV0cy5tYXAoKG8pID0+ICh7IHNjcmlwdDogby5zY3JpcHQgfSkpO1xuICByZXR1cm4gZ2V0VmlydHVhbFNpemUoeyBpbnB1dHMsIG91dHB1dHMgfSk7XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,wBAAgB,gCAAgC,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAK1G;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,MAAM,CAER"}
@@ -45,4 +45,4 @@ function createScriptPubKeyFromDescriptor(descriptor, index) {
45
45
  function createAddressFromDescriptor(descriptor, index, network) {
46
46
  return utxolib.address.fromOutputScript(createScriptPubKeyFromDescriptor(descriptor, index), network);
47
47
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL2FkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSw0RUFLQztBQUVELGtFQU1DO0FBZkQsOERBQWdEO0FBRWhELFNBQWdCLGdDQUFnQyxDQUFDLFVBQXNCLEVBQUUsS0FBeUI7SUFDaEcsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDeEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxPQUFPLGdDQUFnQyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMxRixDQUFDO0FBRUQsU0FBZ0IsMkJBQTJCLENBQ3pDLFVBQXNCLEVBQ3RCLEtBQXlCLEVBQ3pCLE9BQXdCO0lBRXhCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxnQ0FBZ0MsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2NyaXB0UHViS2V5RnJvbURlc2NyaXB0b3IoZGVzY3JpcHRvcjogRGVzY3JpcHRvciwgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCk6IEJ1ZmZlciB7XG4gIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGRlc2NyaXB0b3Iuc2NyaXB0UHVia2V5KCkpO1xuICB9XG4gIHJldHVybiBjcmVhdGVTY3JpcHRQdWJLZXlGcm9tRGVzY3JpcHRvcihkZXNjcmlwdG9yLmF0RGVyaXZhdGlvbkluZGV4KGluZGV4KSwgdW5kZWZpbmVkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFkZHJlc3NGcm9tRGVzY3JpcHRvcihcbiAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcixcbiAgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBzdHJpbmcge1xuICByZXR1cm4gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoY3JlYXRlU2NyaXB0UHViS2V5RnJvbURlc2NyaXB0b3IoZGVzY3JpcHRvciwgaW5kZXgpLCBuZXR3b3JrKTtcbn1cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL2FkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSw0RUFLQztBQUVELGtFQU1DO0FBZkQsOERBQWdEO0FBRWhELFNBQWdCLGdDQUFnQyxDQUFDLFVBQXNCLEVBQUUsS0FBeUI7SUFDaEcsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDeEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxPQUFPLGdDQUFnQyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMxRixDQUFDO0FBRUQsU0FBZ0IsMkJBQTJCLENBQ3pDLFVBQXNCLEVBQ3RCLEtBQXlCLEVBQ3pCLE9BQXdCO0lBRXhCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxnQ0FBZ0MsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2NyaXB0UHViS2V5RnJvbURlc2NyaXB0b3IoZGVzY3JpcHRvcjogRGVzY3JpcHRvciwgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCk6IEJ1ZmZlciB7XG4gIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGRlc2NyaXB0b3Iuc2NyaXB0UHVia2V5KCkpO1xuICB9XG4gIHJldHVybiBjcmVhdGVTY3JpcHRQdWJLZXlGcm9tRGVzY3JpcHRvcihkZXNjcmlwdG9yLmF0RGVyaXZhdGlvbkluZGV4KGluZGV4KSwgdW5kZWZpbmVkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFkZHJlc3NGcm9tRGVzY3JpcHRvcihcbiAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcixcbiAgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBzdHJpbmcge1xuICByZXR1cm4gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoY3JlYXRlU2NyaXB0UHViS2V5RnJvbURlc2NyaXB0b3IoZGVzY3JpcHRvciwgaW5kZXgpLCBuZXR3b3JrKTtcbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/derive.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAelG;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,EACd,gBAAgB,SAAwB,GACvC,UAAU,CAQZ"}
@@ -0,0 +1,45 @@
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
+ exports.getDescriptorAtIndex = getDescriptorAtIndex;
7
+ exports.getDescriptorAtIndexCheckScript = getDescriptorAtIndexCheckScript;
8
+ const assert_1 = __importDefault(require("assert"));
9
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
10
+ /**
11
+ * Get a descriptor at a specific derivation index.
12
+ * For wildcard descriptors (containing '*'), the index is required and used for derivation.
13
+ * For definite descriptors (not containing '*'), no index should be provided.
14
+ * @param descriptor - The descriptor to derive from
15
+ * @param index - The derivation index for wildcard descriptors
16
+ * @returns A new descriptor at the specified index for wildcard descriptors, or the original descriptor for definite ones
17
+ * @throws {Error} If index is undefined for a wildcard descriptor or if index is provided for a definite descriptor
18
+ */
19
+ function getDescriptorAtIndex(descriptor, index) {
20
+ (0, assert_1.default)(descriptor instanceof wasm_utxo_1.Descriptor);
21
+ wasm_utxo_1.Descriptor.fromString(descriptor.toString(), 'derivable');
22
+ descriptor = wasm_utxo_1.Descriptor.fromStringDetectType(descriptor.toString());
23
+ if (descriptor.hasWildcard()) {
24
+ if (index === undefined) {
25
+ throw new Error('Derivable descriptor requires an index');
26
+ }
27
+ return descriptor.atDerivationIndex(index);
28
+ }
29
+ else {
30
+ if (index !== undefined) {
31
+ throw new Error('Definite descriptor cannot be derived with index');
32
+ }
33
+ return descriptor;
34
+ }
35
+ }
36
+ function getDescriptorAtIndexCheckScript(descriptor, index, script, descriptorString = descriptor.toString()) {
37
+ (0, assert_1.default)(descriptor instanceof wasm_utxo_1.Descriptor);
38
+ const descriptorAtIndex = getDescriptorAtIndex(descriptor, index);
39
+ if (!script.equals(descriptorAtIndex.scriptPubkey())) {
40
+ throw new Error(`Script mismatch: descriptor ${descriptorString} script=${script.toString('hex')}`);
41
+ }
42
+ (0, assert_1.default)(descriptorAtIndex instanceof wasm_utxo_1.Descriptor);
43
+ return descriptorAtIndex;
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvZGVyaXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBYUEsb0RBZUM7QUFFRCwwRUFhQztBQTNDRCxvREFBNEI7QUFFNUIsZ0RBQThDO0FBRTlDOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsVUFBc0IsRUFBRSxLQUF5QjtJQUNwRixJQUFBLGdCQUFNLEVBQUMsVUFBVSxZQUFZLHNCQUFVLENBQUMsQ0FBQztJQUN6QyxzQkFBVSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUQsVUFBVSxHQUFHLHNCQUFVLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEUsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUM3QixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7U0FBTSxDQUFDO1FBQ04sSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLCtCQUErQixDQUM3QyxVQUFzQixFQUN0QixLQUF5QixFQUN6QixNQUFjLEVBQ2QsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRTtJQUV4QyxJQUFBLGdCQUFNLEVBQUMsVUFBVSxZQUFZLHNCQUFVLENBQUMsQ0FBQztJQUN6QyxNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckQsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsZ0JBQWdCLFdBQVcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUNELElBQUEsZ0JBQU0sRUFBQyxpQkFBaUIsWUFBWSxzQkFBVSxDQUFDLENBQUM7SUFDaEQsT0FBTyxpQkFBaUIsQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yIH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbi8qKlxuICogR2V0IGEgZGVzY3JpcHRvciBhdCBhIHNwZWNpZmljIGRlcml2YXRpb24gaW5kZXguXG4gKiBGb3Igd2lsZGNhcmQgZGVzY3JpcHRvcnMgKGNvbnRhaW5pbmcgJyonKSwgdGhlIGluZGV4IGlzIHJlcXVpcmVkIGFuZCB1c2VkIGZvciBkZXJpdmF0aW9uLlxuICogRm9yIGRlZmluaXRlIGRlc2NyaXB0b3JzIChub3QgY29udGFpbmluZyAnKicpLCBubyBpbmRleCBzaG91bGQgYmUgcHJvdmlkZWQuXG4gKiBAcGFyYW0gZGVzY3JpcHRvciAtIFRoZSBkZXNjcmlwdG9yIHRvIGRlcml2ZSBmcm9tXG4gKiBAcGFyYW0gaW5kZXggLSBUaGUgZGVyaXZhdGlvbiBpbmRleCBmb3Igd2lsZGNhcmQgZGVzY3JpcHRvcnNcbiAqIEByZXR1cm5zIEEgbmV3IGRlc2NyaXB0b3IgYXQgdGhlIHNwZWNpZmllZCBpbmRleCBmb3Igd2lsZGNhcmQgZGVzY3JpcHRvcnMsIG9yIHRoZSBvcmlnaW5hbCBkZXNjcmlwdG9yIGZvciBkZWZpbml0ZSBvbmVzXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgaW5kZXggaXMgdW5kZWZpbmVkIGZvciBhIHdpbGRjYXJkIGRlc2NyaXB0b3Igb3IgaWYgaW5kZXggaXMgcHJvdmlkZWQgZm9yIGEgZGVmaW5pdGUgZGVzY3JpcHRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvckF0SW5kZXgoZGVzY3JpcHRvcjogRGVzY3JpcHRvciwgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCk6IERlc2NyaXB0b3Ige1xuICBhc3NlcnQoZGVzY3JpcHRvciBpbnN0YW5jZW9mIERlc2NyaXB0b3IpO1xuICBEZXNjcmlwdG9yLmZyb21TdHJpbmcoZGVzY3JpcHRvci50b1N0cmluZygpLCAnZGVyaXZhYmxlJyk7XG4gIGRlc2NyaXB0b3IgPSBEZXNjcmlwdG9yLmZyb21TdHJpbmdEZXRlY3RUeXBlKGRlc2NyaXB0b3IudG9TdHJpbmcoKSk7XG4gIGlmIChkZXNjcmlwdG9yLmhhc1dpbGRjYXJkKCkpIHtcbiAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZXJpdmFibGUgZGVzY3JpcHRvciByZXF1aXJlcyBhbiBpbmRleCcpO1xuICAgIH1cbiAgICByZXR1cm4gZGVzY3JpcHRvci5hdERlcml2YXRpb25JbmRleChpbmRleCk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRGVmaW5pdGUgZGVzY3JpcHRvciBjYW5ub3QgYmUgZGVyaXZlZCB3aXRoIGluZGV4Jyk7XG4gICAgfVxuICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXNjcmlwdG9yQXRJbmRleENoZWNrU2NyaXB0KFxuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLFxuICBpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBzY3JpcHQ6IEJ1ZmZlcixcbiAgZGVzY3JpcHRvclN0cmluZyA9IGRlc2NyaXB0b3IudG9TdHJpbmcoKVxuKTogRGVzY3JpcHRvciB7XG4gIGFzc2VydChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRGVzY3JpcHRvcik7XG4gIGNvbnN0IGRlc2NyaXB0b3JBdEluZGV4ID0gZ2V0RGVzY3JpcHRvckF0SW5kZXgoZGVzY3JpcHRvciwgaW5kZXgpO1xuICBpZiAoIXNjcmlwdC5lcXVhbHMoZGVzY3JpcHRvckF0SW5kZXguc2NyaXB0UHVia2V5KCkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTY3JpcHQgbWlzbWF0Y2g6IGRlc2NyaXB0b3IgJHtkZXNjcmlwdG9yU3RyaW5nfSBzY3JpcHQ9JHtzY3JpcHQudG9TdHJpbmcoJ2hleCcpfWApO1xuICB9XG4gIGFzc2VydChkZXNjcmlwdG9yQXRJbmRleCBpbnN0YW5jZW9mIERlc2NyaXB0b3IpO1xuICByZXR1cm4gZGVzY3JpcHRvckF0SW5kZXg7XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fromFixedScriptWallet.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/fromFixedScriptWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAO,MAAM,kBAAkB,CAAC;AAYnD;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,EAC5C,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,EAC1C,KAAK,EAAE,UAAU,GAAG,UAAU,GAC7B,UAAU,CAkBZ;AAQD;;;;;GAKG;AACH,wBAAgB,oCAAoC,CAClD,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,GAC3C,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC,CAUhC"}
@@ -0,0 +1,88 @@
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.getDescriptorForScriptType = getDescriptorForScriptType;
37
+ exports.getNamedDescriptorsForRootWalletKeys = getNamedDescriptorsForRootWalletKeys;
38
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
39
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
40
+ /** Expand a template with the given root wallet keys and chain code */
41
+ function expand(rootWalletKeys, keyIndex, chainCode) {
42
+ if (keyIndex !== 0 && keyIndex !== 1 && keyIndex !== 2) {
43
+ throw new Error('Invalid key index');
44
+ }
45
+ const xpub = rootWalletKeys.triple[keyIndex].neutered().toBase58();
46
+ const prefix = rootWalletKeys.derivationPrefixes[keyIndex];
47
+ return xpub + '/' + prefix + '/' + chainCode + '/*';
48
+ }
49
+ /**
50
+ * Get a standard output descriptor that corresponds to the proprietary HD wallet setup
51
+ * used in BitGo wallets.
52
+ * Only supports a subset of script types.
53
+ */
54
+ function getDescriptorForScriptType(rootWalletKeys, scriptType, scope) {
55
+ const chain = scope === 'external'
56
+ ? utxolib.bitgo.getExternalChainCode(scriptType)
57
+ : utxolib.bitgo.getInternalChainCode(scriptType);
58
+ const multi = {
59
+ multi: [2, ...rootWalletKeys.triple.map((_, i) => expand(rootWalletKeys, i, chain))],
60
+ };
61
+ switch (scriptType) {
62
+ case 'p2sh':
63
+ return wasm_utxo_1.Descriptor.fromString(wasm_utxo_1.ast.formatNode({ sh: multi }), 'derivable');
64
+ case 'p2shP2wsh':
65
+ return wasm_utxo_1.Descriptor.fromString(wasm_utxo_1.ast.formatNode({ sh: { wsh: multi } }), 'derivable');
66
+ case 'p2wsh':
67
+ return wasm_utxo_1.Descriptor.fromString(wasm_utxo_1.ast.formatNode({ wsh: multi }), 'derivable');
68
+ default:
69
+ throw new Error(`Unsupported script type ${scriptType}`);
70
+ }
71
+ }
72
+ function isSupportedScriptType(scriptType) {
73
+ return ['p2sh', 'p2shP2wsh', 'p2wsh'].includes(scriptType);
74
+ }
75
+ /**
76
+ * Get a map of named descriptors for the given root wallet keys.
77
+ * Unsupported script types will have a value of null.
78
+ * Currently supports p2sh, p2shP2wsh, and p2wsh script types.
79
+ * @param rootWalletKeys
80
+ */
81
+ function getNamedDescriptorsForRootWalletKeys(rootWalletKeys) {
82
+ const scopes = ['external', 'internal'];
83
+ return new Map(utxolib.bitgo.outputScripts.scriptTypes2Of3.flatMap((scriptType) => scopes.map((scope) => [
84
+ `${scriptType}/${scope}`,
85
+ isSupportedScriptType(scriptType) ? getDescriptorForScriptType(rootWalletKeys, scriptType, scope) : null,
86
+ ])));
87
+ }
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUZpeGVkU2NyaXB0V2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvZnJvbUZpeGVkU2NyaXB0V2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0JBLGdFQXNCQztBQWNELG9GQVlDO0FBbEVELDhEQUFnRDtBQUNoRCxnREFBbUQ7QUFFbkQsdUVBQXVFO0FBQ3ZFLFNBQVMsTUFBTSxDQUFDLGNBQTRDLEVBQUUsUUFBZ0IsRUFBRSxTQUFpQjtJQUMvRixJQUFJLFFBQVEsS0FBSyxDQUFDLElBQUksUUFBUSxLQUFLLENBQUMsSUFBSSxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25FLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzRCxPQUFPLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQ3RELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQ3hDLGNBQTRDLEVBQzVDLFVBQTBDLEVBQzFDLEtBQThCO0lBRTlCLE1BQU0sS0FBSyxHQUNULEtBQUssS0FBSyxVQUFVO1FBQ2xCLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQztRQUNoRCxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyRCxNQUFNLEtBQUssR0FBdUI7UUFDaEMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBQ3JGLENBQUM7SUFDRixRQUFRLFVBQVUsRUFBRSxDQUFDO1FBQ25CLEtBQUssTUFBTTtZQUNULE9BQU8sc0JBQVUsQ0FBQyxVQUFVLENBQUMsZUFBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzNFLEtBQUssV0FBVztZQUNkLE9BQU8sc0JBQVUsQ0FBQyxVQUFVLENBQUMsZUFBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDcEYsS0FBSyxPQUFPO1lBQ1YsT0FBTyxzQkFBVSxDQUFDLFVBQVUsQ0FBQyxlQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDNUU7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FDNUIsVUFBc0Q7SUFFdEQsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLG9DQUFvQyxDQUNsRCxjQUE0QztJQUU1QyxNQUFNLE1BQU0sR0FBRyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQVUsQ0FBQztJQUNqRCxPQUFPLElBQUksR0FBRyxDQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUNqRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNwQixHQUFHLFVBQVUsSUFBSSxLQUFLLEVBQUU7UUFDeEIscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7S0FDekcsQ0FBQyxDQUNILENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERlc2NyaXB0b3IsIGFzdCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG4vKiogRXhwYW5kIGEgdGVtcGxhdGUgd2l0aCB0aGUgZ2l2ZW4gcm9vdCB3YWxsZXQga2V5cyBhbmQgY2hhaW4gY29kZSAqL1xuZnVuY3Rpb24gZXhwYW5kKHJvb3RXYWxsZXRLZXlzOiB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzLCBrZXlJbmRleDogbnVtYmVyLCBjaGFpbkNvZGU6IG51bWJlcik6IHN0cmluZyB7XG4gIGlmIChrZXlJbmRleCAhPT0gMCAmJiBrZXlJbmRleCAhPT0gMSAmJiBrZXlJbmRleCAhPT0gMikge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBrZXkgaW5kZXgnKTtcbiAgfVxuICBjb25zdCB4cHViID0gcm9vdFdhbGxldEtleXMudHJpcGxlW2tleUluZGV4XS5uZXV0ZXJlZCgpLnRvQmFzZTU4KCk7XG4gIGNvbnN0IHByZWZpeCA9IHJvb3RXYWxsZXRLZXlzLmRlcml2YXRpb25QcmVmaXhlc1trZXlJbmRleF07XG4gIHJldHVybiB4cHViICsgJy8nICsgcHJlZml4ICsgJy8nICsgY2hhaW5Db2RlICsgJy8qJztcbn1cblxuLyoqXG4gKiBHZXQgYSBzdGFuZGFyZCBvdXRwdXQgZGVzY3JpcHRvciB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBwcm9wcmlldGFyeSBIRCB3YWxsZXQgc2V0dXBcbiAqIHVzZWQgaW4gQml0R28gd2FsbGV0cy5cbiAqIE9ubHkgc3VwcG9ydHMgYSBzdWJzZXQgb2Ygc2NyaXB0IHR5cGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvckZvclNjcmlwdFR5cGUoXG4gIHJvb3RXYWxsZXRLZXlzOiB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzLFxuICBzY3JpcHRUeXBlOiAncDJzaCcgfCAncDJzaFAyd3NoJyB8ICdwMndzaCcsXG4gIHNjb3BlOiAnaW50ZXJuYWwnIHwgJ2V4dGVybmFsJ1xuKTogRGVzY3JpcHRvciB7XG4gIGNvbnN0IGNoYWluID1cbiAgICBzY29wZSA9PT0gJ2V4dGVybmFsJ1xuICAgICAgPyB1dHhvbGliLmJpdGdvLmdldEV4dGVybmFsQ2hhaW5Db2RlKHNjcmlwdFR5cGUpXG4gICAgICA6IHV0eG9saWIuYml0Z28uZ2V0SW50ZXJuYWxDaGFpbkNvZGUoc2NyaXB0VHlwZSk7XG4gIGNvbnN0IG11bHRpOiBhc3QuTWluaXNjcmlwdE5vZGUgPSB7XG4gICAgbXVsdGk6IFsyLCAuLi5yb290V2FsbGV0S2V5cy50cmlwbGUubWFwKChfLCBpKSA9PiBleHBhbmQocm9vdFdhbGxldEtleXMsIGksIGNoYWluKSldLFxuICB9O1xuICBzd2l0Y2ggKHNjcmlwdFR5cGUpIHtcbiAgICBjYXNlICdwMnNoJzpcbiAgICAgIHJldHVybiBEZXNjcmlwdG9yLmZyb21TdHJpbmcoYXN0LmZvcm1hdE5vZGUoeyBzaDogbXVsdGkgfSksICdkZXJpdmFibGUnKTtcbiAgICBjYXNlICdwMnNoUDJ3c2gnOlxuICAgICAgcmV0dXJuIERlc2NyaXB0b3IuZnJvbVN0cmluZyhhc3QuZm9ybWF0Tm9kZSh7IHNoOiB7IHdzaDogbXVsdGkgfSB9KSwgJ2Rlcml2YWJsZScpO1xuICAgIGNhc2UgJ3Ayd3NoJzpcbiAgICAgIHJldHVybiBEZXNjcmlwdG9yLmZyb21TdHJpbmcoYXN0LmZvcm1hdE5vZGUoeyB3c2g6IG11bHRpIH0pLCAnZGVyaXZhYmxlJyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgc2NyaXB0IHR5cGUgJHtzY3JpcHRUeXBlfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzU3VwcG9ydGVkU2NyaXB0VHlwZShcbiAgc2NyaXB0VHlwZTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzXG4pOiBzY3JpcHRUeXBlIGlzICdwMnNoJyB8ICdwMnNoUDJ3c2gnIHwgJ3Ayd3NoJyB7XG4gIHJldHVybiBbJ3Ayc2gnLCAncDJzaFAyd3NoJywgJ3Ayd3NoJ10uaW5jbHVkZXMoc2NyaXB0VHlwZSk7XG59XG5cbi8qKlxuICogR2V0IGEgbWFwIG9mIG5hbWVkIGRlc2NyaXB0b3JzIGZvciB0aGUgZ2l2ZW4gcm9vdCB3YWxsZXQga2V5cy5cbiAqIFVuc3VwcG9ydGVkIHNjcmlwdCB0eXBlcyB3aWxsIGhhdmUgYSB2YWx1ZSBvZiBudWxsLlxuICogQ3VycmVudGx5IHN1cHBvcnRzIHAyc2gsIHAyc2hQMndzaCwgYW5kIHAyd3NoIHNjcmlwdCB0eXBlcy5cbiAqIEBwYXJhbSByb290V2FsbGV0S2V5c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmFtZWREZXNjcmlwdG9yc0ZvclJvb3RXYWxsZXRLZXlzKFxuICByb290V2FsbGV0S2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5c1xuKTogTWFwPHN0cmluZywgRGVzY3JpcHRvciB8IG51bGw+IHtcbiAgY29uc3Qgc2NvcGVzID0gWydleHRlcm5hbCcsICdpbnRlcm5hbCddIGFzIGNvbnN0O1xuICByZXR1cm4gbmV3IE1hcChcbiAgICB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuc2NyaXB0VHlwZXMyT2YzLmZsYXRNYXAoKHNjcmlwdFR5cGUpID0+XG4gICAgICBzY29wZXMubWFwKChzY29wZSkgPT4gW1xuICAgICAgICBgJHtzY3JpcHRUeXBlfS8ke3Njb3BlfWAsXG4gICAgICAgIGlzU3VwcG9ydGVkU2NyaXB0VHlwZShzY3JpcHRUeXBlKSA/IGdldERlc2NyaXB0b3JGb3JTY3JpcHRUeXBlKHJvb3RXYWxsZXRLZXlzLCBzY3JpcHRUeXBlLCBzY29wZSkgOiBudWxsLFxuICAgICAgXSlcbiAgICApXG4gICk7XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AAEvC,uEAAuE;AACvE,cAAc,WAAW,CAAC"}
@@ -24,4 +24,4 @@ __exportStar(require("./fromFixedScriptWallet"), exports);
24
24
  __exportStar(require("./parse/PatternMatcher"), exports);
25
25
  /** @deprecated - import from @bitgo-beta/utxo-core directly instead */
26
26
  __exportStar(require("../Output"), exports);
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCO0FBQ3ZCLDRDQUEwQjtBQUMxQixrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLDJDQUF5QjtBQUN6QixnREFBOEI7QUFDOUIsMERBQXdDO0FBQ3hDLHlEQUF1QztBQUV2Qyx1RUFBdUU7QUFDdkUsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wc2J0JztcbmV4cG9ydCAqIGZyb20gJy4vYWRkcmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL0Rlc2NyaXB0b3JNYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXJpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9PdXRwdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9WaXJ0dWFsU2l6ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zyb21GaXhlZFNjcmlwdFdhbGxldCc7XG5leHBvcnQgKiBmcm9tICcuL3BhcnNlL1BhdHRlcm5NYXRjaGVyJztcblxuLyoqIEBkZXByZWNhdGVkIC0gaW1wb3J0IGZyb20gQGJpdGdvLWJldGEvdXR4by1jb3JlIGRpcmVjdGx5IGluc3RlYWQgKi9cbmV4cG9ydCAqIGZyb20gJy4uL091dHB1dCc7XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCO0FBQ3ZCLDRDQUEwQjtBQUMxQixrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLDJDQUF5QjtBQUN6QixnREFBOEI7QUFDOUIsMERBQXdDO0FBQ3hDLHlEQUF1QztBQUV2Qyx1RUFBdUU7QUFDdkUsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wc2J0JztcbmV4cG9ydCAqIGZyb20gJy4vYWRkcmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL0Rlc2NyaXB0b3JNYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXJpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9PdXRwdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9WaXJ0dWFsU2l6ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zyb21GaXhlZFNjcmlwdFdhbGxldCc7XG5leHBvcnQgKiBmcm9tICcuL3BhcnNlL1BhdHRlcm5NYXRjaGVyJztcblxuLyoqIEBkZXByZWNhdGVkIC0gaW1wb3J0IGZyb20gQGJpdGdvLWJldGEvdXR4by1jb3JlIGRpcmVjdGx5IGluc3RlYWQgKi9cbmV4cG9ydCAqIGZyb20gJy4uL091dHB1dCc7XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PatternMatcher.d.ts","sourceRoot":"","sources":["../../../../../src/descriptor/parse/PatternMatcher.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1C,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,CAAA;CAAE,GAAG,OAAO,EAAE,CAAC;AAExG,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,qBAAa,cAAc;IACzB,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI;IAK5D,OAAO,CAAC,SAAS;IAwCjB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;CAgBlB"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PatternMatcher = void 0;
4
+ class PatternMatcher {
5
+ match(node, pattern) {
6
+ const vars = {};
7
+ return this.matchNode(node, pattern, vars) ? vars : null;
8
+ }
9
+ matchNode(node, pattern, vars) {
10
+ // Variable placeholder
11
+ if (this.isPatternVar(pattern)) {
12
+ const varName = pattern.$var;
13
+ if (varName in vars) {
14
+ return this.deepEqual(vars[varName], node);
15
+ }
16
+ vars[varName] = node;
17
+ return true;
18
+ }
19
+ // Primitive values
20
+ if (typeof node !== typeof pattern)
21
+ return false;
22
+ if (typeof node === 'string' || typeof node === 'number') {
23
+ return node === pattern;
24
+ }
25
+ // Arrays
26
+ if (Array.isArray(node) && Array.isArray(pattern)) {
27
+ return node.length === pattern.length && node.every((item, i) => this.matchNode(item, pattern[i], vars));
28
+ }
29
+ // Objects
30
+ if (typeof node === 'object' && typeof pattern === 'object' && node !== null && pattern !== null) {
31
+ const nodeKeys = Object.keys(node);
32
+ const patternKeys = Object.keys(pattern);
33
+ return (nodeKeys.length === patternKeys.length &&
34
+ nodeKeys.every((key) => patternKeys.includes(key) &&
35
+ this.matchNode(node[key], pattern[key], vars)));
36
+ }
37
+ return false;
38
+ }
39
+ isPatternVar(value) {
40
+ return value !== null && typeof value === 'object' && '$var' in value;
41
+ }
42
+ deepEqual(a, b) {
43
+ if (a === b)
44
+ return true;
45
+ if (typeof a !== typeof b)
46
+ return false;
47
+ if (Array.isArray(a) && Array.isArray(b)) {
48
+ return a.length === b.length && a.every((item, i) => this.deepEqual(item, b[i]));
49
+ }
50
+ if (typeof a === 'object' && a !== null && typeof b === 'object' && b !== null) {
51
+ const keysA = Object.keys(a);
52
+ const keysB = Object.keys(b);
53
+ return (keysA.length === keysB.length &&
54
+ keysA.every((key) => this.deepEqual(a[key], b[key])));
55
+ }
56
+ return false;
57
+ }
58
+ }
59
+ exports.PatternMatcher = PatternMatcher;
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGF0dGVybk1hdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9wYXJzZS9QYXR0ZXJuTWF0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSxNQUFhLGNBQWM7SUFDekIsS0FBSyxDQUFDLElBQWEsRUFBRSxPQUFnQjtRQUNuQyxNQUFNLElBQUksR0FBa0IsRUFBRSxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMzRCxDQUFDO0lBRU8sU0FBUyxDQUFDLElBQWEsRUFBRSxPQUFnQixFQUFFLElBQW1CO1FBQ3BFLHVCQUF1QjtRQUN2QixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQzdCLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzdDLENBQUM7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELG1CQUFtQjtRQUNuQixJQUFJLE9BQU8sSUFBSSxLQUFLLE9BQU8sT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3pELE9BQU8sSUFBSSxLQUFLLE9BQU8sQ0FBQztRQUMxQixDQUFDO1FBRUQsU0FBUztRQUNULElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDbEQsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzNHLENBQUM7UUFFRCxVQUFVO1FBQ1YsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2pHLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6QyxPQUFPLENBQ0wsUUFBUSxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsTUFBTTtnQkFDdEMsUUFBUSxDQUFDLEtBQUssQ0FDWixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ04sV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUUsSUFBZ0MsQ0FBQyxHQUFHLENBQUMsRUFBRyxPQUFtQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUMxRyxDQUNGLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWM7UUFDakMsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDO0lBQ3hFLENBQUM7SUFFTyxTQUFTLENBQUMsQ0FBVSxFQUFFLENBQVU7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3pCLElBQUksT0FBTyxDQUFDLEtBQUssT0FBTyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDeEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQy9FLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixPQUFPLENBQ0wsS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTTtnQkFDN0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBRSxDQUE2QixDQUFDLEdBQUcsQ0FBQyxFQUFHLENBQTZCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUMvRyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGO0FBbEVELHdDQWtFQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFBhdHRlcm4gbWF0Y2hpbmcgdHlwZXNcbmV4cG9ydCB0eXBlIFBhdHRlcm5WYXIgPSB7ICR2YXI6IHN0cmluZyB9O1xuZXhwb3J0IHR5cGUgUGF0dGVybiA9IFBhdHRlcm5WYXIgfCBzdHJpbmcgfCBudW1iZXIgfCB7IFtrZXk6IHN0cmluZ106IFBhdHRlcm4gfCBQYXR0ZXJuW10gfSB8IFBhdHRlcm5bXTtcblxuZXhwb3J0IHR5cGUgRXh0cmFjdGVkVmFycyA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5leHBvcnQgY2xhc3MgUGF0dGVybk1hdGNoZXIge1xuICBtYXRjaChub2RlOiB1bmtub3duLCBwYXR0ZXJuOiBQYXR0ZXJuKTogRXh0cmFjdGVkVmFycyB8IG51bGwge1xuICAgIGNvbnN0IHZhcnM6IEV4dHJhY3RlZFZhcnMgPSB7fTtcbiAgICByZXR1cm4gdGhpcy5tYXRjaE5vZGUobm9kZSwgcGF0dGVybiwgdmFycykgPyB2YXJzIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgbWF0Y2hOb2RlKG5vZGU6IHVua25vd24sIHBhdHRlcm46IFBhdHRlcm4sIHZhcnM6IEV4dHJhY3RlZFZhcnMpOiBib29sZWFuIHtcbiAgICAvLyBWYXJpYWJsZSBwbGFjZWhvbGRlclxuICAgIGlmICh0aGlzLmlzUGF0dGVyblZhcihwYXR0ZXJuKSkge1xuICAgICAgY29uc3QgdmFyTmFtZSA9IHBhdHRlcm4uJHZhcjtcbiAgICAgIGlmICh2YXJOYW1lIGluIHZhcnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVlcEVxdWFsKHZhcnNbdmFyTmFtZV0sIG5vZGUpO1xuICAgICAgfVxuICAgICAgdmFyc1t2YXJOYW1lXSA9IG5vZGU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBQcmltaXRpdmUgdmFsdWVzXG4gICAgaWYgKHR5cGVvZiBub2RlICE9PSB0eXBlb2YgcGF0dGVybikgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG5vZGUgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gbm9kZSA9PT0gcGF0dGVybjtcbiAgICB9XG5cbiAgICAvLyBBcnJheXNcbiAgICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSAmJiBBcnJheS5pc0FycmF5KHBhdHRlcm4pKSB7XG4gICAgICByZXR1cm4gbm9kZS5sZW5ndGggPT09IHBhdHRlcm4ubGVuZ3RoICYmIG5vZGUuZXZlcnkoKGl0ZW0sIGkpID0+IHRoaXMubWF0Y2hOb2RlKGl0ZW0sIHBhdHRlcm5baV0sIHZhcnMpKTtcbiAgICB9XG5cbiAgICAvLyBPYmplY3RzXG4gICAgaWYgKHR5cGVvZiBub2RlID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgcGF0dGVybiA9PT0gJ29iamVjdCcgJiYgbm9kZSAhPT0gbnVsbCAmJiBwYXR0ZXJuICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlS2V5cyA9IE9iamVjdC5rZXlzKG5vZGUpO1xuICAgICAgY29uc3QgcGF0dGVybktleXMgPSBPYmplY3Qua2V5cyhwYXR0ZXJuKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgbm9kZUtleXMubGVuZ3RoID09PSBwYXR0ZXJuS2V5cy5sZW5ndGggJiZcbiAgICAgICAgbm9kZUtleXMuZXZlcnkoXG4gICAgICAgICAgKGtleSkgPT5cbiAgICAgICAgICAgIHBhdHRlcm5LZXlzLmluY2x1ZGVzKGtleSkgJiZcbiAgICAgICAgICAgIHRoaXMubWF0Y2hOb2RlKChub2RlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtrZXldLCAocGF0dGVybiBhcyBSZWNvcmQ8c3RyaW5nLCBQYXR0ZXJuPilba2V5XSwgdmFycylcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGlzUGF0dGVyblZhcih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFBhdHRlcm5WYXIge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICckdmFyJyBpbiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZGVlcEVxdWFsKGE6IHVua25vd24sIGI6IHVua25vd24pOiBib29sZWFuIHtcbiAgICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XG4gICAgaWYgKHR5cGVvZiBhICE9PSB0eXBlb2YgYikgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGEpICYmIEFycmF5LmlzQXJyYXkoYikpIHtcbiAgICAgIHJldHVybiBhLmxlbmd0aCA9PT0gYi5sZW5ndGggJiYgYS5ldmVyeSgoaXRlbSwgaSkgPT4gdGhpcy5kZWVwRXF1YWwoaXRlbSwgYltpXSkpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGEgPT09ICdvYmplY3QnICYmIGEgIT09IG51bGwgJiYgdHlwZW9mIGIgPT09ICdvYmplY3QnICYmIGIgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGtleXNBID0gT2JqZWN0LmtleXMoYSk7XG4gICAgICBjb25zdCBrZXlzQiA9IE9iamVjdC5rZXlzKGIpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAga2V5c0EubGVuZ3RoID09PSBrZXlzQi5sZW5ndGggJiZcbiAgICAgICAga2V5c0EuZXZlcnkoKGtleSkgPT4gdGhpcy5kZWVwRXF1YWwoKGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2tleV0sIChiIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtrZXldKSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertSatisfiable.d.ts","sourceRoot":"","sources":["../../../../../src/descriptor/psbt/assertSatisfiable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,eAAO,MAAM,cAAc,aAAa,CAAC;AAEzC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAsCxF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAYtG"}