@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 @@
1
+ {"version":3,"file":"BigNumber.d.ts","sourceRoot":"","sources":["../../../../src/primitives/BigNumber.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import BigNumber from './BigNumber.js';
2
+ import ReductionContext from './ReductionContext.js';
3
+ import Point from './Point.js';
4
+ export default class Curve {
5
+ p: BigNumber;
6
+ red: ReductionContext;
7
+ redN: BigNumber | null;
8
+ zero: BigNumber;
9
+ one: BigNumber;
10
+ two: BigNumber;
11
+ g: Point;
12
+ n: BigNumber;
13
+ a: BigNumber;
14
+ b: BigNumber;
15
+ tinv: BigNumber;
16
+ zeroA: boolean;
17
+ threeA: boolean;
18
+ endo: any;
19
+ _endoWnafT1: any[];
20
+ _endoWnafT2: any[];
21
+ _wnafT1: any[];
22
+ _wnafT2: any[];
23
+ _wnafT3: any[];
24
+ _wnafT4: any[];
25
+ _bitLength: number;
26
+ static assert(expression: unknown, message?: string): void;
27
+ getNAF(num: BigNumber, w: number, bits: number): number[];
28
+ getJSF(k1: BigNumber, k2: BigNumber): number[][];
29
+ static cachedProperty(obj: any, name: string, computer: any): void;
30
+ static parseBytes(bytes: string | number[]): number[];
31
+ static intFromLE(bytes: number[]): BigNumber;
32
+ constructor();
33
+ _getEndomorphism(conf: any): {
34
+ beta: BigNumber;
35
+ lambda: BigNumber;
36
+ basis: Array<{
37
+ a: BigNumber;
38
+ b: BigNumber;
39
+ }>;
40
+ } | undefined;
41
+ _getEndoRoots(num: BigNumber): [BigNumber, BigNumber];
42
+ _getEndoBasis(lambda: BigNumber): [{
43
+ a: BigNumber;
44
+ b: BigNumber;
45
+ }, {
46
+ a: BigNumber;
47
+ b: BigNumber;
48
+ }];
49
+ _endoSplit(k: BigNumber): {
50
+ k1: BigNumber;
51
+ k2: BigNumber;
52
+ };
53
+ validate(point: Point): boolean;
54
+ }
55
+ //# sourceMappingURL=Curve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Curve.d.ts","sourceRoot":"","sources":["../../../../src/primitives/Curve.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,gBAAgB,MAAM,uBAAuB,CAAA;AAEpD,OAAO,KAAK,MAAM,YAAY,CAAA;AAQ9B,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,CAAC,EAAE,SAAS,CAAA;IACZ,GAAG,EAAE,gBAAgB,CAAA;IACrB,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACtB,IAAI,EAAE,SAAS,CAAA;IACf,GAAG,EAAE,SAAS,CAAA;IACd,GAAG,EAAE,SAAS,CAAA;IACd,CAAC,EAAE,KAAK,CAAA;IACR,CAAC,EAAE,SAAS,CAAA;IACZ,CAAC,EAAE,SAAS,CAAA;IACZ,CAAC,EAAE,SAAS,CAAA;IACZ,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,GAAG,CAAA;IACT,WAAW,EAAE,GAAG,EAAE,CAAA;IAClB,WAAW,EAAE,GAAG,EAAE,CAAA;IAClB,OAAO,EAAE,GAAG,EAAE,CAAA;IACd,OAAO,EAAE,GAAG,EAAE,CAAA;IACd,OAAO,EAAE,GAAG,EAAE,CAAA;IACd,OAAO,EAAE,GAAG,EAAE,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAGlB,MAAM,CAAC,MAAM,CACX,UAAU,EAAE,OAAO,EACnB,OAAO,GAAE,MAA0C,GAClD,IAAI;IAMP,MAAM,CAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAyB1D,MAAM,CAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,GAAG,MAAM,EAAE,EAAE;IAgDjD,MAAM,CAAC,cAAc,CAAE,GAAG,KAAA,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,KAAA,GAAG,IAAI;IAUzD,MAAM,CAAC,UAAU,CAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE;IAMtD,MAAM,CAAC,SAAS,CAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS;;IAy1B7C,gBAAgB,CAAE,IAAI,KAAA,GAAG;QACvB,IAAI,EAAE,SAAS,CAAA;QACf,MAAM,EAAE,SAAS,CAAA;QACjB,KAAK,EAAE,KAAK,CAAC;YAAE,CAAC,EAAE,SAAS,CAAC;YAAC,CAAC,EAAE,SAAS,CAAA;SAAE,CAAC,CAAA;KAC7C,GAAG,SAAS;IAgDb,aAAa,CAAE,GAAG,EAAE,SAAS,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC;IAetD,aAAa,CAAE,MAAM,EAAE,SAAS,GAAG,CAAC;QAAE,CAAC,EAAE,SAAS,CAAC;QAAC,CAAC,EAAE,SAAS,CAAA;KAAE,EAAE;QAAE,CAAC,EAAE,SAAS,CAAC;QAAC,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IA4EnG,UAAU,CAAE,CAAC,EAAE,SAAS,GAAG;QAAE,EAAE,EAAE,SAAS,CAAC;QAAC,EAAE,EAAE,SAAS,CAAA;KAAE;IAmB3D,QAAQ,CAAE,KAAK,EAAE,KAAK,GAAG,OAAO;CAUjC"}
@@ -0,0 +1,54 @@
1
+ import { SHA256HMAC } from './Hash.js';
2
+ /**
3
+ * This class behaves as a HMAC-based deterministic random bit generator (DRBG). It implements a deterministic random number generator using SHA256HMAC HASH function. It takes an initial entropy and nonce when instantiated for seeding purpose.
4
+ * @class DRBG
5
+ *
6
+ * @constructor
7
+ * @param entropy - Initial entropy either in number array or hexadecimal string.
8
+ * @param nonce - Initial nonce either in number array or hexadecimal string.
9
+ *
10
+ * @throws Throws an error message 'Not enough entropy. Minimum is 256 bits' when entropy's length is less than 32.
11
+ *
12
+ * @example
13
+ * const drbg = new DRBG('af12de...', '123ef...');
14
+ */
15
+ export default class DRBG {
16
+ K: number[];
17
+ V: number[];
18
+ constructor(entropy: number[] | string, nonce: number[] | string);
19
+ /**
20
+ * Generates HMAC using the K value of the instance. This method is used internally for operations.
21
+ *
22
+ * @method hmac
23
+ * @returns The SHA256HMAC object created with K value.
24
+ *
25
+ * @example
26
+ * const hmac = drbg.hmac();
27
+ */
28
+ hmac(): SHA256HMAC;
29
+ /**
30
+ * Updates the `K` and `V` values of the instance based on the seed.
31
+ * The seed if not provided uses `V` as seed.
32
+ *
33
+ * @method update
34
+ * @param seed - an optional value that used to update `K` and `V`. Default is `undefined`.
35
+ * @returns Nothing, but updates the internal state `K` and `V` value.
36
+ *
37
+ * @example
38
+ * drbg.update('e13af...');
39
+ */
40
+ update(seed?: any): void;
41
+ /**
42
+ * Generates deterministic random hexadecimal string of given length.
43
+ * In every generation process, it also updates the internal state `K` and `V`.
44
+ *
45
+ * @method generate
46
+ * @param len - The length of required random number.
47
+ * @returns The required deterministic random hexadecimal string.
48
+ *
49
+ * @example
50
+ * const randomHex = drbg.generate(256);
51
+ */
52
+ generate(len: number): string;
53
+ }
54
+ //# sourceMappingURL=DRBG.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DRBG.d.ts","sourceRoot":"","sources":["../../../../src/primitives/DRBG.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAGtC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,CAAC,EAAE,MAAM,EAAE,CAAA;IACX,CAAC,EAAE,MAAM,EAAE,CAAA;gBAEE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAkBjE;;;;;;;;OAQG;IACH,IAAI,IAAK,UAAU;IAInB;;;;;;;;;;OAUG;IACH,MAAM,CAAE,IAAI,CAAC,KAAA,GAAG,IAAI;IAiBpB;;;;;;;;;;OAUG;IACH,QAAQ,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM;CAW/B"}
@@ -0,0 +1,39 @@
1
+ import BigNumber from './BigNumber.js';
2
+ import Signature from './Signature.js';
3
+ import Point from './Point.js';
4
+ /**
5
+ * Generates a digital signature for a given message.
6
+ *
7
+ * @function sign
8
+ * @param msg - The BigNumber message for which the signature has to be computed.
9
+ * @param key - Private key in BigNumber.
10
+ * @param forceLowS - Optional boolean flag if True forces "s" to be the lower of two possible values.
11
+ * @param customK - Optional specification for k value, which can be a function or BigNumber.
12
+ * @returns Returns the elliptic curve digital signature of the message.
13
+ *
14
+ * @example
15
+ * const msg = new BigNumber('2664878')
16
+ * const key = new BigNumber('123456')
17
+ * const signature = sign(msg, key)
18
+ */
19
+ export declare const sign: (msg: BigNumber, key: BigNumber, forceLowS?: boolean, customK?: BigNumber | Function) => Signature;
20
+ /**
21
+ * Verifies a digital signature of a given message.
22
+ *
23
+ * Message and key used during the signature generation process, and the previously computed signature
24
+ * are used to validate the authenticity of the digital signature.
25
+ *
26
+ * @function verify
27
+ * @param msg - The BigNumber message for which the signature has to be verified.
28
+ * @param sig - Signature object consisting of parameters 'r' and 's'.
29
+ * @param key - Public key in Point.
30
+ * @returns Returns true if the signature is valid and false otherwise.
31
+ *
32
+ * @example
33
+ * const msg = new BigNumber('2664878', 16)
34
+ * const key = new Point(new BigNumber(10), new BigNumber(20)
35
+ * const signature = sign(msg, new BigNumber('123456'))
36
+ * const isVerified = verify(msg, sig, key)
37
+ */
38
+ export declare const verify: (msg: BigNumber, sig: Signature, key: Point) => boolean;
39
+ //# sourceMappingURL=ECDSA.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ECDSA.d.ts","sourceRoot":"","sources":["../../../../src/primitives/ECDSA.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAEtC,OAAO,KAAK,MAAM,YAAY,CAAA;AAiC9B;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,IAAI,QAAS,SAAS,OAAO,SAAS,cAAa,OAAO,YAAoB,SAAS,GAAG,QAAQ,KAAG,SAqEjH,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,MAAM,QAAS,SAAS,OAAO,SAAS,OAAO,KAAK,KAAG,OAuBnE,CAAA"}
@@ -0,0 +1,411 @@
1
+ /**
2
+ * The BaseHash class is an abstract base class for cryptographic hash functions.
3
+ * It provides a common structure and functionality for hash function classes.
4
+ *
5
+ * @class BaseHash
6
+ *
7
+ * @property pending - Stores partially processed message segments.
8
+ * @property pendingTotal - The total number of characters that are being stored in `pending`
9
+ * @property blockSize - The size of each block to processed.
10
+ * @property outSize - The size of the final hash output.
11
+ * @property endian - The endianness used during processing, can either be 'big' or 'little'.
12
+ * @property _delta8 - The block size divided by 8, useful in various computations.
13
+ * @property _delta32 - The block size divided by 32, useful in various computations.
14
+ * @property padLength - The length of padding to be added to finalize the computation.
15
+ * @property hmacStrength - The HMAC strength value.
16
+ *
17
+ * @param blockSize - The size of the block to be hashed.
18
+ * @param outSize - The size of the resulting hash.
19
+ * @param hmacStrength - The strength of the HMAC.
20
+ * @param padLength - The length of the padding to be added.
21
+ *
22
+ * @example
23
+ * Sub-classes would extend this base BaseHash class like:
24
+ * class RIPEMD160 extends BaseHash {
25
+ * constructor () {
26
+ * super(512, 160, 192, 64);
27
+ * // ...
28
+ * }
29
+ * // ...
30
+ * }
31
+ */
32
+ declare abstract class BaseHash {
33
+ pending: number[] | null;
34
+ pendingTotal: number;
35
+ blockSize: number;
36
+ outSize: number;
37
+ endian: 'big' | 'little';
38
+ _delta8: number;
39
+ _delta32: number;
40
+ padLength: number;
41
+ hmacStrength: number;
42
+ constructor(blockSize: number, outSize: number, hmacStrength: number, padLength: number);
43
+ _update(msg: number[], start: number): void;
44
+ _digest(enc?: 'hex'): number[] | string;
45
+ /**
46
+ * Converts the input message into an array, pads it, and joins into 32bit blocks.
47
+ * If there is enough data, it tries updating the hash computation.
48
+ *
49
+ * @method update
50
+ * @param msg - The message segment to include in the hashing computation.
51
+ * @param enc - The encoding of the message. If 'hex', the string will be treated as such, 'utf8' otherwise.
52
+ *
53
+ * @returns Returns the instance of the object for chaining.
54
+ *
55
+ * @example
56
+ * sha256.update('Hello World', 'utf8');
57
+ */
58
+ update(msg: number[] | string, enc?: 'hex'): this;
59
+ /**
60
+ * Finalizes the hash computation and returns the hash value/result.
61
+ *
62
+ * @method digest
63
+ * @param enc - The encoding of the final hash. If 'hex' then a hex string will be provided, otherwise an array of numbers.
64
+ *
65
+ * @returns Returns the final hash value.
66
+ *
67
+ * @example
68
+ * const hash = sha256.digest('hex');
69
+ */
70
+ digest(enc?: 'hex'): number[] | string;
71
+ /**
72
+ * [Private Method] Used internally to prepare the padding for the final stage of the hash computation.
73
+ *
74
+ * @method _pad
75
+ * @private
76
+ *
77
+ * @returns Returns an array denoting the padding.
78
+ */
79
+ private _pad;
80
+ }
81
+ export declare function toArray(msg: number[] | string, enc?: 'hex'): number[];
82
+ /**
83
+ * An implementation of RIPEMD160 cryptographic hash function. Extends the BaseHash class.
84
+ * It provides a way to compute a 'digest' for any kind of input data; transforming the data
85
+ * into a unique output of fixed size. The output is deterministic; it will always be
86
+ * the same for the same input.
87
+ *
88
+ * @class RIPEMD160
89
+ * @param None
90
+ *
91
+ * @constructor
92
+ * Use the RIPEMD160 constructor to create an instance of RIPEMD160 hash function.
93
+ *
94
+ * @example
95
+ * const ripemd160 = new RIPEMD160();
96
+ *
97
+ * @property h - Array that is updated iteratively as part of hashing computation.
98
+ */
99
+ export declare class RIPEMD160 extends BaseHash {
100
+ h: number[];
101
+ constructor();
102
+ _update(msg: number[], start: number): void;
103
+ _digest(enc?: 'hex'): string | number[];
104
+ }
105
+ /**
106
+ * An implementation of SHA256 cryptographic hash function. Extends the BaseHash class.
107
+ * It provides a way to compute a 'digest' for any kind of input data; transforming the data
108
+ * into a unique output of fixed size. The output is deterministic; it will always be
109
+ * the same for the same input.
110
+ *
111
+ * @class SHA256
112
+ * @param None
113
+ *
114
+ * @constructor
115
+ * Use the SHA256 constructor to create an instance of SHA256 hash function.
116
+ *
117
+ * @example
118
+ * const sha256 = new SHA256();
119
+ *
120
+ * @property h - The initial hash constants
121
+ * @property W - Provides a way to recycle usage of the array memory.
122
+ * @property k - The round constants used for each round of SHA-256
123
+ */
124
+ export declare class SHA256 extends BaseHash {
125
+ h: number[];
126
+ W: number[];
127
+ k: number[];
128
+ constructor();
129
+ _update(msg: number[], start?: number): void;
130
+ _digest(enc?: 'hex'): number[] | string;
131
+ }
132
+ /**
133
+ * An implementation of SHA1 cryptographic hash function. Extends the BaseHash class.
134
+ * It provides a way to compute a 'digest' for any kind of input data; transforming the data
135
+ * into a unique output of fixed size. The output is deterministic; it will always be
136
+ * the same for the same input.
137
+ *
138
+ * @class SHA1
139
+ * @param None
140
+ *
141
+ * @constructor
142
+ * Use the SHA1 constructor to create an instance of SHA1 hash function.
143
+ *
144
+ * @example
145
+ * const sha1 = new SHA1();
146
+ *
147
+ * @property h - The initial hash constants.
148
+ * @property W - Provides a way to recycle usage of the array memory.
149
+ * @property k - The round constants used for each round of SHA-1.
150
+ */
151
+ export declare class SHA1 extends BaseHash {
152
+ h: number[];
153
+ W: number[];
154
+ k: number[];
155
+ constructor();
156
+ _update(msg: number[], start?: number): void;
157
+ _digest(enc?: 'hex'): number[] | string;
158
+ }
159
+ /**
160
+ * An implementation of SHA512 cryptographic hash function. Extends the BaseHash class.
161
+ * It provides a way to compute a 'digest' for any kind of input data; transforming the data
162
+ * into a unique output of fixed size. The output is deterministic; it will always be
163
+ * the same for the same input.
164
+ *
165
+ * @class SHA512
166
+ * @param None
167
+ *
168
+ * @constructor
169
+ * Use the SHA512 constructor to create an instance of SHA512 hash function.
170
+ *
171
+ * @example
172
+ * const sha512 = new SHA512();
173
+ *
174
+ * @property h - The initial hash constants.
175
+ * @property W - Provides a way to recycle usage of the array memory.
176
+ * @property k - The round constants used for each round of SHA-512.
177
+ */
178
+ export declare class SHA512 extends BaseHash {
179
+ h: number[];
180
+ W: number[];
181
+ k: number[];
182
+ constructor();
183
+ _prepareBlock(msg: any, start: any): void;
184
+ _update(msg: any, start: any): void;
185
+ _digest(enc: any): string | number[];
186
+ }
187
+ /**
188
+ * The `SHA256HMAC` class is used to create Hash-based Message Authentication Code (HMAC) using the SHA-256 cryptographic hash function.
189
+ *
190
+ * HMAC is a specific type of MAC involving a cryptographic hash function and a secret cryptographic key. It may be used to simultaneously verify both the data integrity and the authenticity of a message.
191
+ *
192
+ * This class also uses the SHA-256 cryptographic hash algorithm that produces a 256-bit (32-byte) hash value.
193
+ *
194
+ * @property inner - Represents the inner hash of SHA-256.
195
+ * @property outer - Represents the outer hash of SHA-256.
196
+ * @property blockSize - The block size for the SHA-256 hash function, in bytes. It's set to 64 bytes.
197
+ * @property outSize - The output size of the SHA-256 hash function, in bytes. It's set to 32 bytes.
198
+ */
199
+ export declare class SHA256HMAC {
200
+ inner: SHA256;
201
+ outer: SHA256;
202
+ blockSize: number;
203
+ outSize: number;
204
+ /**
205
+ * The constructor for the `SHA256HMAC` class.
206
+ *
207
+ * It initializes the `SHA256HMAC` object and sets up the inner and outer padded keys.
208
+ * If the key size is larger than the blockSize, it is digested using SHA-256.
209
+ * If the key size is less than the blockSize, it is padded with zeroes.
210
+ *
211
+ * @constructor
212
+ * @param key - The key to use to create the HMAC. Can be a number array or a string in hexadecimal format.
213
+ *
214
+ * @example
215
+ * const myHMAC = new SHA256HMAC('deadbeef');
216
+ */
217
+ constructor(key: number[] | string);
218
+ /**
219
+ * Updates the `SHA256HMAC` object with part of the message to be hashed.
220
+ *
221
+ * @method update
222
+ * @param msg - Part of the message to hash. Can be a number array or a string.
223
+ * @param enc - If 'hex', then the input is encoded as hexadecimal. If undefined or not 'hex', then no encoding is performed.
224
+ * @returns Returns the instance of `SHA256HMAC` for chaining calls.
225
+ *
226
+ * @example
227
+ * myHMAC.update('deadbeef', 'hex');
228
+ */
229
+ update(msg: number[] | string, enc?: 'hex'): SHA256HMAC;
230
+ /**
231
+ * Finalizes the HMAC computation and returns the resultant hash.
232
+ *
233
+ * @method digest
234
+ * @param enc - If 'hex', then the output is encoded as hexadecimal. If undefined or not 'hex', then no encoding is performed.
235
+ * @returns Returns the digest of the hashed data. Can be a number array or a string.
236
+ *
237
+ * @example
238
+ * let hashedMessage = myHMAC.digest('hex');
239
+ */
240
+ digest(enc?: 'hex'): number[] | string;
241
+ }
242
+ /**
243
+ * The `SHA512HMAC` class is used to create Hash-based Message Authentication Code (HMAC) using the SHA-512 cryptographic hash function.
244
+ *
245
+ * HMAC is a specific type of MAC involving a cryptographic hash function and a secret cryptographic key. It may be used to simultaneously verify both the data integrity and the authenticity of a message.
246
+ *
247
+ * This class also uses the SHA-512 cryptographic hash algorithm that produces a 512-bit (64-byte) hash value.
248
+ *
249
+ * @property inner - Represents the inner hash of SHA-512.
250
+ * @property outer - Represents the outer hash of SHA-512.
251
+ * @property blockSize - The block size for the SHA-512 hash function, in bytes. It's set to 128 bytes.
252
+ * @property outSize - The output size of the SHA-512 hash function, in bytes. It's set to 64 bytes.
253
+ */
254
+ export declare class SHA512HMAC {
255
+ inner: SHA512;
256
+ outer: SHA512;
257
+ blockSize: number;
258
+ outSize: number;
259
+ /**
260
+ * The constructor for the `SHA512HMAC` class.
261
+ *
262
+ * It initializes the `SHA512HMAC` object and sets up the inner and outer padded keys.
263
+ * If the key size is larger than the blockSize, it is digested using SHA-512.
264
+ * If the key size is less than the blockSize, it is padded with zeroes.
265
+ *
266
+ * @constructor
267
+ * @param key - The key to use to create the HMAC. Can be a number array or a string in hexadecimal format.
268
+ *
269
+ * @example
270
+ * const myHMAC = new SHA512HMAC('deadbeef');
271
+ */
272
+ constructor(key: number[] | string);
273
+ /**
274
+ * Updates the `SHA512HMAC` object with part of the message to be hashed.
275
+ *
276
+ * @method update
277
+ * @param msg - Part of the message to hash. Can be a number array or a string.
278
+ * @param enc - If 'hex', then the input is encoded as hexadecimal. If undefined or not 'hex', then no encoding is performed.
279
+ * @returns Returns the instance of `SHA512HMAC` for chaining calls.
280
+ *
281
+ * @example
282
+ * myHMAC.update('deadbeef', 'hex');
283
+ */
284
+ update(msg: number[] | string, enc?: 'hex'): SHA512HMAC;
285
+ /**
286
+ * Finalizes the HMAC computation and returns the resultant hash.
287
+ *
288
+ * @method digest
289
+ * @param enc - If 'hex', then the output is encoded as hexadecimal. If undefined or not 'hex', then no encoding is performed.
290
+ * @returns Returns the digest of the hashed data. Can be a number array or a string.
291
+ *
292
+ * @example
293
+ * let hashedMessage = myHMAC.digest('hex');
294
+ */
295
+ digest(enc?: 'hex'): number[] | string;
296
+ }
297
+ /**
298
+ * Computes RIPEMD160 hash of a given message.
299
+ * @function ripemd160
300
+ * @param msg - The message to compute the hash for.
301
+ * @param enc - The encoding of the message. If 'hex', the message is decoded from hexadecimal first.
302
+ *
303
+ * @returns the computed RIPEMD160 hash of the message.
304
+ *
305
+ * @example
306
+ * const digest = ripemd160('Hello, world!');
307
+ */
308
+ export declare const ripemd160: (msg: number[] | string, enc?: 'hex') => number[] | string;
309
+ /**
310
+ * Computes SHA1 hash of a given message.
311
+ * @function sha1
312
+ * @param msg - The message to compute the hash for.
313
+ * @param enc - The encoding of the message. If 'hex', the message is decoded from hexadecimal first.
314
+ *
315
+ * @returns the computed SHA1 hash of the message.
316
+ *
317
+ * @example
318
+ * const digest = sha1('Hello, world!');
319
+ */
320
+ export declare const sha1: (msg: number[] | string, enc?: 'hex') => number[] | string;
321
+ /**
322
+ * Computes SHA256 hash of a given message.
323
+ * @function sha256
324
+ * @param msg - The message to compute the hash for.
325
+ * @param enc - The encoding of the message. If 'hex', the message is decoded from hexadecimal first.
326
+ *
327
+ * @returns the computed SHA256 hash of the message.
328
+ *
329
+ * @example
330
+ * const digest = sha256('Hello, world!');
331
+ */
332
+ export declare const sha256: (msg: number[] | string, enc?: 'hex') => number[] | string;
333
+ /**
334
+ * Computes SHA512 hash of a given message.
335
+ * @function sha512
336
+ * @param msg - The message to compute the hash for.
337
+ * @param enc - The encoding of the message. If 'hex', the message is decoded from hexadecimal first.
338
+ *
339
+ * @returns the computed SHA512 hash of the message.
340
+ *
341
+ * @example
342
+ * const digest = sha512('Hello, world!');
343
+ */
344
+ export declare const sha512: (msg: number[] | string, enc?: 'hex') => number[] | string;
345
+ /**
346
+ * Performs a 'double hash' using SHA256. This means the data is hashed twice
347
+ * with SHA256. First, the SHA256 hash of the message is computed, then the
348
+ * SHA256 hash of the resulting hash is computed.
349
+ * @function hash256
350
+ * @param msg - The message to compute the hash for.
351
+ * @param enc - Encoding of the message.If 'hex', the message is decoded from hexadecimal.
352
+ *
353
+ * @returns the double hashed SHA256 output.
354
+ *
355
+ * @example
356
+ * const doubleHash = hash256('Hello, world!');
357
+ */
358
+ export declare const hash256: (msg: number[] | string, enc?: 'hex') => number[] | string;
359
+ /**
360
+ * Computes SHA256 hash of a given message and then computes a RIPEMD160 hash of the result.
361
+ *
362
+ * @function hash160
363
+ * @param msg - The message to compute the hash for.
364
+ * @param enc - The encoding of the message. If 'hex', the message is decoded from hexadecimal.
365
+ *
366
+ * @returns the RIPEMD160 hash of the SHA256 hash of the input message.
367
+ *
368
+ * @example
369
+ * const hash = hash160('Hello, world!');
370
+ */
371
+ export declare const hash160: (msg: number[] | string, enc?: 'hex') => number[] | string;
372
+ /**
373
+ * Computes SHA256 HMAC of a given message with a given key.
374
+ * @function sha256hmac
375
+ * @param key - The key used to compute the HMAC
376
+ * @param msg - The message to compute the hash for.
377
+ * @param enc - The encoding of the message. If 'hex', the message is decoded from hexadecimal first.
378
+ *
379
+ * @returns the computed HMAC of the message.
380
+ *
381
+ * @example
382
+ * const digest = sha256hmac('deadbeef', 'ffff001d');
383
+ */
384
+ export declare const sha256hmac: (key: number[] | string, msg: number[] | string, enc?: 'hex') => number[] | string;
385
+ /**
386
+ * Computes SHA512 HMAC of a given message with a given key.
387
+ * @function sha512hmac
388
+ * @param key - The key used to compute the HMAC
389
+ * @param msg - The message to compute the hash for.
390
+ * @param enc - The encoding of the message. If 'hex', the message is decoded from hexadecimal first.
391
+ *
392
+ * @returns the computed HMAC of the message.
393
+ *
394
+ * @example
395
+ * const digest = sha512hmac('deadbeef', 'ffff001d');
396
+ */
397
+ export declare const sha512hmac: (key: number[] | string, msg: number[] | string, enc?: 'hex') => number[] | string;
398
+ /**
399
+ * Limited SHA-512-only PBKDF2 function for use in deprecated BIP39 code.
400
+ * @function pbkdf2
401
+ * @param password - The PBKDF2 password
402
+ * @param salt - The PBKDF2 salt
403
+ * @param iterations - The number of of iterations to run
404
+ * @param keylen - The length of the key
405
+ * @param digest - The digest (must be sha512 for this implementation)
406
+ *
407
+ * @returns The computed key
408
+ */
409
+ export declare function pbkdf2(password: number[], salt: number[], iterations: number, keylen: number, digest?: string): number[];
410
+ export {};
411
+ //# sourceMappingURL=Hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Hash.d.ts","sourceRoot":"","sources":["../../../../src/primitives/Hash.ts"],"names":[],"mappings":"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"}