@bsv/sdk 1.0.26 → 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,483 +0,0 @@
1
- // import { AESWrappercbc } from './aescbc'
2
- import Random from '../primitives/Random.js';
3
- import PrivateKey from '../primitives/PrivateKey.js';
4
- import PublicKey from '../primitives/PublicKey.js';
5
- import Point from '../primitives/Point.js';
6
- import * as Hash from '../primitives/Hash.js';
7
- import { toArray, toHex, encode } from '../primitives/utils.js';
8
- function AES(key) {
9
- if (!this._tables[0][0][0])
10
- this._precompute();
11
- let tmp, encKey, decKey;
12
- const sbox = this._tables[0][4];
13
- const decTable = this._tables[1];
14
- const keyLen = key.length;
15
- let rcon = 1;
16
- if (keyLen !== 4 && keyLen !== 6 && keyLen !== 8) {
17
- throw new Error('invalid aes key size');
18
- }
19
- this._key = [encKey = key.slice(0), decKey = []];
20
- // schedule encryption keys
21
- for (var i = keyLen; i < 4 * keyLen + 28; i++) {
22
- tmp = encKey[i - 1];
23
- // apply sbox
24
- if (i % keyLen === 0 || (keyLen === 8 && i % keyLen === 4)) {
25
- tmp = sbox[tmp >>> 24] << 24 ^ sbox[tmp >> 16 & 255] << 16 ^ sbox[tmp >> 8 & 255] << 8 ^ sbox[tmp & 255];
26
- // shift rows and add rcon
27
- if (i % keyLen === 0) {
28
- tmp = tmp << 8 ^ tmp >>> 24 ^ rcon << 24;
29
- rcon = rcon << 1 ^ (rcon >> 7) * 283;
30
- }
31
- }
32
- encKey[i] = encKey[i - keyLen] ^ tmp;
33
- }
34
- // schedule decryption keys
35
- for (let j = 0; i; j++, i--) {
36
- tmp = encKey[j & 3 ? i : i - 4];
37
- if (i <= 4 || j < 4) {
38
- decKey[j] = tmp;
39
- }
40
- else {
41
- decKey[j] = decTable[0][sbox[tmp >>> 24]] ^
42
- decTable[1][sbox[tmp >> 16 & 255]] ^
43
- decTable[2][sbox[tmp >> 8 & 255]] ^
44
- decTable[3][sbox[tmp & 255]];
45
- }
46
- }
47
- }
48
- AES.prototype = {
49
- /**
50
- * Encrypt an array of 4 big-endian words.
51
- * @param {Array} data The plaintext.
52
- * @return {Array} The ciphertext.
53
- */
54
- encrypt: function (data) { return this._crypt(data, 0); },
55
- /**
56
- * Decrypt an array of 4 big-endian words.
57
- * @param {Array} data The ciphertext.
58
- * @return {Array} The plaintext.
59
- */
60
- decrypt: function (data) { return this._crypt(data, 1); },
61
- /**
62
- * The expanded S-box and inverse S-box tables. These will be computed
63
- * on the client so that we don't have to send them down the wire.
64
- *
65
- * There are two tables, _tables[0] is for encryption and
66
- * _tables[1] is for decryption.
67
- *
68
- * The first 4 sub-tables are the expanded S-box with MixColumns. The
69
- * last (_tables[01][4]) is the S-box itself.
70
- *
71
- * @private
72
- */
73
- _tables: [
74
- [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)],
75
- [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)]
76
- ],
77
- // Expand the S-box tables.
78
- _precompute: function () {
79
- const encTable = this._tables[0];
80
- const decTable = this._tables[1];
81
- const sbox = encTable[4];
82
- const sboxInv = decTable[4];
83
- let i;
84
- let x;
85
- let xInv;
86
- const d = new Uint8Array(256);
87
- const th = new Uint8Array(256);
88
- let x2;
89
- let x4;
90
- let x8;
91
- let s;
92
- let tEnc;
93
- let tDec;
94
- // Compute double and third tables
95
- for (i = 0; i < 256; i++) {
96
- th[(d[i] = i << 1 ^ (i >> 7) * 283) ^ i] = i;
97
- }
98
- for (x = xInv = 0; !sbox[x]; x ^= x2 || 1, xInv = th[xInv] || 1) {
99
- // Compute sbox
100
- s = xInv ^ xInv << 1 ^ xInv << 2 ^ xInv << 3 ^ xInv << 4;
101
- s = s >> 8 ^ s & 255 ^ 99;
102
- sbox[x] = s;
103
- sboxInv[s] = x;
104
- // Compute MixColumns
105
- x8 = d[x4 = d[x2 = d[x]]];
106
- tDec = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;
107
- tEnc = d[s] * 0x101 ^ s * 0x1010100;
108
- for (i = 0; i < 4; i++) {
109
- encTable[i][x] = tEnc = tEnc << 24 ^ tEnc >>> 8;
110
- decTable[i][s] = tDec = tDec << 24 ^ tDec >>> 8;
111
- }
112
- }
113
- },
114
- /**
115
- * Encryption and decryption core.
116
- * @param {Array} input Four words to be encrypted or decrypted.
117
- * @param dir The direction, 0 for encrypt and 1 for decrypt.
118
- * @return {Array} The four encrypted or decrypted words.
119
- * @private
120
- */
121
- _crypt: function (input, dir) {
122
- if (input.length !== 4) {
123
- throw new Error('invalid aes block size');
124
- }
125
- const key = this._key[dir];
126
- // state variables a,b,c,d are loaded with pre-whitened data
127
- let a = input[0] ^ key[0];
128
- let b = input[dir ? 3 : 1] ^ key[1];
129
- let c = input[2] ^ key[2];
130
- let d = input[dir ? 1 : 3] ^ key[3];
131
- let a2;
132
- let b2;
133
- let c2;
134
- const nInnerRounds = key.length / 4 - 2;
135
- let i;
136
- let kIndex = 4;
137
- const out = new Uint32Array(4);
138
- const // <--- this is slower in Node.js, about the same in Chrome */
139
- table = this._tables[dir];
140
- // load up the tables
141
- const t0 = table[0];
142
- const t1 = table[1];
143
- const t2 = table[2];
144
- const t3 = table[3];
145
- const sbox = table[4];
146
- // Inner rounds. Cribbed from OpenSSL.
147
- for (i = 0; i < nInnerRounds; i++) {
148
- a2 = t0[a >>> 24] ^ t1[b >> 16 & 255] ^ t2[c >> 8 & 255] ^ t3[d & 255] ^ key[kIndex];
149
- b2 = t0[b >>> 24] ^ t1[c >> 16 & 255] ^ t2[d >> 8 & 255] ^ t3[a & 255] ^ key[kIndex + 1];
150
- c2 = t0[c >>> 24] ^ t1[d >> 16 & 255] ^ t2[a >> 8 & 255] ^ t3[b & 255] ^ key[kIndex + 2];
151
- d = t0[d >>> 24] ^ t1[a >> 16 & 255] ^ t2[b >> 8 & 255] ^ t3[c & 255] ^ key[kIndex + 3];
152
- kIndex += 4;
153
- a = a2;
154
- b = b2;
155
- c = c2;
156
- }
157
- // Last round.
158
- for (i = 0; i < 4; i++) {
159
- out[dir ? 3 & -i : i] =
160
- sbox[a >>> 24] << 24 ^
161
- sbox[b >> 16 & 255] << 16 ^
162
- sbox[c >> 8 & 255] << 8 ^
163
- sbox[d & 255] ^
164
- key[kIndex++];
165
- a2 = a;
166
- a = b;
167
- b = c;
168
- c = d;
169
- d = a2;
170
- }
171
- return out;
172
- }
173
- };
174
- class AESWrapper {
175
- static encrypt(messageBuf, keyBuf) {
176
- const key = AESWrapper.buf2Words((keyBuf));
177
- const message = AESWrapper.buf2Words((messageBuf));
178
- const a = new AES(key);
179
- const enc = a.encrypt(message);
180
- const encBuf = AESWrapper.words2Buf(enc);
181
- return encBuf;
182
- }
183
- static decrypt(encBuf, keyBuf) {
184
- const enc = AESWrapper.buf2Words((encBuf));
185
- const key = AESWrapper.buf2Words((keyBuf));
186
- const a = new AES(key);
187
- const message = a.decrypt(enc);
188
- const messageBuf = AESWrapper.words2Buf(message);
189
- return messageBuf;
190
- }
191
- static buf2Words(buf) {
192
- if (buf.length % 4) {
193
- throw new Error('buf length must be a multiple of 4');
194
- }
195
- const words = [];
196
- for (let i = 0; i < buf.length / 4; i++) {
197
- const val = (buf[i * 4] * 0x1000000) + // Shift the first byte by 24 bits
198
- ((buf[i * 4 + 1] << 16) | // Shift the second byte by 16 bits
199
- (buf[i * 4 + 2] << 8) | // Shift the third byte by 8 bits
200
- buf[i * 4 + 3]); // The fourth byte
201
- words.push(val);
202
- }
203
- return words;
204
- }
205
- static words2Buf(words) {
206
- const buf = new Array(words.length * 4);
207
- for (let i = 0; i < words.length; i++) {
208
- const word = words[i];
209
- buf[i * 4] = (word >>> 24) & 0xFF;
210
- buf[i * 4 + 1] = (word >>> 16) & 0xFF;
211
- buf[i * 4 + 2] = (word >>> 8) & 0xFF;
212
- buf[i * 4 + 3] = word & 0xFF;
213
- }
214
- return buf;
215
- }
216
- }
217
- class CBC {
218
- static buf2BlocksBuf(buf, blockSize) {
219
- const bytesize = blockSize / 8;
220
- const blockBufs = [];
221
- for (let i = 0; i <= buf.length / bytesize; i++) {
222
- let blockBuf = buf.slice(i * bytesize, i * bytesize + bytesize);
223
- if (blockBuf.length < blockSize) {
224
- blockBuf = CBC.pkcs7Pad(blockBuf, blockSize);
225
- }
226
- blockBufs.push(blockBuf);
227
- }
228
- return blockBufs;
229
- }
230
- static blockBufs2Buf(blockBufs) {
231
- let last = blockBufs[blockBufs.length - 1];
232
- last = CBC.pkcs7Unpad(last);
233
- blockBufs[blockBufs.length - 1] = last;
234
- const buf = blockBufs.flat();
235
- return buf;
236
- }
237
- static encrypt(messageBuf, ivBuf, blockCipher /* TODO: type */, cipherKeyBuf) {
238
- const blockSize = ivBuf.length * 8;
239
- const blockBufs = CBC.buf2BlocksBuf(messageBuf, blockSize);
240
- const encBufs = CBC.encryptBlocks(blockBufs, ivBuf, blockCipher, cipherKeyBuf);
241
- const encBuf = encBufs.flat();
242
- return encBuf;
243
- }
244
- static decrypt(encBuf, ivBuf, blockCipher /* TODO: type */, cipherKeyBuf) {
245
- const bytesize = ivBuf.length;
246
- const encBufs = [];
247
- for (let i = 0; i < encBuf.length / bytesize; i++) {
248
- encBufs.push(encBuf.slice(i * bytesize, i * bytesize + bytesize));
249
- }
250
- const blockBufs = CBC.decryptBlocks(encBufs, ivBuf, blockCipher, cipherKeyBuf);
251
- const buf = CBC.blockBufs2Buf(blockBufs);
252
- return buf;
253
- }
254
- static encryptBlock(blockBuf, ivBuf, blockCipher /* TODO: type */, cipherKeyBuf) {
255
- const xorbuf = CBC.xorBufs(blockBuf, ivBuf);
256
- const encBuf = blockCipher.encrypt(xorbuf, cipherKeyBuf);
257
- return encBuf;
258
- }
259
- static decryptBlock(encBuf, ivBuf, blockCipher /* TODO: type */, cipherKeyBuf) {
260
- const xorbuf = blockCipher.decrypt(encBuf, cipherKeyBuf);
261
- const blockBuf = CBC.xorBufs(xorbuf, ivBuf);
262
- return blockBuf;
263
- }
264
- static encryptBlocks(blockBufs, ivBuf, blockCipher /* TODO: type */, cipherKeyBuf) {
265
- const encBufs = [];
266
- for (let i = 0; i < blockBufs.length; i++) {
267
- const blockBuf = blockBufs[i];
268
- const encBuf = CBC.encryptBlock(blockBuf, ivBuf, blockCipher, cipherKeyBuf);
269
- encBufs.push(encBuf);
270
- ivBuf = encBuf;
271
- }
272
- return encBufs;
273
- }
274
- static decryptBlocks(encBufs, ivBuf, blockCipher /* TODO: type */, cipherKeyBuf) {
275
- const blockBufs = [];
276
- for (let i = 0; i < encBufs.length; i++) {
277
- const encBuf = encBufs[i];
278
- const blockBuf = CBC.decryptBlock(encBuf, ivBuf, blockCipher, cipherKeyBuf);
279
- blockBufs.push(blockBuf);
280
- ivBuf = encBuf;
281
- }
282
- return blockBufs;
283
- }
284
- static pkcs7Pad(buf, blockSize) {
285
- const bytesize = blockSize / 8;
286
- const padbytesize = bytesize - buf.length;
287
- const pad = new Array(padbytesize);
288
- pad.fill(padbytesize);
289
- const paddedbuf = [...buf, ...pad];
290
- return paddedbuf;
291
- }
292
- static pkcs7Unpad(paddedbuf) {
293
- const padlength = paddedbuf[paddedbuf.length - 1];
294
- const padbuf = paddedbuf.slice(paddedbuf.length - padlength, paddedbuf.length);
295
- const padbuf2 = new Array(padlength);
296
- padbuf2.fill(padlength);
297
- if (toHex(padbuf) !== toHex(padbuf2)) {
298
- throw new Error('invalid padding');
299
- }
300
- return paddedbuf.slice(0, paddedbuf.length - padlength);
301
- }
302
- static xorBufs(buf1, buf2) {
303
- if (buf1.length !== buf2.length) {
304
- throw new Error('bufs must have the same length');
305
- }
306
- const buf = new Array(buf1.length);
307
- for (let i = 0; i < buf1.length; i++) {
308
- buf[i] = buf1[i] ^ buf2[i];
309
- }
310
- return buf;
311
- }
312
- }
313
- class AESCBC {
314
- static encrypt(messageBuf, cipherKeyBuf, ivBuf, concatIvBuf = true) {
315
- ivBuf = ivBuf || new Array(128 / 8).fill(0) || Random(128 / 8);
316
- const ctBuf = CBC.encrypt(messageBuf, ivBuf, AESWrapper, cipherKeyBuf);
317
- if (concatIvBuf) {
318
- return [...ivBuf, ...ctBuf];
319
- }
320
- else {
321
- return [...ctBuf];
322
- }
323
- }
324
- static decrypt(encBuf, cipherKeyBuf, ivBuf) {
325
- if (!ivBuf) {
326
- ivBuf = encBuf.slice(0, 128 / 8);
327
- const ctBuf = encBuf.slice(128 / 8);
328
- return CBC.decrypt(ctBuf, ivBuf, AESWrapper, cipherKeyBuf);
329
- }
330
- else {
331
- const ctBuf = encBuf;
332
- return CBC.decrypt(ctBuf, ivBuf, AESWrapper, cipherKeyBuf);
333
- }
334
- }
335
- }
336
- /**
337
- * @class ECIES
338
- * Implements the Electrum ECIES protocol for encrypted communication.
339
- *
340
- * @prprecated This class is deprecated in favor of the BRC-78 standard for portable encrypted messages,
341
- * which provides a more comprehensive and secure solution by integrating with BRC-42 and BRC-43 standards.
342
- */
343
- export default class ECIES {
344
- /**
345
- * Generates the initialization vector (iv), encryption key (kE), and MAC key (kM)
346
- * using the sender's private key and receiver's public key.
347
- *
348
- * @param {PrivateKey} privKey - The sender's private key.
349
- * @param {PublicKey} pubKey - The receiver's public key.
350
- * @returns {Object} An object containing the iv, kE, and kM as number arrays.
351
- */
352
- static ivkEkM(privKey, pubKey) {
353
- const r = privKey;
354
- const KB = pubKey;
355
- const P = KB.mul(r);
356
- const S = new PublicKey(P.x, P.y);
357
- const Sbuf = S.encode(true);
358
- const hash = Hash.sha512(Sbuf);
359
- return {
360
- iv: hash.slice(0, 16),
361
- kE: hash.slice(16, 32),
362
- kM: hash.slice(32, 64)
363
- };
364
- }
365
- /**
366
- * Encrypts a given message using the Electrum ECIES method.
367
- *
368
- * @param {number[]} messageBuf - The message to be encrypted, in number array format.
369
- * @param {PublicKey} toPublicKey - The public key of the recipient.
370
- * @param {PrivateKey} [fromPrivateKey] - The private key of the sender. If not provided, a random private key is used.
371
- * @param {boolean} [noKey=false] - If true, does not include the sender's public key in the encrypted message.
372
- * @returns {number[]} The encrypted message as a number array.
373
- */
374
- static electrumEncrypt(messageBuf, toPublicKey, fromPrivateKey, noKey = false) {
375
- let Rbuf;
376
- if (fromPrivateKey === null) {
377
- fromPrivateKey = PrivateKey.fromRandom();
378
- }
379
- if (!noKey) {
380
- Rbuf = fromPrivateKey.toPublicKey().encode(true);
381
- }
382
- const { iv, kE, kM } = ECIES.ivkEkM(fromPrivateKey, toPublicKey);
383
- const ciphertext = AESCBC.encrypt(messageBuf, kE, iv, false);
384
- const BIE1 = toArray('BIE1', 'utf8');
385
- let encBuf;
386
- if (Rbuf) {
387
- encBuf = [...BIE1, ...Rbuf, ...ciphertext];
388
- }
389
- else {
390
- encBuf = [...BIE1, ...ciphertext];
391
- }
392
- const hmac = Hash.sha256hmac(kM, encBuf);
393
- return [...encBuf, ...hmac];
394
- }
395
- /**
396
- * Decrypts a message encrypted using the Electrum ECIES method.
397
- *
398
- * @param {number[]} encBuf - The encrypted message buffer.
399
- * @param {PrivateKey} toPrivateKey - The private key of the recipient.
400
- * @param {PublicKey} [fromPublicKey=null] - The public key of the sender. If not provided, it is extracted from the message.
401
- * @returns {number[]} The decrypted message as a number array.
402
- */
403
- static electrumDecrypt(encBuf, toPrivateKey, fromPublicKey = null) {
404
- const tagLength = 32;
405
- const magic = encBuf.slice(0, 4);
406
- if (encode(magic, 'utf8') !== 'BIE1') {
407
- throw new Error('Invalid Magic');
408
- }
409
- let offset = 4;
410
- if (fromPublicKey === null) {
411
- // BIE1 use compressed public key, length is always 33.
412
- const pub = encBuf.slice(4, 37);
413
- fromPublicKey = PublicKey.fromString(toHex(pub));
414
- offset = 37;
415
- }
416
- const { iv, kE, kM } = ECIES.ivkEkM(toPrivateKey, fromPublicKey);
417
- const ciphertext = encBuf.slice(offset, encBuf.length - tagLength);
418
- const hmac = encBuf.slice(encBuf.length - tagLength, encBuf.length);
419
- const hmac2 = Hash.sha256hmac(kM, encBuf.slice(0, encBuf.length - tagLength));
420
- if (toHex(hmac) !== toHex(hmac2)) {
421
- throw new Error('Invalid checksum');
422
- }
423
- return AESCBC.decrypt(ciphertext, kE, iv);
424
- }
425
- /**
426
- * Encrypts a given message using the Bitcore variant of ECIES.
427
- *
428
- * @param {number[]} messageBuf - The message to be encrypted, in number array format.
429
- * @param {PublicKey} toPublicKey - The public key of the recipient.
430
- * @param {PrivateKey} [fromPrivateKey] - The private key of the sender. If not provided, a random private key is used.
431
- * @param {number[]} [ivBuf] - The initialization vector for encryption. If not provided, a random IV is used.
432
- * @returns {number[]} The encrypted message as a number array.
433
- */
434
- static bitcoreEncrypt(messageBuf, toPublicKey, fromPrivateKey, ivBuf) {
435
- if (!fromPrivateKey) {
436
- fromPrivateKey = PrivateKey.fromRandom();
437
- }
438
- const r = fromPrivateKey;
439
- const RPublicKey = fromPrivateKey.toPublicKey();
440
- const RBuf = RPublicKey.encode(true);
441
- const KB = toPublicKey;
442
- const P = KB.mul(r);
443
- const S = P.getX();
444
- const Sbuf = S.toArray('be', 32);
445
- const kEkM = Hash.sha512(Sbuf);
446
- const kE = kEkM.slice(0, 32);
447
- const kM = kEkM.slice(32, 64);
448
- const c = AESCBC.encrypt(messageBuf, kE, ivBuf);
449
- const d = Hash.sha256hmac(kM, [...c]);
450
- const encBuf = [...RBuf, ...c, ...d];
451
- return encBuf;
452
- }
453
- /**
454
- * Decrypts a message encrypted using the Bitcore variant of ECIES.
455
- *
456
- * @param {number[]} encBuf - The encrypted message buffer.
457
- * @param {PrivateKey} toPrivateKey - The private key of the recipient.
458
- * @returns {number[]} The decrypted message as a number array.
459
- */
460
- static bitcoreDecrypt(encBuf, toPrivateKey) {
461
- const kB = toPrivateKey;
462
- const fromPublicKey = PublicKey.fromString(toHex(encBuf.slice(0, 33)));
463
- const R = fromPublicKey;
464
- const P = R.mul(kB);
465
- if (P.eq(new Point(0, 0))) {
466
- throw new Error('P equals 0');
467
- }
468
- const S = P.getX();
469
- const Sbuf = S.toArray('be', 32);
470
- const kEkM = Hash.sha512(Sbuf);
471
- const kE = kEkM.slice(0, 32);
472
- const kM = kEkM.slice(32, 64);
473
- const c = encBuf.slice(33, encBuf.length - 32);
474
- const d = encBuf.slice(encBuf.length - 32, encBuf.length);
475
- const d2 = Hash.sha256hmac(kM, c);
476
- if (toHex(d) !== toHex(d2)) {
477
- throw new Error('Invalid checksum');
478
- }
479
- const messageBuf = AESCBC.decrypt(c, kE);
480
- return [...messageBuf];
481
- }
482
- }
483
- //# sourceMappingURL=ECIES.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ECIES.js","sourceRoot":"","sources":["../../../../src/compat/ECIES.ts"],"names":[],"mappings":"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"}