@bsv/sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (464) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +40 -0
  2. package/.github/ISSUE_TEMPLATE/discussion.md +24 -0
  3. package/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +23 -0
  4. package/CHANGELOG.md +72 -0
  5. package/CONTRIBUTING.md +85 -0
  6. package/LICENSE.txt +28 -0
  7. package/README.md +87 -0
  8. package/ROADMAP.md +3 -0
  9. package/dist/cjs/mod.js +25 -0
  10. package/dist/cjs/mod.js.map +1 -0
  11. package/dist/cjs/package.json +42 -0
  12. package/dist/cjs/src/compat/BIP39.js +272 -0
  13. package/dist/cjs/src/compat/BIP39.js.map +1 -0
  14. package/dist/cjs/src/compat/BSM.js +77 -0
  15. package/dist/cjs/src/compat/BSM.js.map +1 -0
  16. package/dist/cjs/src/compat/ECIES.js +483 -0
  17. package/dist/cjs/src/compat/ECIES.js.map +1 -0
  18. package/dist/cjs/src/compat/HD.js +326 -0
  19. package/dist/cjs/src/compat/HD.js.map +1 -0
  20. package/dist/cjs/src/compat/Mnemonic.js +298 -0
  21. package/dist/cjs/src/compat/Mnemonic.js.map +1 -0
  22. package/dist/cjs/src/compat/bip-39-wordlist-en.js +2057 -0
  23. package/dist/cjs/src/compat/bip-39-wordlist-en.js.map +1 -0
  24. package/dist/cjs/src/compat/index.js +37 -0
  25. package/dist/cjs/src/compat/index.js.map +1 -0
  26. package/dist/cjs/src/messages/EncryptedMessage.js +69 -0
  27. package/dist/cjs/src/messages/EncryptedMessage.js.map +1 -0
  28. package/dist/cjs/src/messages/SignedMessage.js +85 -0
  29. package/dist/cjs/src/messages/SignedMessage.js.map +1 -0
  30. package/dist/cjs/src/messages/index.js +29 -0
  31. package/dist/cjs/src/messages/index.js.map +1 -0
  32. package/dist/cjs/src/primitives/AESGCM.js +384 -0
  33. package/dist/cjs/src/primitives/AESGCM.js.map +1 -0
  34. package/dist/cjs/src/primitives/BasePoint.js +19 -0
  35. package/dist/cjs/src/primitives/BasePoint.js.map +1 -0
  36. package/dist/cjs/src/primitives/BigNumber.js +4269 -0
  37. package/dist/cjs/src/primitives/BigNumber.js.map +1 -0
  38. package/dist/cjs/src/primitives/Curve.js +1126 -0
  39. package/dist/cjs/src/primitives/Curve.js.map +1 -0
  40. package/dist/cjs/src/primitives/DRBG.js +99 -0
  41. package/dist/cjs/src/primitives/DRBG.js.map +1 -0
  42. package/dist/cjs/src/primitives/ECDSA.js +169 -0
  43. package/dist/cjs/src/primitives/ECDSA.js.map +1 -0
  44. package/dist/cjs/src/primitives/Hash.js +1332 -0
  45. package/dist/cjs/src/primitives/Hash.js.map +1 -0
  46. package/dist/cjs/src/primitives/JacobianPoint.js +400 -0
  47. package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -0
  48. package/dist/cjs/src/primitives/K256.js +111 -0
  49. package/dist/cjs/src/primitives/K256.js.map +1 -0
  50. package/dist/cjs/src/primitives/Mersenne.js +118 -0
  51. package/dist/cjs/src/primitives/Mersenne.js.map +1 -0
  52. package/dist/cjs/src/primitives/MontgomoryMethod.js +150 -0
  53. package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -0
  54. package/dist/cjs/src/primitives/Point.js +819 -0
  55. package/dist/cjs/src/primitives/Point.js.map +1 -0
  56. package/dist/cjs/src/primitives/PrivateKey.js +190 -0
  57. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -0
  58. package/dist/cjs/src/primitives/PublicKey.js +151 -0
  59. package/dist/cjs/src/primitives/PublicKey.js.map +1 -0
  60. package/dist/cjs/src/primitives/Random.js +57 -0
  61. package/dist/cjs/src/primitives/Random.js.map +1 -0
  62. package/dist/cjs/src/primitives/ReductionContext.js +490 -0
  63. package/dist/cjs/src/primitives/ReductionContext.js.map +1 -0
  64. package/dist/cjs/src/primitives/Signature.js +220 -0
  65. package/dist/cjs/src/primitives/Signature.js.map +1 -0
  66. package/dist/cjs/src/primitives/SymmetricKey.js +69 -0
  67. package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -0
  68. package/dist/cjs/src/primitives/TransactionSignature.js +172 -0
  69. package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -0
  70. package/dist/cjs/src/primitives/index.js +45 -0
  71. package/dist/cjs/src/primitives/index.js.map +1 -0
  72. package/dist/cjs/src/primitives/utils.js +615 -0
  73. package/dist/cjs/src/primitives/utils.js.map +1 -0
  74. package/dist/cjs/src/script/LockingScript.js +35 -0
  75. package/dist/cjs/src/script/LockingScript.js.map +1 -0
  76. package/dist/cjs/src/script/OP.js +208 -0
  77. package/dist/cjs/src/script/OP.js.map +1 -0
  78. package/dist/cjs/src/script/Script.js +429 -0
  79. package/dist/cjs/src/script/Script.js.map +1 -0
  80. package/dist/cjs/src/script/ScriptChunk.js +3 -0
  81. package/dist/cjs/src/script/ScriptChunk.js.map +1 -0
  82. package/dist/cjs/src/script/ScriptTemplate.js +3 -0
  83. package/dist/cjs/src/script/ScriptTemplate.js.map +1 -0
  84. package/dist/cjs/src/script/Spend.js +1252 -0
  85. package/dist/cjs/src/script/Spend.js.map +1 -0
  86. package/dist/cjs/src/script/UnlockingScript.js +35 -0
  87. package/dist/cjs/src/script/UnlockingScript.js.map +1 -0
  88. package/dist/cjs/src/script/index.js +32 -0
  89. package/dist/cjs/src/script/index.js.map +1 -0
  90. package/dist/cjs/src/script/templates/P2PKH.js +98 -0
  91. package/dist/cjs/src/script/templates/P2PKH.js.map +1 -0
  92. package/dist/cjs/src/script/templates/RPuzzle.js +125 -0
  93. package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -0
  94. package/dist/cjs/src/script/templates/index.js +11 -0
  95. package/dist/cjs/src/script/templates/index.js.map +1 -0
  96. package/dist/cjs/src/transaction/Broadcaster.js +3 -0
  97. package/dist/cjs/src/transaction/Broadcaster.js.map +1 -0
  98. package/dist/cjs/src/transaction/ChainTracker.js +3 -0
  99. package/dist/cjs/src/transaction/ChainTracker.js.map +1 -0
  100. package/dist/cjs/src/transaction/FeeModel.js +3 -0
  101. package/dist/cjs/src/transaction/FeeModel.js.map +1 -0
  102. package/dist/cjs/src/transaction/MerklePath.js +239 -0
  103. package/dist/cjs/src/transaction/MerklePath.js.map +1 -0
  104. package/dist/cjs/src/transaction/Transaction.js +557 -0
  105. package/dist/cjs/src/transaction/Transaction.js.map +1 -0
  106. package/dist/cjs/src/transaction/TransactionInput.js +3 -0
  107. package/dist/cjs/src/transaction/TransactionInput.js.map +1 -0
  108. package/dist/cjs/src/transaction/TransactionOutput.js +3 -0
  109. package/dist/cjs/src/transaction/TransactionOutput.js.map +1 -0
  110. package/dist/cjs/src/transaction/broadcasters/ARC.js +101 -0
  111. package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -0
  112. package/dist/cjs/src/transaction/broadcasters/index.js +9 -0
  113. package/dist/cjs/src/transaction/broadcasters/index.js.map +1 -0
  114. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js +69 -0
  115. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -0
  116. package/dist/cjs/src/transaction/fee-models/index.js +9 -0
  117. package/dist/cjs/src/transaction/fee-models/index.js.map +1 -0
  118. package/dist/cjs/src/transaction/index.js +11 -0
  119. package/dist/cjs/src/transaction/index.js.map +1 -0
  120. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  121. package/dist/esm/mod.js +9 -0
  122. package/dist/esm/mod.js.map +1 -0
  123. package/dist/esm/src/compat/BIP39.js +272 -0
  124. package/dist/esm/src/compat/BIP39.js.map +1 -0
  125. package/dist/esm/src/compat/BSM.js +45 -0
  126. package/dist/esm/src/compat/BSM.js.map +1 -0
  127. package/dist/esm/src/compat/ECIES.js +454 -0
  128. package/dist/esm/src/compat/ECIES.js.map +1 -0
  129. package/dist/esm/src/compat/HD.js +304 -0
  130. package/dist/esm/src/compat/HD.js.map +1 -0
  131. package/dist/esm/src/compat/Mnemonic.js +272 -0
  132. package/dist/esm/src/compat/Mnemonic.js.map +1 -0
  133. package/dist/esm/src/compat/bip-39-wordlist-en.js +2054 -0
  134. package/dist/esm/src/compat/bip-39-wordlist-en.js.map +1 -0
  135. package/dist/esm/src/compat/index.js +5 -0
  136. package/dist/esm/src/compat/index.js.map +1 -0
  137. package/dist/esm/src/messages/EncryptedMessage.js +61 -0
  138. package/dist/esm/src/messages/EncryptedMessage.js.map +1 -0
  139. package/dist/esm/src/messages/SignedMessage.js +77 -0
  140. package/dist/esm/src/messages/SignedMessage.js.map +1 -0
  141. package/dist/esm/src/messages/index.js +3 -0
  142. package/dist/esm/src/messages/index.js.map +1 -0
  143. package/dist/esm/src/primitives/AESGCM.js +371 -0
  144. package/dist/esm/src/primitives/AESGCM.js.map +1 -0
  145. package/dist/esm/src/primitives/BasePoint.js +16 -0
  146. package/dist/esm/src/primitives/BasePoint.js.map +1 -0
  147. package/dist/esm/src/primitives/BigNumber.js +4304 -0
  148. package/dist/esm/src/primitives/BigNumber.js.map +1 -0
  149. package/dist/esm/src/primitives/Curve.js +1141 -0
  150. package/dist/esm/src/primitives/Curve.js.map +1 -0
  151. package/dist/esm/src/primitives/DRBG.js +98 -0
  152. package/dist/esm/src/primitives/DRBG.js.map +1 -0
  153. package/dist/esm/src/primitives/ECDSA.js +161 -0
  154. package/dist/esm/src/primitives/ECDSA.js.map +1 -0
  155. package/dist/esm/src/primitives/Hash.js +1336 -0
  156. package/dist/esm/src/primitives/Hash.js.map +1 -0
  157. package/dist/esm/src/primitives/JacobianPoint.js +398 -0
  158. package/dist/esm/src/primitives/JacobianPoint.js.map +1 -0
  159. package/dist/esm/src/primitives/K256.js +105 -0
  160. package/dist/esm/src/primitives/K256.js.map +1 -0
  161. package/dist/esm/src/primitives/Mersenne.js +117 -0
  162. package/dist/esm/src/primitives/Mersenne.js.map +1 -0
  163. package/dist/esm/src/primitives/MontgomoryMethod.js +149 -0
  164. package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -0
  165. package/dist/esm/src/primitives/Point.js +816 -0
  166. package/dist/esm/src/primitives/Point.js.map +1 -0
  167. package/dist/esm/src/primitives/PrivateKey.js +184 -0
  168. package/dist/esm/src/primitives/PrivateKey.js.map +1 -0
  169. package/dist/esm/src/primitives/PublicKey.js +145 -0
  170. package/dist/esm/src/primitives/PublicKey.js.map +1 -0
  171. package/dist/esm/src/primitives/Random.js +56 -0
  172. package/dist/esm/src/primitives/Random.js.map +1 -0
  173. package/dist/esm/src/primitives/ReductionContext.js +486 -0
  174. package/dist/esm/src/primitives/ReductionContext.js.map +1 -0
  175. package/dist/esm/src/primitives/Signature.js +223 -0
  176. package/dist/esm/src/primitives/Signature.js.map +1 -0
  177. package/dist/esm/src/primitives/SymmetricKey.js +63 -0
  178. package/dist/esm/src/primitives/SymmetricKey.js.map +1 -0
  179. package/dist/esm/src/primitives/TransactionSignature.js +144 -0
  180. package/dist/esm/src/primitives/TransactionSignature.js.map +1 -0
  181. package/dist/esm/src/primitives/index.js +9 -0
  182. package/dist/esm/src/primitives/index.js.map +1 -0
  183. package/dist/esm/src/primitives/utils.js +601 -0
  184. package/dist/esm/src/primitives/utils.js.map +1 -0
  185. package/dist/esm/src/script/LockingScript.js +29 -0
  186. package/dist/esm/src/script/LockingScript.js.map +1 -0
  187. package/dist/esm/src/script/OP.js +206 -0
  188. package/dist/esm/src/script/OP.js.map +1 -0
  189. package/dist/esm/src/script/Script.js +424 -0
  190. package/dist/esm/src/script/Script.js.map +1 -0
  191. package/dist/esm/src/script/ScriptChunk.js +2 -0
  192. package/dist/esm/src/script/ScriptChunk.js.map +1 -0
  193. package/dist/esm/src/script/ScriptTemplate.js +2 -0
  194. package/dist/esm/src/script/ScriptTemplate.js.map +1 -0
  195. package/dist/esm/src/script/Spend.js +1240 -0
  196. package/dist/esm/src/script/Spend.js.map +1 -0
  197. package/dist/esm/src/script/UnlockingScript.js +29 -0
  198. package/dist/esm/src/script/UnlockingScript.js.map +1 -0
  199. package/dist/esm/src/script/index.js +7 -0
  200. package/dist/esm/src/script/index.js.map +1 -0
  201. package/dist/esm/src/script/templates/P2PKH.js +92 -0
  202. package/dist/esm/src/script/templates/P2PKH.js.map +1 -0
  203. package/dist/esm/src/script/templates/RPuzzle.js +119 -0
  204. package/dist/esm/src/script/templates/RPuzzle.js.map +1 -0
  205. package/dist/esm/src/script/templates/index.js +3 -0
  206. package/dist/esm/src/script/templates/index.js.map +1 -0
  207. package/dist/esm/src/transaction/Broadcaster.js +2 -0
  208. package/dist/esm/src/transaction/Broadcaster.js.map +1 -0
  209. package/dist/esm/src/transaction/ChainTracker.js +2 -0
  210. package/dist/esm/src/transaction/ChainTracker.js.map +1 -0
  211. package/dist/esm/src/transaction/FeeModel.js +2 -0
  212. package/dist/esm/src/transaction/FeeModel.js.map +1 -0
  213. package/dist/esm/src/transaction/MerklePath.js +237 -0
  214. package/dist/esm/src/transaction/MerklePath.js.map +1 -0
  215. package/dist/esm/src/transaction/Transaction.js +557 -0
  216. package/dist/esm/src/transaction/Transaction.js.map +1 -0
  217. package/dist/esm/src/transaction/TransactionInput.js +2 -0
  218. package/dist/esm/src/transaction/TransactionInput.js.map +1 -0
  219. package/dist/esm/src/transaction/TransactionOutput.js +2 -0
  220. package/dist/esm/src/transaction/TransactionOutput.js.map +1 -0
  221. package/dist/esm/src/transaction/broadcasters/ARC.js +100 -0
  222. package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -0
  223. package/dist/esm/src/transaction/broadcasters/index.js +2 -0
  224. package/dist/esm/src/transaction/broadcasters/index.js.map +1 -0
  225. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js +71 -0
  226. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -0
  227. package/dist/esm/src/transaction/fee-models/index.js +2 -0
  228. package/dist/esm/src/transaction/fee-models/index.js.map +1 -0
  229. package/dist/esm/src/transaction/index.js +3 -0
  230. package/dist/esm/src/transaction/index.js.map +1 -0
  231. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  232. package/dist/types/mod.d.ts +9 -0
  233. package/dist/types/mod.d.ts.map +1 -0
  234. package/dist/types/src/compat/BIP39.d.ts +132 -0
  235. package/dist/types/src/compat/BIP39.d.ts.map +1 -0
  236. package/dist/types/src/compat/BSM.d.ts +28 -0
  237. package/dist/types/src/compat/BSM.d.ts.map +1 -0
  238. package/dist/types/src/compat/ECIES.d.ts +62 -0
  239. package/dist/types/src/compat/ECIES.d.ts.map +1 -0
  240. package/dist/types/src/compat/HD.d.ts +117 -0
  241. package/dist/types/src/compat/HD.d.ts.map +1 -0
  242. package/dist/types/src/compat/Mnemonic.d.ts +132 -0
  243. package/dist/types/src/compat/Mnemonic.d.ts.map +1 -0
  244. package/dist/types/src/compat/bip-39-wordlist-en.d.ts +5 -0
  245. package/dist/types/src/compat/bip-39-wordlist-en.d.ts.map +1 -0
  246. package/dist/types/src/compat/index.d.ts +5 -0
  247. package/dist/types/src/compat/index.d.ts.map +1 -0
  248. package/dist/types/src/messages/EncryptedMessage.d.ts +20 -0
  249. package/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -0
  250. package/dist/types/src/messages/SignedMessage.d.ts +21 -0
  251. package/dist/types/src/messages/SignedMessage.d.ts.map +1 -0
  252. package/dist/types/src/messages/index.d.ts +3 -0
  253. package/dist/types/src/messages/index.d.ts.map +1 -0
  254. package/dist/types/src/primitives/AESGCM.d.ts +14 -0
  255. package/dist/types/src/primitives/AESGCM.d.ts.map +1 -0
  256. package/dist/types/src/primitives/BasePoint.d.ts +22 -0
  257. package/dist/types/src/primitives/BasePoint.d.ts.map +1 -0
  258. package/dist/types/src/primitives/BigNumber.d.ts +1895 -0
  259. package/dist/types/src/primitives/BigNumber.d.ts.map +1 -0
  260. package/dist/types/src/primitives/Curve.d.ts +55 -0
  261. package/dist/types/src/primitives/Curve.d.ts.map +1 -0
  262. package/dist/types/src/primitives/DRBG.d.ts +54 -0
  263. package/dist/types/src/primitives/DRBG.d.ts.map +1 -0
  264. package/dist/types/src/primitives/ECDSA.d.ts +39 -0
  265. package/dist/types/src/primitives/ECDSA.d.ts.map +1 -0
  266. package/dist/types/src/primitives/Hash.d.ts +411 -0
  267. package/dist/types/src/primitives/Hash.d.ts.map +1 -0
  268. package/dist/types/src/primitives/JacobianPoint.d.ts +164 -0
  269. package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -0
  270. package/dist/types/src/primitives/K256.d.ts +53 -0
  271. package/dist/types/src/primitives/K256.d.ts.map +1 -0
  272. package/dist/types/src/primitives/Mersenne.d.ts +72 -0
  273. package/dist/types/src/primitives/Mersenne.d.ts.map +1 -0
  274. package/dist/types/src/primitives/MontgomoryMethod.d.ts +96 -0
  275. package/dist/types/src/primitives/MontgomoryMethod.d.ts.map +1 -0
  276. package/dist/types/src/primitives/Point.d.ts +303 -0
  277. package/dist/types/src/primitives/Point.d.ts.map +1 -0
  278. package/dist/types/src/primitives/PrivateKey.d.ts +143 -0
  279. package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -0
  280. package/dist/types/src/primitives/PublicKey.d.ts +108 -0
  281. package/dist/types/src/primitives/PublicKey.d.ts.map +1 -0
  282. package/dist/types/src/primitives/Random.d.ts +14 -0
  283. package/dist/types/src/primitives/Random.d.ts.map +1 -0
  284. package/dist/types/src/primitives/ReductionContext.d.ts +308 -0
  285. package/dist/types/src/primitives/ReductionContext.d.ts.map +1 -0
  286. package/dist/types/src/primitives/Signature.d.ts +100 -0
  287. package/dist/types/src/primitives/Signature.d.ts.map +1 -0
  288. package/dist/types/src/primitives/SymmetricKey.d.ts +44 -0
  289. package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -0
  290. package/dist/types/src/primitives/TransactionSignature.d.ts +36 -0
  291. package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -0
  292. package/dist/types/src/primitives/index.d.ts +9 -0
  293. package/dist/types/src/primitives/index.d.ts.map +1 -0
  294. package/dist/types/src/primitives/utils.d.ts +118 -0
  295. package/dist/types/src/primitives/utils.d.ts.map +1 -0
  296. package/dist/types/src/script/LockingScript.d.ts +25 -0
  297. package/dist/types/src/script/LockingScript.d.ts.map +1 -0
  298. package/dist/types/src/script/OP.d.ts +193 -0
  299. package/dist/types/src/script/OP.d.ts.map +1 -0
  300. package/dist/types/src/script/Script.d.ts +148 -0
  301. package/dist/types/src/script/Script.d.ts.map +1 -0
  302. package/dist/types/src/script/ScriptChunk.d.ts +8 -0
  303. package/dist/types/src/script/ScriptChunk.d.ts.map +1 -0
  304. package/dist/types/src/script/ScriptTemplate.d.ts +33 -0
  305. package/dist/types/src/script/ScriptTemplate.d.ts.map +1 -0
  306. package/dist/types/src/script/Spend.d.ts +103 -0
  307. package/dist/types/src/script/Spend.d.ts.map +1 -0
  308. package/dist/types/src/script/UnlockingScript.d.ts +25 -0
  309. package/dist/types/src/script/UnlockingScript.d.ts.map +1 -0
  310. package/dist/types/src/script/index.d.ts +8 -0
  311. package/dist/types/src/script/index.d.ts.map +1 -0
  312. package/dist/types/src/script/templates/P2PKH.d.ts +37 -0
  313. package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -0
  314. package/dist/types/src/script/templates/RPuzzle.d.ts +47 -0
  315. package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -0
  316. package/dist/types/src/script/templates/index.d.ts +3 -0
  317. package/dist/types/src/script/templates/index.d.ts.map +1 -0
  318. package/dist/types/src/transaction/Broadcaster.d.ts +39 -0
  319. package/dist/types/src/transaction/Broadcaster.d.ts.map +1 -0
  320. package/dist/types/src/transaction/ChainTracker.d.ts +23 -0
  321. package/dist/types/src/transaction/ChainTracker.d.ts.map +1 -0
  322. package/dist/types/src/transaction/FeeModel.d.ts +12 -0
  323. package/dist/types/src/transaction/FeeModel.d.ts.map +1 -0
  324. package/dist/types/src/transaction/MerklePath.d.ts +91 -0
  325. package/dist/types/src/transaction/MerklePath.d.ts.map +1 -0
  326. package/dist/types/src/transaction/Transaction.d.ts +181 -0
  327. package/dist/types/src/transaction/Transaction.d.ts.map +1 -0
  328. package/dist/types/src/transaction/TransactionInput.d.ts +63 -0
  329. package/dist/types/src/transaction/TransactionInput.d.ts.map +1 -0
  330. package/dist/types/src/transaction/TransactionOutput.d.ts +36 -0
  331. package/dist/types/src/transaction/TransactionOutput.d.ts.map +1 -0
  332. package/dist/types/src/transaction/broadcasters/ARC.d.ts +28 -0
  333. package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -0
  334. package/dist/types/src/transaction/broadcasters/index.d.ts +2 -0
  335. package/dist/types/src/transaction/broadcasters/index.d.ts.map +1 -0
  336. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts +26 -0
  337. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -0
  338. package/dist/types/src/transaction/fee-models/index.d.ts +2 -0
  339. package/dist/types/src/transaction/fee-models/index.d.ts.map +1 -0
  340. package/dist/types/src/transaction/index.d.ts +7 -0
  341. package/dist/types/src/transaction/index.d.ts.map +1 -0
  342. package/dist/types/tsconfig.types.tsbuildinfo +1 -0
  343. package/docs/README.md +9 -0
  344. package/docs/compat.md +2856 -0
  345. package/docs/getting-started/COMMONJS.md +94 -0
  346. package/docs/getting-started/REACT-TS.md +131 -0
  347. package/docs/getting-started/TS-NODE.md +106 -0
  348. package/docs/getting-started/VUE.md +103 -0
  349. package/docs/messages.md +146 -0
  350. package/docs/primitives.md +7440 -0
  351. package/docs/script.md +766 -0
  352. package/docs/transaction.md +741 -0
  353. package/jest.config.js +6 -0
  354. package/mod.ts +8 -0
  355. package/package.json +137 -0
  356. package/src/compat/BSM.ts +51 -0
  357. package/src/compat/ECIES.ts +557 -0
  358. package/src/compat/HD.ts +348 -0
  359. package/src/compat/Mnemonic.ts +295 -0
  360. package/src/compat/__tests/BSM.test.ts +38 -0
  361. package/src/compat/__tests/ECIES.test.ts +90 -0
  362. package/src/compat/__tests/HD.test.ts +405 -0
  363. package/src/compat/__tests/Mnemonic.test.ts +177 -0
  364. package/src/compat/__tests/Mnemonic.vectors.ts +172 -0
  365. package/src/compat/bip-39-wordlist-en.ts +2053 -0
  366. package/src/compat/index.ts +4 -0
  367. package/src/messages/EncryptedMessage.ts +70 -0
  368. package/src/messages/SignedMessage.ts +87 -0
  369. package/src/messages/__tests/EncryptedMessage.test.ts +36 -0
  370. package/src/messages/__tests/SignedMessage.test.ts +53 -0
  371. package/src/messages/index.ts +2 -0
  372. package/src/primitives/AESGCM.ts +479 -0
  373. package/src/primitives/BasePoint.ts +21 -0
  374. package/src/primitives/BigNumber.ts +4619 -0
  375. package/src/primitives/Curve.ts +1163 -0
  376. package/src/primitives/DRBG.ts +102 -0
  377. package/src/primitives/ECDSA.ts +164 -0
  378. package/src/primitives/Hash.ts +1420 -0
  379. package/src/primitives/JacobianPoint.ts +410 -0
  380. package/src/primitives/K256.ts +116 -0
  381. package/src/primitives/Mersenne.ts +123 -0
  382. package/src/primitives/MontgomoryMethod.ts +160 -0
  383. package/src/primitives/Point.ts +852 -0
  384. package/src/primitives/PrivateKey.ts +195 -0
  385. package/src/primitives/PublicKey.ts +154 -0
  386. package/src/primitives/Random.ts +55 -0
  387. package/src/primitives/ReductionContext.ts +528 -0
  388. package/src/primitives/Signature.ts +235 -0
  389. package/src/primitives/SymmetricKey.ts +75 -0
  390. package/src/primitives/TransactionSignature.ts +189 -0
  391. package/src/primitives/__tests/AESGCM.test.ts +338 -0
  392. package/src/primitives/__tests/BRC42.private.vectors.ts +33 -0
  393. package/src/primitives/__tests/BRC42.public.vectors.ts +33 -0
  394. package/src/primitives/__tests/BigNumber.arithmatic.test.ts +572 -0
  395. package/src/primitives/__tests/BigNumber.binary.test.ts +203 -0
  396. package/src/primitives/__tests/BigNumber.constructor.test.ts +176 -0
  397. package/src/primitives/__tests/BigNumber.dhGroup.test.ts +18 -0
  398. package/src/primitives/__tests/BigNumber.fixtures.ts +264 -0
  399. package/src/primitives/__tests/BigNumber.serializers.test.ts +157 -0
  400. package/src/primitives/__tests/BigNumber.utils.test.ts +347 -0
  401. package/src/primitives/__tests/Curve.unit.test.ts +192 -0
  402. package/src/primitives/__tests/DRBG.test.ts +18 -0
  403. package/src/primitives/__tests/DRBG.vectors.ts +167 -0
  404. package/src/primitives/__tests/ECDH.test.ts +31 -0
  405. package/src/primitives/__tests/ECDSA.test.ts +58 -0
  406. package/src/primitives/__tests/HMAC.test.ts +59 -0
  407. package/src/primitives/__tests/Hash.test.ts +121 -0
  408. package/src/primitives/__tests/PBKDF2.vectors.ts +119 -0
  409. package/src/primitives/__tests/PrivateKey.test.ts +17 -0
  410. package/src/primitives/__tests/PublicKey.test.ts +66 -0
  411. package/src/primitives/__tests/Random.test.ts +14 -0
  412. package/src/primitives/__tests/Reader.test.ts +296 -0
  413. package/src/primitives/__tests/ReductionContext.test.ts +279 -0
  414. package/src/primitives/__tests/SymmetricKey.test.ts +58 -0
  415. package/src/primitives/__tests/SymmetricKey.vectors.ts +40 -0
  416. package/src/primitives/__tests/Writer.test.ts +198 -0
  417. package/src/primitives/__tests/sighash.vectors.ts +3503 -0
  418. package/src/primitives/__tests/utils.test.ts +108 -0
  419. package/src/primitives/index.ts +8 -0
  420. package/src/primitives/utils.ts +665 -0
  421. package/src/script/LockingScript.ts +30 -0
  422. package/src/script/OP.ts +219 -0
  423. package/src/script/Script.ts +426 -0
  424. package/src/script/ScriptChunk.ts +7 -0
  425. package/src/script/ScriptTemplate.ts +36 -0
  426. package/src/script/Spend.ts +1379 -0
  427. package/src/script/UnlockingScript.ts +30 -0
  428. package/src/script/__tests/Script.test.ts +369 -0
  429. package/src/script/__tests/Spend.test.ts +248 -0
  430. package/src/script/__tests/script.invalid.vectors.ts +925 -0
  431. package/src/script/__tests/script.valid.vectors.ts +1120 -0
  432. package/src/script/__tests/scriptFromVector.ts +42 -0
  433. package/src/script/__tests/spend.valid.vectors.ts +2288 -0
  434. package/src/script/index.ts +7 -0
  435. package/src/script/templates/P2PKH.ts +109 -0
  436. package/src/script/templates/RPuzzle.ts +140 -0
  437. package/src/script/templates/index.ts +2 -0
  438. package/src/transaction/Broadcaster.ts +42 -0
  439. package/src/transaction/ChainTracker.ts +22 -0
  440. package/src/transaction/FeeModel.ts +13 -0
  441. package/src/transaction/MerklePath.ts +259 -0
  442. package/src/transaction/Transaction.ts +602 -0
  443. package/src/transaction/TransactionInput.ts +63 -0
  444. package/src/transaction/TransactionOutput.ts +37 -0
  445. package/src/transaction/__tests/MerklePath.test.ts +181 -0
  446. package/src/transaction/__tests/Transaction.test.ts +413 -0
  447. package/src/transaction/__tests/bigtx.vectors.ts +4 -0
  448. package/src/transaction/__tests/bump.invalid.vectors.ts +8 -0
  449. package/src/transaction/__tests/bump.valid.vectors.ts +4 -0
  450. package/src/transaction/__tests/tx.invalid.vectors.ts +281 -0
  451. package/src/transaction/__tests/tx.valid.vectors.ts +364 -0
  452. package/src/transaction/broadcasters/ARC.ts +106 -0
  453. package/src/transaction/broadcasters/__tests/ARC.test.ts +115 -0
  454. package/src/transaction/broadcasters/index.ts +1 -0
  455. package/src/transaction/fee-models/SatoshisPerKilobyte.ts +71 -0
  456. package/src/transaction/fee-models/index.ts +1 -0
  457. package/src/transaction/index.ts +6 -0
  458. package/ts2md.json +5 -0
  459. package/tsconfig.base.json +26 -0
  460. package/tsconfig.cjs.json +11 -0
  461. package/tsconfig.eslint.json +12 -0
  462. package/tsconfig.esm.json +9 -0
  463. package/tsconfig.json +17 -0
  464. package/tsconfig.types.json +11 -0
@@ -0,0 +1,193 @@
1
+ /**
2
+ * An object mapping opcode names (such as OP_DUP) to their corresponding numbers (such as 0x76), and vice versa.
3
+ */
4
+ declare const OP: {
5
+ OP_FALSE: number;
6
+ OP_0: number;
7
+ OP_PUSHDATA1: number;
8
+ OP_PUSHDATA2: number;
9
+ OP_PUSHDATA4: number;
10
+ OP_1NEGATE: number;
11
+ OP_RESERVED: number;
12
+ OP_TRUE: number;
13
+ OP_1: number;
14
+ OP_2: number;
15
+ OP_3: number;
16
+ OP_4: number;
17
+ OP_5: number;
18
+ OP_6: number;
19
+ OP_7: number;
20
+ OP_8: number;
21
+ OP_9: number;
22
+ OP_10: number;
23
+ OP_11: number;
24
+ OP_12: number;
25
+ OP_13: number;
26
+ OP_14: number;
27
+ OP_15: number;
28
+ OP_16: number;
29
+ OP_NOP: number;
30
+ OP_VER: number;
31
+ OP_IF: number;
32
+ OP_NOTIF: number;
33
+ OP_VERIF: number;
34
+ OP_VERNOTIF: number;
35
+ OP_ELSE: number;
36
+ OP_ENDIF: number;
37
+ OP_VERIFY: number;
38
+ OP_RETURN: number;
39
+ OP_TOALTSTACK: number;
40
+ OP_FROMALTSTACK: number;
41
+ OP_2DROP: number;
42
+ OP_2DUP: number;
43
+ OP_3DUP: number;
44
+ OP_2OVER: number;
45
+ OP_2ROT: number;
46
+ OP_2SWAP: number;
47
+ OP_IFDUP: number;
48
+ OP_DEPTH: number;
49
+ OP_DROP: number;
50
+ OP_DUP: number;
51
+ OP_NIP: number;
52
+ OP_OVER: number;
53
+ OP_PICK: number;
54
+ OP_ROLL: number;
55
+ OP_ROT: number;
56
+ OP_SWAP: number;
57
+ OP_TUCK: number;
58
+ OP_CAT: number;
59
+ OP_SUBSTR: number;
60
+ OP_SPLIT: number;
61
+ OP_LEFT: number;
62
+ OP_NUM2BIN: number;
63
+ OP_RIGHT: number;
64
+ OP_BIN2NUM: number;
65
+ OP_SIZE: number;
66
+ OP_INVERT: number;
67
+ OP_AND: number;
68
+ OP_OR: number;
69
+ OP_XOR: number;
70
+ OP_EQUAL: number;
71
+ OP_EQUALVERIFY: number;
72
+ OP_RESERVED1: number;
73
+ OP_RESERVED2: number;
74
+ OP_1ADD: number;
75
+ OP_1SUB: number;
76
+ OP_2MUL: number;
77
+ OP_2DIV: number;
78
+ OP_NEGATE: number;
79
+ OP_ABS: number;
80
+ OP_NOT: number;
81
+ OP_0NOTEQUAL: number;
82
+ OP_ADD: number;
83
+ OP_SUB: number;
84
+ OP_MUL: number;
85
+ OP_DIV: number;
86
+ OP_MOD: number;
87
+ OP_LSHIFT: number;
88
+ OP_RSHIFT: number;
89
+ OP_BOOLAND: number;
90
+ OP_BOOLOR: number;
91
+ OP_NUMEQUAL: number;
92
+ OP_NUMEQUALVERIFY: number;
93
+ OP_NUMNOTEQUAL: number;
94
+ OP_LESSTHAN: number;
95
+ OP_GREATERTHAN: number;
96
+ OP_LESSTHANOREQUAL: number;
97
+ OP_GREATERTHANOREQUAL: number;
98
+ OP_MIN: number;
99
+ OP_MAX: number;
100
+ OP_WITHIN: number;
101
+ OP_RIPEMD160: number;
102
+ OP_SHA1: number;
103
+ OP_SHA256: number;
104
+ OP_HASH160: number;
105
+ OP_HASH256: number;
106
+ OP_CODESEPARATOR: number;
107
+ OP_CHECKSIG: number;
108
+ OP_CHECKSIGVERIFY: number;
109
+ OP_CHECKMULTISIG: number;
110
+ OP_CHECKMULTISIGVERIFY: number;
111
+ OP_NOP1: number;
112
+ OP_NOP2: number;
113
+ OP_NOP3: number;
114
+ OP_NOP4: number;
115
+ OP_NOP5: number;
116
+ OP_NOP6: number;
117
+ OP_NOP7: number;
118
+ OP_NOP8: number;
119
+ OP_NOP9: number;
120
+ OP_NOP10: number;
121
+ OP_NOP11: number;
122
+ OP_NOP12: number;
123
+ OP_NOP13: number;
124
+ OP_NOP14: number;
125
+ OP_NOP15: number;
126
+ OP_NOP16: number;
127
+ OP_NOP17: number;
128
+ OP_NOP18: number;
129
+ OP_NOP19: number;
130
+ OP_NOP20: number;
131
+ OP_NOP21: number;
132
+ OP_NOP22: number;
133
+ OP_NOP23: number;
134
+ OP_NOP24: number;
135
+ OP_NOP25: number;
136
+ OP_NOP26: number;
137
+ OP_NOP27: number;
138
+ OP_NOP28: number;
139
+ OP_NOP29: number;
140
+ OP_NOP30: number;
141
+ OP_NOP31: number;
142
+ OP_NOP32: number;
143
+ OP_NOP33: number;
144
+ OP_NOP34: number;
145
+ OP_NOP35: number;
146
+ OP_NOP36: number;
147
+ OP_NOP37: number;
148
+ OP_NOP38: number;
149
+ OP_NOP39: number;
150
+ OP_NOP40: number;
151
+ OP_NOP41: number;
152
+ OP_NOP42: number;
153
+ OP_NOP43: number;
154
+ OP_NOP44: number;
155
+ OP_NOP45: number;
156
+ OP_NOP46: number;
157
+ OP_NOP47: number;
158
+ OP_NOP48: number;
159
+ OP_NOP49: number;
160
+ OP_NOP50: number;
161
+ OP_NOP51: number;
162
+ OP_NOP52: number;
163
+ OP_NOP53: number;
164
+ OP_NOP54: number;
165
+ OP_NOP55: number;
166
+ OP_NOP56: number;
167
+ OP_NOP57: number;
168
+ OP_NOP58: number;
169
+ OP_NOP59: number;
170
+ OP_NOP60: number;
171
+ OP_NOP61: number;
172
+ OP_NOP62: number;
173
+ OP_NOP63: number;
174
+ OP_NOP64: number;
175
+ OP_NOP65: number;
176
+ OP_NOP66: number;
177
+ OP_NOP67: number;
178
+ OP_NOP68: number;
179
+ OP_NOP69: number;
180
+ OP_NOP70: number;
181
+ OP_NOP71: number;
182
+ OP_NOP72: number;
183
+ OP_NOP73: number;
184
+ OP_NOP77: number;
185
+ OP_SMALLDATA: number;
186
+ OP_SMALLINTEGER: number;
187
+ OP_PUBKEYS: number;
188
+ OP_PUBKEYHASH: number;
189
+ OP_PUBKEY: number;
190
+ OP_INVALIDOPCODE: number;
191
+ };
192
+ export default OP;
193
+ //# sourceMappingURL=OP.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OP.d.ts","sourceRoot":"","sources":["../../../../src/script/OP.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,QAAA,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgNP,CAAA;AAOD,eAAe,EAAE,CAAA"}
@@ -0,0 +1,148 @@
1
+ import ScriptChunk from './ScriptChunk.js';
2
+ import BigNumber from '../primitives/BigNumber.js';
3
+ /**
4
+ * The Script class represents a script in a Bitcoin SV transaction,
5
+ * encapsulating the functionality to construct, parse, and serialize
6
+ * scripts used in both locking (output) and unlocking (input) scripts.
7
+ *
8
+ * @property {ScriptChunk[]} chunks - An array of script chunks that make up the script.
9
+ */
10
+ export default class Script {
11
+ chunks: ScriptChunk[];
12
+ /**
13
+ * @method fromASM
14
+ * Static method to construct a Script instance from an ASM (Assembly) formatted string.
15
+ * @param asm - The script in ASM string format.
16
+ * @returns A new Script instance.
17
+ * @example
18
+ * const script = Script.fromASM("OP_DUP OP_HASH160 abcd... OP_EQUALVERIFY OP_CHECKSIG")
19
+ */
20
+ static fromASM(asm: string): Script;
21
+ /**
22
+ * @method fromHex
23
+ * Static method to construct a Script instance from a hexadecimal string.
24
+ * @param hex - The script in hexadecimal format.
25
+ * @returns A new Script instance.
26
+ * @example
27
+ * const script = Script.fromHex("76a9...");
28
+ */
29
+ static fromHex(hex: string): Script;
30
+ /**
31
+ * @method fromBinary
32
+ * Static method to construct a Script instance from a binary array.
33
+ * @param bin - The script in binary array format.
34
+ * @returns A new Script instance.
35
+ * @example
36
+ * const script = Script.fromBinary([0x76, 0xa9, ...])
37
+ */
38
+ static fromBinary(bin: number[]): Script;
39
+ /**
40
+ * @constructor
41
+ * Constructs a new Script object.
42
+ * @param chunks=[] - An array of script chunks to directly initialize the script.
43
+ */
44
+ constructor(chunks?: ScriptChunk[]);
45
+ /**
46
+ * @method toASM
47
+ * Serializes the script to an ASM formatted string.
48
+ * @returns The script in ASM string format.
49
+ */
50
+ toASM(): string;
51
+ /**
52
+ * @method toHex
53
+ * Serializes the script to a hexadecimal string.
54
+ * @returns The script in hexadecimal format.
55
+ */
56
+ toHex(): string;
57
+ /**
58
+ * @method toBinary
59
+ * Serializes the script to a binary array.
60
+ * @returns The script in binary array format.
61
+ */
62
+ toBinary(): number[];
63
+ /**
64
+ * @method writeScript
65
+ * Appends another script to this script.
66
+ * @param script - The script to append.
67
+ * @returns This script instance for chaining.
68
+ */
69
+ writeScript(script: Script): Script;
70
+ /**
71
+ * @method writeOpCode
72
+ * Appends an opcode to the script.
73
+ * @param op - The opcode to append.
74
+ * @returns This script instance for chaining.
75
+ */
76
+ writeOpCode(op: number): Script;
77
+ /**
78
+ * @method setChunkOpCode
79
+ * Sets the opcode of a specific chunk in the script.
80
+ * @param i - The index of the chunk.
81
+ * @param op - The opcode to set.
82
+ * @returns This script instance for chaining.
83
+ */
84
+ setChunkOpCode(i: number, op: number): Script;
85
+ /**
86
+ * @method writeBn
87
+ * Appends a BigNumber to the script as an opcode.
88
+ * @param bn - The BigNumber to append.
89
+ * @returns This script instance for chaining.
90
+ */
91
+ writeBn(bn: BigNumber): Script;
92
+ /**
93
+ * @method writeBin
94
+ * Appends binary data to the script, determining the appropriate opcode based on length.
95
+ * @param bin - The binary data to append.
96
+ * @returns This script instance for chaining.
97
+ * @throws {Error} Throws an error if the data is too large to be pushed.
98
+ */
99
+ writeBin(bin: number[]): Script;
100
+ /**
101
+ * @method writeNumber
102
+ * Appends a number to the script.
103
+ * @param num - The number to append.
104
+ * @returns This script instance for chaining.
105
+ */
106
+ writeNumber(num: number): Script;
107
+ /**
108
+ * @method removeCodeseparators
109
+ * Removes all OP_CODESEPARATOR opcodes from the script.
110
+ * @returns This script instance for chaining.
111
+ */
112
+ removeCodeseparators(): Script;
113
+ /**
114
+ * Deletes the given item wherever it appears in the current script.
115
+ *
116
+ * @param script - The script containing the item to delete from the current script.
117
+ *
118
+ * @returns This script instance for chaining.
119
+ */
120
+ findAndDelete(script: Script): Script;
121
+ /**
122
+ * @method isPushOnly
123
+ * Checks if the script contains only push data operations.
124
+ * @returns True if the script is push-only, otherwise false.
125
+ */
126
+ isPushOnly(): boolean;
127
+ /**
128
+ * @method isLockingScript
129
+ * Determines if the script is a locking script.
130
+ * @returns True if the script is a locking script, otherwise false.
131
+ */
132
+ isLockingScript(): boolean;
133
+ /**
134
+ * @method isUnlockingScript
135
+ * Determines if the script is an unlocking script.
136
+ * @returns True if the script is an unlocking script, otherwise false.
137
+ */
138
+ isUnlockingScript(): boolean;
139
+ /**
140
+ * @private
141
+ * @method _chunkToString
142
+ * Converts a script chunk to its string representation.
143
+ * @param chunk - The script chunk.
144
+ * @returns The string representation of the chunk.
145
+ */
146
+ private _chunkToString;
147
+ }
148
+ //# sourceMappingURL=Script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Script.d.ts","sourceRoot":"","sources":["../../../../src/script/Script.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAA;AAG1C,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAElD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,MAAM,EAAE,WAAW,EAAE,CAAA;IAErB;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAuEpC;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAIpC;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM;IA2DzC;;;;OAIG;gBACU,MAAM,GAAE,WAAW,EAAO;IAIvC;;;;OAIG;IACH,KAAK,IAAK,MAAM;IAUhB;;;;OAIG;IACH,KAAK,IAAK,MAAM;IAIhB;;;;OAIG;IACH,QAAQ,IAAK,MAAM,EAAE;IA0BrB;;;;;OAKG;IACH,WAAW,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAKpC;;;;;OAKG;IACH,WAAW,CAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAKhC;;;;;;OAMG;IACH,cAAc,CAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAK9C;;;;;OAKG;IACH,OAAO,CAAE,EAAE,EAAE,SAAS,GAAG,MAAM;IAqB/B;;;;;;OAMG;IACH,QAAQ,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM;IAsBhC;;;;;OAKG;IACH,WAAW,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAKjC;;;;OAIG;IACH,oBAAoB,IAAK,MAAM;IAW/B;;;;;;OAMG;IACH,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAYtC;;;;OAIG;IACH,UAAU,IAAK,OAAO;IAWtB;;;;OAIG;IACH,eAAe,IAAK,OAAO;IAI3B;;;;OAIG;IACH,iBAAiB,IAAK,OAAO;IAI7B;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;CAWvB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * A representation of a chunk of a script, which includes an opcode. For push operations, the associated data to push onto the stack is also included.
3
+ */
4
+ export default interface ScriptChunk {
5
+ op: number;
6
+ data?: number[];
7
+ }
8
+ //# sourceMappingURL=ScriptChunk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScriptChunk.d.ts","sourceRoot":"","sources":["../../../../src/script/ScriptChunk.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,WAAW;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB"}
@@ -0,0 +1,33 @@
1
+ import LockingScript from './LockingScript.js';
2
+ import UnlockingScript from './UnlockingScript.js';
3
+ import Transaction from '../transaction/Transaction.js';
4
+ /**
5
+ * @interface
6
+ *
7
+ * This interface defines the structure for script templates used in Bitcoin transactions.
8
+ * It provides methods for creating locking scripts, unlocking scripts, and estimating the length of unlocking scripts.
9
+ */
10
+ export default interface ScriptTemplate {
11
+ /**
12
+ * Creates a locking script with the given parameters.
13
+ *
14
+ * @param {...any} params - The parameters required to create the locking script.
15
+ * @returns {LockingScript} - An instance of LockingScript.
16
+ */
17
+ lock: (...params: any) => LockingScript;
18
+ /**
19
+ * Creates a function that generates an unlocking script along with its signature and length estimation.
20
+ *
21
+ * This method returns an object containing two functions:
22
+ * 1. `sign` - A function that, when called with a transaction and an input index, returns an UnlockingScript instance.
23
+ * 2. `estimateLength` - A function that returns the estimated length of the unlocking script in bytes.
24
+ *
25
+ * @param {...any} params - The parameters required to create the unlocking script.
26
+ * @returns {Object} - An object containing the `sign` and `estimateLength` functions.
27
+ */
28
+ unlock: (...params: any) => {
29
+ sign: (tx: Transaction, inputIndex: number) => Promise<UnlockingScript>;
30
+ estimateLength: (tx: Transaction, inputIndex: number) => Promise<number>;
31
+ };
32
+ }
33
+ //# sourceMappingURL=ScriptTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScriptTemplate.d.ts","sourceRoot":"","sources":["../../../../src/script/ScriptTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAC9C,OAAO,eAAe,MAAM,sBAAsB,CAAA;AAClD,OAAO,WAAW,MAAM,+BAA+B,CAAA;AAEvD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,WAAW,cAAc;IACrC;;;;;OAKG;IACH,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,KAAK,aAAa,CAAA;IAEvC;;;;;;;;;OASG;IACH,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,KACvB;QACE,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAC1C,OAAO,CAAC,eAAe,CAAC,CAAA;QACxB,cAAc,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;KACzE,CAAA;CACF"}
@@ -0,0 +1,103 @@
1
+ import LockingScript from './LockingScript.js';
2
+ import UnlockingScript from './UnlockingScript.js';
3
+ import TransactionInput from '../transaction/TransactionInput.js';
4
+ import TransactionOutput from '../transaction/TransactionOutput.js';
5
+ /**
6
+ * The Spend class represents a spend action within a Bitcoin SV transaction.
7
+ * It encapsulates all the necessary data required for spending a UTXO (Unspent Transaction Output)
8
+ * and includes details about the source transaction, output, and the spending transaction itself.
9
+ *
10
+ * @property {string} sourceTXID - The transaction ID of the source UTXO.
11
+ * @property {number} sourceOutputIndex - The index of the output in the source transaction.
12
+ * @property {BigNumber} sourceSatoshis - The amount of satoshis in the source UTXO.
13
+ * @property {LockingScript} lockingScript - The locking script associated with the UTXO.
14
+ * @property {number} transactionVersion - The version of the current transaction.
15
+ * @property {Array<{ sourceTXID: string, sourceOutputIndex: number, sequence: number }>} otherInputs -
16
+ * An array of other inputs in the transaction, each with a txid, outputIndex, and sequence number.
17
+ * @property {Array<{ satoshis: BigNumber, lockingScript: LockingScript }>} outputs -
18
+ * An array of outputs of the current transaction, including the satoshi value and locking script for each.
19
+ * @property {number} inputIndex - The index of this input in the current transaction.
20
+ * @property {UnlockingScript} unlockingScript - The unlocking script that unlocks the UTXO for spending.
21
+ * @property {number} inputSequence - The sequence number of this input.
22
+ */
23
+ export default class Spend {
24
+ sourceTXID: string;
25
+ sourceOutputIndex: number;
26
+ sourceSatoshis: number;
27
+ lockingScript: LockingScript;
28
+ transactionVersion: number;
29
+ otherInputs: TransactionInput[];
30
+ outputs: TransactionOutput[];
31
+ inputIndex: number;
32
+ unlockingScript: UnlockingScript;
33
+ inputSequence: number;
34
+ lockTime: number;
35
+ context: 'UnlockingScript' | 'LockingScript';
36
+ programCounter: number;
37
+ lastCodeSeparator: number | null;
38
+ stack: number[][];
39
+ altStack: number[][];
40
+ ifStack: boolean[];
41
+ /**
42
+ * @constructor
43
+ * Constructs the Spend object with necessary transaction details.
44
+ * @param {string} params.sourceTXID - The transaction ID of the source UTXO.
45
+ * @param {number} params.sourceOutputIndex - The index of the output in the source transaction.
46
+ * @param {BigNumber} params.sourceSatoshis - The amount of satoshis in the source UTXO.
47
+ * @param {LockingScript} params.lockingScript - The locking script associated with the UTXO.
48
+ * @param {number} params.transactionVersion - The version of the current transaction.
49
+ * @param {Array<{ sourceTXID: string, sourceOutputIndex: number, sequence: number }>} params.otherInputs -
50
+ * An array of other inputs in the transaction.
51
+ * @param {Array<{ satoshis: BigNumber, lockingScript: LockingScript }>} params.outputs -
52
+ * The outputs of the current transaction.
53
+ * @param {number} params.inputIndex - The index of this input in the current transaction.
54
+ * @param {UnlockingScript} params.unlockingScript - The unlocking script for this spend.
55
+ * @param {number} params.inputSequence - The sequence number of this input.
56
+ * @param {number} params.lockTime - The lock time of the transaction.
57
+ *
58
+ * @example
59
+ * const spend = new Spend({
60
+ * sourceTXID: "abcd1234", // sourceTXID
61
+ * sourceOutputIndex: 0, // sourceOutputIndex
62
+ * sourceSatoshis: new BigNumber(1000), // sourceSatoshis
63
+ * lockingScript: LockingScript.fromASM("OP_DUP OP_HASH160 abcd1234... OP_EQUALVERIFY OP_CHECKSIG"),
64
+ * transactionVersion: 1, // transactionVersion
65
+ * otherInputs: [{ sourceTXID: "abcd1234", sourceOutputIndex: 1, sequence: 0xffffffff }], // otherInputs
66
+ * outputs: [{ satoshis: new BigNumber(500), lockingScript: LockingScript.fromASM("OP_DUP...") }], // outputs
67
+ * inputIndex: 0, // inputIndex
68
+ * unlockingScript: UnlockingScript.fromASM("3045... 02ab..."),
69
+ * inputSequence: 0xffffffff // inputSequence
70
+ * });
71
+ */
72
+ constructor(params: {
73
+ sourceTXID: string;
74
+ sourceOutputIndex: number;
75
+ sourceSatoshis: number;
76
+ lockingScript: LockingScript;
77
+ transactionVersion: number;
78
+ otherInputs: TransactionInput[];
79
+ outputs: TransactionOutput[];
80
+ unlockingScript: UnlockingScript;
81
+ inputSequence: number;
82
+ inputIndex: number;
83
+ lockTime: number;
84
+ });
85
+ reset(): void;
86
+ step(): void;
87
+ /**
88
+ * @method validate
89
+ * Validates the spend action by interpreting the locking and unlocking scripts.
90
+ * @returns {boolean} Returns true if the scripts are valid and the spend is legitimate, otherwise false.
91
+ * @example
92
+ * if (spend.validate()) {
93
+ * console.log("Spend is valid!");
94
+ * } else {
95
+ * console.log("Invalid spend!");
96
+ * }
97
+ */
98
+ validate(): boolean;
99
+ private stacktop;
100
+ private castToBool;
101
+ private scriptEvaluationError;
102
+ }
103
+ //# sourceMappingURL=Spend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spend.d.ts","sourceRoot":"","sources":["../../../../src/script/Spend.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAC9C,OAAO,eAAe,MAAM,sBAAsB,CAAA;AAUlD,OAAO,gBAAgB,MAAM,oCAAoC,CAAA;AACjE,OAAO,iBAAiB,MAAM,qCAAqC,CAAA;AAWnE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,aAAa,CAAA;IAC5B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAAA;IAC5C,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAA;IACpB,OAAO,EAAE,OAAO,EAAE,CAAA;IAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;gBACS,MAAM,EAAE;QAClB,UAAU,EAAE,MAAM,CAAA;QAClB,iBAAiB,EAAE,MAAM,CAAA;QACzB,cAAc,EAAE,MAAM,CAAA;QACtB,aAAa,EAAE,aAAa,CAAA;QAC5B,kBAAkB,EAAE,MAAM,CAAA;QAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAA;QAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAA;QAC5B,eAAe,EAAE,eAAe,CAAA;QAChC,aAAa,EAAE,MAAM,CAAA;QACrB,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,MAAM,CAAA;KACjB;IAeD,KAAK,IAAI,IAAI;IASb,IAAI,IAAI,IAAI;IA4qCZ;;;;;;;;;;OAUG;IACH,QAAQ,IAAI,OAAO;IAwBnB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,qBAAqB;CAG9B"}
@@ -0,0 +1,25 @@
1
+ import Script from './Script.js';
2
+ /**
3
+ * The UnlockingScript class represents an unlocking script in a Bitcoin SV transaction.
4
+ * It extends the Script class and is used specifically for input scripts that unlock funds.
5
+ *
6
+ * Inherits all properties and methods from the Script class.
7
+ *
8
+ * @extends {Script}
9
+ * @see {@link Script} for more information on Script.
10
+ */
11
+ export default class UnlockingScript extends Script {
12
+ /**
13
+ * @method isLockingScript
14
+ * Determines if the script is a locking script.
15
+ * @returns {boolean} Always returns false for an UnlockingScript instance.
16
+ */
17
+ isLockingScript(): boolean;
18
+ /**
19
+ * @method isUnlockingScript
20
+ * Determines if the script is an unlocking script.
21
+ * @returns {boolean} Always returns true for an UnlockingScript instance.
22
+ */
23
+ isUnlockingScript(): boolean;
24
+ }
25
+ //# sourceMappingURL=UnlockingScript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnlockingScript.d.ts","sourceRoot":"","sources":["../../../../src/script/UnlockingScript.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAEhC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,MAAM;IACjD;;;;OAIG;IACH,eAAe,IAAK,OAAO;IAI3B;;;;OAIG;IACH,iBAAiB,IAAK,OAAO;CAG9B"}
@@ -0,0 +1,8 @@
1
+ export { default as OP } from './OP.js';
2
+ export { default as Script } from './Script.js';
3
+ export { default as LockingScript } from './LockingScript.js';
4
+ export { default as UnlockingScript } from './UnlockingScript.js';
5
+ export { default as Spend } from './Spend.js';
6
+ export type { default as ScriptTemplate } from './ScriptTemplate.js';
7
+ export * from './templates/index.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/script/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,YAAY,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpE,cAAc,sBAAsB,CAAA"}
@@ -0,0 +1,37 @@
1
+ import ScriptTemplate from '../ScriptTemplate.js';
2
+ import LockingScript from '../LockingScript.js';
3
+ import UnlockingScript from '../UnlockingScript.js';
4
+ import Transaction from '../../transaction/Transaction.js';
5
+ import PrivateKey from '../../primitives/PrivateKey.js';
6
+ /**
7
+ * P2PKH (Pay To Public Key Hash) class implementing ScriptTemplate.
8
+ *
9
+ * This class provides methods to create Pay To Public Key Hash locking and unlocking scripts, including the unlocking of P2PKH UTXOs with the private key.
10
+ */
11
+ export default class P2PKH implements ScriptTemplate {
12
+ /**
13
+ * Creates a P2PKH locking script for a given public key hash.
14
+ *
15
+ * @param {number[]} pubkeyhash - An array representing the public key hash.
16
+ * @returns {LockingScript} - A P2PKH locking script.
17
+ */
18
+ lock(pubkeyhash: number[]): LockingScript;
19
+ /**
20
+ * Creates a function that generates a P2PKH unlocking script along with its signature and length estimation.
21
+ *
22
+ * The returned object contains:
23
+ * 1. `sign` - A function that, when invoked with a transaction and an input index,
24
+ * produces an unlocking script suitable for a P2PKH locked output.
25
+ * 2. `estimateLength` - A function that returns the estimated length of the unlocking script in bytes.
26
+ *
27
+ * @param {PrivateKey} privateKey - The private key used for signing the transaction.
28
+ * @param {'all'|'none'|'single'} signOutputs - The signature scope for outputs.
29
+ * @param {boolean} anyoneCanPay - Flag indicating if the signature allows for other inputs to be added later.
30
+ * @returns {Object} - An object containing the `sign` and `estimateLength` functions.
31
+ */
32
+ unlock(privateKey: PrivateKey, signOutputs?: 'all' | 'none' | 'single', anyoneCanPay?: boolean): {
33
+ sign: (tx: Transaction, inputIndex: number) => Promise<UnlockingScript>;
34
+ estimateLength: () => Promise<106>;
35
+ };
36
+ }
37
+ //# sourceMappingURL=P2PKH.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"P2PKH.d.ts","sourceRoot":"","sources":["../../../../../src/script/templates/P2PKH.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,sBAAsB,CAAA;AACjD,OAAO,aAAa,MAAM,qBAAqB,CAAA;AAC/C,OAAO,eAAe,MAAM,uBAAuB,CAAA;AACnD,OAAO,WAAW,MAAM,kCAAkC,CAAA;AAC1D,OAAO,UAAU,MAAM,gCAAgC,CAAA;AAIvD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,YAAW,cAAc;IAClD;;;;;OAKG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,aAAa;IAUzC;;;;;;;;;;;;OAYG;IACH,MAAM,CACJ,UAAU,EAAE,UAAU,EACtB,WAAW,GAAE,KAAK,GAAG,MAAM,GAAG,QAAgB,EAC9C,YAAY,GAAE,OAAe,GAC5B;QACD,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;QACvE,cAAc,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;KACnC;CAyDF"}
@@ -0,0 +1,47 @@
1
+ import ScriptTemplate from '../ScriptTemplate.js';
2
+ import LockingScript from '../LockingScript.js';
3
+ import UnlockingScript from '../UnlockingScript.js';
4
+ import Transaction from '../../transaction/Transaction.js';
5
+ import PrivateKey from '../../primitives/PrivateKey.js';
6
+ import BigNumber from '../../primitives/BigNumber.js';
7
+ /**
8
+ * RPuzzle class implementing ScriptTemplate.
9
+ *
10
+ * This class provides methods to create R Puzzle and R Puzzle Hash locking and unlocking scripts, including the unlocking of UTXOs with the correct K value.
11
+ */
12
+ export default class RPuzzle implements ScriptTemplate {
13
+ type: 'raw' | 'SHA1' | 'SHA256' | 'HASH256' | 'RIPEMD160' | 'HASH160';
14
+ /**
15
+ * @constructor
16
+ * Constructs an R Puzzle template instance for a given puzzle type
17
+ *
18
+ * @param {'raw'|'SHA1'|'SHA256'|'HASH256'|'RIPEMD160'|'HASH160'} type Denotes the type of puzzle to create
19
+ */
20
+ constructor(type?: 'raw' | 'SHA1' | 'SHA256' | 'HASH256' | 'RIPEMD160' | 'HASH160');
21
+ /**
22
+ * Creates an R puzzle locking script for a given R value or R value hash.
23
+ *
24
+ * @param {number[]} value - An array representing the R value or its hash.
25
+ * @returns {LockingScript} - An R puzzle locking script.
26
+ */
27
+ lock(value: number[]): LockingScript;
28
+ /**
29
+ * Creates a function that generates an R puzzle unlocking script along with its signature and length estimation.
30
+ *
31
+ * The returned object contains:
32
+ * 1. `sign` - A function that, when invoked with a transaction and an input index,
33
+ * produces an unlocking script suitable for an R puzzle locked output.
34
+ * 2. `estimateLength` - A function that returns the estimated length of the unlocking script in bytes.
35
+ *
36
+ * @param {BigNumber} k — The K-value used to unlock the R-puzzle.
37
+ * @param {PrivateKey} privateKey - The private key used for signing the transaction. If not provided, a random key will be generated.
38
+ * @param {'all'|'none'|'single'} signOutputs - The signature scope for outputs.
39
+ * @param {boolean} anyoneCanPay - Flag indicating if the signature allows for other inputs to be added later.
40
+ * @returns {Object} - An object containing the `sign` and `estimateLength` functions.
41
+ */
42
+ unlock(k: BigNumber, privateKey: PrivateKey, signOutputs?: 'all' | 'none' | 'single', anyoneCanPay?: boolean): {
43
+ sign: (tx: Transaction, inputIndex: number) => Promise<UnlockingScript>;
44
+ estimateLength: () => Promise<106>;
45
+ };
46
+ }
47
+ //# sourceMappingURL=RPuzzle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RPuzzle.d.ts","sourceRoot":"","sources":["../../../../../src/script/templates/RPuzzle.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,sBAAsB,CAAA;AACjD,OAAO,aAAa,MAAM,qBAAqB,CAAA;AAC/C,OAAO,eAAe,MAAM,uBAAuB,CAAA;AACnD,OAAO,WAAW,MAAM,kCAAkC,CAAA;AAC1D,OAAO,UAAU,MAAM,gCAAgC,CAAA;AAIvD,OAAO,SAAS,MAAM,+BAA+B,CAAA;AAErD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,YAAW,cAAc;IACpD,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAQ;IAE7E;;;;;OAKG;gBACU,IAAI,GAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAiB;IAI1F;;;;;OAKG;IACH,IAAI,CAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa;IAuBrC;;;;;;;;;;;;;OAaG;IACH,MAAM,CACJ,CAAC,EAAE,SAAS,EACZ,UAAU,EAAE,UAAU,EACtB,WAAW,GAAE,KAAK,GAAG,MAAM,GAAG,QAAgB,EAC9C,YAAY,GAAE,OAAe,GAC5B;QACC,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;QACvE,cAAc,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;KACnC;CA2DJ"}
@@ -0,0 +1,3 @@
1
+ export { default as P2PKH } from './P2PKH.js';
2
+ export { default as RPuzzle } from './RPuzzle.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/script/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAA"}