@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
@@ -20,7 +20,10 @@ export class PointInFiniteField {
20
20
 
21
21
  static fromString (str: string): PointInFiniteField {
22
22
  const [x, y] = str.split('.')
23
- return new PointInFiniteField(new BigNumber(fromBase58(x)), new BigNumber(fromBase58(y)))
23
+ return new PointInFiniteField(
24
+ new BigNumber(fromBase58(x)),
25
+ new BigNumber(fromBase58(y))
26
+ )
24
27
  }
25
28
  }
26
29
 
@@ -45,13 +48,15 @@ export default class Polynomial {
45
48
 
46
49
  constructor (points: PointInFiniteField[], threshold?: number) {
47
50
  this.points = points
48
- this.threshold = threshold || points.length
51
+ this.threshold = threshold ?? points.length // ✅ Handles undefined safely
49
52
  }
50
53
 
51
54
  static fromPrivateKey (key: PrivateKey, threshold: number): Polynomial {
52
55
  const P = new Curve().p // arithmetic is mod P
53
56
  // The key is the y-intercept of the polynomial where x=0.
54
- const points = [new PointInFiniteField(new BigNumber(0), new BigNumber(key.toArray()))]
57
+ const points = [
58
+ new PointInFiniteField(new BigNumber(0), new BigNumber(key.toArray()))
59
+ ]
55
60
 
56
61
  // The other values are random
57
62
  for (let i = 1; i < threshold; i++) {
@@ -6,7 +6,7 @@ import Curve from './Curve.js'
6
6
  import { sign, verify } from './ECDSA.js'
7
7
  import { sha256, sha256hmac } from './Hash.js'
8
8
  import Random from './Random.js'
9
- import { fromBase58Check, toArray, toBase58, toBase58Check } from './utils.js'
9
+ import { fromBase58Check, toArray, toBase58Check } from './utils.js'
10
10
  import Polynomial, { PointInFiniteField } from './Polynomial.js'
11
11
 
12
12
  /**
@@ -29,7 +29,11 @@ export class KeyShares {
29
29
  threshold: number
30
30
  integrity: string
31
31
 
32
- constructor (points: PointInFiniteField[], threshold: number, integrity: string) {
32
+ constructor (
33
+ points: PointInFiniteField[],
34
+ threshold: number,
35
+ integrity: string
36
+ ) {
33
37
  this.points = points
34
38
  this.threshold = threshold
35
39
  this.integrity = integrity
@@ -40,13 +44,20 @@ export class KeyShares {
40
44
  let integrity = ''
41
45
  const points = shares.map((share, idx) => {
42
46
  const shareParts = share.split('.')
43
- if (shareParts.length !== 4) throw Error('Invalid share format in share ' + idx + '. Expected format: "x.y.t.i" - received ' + share)
47
+ if (shareParts.length !== 4) {
48
+ throw new Error(
49
+ 'Invalid share format in share ' +
50
+ idx.toString() +
51
+ '. Expected format: "x.y.t.i" - received ' +
52
+ share
53
+ )
54
+ }
44
55
  const [x, y, t, i] = shareParts
45
- if (!t) throw Error('Threshold not found in share ' + idx)
46
- if (!i) throw Error('Integrity not found in share ' + idx)
56
+ if (t === undefined) throw new Error('Threshold not found in share ' + idx.toString())
57
+ if (i === undefined) throw new Error('Integrity not found in share ' + idx.toString())
47
58
  const tInt = parseInt(t)
48
- if (idx !== 0 && threshold !== tInt) throw Error('Threshold mismatch in share ' + idx)
49
- if (idx !== 0 && integrity !== i) throw Error('Integrity mismatch in share ' + idx)
59
+ if (idx !== 0 && threshold !== tInt) { throw new Error('Threshold mismatch in share ' + idx.toString()) }
60
+ if (idx !== 0 && integrity !== i) { throw new Error('Integrity mismatch in share ' + idx.toString()) }
50
61
  threshold = tInt
51
62
  integrity = i
52
63
  return PointInFiniteField.fromString([x, y].join('.'))
@@ -54,8 +65,10 @@ export class KeyShares {
54
65
  return new KeyShares(points, threshold, integrity)
55
66
  }
56
67
 
57
- toBackupFormat () {
58
- return this.points.map(share => share.toString() + '.' + this.threshold + '.' + this.integrity)
68
+ toBackupFormat (): string[] {
69
+ return this.points.map(
70
+ (share) => share.toString() + '.' + this.threshold.toString() + '.' + this.integrity
71
+ )
59
72
  }
60
73
  }
61
74
 
@@ -121,7 +134,7 @@ export default class PrivateKey extends BigNumber {
121
134
  * @throws Will throw an error if the string is not a valid WIF.
122
135
  **/
123
136
  static fromWif (wif: string, prefixLength: number = 1): PrivateKey {
124
- const decoded = fromBase58Check(wif, null, prefixLength)
137
+ const decoded = fromBase58Check(wif, undefined, prefixLength)
125
138
  if (decoded.data.length !== 33) {
126
139
  throw new Error('Invalid WIF length')
127
140
  }
@@ -140,7 +153,7 @@ export default class PrivateKey extends BigNumber {
140
153
  *
141
154
  * @param endian - The endianness provided. By default is 'big endian'. Ignored if number is BigNumber.
142
155
  *
143
- * @param modN - Optional. Default 'apply. If 'apply', apply modN to input to guarantee a valid PrivateKey. If 'error', if input is out of field throw Error('Input is out of field'). If 'nocheck', assumes input is in field.
156
+ * @param modN - Optional. Default 'apply. If 'apply', apply modN to input to guarantee a valid PrivateKey. If 'error', if input is out of field throw new Error('Input is out of field'). If 'nocheck', assumes input is in field.
144
157
  *
145
158
  * @example
146
159
  * import PrivateKey from './PrivateKey';
@@ -204,7 +217,12 @@ export default class PrivateKey extends BigNumber {
204
217
  * const privateKey = PrivateKey.fromRandom();
205
218
  * const signature = privateKey.sign('Hello, World!');
206
219
  */
207
- sign (msg: number[] | string, enc?: 'hex' | 'utf8', forceLowS: boolean = true, customK?: Function | BigNumber): Signature {
220
+ sign (
221
+ msg: number[] | string,
222
+ enc?: 'hex' | 'utf8',
223
+ forceLowS: boolean = true,
224
+ customK?: ((iter: number) => BigNumber) | BigNumber
225
+ ): Signature {
208
226
  const msgHash = new BigNumber(sha256(msg, enc), 16)
209
227
  return sign(msgHash, this, forceLowS, customK)
210
228
  }
@@ -265,7 +283,9 @@ export default class PrivateKey extends BigNumber {
265
283
  * const testnetWif = privateKey.toWif([0xef]);
266
284
  */
267
285
  toWif (prefix: number[] = [0x80]): string {
268
- if (!this.isValid()) { throw new Error('Value is out of field') }
286
+ if (!this.isValid()) {
287
+ throw new Error('Value is out of field')
288
+ }
269
289
  return toBase58Check([...this.toArray('be', 32), 1], prefix)
270
290
  }
271
291
 
@@ -362,14 +382,14 @@ export default class PrivateKey extends BigNumber {
362
382
  * const shares = key.toKeyShares(2, 5)
363
383
  */
364
384
  toKeyShares (threshold: number, totalShares: number): KeyShares {
365
- if (typeof threshold !== 'number' || typeof totalShares !== 'number') throw new Error('threshold and totalShares must be numbers')
385
+ if (typeof threshold !== 'number' || typeof totalShares !== 'number') { throw new Error('threshold and totalShares must be numbers') }
366
386
  if (threshold < 2) throw new Error('threshold must be at least 2')
367
387
  if (totalShares < 2) throw new Error('totalShares must be at least 2')
368
- if (threshold > totalShares) throw new Error('threshold should be less than or equal to totalShares')
388
+ if (threshold > totalShares) { throw new Error('threshold should be less than or equal to totalShares') }
369
389
 
370
390
  const poly = Polynomial.fromPrivateKey(this, threshold)
371
391
 
372
- const points = []
392
+ const points: PointInFiniteField[] = []
373
393
  for (let i = 0; i < totalShares; i++) {
374
394
  const x = new BigNumber(PrivateKey.fromRandom().toArray())
375
395
  const y = poly.valueAt(x)
@@ -427,7 +447,11 @@ export default class PrivateKey extends BigNumber {
427
447
  static fromKeyShares (keyShares: KeyShares): PrivateKey {
428
448
  const { points, threshold, integrity } = keyShares
429
449
  if (threshold < 2) throw new Error('threshold must be at least 2')
430
- if (points.length < threshold) throw new Error(`At least ${threshold} shares are required to reconstruct the private key`)
450
+ if (points.length < threshold) {
451
+ throw new Error(
452
+ `At least ${threshold} shares are required to reconstruct the private key`
453
+ )
454
+ }
431
455
  // check to see if two points have the same x value
432
456
  for (let i = 0; i < threshold; i++) {
433
457
  for (let j = i + 1; j < threshold; j++) {
@@ -87,7 +87,9 @@ export default class PublicKey extends Point {
87
87
  // Common gotcha: constructing PublicKey with a DER value when you should use .fromString()
88
88
  if (y === null && isRed && typeof x === 'string') {
89
89
  if (x.length === 66 || x.length === 130) {
90
- throw new Error('You are using the "new PublicKey()" constructor with a DER hex string. You need to use "PublicKey.fromString()" instead.')
90
+ throw new Error(
91
+ 'You are using the "new PublicKey()" constructor with a DER hex string. You need to use "PublicKey.fromString()" instead.'
92
+ )
91
93
  }
92
94
  }
93
95
  super(x, y, isRed)
@@ -129,7 +131,11 @@ export default class PublicKey extends Point {
129
131
  * const mySignature = new Signature(...)
130
132
  * const isVerified = myPubKey.verify(myMessage, mySignature)
131
133
  */
132
- verify (msg: number[] | string, sig: Signature, enc?: 'hex' | 'utf8'): boolean {
134
+ verify (
135
+ msg: number[] | string,
136
+ sig: Signature,
137
+ enc?: 'hex' | 'utf8'
138
+ ): boolean {
133
139
  const msgHash = new BigNumber(sha256(msg, enc), 16)
134
140
  return verify(msgHash, sig, this)
135
141
  }
@@ -225,7 +231,11 @@ export default class PublicKey extends Point {
225
231
  * @example
226
232
  * const publicKey = Signature.fromMsgHashAndCompactSignature(msgHash, 'IMOl2mVKfDgsSsHT4uIYBNN4e...', 'base64');
227
233
  */
228
- static fromMsgHashAndCompactSignature (msgHash: BigNumber, signature: number[] | string, enc?: 'hex' | 'base64'): PublicKey {
234
+ static fromMsgHashAndCompactSignature (
235
+ msgHash: BigNumber,
236
+ signature: number[] | string,
237
+ enc?: 'hex' | 'base64'
238
+ ): PublicKey {
229
239
  const data = toArray(signature, enc)
230
240
  if (data.length !== 65) {
231
241
  throw new Error('Invalid Compact Signature')
@@ -1,29 +1,35 @@
1
1
  class Rand {
2
- _rand: Function
2
+ _rand: (n: number) => number[] // ✅ Explicit function type
3
+
3
4
  constructor () {
4
- const noRand = () => {
5
- throw new Error('No secure random number generator is available in this environment.')
5
+ const noRand = (): never => {
6
+ throw new Error(
7
+ 'No secure random number generator is available in this environment.'
8
+ )
6
9
  }
10
+
11
+ this._rand = noRand // Assign the function
12
+
7
13
  if (typeof self === 'object') {
8
14
  /* eslint-disable-next-line */
9
15
  if (self.crypto?.getRandomValues) {
10
- this._rand = n => {
16
+ this._rand = (n) => {
11
17
  const arr = new Uint8Array(n)
12
18
  /* eslint-disable-next-line */
13
- self.crypto.getRandomValues(arr)
19
+ self.crypto.getRandomValues(arr);
14
20
  return [...arr]
15
21
  }
16
- } else /* if (typeof window === 'object') */ {
22
+ } /* if (typeof window === 'object') */ else {
17
23
  this._rand = noRand
18
24
  }
19
25
  } else {
20
26
  try {
21
27
  /* eslint-disable-next-line */
22
- const crypto = require('crypto')
28
+ const crypto = require("crypto");
23
29
  if (typeof crypto.randomBytes === 'function') {
24
30
  this._rand = (n: number) => [...crypto.randomBytes(n)]
25
31
  }
26
- } catch (e) {
32
+ } catch {
27
33
  this._rand = noRand
28
34
  }
29
35
  }
@@ -89,7 +89,7 @@ export default class ReductionContext {
89
89
  'red works only with positives'
90
90
  )
91
91
  this.assert(
92
- (a.red != null) && a.red === b.red,
92
+ a.red != null && a.red === b.red,
93
93
  'red works only with red numbers'
94
94
  )
95
95
  }
@@ -42,14 +42,19 @@ export default class Schnorr {
42
42
  }
43
43
 
44
44
  /**
45
- * Generates a proof that demonstrates the link between public key A and shared secret S
46
- * @param a Private key corresponding to public key A
47
- * @param A Public key
48
- * @param B Other party's public key
49
- * @param S Shared secret
50
- * @returns Proof (R, S', z)
51
- */
52
- generateProof (aArg: PrivateKey, AArg: PublicKey, BArg: PublicKey, S: Point): { R: Point, SPrime: Point, z: BigNumber } {
45
+ * Generates a proof that demonstrates the link between public key A and shared secret S
46
+ * @param a Private key corresponding to public key A
47
+ * @param A Public key
48
+ * @param B Other party's public key
49
+ * @param S Shared secret
50
+ * @returns Proof (R, S', z)
51
+ */
52
+ generateProof (
53
+ aArg: PrivateKey,
54
+ AArg: PublicKey,
55
+ BArg: PublicKey,
56
+ S: Point
57
+ ): { R: Point, SPrime: Point, z: BigNumber } {
53
58
  const r = PrivateKey.fromRandom()
54
59
  const R = r.toPublicKey()
55
60
  const SPrime = BArg.mul(r)
@@ -59,14 +64,19 @@ export default class Schnorr {
59
64
  }
60
65
 
61
66
  /**
62
- * Verifies the proof of the link between public key A and shared secret S
63
- * @param A Public key
64
- * @param B Other party's public key
65
- * @param S Shared secret
66
- * @param proof Proof (R, S', z)
67
- * @returns True if the proof is valid, false otherwise
68
- */
69
- verifyProof (A: Point, B: Point, S: Point, proof: { R: Point, SPrime: Point, z: BigNumber }): boolean {
67
+ * Verifies the proof of the link between public key A and shared secret S
68
+ * @param A Public key
69
+ * @param B Other party's public key
70
+ * @param S Shared secret
71
+ * @param proof Proof (R, S', z)
72
+ * @returns True if the proof is valid, false otherwise
73
+ */
74
+ verifyProof (
75
+ A: Point,
76
+ B: Point,
77
+ S: Point,
78
+ proof: { R: Point, SPrime: Point, z: BigNumber }
79
+ ): boolean {
70
80
  const { R, SPrime, z } = proof
71
81
  const e = this.computeChallenge(A, B, S, SPrime, R)
72
82
 
@@ -87,8 +97,20 @@ export default class Schnorr {
87
97
  return true
88
98
  }
89
99
 
90
- private computeChallenge (A: Point, B: Point, S: Point, SPrime: Point, R: Point): BigNumber {
91
- const message = [...A.encode(true), ...B.encode(true), ...S.encode(true), ...SPrime.encode(true), ...R.encode(true)] as number[]
100
+ private computeChallenge (
101
+ A: Point,
102
+ B: Point,
103
+ S: Point,
104
+ SPrime: Point,
105
+ R: Point
106
+ ): BigNumber {
107
+ const message = [
108
+ ...A.encode(true),
109
+ ...B.encode(true),
110
+ ...S.encode(true),
111
+ ...SPrime.encode(true),
112
+ ...R.encode(true)
113
+ ] as number[]
92
114
  const hash = sha256(message)
93
115
  return new BigNumber(hash).umod(this.curve.n)
94
116
  }
@@ -64,7 +64,7 @@ export default class Signature {
64
64
  throw new Error('Signature DER must start with 0x30')
65
65
  }
66
66
  const len = getLength(data, p)
67
- if ((len + p.place) !== data.length) {
67
+ if (len + p.place !== data.length) {
68
68
  throw new Error('Signature DER invalid')
69
69
  }
70
70
  if (data[p.place++] !== 0x02) {
@@ -96,10 +96,7 @@ export default class Signature {
96
96
  }
97
97
  }
98
98
 
99
- return new Signature(
100
- new BigNumber(r),
101
- new BigNumber(s)
102
- )
99
+ return new Signature(new BigNumber(r), new BigNumber(s))
103
100
  }
104
101
 
105
102
  /**
@@ -120,7 +117,10 @@ export default class Signature {
120
117
  * @example
121
118
  * const signature = Signature.fromCompact('1b18c1f5502f8...', 'hex');
122
119
  */
123
- static fromCompact (data: number[] | string, enc?: 'hex' | 'base64'): Signature {
120
+ static fromCompact (
121
+ data: number[] | string,
122
+ enc?: 'hex' | 'base64'
123
+ ): Signature {
124
124
  data = toArray(data, enc)
125
125
  if (data.length !== 65) {
126
126
  throw new Error('Invalid Compact Signature')
@@ -189,7 +189,7 @@ export default class Signature {
189
189
  * @example
190
190
  * const der = signature.toString('base64');
191
191
  */
192
- toString (enc?: 'hex' | 'base64') {
192
+ toString (enc?: 'hex' | 'base64'): number[] | string {
193
193
  return this.toDER(enc)
194
194
  }
195
195
 
@@ -219,7 +219,7 @@ export default class Signature {
219
219
  const rmPadding = (buf: number[]): number[] => {
220
220
  let i = 0
221
221
  const len = buf.length - 1
222
- while ((buf[i] === 0) && ((buf[i + 1] & 0x80) === 0) && i < len) {
222
+ while (buf[i] === 0 && (buf[i + 1] & 0x80) === 0 && i < len) {
223
223
  i++
224
224
  }
225
225
  if (i === 0) {
@@ -232,14 +232,18 @@ export default class Signature {
232
232
  let s = this.s.toArray()
233
233
 
234
234
  // Pad values
235
- if ((r[0] & 0x80) !== 0) { r = [0].concat(r) }
235
+ if ((r[0] & 0x80) !== 0) {
236
+ r = [0].concat(r)
237
+ }
236
238
  // Pad values
237
- if ((s[0] & 0x80) !== 0) { s = [0].concat(s) }
239
+ if ((s[0] & 0x80) !== 0) {
240
+ s = [0].concat(s)
241
+ }
238
242
 
239
243
  r = rmPadding(r)
240
244
  s = rmPadding(s)
241
245
 
242
- while ((s[0] === 0) && (s[1] & 0x80) === 0) {
246
+ while (s[0] === 0 && (s[1] & 0x80) === 0) {
243
247
  s = s.slice(1)
244
248
  }
245
249
  let arr = [0x02]
@@ -274,9 +278,15 @@ export default class Signature {
274
278
  * @example
275
279
  * const compact = signature.toCompact(3, true, 'base64');
276
280
  */
277
- toCompact (recovery: number, compressed: boolean, enc?: 'hex' | 'base64'): number[] | string {
281
+ toCompact (
282
+ recovery: number,
283
+ compressed: boolean,
284
+ enc?: 'hex' | 'base64'
285
+ ): number[] | string {
278
286
  if (recovery < 0 || recovery > 3) throw new Error('Invalid recovery param')
279
- if (typeof compressed !== 'boolean') throw new Error('Invalid compressed param')
287
+ if (typeof compressed !== 'boolean') {
288
+ throw new Error('Invalid compressed param')
289
+ }
280
290
  let compactByte = 27 + recovery
281
291
  if (compressed) {
282
292
  compactByte += 4
@@ -311,7 +321,7 @@ export default class Signature {
311
321
  const s = this.s
312
322
 
313
323
  // A set LSB signifies that the y-coordinate is odd
314
- const isYOdd = !!(recovery & 1)
324
+ const isYOdd = (recovery & 1) !== 0
315
325
 
316
326
  // The more significant bit specifies whether we should use the
317
327
  // first or second candidate key.
@@ -322,7 +332,7 @@ export default class Signature {
322
332
  const G = curve.g
323
333
 
324
334
  // 1.1 LEt x = r + jn
325
- const x = isSecondKey ? r.add(n) : r
335
+ const x = isSecondKey !== 0 ? r.add(n) : r
326
336
  const R = Point.fromX(x, isYOdd)
327
337
 
328
338
  // 1.4 Check that nR is at infinity
@@ -367,7 +377,7 @@ export default class Signature {
367
377
  let Qprime
368
378
  try {
369
379
  Qprime = this.RecoverPublicKey(recovery, msgHash)
370
- } catch (e) {
380
+ } catch {
371
381
  continue
372
382
  }
373
383
  if (pubkey.eq(Qprime)) {
@@ -27,19 +27,19 @@ export default class SymmetricKey extends BigNumber {
27
27
  }
28
28
 
29
29
  /**
30
- * Encrypts a given message using AES-GCM encryption.
31
- * The generated Initialization Vector (IV) is attached to the encrypted message for decryption purposes.
32
- * The OpenSSL format of |IV|encryptedContent|authTag| is used.
33
- *
34
- * @method encrypt
35
- * @param msg - The message to be encrypted. It can be a string or an array of numbers.
36
- * @param enc - optional. The encoding of the message. If hex, the string is assumed to be hex, UTF-8 otherwise.
37
- * @returns Returns the encrypted message as a string or an array of numbers, depending on `enc` argument.
38
- *
39
- * @example
40
- * const key = new SymmetricKey(1234);
41
- * const encryptedMessage = key.encrypt('plainText', 'utf8');
42
- */
30
+ * Encrypts a given message using AES-GCM encryption.
31
+ * The generated Initialization Vector (IV) is attached to the encrypted message for decryption purposes.
32
+ * The OpenSSL format of |IV|encryptedContent|authTag| is used.
33
+ *
34
+ * @method encrypt
35
+ * @param msg - The message to be encrypted. It can be a string or an array of numbers.
36
+ * @param enc - optional. The encoding of the message. If hex, the string is assumed to be hex, UTF-8 otherwise.
37
+ * @returns Returns the encrypted message as a string or an array of numbers, depending on `enc` argument.
38
+ *
39
+ * @example
40
+ * const key = new SymmetricKey(1234);
41
+ * const encryptedMessage = key.encrypt('plainText', 'utf8');
42
+ */
43
43
  encrypt (msg: number[] | string, enc?: 'hex'): string | number[] {
44
44
  const iv = Random(32)
45
45
  msg = toArray(msg, enc)
@@ -69,7 +69,7 @@ export default class SymmetricKey extends BigNumber {
69
69
  * @throws {Error} Will throw an error if the decryption fails, likely due to message tampering or incorrect decryption key.
70
70
  */
71
71
  decrypt (msg: number[] | string, enc?: 'hex' | 'utf8'): string | number[] {
72
- msg = toArray(msg, enc) as number[]
72
+ msg = toArray(msg, enc)
73
73
  const iv = msg.slice(0, 32)
74
74
  const ciphertextWithTag = msg.slice(32)
75
75
  const messageTag = ciphertextWithTag.slice(-16)
@@ -38,8 +38,12 @@ export default class TransactionSignature extends Signature {
38
38
 
39
39
  const getPrevoutHash = (): number[] => {
40
40
  const writer = new Writer()
41
+
41
42
  for (const input of inputs) {
42
43
  if (typeof input.sourceTXID === 'undefined') {
44
+ if (input.sourceTransaction == null) {
45
+ throw new Error('Missing sourceTransaction for input')
46
+ }
43
47
  writer.write(input.sourceTransaction.hash() as number[])
44
48
  } else {
45
49
  writer.writeReverse(toArray(input.sourceTXID, 'hex'))
@@ -56,7 +60,8 @@ export default class TransactionSignature extends Signature {
56
60
  const writer = new Writer()
57
61
 
58
62
  for (const input of inputs) {
59
- writer.writeUInt32LE(input.sequence)
63
+ const sequence = input.sequence ?? 0xffffffff // Default to max sequence number
64
+ writer.writeUInt32LE(sequence)
60
65
  }
61
66
 
62
67
  const buf = writer.toArray()
@@ -68,17 +73,25 @@ export default class TransactionSignature extends Signature {
68
73
  const writer = new Writer()
69
74
 
70
75
  if (typeof outputIndex === 'undefined') {
71
- let script: number[]
72
76
  for (const output of params.outputs) {
73
- writer.writeUInt64LE(output.satoshis)
74
- script = output.lockingScript.toBinary()
77
+ const satoshis = output.satoshis ?? 0 // Default to 0 if undefined
78
+ writer.writeUInt64LE(satoshis)
79
+
80
+ const script = output.lockingScript?.toBinary() ?? []
75
81
  writer.writeVarIntNum(script.length)
76
82
  writer.write(script)
77
83
  }
78
84
  } else {
79
85
  const output = params.outputs[outputIndex]
80
- writer.writeUInt64LE(output.satoshis)
81
- const script = output.lockingScript.toBinary()
86
+
87
+ if (output === undefined) { // ✅ Explicitly check for undefined
88
+ throw new Error(`Output at index ${outputIndex} does not exist`)
89
+ }
90
+
91
+ const satoshis = output.satoshis ?? 0 // Default to 0 if undefined
92
+ writer.writeUInt64LE(satoshis)
93
+
94
+ const script = output.lockingScript?.toBinary() ?? []
82
95
  writer.writeVarIntNum(script.length)
83
96
  writer.write(script)
84
97
  }
@@ -96,15 +109,23 @@ export default class TransactionSignature extends Signature {
96
109
  hashPrevouts = getPrevoutHash()
97
110
  }
98
111
 
99
- if ((params.scope & TransactionSignature.SIGHASH_ANYONECANPAY) === 0 &&
112
+ if (
113
+ (params.scope & TransactionSignature.SIGHASH_ANYONECANPAY) === 0 &&
100
114
  (params.scope & 31) !== TransactionSignature.SIGHASH_SINGLE &&
101
- (params.scope & 31) !== TransactionSignature.SIGHASH_NONE) {
115
+ (params.scope & 31) !== TransactionSignature.SIGHASH_NONE
116
+ ) {
102
117
  hashSequence = getSequenceHash()
103
118
  }
104
119
 
105
- if ((params.scope & 31) !== TransactionSignature.SIGHASH_SINGLE && (params.scope & 31) !== TransactionSignature.SIGHASH_NONE) {
120
+ if (
121
+ (params.scope & 31) !== TransactionSignature.SIGHASH_SINGLE &&
122
+ (params.scope & 31) !== TransactionSignature.SIGHASH_NONE
123
+ ) {
106
124
  hashOutputs = getOutputsHash()
107
- } else if ((params.scope & 31) === TransactionSignature.SIGHASH_SINGLE && params.inputIndex < params.outputs.length) {
125
+ } else if (
126
+ (params.scope & 31) === TransactionSignature.SIGHASH_SINGLE &&
127
+ params.inputIndex < params.outputs.length
128
+ ) {
108
129
  hashOutputs = getOutputsHash(params.inputIndex)
109
130
  }
110
131
 
@@ -167,16 +188,19 @@ export default class TransactionSignature extends Signature {
167
188
  }
168
189
 
169
190
  /**
170
- * Compares to bitcoind's IsLowDERSignature
171
- * See also Ecdsa signature algorithm which enforces this.
172
- * See also Bip 62, "low S values in signatures"
173
- */
191
+ * Compares to bitcoind's IsLowDERSignature
192
+ * See also Ecdsa signature algorithm which enforces this.
193
+ * See also Bip 62, "low S values in signatures"
194
+ */
174
195
  public hasLowS (): boolean {
175
196
  if (
176
197
  this.s.ltn(1) ||
177
- this.s.gt(new BigNumber(
178
- '7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0', 'hex'
179
- ))
198
+ this.s.gt(
199
+ new BigNumber(
200
+ '7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0',
201
+ 'hex'
202
+ )
203
+ )
180
204
  ) {
181
205
  return false
182
206
  }