@bsv/sdk 1.3.12 → 1.3.14

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 (607) hide show
  1. package/dist/cjs/package.json +15 -3
  2. package/dist/cjs/src/auth/Peer.js +83 -57
  3. package/dist/cjs/src/auth/Peer.js.map +1 -1
  4. package/dist/cjs/src/auth/SessionManager.js +14 -9
  5. package/dist/cjs/src/auth/SessionManager.js.map +1 -1
  6. package/dist/cjs/src/auth/certificates/Certificate.js +16 -10
  7. package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -1
  8. package/dist/cjs/src/auth/certificates/MasterCertificate.js +25 -23
  9. package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
  10. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +2 -2
  11. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  12. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +62 -46
  13. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  14. package/dist/cjs/src/auth/clients/AuthFetch.js +1 -0
  15. package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
  16. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +70 -43
  17. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  18. package/dist/cjs/src/auth/utils/createNonce.js +2 -1
  19. package/dist/cjs/src/auth/utils/createNonce.js.map +1 -1
  20. package/dist/cjs/src/auth/utils/getVerifiableCertificates.js.map +1 -1
  21. package/dist/cjs/src/auth/utils/validateCertificates.js +5 -2
  22. package/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -1
  23. package/dist/cjs/src/auth/utils/verifyNonce.js +2 -1
  24. package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -1
  25. package/dist/cjs/src/compat/BSM.js +7 -17
  26. package/dist/cjs/src/compat/BSM.js.map +1 -1
  27. package/dist/cjs/src/compat/ECIES.js +172 -133
  28. package/dist/cjs/src/compat/ECIES.js.map +1 -1
  29. package/dist/cjs/src/compat/HD.js +63 -73
  30. package/dist/cjs/src/compat/HD.js.map +1 -1
  31. package/dist/cjs/src/compat/Mnemonic.js +102 -106
  32. package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
  33. package/dist/cjs/src/compat/Utxo.js +2 -2
  34. package/dist/cjs/src/compat/Utxo.js.map +1 -1
  35. package/dist/cjs/src/compat/index.js +7 -17
  36. package/dist/cjs/src/compat/index.js.map +1 -1
  37. package/dist/cjs/src/messages/EncryptedMessage.js +3 -1
  38. package/dist/cjs/src/messages/EncryptedMessage.js.map +1 -1
  39. package/dist/cjs/src/messages/SignedMessage.js +1 -0
  40. package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
  41. package/dist/cjs/src/messages/index.js +7 -17
  42. package/dist/cjs/src/messages/index.js.map +1 -1
  43. package/dist/cjs/src/overlay-tools/LookupResolver.js +54 -35
  44. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
  45. package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js +32 -20
  46. package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
  47. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +40 -28
  48. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  49. package/dist/cjs/src/primitives/AESGCM.js +6 -5
  50. package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
  51. package/dist/cjs/src/primitives/BasePoint.js +1 -1
  52. package/dist/cjs/src/primitives/BasePoint.js.map +1 -1
  53. package/dist/cjs/src/primitives/BigNumber.js +50 -62
  54. package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
  55. package/dist/cjs/src/primitives/Curve.js +46 -22
  56. package/dist/cjs/src/primitives/Curve.js.map +1 -1
  57. package/dist/cjs/src/primitives/DRBG.js +2 -8
  58. package/dist/cjs/src/primitives/DRBG.js.map +1 -1
  59. package/dist/cjs/src/primitives/ECDSA.js +51 -35
  60. package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
  61. package/dist/cjs/src/primitives/Hash.js +191 -216
  62. package/dist/cjs/src/primitives/Hash.js.map +1 -1
  63. package/dist/cjs/src/primitives/JacobianPoint.js +19 -5
  64. package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
  65. package/dist/cjs/src/primitives/K256.js.map +1 -1
  66. package/dist/cjs/src/primitives/Mersenne.js.map +1 -1
  67. package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -1
  68. package/dist/cjs/src/primitives/Point.js +117 -88
  69. package/dist/cjs/src/primitives/Point.js.map +1 -1
  70. package/dist/cjs/src/primitives/Polynomial.js +4 -2
  71. package/dist/cjs/src/primitives/Polynomial.js.map +1 -1
  72. package/dist/cjs/src/primitives/PrivateKey.js +32 -33
  73. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  74. package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
  75. package/dist/cjs/src/primitives/Random.js +6 -5
  76. package/dist/cjs/src/primitives/Random.js.map +1 -1
  77. package/dist/cjs/src/primitives/ReductionContext.js +1 -1
  78. package/dist/cjs/src/primitives/ReductionContext.js.map +1 -1
  79. package/dist/cjs/src/primitives/Schnorr.js +21 -15
  80. package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
  81. package/dist/cjs/src/primitives/Signature.js +8 -7
  82. package/dist/cjs/src/primitives/Signature.js.map +1 -1
  83. package/dist/cjs/src/primitives/SymmetricKey.js +13 -13
  84. package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
  85. package/dist/cjs/src/primitives/TransactionSignature.js +31 -29
  86. package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
  87. package/dist/cjs/src/primitives/index.js +7 -17
  88. package/dist/cjs/src/primitives/index.js.map +1 -1
  89. package/dist/cjs/src/primitives/utils.js +79 -68
  90. package/dist/cjs/src/primitives/utils.js.map +1 -1
  91. package/dist/cjs/src/script/OP.js +3 -3
  92. package/dist/cjs/src/script/OP.js.map +1 -1
  93. package/dist/cjs/src/script/Script.js +12 -10
  94. package/dist/cjs/src/script/Script.js.map +1 -1
  95. package/dist/cjs/src/script/Spend.js +47 -49
  96. package/dist/cjs/src/script/Spend.js.map +1 -1
  97. package/dist/cjs/src/script/templates/P2PKH.js +24 -12
  98. package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
  99. package/dist/cjs/src/script/templates/PushDrop.js +28 -23
  100. package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
  101. package/dist/cjs/src/script/templates/RPuzzle.js +10 -6
  102. package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
  103. package/dist/cjs/src/totp/totp.js +2 -1
  104. package/dist/cjs/src/totp/totp.js.map +1 -1
  105. package/dist/cjs/src/transaction/Beef.js +177 -154
  106. package/dist/cjs/src/transaction/Beef.js.map +1 -1
  107. package/dist/cjs/src/transaction/BeefParty.js +24 -24
  108. package/dist/cjs/src/transaction/BeefParty.js.map +1 -1
  109. package/dist/cjs/src/transaction/BeefTx.js +26 -18
  110. package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
  111. package/dist/cjs/src/transaction/Broadcaster.js +3 -2
  112. package/dist/cjs/src/transaction/Broadcaster.js.map +1 -1
  113. package/dist/cjs/src/transaction/MerklePath.js +64 -37
  114. package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
  115. package/dist/cjs/src/transaction/Transaction.js +111 -137
  116. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  117. package/dist/cjs/src/transaction/broadcasters/ARC.js +25 -16
  118. package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
  119. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js +2 -1
  120. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  121. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  122. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js +2 -1
  123. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
  124. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
  125. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  126. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  127. package/dist/cjs/src/transaction/http/DefaultHttpClient.js +5 -3
  128. package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
  129. package/dist/cjs/src/transaction/http/FetchHttpClient.js +5 -2
  130. package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -1
  131. package/dist/cjs/src/transaction/http/NodejsHttpClient.js +5 -3
  132. package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -1
  133. package/dist/cjs/src/transaction/http/index.js.map +1 -1
  134. package/dist/cjs/src/transaction/index.js.map +1 -1
  135. package/dist/cjs/src/wallet/CachedKeyDeriver.js +91 -66
  136. package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
  137. package/dist/cjs/src/wallet/KeyDeriver.js +61 -52
  138. package/dist/cjs/src/wallet/KeyDeriver.js.map +1 -1
  139. package/dist/cjs/src/wallet/ProtoWallet.js +79 -29
  140. package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
  141. package/dist/cjs/src/wallet/WalletClient.js +7 -2
  142. package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
  143. package/dist/cjs/src/wallet/WalletError.js +2 -2
  144. package/dist/cjs/src/wallet/WalletError.js.map +1 -1
  145. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +4 -3
  146. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  147. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +2 -2
  148. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  149. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +1239 -1261
  150. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  151. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +102 -43
  152. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  153. package/dist/cjs/src/wallet/substrates/XDM.js +8 -3
  154. package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
  155. package/dist/cjs/src/wallet/substrates/window.CWI.js +28 -28
  156. package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -1
  157. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  158. package/dist/esm/mod.js +15 -15
  159. package/dist/esm/src/auth/Peer.js +75 -54
  160. package/dist/esm/src/auth/Peer.js.map +1 -1
  161. package/dist/esm/src/auth/SessionManager.js +14 -9
  162. package/dist/esm/src/auth/SessionManager.js.map +1 -1
  163. package/dist/esm/src/auth/certificates/Certificate.js +15 -11
  164. package/dist/esm/src/auth/certificates/Certificate.js.map +1 -1
  165. package/dist/esm/src/auth/certificates/MasterCertificate.js +25 -23
  166. package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
  167. package/dist/esm/src/auth/certificates/VerifiableCertificate.js +2 -2
  168. package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  169. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +64 -47
  170. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  171. package/dist/esm/src/auth/clients/AuthFetch.js +1 -0
  172. package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
  173. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +69 -43
  174. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  175. package/dist/esm/src/auth/utils/createNonce.js.map +1 -1
  176. package/dist/esm/src/auth/utils/getVerifiableCertificates.js +1 -1
  177. package/dist/esm/src/auth/utils/getVerifiableCertificates.js.map +1 -1
  178. package/dist/esm/src/auth/utils/validateCertificates.js +6 -3
  179. package/dist/esm/src/auth/utils/validateCertificates.js.map +1 -1
  180. package/dist/esm/src/auth/utils/verifyNonce.js.map +1 -1
  181. package/dist/esm/src/compat/BSM.js.map +1 -1
  182. package/dist/esm/src/compat/ECIES.js +165 -116
  183. package/dist/esm/src/compat/ECIES.js.map +1 -1
  184. package/dist/esm/src/compat/HD.js +56 -56
  185. package/dist/esm/src/compat/HD.js.map +1 -1
  186. package/dist/esm/src/compat/Mnemonic.js +95 -89
  187. package/dist/esm/src/compat/Mnemonic.js.map +1 -1
  188. package/dist/esm/src/compat/Utxo.js +1 -1
  189. package/dist/esm/src/compat/Utxo.js.map +1 -1
  190. package/dist/esm/src/messages/EncryptedMessage.js +3 -1
  191. package/dist/esm/src/messages/EncryptedMessage.js.map +1 -1
  192. package/dist/esm/src/messages/SignedMessage.js +1 -0
  193. package/dist/esm/src/messages/SignedMessage.js.map +1 -1
  194. package/dist/esm/src/overlay-tools/LookupResolver.js +53 -35
  195. package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
  196. package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js +32 -20
  197. package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
  198. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +40 -28
  199. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  200. package/dist/esm/src/primitives/AESGCM.js +1 -0
  201. package/dist/esm/src/primitives/AESGCM.js.map +1 -1
  202. package/dist/esm/src/primitives/BasePoint.js +1 -1
  203. package/dist/esm/src/primitives/BasePoint.js.map +1 -1
  204. package/dist/esm/src/primitives/BigNumber.js +50 -62
  205. package/dist/esm/src/primitives/BigNumber.js.map +1 -1
  206. package/dist/esm/src/primitives/Curve.js +45 -22
  207. package/dist/esm/src/primitives/Curve.js.map +1 -1
  208. package/dist/esm/src/primitives/DRBG.js +2 -8
  209. package/dist/esm/src/primitives/DRBG.js.map +1 -1
  210. package/dist/esm/src/primitives/ECDSA.js +50 -35
  211. package/dist/esm/src/primitives/ECDSA.js.map +1 -1
  212. package/dist/esm/src/primitives/Hash.js +188 -213
  213. package/dist/esm/src/primitives/Hash.js.map +1 -1
  214. package/dist/esm/src/primitives/JacobianPoint.js +18 -5
  215. package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
  216. package/dist/esm/src/primitives/K256.js.map +1 -1
  217. package/dist/esm/src/primitives/Mersenne.js.map +1 -1
  218. package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -1
  219. package/dist/esm/src/primitives/Point.js +107 -88
  220. package/dist/esm/src/primitives/Point.js.map +1 -1
  221. package/dist/esm/src/primitives/Polynomial.js +4 -2
  222. package/dist/esm/src/primitives/Polynomial.js.map +1 -1
  223. package/dist/esm/src/primitives/PrivateKey.js +25 -16
  224. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  225. package/dist/esm/src/primitives/PublicKey.js.map +1 -1
  226. package/dist/esm/src/primitives/Random.js +7 -6
  227. package/dist/esm/src/primitives/Random.js.map +1 -1
  228. package/dist/esm/src/primitives/ReductionContext.js +1 -1
  229. package/dist/esm/src/primitives/ReductionContext.js.map +1 -1
  230. package/dist/esm/src/primitives/Schnorr.js +21 -15
  231. package/dist/esm/src/primitives/Schnorr.js.map +1 -1
  232. package/dist/esm/src/primitives/Signature.js +8 -7
  233. package/dist/esm/src/primitives/Signature.js.map +1 -1
  234. package/dist/esm/src/primitives/SymmetricKey.js +13 -13
  235. package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
  236. package/dist/esm/src/primitives/TransactionSignature.js +22 -12
  237. package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
  238. package/dist/esm/src/primitives/utils.js +76 -66
  239. package/dist/esm/src/primitives/utils.js.map +1 -1
  240. package/dist/esm/src/script/OP.js +3 -3
  241. package/dist/esm/src/script/OP.js.map +1 -1
  242. package/dist/esm/src/script/Script.js +12 -10
  243. package/dist/esm/src/script/Script.js.map +1 -1
  244. package/dist/esm/src/script/Spend.js +39 -32
  245. package/dist/esm/src/script/Spend.js.map +1 -1
  246. package/dist/esm/src/script/templates/P2PKH.js +26 -11
  247. package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
  248. package/dist/esm/src/script/templates/PushDrop.js +29 -22
  249. package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
  250. package/dist/esm/src/script/templates/RPuzzle.js +11 -6
  251. package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
  252. package/dist/esm/src/totp/totp.js +2 -1
  253. package/dist/esm/src/totp/totp.js.map +1 -1
  254. package/dist/esm/src/transaction/Beef.js +176 -154
  255. package/dist/esm/src/transaction/Beef.js.map +1 -1
  256. package/dist/esm/src/transaction/BeefParty.js +24 -24
  257. package/dist/esm/src/transaction/BeefParty.js.map +1 -1
  258. package/dist/esm/src/transaction/BeefTx.js +26 -18
  259. package/dist/esm/src/transaction/BeefTx.js.map +1 -1
  260. package/dist/esm/src/transaction/Broadcaster.js.map +1 -1
  261. package/dist/esm/src/transaction/MerklePath.js +61 -36
  262. package/dist/esm/src/transaction/MerklePath.js.map +1 -1
  263. package/dist/esm/src/transaction/Transaction.js +105 -138
  264. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  265. package/dist/esm/src/transaction/broadcasters/ARC.js +25 -16
  266. package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
  267. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  268. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  269. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
  270. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  271. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  272. package/dist/esm/src/transaction/http/DefaultHttpClient.js +3 -2
  273. package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
  274. package/dist/esm/src/transaction/http/FetchHttpClient.js +4 -2
  275. package/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -1
  276. package/dist/esm/src/transaction/http/NodejsHttpClient.js +5 -3
  277. package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -1
  278. package/dist/esm/src/transaction/http/index.js.map +1 -1
  279. package/dist/esm/src/transaction/index.js.map +1 -1
  280. package/dist/esm/src/wallet/CachedKeyDeriver.js +91 -66
  281. package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
  282. package/dist/esm/src/wallet/KeyDeriver.js +60 -52
  283. package/dist/esm/src/wallet/KeyDeriver.js.map +1 -1
  284. package/dist/esm/src/wallet/ProtoWallet.js +75 -29
  285. package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
  286. package/dist/esm/src/wallet/WalletClient.js +7 -2
  287. package/dist/esm/src/wallet/WalletClient.js.map +1 -1
  288. package/dist/esm/src/wallet/WalletError.js +2 -2
  289. package/dist/esm/src/wallet/WalletError.js.map +1 -1
  290. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +4 -4
  291. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  292. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js +2 -2
  293. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  294. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1239 -1261
  295. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  296. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +95 -43
  297. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  298. package/dist/esm/src/wallet/substrates/XDM.js +8 -3
  299. package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
  300. package/dist/esm/src/wallet/substrates/window.CWI.js +28 -28
  301. package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -1
  302. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  303. package/dist/types/mod.d.ts +15 -15
  304. package/dist/types/src/auth/Peer.d.ts +10 -10
  305. package/dist/types/src/auth/Peer.d.ts.map +1 -1
  306. package/dist/types/src/auth/SessionManager.d.ts +4 -4
  307. package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
  308. package/dist/types/src/auth/certificates/Certificate.d.ts +6 -6
  309. package/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -1
  310. package/dist/types/src/auth/certificates/MasterCertificate.d.ts +5 -5
  311. package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
  312. package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -1
  313. package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts +23 -22
  314. package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts.map +1 -1
  315. package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
  316. package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts +1 -1
  317. package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts.map +1 -1
  318. package/dist/types/src/auth/utils/createNonce.d.ts.map +1 -1
  319. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts +3 -3
  320. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts.map +1 -1
  321. package/dist/types/src/auth/utils/validateCertificates.d.ts +2 -2
  322. package/dist/types/src/auth/utils/validateCertificates.d.ts.map +1 -1
  323. package/dist/types/src/auth/utils/verifyNonce.d.ts +1 -1
  324. package/dist/types/src/auth/utils/verifyNonce.d.ts.map +1 -1
  325. package/dist/types/src/compat/BSM.d.ts +1 -1
  326. package/dist/types/src/compat/BSM.d.ts.map +1 -1
  327. package/dist/types/src/compat/ECIES.d.ts +36 -36
  328. package/dist/types/src/compat/ECIES.d.ts.map +1 -1
  329. package/dist/types/src/compat/HD.d.ts +51 -51
  330. package/dist/types/src/compat/HD.d.ts.map +1 -1
  331. package/dist/types/src/compat/Mnemonic.d.ts +79 -79
  332. package/dist/types/src/compat/Mnemonic.d.ts.map +1 -1
  333. package/dist/types/src/compat/Utxo.d.ts.map +1 -1
  334. package/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -1
  335. package/dist/types/src/messages/SignedMessage.d.ts.map +1 -1
  336. package/dist/types/src/overlay-tools/LookupResolver.d.ts +9 -9
  337. package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
  338. package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts +17 -17
  339. package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts.map +1 -1
  340. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +14 -14
  341. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
  342. package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
  343. package/dist/types/src/primitives/BasePoint.d.ts +8 -8
  344. package/dist/types/src/primitives/BasePoint.d.ts.map +1 -1
  345. package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
  346. package/dist/types/src/primitives/Curve.d.ts +14 -7
  347. package/dist/types/src/primitives/Curve.d.ts.map +1 -1
  348. package/dist/types/src/primitives/DRBG.d.ts.map +1 -1
  349. package/dist/types/src/primitives/ECDSA.d.ts +1 -1
  350. package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
  351. package/dist/types/src/primitives/Hash.d.ts +11 -11
  352. package/dist/types/src/primitives/Hash.d.ts.map +1 -1
  353. package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -1
  354. package/dist/types/src/primitives/Point.d.ts +14 -10
  355. package/dist/types/src/primitives/Point.d.ts.map +1 -1
  356. package/dist/types/src/primitives/Polynomial.d.ts.map +1 -1
  357. package/dist/types/src/primitives/PrivateKey.d.ts +2 -2
  358. package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
  359. package/dist/types/src/primitives/PublicKey.d.ts.map +1 -1
  360. package/dist/types/src/primitives/Random.d.ts.map +1 -1
  361. package/dist/types/src/primitives/Schnorr.d.ts +14 -14
  362. package/dist/types/src/primitives/Schnorr.d.ts.map +1 -1
  363. package/dist/types/src/primitives/Signature.d.ts +1 -1
  364. package/dist/types/src/primitives/Signature.d.ts.map +1 -1
  365. package/dist/types/src/primitives/SymmetricKey.d.ts +13 -13
  366. package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
  367. package/dist/types/src/primitives/TransactionSignature.d.ts +4 -4
  368. package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -1
  369. package/dist/types/src/primitives/utils.d.ts +3 -6
  370. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  371. package/dist/types/src/script/Script.d.ts +3 -3
  372. package/dist/types/src/script/Script.d.ts.map +1 -1
  373. package/dist/types/src/script/ScriptTemplate.d.ts +2 -2
  374. package/dist/types/src/script/ScriptTemplate.d.ts.map +1 -1
  375. package/dist/types/src/script/Spend.d.ts.map +1 -1
  376. package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -1
  377. package/dist/types/src/script/templates/PushDrop.d.ts +1 -2
  378. package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
  379. package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -1
  380. package/dist/types/src/totp/totp.d.ts.map +1 -1
  381. package/dist/types/src/transaction/Beef.d.ts +96 -96
  382. package/dist/types/src/transaction/Beef.d.ts.map +1 -1
  383. package/dist/types/src/transaction/BeefParty.d.ts +22 -22
  384. package/dist/types/src/transaction/BeefParty.d.ts.map +1 -1
  385. package/dist/types/src/transaction/BeefTx.d.ts +5 -5
  386. package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
  387. package/dist/types/src/transaction/Broadcaster.d.ts.map +1 -1
  388. package/dist/types/src/transaction/ChainTracker.d.ts +2 -2
  389. package/dist/types/src/transaction/FeeModel.d.ts.map +1 -1
  390. package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
  391. package/dist/types/src/transaction/Transaction.d.ts +4 -12
  392. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  393. package/dist/types/src/transaction/TransactionOutput.d.ts.map +1 -1
  394. package/dist/types/src/transaction/broadcasters/ARC.d.ts +1 -1
  395. package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
  396. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -1
  397. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -1
  398. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -1
  399. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -1
  400. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -1
  401. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts +1 -1
  402. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -1
  403. package/dist/types/src/transaction/http/FetchHttpClient.d.ts +5 -5
  404. package/dist/types/src/transaction/http/FetchHttpClient.d.ts.map +1 -1
  405. package/dist/types/src/transaction/http/HttpClient.d.ts +4 -4
  406. package/dist/types/src/transaction/http/HttpClient.d.ts.map +1 -1
  407. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts +3 -3
  408. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -1
  409. package/dist/types/src/transaction/http/index.d.ts.map +1 -1
  410. package/dist/types/src/transaction/index.d.ts.map +1 -1
  411. package/dist/types/src/wallet/CachedKeyDeriver.d.ts +58 -58
  412. package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
  413. package/dist/types/src/wallet/KeyDeriver.d.ts +78 -78
  414. package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
  415. package/dist/types/src/wallet/ProtoWallet.d.ts +10 -10
  416. package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -1
  417. package/dist/types/src/wallet/Wallet.interfaces.d.ts +151 -152
  418. package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
  419. package/dist/types/src/wallet/WalletClient.d.ts +5 -5
  420. package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
  421. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +6 -6
  422. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
  423. package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts.map +1 -1
  424. package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts.map +1 -1
  425. package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
  426. package/dist/types/src/wallet/substrates/XDM.d.ts +1 -1
  427. package/dist/types/src/wallet/substrates/XDM.d.ts.map +1 -1
  428. package/dist/types/src/wallet/substrates/window.CWI.d.ts +6 -6
  429. package/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -1
  430. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  431. package/dist/umd/bundle.js +1 -1
  432. package/docs/auth.md +92 -82
  433. package/docs/compat.md +24 -24
  434. package/docs/messages.md +7 -5
  435. package/docs/overlay-tools.md +21 -21
  436. package/docs/primitives.md +336 -315
  437. package/docs/script.md +35 -35
  438. package/docs/swagger/dist/swagger-initializer.js +7 -7
  439. package/docs/swagger/dist/swagger-ui-bundle.js +1 -1
  440. package/docs/swagger/dist/swagger-ui-es-bundle-core.js +2 -2
  441. package/docs/swagger/dist/swagger-ui-es-bundle.js +1 -1
  442. package/docs/swagger/dist/swagger-ui-standalone-preset.js +1 -1
  443. package/docs/swagger/dist/swagger-ui.js +2 -2
  444. package/docs/totp.md +5 -5
  445. package/docs/transaction.md +103 -105
  446. package/docs/wallet-substrates.md +17 -17
  447. package/docs/wallet.md +202 -204
  448. package/mod.ts +15 -15
  449. package/package.json +15 -3
  450. package/src/auth/Peer.ts +271 -121
  451. package/src/auth/SessionManager.ts +17 -10
  452. package/src/auth/__tests/Peer.test.ts +361 -179
  453. package/src/auth/__tests/SessionManager.test.ts +67 -19
  454. package/src/auth/__tests/build.test.ts +11 -0
  455. package/src/auth/certificates/Certificate.ts +27 -14
  456. package/src/auth/certificates/MasterCertificate.ts +106 -62
  457. package/src/auth/certificates/VerifiableCertificate.ts +30 -8
  458. package/src/auth/certificates/__tests/Certificate.test.ts +32 -17
  459. package/src/auth/certificates/__tests/CompletedProtoWallet.ts +171 -68
  460. package/src/auth/certificates/__tests/MasterCertificate.test.ts +63 -47
  461. package/src/auth/certificates/__tests/VerifiableCertificate.test.ts +42 -31
  462. package/src/auth/certificates/index.ts +1 -1
  463. package/src/auth/clients/AuthFetch.ts +1 -0
  464. package/src/auth/clients/index.ts +1 -1
  465. package/src/auth/transports/SimplifiedFetchTransport.ts +145 -72
  466. package/src/auth/transports/index.ts +1 -1
  467. package/src/auth/utils/__tests/cryptononce.test.ts +52 -23
  468. package/src/auth/utils/__tests/getVerifiableCertificates.test.ts +56 -30
  469. package/src/auth/utils/__tests/validateCertificates.test.ts +53 -31
  470. package/src/auth/utils/createNonce.ts +11 -3
  471. package/src/auth/utils/getVerifiableCertificates.ts +12 -7
  472. package/src/auth/utils/validateCertificates.ts +57 -39
  473. package/src/auth/utils/verifyNonce.ts +6 -2
  474. package/src/compat/BSM.ts +10 -2
  475. package/src/compat/ECIES.ts +265 -141
  476. package/src/compat/HD.ts +81 -63
  477. package/src/compat/Mnemonic.ts +104 -91
  478. package/src/compat/Utxo.ts +8 -5
  479. package/src/compat/__tests/BSM.test.ts +42 -16
  480. package/src/compat/__tests/ECIES.test.ts +117 -52
  481. package/src/compat/__tests/HD.test.ts +55 -42
  482. package/src/compat/__tests/Mnemonic.test.ts +11 -12
  483. package/src/compat/__tests/Mnemonic.vectors.ts +110 -55
  484. package/src/messages/EncryptedMessage.ts +6 -2
  485. package/src/messages/SignedMessage.ts +14 -8
  486. package/src/messages/__tests/EncryptedMessage.test.ts +23 -24
  487. package/src/messages/__tests/SignedMessage.test.ts +17 -11
  488. package/src/overlay-tools/LookupResolver.ts +108 -56
  489. package/src/overlay-tools/OverlayAdminTokenTemplate.ts +52 -23
  490. package/src/overlay-tools/SHIPBroadcaster.ts +135 -59
  491. package/src/overlay-tools/__tests/LookupResolver.test.ts +723 -323
  492. package/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.ts +50 -22
  493. package/src/overlay-tools/__tests/SHIPBroadcaster.test.ts +607 -290
  494. package/src/primitives/AESGCM.ts +2 -0
  495. package/src/primitives/BasePoint.ts +4 -4
  496. package/src/primitives/BigNumber.ts +99 -90
  497. package/src/primitives/Curve.ts +117 -46
  498. package/src/primitives/DRBG.ts +9 -11
  499. package/src/primitives/ECDSA.ts +109 -63
  500. package/src/primitives/Hash.ts +492 -321
  501. package/src/primitives/JacobianPoint.ts +67 -19
  502. package/src/primitives/Point.ts +254 -152
  503. package/src/primitives/Polynomial.ts +8 -3
  504. package/src/primitives/PrivateKey.ts +41 -17
  505. package/src/primitives/PublicKey.ts +13 -3
  506. package/src/primitives/Random.ts +14 -8
  507. package/src/primitives/ReductionContext.ts +1 -1
  508. package/src/primitives/Schnorr.ts +40 -18
  509. package/src/primitives/Signature.ts +26 -16
  510. package/src/primitives/SymmetricKey.ts +14 -14
  511. package/src/primitives/TransactionSignature.ts +41 -17
  512. package/src/primitives/__tests/AESGCM.test.ts +457 -151
  513. package/src/primitives/__tests/BRC42.private.vectors.ts +30 -15
  514. package/src/primitives/__tests/BRC42.public.vectors.ts +30 -15
  515. package/src/primitives/__tests/BigNumber.arithmatic.test.ts +344 -125
  516. package/src/primitives/__tests/BigNumber.binary.test.ts +148 -67
  517. package/src/primitives/__tests/BigNumber.constructor.test.ts +65 -25
  518. package/src/primitives/__tests/BigNumber.dhGroup.test.ts +15 -11
  519. package/src/primitives/__tests/BigNumber.fixtures.ts +16 -8
  520. package/src/primitives/__tests/BigNumber.serializers.test.ts +41 -15
  521. package/src/primitives/__tests/BigNumber.utils.test.ts +132 -42
  522. package/src/primitives/__tests/Curve.unit.test.ts +75 -53
  523. package/src/primitives/__tests/DRBG.test.ts +1 -1
  524. package/src/primitives/__tests/DRBG.vectors.ts +45 -75
  525. package/src/primitives/__tests/ECDH.test.ts +15 -8
  526. package/src/primitives/__tests/ECDSA.test.ts +12 -6
  527. package/src/primitives/__tests/HMAC.test.ts +24 -18
  528. package/src/primitives/__tests/Hash.test.ts +57 -46
  529. package/src/primitives/__tests/PBKDF2.vectors.ts +130 -117
  530. package/src/primitives/__tests/PrivateKey.split.test.ts +33 -11
  531. package/src/primitives/__tests/PrivateKey.test.ts +11 -10
  532. package/src/primitives/__tests/PublicKey.test.ts +64 -53
  533. package/src/primitives/__tests/Random.test.ts +1 -1
  534. package/src/primitives/__tests/Reader.test.ts +240 -219
  535. package/src/primitives/__tests/ReductionContext.test.ts +98 -61
  536. package/src/primitives/__tests/Schnorr.test.ts +249 -237
  537. package/src/primitives/__tests/SymmetricKey.test.ts +18 -15
  538. package/src/primitives/__tests/SymmetricKey.vectors.ts +16 -8
  539. package/src/primitives/__tests/Writer.test.ts +23 -13
  540. package/src/primitives/__tests/bug-31.test.ts +6 -10
  541. package/src/primitives/__tests/utils.test.ts +70 -19
  542. package/src/primitives/utils.ts +103 -79
  543. package/src/script/Script.ts +18 -12
  544. package/src/script/ScriptTemplate.ts +3 -5
  545. package/src/script/Spend.ts +306 -108
  546. package/src/script/__tests/Script.test.ts +73 -55
  547. package/src/script/__tests/Spend.test.ts +208 -83
  548. package/src/script/__tests/SpendComplex.test.ts +19 -13
  549. package/src/script/__tests/script.invalid.vectors.ts +428 -1796
  550. package/src/script/__tests/script.valid.vectors.ts +728 -2764
  551. package/src/script/templates/P2PKH.ts +34 -12
  552. package/src/script/templates/PushDrop.ts +65 -31
  553. package/src/script/templates/RPuzzle.ts +29 -8
  554. package/src/script/templates/__tests/PushDrop.test.ts +146 -41
  555. package/src/totp/__tests/totp.test.ts +45 -44
  556. package/src/totp/totp.ts +3 -2
  557. package/src/transaction/Beef.ts +269 -174
  558. package/src/transaction/BeefParty.ts +41 -31
  559. package/src/transaction/BeefTx.ts +36 -26
  560. package/src/transaction/Broadcaster.ts +10 -6
  561. package/src/transaction/ChainTracker.ts +2 -2
  562. package/src/transaction/FeeModel.ts +0 -1
  563. package/src/transaction/MerklePath.ts +124 -59
  564. package/src/transaction/Transaction.ts +188 -187
  565. package/src/transaction/TransactionOutput.ts +0 -1
  566. package/src/transaction/__tests/Beef.test.ts +390 -287
  567. package/src/transaction/__tests/MerklePath.test.ts +59 -26
  568. package/src/transaction/__tests/Transaction.benchmarks.test.ts +231 -201
  569. package/src/transaction/__tests/Transaction.test.ts +758 -482
  570. package/src/transaction/__tests/bigtx.vectors.ts +2 -1
  571. package/src/transaction/__tests/bump.invalid.vectors.ts +24 -6
  572. package/src/transaction/__tests/bump.valid.vectors.ts +6 -2
  573. package/src/transaction/__tests/tx.invalid.vectors.ts +881 -185
  574. package/src/transaction/__tests/tx.valid.vectors.ts +1210 -257
  575. package/src/transaction/broadcasters/ARC.ts +69 -38
  576. package/src/transaction/broadcasters/DefaultBroadcaster.ts +9 -3
  577. package/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +20 -7
  578. package/src/transaction/broadcasters/__tests/ARC.test.ts +127 -59
  579. package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +27 -18
  580. package/src/transaction/chaintrackers/DefaultChainTracker.ts +1 -1
  581. package/src/transaction/chaintrackers/WhatsOnChain.ts +27 -11
  582. package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +59 -23
  583. package/src/transaction/fee-models/SatoshisPerKilobyte.ts +9 -5
  584. package/src/transaction/http/DefaultHttpClient.ts +5 -4
  585. package/src/transaction/http/FetchHttpClient.ts +18 -9
  586. package/src/transaction/http/HttpClient.ts +27 -22
  587. package/src/transaction/http/NodejsHttpClient.ts +23 -9
  588. package/src/transaction/http/index.ts +5 -1
  589. package/src/transaction/index.ts +5 -1
  590. package/src/wallet/CachedKeyDeriver.ts +151 -82
  591. package/src/wallet/KeyDeriver.ts +186 -105
  592. package/src/wallet/ProtoWallet.ts +121 -52
  593. package/src/wallet/Wallet.interfaces.ts +167 -156
  594. package/src/wallet/WalletClient.ts +314 -59
  595. package/src/wallet/WalletError.ts +2 -2
  596. package/src/wallet/__tests/CachedKeyDeriver.test.ts +86 -27
  597. package/src/wallet/__tests/KeyDeriver.test.ts +136 -33
  598. package/src/wallet/__tests/ProtoWallet.test.ts +190 -102
  599. package/src/wallet/substrates/HTTPWalletJSON.ts +250 -67
  600. package/src/wallet/substrates/HTTPWalletWire.ts +7 -3
  601. package/src/wallet/substrates/WalletWireCalls.ts +2 -2
  602. package/src/wallet/substrates/WalletWireProcessor.ts +1412 -1277
  603. package/src/wallet/substrates/WalletWireTransceiver.ts +713 -138
  604. package/src/wallet/substrates/XDM.ts +425 -36
  605. package/src/wallet/substrates/__tests/WalletWire.integration.test.ts +488 -225
  606. package/src/wallet/substrates/__tests/XDM.test.ts +232 -234
  607. package/src/wallet/substrates/window.CWI.ts +520 -61
@@ -1,5 +1,5 @@
1
- import BigNumber from '../../../dist/cjs/src/primitives/BigNumber'
2
- import { Reader, Writer, encode } from '../../../dist/cjs/src/primitives/utils'
1
+ import BigNumber from '../../primitives/BigNumber'
2
+ import { Reader, Writer, encode } from '../../primitives/utils'
3
3
 
4
4
  describe('Writer', () => {
5
5
  it('should create a new buffer writer', () => {
@@ -8,10 +8,10 @@ describe('Writer', () => {
8
8
  })
9
9
 
10
10
  describe('#getLength', () => {
11
- it('should compute length correctly of two 2 byte buffers', () => {
11
+ it('should compute length correctly of two 2-byte buffers', () => {
12
12
  const buf1 = Buffer.from('0000', 'hex')
13
13
  const buf2 = Buffer.from('0000', 'hex')
14
- const bw = new Writer().write(buf1).write(buf2)
14
+ const bw = new Writer().write([...buf1]).write([...buf2])
15
15
  expect(bw.getLength()).toEqual(4)
16
16
  })
17
17
  })
@@ -54,9 +54,7 @@ describe('Writer', () => {
54
54
  it('should write 1', () => {
55
55
  const bw = new Writer()
56
56
  expect(encode(bw.writeInt8(1).toArray(), 'hex')).toEqual('01')
57
- expect(
58
- encode(new Writer().writeInt8(-1).toArray(), 'hex')
59
- ).toEqual('ff')
57
+ expect(encode(new Writer().writeInt8(-1).toArray(), 'hex')).toEqual('ff')
60
58
  })
61
59
  })
62
60
 
@@ -71,7 +69,9 @@ describe('Writer', () => {
71
69
  it('should write 1', () => {
72
70
  const bw = new Writer()
73
71
  expect(encode(bw.writeInt16BE(1).toArray(), 'hex')).toEqual('0001')
74
- expect(encode(new Writer().writeInt16BE(-1).toArray(), 'hex')).toEqual('ffff')
72
+ expect(encode(new Writer().writeInt16BE(-1).toArray(), 'hex')).toEqual(
73
+ 'ffff'
74
+ )
75
75
  })
76
76
  })
77
77
 
@@ -86,7 +86,9 @@ describe('Writer', () => {
86
86
  it('should write 1', () => {
87
87
  const bw = new Writer()
88
88
  expect(encode(bw.writeInt16LE(1).toArray(), 'hex')).toEqual('0100')
89
- expect(encode(new Writer().writeInt16LE(-1).toArray(), 'hex')).toEqual('ffff')
89
+ expect(encode(new Writer().writeInt16LE(-1).toArray(), 'hex')).toEqual(
90
+ 'ffff'
91
+ )
90
92
  })
91
93
  })
92
94
 
@@ -101,7 +103,9 @@ describe('Writer', () => {
101
103
  it('should write 1', () => {
102
104
  const bw = new Writer()
103
105
  expect(encode(bw.writeInt32BE(1).toArray(), 'hex')).toEqual('00000001')
104
- expect(encode(new Writer().writeInt32BE(-1).toArray(), 'hex')).toEqual('ffffffff')
106
+ expect(encode(new Writer().writeInt32BE(-1).toArray(), 'hex')).toEqual(
107
+ 'ffffffff'
108
+ )
105
109
  })
106
110
  })
107
111
 
@@ -116,21 +120,27 @@ describe('Writer', () => {
116
120
  it('should write 1', () => {
117
121
  const bw = new Writer()
118
122
  expect(encode(bw.writeInt32LE(1).toArray(), 'hex')).toEqual('01000000')
119
- expect(encode(new Writer().writeInt32LE(-1).toArray(), 'hex')).toEqual('ffffffff')
123
+ expect(encode(new Writer().writeInt32LE(-1).toArray(), 'hex')).toEqual(
124
+ 'ffffffff'
125
+ )
120
126
  })
121
127
  })
122
128
 
123
129
  describe('#writeUInt64BEBn', () => {
124
130
  it('should write 1', () => {
125
131
  const bw = new Writer()
126
- expect(encode(bw.writeUInt64BEBn(new BigNumber(1)).toArray(), 'hex')).toEqual('0000000000000001')
132
+ expect(
133
+ encode(bw.writeUInt64BEBn(new BigNumber(1)).toArray(), 'hex')
134
+ ).toEqual('0000000000000001')
127
135
  })
128
136
  })
129
137
 
130
138
  describe('#writeUInt64LEBn', () => {
131
139
  it('should write 1', () => {
132
140
  const bw = new Writer()
133
- expect(encode(bw.writeUInt64LEBn(new BigNumber(1)).toArray(), 'hex')).toEqual('0100000000000000')
141
+ expect(
142
+ encode(bw.writeUInt64LEBn(new BigNumber(1)).toArray(), 'hex')
143
+ ).toEqual('0100000000000000')
134
144
  })
135
145
  })
136
146
 
@@ -1,20 +1,16 @@
1
- // import { PrivateKey, PublicKey, Curve, Hash, BigNumber } from '..';
2
- import PublicKey from '../../../dist/cjs/src/primitives/PublicKey'
3
- // import { PrivateKey } from '..';
4
- import PrivateKey from '../../../dist/cjs/src/primitives/PrivateKey'
5
- import Curve from '../../../dist/cjs/src/primitives/Curve'
6
- import BigNumber from '../../../dist/cjs/src/primitives/BigNumber'
1
+ import PrivateKey from '../../primitives/PrivateKey'
2
+ import Curve from '../../primitives/Curve'
3
+ import BigNumber from '../../primitives/BigNumber'
7
4
 
8
5
  describe('bug-31 tests', () => {
9
6
  test('0', () => {
10
7
  const c = new Curve()
11
- const G = c.g
12
8
  // const bn = new BigNumber(c.n + 12)
13
9
  const bn = c.n.addn(12)
14
10
  const sn = new BigNumber(12)
15
- {
16
- expect(() => new PrivateKey(bn.toHex(), 'hex', 'be', 'error')).toThrow('Input is out of field')
17
- }
11
+ expect(() => new PrivateKey(bn.toHex(), 'hex', 'be', 'error')).toThrow(
12
+ 'Input is out of field'
13
+ )
18
14
  const o = PrivateKey.fromString(bn.toHex(), 'hex')
19
15
  const os = PrivateKey.fromString(sn.toHex(), 'hex')
20
16
  expect(o.cmp(os)).toBe(0)
@@ -1,5 +1,14 @@
1
1
  /* eslint-env jest */
2
- import { toArray, zero2, toHex, encode, fromBase58, toBase58, fromBase58Check, toBase58Check } from '../../../dist/cjs/src/primitives/utils'
2
+ import {
3
+ toArray,
4
+ zero2,
5
+ toHex,
6
+ encode,
7
+ fromBase58,
8
+ toBase58,
9
+ fromBase58Check,
10
+ toBase58Check
11
+ } from '../../primitives/utils'
3
12
 
4
13
  describe('utils', () => {
5
14
  it('should convert to array', () => {
@@ -26,26 +35,40 @@ describe('utils', () => {
26
35
 
27
36
  describe('base58 to binary', () => {
28
37
  it('Converts as expected', () => {
29
- const actual = fromBase58('6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV')
30
- expect(toHex(actual)).toEqual('02c0ded2bc1f1305fb0faac5e6c03ee3a1924234985427b6167ca569d13df435cfeb05f9d2')
38
+ const actual = fromBase58(
39
+ '6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV'
40
+ )
41
+ expect(toHex(actual)).toEqual(
42
+ '02c0ded2bc1f1305fb0faac5e6c03ee3a1924234985427b6167ca569d13df435cfeb05f9d2'
43
+ )
31
44
  })
32
45
  it('Converts as expected with leading 1s', () => {
33
46
  const actual = fromBase58('111z')
34
47
  expect(toHex(actual)).toEqual('00000039')
35
48
  })
36
49
  it('Throws when called with undefined base58 string', () => {
37
- expect(() => fromBase58()).toThrow(new Error('Expected base58 string but got “undefined”'))
50
+ expect(() => fromBase58(undefined as unknown as string)).toThrow(
51
+ new Error('Expected base58 string but got “undefined”')
52
+ )
38
53
  })
54
+
39
55
  it('Throws when called with invalid characters in base58 string', () => {
40
- expect(() => fromBase58('0L')).toThrow(new Error('Invalid base58 character “0”'))
56
+ expect(() => fromBase58('0L')).toThrow(
57
+ new Error('Invalid base58 character “0”')
58
+ )
41
59
  })
42
60
  })
43
61
  describe('binary to base58 string', () => {
44
62
  it('Converts to base58 as expected', () => {
45
63
  const actual = toBase58(
46
- toArray('02c0ded2bc1f1305fb0faac5e6c03ee3a1924234985427b6167ca569d13df435cfeb05f9d2', 'hex')
64
+ toArray(
65
+ '02c0ded2bc1f1305fb0faac5e6c03ee3a1924234985427b6167ca569d13df435cfeb05f9d2',
66
+ 'hex'
67
+ )
68
+ )
69
+ expect(actual).toEqual(
70
+ '6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV'
47
71
  )
48
- expect(actual).toEqual('6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV')
49
72
  })
50
73
  it('Converts to base58 as expected with 1s', () => {
51
74
  const actual = toBase58([0, 0, 0, 4])
@@ -67,31 +90,53 @@ describe('utils', () => {
67
90
 
68
91
  it('should correctly encode and decode data with custom prefix', () => {
69
92
  const prefix = [0x80]
70
- let data = toArray('1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD', 'hex')
93
+ let data = toArray(
94
+ '1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD',
95
+ 'hex'
96
+ )
71
97
  let encoded = toBase58Check(data, prefix)
72
- expect(encoded).toBe('5J3mBbAH58CpQ3Y5RNJpUKPE62SQ5tfcvU2JpbnkeyhfsYB1Jcn')
98
+ expect(encoded).toBe(
99
+ '5J3mBbAH58CpQ3Y5RNJpUKPE62SQ5tfcvU2JpbnkeyhfsYB1Jcn'
100
+ )
73
101
  expect(fromBase58Check(encoded)).toEqual({ prefix, data })
74
102
 
75
- data = toArray('3aba4162c7251c891207b747840551a71939b0de081f85c4e44cf7c13e41daa6', 'hex')
103
+ data = toArray(
104
+ '3aba4162c7251c891207b747840551a71939b0de081f85c4e44cf7c13e41daa6',
105
+ 'hex'
106
+ )
76
107
  encoded = toBase58Check(data, prefix)
77
- expect(encoded).toBe('5JG9hT3beGTJuUAmCQEmNaxAuMacCTfXuw1R3FCXig23RQHMr4K')
108
+ expect(encoded).toBe(
109
+ '5JG9hT3beGTJuUAmCQEmNaxAuMacCTfXuw1R3FCXig23RQHMr4K'
110
+ )
78
111
  expect(fromBase58Check(encoded)).toEqual({ prefix, data })
79
112
  })
80
113
 
81
114
  it('should correctly handle encoding and decoding with different encoding formats', () => {
82
115
  const prefix = [0x80]
83
- let dataHex = '1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD01'
116
+ let dataHex =
117
+ '1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD01'
84
118
  dataHex = dataHex.toLowerCase()
85
119
  let data = toArray(dataHex, 'hex')
86
120
  let encoded = toBase58Check(data, prefix)
87
- expect(encoded).toBe('KxFC1jmwwCoACiCAWZ3eXa96mBM6tb3TYzGmf6YwgdGWZgawvrtJ')
88
- expect(fromBase58Check(encoded, 'hex')).toEqual({ prefix: '80', data: dataHex })
121
+ expect(encoded).toBe(
122
+ 'KxFC1jmwwCoACiCAWZ3eXa96mBM6tb3TYzGmf6YwgdGWZgawvrtJ'
123
+ )
124
+ expect(fromBase58Check(encoded, 'hex')).toEqual({
125
+ prefix: '80',
126
+ data: dataHex
127
+ })
89
128
 
90
- dataHex = '3aba4162c7251c891207b747840551a71939b0de081f85c4e44cf7c13e41daa601'
129
+ dataHex =
130
+ '3aba4162c7251c891207b747840551a71939b0de081f85c4e44cf7c13e41daa601'
91
131
  data = toArray(dataHex, 'hex')
92
132
  encoded = toBase58Check(data, prefix)
93
- expect(encoded).toBe('KyBsPXxTuVD82av65KZkrGrWi5qLMah5SdNq6uftawDbgKa2wv6S')
94
- expect(fromBase58Check(encoded, 'hex')).toEqual({ prefix: '80', data: dataHex })
133
+ expect(encoded).toBe(
134
+ 'KyBsPXxTuVD82av65KZkrGrWi5qLMah5SdNq6uftawDbgKa2wv6S'
135
+ )
136
+ expect(fromBase58Check(encoded, 'hex')).toEqual({
137
+ prefix: '80',
138
+ data: dataHex
139
+ })
95
140
  })
96
141
 
97
142
  it('should correctly encode and decode Bitcoin addresses', () => {
@@ -99,10 +144,16 @@ describe('utils', () => {
99
144
  const data = toArray(dataHex, 'hex')
100
145
  const encoded = toBase58Check(data)
101
146
  expect(encoded).toBe('1mayif3H2JDC62S4N3rLNtBNRAiUUP99k')
102
- expect(fromBase58Check(encoded, 'hex')).toEqual({ prefix: '00', data: dataHex })
147
+ expect(fromBase58Check(encoded, 'hex')).toEqual({
148
+ prefix: '00',
149
+ data: dataHex
150
+ })
103
151
 
104
152
  const address = '1mayif3H2JDC62S4N3rLNtBNRAiUUP99k'
105
- expect(fromBase58Check(address, 'hex')).toEqual({ prefix: '00', data: dataHex })
153
+ expect(fromBase58Check(address, 'hex')).toEqual({
154
+ prefix: '00',
155
+ data: dataHex
156
+ })
106
157
  })
107
158
  })
108
159
  })
@@ -37,7 +37,7 @@ export const toHex = (msg: number[]): string => {
37
37
  */
38
38
  export const toArray = (msg: any, enc?: 'hex' | 'utf8' | 'base64'): any[] => {
39
39
  if (Array.isArray(msg)) return msg.slice()
40
- if (!msg) return []
40
+ if (msg === undefined) return []
41
41
 
42
42
  if (typeof msg !== 'string') {
43
43
  return Array.from(msg, (item: any) => item | 0)
@@ -54,7 +54,7 @@ export const toArray = (msg: any, enc?: 'hex' | 'utf8' | 'base64'): any[] => {
54
54
  }
55
55
 
56
56
  const hexToArray = (msg: string): number[] => {
57
- msg = msg.replace(/[^a-z0-9]+/ig, '')
57
+ msg = msg.replace(/[^a-z0-9]+/gi, '')
58
58
  if (msg.length % 2 !== 0) msg = '0' + msg
59
59
  const res: number[] = []
60
60
  for (let i = 0; i < msg.length; i += 2) {
@@ -64,7 +64,8 @@ const hexToArray = (msg: string): number[] => {
64
64
  }
65
65
 
66
66
  const base64ToArray = (msg: string): number[] => {
67
- const base64Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
67
+ const base64Chars =
68
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
68
69
  const result: number[] = []
69
70
  let currentBit = 0
70
71
  let currentByte = 0
@@ -75,7 +76,7 @@ const base64ToArray = (msg: string): number[] => {
75
76
 
76
77
  if (currentByte >= 8) {
77
78
  currentByte -= 8
78
- result.push((currentBit >> currentByte) & 0xFF)
79
+ result.push((currentBit >> currentByte) & 0xff)
79
80
  currentBit &= (1 << currentByte) - 1
80
81
  }
81
82
  }
@@ -89,7 +90,7 @@ const utf8ToArray = (msg: string): number[] => {
89
90
  const c = msg.charCodeAt(i)
90
91
  const hi = c >> 8
91
92
  const lo = c & 0xff
92
- if (hi) {
93
+ if (hi !== 0) {
93
94
  res.push(hi, lo)
94
95
  } else {
95
96
  res.push(lo)
@@ -118,35 +119,37 @@ export const toUTF8 = (arr: number[]): string => {
118
119
  }
119
120
 
120
121
  // 1-byte sequence (0xxxxxxx)
121
- if (byte <= 0x7F) {
122
+ if (byte <= 0x7f) {
122
123
  result += String.fromCharCode(byte)
123
- }
124
- // 2-byte sequence (110xxxxx 10xxxxxx)
125
- else if (byte >= 0xC0 && byte <= 0xDF) {
124
+ } else if (byte >= 0xc0 && byte <= 0xdf) {
125
+ // 2-byte sequence (110xxxxx 10xxxxxx)
126
126
  const byte2 = arr[i + 1]
127
127
  skip = 1
128
- const codePoint = ((byte & 0x1F) << 6) | (byte2 & 0x3F)
128
+ const codePoint = ((byte & 0x1f) << 6) | (byte2 & 0x3f)
129
129
  result += String.fromCharCode(codePoint)
130
- }
131
- // 3-byte sequence (1110xxxx 10xxxxxx 10xxxxxx)
132
- else if (byte >= 0xE0 && byte <= 0xEF) {
130
+ } else if (byte >= 0xe0 && byte <= 0xef) {
131
+ // 3-byte sequence (1110xxxx 10xxxxxx 10xxxxxx)
133
132
  const byte2 = arr[i + 1]
134
133
  const byte3 = arr[i + 2]
135
134
  skip = 2
136
- const codePoint = ((byte & 0x0F) << 12) | ((byte2 & 0x3F) << 6) | (byte3 & 0x3F)
135
+ const codePoint =
136
+ ((byte & 0x0f) << 12) | ((byte2 & 0x3f) << 6) | (byte3 & 0x3f)
137
137
  result += String.fromCharCode(codePoint)
138
- }
139
- // 4-byte sequence (11110xxx 10xxxxxx 10xxxxxx 10xxxxxx)
140
- else if (byte >= 0xF0 && byte <= 0xF7) {
138
+ } else if (byte >= 0xf0 && byte <= 0xf7) {
139
+ // 4-byte sequence (11110xxx 10xxxxxx 10xxxxxx 10xxxxxx)
141
140
  const byte2 = arr[i + 1]
142
141
  const byte3 = arr[i + 2]
143
142
  const byte4 = arr[i + 3]
144
143
  skip = 3
145
- const codePoint = ((byte & 0x07) << 18) | ((byte2 & 0x3F) << 12) | ((byte3 & 0x3F) << 6) | (byte4 & 0x3F)
144
+ const codePoint =
145
+ ((byte & 0x07) << 18) |
146
+ ((byte2 & 0x3f) << 12) |
147
+ ((byte3 & 0x3f) << 6) |
148
+ (byte4 & 0x3f)
146
149
 
147
150
  // Convert to UTF-16 surrogate pair
148
- const surrogate1 = 0xD800 + ((codePoint - 0x10000) >> 10)
149
- const surrogate2 = 0xDC00 + ((codePoint - 0x10000) & 0x3FF)
151
+ const surrogate1 = 0xd800 + ((codePoint - 0x10000) >> 10)
152
+ const surrogate2 = 0xdc00 + ((codePoint - 0x10000) & 0x3ff)
150
153
  result += String.fromCharCode(surrogate1, surrogate2)
151
154
  }
152
155
  }
@@ -160,7 +163,10 @@ export const toUTF8 = (arr: number[]): string => {
160
163
  * @param {('hex' | 'utf8')} enc - The desired encoding.
161
164
  * @returns {string | number[]} - The encoded message as a string (for 'hex' and 'utf8') or the original array.
162
165
  */
163
- export const encode = (arr: number[], enc?: 'hex' | 'utf8'): string | number[] => {
166
+ export const encode = (
167
+ arr: number[],
168
+ enc?: 'hex' | 'utf8'
169
+ ): string | number[] => {
164
170
  switch (enc) {
165
171
  case 'hex':
166
172
  return toHex(arr)
@@ -183,7 +189,8 @@ export const encode = (arr: number[], enc?: 'hex' | 'utf8'): string | number[] =
183
189
  * console.log(toBase64(bytes)); // Outputs: SGVsbG8=
184
190
  */
185
191
  export function toBase64 (byteArray: number[]): string {
186
- const base64Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
192
+ const base64Chars =
193
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
187
194
  let result = ''
188
195
  let i: number
189
196
 
@@ -194,8 +201,8 @@ export function toBase64 (byteArray: number[]): string {
194
201
 
195
202
  const encoded1 = byte1 >> 2
196
203
  const encoded2 = ((byte1 & 0x03) << 4) | (byte2 >> 4)
197
- const encoded3 = ((byte2 & 0x0F) << 2) | (byte3 >> 6)
198
- const encoded4 = byte3 & 0x3F
204
+ const encoded3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6)
205
+ const encoded4 = byte3 & 0x3f
199
206
 
200
207
  result += base64Chars.charAt(encoded1) + base64Chars.charAt(encoded2)
201
208
  result += i + 1 < byteArray.length ? base64Chars.charAt(encoded3) : '='
@@ -205,7 +212,8 @@ export function toBase64 (byteArray: number[]): string {
205
212
  return result
206
213
  }
207
214
 
208
- const base58chars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
215
+ const base58chars =
216
+ '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
209
217
 
210
218
  /**
211
219
  * Converts a string from base58 to a binary array
@@ -213,21 +221,23 @@ const base58chars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
213
221
  * @returns The binary representation
214
222
  */
215
223
  export const fromBase58 = (str: string): number[] => {
216
- if (!str || typeof str !== 'string') { throw new Error(`Expected base58 string but got “${str}”`) }
217
- if (str.match(/[IOl0]/gmu)) {
218
- throw new Error(
219
- `Invalid base58 character “${str.match(/[IOl0]/gmu)}”`
220
- )
224
+ if (str === '' || typeof str !== 'string') {
225
+ throw new Error(`Expected base58 string but got “${str}”`)
226
+ }
227
+ const match: string[] | null = str.match(/[IOl0]/gmu)
228
+
229
+ if (match !== null) {
230
+ throw new Error(`Invalid base58 character “${match.join('')}”`)
221
231
  }
222
232
  const lz = str.match(/^1+/gmu)
223
- const psz: number = lz ? lz[0].length : 0
224
- const size =
225
- ((str.length - psz) * (Math.log(58) / Math.log(256)) + 1) >>> 0
233
+ const psz: number = (lz !== null) ? lz[0].length : 0
234
+ const size = ((str.length - psz) * (Math.log(58) / Math.log(256)) + 1) >>> 0
226
235
 
227
236
  const uint8 = new Uint8Array([
228
237
  ...new Uint8Array(psz),
229
- ...str
230
- .match(/./gmu)
238
+ ...(
239
+ str.match(/./gmu) ?? [] // ✅ Safe Fix: If null, use []
240
+ )
231
241
  .map((i) => base58chars.indexOf(i))
232
242
  .reduce((acc, i) => {
233
243
  acc = acc.map((j) => {
@@ -256,9 +266,11 @@ export const fromBase58 = (str: string): number[] => {
256
266
  */
257
267
  export const toBase58 = (bin: number[]): string => {
258
268
  const base58Map = Array(256).fill(-1)
259
- for (let i = 0; i < base58chars.length; ++i) { base58Map[base58chars.charCodeAt(i)] = i }
269
+ for (let i = 0; i < base58chars.length; ++i) {
270
+ base58Map[base58chars.charCodeAt(i)] = i
271
+ }
260
272
 
261
- const result = []
273
+ const result: number[] = []
262
274
 
263
275
  for (const byte of bin) {
264
276
  let carry = byte
@@ -267,14 +279,14 @@ export const toBase58 = (bin: number[]): string => {
267
279
  result[j] = base58chars.charCodeAt(x % 58)
268
280
  carry = (x / 58) | 0
269
281
  }
270
- while (carry) {
282
+ while (carry !== 0) {
271
283
  result.push(base58chars.charCodeAt(carry % 58))
272
284
  carry = (carry / 58) | 0
273
285
  }
274
286
  }
275
287
 
276
288
  for (const byte of bin) {
277
- if (byte) break
289
+ if (byte !== 0) break
278
290
  else result.push('1'.charCodeAt(0))
279
291
  }
280
292
 
@@ -288,7 +300,7 @@ export const toBase58 = (bin: number[]): string => {
288
300
  * @param bin - The binary array to convert to base58check
289
301
  * @returns The base58check string representation
290
302
  */
291
- export const toBase58Check = (bin: number[], prefix: number[] = [0]) => {
303
+ export const toBase58Check = (bin: number[], prefix: number[] = [0]): string => {
292
304
  let hash = hash256([...prefix, ...bin])
293
305
  hash = [...prefix, ...bin, ...hash.slice(0, 4)]
294
306
  return toBase58(hash)
@@ -301,7 +313,11 @@ export const toBase58Check = (bin: number[], prefix: number[] = [0]) => {
301
313
  * @param prefixLength - The length of the prefix. Optional, defaults to 1.
302
314
  * @returns The binary array representation
303
315
  */
304
- export const fromBase58Check = (str: string, enc?: 'hex', prefixLength: number = 1) => {
316
+ export const fromBase58Check = (
317
+ str: string,
318
+ enc?: 'hex',
319
+ prefixLength: number = 1
320
+ ): any => {
305
321
  const bin = fromBase58(str)
306
322
  let prefix: string | number[] = bin.slice(0, prefixLength)
307
323
  let data: string | number[] = bin.slice(prefixLength, -4)
@@ -323,7 +339,7 @@ export class Writer {
323
339
  public bufs: number[][]
324
340
 
325
341
  constructor (bufs?: number[][]) {
326
- this.bufs = bufs || []
342
+ this.bufs = bufs !== undefined ? bufs : []
327
343
  }
328
344
 
329
345
  getLength (): number {
@@ -369,41 +385,41 @@ export class Writer {
369
385
 
370
386
  writeInt8 (n: number): this {
371
387
  const buf = new Array(1)
372
- buf[0] = n & 0xFF
388
+ buf[0] = n & 0xff
373
389
  this.write(buf)
374
390
  return this
375
391
  }
376
392
 
377
393
  writeUInt16BE (n: number): this {
378
394
  this.bufs.push([
379
- (n >> 8) & 0xFF, // shift right 8 bits to get the high byte
380
- n & 0xFF // low byte is just the last 8 bits
395
+ (n >> 8) & 0xff, // shift right 8 bits to get the high byte
396
+ n & 0xff // low byte is just the last 8 bits
381
397
  ])
382
398
  return this
383
399
  }
384
400
 
385
401
  writeInt16BE (n: number): this {
386
- return this.writeUInt16BE(n & 0xFFFF) // Mask with 0xFFFF to get the lower 16 bits
402
+ return this.writeUInt16BE(n & 0xffff) // Mask with 0xFFFF to get the lower 16 bits
387
403
  }
388
404
 
389
405
  writeUInt16LE (n: number): this {
390
406
  this.bufs.push([
391
- n & 0xFF, // low byte is just the last 8 bits
392
- (n >> 8) & 0xFF // shift right 8 bits to get the high byte
407
+ n & 0xff, // low byte is just the last 8 bits
408
+ (n >> 8) & 0xff // shift right 8 bits to get the high byte
393
409
  ])
394
410
  return this
395
411
  }
396
412
 
397
413
  writeInt16LE (n: number): this {
398
- return this.writeUInt16LE(n & 0xFFFF) // Mask with 0xFFFF to get the lower 16 bits
414
+ return this.writeUInt16LE(n & 0xffff) // Mask with 0xFFFF to get the lower 16 bits
399
415
  }
400
416
 
401
417
  writeUInt32BE (n: number): this {
402
418
  this.bufs.push([
403
- (n >> 24) & 0xFF, // highest byte
404
- (n >> 16) & 0xFF,
405
- (n >> 8) & 0xFF,
406
- n & 0xFF // lowest byte
419
+ (n >> 24) & 0xff, // highest byte
420
+ (n >> 16) & 0xff,
421
+ (n >> 8) & 0xff,
422
+ n & 0xff // lowest byte
407
423
  ])
408
424
  return this
409
425
  }
@@ -414,10 +430,10 @@ export class Writer {
414
430
 
415
431
  writeUInt32LE (n: number): this {
416
432
  this.bufs.push([
417
- n & 0xFF, // lowest byte
418
- (n >> 8) & 0xFF,
419
- (n >> 16) & 0xFF,
420
- (n >> 24) & 0xFF // highest byte
433
+ n & 0xff, // lowest byte
434
+ (n >> 8) & 0xff,
435
+ (n >> 16) & 0xff,
436
+ (n >> 24) & 0xff // highest byte
421
437
  ])
422
438
  return this
423
439
  }
@@ -464,33 +480,33 @@ export class Writer {
464
480
  // 253 followed by the number in little-endian format
465
481
  buf = [
466
482
  253, // 0xfd
467
- n & 0xFF, // low byte
468
- (n >> 8) & 0xFF // high byte
483
+ n & 0xff, // low byte
484
+ (n >> 8) & 0xff // high byte
469
485
  ]
470
486
  } else if (n < 0x100000000) {
471
487
  // 254 followed by the number in little-endian format
472
488
  buf = [
473
489
  254, // 0xfe
474
- n & 0xFF,
475
- (n >> 8) & 0xFF,
476
- (n >> 16) & 0xFF,
477
- (n >> 24) & 0xFF
490
+ n & 0xff,
491
+ (n >> 8) & 0xff,
492
+ (n >> 16) & 0xff,
493
+ (n >> 24) & 0xff
478
494
  ]
479
495
  } else {
480
496
  // 255 followed by the number in little-endian format
481
497
  // Since JavaScript bitwise operations work on 32 bits, we need to handle 64-bit numbers in two parts
482
- const low = n & 0xFFFFFFFF
483
- const high = Math.floor(n / 0x100000000) & 0xFFFFFFFF
498
+ const low = n & 0xffffffff
499
+ const high = Math.floor(n / 0x100000000) & 0xffffffff
484
500
  buf = [
485
501
  255, // 0xff
486
- low & 0xFF,
487
- (low >> 8) & 0xFF,
488
- (low >> 16) & 0xFF,
489
- (low >> 24) & 0xFF,
490
- high & 0xFF,
491
- (high >> 8) & 0xFF,
492
- (high >> 16) & 0xFF,
493
- (high >> 24) & 0xFF
502
+ low & 0xff,
503
+ (low >> 8) & 0xff,
504
+ (low >> 16) & 0xff,
505
+ (low >> 24) & 0xff,
506
+ high & 0xff,
507
+ (high >> 8) & 0xff,
508
+ (high >> 16) & 0xff,
509
+ (high >> 24) & 0xff
494
510
  ]
495
511
  }
496
512
  return buf
@@ -505,11 +521,17 @@ export class Writer {
505
521
  } else if (bn.ltn(0x10000)) {
506
522
  const n = bn.toNumber()
507
523
  // Value fits in a uint16
508
- buf = [253, n & 0xFF, (n >> 8) & 0xFF]
524
+ buf = [253, n & 0xff, (n >> 8) & 0xff]
509
525
  } else if (bn.lt(new BigNumber(0x100000000))) {
510
526
  const n = bn.toNumber()
511
527
  // Value fits in a uint32
512
- buf = [254, n & 0xFF, (n >> 8) & 0xFF, (n >> 16) & 0xFF, (n >> 24) & 0xFF]
528
+ buf = [
529
+ 254,
530
+ n & 0xff,
531
+ (n >> 8) & 0xff,
532
+ (n >> 16) & 0xff,
533
+ (n >> 24) & 0xff
534
+ ]
513
535
  } else {
514
536
  const bw = new Writer()
515
537
  bw.writeUInt8(255)
@@ -589,7 +611,7 @@ export class Reader {
589
611
 
590
612
  public readUInt32BE (): number {
591
613
  const val =
592
- (this.bin[this.pos] * 0x1000000) + // Shift the first byte by 24 bits
614
+ this.bin[this.pos] * 0x1000000 + // Shift the first byte by 24 bits
593
615
  ((this.bin[this.pos + 1] << 16) | // Shift the second byte by 16 bits
594
616
  (this.bin[this.pos + 2] << 8) | // Shift the third byte by 8 bits
595
617
  this.bin[this.pos + 3]) // The fourth byte
@@ -608,7 +630,8 @@ export class Reader {
608
630
  (this.bin[this.pos] |
609
631
  (this.bin[this.pos + 1] << 8) |
610
632
  (this.bin[this.pos + 2] << 16) |
611
- (this.bin[this.pos + 3] << 24)) >>> 0
633
+ (this.bin[this.pos + 3] << 24)) >>>
634
+ 0
612
635
  this.pos += 4
613
636
  return val
614
637
  }
@@ -635,7 +658,6 @@ export class Reader {
635
658
  public readVarIntNum (): number {
636
659
  const first = this.readUInt8()
637
660
  let bn: BigNumber
638
- let n: number
639
661
  switch (first) {
640
662
  case 0xfd:
641
663
  return this.readUInt16LE()
@@ -646,7 +668,9 @@ export class Reader {
646
668
  if (bn.lte(new BigNumber(2).pow(new BigNumber(53)))) {
647
669
  return bn.toNumber()
648
670
  } else {
649
- throw new Error('number too large to retain precision - use readVarIntBn')
671
+ throw new Error(
672
+ 'number too large to retain precision - use readVarIntBn'
673
+ )
650
674
  }
651
675
  default:
652
676
  return first