@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
@@ -119,11 +119,11 @@ export default class Spend {
119
119
  operation = this.lockingScript.chunks[this.programCounter];
120
120
  }
121
121
  const isOpcodeDisabled = (op) => {
122
- return op === OP.OP_2MUL ||
122
+ return (op === OP.OP_2MUL ||
123
123
  op === OP.OP_2DIV ||
124
124
  op === OP.OP_VERIF ||
125
125
  op === OP.OP_VERNOTIF ||
126
- op === OP.OP_VER;
126
+ op === OP.OP_VER);
127
127
  };
128
128
  const isChunkMinimal = (chunk) => {
129
129
  const data = chunk.data;
@@ -157,7 +157,7 @@ export default class Spend {
157
157
  }
158
158
  return true;
159
159
  };
160
- // Following example from sCrypt now using Number.MAX_SAFE_INTEGER (bsv/lib/transaction/input/input.js).
160
+ // Following example from sCrypt now using Number.MAX_SAFE_INTEGER (bsv/lib/transaction/input/input).
161
161
  const isMinimallyEncoded = (buf, maxNumSize = Number.MAX_SAFE_INTEGER) => {
162
162
  if (buf.length > maxNumSize) {
163
163
  return false;
@@ -292,7 +292,7 @@ export default class Spend {
292
292
  this.scriptEvaluationError('The non-compressed public key must be 65 bytes.');
293
293
  }
294
294
  }
295
- else if ((buf[0] === 0x02 || buf[0] === 0x03)) {
295
+ else if (buf[0] === 0x02 || buf[0] === 0x03) {
296
296
  if (buf.length !== 33) {
297
297
  this.scriptEvaluationError('The compressed public key must be 33 bytes.');
298
298
  }
@@ -320,7 +320,7 @@ export default class Spend {
320
320
  return verify(hash, sig, pubkey);
321
321
  };
322
322
  const isScriptExecuting = !this.ifStack.includes(false);
323
- let buf, buf1, buf2, buf3, spliced, n, size, rawnum, num, signbit, x1, x2, x3, bn, bn1, bn2, bn3, bufSig, bufPubkey, subscript, bufHash;
323
+ let buf, buf1, buf2, buf3, spliced, n, size, rawnum, num, signbit, x1, x2, x3, bn, bn1, bn2, bn3, bufSig, bufPubkey, subscript;
324
324
  let sig, pubkey, i, fOk, nKeysCount, ikey, ikey2, nSigsCount, isig;
325
325
  let fValue, fEqual, fSuccess;
326
326
  // Read instruction
@@ -335,7 +335,8 @@ export default class Spend {
335
335
  if (isScriptExecuting && isOpcodeDisabled(currentOpcode)) {
336
336
  this.scriptEvaluationError('This opcode is currently disabled.');
337
337
  }
338
- if (isScriptExecuting && currentOpcode >= 0 &&
338
+ if (isScriptExecuting &&
339
+ currentOpcode >= 0 &&
339
340
  currentOpcode <= OP.OP_PUSHDATA4) {
340
341
  if (requireMinimalPush && !isChunkMinimal(operation)) {
341
342
  this.scriptEvaluationError('This data is not minimally-encoded.');
@@ -347,7 +348,8 @@ export default class Spend {
347
348
  this.stack.push(operation.data);
348
349
  }
349
350
  }
350
- else if (isScriptExecuting || (OP.OP_IF <= currentOpcode && currentOpcode <= OP.OP_ENDIF)) {
351
+ else if (isScriptExecuting ||
352
+ (OP.OP_IF <= currentOpcode && currentOpcode <= OP.OP_ENDIF)) {
351
353
  switch (currentOpcode) {
352
354
  case OP.OP_1NEGATE:
353
355
  case OP.OP_1:
@@ -466,7 +468,8 @@ export default class Spend {
466
468
  if (this.ifStack.length === 0) {
467
469
  this.scriptEvaluationError('OP_ELSE requires a preceeding OP_IF.');
468
470
  }
469
- this.ifStack[this.ifStack.length - 1] = !this.ifStack[this.ifStack.length - 1];
471
+ this.ifStack[this.ifStack.length - 1] =
472
+ !this.ifStack[this.ifStack.length - 1];
470
473
  break;
471
474
  case OP.OP_ENDIF:
472
475
  if (this.ifStack.length === 0) {
@@ -500,13 +503,13 @@ export default class Spend {
500
503
  if (this.stack.length < 1) {
501
504
  this.scriptEvaluationError('OP_TOALTSTACK requires at oeast one item to be on the stack.');
502
505
  }
503
- this.altStack.push(this.stack.pop());
506
+ this.altStack.push(this.stack.pop() ?? []);
504
507
  break;
505
508
  case OP.OP_FROMALTSTACK:
506
509
  if (this.altStack.length < 1) {
507
510
  this.scriptEvaluationError('OP_FROMALTSTACK requires at least one item to be on the stack.');
508
511
  }
509
- this.stack.push(this.altStack.pop());
512
+ this.stack.push(this.altStack.pop() ?? []);
510
513
  break;
511
514
  case OP.OP_2DROP:
512
515
  if (this.stack.length < 2) {
@@ -765,10 +768,10 @@ export default class Spend {
765
768
  }
766
769
  break;
767
770
  case OP.OP_NOT:
768
- bn = new BigNumber((bn.cmpn(0) === 0) ? 1 : 0 + 0);
771
+ bn = new BigNumber(bn.cmpn(0) === 0 ? 1 : 0 + 0);
769
772
  break;
770
773
  case OP.OP_0NOTEQUAL:
771
- bn = new BigNumber((bn.cmpn(0) !== 0) ? 1 : 0 + 0);
774
+ bn = new BigNumber(bn.cmpn(0) !== 0 ? 1 : 0 + 0);
772
775
  break;
773
776
  }
774
777
  this.stack.pop();
@@ -819,37 +822,37 @@ export default class Spend {
819
822
  bn = bn1.mod(bn2);
820
823
  break;
821
824
  case OP.OP_BOOLAND:
822
- bn = new BigNumber(((bn1.cmpn(0) !== 0) && (bn2.cmpn(0) !== 0)) ? 1 : 0 + 0);
825
+ bn = new BigNumber(bn1.cmpn(0) !== 0 && bn2.cmpn(0) !== 0 ? 1 : 0 + 0);
823
826
  break;
824
827
  case OP.OP_BOOLOR:
825
- bn = new BigNumber(((bn1.cmpn(0) !== 0) || (bn2.cmpn(0) !== 0)) ? 1 : 0 + 0);
828
+ bn = new BigNumber(bn1.cmpn(0) !== 0 || bn2.cmpn(0) !== 0 ? 1 : 0 + 0);
826
829
  break;
827
830
  case OP.OP_NUMEQUAL:
828
- bn = new BigNumber((bn1.cmp(bn2) === 0) ? 1 : 0 + 0);
831
+ bn = new BigNumber(bn1.cmp(bn2) === 0 ? 1 : 0 + 0);
829
832
  break;
830
833
  case OP.OP_NUMEQUALVERIFY:
831
- bn = new BigNumber((bn1.cmp(bn2) === 0) ? 1 : 0 + 0);
834
+ bn = new BigNumber(bn1.cmp(bn2) === 0 ? 1 : 0 + 0);
832
835
  break;
833
836
  case OP.OP_NUMNOTEQUAL:
834
- bn = new BigNumber((bn1.cmp(bn2) !== 0) ? 1 : 0 + 0);
837
+ bn = new BigNumber(bn1.cmp(bn2) !== 0 ? 1 : 0 + 0);
835
838
  break;
836
839
  case OP.OP_LESSTHAN:
837
- bn = new BigNumber((bn1.cmp(bn2) < 0) ? 1 : 0 + 0);
840
+ bn = new BigNumber(bn1.cmp(bn2) < 0 ? 1 : 0 + 0);
838
841
  break;
839
842
  case OP.OP_GREATERTHAN:
840
- bn = new BigNumber((bn1.cmp(bn2) > 0) ? 1 : 0 + 0);
843
+ bn = new BigNumber(bn1.cmp(bn2) > 0 ? 1 : 0 + 0);
841
844
  break;
842
845
  case OP.OP_LESSTHANOREQUAL:
843
- bn = new BigNumber((bn1.cmp(bn2) <= 0) ? 1 : 0 + 0);
846
+ bn = new BigNumber(bn1.cmp(bn2) <= 0 ? 1 : 0 + 0);
844
847
  break;
845
848
  case OP.OP_GREATERTHANOREQUAL:
846
- bn = new BigNumber((bn1.cmp(bn2) >= 0) ? 1 : 0 + 0);
849
+ bn = new BigNumber(bn1.cmp(bn2) >= 0 ? 1 : 0 + 0);
847
850
  break;
848
851
  case OP.OP_MIN:
849
- bn = (bn1.cmp(bn2) < 0 ? bn1 : bn2);
852
+ bn = bn1.cmp(bn2) < 0 ? bn1 : bn2;
850
853
  break;
851
854
  case OP.OP_MAX:
852
- bn = (bn1.cmp(bn2) > 0 ? bn1 : bn2);
855
+ bn = bn1.cmp(bn2) > 0 ? bn1 : bn2;
853
856
  break;
854
857
  }
855
858
  this.stack.pop();
@@ -871,7 +874,7 @@ export default class Spend {
871
874
  bn1 = BigNumber.fromScriptNum(this.stacktop(-3), requireMinimalPush);
872
875
  bn2 = BigNumber.fromScriptNum(this.stacktop(-2), requireMinimalPush);
873
876
  bn3 = BigNumber.fromScriptNum(this.stacktop(-1), requireMinimalPush);
874
- fValue = (bn2.cmp(bn1) <= 0) && (bn1.cmp(bn3) < 0);
877
+ fValue = bn2.cmp(bn1) <= 0 && bn1.cmp(bn3) < 0;
875
878
  this.stack.pop();
876
879
  this.stack.pop();
877
880
  this.stack.pop();
@@ -881,10 +884,11 @@ export default class Spend {
881
884
  case OP.OP_SHA1:
882
885
  case OP.OP_SHA256:
883
886
  case OP.OP_HASH160:
884
- case OP.OP_HASH256:
887
+ case OP.OP_HASH256: {
885
888
  if (this.stack.length < 1) {
886
889
  this.scriptEvaluationError(`${OP[currentOpcode]} requires at least one item to be on the stack.`);
887
890
  }
891
+ let bufHash = []; // ✅ Initialize bufHash to an empty array
888
892
  buf = this.stacktop(-1);
889
893
  if (currentOpcode === OP.OP_RIPEMD160) {
890
894
  bufHash = Hash.ripemd160(buf);
@@ -904,6 +908,7 @@ export default class Spend {
904
908
  this.stack.pop();
905
909
  this.stack.push(bufHash);
906
910
  break;
911
+ }
907
912
  case OP.OP_CODESEPARATOR:
908
913
  this.lastCodeSeparator = this.programCounter;
909
914
  break;
@@ -921,10 +926,10 @@ export default class Spend {
921
926
  // Subset of script starting at the most recent codeseparator
922
927
  // CScript scriptCode(pbegincodehash, pend);
923
928
  if (this.context === 'UnlockingScript') {
924
- subscript = new Script(this.unlockingScript.chunks.slice(this.lastCodeSeparator));
929
+ subscript = new Script(this.unlockingScript.chunks.slice(this.lastCodeSeparator ?? 0));
925
930
  }
926
931
  else {
927
- subscript = new Script(this.lockingScript.chunks.slice(this.lastCodeSeparator));
932
+ subscript = new Script(this.lockingScript.chunks.slice(this.lastCodeSeparator ?? 0));
928
933
  }
929
934
  // Drop the signature, since there's no way for a signature to sign itself
930
935
  subscript.findAndDelete(new Script().writeBin(bufSig));
@@ -985,10 +990,10 @@ export default class Spend {
985
990
  }
986
991
  // Subset of script starting at the most recent codeseparator
987
992
  if (this.context === 'UnlockingScript') {
988
- subscript = new Script(this.unlockingScript.chunks.slice(this.lastCodeSeparator));
993
+ subscript = new Script(this.unlockingScript.chunks.slice(this.lastCodeSeparator ?? 0));
989
994
  }
990
995
  else {
991
- subscript = new Script(this.lockingScript.chunks.slice(this.lastCodeSeparator));
996
+ subscript = new Script(this.lockingScript.chunks.slice(this.lastCodeSeparator ?? 0));
992
997
  }
993
998
  // Drop the signatures, since there's no way for a signature to sign itself
994
999
  for (let k = 0; k < nSigsCount; k++) {
@@ -1028,7 +1033,7 @@ export default class Spend {
1028
1033
  }
1029
1034
  // Clean up stack of actual arguments
1030
1035
  while (i-- > 1) {
1031
- if (!fSuccess && !ikey2 && (this.stacktop(-1).length > 0)) {
1036
+ if (!fSuccess && ikey2 === 0 && this.stacktop(-1).length > 0) {
1032
1037
  this.scriptEvaluationError(`${OP[currentOpcode]} failed to verify a signature, and requires an empty signature when verification fails.`);
1033
1038
  }
1034
1039
  if (ikey2 > 0) {
@@ -1045,7 +1050,8 @@ export default class Spend {
1045
1050
  if (this.stack.length < 1) {
1046
1051
  this.scriptEvaluationError(`${OP[currentOpcode]} requires an extra item to be on the stack.`);
1047
1052
  }
1048
- if (this.stacktop(-1).length > 0) { // NOTE: Is this necessary? We don't care about malleability.
1053
+ if (this.stacktop(-1).length > 0) {
1054
+ // NOTE: Is this necessary? We don't care about malleability.
1049
1055
  this.scriptEvaluationError(`${OP[currentOpcode]} requires the extra stack item to be empty.`);
1050
1056
  }
1051
1057
  this.stack.pop();
@@ -1164,7 +1170,8 @@ export default class Spend {
1164
1170
  }
1165
1171
  while (true) {
1166
1172
  this.step();
1167
- if (this.context === 'LockingScript' && this.programCounter >= this.lockingScript.chunks.length) {
1173
+ if (this.context === 'LockingScript' &&
1174
+ this.programCounter >= this.lockingScript.chunks.length) {
1168
1175
  break;
1169
1176
  }
1170
1177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Spend.js","sourceRoot":"","sources":["../../../../src/script/Spend.ts"],"names":[],"mappings":"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AAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,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"}
1
+ {"version":3,"file":"Spend.js","sourceRoot":"","sources":["../../../../src/script/Spend.ts"],"names":[],"mappings":"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AC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBA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"}
@@ -4,6 +4,11 @@ import LockingScript from '../LockingScript.js';
4
4
  import UnlockingScript from '../UnlockingScript.js';
5
5
  import TransactionSignature from '../../primitives/TransactionSignature.js';
6
6
  import { sha256 } from '../../primitives/Hash.js';
7
+ function verifyTruthy(v) {
8
+ if (v == null)
9
+ throw new Error('must have value');
10
+ return v;
11
+ }
7
12
  /**
8
13
  * P2PKH (Pay To Public Key Hash) class implementing ScriptTemplate.
9
14
  *
@@ -20,15 +25,17 @@ export default class P2PKH {
20
25
  let data;
21
26
  if (typeof pubkeyhash === 'string') {
22
27
  const hash = fromBase58Check(pubkeyhash);
23
- if (hash.prefix[0] !== 0x00 && hash.prefix[0] !== 0x6f)
28
+ if (hash.prefix[0] !== 0x00 && hash.prefix[0] !== 0x6f) {
24
29
  throw new Error('only P2PKH is supported');
30
+ }
25
31
  data = hash.data;
26
32
  }
27
33
  else {
28
34
  data = pubkeyhash;
29
35
  }
30
- if (data.length !== 20)
36
+ if (data.length !== 20) {
31
37
  throw new Error('P2PKH hash length must be 20 bytes');
38
+ }
32
39
  return new LockingScript([
33
40
  { op: OP.OP_DUP },
34
41
  { op: OP.OP_HASH160 },
@@ -70,27 +77,33 @@ export default class P2PKH {
70
77
  }
71
78
  const input = tx.inputs[inputIndex];
72
79
  const otherInputs = tx.inputs.filter((_, index) => index !== inputIndex);
73
- const sourceTXID = input.sourceTXID ? input.sourceTXID : input.sourceTransaction?.id('hex');
74
- if (!sourceTXID) {
80
+ const sourceTXID = input.sourceTXID ?? input.sourceTransaction?.id('hex');
81
+ if (sourceTXID == null || sourceTXID === undefined) {
82
+ throw new Error('The input sourceTXID or sourceTransaction is required for transaction signing.');
83
+ }
84
+ if (sourceTXID === '') {
75
85
  throw new Error('The input sourceTXID or sourceTransaction is required for transaction signing.');
76
86
  }
77
- sourceSatoshis ||= input.sourceTransaction?.outputs[input.sourceOutputIndex].satoshis;
78
- if (!sourceSatoshis) {
87
+ sourceSatoshis ||=
88
+ input.sourceTransaction?.outputs[input.sourceOutputIndex].satoshis;
89
+ if (sourceSatoshis == null || sourceSatoshis === undefined) {
79
90
  throw new Error('The sourceSatoshis or input sourceTransaction is required for transaction signing.');
80
91
  }
81
- lockingScript ||= input.sourceTransaction?.outputs[input.sourceOutputIndex].lockingScript;
82
- if (!lockingScript) {
92
+ lockingScript ||=
93
+ input.sourceTransaction?.outputs[input.sourceOutputIndex]
94
+ .lockingScript;
95
+ if (lockingScript == null) {
83
96
  throw new Error('The lockingScript or input sourceTransaction is required for transaction signing.');
84
97
  }
85
98
  const preimage = TransactionSignature.format({
86
99
  sourceTXID,
87
- sourceOutputIndex: input.sourceOutputIndex,
100
+ sourceOutputIndex: verifyTruthy(input.sourceOutputIndex),
88
101
  sourceSatoshis,
89
102
  transactionVersion: tx.version,
90
103
  otherInputs,
91
104
  inputIndex,
92
105
  outputs: tx.outputs,
93
- inputSequence: input.sequence,
106
+ inputSequence: verifyTruthy(input.sequence),
94
107
  subscript: lockingScript,
95
108
  lockTime: tx.lockTime,
96
109
  scope: signatureScope
@@ -98,7 +111,9 @@ export default class P2PKH {
98
111
  const rawSignature = privateKey.sign(sha256(preimage));
99
112
  const sig = new TransactionSignature(rawSignature.r, rawSignature.s, signatureScope);
100
113
  const sigForScript = sig.toChecksigFormat();
101
- const pubkeyForScript = privateKey.toPublicKey().encode(true);
114
+ const pubkeyForScript = privateKey
115
+ .toPublicKey()
116
+ .encode(true);
102
117
  return new UnlockingScript([
103
118
  { op: sigForScript.length, data: sigForScript },
104
119
  { op: pubkeyForScript.length, data: pubkeyForScript }
@@ -1 +1 @@
1
- {"version":3,"file":"P2PKH.js","sourceRoot":"","sources":["../../../../../src/script/templates/P2PKH.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"P2PKH.js","sourceRoot":"","sources":["../../../../../src/script/templates/P2PKH.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  import { LockingScript, UnlockingScript, OP } from '../index.js';
2
2
  import { Utils, Hash, TransactionSignature, Signature, PublicKey } from '../../primitives/index.js';
3
+ function verifyTruthy(v) {
4
+ if (v == null)
5
+ throw new Error('must have value');
6
+ return v;
7
+ }
3
8
  /**
4
9
  * For a given piece of data to push onto the stack in script, creates the correct minimally-encoded script chunk,
5
10
  * including the correct push operation.
@@ -47,12 +52,14 @@ export default class PushDrop {
47
52
  * @returns An object containing PushDrop token fields and the locking public key. If a signature was included, it will be the last field.
48
53
  */
49
54
  static decode(script) {
50
- const lockingPublicKey = PublicKey.fromString(Utils.toHex(script.chunks[0].data));
55
+ const lockingPublicKey = PublicKey.fromString(Utils.toHex(verifyTruthy(script.chunks[0].data)) // ✅ Ensure not undefined
56
+ );
51
57
  const fields = [];
52
58
  for (let i = 2; i < script.chunks.length; i++) {
53
- const nextOpcode = script.chunks[i + 1].op;
54
- let chunk = script.chunks[i].data;
55
- if (!chunk) {
59
+ const nextOpcode = script.chunks[i + 1]?.op; // ✅ Prevent accessing `op` from `undefined`
60
+ let chunk = script.chunks[i].data ?? []; // ✅ Ensure `chunk` is always `number[]`
61
+ if (chunk.length === 0) {
62
+ // ✅ Only modify `chunk` if it was empty
56
63
  if (script.chunks[i].op >= 80 && script.chunks[i].op <= 95) {
57
64
  chunk = [script.chunks[i].op - 80];
58
65
  }
@@ -102,7 +109,10 @@ export default class PushDrop {
102
109
  });
103
110
  const lockChunks = [];
104
111
  const pushDropChunks = [];
105
- lockChunks.push({ op: publicKey.length / 2, data: Utils.toArray(publicKey, 'hex') });
112
+ lockChunks.push({
113
+ op: publicKey.length / 2,
114
+ data: Utils.toArray(publicKey, 'hex')
115
+ });
106
116
  lockChunks.push({ op: OP.OP_CHECKSIG });
107
117
  if (includeSignature) {
108
118
  const dataToSign = fields.reduce((a, e) => [...a, ...e], []);
@@ -122,20 +132,14 @@ export default class PushDrop {
122
132
  pushDropChunks.push({ op: OP.OP_2DROP });
123
133
  notYetDropped -= 2;
124
134
  }
125
- if (notYetDropped) {
135
+ if (notYetDropped !== 0) {
126
136
  pushDropChunks.push({ op: OP.OP_DROP });
127
137
  }
128
138
  if (lockPosition === 'before') {
129
- return new LockingScript([
130
- ...lockChunks,
131
- ...pushDropChunks
132
- ]);
139
+ return new LockingScript([...lockChunks, ...pushDropChunks]);
133
140
  }
134
141
  else {
135
- return new LockingScript([
136
- ...pushDropChunks,
137
- ...lockChunks
138
- ]);
142
+ return new LockingScript([...pushDropChunks, ...lockChunks]);
139
143
  }
140
144
  }
141
145
  /**
@@ -169,27 +173,30 @@ export default class PushDrop {
169
173
  }
170
174
  const input = tx.inputs[inputIndex];
171
175
  const otherInputs = tx.inputs.filter((_, index) => index !== inputIndex);
172
- const sourceTXID = input.sourceTXID ? input.sourceTXID : input.sourceTransaction?.id('hex');
173
- if (!sourceTXID) {
176
+ const sourceTXID = input.sourceTXID ?? input.sourceTransaction?.id('hex');
177
+ if (sourceTXID == null || sourceTXID === undefined) {
174
178
  throw new Error('The input sourceTXID or sourceTransaction is required for transaction signing.');
175
179
  }
176
- sourceSatoshis ||= input.sourceTransaction?.outputs[input.sourceOutputIndex].satoshis;
177
- if (!sourceSatoshis) {
180
+ sourceSatoshis ||=
181
+ input.sourceTransaction?.outputs[input.sourceOutputIndex].satoshis;
182
+ if (sourceSatoshis == null || sourceSatoshis === undefined) {
178
183
  throw new Error('The sourceSatoshis or input sourceTransaction is required for transaction signing.');
179
184
  }
180
- lockingScript ||= input.sourceTransaction?.outputs[input.sourceOutputIndex].lockingScript;
181
- if (!lockingScript) {
185
+ lockingScript ||=
186
+ input.sourceTransaction?.outputs[input.sourceOutputIndex]
187
+ .lockingScript;
188
+ if (lockingScript == null) {
182
189
  throw new Error('The lockingScript or input sourceTransaction is required for transaction signing.');
183
190
  }
184
191
  const preimage = TransactionSignature.format({
185
192
  sourceTXID,
186
- sourceOutputIndex: input.sourceOutputIndex,
193
+ sourceOutputIndex: verifyTruthy(input.sourceOutputIndex),
187
194
  sourceSatoshis,
188
195
  transactionVersion: tx.version,
189
196
  otherInputs,
190
197
  inputIndex,
191
198
  outputs: tx.outputs,
192
- inputSequence: input.sequence,
199
+ inputSequence: input.sequence ?? 0xffffffff,
193
200
  subscript: lockingScript,
194
201
  lockTime: tx.lockTime,
195
202
  scope: signatureScope