@bitgo-beta/utxo-core 1.8.1-beta.61 → 1.8.1-beta.610

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 (356) 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 +5 -0
  4. package/dist/cjs/src/bip322/index.d.ts.map +1 -0
  5. package/dist/cjs/src/bip322/index.js +21 -0
  6. package/dist/cjs/src/bip322/toSign.d.ts +25 -0
  7. package/dist/cjs/src/bip322/toSign.d.ts.map +1 -0
  8. package/dist/cjs/src/bip322/toSign.js +126 -0
  9. package/dist/cjs/src/bip322/toSpend.d.ts +22 -0
  10. package/dist/cjs/src/bip322/toSpend.d.ts.map +1 -0
  11. package/dist/cjs/src/bip322/toSpend.js +72 -0
  12. package/dist/cjs/src/bip322/utils.d.ts +18 -0
  13. package/dist/cjs/src/bip322/utils.d.ts.map +1 -0
  14. package/dist/cjs/src/bip322/utils.js +115 -0
  15. package/dist/cjs/src/bip322/verify.d.ts +12 -0
  16. package/dist/cjs/src/bip322/verify.d.ts.map +1 -0
  17. package/dist/cjs/src/bip322/verify.js +115 -0
  18. package/dist/cjs/src/bip32utils.d.ts +16 -0
  19. package/dist/cjs/src/bip32utils.d.ts.map +1 -0
  20. package/dist/cjs/src/bip32utils.js +71 -0
  21. package/dist/cjs/src/bip65/index.d.ts.map +1 -0
  22. package/dist/{src → cjs/src}/bip65/index.js +1 -1
  23. package/dist/cjs/src/bip65/locktime.d.ts.map +1 -0
  24. package/dist/cjs/src/bip65/locktime.js +37 -0
  25. package/dist/{src → cjs/src}/descriptor/DescriptorMap.d.ts +1 -1
  26. package/dist/cjs/src/descriptor/DescriptorMap.d.ts.map +1 -0
  27. package/dist/cjs/src/descriptor/DescriptorMap.js +9 -0
  28. package/dist/{src → cjs/src}/descriptor/Output.d.ts +1 -1
  29. package/dist/cjs/src/descriptor/Output.d.ts.map +1 -0
  30. package/dist/cjs/src/descriptor/Output.js +41 -0
  31. package/dist/{src → cjs/src}/descriptor/VirtualSize.d.ts +1 -1
  32. package/dist/cjs/src/descriptor/VirtualSize.d.ts.map +1 -0
  33. package/dist/cjs/src/descriptor/VirtualSize.js +100 -0
  34. package/dist/{src → cjs/src}/descriptor/address.d.ts +1 -1
  35. package/dist/cjs/src/descriptor/address.d.ts.map +1 -0
  36. package/dist/{src → cjs/src}/descriptor/address.js +1 -1
  37. package/dist/{src → cjs/src}/descriptor/derive.d.ts +1 -1
  38. package/dist/cjs/src/descriptor/derive.d.ts.map +1 -0
  39. package/dist/cjs/src/descriptor/derive.js +45 -0
  40. package/dist/{src → cjs/src}/descriptor/fromFixedScriptWallet.d.ts +1 -1
  41. package/dist/cjs/src/descriptor/fromFixedScriptWallet.d.ts.map +1 -0
  42. package/dist/cjs/src/descriptor/fromFixedScriptWallet.js +88 -0
  43. package/dist/{src → cjs/src}/descriptor/index.d.ts +1 -0
  44. package/dist/cjs/src/descriptor/index.d.ts.map +1 -0
  45. package/dist/{src → cjs/src}/descriptor/index.js +2 -1
  46. package/dist/cjs/src/descriptor/parse/PatternMatcher.d.ts +14 -0
  47. package/dist/cjs/src/descriptor/parse/PatternMatcher.d.ts.map +1 -0
  48. package/dist/cjs/src/descriptor/parse/PatternMatcher.js +60 -0
  49. package/dist/{src → cjs/src}/descriptor/psbt/assertSatisfiable.d.ts +1 -1
  50. package/dist/cjs/src/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
  51. package/dist/cjs/src/descriptor/psbt/assertSatisfiable.js +74 -0
  52. package/dist/{src → cjs/src}/descriptor/psbt/createPsbt.d.ts +4 -0
  53. package/dist/cjs/src/descriptor/psbt/createPsbt.d.ts.map +1 -0
  54. package/dist/cjs/src/descriptor/psbt/createPsbt.js +107 -0
  55. package/dist/{src → cjs/src}/descriptor/psbt/findDescriptors.d.ts +1 -1
  56. package/dist/cjs/src/descriptor/psbt/findDescriptors.d.ts.map +1 -0
  57. package/dist/cjs/src/descriptor/psbt/findDescriptors.js +98 -0
  58. package/dist/cjs/src/descriptor/psbt/index.d.ts.map +1 -0
  59. package/dist/{src → cjs/src}/descriptor/psbt/index.js +1 -1
  60. package/dist/{src → cjs/src}/descriptor/psbt/parse.d.ts +1 -1
  61. package/dist/cjs/src/descriptor/psbt/parse.d.ts.map +1 -0
  62. package/dist/cjs/src/descriptor/psbt/parse.js +87 -0
  63. package/dist/{src → cjs/src}/descriptor/psbt/sign.d.ts +4 -4
  64. package/dist/cjs/src/descriptor/psbt/sign.d.ts.map +1 -0
  65. package/dist/cjs/src/descriptor/psbt/sign.js +42 -0
  66. package/dist/{src → cjs/src}/descriptor/psbt/wrap.d.ts +1 -1
  67. package/dist/cjs/src/descriptor/psbt/wrap.d.ts.map +1 -0
  68. package/dist/cjs/src/descriptor/psbt/wrap.js +76 -0
  69. package/dist/cjs/src/dustThreshold.d.ts.map +1 -0
  70. package/dist/cjs/src/dustThreshold.js +134 -0
  71. package/dist/{src → cjs/src}/index.d.ts +1 -0
  72. package/dist/cjs/src/index.d.ts.map +1 -0
  73. package/dist/{src → cjs/src}/index.js +3 -2
  74. package/dist/cjs/src/paygo/attestation.d.ts +11 -0
  75. package/dist/cjs/src/paygo/attestation.d.ts.map +1 -0
  76. package/dist/cjs/src/paygo/attestation.js +58 -0
  77. package/dist/cjs/src/paygo/index.d.ts +3 -0
  78. package/dist/cjs/src/paygo/index.d.ts.map +1 -0
  79. package/dist/cjs/src/paygo/index.js +19 -0
  80. package/dist/{src/paygo/ExtractAddressPayGoAttestation.d.ts → cjs/src/paygo/parsePayGoAttestation.d.ts} +8 -3
  81. package/dist/cjs/src/paygo/parsePayGoAttestation.d.ts.map +1 -0
  82. package/dist/cjs/src/paygo/parsePayGoAttestation.js +50 -0
  83. package/dist/cjs/src/paygo/psbt/Errors.d.ts +22 -0
  84. package/dist/cjs/src/paygo/psbt/Errors.d.ts.map +1 -0
  85. package/dist/cjs/src/paygo/psbt/Errors.js +44 -0
  86. package/dist/cjs/src/paygo/psbt/index.d.ts +2 -0
  87. package/dist/cjs/src/paygo/psbt/index.d.ts.map +1 -0
  88. package/dist/{src/paygo → cjs/src/paygo/psbt}/index.js +2 -2
  89. package/dist/cjs/src/paygo/psbt/payGoAddressProof.d.ts +29 -0
  90. package/dist/cjs/src/paygo/psbt/payGoAddressProof.d.ts.map +1 -0
  91. package/dist/cjs/src/paygo/psbt/payGoAddressProof.js +124 -0
  92. package/dist/{src → cjs/src}/testutil/descriptor/descriptors.d.ts +4 -1
  93. package/dist/cjs/src/testutil/descriptor/descriptors.d.ts.map +1 -0
  94. package/dist/cjs/src/testutil/descriptor/descriptors.js +162 -0
  95. package/dist/cjs/src/testutil/descriptor/index.d.ts.map +1 -0
  96. package/dist/{src → cjs/src}/testutil/descriptor/index.js +1 -1
  97. package/dist/{src → cjs/src}/testutil/descriptor/mock.utils.d.ts +3 -1
  98. package/dist/cjs/src/testutil/descriptor/mock.utils.d.ts.map +1 -0
  99. package/dist/cjs/src/testutil/descriptor/mock.utils.js +92 -0
  100. package/dist/cjs/src/testutil/descriptor/psbt.utils.d.ts.map +1 -0
  101. package/dist/cjs/src/testutil/descriptor/psbt.utils.js +21 -0
  102. package/dist/cjs/src/testutil/fixtures.utils.d.ts.map +1 -0
  103. package/dist/cjs/src/testutil/fixtures.utils.js +127 -0
  104. package/dist/{src → cjs/src}/testutil/generatePayGoAttestationProof.utils.d.ts +1 -1
  105. package/dist/cjs/src/testutil/generatePayGoAttestationProof.utils.d.ts.map +1 -0
  106. package/dist/cjs/src/testutil/generatePayGoAttestationProof.utils.js +38 -0
  107. package/dist/{src → cjs/src}/testutil/index.d.ts +1 -0
  108. package/dist/cjs/src/testutil/index.d.ts.map +1 -0
  109. package/dist/{src → cjs/src}/testutil/index.js +2 -1
  110. package/dist/{src → cjs/src}/testutil/key.utils.d.ts +1 -1
  111. package/dist/cjs/src/testutil/key.utils.d.ts.map +1 -0
  112. package/dist/cjs/src/testutil/key.utils.js +60 -0
  113. package/dist/cjs/src/testutil/toPlainObject.utils.d.ts.map +1 -0
  114. package/dist/cjs/src/testutil/toPlainObject.utils.js +89 -0
  115. package/dist/cjs/src/testutil/trimMessagePrefix.d.ts +11 -0
  116. package/dist/cjs/src/testutil/trimMessagePrefix.d.ts.map +1 -0
  117. package/dist/cjs/src/testutil/trimMessagePrefix.js +60 -0
  118. package/dist/cjs/src/xOnlyPubkey.d.ts.map +1 -0
  119. package/dist/cjs/src/xOnlyPubkey.js +18 -0
  120. package/dist/cjs/test/Output.d.ts +2 -0
  121. package/dist/cjs/test/Output.d.ts.map +1 -0
  122. package/dist/cjs/test/Output.js +70 -0
  123. package/dist/cjs/test/bip322/bip322.utils.d.ts +7 -0
  124. package/dist/cjs/test/bip322/bip322.utils.d.ts.map +1 -0
  125. package/dist/cjs/test/bip322/bip322.utils.js +16 -0
  126. package/dist/cjs/test/bip322/toSign.d.ts +2 -0
  127. package/dist/cjs/test/bip322/toSign.d.ts.map +1 -0
  128. package/dist/cjs/test/bip322/toSign.js +133 -0
  129. package/dist/cjs/test/bip322/toSpend.d.ts +2 -0
  130. package/dist/cjs/test/bip322/toSpend.d.ts.map +1 -0
  131. package/dist/cjs/test/bip322/toSpend.js +70 -0
  132. package/dist/cjs/test/bip322/utils.d.ts +2 -0
  133. package/dist/cjs/test/bip322/utils.d.ts.map +1 -0
  134. package/dist/cjs/test/bip322/utils.js +79 -0
  135. package/dist/cjs/test/bip322/verify.d.ts +2 -0
  136. package/dist/cjs/test/bip322/verify.d.ts.map +1 -0
  137. package/dist/cjs/test/bip322/verify.js +293 -0
  138. package/dist/cjs/test/bip32utils.d.ts +2 -0
  139. package/dist/cjs/test/bip32utils.d.ts.map +1 -0
  140. package/dist/cjs/test/bip32utils.js +62 -0
  141. package/dist/cjs/test/bip65/locktime.d.ts +2 -0
  142. package/dist/cjs/test/bip65/locktime.d.ts.map +1 -0
  143. package/dist/cjs/test/bip65/locktime.js +22 -0
  144. package/dist/cjs/test/descriptor/Output.d.ts +2 -0
  145. package/dist/cjs/test/descriptor/Output.d.ts.map +1 -0
  146. package/dist/cjs/test/descriptor/Output.js +44 -0
  147. package/dist/cjs/test/descriptor/derive.d.ts +2 -0
  148. package/dist/cjs/test/descriptor/derive.d.ts.map +1 -0
  149. package/dist/cjs/test/descriptor/derive.js +27 -0
  150. package/dist/cjs/test/descriptor/fromFixedScriptWallet.d.ts +2 -0
  151. package/dist/cjs/test/descriptor/fromFixedScriptWallet.d.ts.map +1 -0
  152. package/dist/cjs/test/descriptor/fromFixedScriptWallet.js +145 -0
  153. package/dist/cjs/test/descriptor/parse/PatternMatcher.d.ts +2 -0
  154. package/dist/cjs/test/descriptor/parse/PatternMatcher.d.ts.map +1 -0
  155. package/dist/cjs/test/descriptor/parse/PatternMatcher.js +120 -0
  156. package/dist/cjs/test/descriptor/psbt/VirtualSize.d.ts +2 -0
  157. package/dist/cjs/test/descriptor/psbt/VirtualSize.d.ts.map +1 -0
  158. package/dist/cjs/test/descriptor/psbt/VirtualSize.js +71 -0
  159. package/dist/cjs/test/descriptor/psbt/assertSatisfiable.d.ts +2 -0
  160. package/dist/cjs/test/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
  161. package/dist/cjs/test/descriptor/psbt/assertSatisfiable.js +56 -0
  162. package/dist/cjs/test/descriptor/psbt/findDescriptors.d.ts +2 -0
  163. package/dist/cjs/test/descriptor/psbt/findDescriptors.d.ts.map +1 -0
  164. package/dist/cjs/test/descriptor/psbt/findDescriptors.js +70 -0
  165. package/dist/cjs/test/descriptor/psbt/psbt.d.ts +2 -0
  166. package/dist/cjs/test/descriptor/psbt/psbt.d.ts.map +1 -0
  167. package/dist/cjs/test/descriptor/psbt/psbt.js +211 -0
  168. package/dist/cjs/test/dustThreshold.d.ts +2 -0
  169. package/dist/cjs/test/dustThreshold.d.ts.map +1 -0
  170. package/dist/cjs/test/dustThreshold.js +110 -0
  171. package/dist/cjs/test/paygo/attestation.d.ts +2 -0
  172. package/dist/cjs/test/paygo/attestation.d.ts.map +1 -0
  173. package/dist/cjs/test/paygo/attestation.js +23 -0
  174. package/dist/cjs/test/paygo/parsePayGoAttestation.d.ts +2 -0
  175. package/dist/cjs/test/paygo/parsePayGoAttestation.d.ts.map +1 -0
  176. package/dist/cjs/test/paygo/parsePayGoAttestation.js +75 -0
  177. package/dist/cjs/test/paygo/psbt/payGoAddressProof.d.ts +9 -0
  178. package/dist/cjs/test/paygo/psbt/payGoAddressProof.d.ts.map +1 -0
  179. package/dist/cjs/test/paygo/psbt/payGoAddressProof.js +163 -0
  180. package/dist/cjs/test/xOnlyPubkey.d.ts +2 -0
  181. package/dist/cjs/test/xOnlyPubkey.d.ts.map +1 -0
  182. package/dist/cjs/test/xOnlyPubkey.js +18 -0
  183. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  184. package/dist/esm/Output.d.ts +43 -0
  185. package/dist/esm/Output.js +53 -0
  186. package/dist/esm/bip322/index.d.ts +5 -0
  187. package/dist/esm/bip322/index.d.ts.map +1 -0
  188. package/dist/esm/bip322/index.js +5 -0
  189. package/dist/esm/bip322/toSign.d.ts +25 -0
  190. package/dist/esm/bip322/toSign.d.ts.map +1 -0
  191. package/dist/esm/bip322/toSign.js +120 -0
  192. package/dist/esm/bip322/toSpend.d.ts +22 -0
  193. package/dist/esm/bip322/toSpend.d.ts.map +1 -0
  194. package/dist/esm/bip322/toSpend.js +66 -0
  195. package/dist/esm/bip322/utils.d.ts +18 -0
  196. package/dist/esm/bip322/utils.d.ts.map +1 -0
  197. package/dist/esm/bip322/utils.js +77 -0
  198. package/dist/esm/bip322/verify.d.ts +12 -0
  199. package/dist/esm/bip322/verify.d.ts.map +1 -0
  200. package/dist/esm/bip322/verify.js +76 -0
  201. package/dist/esm/bip32utils.d.ts +16 -0
  202. package/dist/esm/bip32utils.d.ts.map +1 -0
  203. package/dist/esm/bip32utils.js +34 -0
  204. package/dist/esm/bip65/index.d.ts +2 -0
  205. package/dist/esm/bip65/index.js +2 -0
  206. package/dist/esm/bip65/locktime.d.ts +8 -0
  207. package/dist/esm/bip65/locktime.js +34 -0
  208. package/dist/esm/descriptor/DescriptorMap.d.ts +9 -0
  209. package/dist/{src → esm}/descriptor/DescriptorMap.d.ts.map +1 -1
  210. package/dist/esm/descriptor/DescriptorMap.js +6 -0
  211. package/dist/esm/descriptor/Output.d.ts +23 -0
  212. package/dist/{src → esm}/descriptor/Output.d.ts.map +1 -1
  213. package/dist/esm/descriptor/Output.js +32 -0
  214. package/dist/esm/descriptor/VirtualSize.d.ts +23 -0
  215. package/dist/{src → esm}/descriptor/VirtualSize.d.ts.map +1 -1
  216. package/dist/esm/descriptor/VirtualSize.js +94 -0
  217. package/dist/esm/descriptor/address.d.ts +5 -0
  218. package/dist/{src → esm}/descriptor/address.d.ts.map +1 -1
  219. package/dist/esm/descriptor/address.js +11 -0
  220. package/dist/esm/descriptor/derive.d.ts +13 -0
  221. package/dist/{src → esm}/descriptor/derive.d.ts.map +1 -1
  222. package/dist/esm/descriptor/derive.js +38 -0
  223. package/dist/esm/descriptor/fromFixedScriptWallet.d.ts +16 -0
  224. package/dist/{src → esm}/descriptor/fromFixedScriptWallet.d.ts.map +1 -1
  225. package/dist/esm/descriptor/fromFixedScriptWallet.js +51 -0
  226. package/dist/esm/descriptor/index.d.ts +11 -0
  227. package/dist/{src → esm}/descriptor/index.d.ts.map +1 -1
  228. package/dist/esm/descriptor/index.js +11 -0
  229. package/dist/esm/descriptor/parse/PatternMatcher.d.ts +14 -0
  230. package/dist/esm/descriptor/parse/PatternMatcher.d.ts.map +1 -0
  231. package/dist/esm/descriptor/parse/PatternMatcher.js +56 -0
  232. package/dist/esm/descriptor/psbt/assertSatisfiable.d.ts +20 -0
  233. package/dist/{src → esm}/descriptor/psbt/assertSatisfiable.d.ts.map +1 -1
  234. package/dist/esm/descriptor/psbt/assertSatisfiable.js +69 -0
  235. package/dist/esm/descriptor/psbt/createPsbt.d.ts +23 -0
  236. package/dist/esm/descriptor/psbt/createPsbt.d.ts.map +1 -0
  237. package/dist/esm/descriptor/psbt/createPsbt.js +69 -0
  238. package/dist/esm/descriptor/psbt/findDescriptors.d.ts +26 -0
  239. package/dist/{src → esm}/descriptor/psbt/findDescriptors.d.ts.map +1 -1
  240. package/dist/esm/descriptor/psbt/findDescriptors.js +94 -0
  241. package/dist/esm/descriptor/psbt/index.d.ts +7 -0
  242. package/dist/esm/descriptor/psbt/index.js +7 -0
  243. package/dist/esm/descriptor/psbt/parse.d.ts +27 -0
  244. package/dist/{src → esm}/descriptor/psbt/parse.d.ts.map +1 -1
  245. package/dist/esm/descriptor/psbt/parse.js +51 -0
  246. package/dist/esm/descriptor/psbt/sign.d.ts +26 -0
  247. package/dist/esm/descriptor/psbt/sign.d.ts.map +1 -0
  248. package/dist/esm/descriptor/psbt/sign.js +34 -0
  249. package/dist/esm/descriptor/psbt/wrap.d.ts +12 -0
  250. package/dist/{src → esm}/descriptor/psbt/wrap.d.ts.map +1 -1
  251. package/dist/esm/descriptor/psbt/wrap.js +38 -0
  252. package/dist/esm/dustThreshold.d.ts +4 -0
  253. package/dist/esm/dustThreshold.js +97 -0
  254. package/dist/esm/index.d.ts +10 -0
  255. package/dist/{src → esm}/index.d.ts.map +1 -1
  256. package/dist/esm/index.js +10 -0
  257. package/dist/esm/paygo/attestation.d.ts +11 -0
  258. package/dist/esm/paygo/attestation.d.ts.map +1 -0
  259. package/dist/esm/paygo/attestation.js +18 -0
  260. package/dist/esm/paygo/index.d.ts +3 -0
  261. package/dist/esm/paygo/index.d.ts.map +1 -0
  262. package/dist/esm/paygo/index.js +3 -0
  263. package/dist/esm/paygo/parsePayGoAttestation.d.ts +16 -0
  264. package/dist/esm/paygo/parsePayGoAttestation.d.ts.map +1 -0
  265. package/dist/esm/paygo/parsePayGoAttestation.js +43 -0
  266. package/dist/esm/paygo/psbt/Errors.d.ts +22 -0
  267. package/dist/esm/paygo/psbt/Errors.d.ts.map +1 -0
  268. package/dist/esm/paygo/psbt/Errors.js +35 -0
  269. package/dist/esm/paygo/psbt/index.d.ts +2 -0
  270. package/dist/esm/paygo/psbt/index.d.ts.map +1 -0
  271. package/dist/esm/paygo/psbt/index.js +2 -0
  272. package/dist/esm/paygo/psbt/payGoAddressProof.d.ts +29 -0
  273. package/dist/esm/paygo/psbt/payGoAddressProof.d.ts.map +1 -0
  274. package/dist/esm/paygo/psbt/payGoAddressProof.js +85 -0
  275. package/dist/esm/testutil/descriptor/descriptors.d.ts +13 -0
  276. package/dist/esm/testutil/descriptor/descriptors.d.ts.map +1 -0
  277. package/dist/esm/testutil/descriptor/descriptors.js +150 -0
  278. package/dist/esm/testutil/descriptor/index.d.ts +4 -0
  279. package/dist/esm/testutil/descriptor/index.js +4 -0
  280. package/dist/esm/testutil/descriptor/mock.utils.d.ts +36 -0
  281. package/dist/esm/testutil/descriptor/mock.utils.d.ts.map +1 -0
  282. package/dist/esm/testutil/descriptor/mock.utils.js +53 -0
  283. package/dist/esm/testutil/descriptor/psbt.utils.d.ts +4 -0
  284. package/dist/{src → esm}/testutil/descriptor/psbt.utils.d.ts.map +1 -1
  285. package/dist/esm/testutil/descriptor/psbt.utils.js +17 -0
  286. package/dist/esm/testutil/fixtures.utils.d.ts +15 -0
  287. package/dist/{src → esm}/testutil/fixtures.utils.js +5 -42
  288. package/dist/esm/testutil/generatePayGoAttestationProof.utils.d.ts +12 -0
  289. package/dist/esm/testutil/generatePayGoAttestationProof.utils.d.ts.map +1 -0
  290. package/dist/esm/testutil/generatePayGoAttestationProof.utils.js +32 -0
  291. package/dist/esm/testutil/index.d.ts +6 -0
  292. package/dist/{src → esm}/testutil/index.d.ts.map +1 -1
  293. package/dist/esm/testutil/index.js +6 -0
  294. package/dist/esm/testutil/key.utils.d.ts +16 -0
  295. package/dist/{src → esm}/testutil/key.utils.d.ts.map +1 -1
  296. package/dist/esm/testutil/key.utils.js +22 -0
  297. package/dist/esm/testutil/toPlainObject.utils.d.ts +11 -0
  298. package/dist/{src → esm}/testutil/toPlainObject.utils.d.ts.map +1 -1
  299. package/dist/esm/testutil/toPlainObject.utils.js +85 -0
  300. package/dist/esm/testutil/trimMessagePrefix.d.ts +11 -0
  301. package/dist/esm/testutil/trimMessagePrefix.d.ts.map +1 -0
  302. package/dist/esm/testutil/trimMessagePrefix.js +24 -0
  303. package/dist/esm/xOnlyPubkey.d.ts +2 -0
  304. package/dist/esm/xOnlyPubkey.js +15 -0
  305. package/package.json +50 -25
  306. package/dist/src/Output.js +0 -60
  307. package/dist/src/bip32utils.d.ts +0 -16
  308. package/dist/src/bip32utils.d.ts.map +0 -1
  309. package/dist/src/bip32utils.js +0 -72
  310. package/dist/src/bip65/locktime.js +0 -37
  311. package/dist/src/descriptor/DescriptorMap.js +0 -9
  312. package/dist/src/descriptor/Output.js +0 -41
  313. package/dist/src/descriptor/VirtualSize.js +0 -100
  314. package/dist/src/descriptor/derive.js +0 -45
  315. package/dist/src/descriptor/fromFixedScriptWallet.js +0 -88
  316. package/dist/src/descriptor/psbt/assertSatisfiable.js +0 -74
  317. package/dist/src/descriptor/psbt/createPsbt.d.ts.map +0 -1
  318. package/dist/src/descriptor/psbt/createPsbt.js +0 -82
  319. package/dist/src/descriptor/psbt/findDescriptors.js +0 -98
  320. package/dist/src/descriptor/psbt/parse.js +0 -87
  321. package/dist/src/descriptor/psbt/sign.d.ts.map +0 -1
  322. package/dist/src/descriptor/psbt/sign.js +0 -42
  323. package/dist/src/descriptor/psbt/wrap.js +0 -76
  324. package/dist/src/dustThreshold.js +0 -134
  325. package/dist/src/paygo/ExtractAddressPayGoAttestation.d.ts.map +0 -1
  326. package/dist/src/paygo/ExtractAddressPayGoAttestation.js +0 -44
  327. package/dist/src/paygo/index.d.ts +0 -2
  328. package/dist/src/paygo/index.d.ts.map +0 -1
  329. package/dist/src/testutil/descriptor/descriptors.d.ts.map +0 -1
  330. package/dist/src/testutil/descriptor/descriptors.js +0 -125
  331. package/dist/src/testutil/descriptor/mock.utils.d.ts.map +0 -1
  332. package/dist/src/testutil/descriptor/mock.utils.js +0 -91
  333. package/dist/src/testutil/descriptor/psbt.utils.js +0 -20
  334. package/dist/src/testutil/generatePayGoAttestationProof.utils.d.ts.map +0 -1
  335. package/dist/src/testutil/generatePayGoAttestationProof.utils.js +0 -43
  336. package/dist/src/testutil/key.utils.js +0 -59
  337. package/dist/src/testutil/toPlainObject.utils.js +0 -75
  338. package/dist/src/xOnlyPubkey.js +0 -18
  339. /package/dist/{src → cjs/src}/Output.d.ts +0 -0
  340. /package/dist/{src → cjs/src}/bip65/index.d.ts +0 -0
  341. /package/dist/{src → cjs/src}/bip65/locktime.d.ts +0 -0
  342. /package/dist/{src → cjs/src}/descriptor/psbt/index.d.ts +0 -0
  343. /package/dist/{src → cjs/src}/dustThreshold.d.ts +0 -0
  344. /package/dist/{src → cjs/src}/testutil/descriptor/index.d.ts +0 -0
  345. /package/dist/{src → cjs/src}/testutil/descriptor/psbt.utils.d.ts +0 -0
  346. /package/dist/{src → cjs/src}/testutil/fixtures.utils.d.ts +0 -0
  347. /package/dist/{src → cjs/src}/testutil/toPlainObject.utils.d.ts +0 -0
  348. /package/dist/{src → cjs/src}/xOnlyPubkey.d.ts +0 -0
  349. /package/dist/{src → esm}/Output.d.ts.map +0 -0
  350. /package/dist/{src → esm}/bip65/index.d.ts.map +0 -0
  351. /package/dist/{src → esm}/bip65/locktime.d.ts.map +0 -0
  352. /package/dist/{src → esm}/descriptor/psbt/index.d.ts.map +0 -0
  353. /package/dist/{src → esm}/dustThreshold.d.ts.map +0 -0
  354. /package/dist/{src → esm}/testutil/descriptor/index.d.ts.map +0 -0
  355. /package/dist/{src → esm}/testutil/fixtures.utils.d.ts.map +0 -0
  356. /package/dist/{src → esm}/xOnlyPubkey.d.ts.map +0 -0
@@ -0,0 +1,211 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const assert_1 = __importDefault(require("assert"));
40
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
41
+ const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
42
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
43
+ const descriptor_1 = require("../../../src/descriptor");
44
+ const testutil_1 = require("../../../src/testutil");
45
+ const descriptor_2 = require("../../../src/testutil/descriptor");
46
+ const sign_1 = require("../../../src/descriptor/psbt/sign");
47
+ function normalize(v) {
48
+ if (typeof v === 'bigint') {
49
+ return v.toString();
50
+ }
51
+ if (v instanceof wasm_utxo_1.Descriptor) {
52
+ return v.toString();
53
+ }
54
+ if (v instanceof Buffer) {
55
+ return v.toString('hex');
56
+ }
57
+ if (v instanceof utxolib.Psbt) {
58
+ return (0, descriptor_2.toPlainObjectFromPsbt)(v);
59
+ }
60
+ if (v instanceof utxolib.Transaction) {
61
+ return (0, descriptor_2.toPlainObjectFromTx)(v);
62
+ }
63
+ if (Array.isArray(v)) {
64
+ return v.map(normalize);
65
+ }
66
+ if (typeof v === 'object' && v !== null) {
67
+ return Object.fromEntries(Object.entries(v).flatMap(([k, v]) => (v === undefined ? [] : [[k, normalize(v)]])));
68
+ }
69
+ return v;
70
+ }
71
+ async function assertEqualsFixture(t, filename, value) {
72
+ filename = __dirname + '/../../descriptor/psbt/fixtures/' + t + '.' + filename;
73
+ const nv = normalize(value);
74
+ assert_1.default.deepStrictEqual(nv, await (0, testutil_1.getFixture)(filename, nv));
75
+ }
76
+ const selfKeys = (0, testutil_1.getKeyTriple)('a');
77
+ const otherKeys = (0, testutil_1.getKeyTriple)('b');
78
+ function toPlain(k) {
79
+ assert_1.default.ok(k.privateKey);
80
+ return utxo_lib_1.ECPair.fromPrivateKey(k.privateKey);
81
+ }
82
+ function getStages(psbt, parsed, stages) {
83
+ return Object.fromEntries(stages.map((stage) => {
84
+ const psbtStageWrapped = (0, descriptor_1.toWrappedPsbt)(psbt);
85
+ for (const key of stage.keys) {
86
+ (0, assert_1.default)((0, sign_1.getNewSignatureCount)((0, sign_1.signWithKey)(psbtStageWrapped, key)) > 0, 'No new signatures were created');
87
+ }
88
+ const psbtStage = (0, descriptor_1.toUtxoPsbt)(psbtStageWrapped, utxolib.networks.bitcoin);
89
+ let psbtFinal;
90
+ let networkTx;
91
+ let networkTxBuffer;
92
+ if (stage.final) {
93
+ psbtStageWrapped.finalize();
94
+ psbtFinal = (0, descriptor_1.toUtxoPsbt)(psbtStageWrapped, utxolib.networks.bitcoin);
95
+ networkTx = psbtFinal.extractTransaction();
96
+ networkTxBuffer = networkTx.toBuffer();
97
+ }
98
+ return [
99
+ stage.name,
100
+ {
101
+ psbt: psbtStage,
102
+ parsed,
103
+ psbtFinal,
104
+ networkTx,
105
+ networkTxBuffer,
106
+ },
107
+ ];
108
+ }));
109
+ }
110
+ function describeCreatePsbt(name, testParams) {
111
+ describe(`createPsbt ${name}`, function () {
112
+ it('creates psbt with expected properties', async function () {
113
+ const psbtUnsigned = 'psbt' in testParams
114
+ ? testParams.psbt
115
+ : (0, descriptor_2.mockPsbtDefault)({
116
+ descriptorSelf: testParams.descriptorSelf,
117
+ descriptorOther: (0, descriptor_2.getDescriptor)('Wsh2Of3', otherKeys),
118
+ params: testParams.psbtParams,
119
+ });
120
+ const descriptorMap = new Map([['self', testParams.descriptorSelf]]);
121
+ const parsed = (0, descriptor_1.parse)(psbtUnsigned, descriptorMap, utxolib.networks.bitcoin);
122
+ assert_1.default.strictEqual(parsed.spendAmount, psbtUnsigned.txOutputs[1].value);
123
+ await assertEqualsFixture(name, 'psbtStages.json', getStages(psbtUnsigned, parsed, testParams.stages));
124
+ });
125
+ });
126
+ }
127
+ const defaultStagesCombinedAB = [
128
+ { name: 'unsigned', keys: [] },
129
+ { name: 'signedA', keys: selfKeys.slice(0, 1) },
130
+ { name: 'signedAB', keys: selfKeys.slice(0, 2), final: true },
131
+ ];
132
+ function getDefaultStagesSeparateAB({ plain = false } = {}) {
133
+ const keys = plain ? selfKeys.map(toPlain) : selfKeys;
134
+ return [
135
+ { name: 'unsigned', keys: [] },
136
+ { name: 'signedA', keys: keys.slice(0, 1) },
137
+ { name: 'signedB', keys: keys.slice(1, 2), final: true },
138
+ ];
139
+ }
140
+ function describeCreatePsbt2Of3(t) {
141
+ describeCreatePsbt(t, {
142
+ descriptorSelf: (0, descriptor_2.getDescriptor)(t, selfKeys),
143
+ psbtParams: (0, descriptor_2.getPsbtParams)(t),
144
+ stages: defaultStagesCombinedAB,
145
+ });
146
+ }
147
+ function describeCreatePsbtSelectTapLeafScript(t, selfDescriptor, selectTapLeafScript, tapLeafName) {
148
+ const otherDescriptor = (0, descriptor_2.getDescriptor)('Wsh2Of3', otherKeys);
149
+ const signKeys = selfKeys.filter((k) => (0, descriptor_2.containsKey)(selectTapLeafScript, k)).map((k) => toPlain(k));
150
+ (0, assert_1.default)(signKeys.length === 1);
151
+ describeCreatePsbt(`${t}-${tapLeafName}`, {
152
+ descriptorSelf: selfDescriptor,
153
+ psbt: (0, descriptor_2.mockPsbt)([
154
+ { descriptor: selfDescriptor, index: 0, selectTapLeafScript },
155
+ { descriptor: selfDescriptor, index: 1, id: { vout: 1 }, selectTapLeafScript },
156
+ ], [
157
+ {
158
+ descriptor: otherDescriptor,
159
+ index: 0,
160
+ value: BigInt(4e5),
161
+ external: true,
162
+ },
163
+ { descriptor: selfDescriptor, index: 0, value: BigInt(4e5) },
164
+ ]),
165
+ stages: [
166
+ { name: 'unsigned', keys: [] },
167
+ { name: 'signed', keys: signKeys },
168
+ ],
169
+ });
170
+ }
171
+ describeCreatePsbt2Of3('Wsh2Of3');
172
+ describeCreatePsbt2Of3('Wsh2Of3CltvDrop');
173
+ describeCreatePsbt2Of3('Tr2Of3-NoKeyPath');
174
+ describeCreatePsbt('Tr1Of3-NoKeyPath-Tree', {
175
+ descriptorSelf: (0, descriptor_2.getDescriptor)('Tr1Of3-NoKeyPath-Tree', selfKeys),
176
+ psbtParams: {},
177
+ stages: getDefaultStagesSeparateAB(),
178
+ });
179
+ {
180
+ const t = 'Tr1Of3-NoKeyPath-Tree-Plain';
181
+ const selfDescriptor = (0, descriptor_2.getDescriptor)(t, selfKeys);
182
+ (0, descriptor_2.getTapLeafScripts)(selfDescriptor).forEach((selectTapLeafScript, i) => {
183
+ describeCreatePsbtSelectTapLeafScript(t, selfDescriptor, wasm_utxo_1.Miniscript.fromString(selectTapLeafScript, 'tap'), `TapLeafScript${i}`);
184
+ });
185
+ }
186
+ describeCreatePsbt('Tr1Of3-NoKeyPath-Tree-PlainKeys', {
187
+ descriptorSelf: (0, descriptor_2.getDescriptor)('Tr1Of3-NoKeyPath-Tree-Plain', selfKeys),
188
+ psbtParams: {},
189
+ stages: getDefaultStagesSeparateAB({ plain: true }),
190
+ });
191
+ {
192
+ const descriptorSelf = (0, descriptor_2.getDescriptor)('Wsh2Of3', selfKeys);
193
+ const descriptorOther = (0, descriptor_2.getDescriptor)('Wsh2Of3', otherKeys);
194
+ describeCreatePsbt('Wsh2Of3-CustomInputSequence', {
195
+ descriptorSelf,
196
+ psbt: (0, descriptor_2.mockPsbt)([
197
+ { descriptor: descriptorSelf, index: 0 },
198
+ { descriptor: descriptorSelf, index: 1, id: { vout: 1 }, sequence: 123 },
199
+ ], [
200
+ {
201
+ descriptor: descriptorOther,
202
+ index: 0,
203
+ value: BigInt(4e5),
204
+ external: true,
205
+ },
206
+ { descriptor: descriptorSelf, index: 0, value: BigInt(4e5) },
207
+ ]),
208
+ stages: defaultStagesCombinedAB,
209
+ });
210
+ }
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvZGVzY3JpcHRvci9wc2J0L3BzYnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFFNUIsOERBQWdEO0FBQ2hELG1EQUErRTtBQUMvRSxnREFBMEQ7QUFFMUQsd0RBQW9IO0FBQ3BILG9EQUFpRTtBQUNqRSxpRUFVMEM7QUFDMUMsNERBQXNGO0FBRXRGLFNBQVMsU0FBUyxDQUFDLENBQVU7SUFDM0IsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMxQixPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxDQUFDLFlBQVksc0JBQVUsRUFBRSxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLENBQUMsWUFBWSxNQUFNLEVBQUUsQ0FBQztRQUN4QixPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksQ0FBQyxZQUFZLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QixPQUFPLElBQUEsa0NBQXFCLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksQ0FBQyxZQUFZLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxPQUFPLElBQUEsZ0NBQW1CLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FB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QUFDLEVBQUU7WUFDeEMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7U0FDekUsRUFDRDtZQUNFO2dCQUNFLFVBQVUsRUFBRSxlQUFlO2dCQUMzQixLQUFLLEVBQUUsQ0FBQztnQkFDUixLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQztnQkFDbEIsUUFBUSxFQUFFLElBQUk7YUFDZjtZQUNELEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7U0FDN0QsQ0FDRjtRQUNELE1BQU0sRUFBRSx1QkFBdUI7S0FDaEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBCSVAzMkludGVyZmFjZSwgRUNQYWlyLCBFQ1BhaXJJbnRlcmZhY2UgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBEZXNjcmlwdG9yLCBNaW5pc2NyaXB0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB7IFBzYnRQYXJhbXMsIHBhcnNlLCB0b1V0eG9Qc2J0LCB0b1dyYXBwZWRQc2J0LCBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9zcmMvZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBnZXRGaXh0dXJlLCBnZXRLZXlUcmlwbGUgfSBmcm9tICcuLi8uLi8uLi9zcmMvdGVzdHV0aWwnO1xuaW1wb3J0IHtcbiAgY29udGFpbnNLZXksXG4gIERlc2NyaXB0b3JUZW1wbGF0ZSxcbiAgZ2V0RGVzY3JpcHRvcixcbiAgZ2V0UHNidFBhcmFtcyxcbiAgZ2V0VGFwTGVhZlNjcmlwdHMsXG4gIG1vY2tQc2J0LFxuICBtb2NrUHNidERlZmF1bHQsXG4gIHRvUGxhaW5PYmplY3RGcm9tUHNidCxcbiAgdG9QbGFpbk9iamVjdEZyb21UeCxcbn0gZnJvbSAnLi4vLi4vLi4vc3JjL3Rlc3R1dGlsL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgZ2V0TmV3U2lnbmF0dXJlQ291bnQsIHNpZ25XaXRoS2V5IH0gZnJvbSAnLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvcHNidC9zaWduJztcblxuZnVuY3Rpb24gbm9ybWFsaXplKHY6IHVua25vd24pOiB1bmtub3duIHtcbiAgaWYgKHR5cGVvZiB2ID09PSAnYmlnaW50Jykge1xuICAgIHJldHVybiB2LnRvU3RyaW5nKCk7XG4gIH1cbiAgaWYgKHYgaW5zdGFuY2VvZiBEZXNjcmlwdG9yKSB7XG4gICAgcmV0dXJuIHYudG9TdHJpbmcoKTtcbiAgfVxuICBpZiAodiBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuICAgIHJldHVybiB2LnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuICBpZiAodiBpbnN0YW5jZW9mIHV0eG9saWIuUHNidCkge1xuICAgIHJldHVybiB0b1BsYWluT2JqZWN0RnJvbVBzYnQodik7XG4gIH1cbiAgaWYgKHYgaW5zdGFuY2VvZiB1dHhvbGliLlRyYW5zYWN0aW9uKSB7XG4gICAgcmV0dXJuIHRvUGxhaW5PYmplY3RGcm9tVHgodik7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICByZXR1cm4gdi5tYXAobm9ybWFsaXplKTtcbiAgfVxuICBpZiAodHlwZW9mIHYgPT09ICdvYmplY3QnICYmIHYgIT09IG51bGwpIHtcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHYpLmZsYXRNYXAoKFtrLCB2XSkgPT4gKHYgPT09IHVuZGVmaW5lZCA/IFtdIDogW1trLCBub3JtYWxpemUodildXSkpKTtcbiAgfVxuICByZXR1cm4gdjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXNzZXJ0RXF1YWxzRml4dHVyZSh0OiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKSB7XG4gIGZpbGVuYW1lID0gX19kaXJuYW1lICsgJy8uLi8uLi9kZXNjcmlwdG9yL3BzYnQvZml4dHVyZXMvJyArIHQgKyAnLicgKyBmaWxlbmFtZTtcbiAgY29uc3QgbnYgPSBub3JtYWxpemUodmFsdWUpO1xuICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG52LCBhd2FpdCBnZXRGaXh0dXJlKGZpbGVuYW1lLCBudikpO1xufVxuXG5jb25zdCBzZWxmS2V5cyA9IGdldEtleVRyaXBsZSgnYScpO1xuY29uc3Qgb3RoZXJLZXlzID0gZ2V0S2V5VHJpcGxlKCdiJyk7XG5cbmZ1bmN0aW9uIHRvUGxhaW4oazogQklQMzJJbnRlcmZhY2UpOiBFQ1BhaXJJbnRlcmZhY2Uge1xuICBhc3NlcnQub2soay5wcml2YXRlS2V5KTtcbiAgcmV0dXJuIEVDUGFpci5mcm9tUHJpdmF0ZUtleShrLnByaXZhdGVLZXkpO1xufVxuXG50eXBlIFBzYnRTdGFnZSA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBrZXlzOiAoQklQMzJJbnRlcmZhY2UgfCBFQ1BhaXJJbnRlcmZhY2UpW107XG4gIGZpbmFsPzogYm9vbGVhbjtcbn07XG5cbnR5cGUgRml4dHVyZVN0YWdlID0ge1xuICBwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0O1xuICBuZXR3b3JrVHg/OiB1dHhvbGliLlRyYW5zYWN0aW9uPGJpZ2ludD47XG4gIG5ldHdvcmtUeEJ1ZmZlcj86IEJ1ZmZlcjtcbn07XG5cbmZ1bmN0aW9uIGdldFN0YWdlcyhcbiAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgcGFyc2VkOiBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb24sXG4gIHN0YWdlczogUHNidFN0YWdlW11cbik6IFJlY29yZDxzdHJpbmcsIEZpeHR1cmVTdGFnZT4ge1xuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIHN0YWdlcy5tYXAoKHN0YWdlKSA9PiB7XG4gICAgICBjb25zdCBwc2J0U3RhZ2VXcmFwcGVkID0gdG9XcmFwcGVkUHNidChwc2J0KTtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIHN0YWdlLmtleXMpIHtcbiAgICAgICAgYXNzZXJ0KGdldE5ld1NpZ25hdHVyZUNvdW50KHNpZ25XaXRoS2V5KHBzYnRTdGFnZVdyYXBwZWQsIGtleSkpID4gMCwgJ05vIG5ldyBzaWduYXR1cmVzIHdlcmUgY3JlYXRlZCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgcHNidFN0YWdlID0gdG9VdHhvUHNidChwc2J0U3RhZ2VXcmFwcGVkLCB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4pO1xuICAgICAgbGV0IHBzYnRGaW5hbDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB8IHVuZGVmaW5lZDtcbiAgICAgIGxldCBuZXR3b3JrVHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4gfCB1bmRlZmluZWQ7XG4gICAgICBsZXQgbmV0d29ya1R4QnVmZmVyOiBCdWZmZXIgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAoc3RhZ2UuZmluYWwpIHtcbiAgICAgICAgcHNidFN0YWdlV3JhcHBlZC5maW5hbGl6ZSgpO1xuICAgICAgICBwc2J0RmluYWwgPSB0b1V0eG9Qc2J0KHBzYnRTdGFnZVdyYXBwZWQsIHV0eG9saWIubmV0d29ya3MuYml0Y29pbik7XG4gICAgICAgIG5ldHdvcmtUeCA9IHBzYnRGaW5hbC5leHRyYWN0VHJhbnNhY3Rpb24oKTtcbiAgICAgICAgbmV0d29ya1R4QnVmZmVyID0gbmV0d29ya1R4LnRvQnVmZmVyKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW1xuICAgICAgICBzdGFnZS5uYW1lLFxuICAgICAgICB7XG4gICAgICAgICAgcHNidDogcHNidFN0YWdlLFxuICAgICAgICAgIHBhcnNlZCxcbiAgICAgICAgICBwc2J0RmluYWwsXG4gICAgICAgICAgbmV0d29ya1R4LFxuICAgICAgICAgIG5ldHdvcmtUeEJ1ZmZlcixcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfSlcbiAgKTtcbn1cblxudHlwZSBUZXN0UGFyYW1zID0ge1xuICBkZXNjcmlwdG9yU2VsZjogRGVzY3JpcHRvcjtcbiAgc3RhZ2VzOiBQc2J0U3RhZ2VbXTtcbn0gJiAoXG4gIHwge1xuICAgICAgcHNidFBhcmFtczogUGFydGlhbDxQc2J0UGFyYW1zPjtcbiAgICB9XG4gIHwge1xuICAgICAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidDtcbiAgICB9XG4pO1xuXG5mdW5jdGlvbiBkZXNjcmliZUNyZWF0ZVBzYnQobmFtZTogc3RyaW5nLCB0ZXN0UGFyYW1zOiBUZXN0UGFyYW1zKSB7XG4gIGRlc2NyaWJlKGBjcmVhdGVQc2J0ICR7bmFtZX1gLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ2NyZWF0ZXMgcHNidCB3aXRoIGV4cGVjdGVkIHByb3BlcnRpZXMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBwc2J0VW5zaWduZWQgPVxuICAgICAgICAncHNidCcgaW4gdGVzdFBhcmFtc1xuICAgICAgICAgID8gdGVzdFBhcmFtcy5wc2J0XG4gICAgICAgICAgOiBtb2NrUHNidERlZmF1bHQoe1xuICAgICAgICAgICAgICBkZXNjcmlwdG9yU2VsZjogdGVzdFBhcmFtcy5kZXNjcmlwdG9yU2VsZixcbiAgICAgICAgICAgICAgZGVzY3JpcHRvck90aGVyOiBnZXREZXNjcmlwdG9yKCdXc2gyT2YzJywgb3RoZXJLZXlzKSxcbiAgICAgICAgICAgICAgcGFyYW1zOiB0ZXN0UGFyYW1zLnBzYnRQYXJhbXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBuZXcgTWFwKFtbJ3NlbGYnLCB0ZXN0UGFyYW1zLmRlc2NyaXB0b3JTZWxmXV0pO1xuICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2UocHNidFVuc2lnbmVkLCBkZXNjcmlwdG9yTWFwLCB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4pO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlZC5zcGVuZEFtb3VudCwgcHNidFVuc2lnbmVkLnR4T3V0cHV0c1sxXS52YWx1ZSk7XG4gICAgICBhd2FpdCBhc3NlcnRFcXVhbHNGaXh0dXJlKG5hbWUsICdwc2J0U3RhZ2VzLmpzb24nLCBnZXRTdGFnZXMocHNidFVuc2lnbmVkLCBwYXJzZWQsIHRlc3RQYXJhbXMuc3RhZ2VzKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5jb25zdCBkZWZhdWx0U3RhZ2VzQ29tYmluZWRBQjogUHNidFN0YWdlW10gPSBbXG4gIHsgbmFtZTogJ3Vuc2lnbmVkJywga2V5czogW10gfSxcbiAgeyBuYW1lOiAnc2lnbmVkQScsIGtleXM6IHNlbGZLZXlzLnNsaWNlKDAsIDEpIH0sXG4gIHsgbmFtZTogJ3NpZ25lZEFCJywga2V5czogc2VsZktleXMuc2xpY2UoMCwgMiksIGZpbmFsOiB0cnVlIH0sXG5dO1xuXG5mdW5jdGlvbiBnZXREZWZhdWx0U3RhZ2VzU2VwYXJhdGVBQih7IHBsYWluID0gZmFsc2UgfSA9IHt9KTogUHNidFN0YWdlW10ge1xuICBjb25zdCBrZXlzID0gcGxhaW4gPyBzZWxmS2V5cy5tYXAodG9QbGFpbikgOiBzZWxmS2V5cztcbiAgcmV0dXJuIFtcbiAgICB7IG5hbWU6ICd1bnNpZ25lZCcsIGtleXM6IFtdIH0sXG4gICAgeyBuYW1lOiAnc2lnbmVkQScsIGtleXM6IGtleXMuc2xpY2UoMCwgMSkgfSxcbiAgICB7IG5hbWU6ICdzaWduZWRCJywga2V5czoga2V5cy5zbGljZSgxLCAyKSwgZmluYWw6IHRydWUgfSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVDcmVhdGVQc2J0Mk9mMyh0OiBEZXNjcmlwdG9yVGVtcGxhdGUpIHtcbiAgZGVzY3JpYmVDcmVhdGVQc2J0KHQsIHtcbiAgICBkZXNjcmlwdG9yU2VsZjogZ2V0RGVzY3JpcHRvcih0LCBzZWxmS2V5cyksXG4gICAgcHNidFBhcmFtczogZ2V0UHNidFBhcmFtcyh0KSxcbiAgICBzdGFnZXM6IGRlZmF1bHRTdGFnZXNDb21iaW5lZEFCLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVDcmVhdGVQc2J0U2VsZWN0VGFwTGVhZlNjcmlwdChcbiAgdDogRGVzY3JpcHRvclRlbXBsYXRlLFxuICBzZWxmRGVzY3JpcHRvcjogRGVzY3JpcHRvcixcbiAgc2VsZWN0VGFwTGVhZlNjcmlwdDogTWluaXNjcmlwdCxcbiAgdGFwTGVhZk5hbWU6IHN0cmluZ1xuKSB7XG4gIGNvbnN0IG90aGVyRGVzY3JpcHRvciA9IGdldERlc2NyaXB0b3IoJ1dzaDJPZjMnLCBvdGhlcktleXMpO1xuICBjb25zdCBzaWduS2V5cyA9IHNlbGZLZXlzLmZpbHRlcigoaykgPT4gY29udGFpbnNLZXkoc2VsZWN0VGFwTGVhZlNjcmlwdCwgaykpLm1hcCgoaykgPT4gdG9QbGFpbihrKSk7XG4gIGFzc2VydChzaWduS2V5cy5sZW5ndGggPT09IDEpO1xuICBkZXNjcmliZUNyZWF0ZVBzYnQoYCR7dH0tJHt0YXBMZWFmTmFtZX1gLCB7XG4gICAgZGVzY3JpcHRvclNlbGY6IHNlbGZEZXNjcmlwdG9yLFxuICAgIHBzYnQ6IG1vY2tQc2J0KFxuICAgICAgW1xuICAgICAgICB7IGRlc2NyaXB0b3I6IHNlbGZEZXNjcmlwdG9yLCBpbmRleDogMCwgc2VsZWN0VGFwTGVhZlNjcmlwdCB9LFxuICAgICAgICB7IGRlc2NyaXB0b3I6IHNlbGZEZXNjcmlwdG9yLCBpbmRleDogMSwgaWQ6IHsgdm91dDogMSB9LCBzZWxlY3RUYXBMZWFmU2NyaXB0IH0sXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICB7XG4gICAgICAgICAgZGVzY3JpcHRvcjogb3RoZXJEZXNjcmlwdG9yLFxuICAgICAgICAgIGluZGV4OiAwLFxuICAgICAgICAgIHZhbHVlOiBCaWdJbnQoNGU1KSxcbiAgICAgICAgICBleHRlcm5hbDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgeyBkZXNjcmlwdG9yOiBzZWxmRGVzY3JpcHRvciwgaW5kZXg6IDAsIHZhbHVlOiBCaWdJbnQoNGU1KSB9LFxuICAgICAgXVxuICAgICksXG4gICAgc3RhZ2VzOiBbXG4gICAgICB7IG5hbWU6ICd1bnNpZ25lZCcsIGtleXM6IFtdIH0sXG4gICAgICB7IG5hbWU6ICdzaWduZWQnLCBrZXlzOiBzaWduS2V5cyB9LFxuICAgIF0sXG4gIH0pO1xufVxuXG5kZXNjcmliZUNyZWF0ZVBzYnQyT2YzKCdXc2gyT2YzJyk7XG5kZXNjcmliZUNyZWF0ZVBzYnQyT2YzKCdXc2gyT2YzQ2x0dkRyb3AnKTtcbmRlc2NyaWJlQ3JlYXRlUHNidDJPZjMoJ1RyMk9mMy1Ob0tleVBhdGgnKTtcbmRlc2NyaWJlQ3JlYXRlUHNidCgnVHIxT2YzLU5vS2V5UGF0aC1UcmVlJywge1xuICBkZXNjcmlwdG9yU2VsZjogZ2V0RGVzY3JpcHRvcignVHIxT2YzLU5vS2V5UGF0aC1UcmVlJywgc2VsZktleXMpLFxuICBwc2J0UGFyYW1zOiB7fSxcbiAgc3RhZ2VzOiBnZXREZWZhdWx0U3RhZ2VzU2VwYXJhdGVBQigpLFxufSk7XG5cbntcbiAgY29uc3QgdDogRGVzY3JpcHRvclRlbXBsYXRlID0gJ1RyMU9mMy1Ob0tleVBhdGgtVHJlZS1QbGFpbic7XG4gIGNvbnN0IHNlbGZEZXNjcmlwdG9yID0gZ2V0RGVzY3JpcHRvcih0LCBzZWxmS2V5cyk7XG4gIGdldFRhcExlYWZTY3JpcHRzKHNlbGZEZXNjcmlwdG9yKS5mb3JFYWNoKChzZWxlY3RUYXBMZWFmU2NyaXB0LCBpKSA9PiB7XG4gICAgZGVzY3JpYmVDcmVhdGVQc2J0U2VsZWN0VGFwTGVhZlNjcmlwdChcbiAgICAgIHQsXG4gICAgICBzZWxmRGVzY3JpcHRvcixcbiAgICAgIE1pbmlzY3JpcHQuZnJvbVN0cmluZyhzZWxlY3RUYXBMZWFmU2NyaXB0LCAndGFwJyksXG4gICAgICBgVGFwTGVhZlNjcmlwdCR7aX1gXG4gICAgKTtcbiAgfSk7XG59XG5cbmRlc2NyaWJlQ3JlYXRlUHNidCgnVHIxT2YzLU5vS2V5UGF0aC1UcmVlLVBsYWluS2V5cycsIHtcbiAgZGVzY3JpcHRvclNlbGY6IGdldERlc2NyaXB0b3IoJ1RyMU9mMy1Ob0tleVBhdGgtVHJlZS1QbGFpbicsIHNlbGZLZXlzKSxcbiAgcHNidFBhcmFtczoge30sXG4gIHN0YWdlczogZ2V0RGVmYXVsdFN0YWdlc1NlcGFyYXRlQUIoeyBwbGFpbjogdHJ1ZSB9KSxcbn0pO1xuXG57XG4gIGNvbnN0IGRlc2NyaXB0b3JTZWxmID0gZ2V0RGVzY3JpcHRvcignV3NoMk9mMycsIHNlbGZLZXlzKTtcbiAgY29uc3QgZGVzY3JpcHRvck90aGVyID0gZ2V0RGVzY3JpcHRvcignV3NoMk9mMycsIG90aGVyS2V5cyk7XG4gIGRlc2NyaWJlQ3JlYXRlUHNidCgnV3NoMk9mMy1DdXN0b21JbnB1dFNlcXVlbmNlJywge1xuICAgIGRlc2NyaXB0b3JTZWxmLFxuICAgIHBzYnQ6IG1vY2tQc2J0KFxuICAgICAgW1xuICAgICAgICB7IGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JTZWxmLCBpbmRleDogMCB9LFxuICAgICAgICB7IGRlc2NyaXB0b3I6IGRlc2NyaXB0b3JTZWxmLCBpbmRleDogMSwgaWQ6IHsgdm91dDogMSB9LCBzZXF1ZW5jZTogMTIzIH0sXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICB7XG4gICAgICAgICAgZGVzY3JpcHRvcjogZGVzY3JpcHRvck90aGVyLFxuICAgICAgICAgIGluZGV4OiAwLFxuICAgICAgICAgIHZhbHVlOiBCaWdJbnQoNGU1KSxcbiAgICAgICAgICBleHRlcm5hbDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgeyBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yU2VsZiwgaW5kZXg6IDAsIHZhbHVlOiBCaWdJbnQoNGU1KSB9LFxuICAgICAgXVxuICAgICksXG4gICAgc3RhZ2VzOiBkZWZhdWx0U3RhZ2VzQ29tYmluZWRBQixcbiAgfSk7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dustThreshold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dustThreshold.d.ts","sourceRoot":"","sources":["../../../test/dustThreshold.ts"],"names":[],"mappings":""}
@@ -0,0 +1,110 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const assert_1 = __importDefault(require("assert"));
40
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
41
+ const dustThreshold_1 = require("../src/dustThreshold");
42
+ describe('getDustThresholdSat', function () {
43
+ it('has expected values', function () {
44
+ assert_1.default.deepStrictEqual(utxolib.getNetworkList().flatMap((n) => {
45
+ if (n === utxolib.networks.bitcoin) {
46
+ return [
47
+ ['bitcoin', (0, dustThreshold_1.getDustThresholdSat)(n, 34, false)],
48
+ ['bitcoin (segwit)', (0, dustThreshold_1.getDustThresholdSat)(n, 31, true)],
49
+ ];
50
+ }
51
+ try {
52
+ return [[utxolib.getNetworkName(n), (0, dustThreshold_1.getDustThresholdSat)(n, 34, false)]];
53
+ }
54
+ catch (e) {
55
+ (0, assert_1.default)(e instanceof Error);
56
+ return [[utxolib.getNetworkName(n), e.message]];
57
+ }
58
+ }), [
59
+ /*
60
+
61
+ https://github.com/bitcoin/bitcoin/blob/v28.0/src/policy/policy.cpp#L28
62
+
63
+ >> "Dust" is defined in terms of dustRelayFee,
64
+ >> which has units satoshis-per-kilobyte.
65
+ >> If you'd pay more in fees than the value of the output
66
+ >> to spend something, then we consider it dust.
67
+ >> A typical spendable non-segwit txout is 34 bytes big, and will
68
+ >> need a CTxIn of at least 148 bytes to spend:
69
+ >> so dust is a spendable txout less than
70
+ >> 182*dustRelayFee/1000 (in satoshis).
71
+ >> 546 satoshis at the default rate of 3000 sat/kvB.
72
+
73
+ */
74
+ ['bitcoin', 546],
75
+ /*
76
+
77
+ >> A typical spendable segwit P2WPKH txout is 31 bytes big, and will
78
+ >> need a CTxIn of at least 67 bytes to spend:
79
+ >> so dust is a spendable txout less than
80
+ >> 98*dustRelayFee/1000 (in satoshis).
81
+ >> 294 satoshis at the default rate of 3000 sat/kvB.
82
+
83
+ for us it is 297 because we round up
84
+
85
+ */
86
+ ['bitcoin (segwit)', 297],
87
+ ['testnet', 546],
88
+ ['bitcoinPublicSignet', 546],
89
+ ['bitcoinTestnet4', 546],
90
+ ['bitcoinBitGoSignet', 546],
91
+ ['bitcoincash', 182],
92
+ ['bitcoincashTestnet', 182],
93
+ ['bitcoingold', 546],
94
+ ['bitcoingoldTestnet', 546],
95
+ ['bitcoinsv', 'deprecated coin'],
96
+ ['bitcoinsvTestnet', 'deprecated coin'],
97
+ ['dash', 546],
98
+ ['dashTest', 546],
99
+ ['dogecoin', 1000000],
100
+ ['dogecoinTest', 1000000],
101
+ ['ecash', 'unsupported network'],
102
+ ['ecashTest', 'unsupported network'],
103
+ ['litecoin', 5460],
104
+ ['litecoinTest', 5460],
105
+ ['zcash', 300],
106
+ ['zcashTest', 300],
107
+ ]);
108
+ });
109
+ });
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVzdFRocmVzaG9sZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvZHVzdFRocmVzaG9sZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUU1Qiw4REFBZ0Q7QUFFaEQsd0RBQTJEO0FBRTNELFFBQVEsQ0FBQyxxQkFBcUIsRUFBRTtJQUM5QixFQUFFLENBQUMscUJBQXFCLEVBQUU7UUFDeEIsZ0JBQU0sQ0FBQyxlQUFlLENBQ3BCLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQXdCLEVBQUU7WUFDM0QsSUFBSSxDQUFDLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbkMsT0FBTztvQkFDTCxDQUFDLFNBQVMsRUFBRSxJQUFBLG1DQUFtQixFQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQzlDLENBQUMsa0JBQWtCLEVBQUUsSUFBQSxtQ0FBbUIsRUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUN2RCxDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksQ0FBQztnQkFDSCxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUEsbUNBQW1CLEVBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUUsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsSUFBQSxnQkFBTSxFQUFDLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQztnQkFDM0IsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNsRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0Y7WUFDRTs7Ozs7Ozs7Ozs7Ozs7ZUFjRztZQUNILENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQztZQUNoQjs7Ozs7Ozs7OztlQVVHO1lBQ0gsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUM7WUFDekIsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO1lBQ2hCLENBQUMscUJBQXFCLEVBQUUsR0FBRyxDQUFDO1lBQzVCLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDO1lBQ3hCLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxDQUFDO1lBQzNCLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQztZQUNwQixDQUFDLG9CQUFvQixFQUFFLEdBQUcsQ0FBQztZQUMzQixDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUM7WUFDcEIsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUM7WUFDM0IsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLENBQUM7WUFDaEMsQ0FBQyxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FBQztZQUN2QyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7WUFDYixDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUM7WUFDakIsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDO1lBQ3JCLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQztZQUN6QixDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQztZQUNoQyxDQUFDLFdBQVcsRUFBRSxxQkFBcUIsQ0FBQztZQUNwQyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7WUFDbEIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDO1lBQ3RCLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztZQUNkLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQztTQUNuQixDQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgZ2V0RHVzdFRocmVzaG9sZFNhdCB9IGZyb20gJy4uL3NyYy9kdXN0VGhyZXNob2xkJztcblxuZGVzY3JpYmUoJ2dldER1c3RUaHJlc2hvbGRTYXQnLCBmdW5jdGlvbiAoKSB7XG4gIGl0KCdoYXMgZXhwZWN0ZWQgdmFsdWVzJywgZnVuY3Rpb24gKCkge1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoXG4gICAgICB1dHhvbGliLmdldE5ldHdvcmtMaXN0KCkuZmxhdE1hcCgobik6IFt1bmtub3duLCB1bmtub3duXVtdID0+IHtcbiAgICAgICAgaWYgKG4gPT09IHV0eG9saWIubmV0d29ya3MuYml0Y29pbikge1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBbJ2JpdGNvaW4nLCBnZXREdXN0VGhyZXNob2xkU2F0KG4sIDM0LCBmYWxzZSldLFxuICAgICAgICAgICAgWydiaXRjb2luIChzZWd3aXQpJywgZ2V0RHVzdFRocmVzaG9sZFNhdChuLCAzMSwgdHJ1ZSldLFxuICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gW1t1dHhvbGliLmdldE5ldHdvcmtOYW1lKG4pLCBnZXREdXN0VGhyZXNob2xkU2F0KG4sIDM0LCBmYWxzZSldXTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGFzc2VydChlIGluc3RhbmNlb2YgRXJyb3IpO1xuICAgICAgICAgIHJldHVybiBbW3V0eG9saWIuZ2V0TmV0d29ya05hbWUobiksIGUubWVzc2FnZV1dO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIFtcbiAgICAgICAgLypcblxuICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXRjb2luL2Jsb2IvdjI4LjAvc3JjL3BvbGljeS9wb2xpY3kuY3BwI0wyOFxuXG4gICAgICAgID4+IFwiRHVzdFwiIGlzIGRlZmluZWQgaW4gdGVybXMgb2YgZHVzdFJlbGF5RmVlLFxuICAgICAgICA+PiB3aGljaCBoYXMgdW5pdHMgc2F0b3NoaXMtcGVyLWtpbG9ieXRlLlxuICAgICAgICA+PiBJZiB5b3UnZCBwYXkgbW9yZSBpbiBmZWVzIHRoYW4gdGhlIHZhbHVlIG9mIHRoZSBvdXRwdXRcbiAgICAgICAgPj4gdG8gc3BlbmQgc29tZXRoaW5nLCB0aGVuIHdlIGNvbnNpZGVyIGl0IGR1c3QuXG4gICAgICAgID4+IEEgdHlwaWNhbCBzcGVuZGFibGUgbm9uLXNlZ3dpdCB0eG91dCBpcyAzNCBieXRlcyBiaWcsIGFuZCB3aWxsXG4gICAgICAgID4+IG5lZWQgYSBDVHhJbiBvZiBhdCBsZWFzdCAxNDggYnl0ZXMgdG8gc3BlbmQ6XG4gICAgICAgID4+IHNvIGR1c3QgaXMgYSBzcGVuZGFibGUgdHhvdXQgbGVzcyB0aGFuXG4gICAgICAgID4+IDE4MipkdXN0UmVsYXlGZWUvMTAwMCAoaW4gc2F0b3NoaXMpLlxuICAgICAgICA+PiA1NDYgc2F0b3NoaXMgYXQgdGhlIGRlZmF1bHQgcmF0ZSBvZiAzMDAwIHNhdC9rdkIuXG5cbiAgICAgICAgICovXG4gICAgICAgIFsnYml0Y29pbicsIDU0Nl0sXG4gICAgICAgIC8qXG5cbiAgICAgICAgPj4gQSB0eXBpY2FsIHNwZW5kYWJsZSBzZWd3aXQgUDJXUEtIIHR4b3V0IGlzIDMxIGJ5dGVzIGJpZywgYW5kIHdpbGxcbiAgICAgICAgPj4gbmVlZCBhIENUeEluIG9mIGF0IGxlYXN0IDY3IGJ5dGVzIHRvIHNwZW5kOlxuICAgICAgICA+PiBzbyBkdXN0IGlzIGEgc3BlbmRhYmxlIHR4b3V0IGxlc3MgdGhhblxuICAgICAgICA+PiA5OCpkdXN0UmVsYXlGZWUvMTAwMCAoaW4gc2F0b3NoaXMpLlxuICAgICAgICA+PiAyOTQgc2F0b3NoaXMgYXQgdGhlIGRlZmF1bHQgcmF0ZSBvZiAzMDAwIHNhdC9rdkIuXG5cbiAgICAgICAgZm9yIHVzIGl0IGlzIDI5NyBiZWNhdXNlIHdlIHJvdW5kIHVwXG5cbiAgICAgICAgICovXG4gICAgICAgIFsnYml0Y29pbiAoc2Vnd2l0KScsIDI5N10sXG4gICAgICAgIFsndGVzdG5ldCcsIDU0Nl0sXG4gICAgICAgIFsnYml0Y29pblB1YmxpY1NpZ25ldCcsIDU0Nl0sXG4gICAgICAgIFsnYml0Y29pblRlc3RuZXQ0JywgNTQ2XSxcbiAgICAgICAgWydiaXRjb2luQml0R29TaWduZXQnLCA1NDZdLFxuICAgICAgICBbJ2JpdGNvaW5jYXNoJywgMTgyXSxcbiAgICAgICAgWydiaXRjb2luY2FzaFRlc3RuZXQnLCAxODJdLFxuICAgICAgICBbJ2JpdGNvaW5nb2xkJywgNTQ2XSxcbiAgICAgICAgWydiaXRjb2luZ29sZFRlc3RuZXQnLCA1NDZdLFxuICAgICAgICBbJ2JpdGNvaW5zdicsICdkZXByZWNhdGVkIGNvaW4nXSxcbiAgICAgICAgWydiaXRjb2luc3ZUZXN0bmV0JywgJ2RlcHJlY2F0ZWQgY29pbiddLFxuICAgICAgICBbJ2Rhc2gnLCA1NDZdLFxuICAgICAgICBbJ2Rhc2hUZXN0JywgNTQ2XSxcbiAgICAgICAgWydkb2dlY29pbicsIDEwMDAwMDBdLFxuICAgICAgICBbJ2RvZ2Vjb2luVGVzdCcsIDEwMDAwMDBdLFxuICAgICAgICBbJ2VjYXNoJywgJ3Vuc3VwcG9ydGVkIG5ldHdvcmsnXSxcbiAgICAgICAgWydlY2FzaFRlc3QnLCAndW5zdXBwb3J0ZWQgbmV0d29yayddLFxuICAgICAgICBbJ2xpdGVjb2luJywgNTQ2MF0sXG4gICAgICAgIFsnbGl0ZWNvaW5UZXN0JywgNTQ2MF0sXG4gICAgICAgIFsnemNhc2gnLCAzMDBdLFxuICAgICAgICBbJ3pjYXNoVGVzdCcsIDMwMF0sXG4gICAgICBdXG4gICAgKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=attestation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attestation.d.ts","sourceRoot":"","sources":["../../../../test/paygo/attestation.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ const attestation_1 = require("../../src/paygo/attestation");
8
+ const testutil_1 = require("../../src/testutil");
9
+ const payGoAddressProof_1 = require("./psbt/payGoAddressProof");
10
+ describe('createPayGoAttestationBuffer', () => {
11
+ it('should create a PayGo Attestation proof matching with original proof', () => {
12
+ const payGoAttestationProof = (0, attestation_1.createPayGoAttestationBuffer)(payGoAddressProof_1.addressToVerify, payGoAddressProof_1.addressProofEntropy, payGoAddressProof_1.network);
13
+ assert_1.default.strictEqual(payGoAttestationProof.toString(), payGoAddressProof_1.addressProofMsgBuffer.toString());
14
+ (0, assert_1.default)(Buffer.compare(payGoAttestationProof, payGoAddressProof_1.addressProofMsgBuffer) === 0);
15
+ });
16
+ it('should create a PayGo Attestation proof that does not match with different uuid', () => {
17
+ const addressProofBufferDiffUuid = (0, testutil_1.generatePayGoAttestationProof)('00000000-0000-0000-0000-000000000001', Buffer.from(payGoAddressProof_1.addressToVerify));
18
+ const payGoAttestationProof = (0, attestation_1.createPayGoAttestationBuffer)(payGoAddressProof_1.addressToVerify, payGoAddressProof_1.addressProofEntropy, payGoAddressProof_1.network);
19
+ assert_1.default.notStrictEqual(payGoAttestationProof.toString(), addressProofBufferDiffUuid.toString());
20
+ (0, assert_1.default)(Buffer.compare(payGoAttestationProof, addressProofBufferDiffUuid) !== 0);
21
+ });
22
+ });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3BheWdvL2F0dGVzdGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBRTVCLDZEQUEyRTtBQUMzRSxpREFBbUU7QUFFbkUsZ0VBQWdIO0FBRWhILFFBQVEsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUU7SUFDNUMsRUFBRSxDQUFDLHNFQUFzRSxFQUFFLEdBQUcsRUFBRTtRQUM5RSxNQUFNLHFCQUFxQixHQUFHLElBQUEsMENBQTRCLEVBQUMsbUNBQWUsRUFBRSx1Q0FBbUIsRUFBRSwyQkFBTyxDQUFDLENBQUM7UUFDMUcsZ0JBQU0sQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLEVBQUUseUNBQXFCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2RixJQUFBLGdCQUFNLEVBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSx5Q0FBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGlGQUFpRixFQUFFLEdBQUcsRUFBRTtRQUN6RixNQUFNLDBCQUEwQixHQUFHLElBQUEsd0NBQTZCLEVBQzlELHNDQUFzQyxFQUN0QyxNQUFNLENBQUMsSUFBSSxDQUFDLG1DQUFlLENBQUMsQ0FDN0IsQ0FBQztRQUNGLE1BQU0scUJBQXFCLEdBQUcsSUFBQSwwQ0FBNEIsRUFBQyxtQ0FBZSxFQUFFLHVDQUFtQixFQUFFLDJCQUFPLENBQUMsQ0FBQztRQUMxRyxnQkFBTSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSwwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQy9GLElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgY3JlYXRlUGF5R29BdHRlc3RhdGlvbkJ1ZmZlciB9IGZyb20gJy4uLy4uL3NyYy9wYXlnby9hdHRlc3RhdGlvbic7XG5pbXBvcnQgeyBnZW5lcmF0ZVBheUdvQXR0ZXN0YXRpb25Qcm9vZiB9IGZyb20gJy4uLy4uL3NyYy90ZXN0dXRpbCc7XG5cbmltcG9ydCB7IGFkZHJlc3NQcm9vZkVudHJvcHksIGFkZHJlc3NQcm9vZk1zZ0J1ZmZlciwgYWRkcmVzc1RvVmVyaWZ5LCBuZXR3b3JrIH0gZnJvbSAnLi9wc2J0L3BheUdvQWRkcmVzc1Byb29mJztcblxuZGVzY3JpYmUoJ2NyZWF0ZVBheUdvQXR0ZXN0YXRpb25CdWZmZXInLCAoKSA9PiB7XG4gIGl0KCdzaG91bGQgY3JlYXRlIGEgUGF5R28gQXR0ZXN0YXRpb24gcHJvb2YgbWF0Y2hpbmcgd2l0aCBvcmlnaW5hbCBwcm9vZicsICgpID0+IHtcbiAgICBjb25zdCBwYXlHb0F0dGVzdGF0aW9uUHJvb2YgPSBjcmVhdGVQYXlHb0F0dGVzdGF0aW9uQnVmZmVyKGFkZHJlc3NUb1ZlcmlmeSwgYWRkcmVzc1Byb29mRW50cm9weSwgbmV0d29yayk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBheUdvQXR0ZXN0YXRpb25Qcm9vZi50b1N0cmluZygpLCBhZGRyZXNzUHJvb2ZNc2dCdWZmZXIudG9TdHJpbmcoKSk7XG4gICAgYXNzZXJ0KEJ1ZmZlci5jb21wYXJlKHBheUdvQXR0ZXN0YXRpb25Qcm9vZiwgYWRkcmVzc1Byb29mTXNnQnVmZmVyKSA9PT0gMCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY3JlYXRlIGEgUGF5R28gQXR0ZXN0YXRpb24gcHJvb2YgdGhhdCBkb2VzIG5vdCBtYXRjaCB3aXRoIGRpZmZlcmVudCB1dWlkJywgKCkgPT4ge1xuICAgIGNvbnN0IGFkZHJlc3NQcm9vZkJ1ZmZlckRpZmZVdWlkID0gZ2VuZXJhdGVQYXlHb0F0dGVzdGF0aW9uUHJvb2YoXG4gICAgICAnMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAxJyxcbiAgICAgIEJ1ZmZlci5mcm9tKGFkZHJlc3NUb1ZlcmlmeSlcbiAgICApO1xuICAgIGNvbnN0IHBheUdvQXR0ZXN0YXRpb25Qcm9vZiA9IGNyZWF0ZVBheUdvQXR0ZXN0YXRpb25CdWZmZXIoYWRkcmVzc1RvVmVyaWZ5LCBhZGRyZXNzUHJvb2ZFbnRyb3B5LCBuZXR3b3JrKTtcbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwocGF5R29BdHRlc3RhdGlvblByb29mLnRvU3RyaW5nKCksIGFkZHJlc3NQcm9vZkJ1ZmZlckRpZmZVdWlkLnRvU3RyaW5nKCkpO1xuICAgIGFzc2VydChCdWZmZXIuY29tcGFyZShwYXlHb0F0dGVzdGF0aW9uUHJvb2YsIGFkZHJlc3NQcm9vZkJ1ZmZlckRpZmZVdWlkKSAhPT0gMCk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parsePayGoAttestation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsePayGoAttestation.d.ts","sourceRoot":"","sources":["../../../../test/paygo/parsePayGoAttestation.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const assert = __importStar(require("assert"));
37
+ const paygo_1 = require("../../src/paygo");
38
+ const testutil_1 = require("../../src/testutil");
39
+ const attestation_1 = require("../../src/paygo/attestation");
40
+ const addressFromPubKeyBase58 = 'bitgoAddressToExtract';
41
+ const bufferAddressPubKeyB58 = Buffer.from(addressFromPubKeyBase58);
42
+ describe('parsePayGoAttestationProof with prefix', () => {
43
+ it('should extractAddressBufferFromPayGoAttestationProof properly', function () {
44
+ const paygoAttestationProof = (0, testutil_1.generatePayGoAttestationProof)(attestation_1.NIL_UUID, bufferAddressPubKeyB58);
45
+ const { entropy, address, uuid } = (0, paygo_1.parsePayGoAttestation)(paygoAttestationProof);
46
+ assert.ok(address.equals(bufferAddressPubKeyB58));
47
+ assert.deepStrictEqual(uuid.toString(), attestation_1.NIL_UUID);
48
+ assert.deepStrictEqual(entropy.length, 64);
49
+ });
50
+ it('should extract the paygo address paygo attestation proof given a non nilUUID', function () {
51
+ const paygoAttestationProof = (0, testutil_1.generatePayGoAttestationProof)('12345678-1234-4567-6890-231928472123', bufferAddressPubKeyB58);
52
+ const { entropy, address, uuid } = (0, paygo_1.parsePayGoAttestation)(paygoAttestationProof);
53
+ assert.ok(address.equals(bufferAddressPubKeyB58));
54
+ assert.deepStrictEqual(uuid.toString('utf-8'), '12345678-1234-4567-6890-231928472123');
55
+ assert.deepStrictEqual(entropy.length, 64);
56
+ });
57
+ it('should not extract the correct address given a uuid of wrong format', function () {
58
+ const paygoAttestationProof = (0, testutil_1.generatePayGoAttestationProof)('000000000000000-000000-0000000-000000-0000000000000000', bufferAddressPubKeyB58);
59
+ const { address } = (0, paygo_1.parsePayGoAttestation)(paygoAttestationProof);
60
+ assert.ok(!address.equals(bufferAddressPubKeyB58));
61
+ });
62
+ it('should throw an error if the paygo attestation proof is too short', function () {
63
+ assert.throws(() => (0, paygo_1.parsePayGoAttestation)(Buffer.from('shortproof-shrug', 'utf-8')), 'PayGo attestation proof is too short to contain a valid address.');
64
+ });
65
+ });
66
+ describe('parsePayGoAttestation without prefix', function () {
67
+ it('should extract the parts of the proof without the prefix automatically', function () {
68
+ const payGoAttestationProof = (0, testutil_1.generatePayGoAttestationProof)(attestation_1.NIL_UUID, bufferAddressPubKeyB58, false);
69
+ const { entropy, address, uuid } = (0, paygo_1.parsePayGoAttestation)(payGoAttestationProof);
70
+ assert.ok(address.equals(bufferAddressPubKeyB58));
71
+ assert.deepStrictEqual(uuid.toString(), attestation_1.NIL_UUID);
72
+ assert.deepStrictEqual(entropy.length, 64);
73
+ });
74
+ });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VQYXlHb0F0dGVzdGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC9wYXlnby9wYXJzZVBheUdvQXR0ZXN0YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBaUM7QUFFakMsMkNBQXdEO0FBQ3hELGlEQUFtRTtBQUNuRSw2REFBdUQ7QUFFdkQsTUFBTSx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztBQUN4RCxNQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUVwRSxRQUFRLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFO0lBQ3RELEVBQUUsQ0FBQywrREFBK0QsRUFBRTtRQUNsRSxNQUFNLHFCQUFxQixHQUFHLElBQUEsd0NBQTZCLEVBQUMsc0JBQVEsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlGLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUEsNkJBQXFCLEVBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRixNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLHNCQUFRLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOEVBQThFLEVBQUU7UUFDakYsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLHdDQUE2QixFQUN6RCxzQ0FBc0MsRUFDdEMsc0JBQXNCLENBQ3ZCLENBQUM7UUFDRixNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFBLDZCQUFxQixFQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDaEYsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsc0NBQXNDLENBQUMsQ0FBQztRQUN2RixNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMscUVBQXFFLEVBQUU7UUFDeEUsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLHdDQUE2QixFQUN6RCx3REFBd0QsRUFDeEQsc0JBQXNCLENBQ3ZCLENBQUM7UUFDRixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBQSw2QkFBcUIsRUFBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxtRUFBbUUsRUFBRTtRQUN0RSxNQUFNLENBQUMsTUFBTSxDQUNYLEdBQUcsRUFBRSxDQUFDLElBQUEsNkJBQXFCLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUNyRSxrRUFBa0UsQ0FDbkUsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsc0NBQXNDLEVBQUU7SUFDL0MsRUFBRSxDQUFDLHdFQUF3RSxFQUFFO1FBQzNFLE1BQU0scUJBQXFCLEdBQUcsSUFBQSx3Q0FBNkIsRUFBQyxzQkFBUSxFQUFFLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JHLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUEsNkJBQXFCLEVBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRixNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLHNCQUFRLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBwYXJzZVBheUdvQXR0ZXN0YXRpb24gfSBmcm9tICcuLi8uLi9zcmMvcGF5Z28nO1xuaW1wb3J0IHsgZ2VuZXJhdGVQYXlHb0F0dGVzdGF0aW9uUHJvb2YgfSBmcm9tICcuLi8uLi9zcmMvdGVzdHV0aWwnO1xuaW1wb3J0IHsgTklMX1VVSUQgfSBmcm9tICcuLi8uLi9zcmMvcGF5Z28vYXR0ZXN0YXRpb24nO1xuXG5jb25zdCBhZGRyZXNzRnJvbVB1YktleUJhc2U1OCA9ICdiaXRnb0FkZHJlc3NUb0V4dHJhY3QnO1xuY29uc3QgYnVmZmVyQWRkcmVzc1B1YktleUI1OCA9IEJ1ZmZlci5mcm9tKGFkZHJlc3NGcm9tUHViS2V5QmFzZTU4KTtcblxuZGVzY3JpYmUoJ3BhcnNlUGF5R29BdHRlc3RhdGlvblByb29mIHdpdGggcHJlZml4JywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIGV4dHJhY3RBZGRyZXNzQnVmZmVyRnJvbVBheUdvQXR0ZXN0YXRpb25Qcm9vZiBwcm9wZXJseScsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBwYXlnb0F0dGVzdGF0aW9uUHJvb2YgPSBnZW5lcmF0ZVBheUdvQXR0ZXN0YXRpb25Qcm9vZihOSUxfVVVJRCwgYnVmZmVyQWRkcmVzc1B1YktleUI1OCk7XG4gICAgY29uc3QgeyBlbnRyb3B5LCBhZGRyZXNzLCB1dWlkIH0gPSBwYXJzZVBheUdvQXR0ZXN0YXRpb24ocGF5Z29BdHRlc3RhdGlvblByb29mKTtcbiAgICBhc3NlcnQub2soYWRkcmVzcy5lcXVhbHMoYnVmZmVyQWRkcmVzc1B1YktleUI1OCkpO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodXVpZC50b1N0cmluZygpLCBOSUxfVVVJRCk7XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChlbnRyb3B5Lmxlbmd0aCwgNjQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGV4dHJhY3QgdGhlIHBheWdvIGFkZHJlc3MgcGF5Z28gYXR0ZXN0YXRpb24gcHJvb2YgZ2l2ZW4gYSBub24gbmlsVVVJRCcsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBwYXlnb0F0dGVzdGF0aW9uUHJvb2YgPSBnZW5lcmF0ZVBheUdvQXR0ZXN0YXRpb25Qcm9vZihcbiAgICAgICcxMjM0NTY3OC0xMjM0LTQ1NjctNjg5MC0yMzE5Mjg0NzIxMjMnLFxuICAgICAgYnVmZmVyQWRkcmVzc1B1YktleUI1OFxuICAgICk7XG4gICAgY29uc3QgeyBlbnRyb3B5LCBhZGRyZXNzLCB1dWlkIH0gPSBwYXJzZVBheUdvQXR0ZXN0YXRpb24ocGF5Z29BdHRlc3RhdGlvblByb29mKTtcbiAgICBhc3NlcnQub2soYWRkcmVzcy5lcXVhbHMoYnVmZmVyQWRkcmVzc1B1YktleUI1OCkpO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodXVpZC50b1N0cmluZygndXRmLTgnKSwgJzEyMzQ1Njc4LTEyMzQtNDU2Ny02ODkwLTIzMTkyODQ3MjEyMycpO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZW50cm9weS5sZW5ndGgsIDY0KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBub3QgZXh0cmFjdCB0aGUgY29ycmVjdCBhZGRyZXNzIGdpdmVuIGEgdXVpZCBvZiB3cm9uZyBmb3JtYXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgcGF5Z29BdHRlc3RhdGlvblByb29mID0gZ2VuZXJhdGVQYXlHb0F0dGVzdGF0aW9uUHJvb2YoXG4gICAgICAnMDAwMDAwMDAwMDAwMDAwLTAwMDAwMC0wMDAwMDAwLTAwMDAwMC0wMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAgIGJ1ZmZlckFkZHJlc3NQdWJLZXlCNThcbiAgICApO1xuICAgIGNvbnN0IHsgYWRkcmVzcyB9ID0gcGFyc2VQYXlHb0F0dGVzdGF0aW9uKHBheWdvQXR0ZXN0YXRpb25Qcm9vZik7XG4gICAgYXNzZXJ0Lm9rKCFhZGRyZXNzLmVxdWFscyhidWZmZXJBZGRyZXNzUHViS2V5QjU4KSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHBheWdvIGF0dGVzdGF0aW9uIHByb29mIGlzIHRvbyBzaG9ydCcsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgKCkgPT4gcGFyc2VQYXlHb0F0dGVzdGF0aW9uKEJ1ZmZlci5mcm9tKCdzaG9ydHByb29mLXNocnVnJywgJ3V0Zi04JykpLFxuICAgICAgJ1BheUdvIGF0dGVzdGF0aW9uIHByb29mIGlzIHRvbyBzaG9ydCB0byBjb250YWluIGEgdmFsaWQgYWRkcmVzcy4nXG4gICAgKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ3BhcnNlUGF5R29BdHRlc3RhdGlvbiB3aXRob3V0IHByZWZpeCcsIGZ1bmN0aW9uICgpIHtcbiAgaXQoJ3Nob3VsZCBleHRyYWN0IHRoZSBwYXJ0cyBvZiB0aGUgcHJvb2Ygd2l0aG91dCB0aGUgcHJlZml4IGF1dG9tYXRpY2FsbHknLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgcGF5R29BdHRlc3RhdGlvblByb29mID0gZ2VuZXJhdGVQYXlHb0F0dGVzdGF0aW9uUHJvb2YoTklMX1VVSUQsIGJ1ZmZlckFkZHJlc3NQdWJLZXlCNTgsIGZhbHNlKTtcbiAgICBjb25zdCB7IGVudHJvcHksIGFkZHJlc3MsIHV1aWQgfSA9IHBhcnNlUGF5R29BdHRlc3RhdGlvbihwYXlHb0F0dGVzdGF0aW9uUHJvb2YpO1xuICAgIGFzc2VydC5vayhhZGRyZXNzLmVxdWFscyhidWZmZXJBZGRyZXNzUHViS2V5QjU4KSk7XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh1dWlkLnRvU3RyaW5nKCksIE5JTF9VVUlEKTtcbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGVudHJvcHkubGVuZ3RoLCA2NCk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,9 @@
1
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
+ export declare const network: utxolib.Network;
3
+ export declare const attestationPubKey: Buffer<ArrayBufferLike>;
4
+ export declare const attestationPrvKey: Buffer<ArrayBufferLike>;
5
+ export declare const addressToVerify: string;
6
+ export declare const addressProofEntropy: Buffer<ArrayBuffer>;
7
+ export declare const addressProofMsgBuffer: Buffer<ArrayBuffer>;
8
+ export declare const sig: Buffer<ArrayBufferLike>;
9
+ //# sourceMappingURL=payGoAddressProof.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payGoAddressProof.d.ts","sourceRoot":"","sources":["../../../../../test/paygo/psbt/payGoAddressProof.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAehD,eAAO,MAAM,OAAO,iBAA2B,CAAC;AAgBhD,eAAO,MAAM,iBAAiB,yBAA2B,CAAC;AAC1D,eAAO,MAAM,iBAAiB,yBAA6B,CAAC;AAG5D,eAAO,MAAM,eAAe,QAI3B,CAAC;AAGF,eAAO,MAAM,mBAAmB,qBAAyB,CAAC;AAK1D,eAAO,MAAM,qBAAqB,qBAAkE,CAAC;AAGrG,eAAO,MAAM,GAAG,yBAAkE,CAAC"}