@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,308 @@
1
+ import BigNumber from './BigNumber.js';
2
+ import Mersenne from './Mersenne.js';
3
+ /**
4
+ * A base reduction engine that provides several arithmetic operations over
5
+ * big numbers under a modulus context. It's particularly suitable for
6
+ * calculations required in cryptography algorithms and encoding schemas.
7
+ *
8
+ * @class ReductionContext
9
+ *
10
+ * @property prime - The prime number utilised in the reduction context, typically an instance of Mersenne class.
11
+ * @property m - The modulus used for reduction operations.
12
+ */
13
+ export default class ReductionContext {
14
+ prime: Mersenne | null;
15
+ m: BigNumber;
16
+ /**
17
+ * Constructs a new ReductionContext.
18
+ *
19
+ * @constructor
20
+ * @param m - A BigNumber representing the modulus, or 'k256' to create a context for Koblitz curve.
21
+ *
22
+ * @example
23
+ * new ReductionContext(new BigNumber(11));
24
+ * new ReductionContext('k256');
25
+ */
26
+ constructor(m: BigNumber | 'k256');
27
+ /**
28
+ * Asserts that given value is truthy. Throws an Error with a provided message
29
+ * if the value is falsy.
30
+ *
31
+ * @private
32
+ * @param val - The value to be checked.
33
+ * @param msg - The error message to be thrown if the value is falsy.
34
+ *
35
+ * @example
36
+ * this.assert(1 < 2, '1 is not less than 2');
37
+ * this.assert(2 < 1, '2 is less than 1'); // throws an Error with message '2 is less than 1'
38
+ */
39
+ private assert;
40
+ /**
41
+ * Verifies that a BigNumber is positive and red. Throws an error if these
42
+ * conditions are not met.
43
+ *
44
+ * @param a - The BigNumber to be verified.
45
+ *
46
+ * @example
47
+ * this.verify1(new BigNumber(10).toRed());
48
+ * this.verify1(new BigNumber(-10).toRed()); //throws an Error
49
+ * this.verify1(new BigNumber(10)); //throws an Error
50
+ */
51
+ verify1(a: BigNumber): void;
52
+ /**
53
+ * Verifies that two BigNumbers are both positive and red. Also checks
54
+ * that they have the same reduction context. Throws an error if these
55
+ * conditions are not met.
56
+ *
57
+ * @param a - The first BigNumber to be verified.
58
+ * @param b - The second BigNumber to be verified.
59
+ *
60
+ * @example
61
+ * this.verify2(new BigNumber(10).toRed(this), new BigNumber(20).toRed(this));
62
+ * this.verify2(new BigNumber(-10).toRed(this), new BigNumber(20).toRed(this)); //throws an Error
63
+ * this.verify2(new BigNumber(10).toRed(this), new BigNumber(20)); //throws an Error
64
+ */
65
+ verify2(a: BigNumber, b: BigNumber): void;
66
+ /**
67
+ * Performs an in-place reduction of the given BigNumber by the modulus of the reduction context, 'm'.
68
+ *
69
+ * @method imod
70
+ *
71
+ * @param a - BigNumber to be reduced.
72
+ *
73
+ * @returns Returns the reduced result.
74
+ *
75
+ * @example
76
+ * const context = new ReductionContext(new BigNumber(7));
77
+ * context.imod(new BigNumber(19)); // Returns 5
78
+ */
79
+ imod(a: BigNumber): BigNumber;
80
+ /**
81
+ * Negates a BigNumber in the context of the modulus.
82
+ *
83
+ * @method neg
84
+ *
85
+ * @param a - BigNumber to negate.
86
+ *
87
+ * @returns Returns the negation of 'a' in the reduction context.
88
+ *
89
+ * @example
90
+ * const context = new ReductionContext(new BigNumber(7));
91
+ * context.neg(new BigNumber(3)); // Returns 4
92
+ */
93
+ neg(a: BigNumber): BigNumber;
94
+ /**
95
+ * Performs the addition operation on two BigNumbers in the reduction context.
96
+ *
97
+ * @method add
98
+ *
99
+ * @param a - First BigNumber to add.
100
+ * @param b - Second BigNumber to add.
101
+ *
102
+ * @returns Returns the result of 'a + b' in the reduction context.
103
+ *
104
+ * @example
105
+ * const context = new ReductionContext(new BigNumber(5));
106
+ * context.add(new BigNumber(2), new BigNumber(4)); // Returns 1
107
+ */
108
+ add(a: BigNumber, b: BigNumber): BigNumber;
109
+ /**
110
+ * Performs an in-place addition operation on two BigNumbers in the reduction context
111
+ * in order to avoid creating a new BigNumber, it modifies the first one with the result.
112
+ *
113
+ * @method iadd
114
+ *
115
+ * @param a - First BigNumber to add.
116
+ * @param b - Second BigNumber to add.
117
+ *
118
+ * @returns Returns the modified 'a' after addition with 'b' in the reduction context.
119
+ *
120
+ * @example
121
+ * const context = new ReductionContext(new BigNumber(5));
122
+ * const a = new BigNumber(2);
123
+ * context.iadd(a, new BigNumber(4)); // Modifies 'a' to be 1
124
+ */
125
+ iadd(a: BigNumber, b: BigNumber): BigNumber;
126
+ /**
127
+ * Subtracts one BigNumber from another BigNumber in the reduction context.
128
+ *
129
+ * @method sub
130
+ *
131
+ * @param a - BigNumber to be subtracted from.
132
+ * @param b - BigNumber to subtract.
133
+ *
134
+ * @returns Returns the result of 'a - b' in the reduction context.
135
+ *
136
+ * @example
137
+ * const context = new ReductionContext(new BigNumber(7));
138
+ * context.sub(new BigNumber(3), new BigNumber(2)); // Returns 1
139
+ */
140
+ sub(a: BigNumber, b: BigNumber): BigNumber;
141
+ /**
142
+ * Performs in-place subtraction of one BigNumber from another in the reduction context,
143
+ * it modifies the first BigNumber with the result.
144
+ *
145
+ * @method isub
146
+ *
147
+ * @param a - BigNumber to be subtracted from.
148
+ * @param b - BigNumber to subtract.
149
+ *
150
+ * @returns Returns the modified 'a' after subtraction of 'b' in the reduction context.
151
+ *
152
+ * @example
153
+ * const context = new ReductionContext(new BigNumber(5));
154
+ * const a = new BigNumber(4);
155
+ * context.isub(a, new BigNumber(2)); // Modifies 'a' to be 2
156
+ */
157
+ isub(a: BigNumber, b: BigNumber): BigNumber;
158
+ /**
159
+ * Performs bitwise shift left operation on a BigNumber in the reduction context.
160
+ *
161
+ * @method shl
162
+ *
163
+ * @param a - BigNumber to perform shift on.
164
+ * @param num - The number of positions to shift.
165
+ *
166
+ * @returns Returns the result of shifting 'a' left by 'num' positions in the reduction context.
167
+ *
168
+ * @example
169
+ * const context = new ReductionContext(new BigNumber(32));
170
+ * context.shl(new BigNumber(4), 2); // Returns 16
171
+ */
172
+ shl(a: BigNumber, num: number): BigNumber;
173
+ /**
174
+ * Performs in-place multiplication of two BigNumbers in the reduction context,
175
+ * modifying the first BigNumber with the result.
176
+ *
177
+ * @method imul
178
+ *
179
+ * @param a - First BigNumber to multiply.
180
+ * @param b - Second BigNumber to multiply.
181
+ *
182
+ * @returns Returns the modified 'a' after multiplication with 'b' in the reduction context.
183
+ *
184
+ * @example
185
+ * const context = new ReductionContext(new BigNumber(7));
186
+ * const a = new BigNumber(3);
187
+ * context.imul(a, new BigNumber(2)); // Modifies 'a' to be 6
188
+ */
189
+ imul(a: BigNumber, b: BigNumber): BigNumber;
190
+ /**
191
+ * Multiplies two BigNumbers in the reduction context.
192
+ *
193
+ * @method mul
194
+ *
195
+ * @param a - First BigNumber to multiply.
196
+ * @param b - Second BigNumber to multiply.
197
+ *
198
+ * @returns Returns the result of 'a * b' in the reduction context.
199
+ *
200
+ * @example
201
+ * const context = new ReductionContext(new BigNumber(7));
202
+ * context.mul(new BigNumber(3), new BigNumber(2)); // Returns 6
203
+ */
204
+ mul(a: BigNumber, b: BigNumber): BigNumber;
205
+ /**
206
+ * Calculates the square of a BigNumber in the reduction context,
207
+ * modifying the original BigNumber with the result.
208
+ *
209
+ * @method isqr
210
+ *
211
+ * @param a - BigNumber to be squared.
212
+ *
213
+ * @returns Returns the squared 'a' in the reduction context.
214
+ *
215
+ * @example
216
+ * const context = new ReductionContext(new BigNumber(7));
217
+ * const a = new BigNumber(3);
218
+ * context.isqr(a); // Modifies 'a' to be 2 (9 % 7 = 2)
219
+ */
220
+ isqr(a: BigNumber): BigNumber;
221
+ /**
222
+ * Calculates the square of a BigNumber in the reduction context.
223
+ *
224
+ * @method sqr
225
+ *
226
+ * @param a - BigNumber to be squared.
227
+ *
228
+ * @returns Returns the result of 'a^2' in the reduction context.
229
+ *
230
+ * @example
231
+ * const context = new ReductionContext(new BigNumber(7));
232
+ * context.sqr(new BigNumber(3)); // Returns 2 (9 % 7 = 2)
233
+ */
234
+ sqr(a: BigNumber): BigNumber;
235
+ /**
236
+ * Calculates the square root of a BigNumber in the reduction context.
237
+ *
238
+ * @method sqrt
239
+ *
240
+ * @param a - The BigNumber to calculate the square root of.
241
+ *
242
+ * @returns Returns the square root of 'a' in the reduction context.
243
+ *
244
+ * @example
245
+ * const context = new ReductionContext(new BigNumber(9));
246
+ * context.sqrt(new BigNumber(4)); // Returns 2
247
+ */
248
+ sqrt(a: BigNumber): BigNumber;
249
+ /**
250
+ * Calculates the multiplicative inverse of a BigNumber in the reduction context.
251
+ *
252
+ * @method invm
253
+ *
254
+ * @param a - The BigNumber to find the multiplicative inverse of.
255
+ *
256
+ * @returns Returns the multiplicative inverse of 'a' in the reduction context.
257
+ *
258
+ * @example
259
+ * const context = new ReductionContext(new BigNumber(11));
260
+ * context.invm(new BigNumber(3)); // Returns 4 (3*4 mod 11 = 1)
261
+ */
262
+ invm(a: BigNumber): BigNumber;
263
+ /**
264
+ * Raises a BigNumber to a power in the reduction context.
265
+ *
266
+ * @method pow
267
+ *
268
+ * @param a - The BigNumber to be raised to a power.
269
+ * @param num - The power to raise the BigNumber to.
270
+ *
271
+ * @returns Returns the result of 'a' raised to the power of 'num' in the reduction context.
272
+ *
273
+ * @example
274
+ * const context = new ReductionContext(new BigNumber(7));
275
+ * context.pow(new BigNumber(3), new BigNumber(2)); // Returns 2 (3^2 % 7)
276
+ */
277
+ pow(a: BigNumber, num: BigNumber): BigNumber;
278
+ /**
279
+ * Converts a BigNumber to its equivalent in the reduction context.
280
+ *
281
+ * @method convertTo
282
+ *
283
+ * @param num - The BigNumber to convert to the reduction context.
284
+ *
285
+ * @returns Returns the converted BigNumber compatible with the reduction context.
286
+ *
287
+ * @example
288
+ * const context = new ReductionContext(new BigNumber(7));
289
+ * context.convertTo(new BigNumber(8)); // Returns 1 (8 % 7)
290
+ */
291
+ convertTo(num: BigNumber): BigNumber;
292
+ /**
293
+ * Converts a BigNumber from reduction context to its regular form.
294
+ *
295
+ * @method convertFrom
296
+ *
297
+ * @param num - The BigNumber to convert from the reduction context.
298
+ *
299
+ * @returns Returns the converted BigNumber in its regular form.
300
+ *
301
+ * @example
302
+ * const context = new ReductionContext(new BigNumber(7));
303
+ * const a = context.convertTo(new BigNumber(8)); // 'a' is now 1 in the reduction context
304
+ * context.convertFrom(a); // Returns 1
305
+ */
306
+ convertFrom(num: BigNumber): BigNumber;
307
+ }
308
+ //# sourceMappingURL=ReductionContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReductionContext.d.ts","sourceRoot":"","sources":["../../../../src/primitives/ReductionContext.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAEtC,OAAO,QAAQ,MAAM,eAAe,CAAA;AAEpC;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAA;IACtB,CAAC,EAAE,SAAS,CAAA;IAEZ;;;;;;;;;OASG;gBACU,CAAC,EAAE,SAAS,GAAG,MAAM;IAYlC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM;IAId;;;;;;;;;;OAUG;IACH,OAAO,CAAE,CAAC,EAAE,SAAS,GAAG,IAAI;IAK5B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,IAAI;IAW1C;;;;;;;;;;;;OAYG;IACH,IAAI,CAAE,CAAC,EAAE,SAAS,GAAG,SAAS;IAO9B;;;;;;;;;;;;OAYG;IACH,GAAG,CAAE,CAAC,EAAE,SAAS,GAAG,SAAS;IAQ7B;;;;;;;;;;;;;OAaG;IACH,GAAG,CAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS;IAU3C;;;;;;;;;;;;;;;OAeG;IACH,IAAI,CAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS;IAU5C;;;;;;;;;;;;;OAaG;IACH,GAAG,CAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS;IAU3C;;;;;;;;;;;;;;;OAeG;IACH,IAAI,CAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS;IAU5C;;;;;;;;;;;;;OAaG;IACH,GAAG,CAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS;IAK1C;;;;;;;;;;;;;;;OAeG;IACH,IAAI,CAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS;IAK5C;;;;;;;;;;;;;OAaG;IACH,GAAG,CAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS;IAK3C;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAE,CAAC,EAAE,SAAS,GAAG,SAAS;IAI9B;;;;;;;;;;;;OAYG;IACH,GAAG,CAAE,CAAC,EAAE,SAAS,GAAG,SAAS;IAI7B;;;;;;;;;;;;OAYG;IACH,IAAI,CAAE,CAAC,EAAE,SAAS,GAAG,SAAS;IA0D9B;;;;;;;;;;;;OAYG;IACH,IAAI,CAAE,CAAC,EAAE,SAAS,GAAG,SAAS;IAU9B;;;;;;;;;;;;;OAaG;IACH,GAAG,CAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,SAAS;IAiD7C;;;;;;;;;;;;OAYG;IACH,SAAS,CAAE,GAAG,EAAE,SAAS,GAAG,SAAS;IAMrC;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAE,GAAG,EAAE,SAAS,GAAG,SAAS;CAKxC"}
@@ -0,0 +1,100 @@
1
+ import BigNumber from './BigNumber.js';
2
+ import PublicKey from './PublicKey.js';
3
+ /**
4
+ * Represents a digital signature.
5
+ *
6
+ * A digital signature is a mathematical scheme for verifying the authenticity of
7
+ * digital messages or documents. In many scenarios, it is equivalent to a handwritten signature or stamped seal.
8
+ * The signature pair (R, S) corresponds to the raw ECDSA ([Elliptic Curve Digital Signature Algorithm](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm)) signature.
9
+ * Signatures are often serialized into a format known as '[DER encoding](https://en.wikipedia.org/wiki/X.690#DER_encoding)' for transmission.
10
+ *
11
+ * @class Signature
12
+ */
13
+ export default class Signature {
14
+ /**
15
+ * @property Represents the "r" component of the digital signature
16
+ */
17
+ r: BigNumber;
18
+ /**
19
+ * @property Represents the "s" component of the digital signature
20
+ */
21
+ s: BigNumber;
22
+ /**
23
+ * Takes an array of numbers or a string and returns a new Signature instance.
24
+ * This method will throw an error if the DER encoding is invalid.
25
+ * If a string is provided, it is assumed to represent a hexadecimal sequence.
26
+ *
27
+ * @static
28
+ * @method fromDER
29
+ * @param data - The sequence to decode from DER encoding.
30
+ * @param enc - The encoding of the data string.
31
+ * @returns The decoded data in the form of Signature instance.
32
+ *
33
+ * @example
34
+ * const signature = Signature.fromDER('30440220018c1f5502f8...', 'hex');
35
+ */
36
+ static fromDER(data: number[] | string, enc?: 'hex' | 'base64'): Signature;
37
+ /**
38
+ * Creates an instance of the Signature class.
39
+ *
40
+ * @constructor
41
+ * @param r - The R component of the signature.
42
+ * @param s - The S component of the signature.
43
+ *
44
+ * @example
45
+ * const r = new BigNumber('208755674028...');
46
+ * const s = new BigNumber('564745627577...');
47
+ * const signature = new Signature(r, s);
48
+ */
49
+ constructor(r: BigNumber, s: BigNumber);
50
+ /**
51
+ * Verifies a digital signature.
52
+ *
53
+ * This method will return true if the signature, key, and message hash match.
54
+ * If the data or key do not match the signature, the function returns false.
55
+ *
56
+ * @method verify
57
+ * @param msg - The message to verify.
58
+ * @param key - The public key used to sign the original message.
59
+ * @param enc - The encoding of the msg string.
60
+ * @returns A boolean representing whether the signature is valid.
61
+ *
62
+ * @example
63
+ * const msg = 'The quick brown fox jumps over the lazy dog';
64
+ * const publicKey = PublicKey.fromString('04188ca1050...');
65
+ * const isVerified = signature.verify(msg, publicKey);
66
+ */
67
+ verify(msg: number[] | string, key: PublicKey, enc?: 'hex'): boolean;
68
+ /**
69
+ * Converts an instance of Signature into DER encoding.
70
+ * An alias for the toDER method.
71
+ *
72
+ * If the encoding parameter is set to 'hex', the function will return a hex string.
73
+ * If 'base64', it will return a base64 string.
74
+ * Otherwise, it will return an array of numbers.
75
+ *
76
+ * @method toDER
77
+ * @param enc - The encoding to use for the output.
78
+ * @returns The current instance in DER encoding.
79
+ *
80
+ * @example
81
+ * const der = signature.toString('base64');
82
+ */
83
+ toString(enc?: 'hex' | 'base64'): string | number[];
84
+ /**
85
+ * Converts an instance of Signature into DER encoding.
86
+ *
87
+ * If the encoding parameter is set to 'hex', the function will return a hex string.
88
+ * If 'base64', it will return a base64 string.
89
+ * Otherwise, it will return an array of numbers.
90
+ *
91
+ * @method toDER
92
+ * @param enc - The encoding to use for the output.
93
+ * @returns The current instance in DER encoding.
94
+ *
95
+ * @example
96
+ * const der = signature.toDER('hex');
97
+ */
98
+ toDER(enc?: 'hex' | 'base64'): number[] | string;
99
+ }
100
+ //# sourceMappingURL=Signature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Signature.d.ts","sourceRoot":"","sources":["../../../../src/primitives/Signature.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAKtC;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAC5B;;OAEG;IACH,CAAC,EAAE,SAAS,CAAA;IAEZ;;OAEG;IACH,CAAC,EAAE,SAAS,CAAA;IAEZ;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS;IAqE1E;;;;;;;;;;;OAWG;gBACS,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS;IAKtC;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO;IAKpE;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ;IAI/B;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,EAAE,GAAG,MAAM;CAoDjD"}
@@ -0,0 +1,44 @@
1
+ import BigNumber from './BigNumber.js';
2
+ /**
3
+ * `SymmetricKey` is a class that extends the `BigNumber` class and implements symmetric encryption and decryption methods.
4
+ * Symmetric-Key encryption is a form of encryption where the same key is used to encrypt and decrypt the message.
5
+ * It leverages the Advanced Encryption Standard Galois/Counter Mode (AES-GCM) for encryption and decryption of messages.
6
+ *
7
+ * @class SymmetricKey
8
+ * @extends {BigNumber}
9
+ */
10
+ export default class SymmetricKey extends BigNumber {
11
+ /**
12
+ * Encrypts a given message using AES-GCM encryption.
13
+ * The generated Initialization Vector (IV) is attached to the encrypted message for decryption purposes.
14
+ * The OpenSSL format of |IV|encryptedContent|authTag| is used.
15
+ *
16
+ * @method encrypt
17
+ * @param msg - The message to be encrypted. It can be a string or an array of numbers.
18
+ * @param enc - optional. The encoding of the message. If hex, the string is assumed to be hex, UTF-8 otherwise.
19
+ * @returns Returns the encrypted message as a string or an array of numbers, depending on `enc` argument.
20
+ *
21
+ * @example
22
+ * const key = new SymmetricKey(1234);
23
+ * const encryptedMessage = key.encrypt('plainText', 'utf8');
24
+ */
25
+ encrypt(msg: number[] | string, enc?: 'hex'): string | number[];
26
+ /**
27
+ * Decrypts a given AES-GCM encrypted message using the same key that was used for encryption.
28
+ * The method extracts the IV and the authentication tag from the encrypted message, then attempts to decrypt it.
29
+ * If the decryption fails (e.g., due to message tampering), an error is thrown.
30
+ *
31
+ * @method decrypt
32
+ * @param msg - The encrypted message to be decrypted. It can be a string or an array of numbers.
33
+ * @param enc - optional. The encoding of the message (if no encoding is provided, uses utf8 for strings, unless specified as hex).
34
+ * @returns Returns the decrypted message as a string or an array of numbers, depending on `enc` argument. If absent, an array of numbers is returned.
35
+ *
36
+ * @example
37
+ * const key = new SymmetricKey(1234);
38
+ * const decryptedMessage = key.decrypt(encryptedMessage, 'utf8');
39
+ *
40
+ * @throws {Error} Will throw an error if the decryption fails, likely due to message tampering or incorrect decryption key.
41
+ */
42
+ decrypt(msg: number[] | string, enc?: 'hex' | 'utf8'): string | number[];
43
+ }
44
+ //# sourceMappingURL=SymmetricKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SymmetricKey.d.ts","sourceRoot":"","sources":["../../../../src/primitives/SymmetricKey.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAKtC;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS;IACjD;;;;;;;;;;;;;MAaE;IACF,OAAO,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,EAAE;IAYhE;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE;CAkB1E"}
@@ -0,0 +1,36 @@
1
+ import Signature from './Signature.js';
2
+ import BigNumber from './BigNumber.js';
3
+ import Script from '../script/Script.js';
4
+ import TransactionInput from '../transaction/TransactionInput.js';
5
+ import TransactionOutput from '../transaction/TransactionOutput.js';
6
+ export default class TransactionSignature extends Signature {
7
+ static readonly SIGHASH_ALL = 1;
8
+ static readonly SIGHASH_NONE = 2;
9
+ static readonly SIGHASH_SINGLE = 3;
10
+ static readonly SIGHASH_FORKID = 64;
11
+ static readonly SIGHASH_ANYONECANPAY = 128;
12
+ scope: number;
13
+ static format(params: {
14
+ sourceTXID: string;
15
+ sourceOutputIndex: number;
16
+ sourceSatoshis: number;
17
+ transactionVersion: number;
18
+ otherInputs: TransactionInput[];
19
+ outputs: TransactionOutput[];
20
+ inputIndex: number;
21
+ subscript: Script;
22
+ inputSequence: number;
23
+ lockTime: number;
24
+ scope: number;
25
+ }): number[];
26
+ static fromChecksigFormat(buf: number[]): TransactionSignature;
27
+ constructor(r: BigNumber, s: BigNumber, scope: number);
28
+ /**
29
+ * Compares to bitcoind's IsLowDERSignature
30
+ * See also Ecdsa signature algorithm which enforces this.
31
+ * See also Bip 62, "low S values in signatures"
32
+ */
33
+ hasLowS(): boolean;
34
+ toChecksigFormat(): number[];
35
+ }
36
+ //# sourceMappingURL=TransactionSignature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionSignature.d.ts","sourceRoot":"","sources":["../../../../src/primitives/TransactionSignature.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAGtC,OAAO,MAAM,MAAM,qBAAqB,CAAA;AACxC,OAAO,gBAAgB,MAAM,oCAAoC,CAAA;AACjE,OAAO,iBAAiB,MAAM,qCAAqC,CAAA;AAEnE,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,SAAS;IACzD,gBAAuB,WAAW,KAAa;IAC/C,gBAAuB,YAAY,KAAa;IAChD,gBAAuB,cAAc,KAAa;IAClD,gBAAuB,cAAc,MAAa;IAClD,gBAAuB,oBAAoB,OAAa;IAExD,KAAK,EAAE,MAAM,CAAA;IAEb,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QACpB,UAAU,EAAE,MAAM,CAAA;QAClB,iBAAiB,EAAE,MAAM,CAAA;QACzB,cAAc,EAAE,MAAM,CAAA;QACtB,kBAAkB,EAAE,MAAM,CAAA;QAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAA;QAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAA;QAC5B,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;QACjB,aAAa,EAAE,MAAM,CAAA;QACrB,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;KACd,GAAG,MAAM,EAAE;IAuHZ,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,oBAAoB;gBAclD,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM;IAKrD;;;;SAIK;IACE,OAAO,IAAI,OAAO;IAYzB,gBAAgB,IAAI,MAAM,EAAE;CAI7B"}
@@ -0,0 +1,9 @@
1
+ export { default as BigNumber } from './BigNumber.js';
2
+ export { default as Point } from './Point.js';
3
+ export { default as PublicKey } from './PublicKey.js';
4
+ export { default as Signature } from './Signature.js';
5
+ export { default as PrivateKey } from './PrivateKey.js';
6
+ export { default as SymmetricKey } from './SymmetricKey.js';
7
+ export * as Hash from './Hash.js';
8
+ export { default as Random } from './Random.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/primitives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,118 @@
1
+ import BigNumber from './BigNumber.js';
2
+ /**
3
+ * Appends a '0' to a single-character word to ensure it has two characters.
4
+ * @param {string} word - The input word.
5
+ * @returns {string} - The word with a leading '0' if it's a single character; otherwise, the original word.
6
+ */
7
+ export declare const zero2: (word: string) => string;
8
+ /**
9
+ * Converts an array of numbers to a hexadecimal string representation.
10
+ * @param {number[]} msg - The input array of numbers.
11
+ * @returns {string} - The hexadecimal string representation of the input array.
12
+ */
13
+ export declare const toHex: (msg: number[]) => string;
14
+ /**
15
+ * Converts various message formats into an array of numbers.
16
+ * Supports arrays, hexadecimal strings, base64 strings, and UTF-8 strings.
17
+ *
18
+ * @param {any} msg - The input message (array or string).
19
+ * @param {('hex' | 'utf8')} enc - Specifies the string encoding, if applicable.
20
+ * @returns {any[]} - Array representation of the input.
21
+ */
22
+ export declare const toArray: (msg: any, enc?: 'hex' | 'utf8' | 'base64') => any[];
23
+ /**
24
+ * Encodes an array of numbers into a specified encoding ('hex' or 'utf8'). If no encoding is provided, returns the original array.
25
+ * @param {number[]} arr - The input array of numbers.
26
+ * @param {('hex' | 'utf8')} enc - The desired encoding.
27
+ * @returns {string | number[]} - The encoded message as a string (for 'hex' and 'utf8') or the original array.
28
+ */
29
+ export declare const encode: (arr: number[], enc?: 'hex' | 'utf8') => string | number[];
30
+ /**
31
+ * Converts an array of bytes (each between 0 and 255) into a base64 encoded string.
32
+ *
33
+ * @param {number[]} byteArray - An array of numbers where each number is a byte (0-255).
34
+ * @returns {string} The base64 encoded string.
35
+ *
36
+ * @example
37
+ * const bytes = [72, 101, 108, 108, 111]; // Represents the string "Hello"
38
+ * console.log(toBase64(bytes)); // Outputs: SGVsbG8=
39
+ */
40
+ export declare function toBase64(byteArray: number[]): string;
41
+ /**
42
+ * Converts a string from base58 to a binary array
43
+ * @param str - The string representation
44
+ * @returns The binary representation
45
+ */
46
+ export declare const fromBase58: (str: string) => number[];
47
+ /**
48
+ * Converts a binary array into a base58 string
49
+ * @param bin - The binary array to convert to base58
50
+ * @returns The base58 string representation
51
+ */
52
+ export declare const toBase58: (bin: number[]) => string;
53
+ /**
54
+ * Converts a binary array into a base58check string with a checksum
55
+ * @param bin - The binary array to convert to base58check
56
+ * @returns The base58check string representation
57
+ */
58
+ export declare const toBase58Check: (bin: number[], prefix?: number[]) => string;
59
+ /**
60
+ * Converts a base58check string into a binary array after validating the checksum
61
+ * @param str - The base58check string to convert to binary
62
+ * @param enc - If hex, the return values will be hex strings, arrays of numbers otherwise
63
+ * @param prefixLength - The length of the prefix. Optional, defaults to 1.
64
+ * @returns The binary array representation
65
+ */
66
+ export declare const fromBase58Check: (str: string, enc?: 'hex', prefixLength?: number) => {
67
+ prefix: string | number[];
68
+ data: string | number[];
69
+ };
70
+ export declare class Writer {
71
+ bufs: number[][];
72
+ constructor(bufs?: number[][]);
73
+ getLength(): number;
74
+ toArray(): number[];
75
+ write(buf: number[]): Writer;
76
+ writeReverse(buf: number[]): Writer;
77
+ writeUInt8(n: number): Writer;
78
+ writeInt8(n: number): Writer;
79
+ writeUInt16BE(n: number): Writer;
80
+ writeInt16BE(n: number): Writer;
81
+ writeUInt16LE(n: number): Writer;
82
+ writeInt16LE(n: number): Writer;
83
+ writeUInt32BE(n: number): Writer;
84
+ writeInt32BE(n: number): Writer;
85
+ writeUInt32LE(n: number): Writer;
86
+ writeInt32LE(n: number): Writer;
87
+ writeUInt64BEBn(bn: BigNumber): Writer;
88
+ writeUInt64LEBn(bn: BigNumber): Writer;
89
+ writeUInt64LE(n: number): Writer;
90
+ writeVarIntNum(n: number): Writer;
91
+ writeVarIntBn(bn: BigNumber): Writer;
92
+ static varIntNum(n: number): number[];
93
+ static varIntBn(bn: BigNumber): number[];
94
+ }
95
+ export declare class Reader {
96
+ bin: number[];
97
+ pos: number;
98
+ constructor(bin?: number[], pos?: number);
99
+ eof(): boolean;
100
+ read(len?: number): number[];
101
+ readReverse(len?: number): number[];
102
+ readUInt8(): number;
103
+ readInt8(): number;
104
+ readUInt16BE(): number;
105
+ readInt16BE(): number;
106
+ readUInt16LE(): number;
107
+ readInt16LE(): number;
108
+ readUInt32BE(): number;
109
+ readInt32BE(): number;
110
+ readUInt32LE(): number;
111
+ readInt32LE(): number;
112
+ readUInt64BEBn(): BigNumber;
113
+ readUInt64LEBn(): BigNumber;
114
+ readVarIntNum(): number;
115
+ readVarInt(): number[];
116
+ readVarIntBn(): BigNumber;
117
+ }
118
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/primitives/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAGtC;;;;GAIG;AACH,eAAO,MAAM,KAAK,SAAU,MAAM,KAAG,MAMpC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,KAAK,QAAS,MAAM,EAAE,KAAG,MAMrC,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,QAAS,GAAG,QAAQ,KAAK,GAAG,MAAM,GAAG,QAAQ,KAAG,GAAG,EAyDtE,CAAA;AA+CD;;;;;GAKG;AACH,eAAO,MAAM,MAAM,QAAS,MAAM,EAAE,QAAQ,KAAK,GAAG,MAAM,KAAG,MAAM,GAAG,MAAM,EAU3E,CAAA;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAqBpD;AAID;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,MAAM,EAmC9C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,QAAS,MAAM,EAAE,KAAG,MA4BxC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,QAAS,MAAM,EAAE,WAAU,MAAM,EAAE,WAI5D,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,QAAS,MAAM,QAAQ,KAAK,iBAAgB,MAAM;;;CAgB7E,CAAA;AAED,qBAAa,MAAM;IACV,IAAI,EAAE,MAAM,EAAE,EAAE,CAAA;gBAEX,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE;IAI7B,SAAS,IAAI,MAAM;IAQnB,OAAO,IAAI,MAAM,EAAE;IAQnB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM;IAK5B,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM;IASnC,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAO7B,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAO5B,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAQhC,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAI/B,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAQhC,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAI/B,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAUhC,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAI/B,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAUhC,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAI/B,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM;IAMtC,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM;IAMtC,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAMhC,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAMjC,aAAa,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM;IAMpC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAwCrC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,EAAE;CAsBzC;AAED,qBAAa,MAAM;IACV,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;gBAEN,GAAG,GAAE,MAAM,EAAO,EAAE,GAAG,GAAE,MAAU;IAKxC,GAAG,IAAI,OAAO;IAId,IAAI,CAAC,GAAG,SAAkB,GAAG,MAAM,EAAE;IAMrC,WAAW,CAAC,GAAG,SAAkB,GAAG,MAAM,EAAE;IAU5C,SAAS,IAAI,MAAM;IAMnB,QAAQ,IAAI,MAAM;IAOlB,YAAY,IAAI,MAAM;IAMtB,WAAW,IAAI,MAAM;IAMrB,YAAY,IAAI,MAAM;IAMtB,WAAW,IAAI,MAAM;IAOrB,YAAY,IAAI,MAAM;IAUtB,WAAW,IAAI,MAAM;IAMrB,YAAY,IAAI,MAAM;IAUtB,WAAW,IAAI,MAAM;IAMrB,cAAc,IAAI,SAAS;IAO3B,cAAc,IAAI,SAAS;IAM3B,aAAa,IAAI,MAAM;IAqBvB,UAAU,IAAI,MAAM,EAAE;IActB,YAAY,IAAI,SAAS;CAajC"}
@@ -0,0 +1,25 @@
1
+ import Script from './Script.js';
2
+ /**
3
+ * The LockingScript class represents a locking script in a Bitcoin SV transaction.
4
+ * It extends the Script class and is used specifically for output scripts that lock 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 LockingScript extends Script {
12
+ /**
13
+ * @method isLockingScript
14
+ * Determines if the script is a locking script.
15
+ * @returns {boolean} Always returns true for a LockingScript instance.
16
+ */
17
+ isLockingScript(): boolean;
18
+ /**
19
+ * @method isUnlockingScript
20
+ * Determines if the script is an unlocking script.
21
+ * @returns {boolean} Always returns false for a LockingScript instance.
22
+ */
23
+ isUnlockingScript(): boolean;
24
+ }
25
+ //# sourceMappingURL=LockingScript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LockingScript.d.ts","sourceRoot":"","sources":["../../../../src/script/LockingScript.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAEhC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,MAAM;IAC/C;;;;OAIG;IACH,eAAe,IAAK,OAAO;IAI3B;;;;OAIG;IACH,iBAAiB,IAAK,OAAO;CAG9B"}