@bsv/sdk 1.0.24 → 1.0.29

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 (329) hide show
  1. package/package.json +1 -1
  2. package/dist/cjs/mod.js +0 -25
  3. package/dist/cjs/mod.js.map +0 -1
  4. package/dist/cjs/package.json +0 -49
  5. package/dist/cjs/src/compat/BSM.js +0 -77
  6. package/dist/cjs/src/compat/BSM.js.map +0 -1
  7. package/dist/cjs/src/compat/ECIES.js +0 -512
  8. package/dist/cjs/src/compat/ECIES.js.map +0 -1
  9. package/dist/cjs/src/compat/HD.js +0 -344
  10. package/dist/cjs/src/compat/HD.js.map +0 -1
  11. package/dist/cjs/src/compat/Mnemonic.js +0 -298
  12. package/dist/cjs/src/compat/Mnemonic.js.map +0 -1
  13. package/dist/cjs/src/compat/bip-39-wordlist-en.js +0 -2057
  14. package/dist/cjs/src/compat/bip-39-wordlist-en.js.map +0 -1
  15. package/dist/cjs/src/compat/index.js +0 -37
  16. package/dist/cjs/src/compat/index.js.map +0 -1
  17. package/dist/cjs/src/messages/EncryptedMessage.js +0 -69
  18. package/dist/cjs/src/messages/EncryptedMessage.js.map +0 -1
  19. package/dist/cjs/src/messages/SignedMessage.js +0 -85
  20. package/dist/cjs/src/messages/SignedMessage.js.map +0 -1
  21. package/dist/cjs/src/messages/index.js +0 -29
  22. package/dist/cjs/src/messages/index.js.map +0 -1
  23. package/dist/cjs/src/primitives/AESGCM.js +0 -384
  24. package/dist/cjs/src/primitives/AESGCM.js.map +0 -1
  25. package/dist/cjs/src/primitives/BasePoint.js +0 -19
  26. package/dist/cjs/src/primitives/BasePoint.js.map +0 -1
  27. package/dist/cjs/src/primitives/BigNumber.js +0 -4272
  28. package/dist/cjs/src/primitives/BigNumber.js.map +0 -1
  29. package/dist/cjs/src/primitives/Curve.js +0 -1126
  30. package/dist/cjs/src/primitives/Curve.js.map +0 -1
  31. package/dist/cjs/src/primitives/DRBG.js +0 -99
  32. package/dist/cjs/src/primitives/DRBG.js.map +0 -1
  33. package/dist/cjs/src/primitives/ECDSA.js +0 -169
  34. package/dist/cjs/src/primitives/ECDSA.js.map +0 -1
  35. package/dist/cjs/src/primitives/Hash.js +0 -1387
  36. package/dist/cjs/src/primitives/Hash.js.map +0 -1
  37. package/dist/cjs/src/primitives/JacobianPoint.js +0 -400
  38. package/dist/cjs/src/primitives/JacobianPoint.js.map +0 -1
  39. package/dist/cjs/src/primitives/K256.js +0 -111
  40. package/dist/cjs/src/primitives/K256.js.map +0 -1
  41. package/dist/cjs/src/primitives/Mersenne.js +0 -118
  42. package/dist/cjs/src/primitives/Mersenne.js.map +0 -1
  43. package/dist/cjs/src/primitives/MontgomoryMethod.js +0 -150
  44. package/dist/cjs/src/primitives/MontgomoryMethod.js.map +0 -1
  45. package/dist/cjs/src/primitives/Point.js +0 -819
  46. package/dist/cjs/src/primitives/Point.js.map +0 -1
  47. package/dist/cjs/src/primitives/PrivateKey.js +0 -246
  48. package/dist/cjs/src/primitives/PrivateKey.js.map +0 -1
  49. package/dist/cjs/src/primitives/PublicKey.js +0 -168
  50. package/dist/cjs/src/primitives/PublicKey.js.map +0 -1
  51. package/dist/cjs/src/primitives/Random.js +0 -57
  52. package/dist/cjs/src/primitives/Random.js.map +0 -1
  53. package/dist/cjs/src/primitives/ReductionContext.js +0 -490
  54. package/dist/cjs/src/primitives/ReductionContext.js.map +0 -1
  55. package/dist/cjs/src/primitives/Signature.js +0 -357
  56. package/dist/cjs/src/primitives/Signature.js.map +0 -1
  57. package/dist/cjs/src/primitives/SymmetricKey.js +0 -82
  58. package/dist/cjs/src/primitives/SymmetricKey.js.map +0 -1
  59. package/dist/cjs/src/primitives/TransactionSignature.js +0 -172
  60. package/dist/cjs/src/primitives/TransactionSignature.js.map +0 -1
  61. package/dist/cjs/src/primitives/index.js +0 -51
  62. package/dist/cjs/src/primitives/index.js.map +0 -1
  63. package/dist/cjs/src/primitives/utils.js +0 -624
  64. package/dist/cjs/src/primitives/utils.js.map +0 -1
  65. package/dist/cjs/src/script/LockingScript.js +0 -35
  66. package/dist/cjs/src/script/LockingScript.js.map +0 -1
  67. package/dist/cjs/src/script/OP.js +0 -207
  68. package/dist/cjs/src/script/OP.js.map +0 -1
  69. package/dist/cjs/src/script/Script.js +0 -435
  70. package/dist/cjs/src/script/Script.js.map +0 -1
  71. package/dist/cjs/src/script/ScriptChunk.js +0 -3
  72. package/dist/cjs/src/script/ScriptChunk.js.map +0 -1
  73. package/dist/cjs/src/script/ScriptTemplate.js +0 -3
  74. package/dist/cjs/src/script/ScriptTemplate.js.map +0 -1
  75. package/dist/cjs/src/script/Spend.js +0 -1252
  76. package/dist/cjs/src/script/Spend.js.map +0 -1
  77. package/dist/cjs/src/script/UnlockingScript.js +0 -35
  78. package/dist/cjs/src/script/UnlockingScript.js.map +0 -1
  79. package/dist/cjs/src/script/index.js +0 -32
  80. package/dist/cjs/src/script/index.js.map +0 -1
  81. package/dist/cjs/src/script/templates/P2PKH.js +0 -120
  82. package/dist/cjs/src/script/templates/P2PKH.js.map +0 -1
  83. package/dist/cjs/src/script/templates/RPuzzle.js +0 -125
  84. package/dist/cjs/src/script/templates/RPuzzle.js.map +0 -1
  85. package/dist/cjs/src/script/templates/index.js +0 -11
  86. package/dist/cjs/src/script/templates/index.js.map +0 -1
  87. package/dist/cjs/src/transaction/Broadcaster.js +0 -3
  88. package/dist/cjs/src/transaction/Broadcaster.js.map +0 -1
  89. package/dist/cjs/src/transaction/ChainTracker.js +0 -3
  90. package/dist/cjs/src/transaction/ChainTracker.js.map +0 -1
  91. package/dist/cjs/src/transaction/FeeModel.js +0 -3
  92. package/dist/cjs/src/transaction/FeeModel.js.map +0 -1
  93. package/dist/cjs/src/transaction/MerklePath.js +0 -239
  94. package/dist/cjs/src/transaction/MerklePath.js.map +0 -1
  95. package/dist/cjs/src/transaction/Transaction.js +0 -616
  96. package/dist/cjs/src/transaction/Transaction.js.map +0 -1
  97. package/dist/cjs/src/transaction/TransactionInput.js +0 -3
  98. package/dist/cjs/src/transaction/TransactionInput.js.map +0 -1
  99. package/dist/cjs/src/transaction/TransactionOutput.js +0 -3
  100. package/dist/cjs/src/transaction/TransactionOutput.js.map +0 -1
  101. package/dist/cjs/src/transaction/broadcasters/ARC.js +0 -112
  102. package/dist/cjs/src/transaction/broadcasters/ARC.js.map +0 -1
  103. package/dist/cjs/src/transaction/broadcasters/index.js +0 -9
  104. package/dist/cjs/src/transaction/broadcasters/index.js.map +0 -1
  105. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js +0 -69
  106. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +0 -1
  107. package/dist/cjs/src/transaction/fee-models/index.js +0 -9
  108. package/dist/cjs/src/transaction/fee-models/index.js.map +0 -1
  109. package/dist/cjs/src/transaction/index.js +0 -11
  110. package/dist/cjs/src/transaction/index.js.map +0 -1
  111. package/dist/cjs/tsconfig.cjs.tsbuildinfo +0 -1
  112. package/dist/esm/mod.js +0 -9
  113. package/dist/esm/mod.js.map +0 -1
  114. package/dist/esm/src/compat/BSM.js +0 -45
  115. package/dist/esm/src/compat/BSM.js.map +0 -1
  116. package/dist/esm/src/compat/ECIES.js +0 -483
  117. package/dist/esm/src/compat/ECIES.js.map +0 -1
  118. package/dist/esm/src/compat/HD.js +0 -322
  119. package/dist/esm/src/compat/HD.js.map +0 -1
  120. package/dist/esm/src/compat/Mnemonic.js +0 -272
  121. package/dist/esm/src/compat/Mnemonic.js.map +0 -1
  122. package/dist/esm/src/compat/bip-39-wordlist-en.js +0 -2054
  123. package/dist/esm/src/compat/bip-39-wordlist-en.js.map +0 -1
  124. package/dist/esm/src/compat/index.js +0 -5
  125. package/dist/esm/src/compat/index.js.map +0 -1
  126. package/dist/esm/src/messages/EncryptedMessage.js +0 -61
  127. package/dist/esm/src/messages/EncryptedMessage.js.map +0 -1
  128. package/dist/esm/src/messages/SignedMessage.js +0 -77
  129. package/dist/esm/src/messages/SignedMessage.js.map +0 -1
  130. package/dist/esm/src/messages/index.js +0 -3
  131. package/dist/esm/src/messages/index.js.map +0 -1
  132. package/dist/esm/src/primitives/AESGCM.js +0 -371
  133. package/dist/esm/src/primitives/AESGCM.js.map +0 -1
  134. package/dist/esm/src/primitives/BasePoint.js +0 -16
  135. package/dist/esm/src/primitives/BasePoint.js.map +0 -1
  136. package/dist/esm/src/primitives/BigNumber.js +0 -4307
  137. package/dist/esm/src/primitives/BigNumber.js.map +0 -1
  138. package/dist/esm/src/primitives/Curve.js +0 -1141
  139. package/dist/esm/src/primitives/Curve.js.map +0 -1
  140. package/dist/esm/src/primitives/DRBG.js +0 -98
  141. package/dist/esm/src/primitives/DRBG.js.map +0 -1
  142. package/dist/esm/src/primitives/ECDSA.js +0 -161
  143. package/dist/esm/src/primitives/ECDSA.js.map +0 -1
  144. package/dist/esm/src/primitives/Hash.js +0 -1391
  145. package/dist/esm/src/primitives/Hash.js.map +0 -1
  146. package/dist/esm/src/primitives/JacobianPoint.js +0 -398
  147. package/dist/esm/src/primitives/JacobianPoint.js.map +0 -1
  148. package/dist/esm/src/primitives/K256.js +0 -105
  149. package/dist/esm/src/primitives/K256.js.map +0 -1
  150. package/dist/esm/src/primitives/Mersenne.js +0 -117
  151. package/dist/esm/src/primitives/Mersenne.js.map +0 -1
  152. package/dist/esm/src/primitives/MontgomoryMethod.js +0 -149
  153. package/dist/esm/src/primitives/MontgomoryMethod.js.map +0 -1
  154. package/dist/esm/src/primitives/Point.js +0 -816
  155. package/dist/esm/src/primitives/Point.js.map +0 -1
  156. package/dist/esm/src/primitives/PrivateKey.js +0 -240
  157. package/dist/esm/src/primitives/PrivateKey.js.map +0 -1
  158. package/dist/esm/src/primitives/PublicKey.js +0 -162
  159. package/dist/esm/src/primitives/PublicKey.js.map +0 -1
  160. package/dist/esm/src/primitives/Random.js +0 -56
  161. package/dist/esm/src/primitives/Random.js.map +0 -1
  162. package/dist/esm/src/primitives/ReductionContext.js +0 -486
  163. package/dist/esm/src/primitives/ReductionContext.js.map +0 -1
  164. package/dist/esm/src/primitives/Signature.js +0 -360
  165. package/dist/esm/src/primitives/Signature.js.map +0 -1
  166. package/dist/esm/src/primitives/SymmetricKey.js +0 -76
  167. package/dist/esm/src/primitives/SymmetricKey.js.map +0 -1
  168. package/dist/esm/src/primitives/TransactionSignature.js +0 -144
  169. package/dist/esm/src/primitives/TransactionSignature.js.map +0 -1
  170. package/dist/esm/src/primitives/index.js +0 -13
  171. package/dist/esm/src/primitives/index.js.map +0 -1
  172. package/dist/esm/src/primitives/utils.js +0 -609
  173. package/dist/esm/src/primitives/utils.js.map +0 -1
  174. package/dist/esm/src/script/LockingScript.js +0 -29
  175. package/dist/esm/src/script/LockingScript.js.map +0 -1
  176. package/dist/esm/src/script/OP.js +0 -205
  177. package/dist/esm/src/script/OP.js.map +0 -1
  178. package/dist/esm/src/script/Script.js +0 -430
  179. package/dist/esm/src/script/Script.js.map +0 -1
  180. package/dist/esm/src/script/ScriptChunk.js +0 -2
  181. package/dist/esm/src/script/ScriptChunk.js.map +0 -1
  182. package/dist/esm/src/script/ScriptTemplate.js +0 -2
  183. package/dist/esm/src/script/ScriptTemplate.js.map +0 -1
  184. package/dist/esm/src/script/Spend.js +0 -1240
  185. package/dist/esm/src/script/Spend.js.map +0 -1
  186. package/dist/esm/src/script/UnlockingScript.js +0 -29
  187. package/dist/esm/src/script/UnlockingScript.js.map +0 -1
  188. package/dist/esm/src/script/index.js +0 -7
  189. package/dist/esm/src/script/index.js.map +0 -1
  190. package/dist/esm/src/script/templates/P2PKH.js +0 -113
  191. package/dist/esm/src/script/templates/P2PKH.js.map +0 -1
  192. package/dist/esm/src/script/templates/RPuzzle.js +0 -119
  193. package/dist/esm/src/script/templates/RPuzzle.js.map +0 -1
  194. package/dist/esm/src/script/templates/index.js +0 -3
  195. package/dist/esm/src/script/templates/index.js.map +0 -1
  196. package/dist/esm/src/transaction/Broadcaster.js +0 -2
  197. package/dist/esm/src/transaction/Broadcaster.js.map +0 -1
  198. package/dist/esm/src/transaction/ChainTracker.js +0 -2
  199. package/dist/esm/src/transaction/ChainTracker.js.map +0 -1
  200. package/dist/esm/src/transaction/FeeModel.js +0 -2
  201. package/dist/esm/src/transaction/FeeModel.js.map +0 -1
  202. package/dist/esm/src/transaction/MerklePath.js +0 -237
  203. package/dist/esm/src/transaction/MerklePath.js.map +0 -1
  204. package/dist/esm/src/transaction/Transaction.js +0 -617
  205. package/dist/esm/src/transaction/Transaction.js.map +0 -1
  206. package/dist/esm/src/transaction/TransactionInput.js +0 -2
  207. package/dist/esm/src/transaction/TransactionInput.js.map +0 -1
  208. package/dist/esm/src/transaction/TransactionOutput.js +0 -2
  209. package/dist/esm/src/transaction/TransactionOutput.js.map +0 -1
  210. package/dist/esm/src/transaction/broadcasters/ARC.js +0 -111
  211. package/dist/esm/src/transaction/broadcasters/ARC.js.map +0 -1
  212. package/dist/esm/src/transaction/broadcasters/index.js +0 -2
  213. package/dist/esm/src/transaction/broadcasters/index.js.map +0 -1
  214. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js +0 -71
  215. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +0 -1
  216. package/dist/esm/src/transaction/fee-models/index.js +0 -2
  217. package/dist/esm/src/transaction/fee-models/index.js.map +0 -1
  218. package/dist/esm/src/transaction/index.js +0 -3
  219. package/dist/esm/src/transaction/index.js.map +0 -1
  220. package/dist/esm/tsconfig.esm.tsbuildinfo +0 -1
  221. package/dist/types/mod.d.ts +0 -9
  222. package/dist/types/mod.d.ts.map +0 -1
  223. package/dist/types/src/compat/BSM.d.ts +0 -28
  224. package/dist/types/src/compat/BSM.d.ts.map +0 -1
  225. package/dist/types/src/compat/ECIES.d.ts +0 -62
  226. package/dist/types/src/compat/ECIES.d.ts.map +0 -1
  227. package/dist/types/src/compat/HD.d.ts +0 -131
  228. package/dist/types/src/compat/HD.d.ts.map +0 -1
  229. package/dist/types/src/compat/Mnemonic.d.ts +0 -132
  230. package/dist/types/src/compat/Mnemonic.d.ts.map +0 -1
  231. package/dist/types/src/compat/bip-39-wordlist-en.d.ts +0 -5
  232. package/dist/types/src/compat/bip-39-wordlist-en.d.ts.map +0 -1
  233. package/dist/types/src/compat/index.d.ts +0 -5
  234. package/dist/types/src/compat/index.d.ts.map +0 -1
  235. package/dist/types/src/messages/EncryptedMessage.d.ts +0 -20
  236. package/dist/types/src/messages/EncryptedMessage.d.ts.map +0 -1
  237. package/dist/types/src/messages/SignedMessage.d.ts +0 -21
  238. package/dist/types/src/messages/SignedMessage.d.ts.map +0 -1
  239. package/dist/types/src/messages/index.d.ts +0 -3
  240. package/dist/types/src/messages/index.d.ts.map +0 -1
  241. package/dist/types/src/primitives/AESGCM.d.ts +0 -14
  242. package/dist/types/src/primitives/AESGCM.d.ts.map +0 -1
  243. package/dist/types/src/primitives/BasePoint.d.ts +0 -22
  244. package/dist/types/src/primitives/BasePoint.d.ts.map +0 -1
  245. package/dist/types/src/primitives/BigNumber.d.ts +0 -1895
  246. package/dist/types/src/primitives/BigNumber.d.ts.map +0 -1
  247. package/dist/types/src/primitives/Curve.d.ts +0 -55
  248. package/dist/types/src/primitives/Curve.d.ts.map +0 -1
  249. package/dist/types/src/primitives/DRBG.d.ts +0 -54
  250. package/dist/types/src/primitives/DRBG.d.ts.map +0 -1
  251. package/dist/types/src/primitives/ECDSA.d.ts +0 -39
  252. package/dist/types/src/primitives/ECDSA.d.ts.map +0 -1
  253. package/dist/types/src/primitives/Hash.d.ts +0 -450
  254. package/dist/types/src/primitives/Hash.d.ts.map +0 -1
  255. package/dist/types/src/primitives/JacobianPoint.d.ts +0 -164
  256. package/dist/types/src/primitives/JacobianPoint.d.ts.map +0 -1
  257. package/dist/types/src/primitives/K256.d.ts +0 -53
  258. package/dist/types/src/primitives/K256.d.ts.map +0 -1
  259. package/dist/types/src/primitives/Mersenne.d.ts +0 -72
  260. package/dist/types/src/primitives/Mersenne.d.ts.map +0 -1
  261. package/dist/types/src/primitives/MontgomoryMethod.d.ts +0 -96
  262. package/dist/types/src/primitives/MontgomoryMethod.d.ts.map +0 -1
  263. package/dist/types/src/primitives/Point.d.ts +0 -303
  264. package/dist/types/src/primitives/Point.d.ts.map +0 -1
  265. package/dist/types/src/primitives/PrivateKey.d.ts +0 -174
  266. package/dist/types/src/primitives/PrivateKey.d.ts.map +0 -1
  267. package/dist/types/src/primitives/PublicKey.d.ts +0 -120
  268. package/dist/types/src/primitives/PublicKey.d.ts.map +0 -1
  269. package/dist/types/src/primitives/Random.d.ts +0 -14
  270. package/dist/types/src/primitives/Random.d.ts.map +0 -1
  271. package/dist/types/src/primitives/ReductionContext.d.ts +0 -308
  272. package/dist/types/src/primitives/ReductionContext.d.ts.map +0 -1
  273. package/dist/types/src/primitives/Signature.d.ts +0 -162
  274. package/dist/types/src/primitives/Signature.d.ts.map +0 -1
  275. package/dist/types/src/primitives/SymmetricKey.d.ts +0 -55
  276. package/dist/types/src/primitives/SymmetricKey.d.ts.map +0 -1
  277. package/dist/types/src/primitives/TransactionSignature.d.ts +0 -36
  278. package/dist/types/src/primitives/TransactionSignature.d.ts.map +0 -1
  279. package/dist/types/src/primitives/index.d.ts +0 -13
  280. package/dist/types/src/primitives/index.d.ts.map +0 -1
  281. package/dist/types/src/primitives/utils.d.ts +0 -124
  282. package/dist/types/src/primitives/utils.d.ts.map +0 -1
  283. package/dist/types/src/script/LockingScript.d.ts +0 -25
  284. package/dist/types/src/script/LockingScript.d.ts.map +0 -1
  285. package/dist/types/src/script/OP.d.ts +0 -193
  286. package/dist/types/src/script/OP.d.ts.map +0 -1
  287. package/dist/types/src/script/Script.d.ts +0 -148
  288. package/dist/types/src/script/Script.d.ts.map +0 -1
  289. package/dist/types/src/script/ScriptChunk.d.ts +0 -8
  290. package/dist/types/src/script/ScriptChunk.d.ts.map +0 -1
  291. package/dist/types/src/script/ScriptTemplate.d.ts +0 -33
  292. package/dist/types/src/script/ScriptTemplate.d.ts.map +0 -1
  293. package/dist/types/src/script/Spend.d.ts +0 -103
  294. package/dist/types/src/script/Spend.d.ts.map +0 -1
  295. package/dist/types/src/script/UnlockingScript.d.ts +0 -25
  296. package/dist/types/src/script/UnlockingScript.d.ts.map +0 -1
  297. package/dist/types/src/script/index.d.ts +0 -8
  298. package/dist/types/src/script/index.d.ts.map +0 -1
  299. package/dist/types/src/script/templates/P2PKH.d.ts +0 -40
  300. package/dist/types/src/script/templates/P2PKH.d.ts.map +0 -1
  301. package/dist/types/src/script/templates/RPuzzle.d.ts +0 -47
  302. package/dist/types/src/script/templates/RPuzzle.d.ts.map +0 -1
  303. package/dist/types/src/script/templates/index.d.ts +0 -3
  304. package/dist/types/src/script/templates/index.d.ts.map +0 -1
  305. package/dist/types/src/transaction/Broadcaster.d.ts +0 -39
  306. package/dist/types/src/transaction/Broadcaster.d.ts.map +0 -1
  307. package/dist/types/src/transaction/ChainTracker.d.ts +0 -23
  308. package/dist/types/src/transaction/ChainTracker.d.ts.map +0 -1
  309. package/dist/types/src/transaction/FeeModel.d.ts +0 -12
  310. package/dist/types/src/transaction/FeeModel.d.ts.map +0 -1
  311. package/dist/types/src/transaction/MerklePath.d.ts +0 -91
  312. package/dist/types/src/transaction/MerklePath.d.ts.map +0 -1
  313. package/dist/types/src/transaction/Transaction.d.ts +0 -215
  314. package/dist/types/src/transaction/Transaction.d.ts.map +0 -1
  315. package/dist/types/src/transaction/TransactionInput.d.ts +0 -63
  316. package/dist/types/src/transaction/TransactionInput.d.ts.map +0 -1
  317. package/dist/types/src/transaction/TransactionOutput.d.ts +0 -36
  318. package/dist/types/src/transaction/TransactionOutput.d.ts.map +0 -1
  319. package/dist/types/src/transaction/broadcasters/ARC.d.ts +0 -28
  320. package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +0 -1
  321. package/dist/types/src/transaction/broadcasters/index.d.ts +0 -2
  322. package/dist/types/src/transaction/broadcasters/index.d.ts.map +0 -1
  323. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts +0 -26
  324. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +0 -1
  325. package/dist/types/src/transaction/fee-models/index.d.ts +0 -2
  326. package/dist/types/src/transaction/fee-models/index.d.ts.map +0 -1
  327. package/dist/types/src/transaction/index.d.ts +0 -7
  328. package/dist/types/src/transaction/index.d.ts.map +0 -1
  329. package/dist/types/tsconfig.types.tsbuildinfo +0 -1
@@ -1,486 +0,0 @@
1
- import BigNumber from './BigNumber.js';
2
- import K256 from './K256.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;
15
- m;
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) {
27
- if (m === 'k256') {
28
- const prime = new K256();
29
- this.m = prime.p;
30
- this.prime = prime;
31
- }
32
- else {
33
- this.assert(m.gtn(1), 'modulus must be greater than 1');
34
- this.m = m;
35
- this.prime = null;
36
- }
37
- }
38
- /**
39
- * Asserts that given value is truthy. Throws an Error with a provided message
40
- * if the value is falsy.
41
- *
42
- * @private
43
- * @param val - The value to be checked.
44
- * @param msg - The error message to be thrown if the value is falsy.
45
- *
46
- * @example
47
- * this.assert(1 < 2, '1 is not less than 2');
48
- * this.assert(2 < 1, '2 is less than 1'); // throws an Error with message '2 is less than 1'
49
- */
50
- assert(val, msg = 'Assertion failed') {
51
- if (!val)
52
- throw new Error(msg);
53
- }
54
- /**
55
- * Verifies that a BigNumber is positive and red. Throws an error if these
56
- * conditions are not met.
57
- *
58
- * @param a - The BigNumber to be verified.
59
- *
60
- * @example
61
- * this.verify1(new BigNumber(10).toRed());
62
- * this.verify1(new BigNumber(-10).toRed()); //throws an Error
63
- * this.verify1(new BigNumber(10)); //throws an Error
64
- */
65
- verify1(a) {
66
- this.assert(a.negative === 0, 'red works only with positives');
67
- this.assert(a.red, 'red works only with red numbers');
68
- }
69
- /**
70
- * Verifies that two BigNumbers are both positive and red. Also checks
71
- * that they have the same reduction context. Throws an error if these
72
- * conditions are not met.
73
- *
74
- * @param a - The first BigNumber to be verified.
75
- * @param b - The second BigNumber to be verified.
76
- *
77
- * @example
78
- * this.verify2(new BigNumber(10).toRed(this), new BigNumber(20).toRed(this));
79
- * this.verify2(new BigNumber(-10).toRed(this), new BigNumber(20).toRed(this)); //throws an Error
80
- * this.verify2(new BigNumber(10).toRed(this), new BigNumber(20)); //throws an Error
81
- */
82
- verify2(a, b) {
83
- this.assert((a.negative | b.negative) === 0, 'red works only with positives');
84
- this.assert((a.red != null) && a.red === b.red, 'red works only with red numbers');
85
- }
86
- /**
87
- * Performs an in-place reduction of the given BigNumber by the modulus of the reduction context, 'm'.
88
- *
89
- * @method imod
90
- *
91
- * @param a - BigNumber to be reduced.
92
- *
93
- * @returns Returns the reduced result.
94
- *
95
- * @example
96
- * const context = new ReductionContext(new BigNumber(7));
97
- * context.imod(new BigNumber(19)); // Returns 5
98
- */
99
- imod(a) {
100
- if (this.prime != null)
101
- return this.prime.ireduce(a).forceRed(this);
102
- BigNumber.move(a, a.umod(this.m).forceRed(this));
103
- return a;
104
- }
105
- /**
106
- * Negates a BigNumber in the context of the modulus.
107
- *
108
- * @method neg
109
- *
110
- * @param a - BigNumber to negate.
111
- *
112
- * @returns Returns the negation of 'a' in the reduction context.
113
- *
114
- * @example
115
- * const context = new ReductionContext(new BigNumber(7));
116
- * context.neg(new BigNumber(3)); // Returns 4
117
- */
118
- neg(a) {
119
- if (a.isZero()) {
120
- return a.clone();
121
- }
122
- return this.m.sub(a).forceRed(this);
123
- }
124
- /**
125
- * Performs the addition operation on two BigNumbers in the reduction context.
126
- *
127
- * @method add
128
- *
129
- * @param a - First BigNumber to add.
130
- * @param b - Second BigNumber to add.
131
- *
132
- * @returns Returns the result of 'a + b' in the reduction context.
133
- *
134
- * @example
135
- * const context = new ReductionContext(new BigNumber(5));
136
- * context.add(new BigNumber(2), new BigNumber(4)); // Returns 1
137
- */
138
- add(a, b) {
139
- this.verify2(a, b);
140
- const res = a.add(b);
141
- if (res.cmp(this.m) >= 0) {
142
- res.isub(this.m);
143
- }
144
- return res.forceRed(this);
145
- }
146
- /**
147
- * Performs an in-place addition operation on two BigNumbers in the reduction context
148
- * in order to avoid creating a new BigNumber, it modifies the first one with the result.
149
- *
150
- * @method iadd
151
- *
152
- * @param a - First BigNumber to add.
153
- * @param b - Second BigNumber to add.
154
- *
155
- * @returns Returns the modified 'a' after addition with 'b' in the reduction context.
156
- *
157
- * @example
158
- * const context = new ReductionContext(new BigNumber(5));
159
- * const a = new BigNumber(2);
160
- * context.iadd(a, new BigNumber(4)); // Modifies 'a' to be 1
161
- */
162
- iadd(a, b) {
163
- this.verify2(a, b);
164
- const res = a.iadd(b);
165
- if (res.cmp(this.m) >= 0) {
166
- res.isub(this.m);
167
- }
168
- return res;
169
- }
170
- /**
171
- * Subtracts one BigNumber from another BigNumber in the reduction context.
172
- *
173
- * @method sub
174
- *
175
- * @param a - BigNumber to be subtracted from.
176
- * @param b - BigNumber to subtract.
177
- *
178
- * @returns Returns the result of 'a - b' in the reduction context.
179
- *
180
- * @example
181
- * const context = new ReductionContext(new BigNumber(7));
182
- * context.sub(new BigNumber(3), new BigNumber(2)); // Returns 1
183
- */
184
- sub(a, b) {
185
- this.verify2(a, b);
186
- const res = a.sub(b);
187
- if (res.cmpn(0) < 0) {
188
- res.iadd(this.m);
189
- }
190
- return res.forceRed(this);
191
- }
192
- /**
193
- * Performs in-place subtraction of one BigNumber from another in the reduction context,
194
- * it modifies the first BigNumber with the result.
195
- *
196
- * @method isub
197
- *
198
- * @param a - BigNumber to be subtracted from.
199
- * @param b - BigNumber to subtract.
200
- *
201
- * @returns Returns the modified 'a' after subtraction of 'b' in the reduction context.
202
- *
203
- * @example
204
- * const context = new ReductionContext(new BigNumber(5));
205
- * const a = new BigNumber(4);
206
- * context.isub(a, new BigNumber(2)); // Modifies 'a' to be 2
207
- */
208
- isub(a, b) {
209
- this.verify2(a, b);
210
- const res = a.isub(b);
211
- if (res.cmpn(0) < 0) {
212
- res.iadd(this.m);
213
- }
214
- return res;
215
- }
216
- /**
217
- * Performs bitwise shift left operation on a BigNumber in the reduction context.
218
- *
219
- * @method shl
220
- *
221
- * @param a - BigNumber to perform shift on.
222
- * @param num - The number of positions to shift.
223
- *
224
- * @returns Returns the result of shifting 'a' left by 'num' positions in the reduction context.
225
- *
226
- * @example
227
- * const context = new ReductionContext(new BigNumber(32));
228
- * context.shl(new BigNumber(4), 2); // Returns 16
229
- */
230
- shl(a, num) {
231
- this.verify1(a);
232
- return this.imod(a.ushln(num));
233
- }
234
- /**
235
- * Performs in-place multiplication of two BigNumbers in the reduction context,
236
- * modifying the first BigNumber with the result.
237
- *
238
- * @method imul
239
- *
240
- * @param a - First BigNumber to multiply.
241
- * @param b - Second BigNumber to multiply.
242
- *
243
- * @returns Returns the modified 'a' after multiplication with 'b' in the reduction context.
244
- *
245
- * @example
246
- * const context = new ReductionContext(new BigNumber(7));
247
- * const a = new BigNumber(3);
248
- * context.imul(a, new BigNumber(2)); // Modifies 'a' to be 6
249
- */
250
- imul(a, b) {
251
- this.verify2(a, b);
252
- return this.imod(a.imul(b));
253
- }
254
- /**
255
- * Multiplies two BigNumbers in the reduction context.
256
- *
257
- * @method mul
258
- *
259
- * @param a - First BigNumber to multiply.
260
- * @param b - Second BigNumber to multiply.
261
- *
262
- * @returns Returns the result of 'a * b' in the reduction context.
263
- *
264
- * @example
265
- * const context = new ReductionContext(new BigNumber(7));
266
- * context.mul(new BigNumber(3), new BigNumber(2)); // Returns 6
267
- */
268
- mul(a, b) {
269
- this.verify2(a, b);
270
- return this.imod(a.mul(b));
271
- }
272
- /**
273
- * Calculates the square of a BigNumber in the reduction context,
274
- * modifying the original BigNumber with the result.
275
- *
276
- * @method isqr
277
- *
278
- * @param a - BigNumber to be squared.
279
- *
280
- * @returns Returns the squared 'a' in the reduction context.
281
- *
282
- * @example
283
- * const context = new ReductionContext(new BigNumber(7));
284
- * const a = new BigNumber(3);
285
- * context.isqr(a); // Modifies 'a' to be 2 (9 % 7 = 2)
286
- */
287
- isqr(a) {
288
- return this.imul(a, a.clone());
289
- }
290
- /**
291
- * Calculates the square of a BigNumber in the reduction context.
292
- *
293
- * @method sqr
294
- *
295
- * @param a - BigNumber to be squared.
296
- *
297
- * @returns Returns the result of 'a^2' in the reduction context.
298
- *
299
- * @example
300
- * const context = new ReductionContext(new BigNumber(7));
301
- * context.sqr(new BigNumber(3)); // Returns 2 (9 % 7 = 2)
302
- */
303
- sqr(a) {
304
- return this.mul(a, a);
305
- }
306
- /**
307
- * Calculates the square root of a BigNumber in the reduction context.
308
- *
309
- * @method sqrt
310
- *
311
- * @param a - The BigNumber to calculate the square root of.
312
- *
313
- * @returns Returns the square root of 'a' in the reduction context.
314
- *
315
- * @example
316
- * const context = new ReductionContext(new BigNumber(9));
317
- * context.sqrt(new BigNumber(4)); // Returns 2
318
- */
319
- sqrt(a) {
320
- if (a.isZero())
321
- return a.clone();
322
- const mod3 = this.m.andln(3);
323
- this.assert(mod3 % 2 === 1);
324
- // Fast case
325
- if (mod3 === 3) {
326
- const pow = this.m.add(new BigNumber(1)).iushrn(2);
327
- return this.pow(a, pow);
328
- }
329
- // Tonelli-Shanks algorithm (Totally unoptimized and slow)
330
- //
331
- // Find Q and S, that Q * 2 ^ S = (P - 1)
332
- const q = this.m.subn(1);
333
- let s = 0;
334
- while (!q.isZero() && q.andln(1) === 0) {
335
- s++;
336
- q.iushrn(1);
337
- }
338
- this.assert(!q.isZero());
339
- const one = new BigNumber(1).toRed(this);
340
- const nOne = one.redNeg();
341
- // Find quadratic non-residue
342
- // NOTE: Max is such because of generalized Riemann hypothesis.
343
- const lpow = this.m.subn(1).iushrn(1);
344
- const zl = this.m.bitLength();
345
- const z = new BigNumber(2 * zl * zl).toRed(this);
346
- while (this.pow(z, lpow).cmp(nOne) !== 0) {
347
- z.redIAdd(nOne);
348
- }
349
- let c = this.pow(z, q);
350
- let r = this.pow(a, q.addn(1).iushrn(1));
351
- let t = this.pow(a, q);
352
- let m = s;
353
- while (t.cmp(one) !== 0) {
354
- let tmp = t;
355
- let i = 0;
356
- for (; tmp.cmp(one) !== 0; i++) {
357
- tmp = tmp.redSqr();
358
- }
359
- this.assert(i < m);
360
- const b = this.pow(c, new BigNumber(1).iushln(m - i - 1));
361
- r = r.redMul(b);
362
- c = b.redSqr();
363
- t = t.redMul(c);
364
- m = i;
365
- }
366
- return r;
367
- }
368
- /**
369
- * Calculates the multiplicative inverse of a BigNumber in the reduction context.
370
- *
371
- * @method invm
372
- *
373
- * @param a - The BigNumber to find the multiplicative inverse of.
374
- *
375
- * @returns Returns the multiplicative inverse of 'a' in the reduction context.
376
- *
377
- * @example
378
- * const context = new ReductionContext(new BigNumber(11));
379
- * context.invm(new BigNumber(3)); // Returns 4 (3*4 mod 11 = 1)
380
- */
381
- invm(a) {
382
- const inv = a._invmp(this.m);
383
- if (inv.negative !== 0) {
384
- inv.negative = 0;
385
- return this.imod(inv).redNeg();
386
- }
387
- else {
388
- return this.imod(inv);
389
- }
390
- }
391
- /**
392
- * Raises a BigNumber to a power in the reduction context.
393
- *
394
- * @method pow
395
- *
396
- * @param a - The BigNumber to be raised to a power.
397
- * @param num - The power to raise the BigNumber to.
398
- *
399
- * @returns Returns the result of 'a' raised to the power of 'num' in the reduction context.
400
- *
401
- * @example
402
- * const context = new ReductionContext(new BigNumber(7));
403
- * context.pow(new BigNumber(3), new BigNumber(2)); // Returns 2 (3^2 % 7)
404
- */
405
- pow(a, num) {
406
- if (num.isZero())
407
- return new BigNumber(1).toRed(this);
408
- if (num.cmpn(1) === 0)
409
- return a.clone();
410
- const windowSize = 4;
411
- const wnd = new Array(1 << windowSize);
412
- wnd[0] = new BigNumber(1).toRed(this);
413
- wnd[1] = a;
414
- let i = 2;
415
- for (; i < wnd.length; i++) {
416
- wnd[i] = this.mul(wnd[i - 1], a);
417
- }
418
- let res = wnd[0];
419
- let current = 0;
420
- let currentLen = 0;
421
- let start = num.bitLength() % 26;
422
- if (start === 0) {
423
- start = 26;
424
- }
425
- for (i = num.length - 1; i >= 0; i--) {
426
- const word = num.words[i];
427
- for (let j = start - 1; j >= 0; j--) {
428
- const bit = (word >> j) & 1;
429
- if (res !== wnd[0]) {
430
- res = this.sqr(res);
431
- }
432
- if (bit === 0 && current === 0) {
433
- currentLen = 0;
434
- continue;
435
- }
436
- current <<= 1;
437
- current |= bit;
438
- currentLen++;
439
- if (currentLen !== windowSize && (i !== 0 || j !== 0))
440
- continue;
441
- res = this.mul(res, wnd[current]);
442
- currentLen = 0;
443
- current = 0;
444
- }
445
- start = 26;
446
- }
447
- return res;
448
- }
449
- /**
450
- * Converts a BigNumber to its equivalent in the reduction context.
451
- *
452
- * @method convertTo
453
- *
454
- * @param num - The BigNumber to convert to the reduction context.
455
- *
456
- * @returns Returns the converted BigNumber compatible with the reduction context.
457
- *
458
- * @example
459
- * const context = new ReductionContext(new BigNumber(7));
460
- * context.convertTo(new BigNumber(8)); // Returns 1 (8 % 7)
461
- */
462
- convertTo(num) {
463
- const r = num.umod(this.m);
464
- return r === num ? r.clone() : r;
465
- }
466
- /**
467
- * Converts a BigNumber from reduction context to its regular form.
468
- *
469
- * @method convertFrom
470
- *
471
- * @param num - The BigNumber to convert from the reduction context.
472
- *
473
- * @returns Returns the converted BigNumber in its regular form.
474
- *
475
- * @example
476
- * const context = new ReductionContext(new BigNumber(7));
477
- * const a = context.convertTo(new BigNumber(8)); // 'a' is now 1 in the reduction context
478
- * context.convertFrom(a); // Returns 1
479
- */
480
- convertFrom(num) {
481
- const res = num.clone();
482
- res.red = null;
483
- return res;
484
- }
485
- }
486
- //# sourceMappingURL=ReductionContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReductionContext.js","sourceRoot":"","sources":["../../../../src/primitives/ReductionContext.ts"],"names":[],"mappings":"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"}