@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,3 +1,5 @@
1
+
2
+ // @ts-nocheck
1
3
  const SBox = [[0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76],
2
4
  [0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0],
3
5
  [0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15],
@@ -8,13 +8,13 @@ export default abstract class BasePoint {
8
8
  curve: Curve
9
9
  type: 'affine' | 'jacobian'
10
10
  precomputed: {
11
- doubles: { step: number, points: any[] } | undefined
12
- naf: { wnd: any, points: any[] } | undefined
13
- beta: BasePoint | null | undefined
11
+ doubles?: { step: number, points: BasePoint[] }
12
+ naf?: { wnd: number, points: BasePoint[] }
13
+ beta?: BasePoint | null
14
14
  } | null
15
15
 
16
16
  constructor (type: 'affine' | 'jacobian') {
17
- this.curve = new Curve()
17
+ this.curve = new Curve() // Always initialized, so never null
18
18
  this.type = type
19
19
  this.precomputed = null
20
20
  }
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import ReductionContext from './ReductionContext.js'
2
3
 
3
4
  /**
@@ -44,24 +45,19 @@ export default class BigNumber {
44
45
  * @privateinitializer
45
46
  */
46
47
  static readonly groupSizes: number[] = [
47
- 0, 0,
48
- 25, 16, 12, 11, 10, 9, 8,
49
- 8, 7, 7, 7, 7, 6, 6,
50
- 6, 6, 6, 6, 6, 5, 5,
51
- 5, 5, 5, 5, 5, 5, 5,
52
- 5, 5, 5, 5, 5, 5, 5
48
+ 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5,
49
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
53
50
  ]
54
51
 
55
52
  /**
56
53
  * @privateinitializer
57
54
  */
58
55
  static readonly groupBases: number[] = [
59
- 0, 0,
60
- 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,
56
+ 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,
61
57
  43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,
62
- 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,
63
- 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,
64
- 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176
58
+ 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343,
59
+ 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000,
60
+ 28629151, 33554432, 39135393, 45435424, 52521875, 60466176
65
61
  ]
66
62
 
67
63
  /**
@@ -135,9 +131,12 @@ export default class BigNumber {
135
131
  return true
136
132
  }
137
133
 
138
- return num !== null && typeof num === 'object' &&
134
+ return (
135
+ num !== null &&
136
+ typeof num === 'object' &&
139
137
  num.constructor.wordSize === BigNumber.wordSize &&
140
138
  Array.isArray(num.words)
139
+ )
141
140
  }
142
141
 
143
142
  /**
@@ -274,21 +273,14 @@ export default class BigNumber {
274
273
  this.words = [number & 0x3ffffff]
275
274
  this.length = 1
276
275
  } else if (number < 0x10000000000000) {
277
- this.words = [
278
- number & 0x3ffffff,
279
- (number / 0x4000000) & 0x3ffffff
280
- ]
276
+ this.words = [number & 0x3ffffff, (number / 0x4000000) & 0x3ffffff]
281
277
  this.length = 2
282
278
  } else {
283
279
  this.assert(
284
- number <= 0x1FFFFFFFFFFFFF,
280
+ number <= 0x1fffffffffffff,
285
281
  'The number is larger than 2 ^ 53 (unsafe)'
286
282
  )
287
- this.words = [
288
- number & 0x3ffffff,
289
- (number / 0x4000000) & 0x3ffffff,
290
- 1
291
- ]
283
+ this.words = [number & 0x3ffffff, (number / 0x4000000) & 0x3ffffff, 1]
292
284
  this.length = 3
293
285
  }
294
286
 
@@ -369,10 +361,10 @@ export default class BigNumber {
369
361
  // '0' - '9'
370
362
  if (c >= 48 && c <= 57) {
371
363
  return c - 48
372
- // 'A' - 'F'
364
+ // 'A' - 'F'
373
365
  } else if (c >= 65 && c <= 70) {
374
366
  return c - 55
375
- // 'a' - 'f'
367
+ // 'a' - 'f'
376
368
  } else if (c >= 97 && c <= 102) {
377
369
  return c - 87
378
370
  } else {
@@ -391,7 +383,9 @@ export default class BigNumber {
391
383
  * @return The decimal value corresponding to the two hexadecimal characters.
392
384
  */
393
385
  private parseHexByte (
394
- string: string, lowerBound: number, index: number
386
+ string: string,
387
+ lowerBound: number,
388
+ index: number
395
389
  ): number {
396
390
  let r = this.parseHex4Bits(string, index)
397
391
  if (index - 1 >= lowerBound) {
@@ -410,7 +404,11 @@ export default class BigNumber {
410
404
  * @param endian - The endianness ('be', 'le').
411
405
  * @return The current BigNumber instance.
412
406
  */
413
- private parseHex (number: string, start: number, endian: 'be' | 'le'): BigNumber {
407
+ private parseHex (
408
+ number: string,
409
+ start: number,
410
+ endian: 'be' | 'le'
411
+ ): BigNumber {
414
412
  // Initialize the words array
415
413
  this.length = Math.ceil((number.length - start) / 6)
416
414
  this.words = new Array(this.length).fill(0)
@@ -437,7 +435,11 @@ export default class BigNumber {
437
435
  }
438
436
  } else {
439
437
  const parseLength = number.length - start
440
- for (let i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {
438
+ for (
439
+ let i = parseLength % 2 === 0 ? start + 1 : start;
440
+ i < number.length;
441
+ i += 2
442
+ ) {
441
443
  processHexByte(i)
442
444
  }
443
445
  }
@@ -469,11 +471,11 @@ export default class BigNumber {
469
471
  if (c >= 49) {
470
472
  b = c - 49 + 0xa
471
473
 
472
- // 'A'
474
+ // 'A'
473
475
  } else if (c >= 17) {
474
476
  b = c - 17 + 0xa
475
477
 
476
- // '0' - '9'
478
+ // '0' - '9'
477
479
  } else {
478
480
  b = c
479
481
  }
@@ -720,6 +722,7 @@ export default class BigNumber {
720
722
  if (padding === 0 && out === '0') {
721
723
  return ''
722
724
  }
725
+ // eslint-disable-next-line no-unmodified-loop-condition
723
726
  while (out.length % padding !== 0 && padding !== 0) {
724
727
  out = '0' + out
725
728
  }
@@ -775,11 +778,11 @@ export default class BigNumber {
775
778
  ret += this.words[1] * 0x4000000
776
779
  } else if (this.length === 3 && this.words[2] === 0x01) {
777
780
  // NOTE: at this stage it is known that the top bit is set
778
- ret += 0x10000000000000 + (this.words[1] * 0x4000000)
781
+ ret += 0x10000000000000 + this.words[1] * 0x4000000
779
782
  } else if (this.length > 2) {
780
783
  throw new Error('Number can only safely store up to 53 bits')
781
784
  }
782
- return (this.negative !== 0) ? -ret : ret
785
+ return this.negative !== 0 ? -ret : ret
783
786
  }
784
787
 
785
788
  /**
@@ -903,7 +906,10 @@ export default class BigNumber {
903
906
 
904
907
  const byteLength = this.byteLength()
905
908
  const reqLength = length ?? Math.max(1, byteLength)
906
- this.assert(byteLength <= reqLength, 'byte array longer than desired length')
909
+ this.assert(
910
+ byteLength <= reqLength,
911
+ 'byte array longer than desired length'
912
+ )
907
913
  this.assert(reqLength > 0, 'Requested array length <= 0')
908
914
 
909
915
  const res = new Array(reqLength)
@@ -1523,7 +1529,7 @@ export default class BigNumber {
1523
1529
  this.negative ^= 1
1524
1530
  return this.normSign()
1525
1531
 
1526
- // positive + negative
1532
+ // positive + negative
1527
1533
  } else if (this.negative === 0 && num.negative !== 0) {
1528
1534
  num.negative = 0
1529
1535
  r = this.isub(num)
@@ -1560,7 +1566,7 @@ export default class BigNumber {
1560
1566
  if (carry !== 0) {
1561
1567
  this.words[this.length] = carry
1562
1568
  this.length++
1563
- // Copy the rest of the words
1569
+ // Copy the rest of the words
1564
1570
  } else if (a !== this) {
1565
1571
  for (; i < a.length; i++) {
1566
1572
  this.words[i] = a.words[i]
@@ -1622,7 +1628,7 @@ export default class BigNumber {
1622
1628
  num.negative = 1
1623
1629
  return r.normSign()
1624
1630
 
1625
- // -this - num = -(this + num)
1631
+ // -this - num = -(this + num)
1626
1632
  } else if (this.negative !== 0) {
1627
1633
  this.negative = 0
1628
1634
  this.iadd(num)
@@ -1699,7 +1705,9 @@ export default class BigNumber {
1699
1705
  }
1700
1706
 
1701
1707
  private smallMulTo (
1702
- self: BigNumber, num: BigNumber, out: BigNumber
1708
+ self: BigNumber,
1709
+ num: BigNumber,
1710
+ out: BigNumber
1703
1711
  ): BigNumber {
1704
1712
  out.negative = num.negative ^ self.negative
1705
1713
  let len = (self.length + num.length) | 0
@@ -2664,7 +2672,7 @@ export default class BigNumber {
2664
2672
  }
2665
2673
 
2666
2674
  // Push carried bits as a mask
2667
- if ((maskedWords != null) && carry !== 0) {
2675
+ if (maskedWords != null && carry !== 0) {
2668
2676
  maskedWords.words[maskedWords.length++] = carry
2669
2677
  }
2670
2678
 
@@ -3083,7 +3091,8 @@ export default class BigNumber {
3083
3091
  }
3084
3092
 
3085
3093
  for (let j = m - 1; j >= 0; j--) {
3086
- let qj = (a.words[b.length + j] | 0) * 0x4000000 +
3094
+ let qj =
3095
+ (a.words[b.length + j] | 0) * 0x4000000 +
3087
3096
  (a.words[b.length + j - 1] | 0)
3088
3097
 
3089
3098
  // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max
@@ -3155,7 +3164,7 @@ export default class BigNumber {
3155
3164
 
3156
3165
  if (mode !== 'div') {
3157
3166
  mod = res.mod.neg()
3158
- if (positive && mod.negative !== 0) {
3167
+ if (positive === true && mod.negative !== 0) {
3159
3168
  mod.iadd(num)
3160
3169
  }
3161
3170
  }
@@ -3184,7 +3193,7 @@ export default class BigNumber {
3184
3193
 
3185
3194
  if (mode !== 'div') {
3186
3195
  mod = res.mod.neg()
3187
- if (positive && mod.negative !== 0) {
3196
+ if (positive === true && mod.negative !== 0) {
3188
3197
  mod.isub(num)
3189
3198
  }
3190
3199
  }
@@ -3292,16 +3301,14 @@ export default class BigNumber {
3292
3301
  * const quotient = bigNum1.divRound(bigNum2); // quotient here would be '2'
3293
3302
  */
3294
3303
  divRound (num: BigNumber): BigNumber {
3295
- const dm: { div: BigNumber, mod: BigNumber } = (
3296
- this.divmod(num) as unknown as { div: BigNumber, mod: BigNumber }
3297
- )
3304
+ const dm: { div: BigNumber, mod: BigNumber } = this.divmod(
3305
+ num
3306
+ ) as unknown as { div: BigNumber, mod: BigNumber }
3298
3307
 
3299
3308
  // Fast case - exact division
3300
3309
  if (dm.mod.isZero()) return dm.div
3301
3310
 
3302
- const mod = dm.div.negative !== 0
3303
- ? dm.mod.isub(num)
3304
- : dm.mod
3311
+ const mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod
3305
3312
 
3306
3313
  const half = num.ushrn(1)
3307
3314
  const r2: number = num.andln(1)
@@ -4022,7 +4029,7 @@ export default class BigNumber {
4022
4029
  this.red,
4023
4030
  'fromRed works only with numbers in reduction context'
4024
4031
  )
4025
- return (this.red).convertFrom(this)
4032
+ return this.red.convertFrom(this)
4026
4033
  }
4027
4034
 
4028
4035
  /**
@@ -4059,7 +4066,7 @@ export default class BigNumber {
4059
4066
  */
4060
4067
  redAdd (num: BigNumber): BigNumber {
4061
4068
  this.assert(this.red, 'redAdd works only with red numbers')
4062
- return (this.red).add(this, num)
4069
+ return this.red.add(this, num)
4063
4070
  }
4064
4071
 
4065
4072
  /**
@@ -4078,7 +4085,7 @@ export default class BigNumber {
4078
4085
  */
4079
4086
  redIAdd (num: BigNumber): BigNumber {
4080
4087
  this.assert(this.red, 'redIAdd works only with red numbers')
4081
- return (this.red).iadd(this, num)
4088
+ return this.red.iadd(this, num)
4082
4089
  }
4083
4090
 
4084
4091
  /**
@@ -4097,7 +4104,7 @@ export default class BigNumber {
4097
4104
  */
4098
4105
  redSub (num: BigNumber): BigNumber {
4099
4106
  this.assert(this.red, 'redSub works only with red numbers')
4100
- return (this.red).sub(this, num)
4107
+ return this.red.sub(this, num)
4101
4108
  }
4102
4109
 
4103
4110
  /**
@@ -4116,7 +4123,7 @@ export default class BigNumber {
4116
4123
  */
4117
4124
  redISub (num: BigNumber): BigNumber {
4118
4125
  this.assert(this.red, 'redISub works only with red numbers')
4119
- return (this.red).isub(this, num)
4126
+ return this.red.isub(this, num)
4120
4127
  }
4121
4128
 
4122
4129
  /**
@@ -4135,7 +4142,7 @@ export default class BigNumber {
4135
4142
  */
4136
4143
  redShl (num: number): BigNumber {
4137
4144
  this.assert(this.red, 'redShl works only with red numbers')
4138
- return (this.red).shl(this, num)
4145
+ return this.red.shl(this, num)
4139
4146
  }
4140
4147
 
4141
4148
  /**
@@ -4154,8 +4161,8 @@ export default class BigNumber {
4154
4161
  */
4155
4162
  redMul (num: BigNumber): BigNumber {
4156
4163
  this.assert(this.red, 'redMul works only with red numbers')
4157
- ; (this.red).verify2(this, num)
4158
- return (this.red).mul(this, num)
4164
+ this.red.verify2(this, num)
4165
+ return this.red.mul(this, num)
4159
4166
  }
4160
4167
 
4161
4168
  /**
@@ -4173,8 +4180,8 @@ export default class BigNumber {
4173
4180
  */
4174
4181
  redIMul (num: BigNumber): BigNumber {
4175
4182
  this.assert(this.red, 'redMul works only with red numbers')
4176
- ; (this.red).verify2(this, num)
4177
- return (this.red).imul(this, num)
4183
+ this.red.verify2(this, num)
4184
+ return this.red.imul(this, num)
4178
4185
  }
4179
4186
 
4180
4187
  /**
@@ -4194,8 +4201,8 @@ export default class BigNumber {
4194
4201
  */
4195
4202
  redSqr (): BigNumber {
4196
4203
  this.assert(this.red, 'redSqr works only with red numbers')
4197
- ; (this.red).verify1(this)
4198
- return (this.red).sqr(this)
4204
+ this.red.verify1(this)
4205
+ return this.red.sqr(this)
4199
4206
  }
4200
4207
 
4201
4208
  /**
@@ -4215,8 +4222,8 @@ export default class BigNumber {
4215
4222
  */
4216
4223
  redISqr (): BigNumber {
4217
4224
  this.assert(this.red, 'redISqr works only with red numbers')
4218
- ; (this.red).verify1(this)
4219
- return (this.red).isqr(this)
4225
+ this.red.verify1(this)
4226
+ return this.red.isqr(this)
4220
4227
  }
4221
4228
 
4222
4229
  /**
@@ -4237,8 +4244,8 @@ export default class BigNumber {
4237
4244
  */
4238
4245
  redSqrt (): BigNumber {
4239
4246
  this.assert(this.red, 'redSqrt works only with red numbers')
4240
- ; (this.red).verify1(this)
4241
- return (this.red).sqrt(this)
4247
+ this.red.verify1(this)
4248
+ return this.red.sqrt(this)
4242
4249
  }
4243
4250
 
4244
4251
  /**
@@ -4256,8 +4263,8 @@ export default class BigNumber {
4256
4263
  */
4257
4264
  redInvm (): BigNumber {
4258
4265
  this.assert(this.red, 'redInvm works only with red numbers')
4259
- ; (this.red).verify1(this)
4260
- return (this.red).invm(this)
4266
+ this.red.verify1(this)
4267
+ return this.red.invm(this)
4261
4268
  }
4262
4269
 
4263
4270
  /**
@@ -4275,8 +4282,8 @@ export default class BigNumber {
4275
4282
  */
4276
4283
  redNeg (): BigNumber {
4277
4284
  this.assert(this.red, 'redNeg works only with red numbers')
4278
- ; (this.red).verify1(this)
4279
- return (this.red).neg(this)
4285
+ this.red.verify1(this)
4286
+ return this.red.neg(this)
4280
4287
  }
4281
4288
 
4282
4289
  /**
@@ -4295,9 +4302,9 @@ export default class BigNumber {
4295
4302
  * let result = a.redPow(b); // equivalent to (a^b) mod red
4296
4303
  */
4297
4304
  redPow (num: BigNumber): BigNumber {
4298
- this.assert((this.red != null) && (num.red == null), 'redPow(normalNum)')
4299
- ; (this.red).verify1(this)
4300
- return (this.red).pow(this, num)
4305
+ this.assert(this.red != null && num.red == null, 'redPow(normalNum)')
4306
+ this.red.verify1(this)
4307
+ return this.red.pow(this, num)
4301
4308
  }
4302
4309
 
4303
4310
  /**
@@ -4471,7 +4478,7 @@ export default class BigNumber {
4471
4478
  */
4472
4479
  static fromBits (bits: number, strict: boolean = false): BigNumber {
4473
4480
  // Convert to signed 32-bit value manually without using Buffer
4474
- bits = (bits & 0x80000000) ? bits - 0x100000000 : bits
4481
+ bits = (bits & 0x80000000) !== 0 ? bits - 0x100000000 : bits
4475
4482
  if (strict && (bits & 0x00800000) !== 0) {
4476
4483
  throw new Error('negative bit set')
4477
4484
  }
@@ -4480,10 +4487,10 @@ export default class BigNumber {
4480
4487
 
4481
4488
  // Manually create the byte array (similar to the original buffer)
4482
4489
  let bytes = [
4483
- (nword >> 24) & 0xFF,
4484
- (nword >> 16) & 0xFF,
4485
- (nword >> 8) & 0xFF,
4486
- nword & 0xFF
4490
+ (nword >> 24) & 0xff,
4491
+ (nword >> 16) & 0xff,
4492
+ (nword >> 8) & 0xff,
4493
+ nword & 0xff
4487
4494
  ]
4488
4495
 
4489
4496
  if (nsize <= 3) {
@@ -4514,7 +4521,7 @@ export default class BigNumber {
4514
4521
  * const bits = bigNumber.toBits();
4515
4522
  */
4516
4523
  toBits (): number {
4517
- let byteArray
4524
+ let byteArray: number[]
4518
4525
  if (this.ltn(0)) {
4519
4526
  byteArray = this.neg().toArray('be')
4520
4527
  } else {
@@ -4527,7 +4534,7 @@ export default class BigNumber {
4527
4534
  }
4528
4535
 
4529
4536
  // For the case where byteArray represents '00', the bits should be 0x00000000
4530
- if (byteArray.every(byte => byte === 0)) {
4537
+ if (byteArray.every((byte) => byte === 0)) {
4531
4538
  return 0x00000000
4532
4539
  }
4533
4540
 
@@ -4540,7 +4547,7 @@ export default class BigNumber {
4540
4547
 
4541
4548
  // We're interested in the first three bytes for the "nword"
4542
4549
  // or in smaller cases, what's available
4543
- let nword = byteArray.slice(0, 3).reduce((acc, val) => (acc * 256) + val, 0)
4550
+ let nword = byteArray.slice(0, 3).reduce((acc, val) => acc * 256 + val, 0)
4544
4551
 
4545
4552
  // Ensure we don't have the sign bit set initially
4546
4553
  if ((nword & 0x800000) !== 0) {
@@ -4577,7 +4584,9 @@ export default class BigNumber {
4577
4584
  * const bigNumber = BigNumber.fromScriptNum(num, true, 5)
4578
4585
  */
4579
4586
  static fromScriptNum (
4580
- num: number[], requireMinimal?: boolean, maxNumSize?: number
4587
+ num: number[],
4588
+ requireMinimal?: boolean,
4589
+ maxNumSize?: number
4581
4590
  ): BigNumber {
4582
4591
  if (maxNumSize === undefined) {
4583
4592
  maxNumSize = Number.MAX_SAFE_INTEGER
@@ -4585,19 +4594,19 @@ export default class BigNumber {
4585
4594
  if (num.length > maxNumSize) {
4586
4595
  throw new Error('script number overflow')
4587
4596
  }
4588
- if (requireMinimal && num.length > 0) {
4589
- // Check that the number is encoded with the minimum possible
4590
- // number of bytes.
4591
- //
4592
- // If the most-significant-byte - excluding the sign bit - is zero
4593
- // then we're not minimal. Note how this test also rejects the
4594
- // negative-zero encoding, 0x80.
4597
+ if (requireMinimal === true && num.length > 0) {
4598
+ // Check that the number is encoded with the minimum possible
4599
+ // number of bytes.
4600
+ //
4601
+ // If the most-significant-byte - excluding the sign bit - is zero
4602
+ // then we're not minimal. Note how this test also rejects the
4603
+ // negative-zero encoding, 0x80.
4595
4604
  if ((num[num.length - 1] & 0x7f) === 0) {
4596
- // One exception: if there's more than one byte and the most
4597
- // significant bit of the second-most-significant-byte is set
4598
- // it would conflict with the sign bit. An example of this case
4599
- // is +-255, which encode to 0xff00 and 0xff80 respectively.
4600
- // (big-endian).
4605
+ // One exception: if there's more than one byte and the most
4606
+ // significant bit of the second-most-significant-byte is set
4607
+ // it would conflict with the sign bit. An example of this case
4608
+ // is +-255, which encode to 0xff00 and 0xff80 respectively.
4609
+ // (big-endian).
4601
4610
  if (num.length <= 1 || (num[num.length - 2] & 0x80) === 0) {
4602
4611
  throw new Error('non-minimally encoded script number')
4603
4612
  }