@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
@@ -3,11 +3,10 @@ import LockingScript from '../script/LockingScript.js';
3
3
  import { Reader, Writer, toHex, toArray } from '../primitives/utils.js';
4
4
  import { hash256 } from '../primitives/Hash.js';
5
5
  import SatoshisPerKilobyte from './fee-models/SatoshisPerKilobyte.js';
6
- import MerklePath from './MerklePath.js';
7
6
  import Spend from '../script/Spend.js';
8
7
  import { defaultBroadcaster } from './broadcasters/DefaultBroadcaster.js';
9
8
  import { defaultChainTracker } from './chaintrackers/DefaultChainTracker.js';
10
- import { ATOMIC_BEEF, BEEF_V1 } from './Beef.js';
9
+ import { Beef, BEEF_V1 } from './Beef.js';
11
10
  import P2PKH from '../script/templates/P2PKH.js';
12
11
  /**
13
12
  * Represents a complete Bitcoin transaction. This class encapsulates all the details
@@ -63,9 +62,12 @@ export default class Transaction {
63
62
  }
64
63
  else {
65
64
  for (const input of obj.tx.inputs) {
65
+ if (input.sourceTXID === undefined) {
66
+ throw new Error('Input sourceTXID is undefined');
67
+ }
66
68
  const sourceObj = transactions[input.sourceTXID];
67
69
  if (typeof sourceObj !== 'object') {
68
- throw new Error(`Reference to unknown TXID in BEEF: ${input.sourceTXID}`);
70
+ throw new Error(`Reference to unknown TXID in BEEF: ${input.sourceTXID ?? 'undefined'}`);
69
71
  }
70
72
  input.sourceTransaction = sourceObj.tx;
71
73
  this.addPathOrInputs(sourceObj, transactions, BUMPs);
@@ -73,123 +75,53 @@ export default class Transaction {
73
75
  }
74
76
  }
75
77
  /**
76
- * Creates a new transaction, linked to its inputs and their associated merkle paths, from a BEEF (BRC-62) structure.
78
+ * Creates a new transaction, linked to its inputs and their associated merkle paths, from a BEEF V1, V2 or Atomic.
77
79
  * Optionally, you can provide a specific TXID to retrieve a particular transaction from the BEEF data.
78
80
  * If the TXID is provided but not found in the BEEF data, an error will be thrown.
79
- * If no TXID is provided, the last transaction in the BEEF data is returned.
81
+ * If no TXID is provided, the last transaction in the BEEF data is returned, or the atomic txid.
80
82
  * @param beef A binary representation of transactions in BEEF format.
81
83
  * @param txid Optional TXID of the transaction to retrieve from the BEEF data.
82
84
  * @returns An anchored transaction, linked to its associated inputs populated with merkle paths.
83
85
  */
84
86
  static fromBEEF(beef, txid) {
85
- const reader = new Reader(beef);
86
- const { transactions, BUMPs } = Transaction.parseBEEFData(reader);
87
- // The last transaction in the BEEF data can be used if txid is not provided
88
- const txids = Object.keys(transactions);
89
- const lastTXID = txids[txids.length - 1];
90
- const targetTXID = txid || lastTXID;
91
- if (!transactions[targetTXID]) {
92
- throw new Error(`Transaction with TXID ${targetTXID} not found in BEEF data.`);
93
- }
94
- this.addPathOrInputs(transactions[targetTXID], transactions, BUMPs);
95
- return transactions[targetTXID].tx;
87
+ const { tx } = Transaction.fromAnyBeef(beef, txid);
88
+ return tx;
96
89
  }
97
90
  /**
98
91
  * Creates a new transaction from an Atomic BEEF (BRC-95) structure.
99
- * Extracts the subject transaction and ensures that all transactions within the BEEF data
100
- * are part of the dependency graph of the subject transaction.
101
- * Throws errors if the Atomic BEEF data does not strictly adhere to the BRC-95 specification.
92
+ * Extracts the subject transaction and supporting merkle path and source transactions contained in the BEEF data
102
93
  *
103
94
  * @param beef A binary representation of an Atomic BEEF structure.
104
95
  * @returns The subject transaction, linked to its associated inputs populated with merkle paths.
105
96
  */
106
97
  static fromAtomicBEEF(beef) {
107
- const reader = new Reader(beef);
108
- // Read the Atomic BEEF prefix
109
- const prefix = reader.readUInt32LE();
110
- if (prefix !== ATOMIC_BEEF) {
111
- throw new Error(`Invalid Atomic BEEF prefix. Expected 0x01010101, received 0x${prefix.toString(16)}.`);
112
- }
113
- // Read the subject TXID
114
- const subjectTXIDArray = reader.read(32);
115
- const subjectTXID = toHex(subjectTXIDArray);
116
- // The remaining data is the BEEF data
117
- const beefReader = new Reader(reader.read());
118
- const { transactions, BUMPs } = Transaction.parseBEEFData(beefReader);
119
- // Ensure that the subject transaction exists
120
- if (!transactions[subjectTXID]) {
121
- throw new Error(`Subject transaction with TXID ${subjectTXID} not found in Atomic BEEF data.`);
122
- }
123
- // Ensure that all transactions are part of the dependency graph of the subject transaction
124
- const validTxids = new Set();
125
- // All BUMP level 0 hashes are valid.
126
- for (const bump of BUMPs) {
127
- for (const n of bump.path[0]) {
128
- if (n.hash) {
129
- validTxids.add(n.hash);
130
- }
98
+ const { tx, txid, beef: b } = Transaction.fromAnyBeef(beef);
99
+ if (txid !== b.atomicTxid) {
100
+ if (b.atomicTxid) {
101
+ throw new Error(`Transaction with TXID ${b.atomicTxid} not found in BEEF data.`);
131
102
  }
132
- }
133
- // To keep track of which transactions were used.
134
- const unusedTxTxids = new Set();
135
- for (const txid of Object.keys(transactions))
136
- unusedTxTxids.add(txid);
137
- const traverseDependencies = (txid) => {
138
- unusedTxTxids.delete(txid);
139
- if (validTxids.has(txid)) {
140
- return;
141
- }
142
- validTxids.add(txid);
143
- const tx = transactions[txid].tx;
144
- for (const input of tx.inputs) {
145
- const inputTxid = input.sourceTXID;
146
- if (!transactions[inputTxid]) {
147
- throw new Error(`Input transaction with TXID ${inputTxid} is missing in Atomic BEEF data.`);
148
- }
149
- traverseDependencies(inputTxid);
103
+ else {
104
+ throw new Error('beef must conform to BRC-95 and must contain the subject txid.');
150
105
  }
151
- };
152
- traverseDependencies(subjectTXID);
153
- // Check for any unrelated transactions
154
- for (const txid of unusedTxTxids) {
155
- throw new Error(`Unrelated transaction with TXID ${txid} found in Atomic BEEF data.`);
156
106
  }
157
- this.addPathOrInputs(transactions[subjectTXID], transactions, BUMPs);
158
- return transactions[subjectTXID].tx;
107
+ return tx;
159
108
  }
160
- /**
161
- * Parses BEEF data from a Reader and returns the transactions and BUMPs.
162
- *
163
- * @param reader The Reader positioned at the start of BEEF data.
164
- * @returns An object containing the transactions and BUMPs.
165
- */
166
- static parseBEEFData(reader) {
167
- // Read the version
168
- const version = reader.readUInt32LE();
169
- if (version !== BEEF_V1) {
170
- throw new Error(`Invalid BEEF version. Expected ${BEEF_V1}, received ${version}.`);
171
- }
172
- // Read the BUMPs
173
- const numberOfBUMPs = reader.readVarIntNum();
174
- const BUMPs = [];
175
- for (let i = 0; i < numberOfBUMPs; i++) {
176
- BUMPs.push(MerklePath.fromReader(reader));
177
- }
178
- // Read all transactions into an object
179
- // The object has keys of TXIDs and values of objects with transactions and BUMP indexes
180
- const numberOfTransactions = reader.readVarIntNum();
181
- const transactions = {};
182
- for (let i = 0; i < numberOfTransactions; i++) {
183
- const tx = Transaction.fromReader(reader);
184
- const obj = { tx };
185
- const txid = tx.id('hex');
186
- const hasBump = Boolean(reader.readUInt8());
187
- if (hasBump) {
188
- obj.pathIndex = reader.readVarIntNum();
109
+ static fromAnyBeef(beef, txid) {
110
+ const b = Beef.fromBinary(beef);
111
+ if (b.txs.length < 1) {
112
+ throw new Error('beef must include at least one transaction.');
113
+ }
114
+ const target = txid || b.atomicTxid || b.txs.slice(-1)[0].txid;
115
+ const tx = b.findAtomicTransaction(target);
116
+ if (tx == null) {
117
+ if (txid) {
118
+ throw new Error(`Transaction with TXID ${target} not found in BEEF data.`);
119
+ }
120
+ else {
121
+ throw new Error('beef does not contain transaction for atomic txid.');
189
122
  }
190
- transactions[txid] = obj;
191
123
  }
192
- return { transactions, BUMPs };
124
+ return { tx, beef: b, txid: target };
193
125
  }
194
126
  /**
195
127
  * Creates a new transaction, linked to its inputs and their associated merkle paths, from a EF (BRC-30) structure.
@@ -199,8 +131,9 @@ export default class Transaction {
199
131
  static fromEF(ef) {
200
132
  const br = new Reader(ef);
201
133
  const version = br.readUInt32LE();
202
- if (toHex(br.read(6)) !== '0000000000ef')
134
+ if (toHex(br.read(6)) !== '0000000000ef') {
203
135
  throw new Error('Invalid EF marker');
136
+ }
204
137
  const inputsLength = br.readVarIntNum();
205
138
  const inputs = [];
206
139
  for (let i = 0; i < inputsLength; i++) {
@@ -214,7 +147,7 @@ export default class Transaction {
214
147
  const lockingScriptLength = br.readVarIntNum();
215
148
  const lockingScriptBin = br.read(lockingScriptLength);
216
149
  const lockingScript = LockingScript.fromBinary(lockingScriptBin);
217
- const sourceTransaction = new Transaction(null, [], [], null);
150
+ const sourceTransaction = new Transaction(undefined, [], [], undefined);
218
151
  sourceTransaction.outputs = Array(sourceOutputIndex + 1).fill(null);
219
152
  sourceTransaction.outputs[sourceOutputIndex] = {
220
153
  satoshis,
@@ -378,7 +311,7 @@ export default class Transaction {
378
311
  }
379
312
  // If the input sequence number hasn't been set, the expectation is that it is final.
380
313
  if (typeof input.sequence === 'undefined') {
381
- input.sequence = 0xFFFFFFFF;
314
+ input.sequence = 0xffffffff;
382
315
  }
383
316
  this.cachedHash = undefined;
384
317
  this.inputs.push(input);
@@ -390,13 +323,15 @@ export default class Transaction {
390
323
  */
391
324
  addOutput(output) {
392
325
  this.cachedHash = undefined;
393
- if (!output.change) {
394
- if (typeof output.satoshis === 'undefined')
326
+ if (output.change !== true) {
327
+ if (typeof output.satoshis === 'undefined') {
395
328
  throw new Error('either satoshis must be defined or change must be set to true');
396
- if (output.satoshis < 0)
329
+ }
330
+ if (output.satoshis < 0) {
397
331
  throw new Error('satoshis must be a positive integer or zero');
332
+ }
398
333
  }
399
- if (!output.lockingScript)
334
+ if (output.lockingScript == null)
400
335
  throw new Error('lockingScript must be defined');
401
336
  this.outputs.push(output);
402
337
  }
@@ -449,7 +384,7 @@ export default class Transaction {
449
384
  const fee = await modelOrFee.computeFee(this);
450
385
  const change = this.calculateChange(fee);
451
386
  if (change <= 0) {
452
- this.outputs = this.outputs.filter(output => !output.change);
387
+ this.outputs = this.outputs.filter((output) => output.change !== true);
453
388
  return;
454
389
  }
455
390
  this.distributeChange(change, changeDistribution);
@@ -460,19 +395,22 @@ export default class Transaction {
460
395
  if (typeof input.sourceTransaction !== 'object') {
461
396
  throw new Error('Source transactions are required for all inputs during fee computation');
462
397
  }
463
- change += input.sourceTransaction.outputs[input.sourceOutputIndex].satoshis;
398
+ change +=
399
+ input.sourceTransaction.outputs[input.sourceOutputIndex].satoshis ?? 0;
464
400
  }
465
401
  change -= fee;
466
402
  for (const out of this.outputs) {
467
- if (!out.change) {
468
- change -= out.satoshis;
403
+ if (out.change !== true) {
404
+ if (out.satoshis !== undefined) {
405
+ change -= out.satoshis;
406
+ }
469
407
  }
470
408
  }
471
409
  return change;
472
410
  }
473
411
  distributeChange(change, changeDistribution) {
474
412
  let distributedChange = 0;
475
- const changeOutputs = this.outputs.filter(out => out.change);
413
+ const changeOutputs = this.outputs.filter((out) => out.change);
476
414
  if (changeDistribution === 'random') {
477
415
  distributedChange = this.distributeRandomChange(change, changeOutputs);
478
416
  }
@@ -480,7 +418,13 @@ export default class Transaction {
480
418
  distributedChange = this.distributeEqualChange(change, changeOutputs);
481
419
  }
482
420
  if (distributedChange < change) {
483
- this.outputs[this.outputs.length - 1].satoshis += (change - distributedChange);
421
+ const lastOutput = this.outputs[this.outputs.length - 1];
422
+ if (lastOutput.satoshis !== undefined) {
423
+ lastOutput.satoshis += change - distributedChange;
424
+ }
425
+ else {
426
+ lastOutput.satoshis = change - distributedChange;
427
+ }
484
428
  }
485
429
  }
486
430
  distributeRandomChange(change, changeOutputs) {
@@ -491,12 +435,12 @@ export default class Transaction {
491
435
  distributedChange += changeOutputs.length;
492
436
  for (let i = 0; i < changeOutputs.length - 1; i++) {
493
437
  const portion = this.benfordNumber(0, changeToUse);
494
- benfordNumbers[i] += portion;
438
+ benfordNumbers[i] = benfordNumbers[i] + portion;
495
439
  distributedChange += portion;
496
440
  changeToUse -= portion;
497
441
  }
498
442
  for (const output of this.outputs) {
499
- if (output.change)
443
+ if (output.change === true)
500
444
  output.satoshis = benfordNumbers.shift();
501
445
  }
502
446
  return distributedChange;
@@ -512,7 +456,7 @@ export default class Transaction {
512
456
  }
513
457
  benfordNumber(min, max) {
514
458
  const d = Math.floor(Math.random() * 9) + 1;
515
- return Math.floor(min + (max - min) * Math.log10(1 + 1 / d) / Math.log10(10));
459
+ return Math.floor(min + ((max - min) * Math.log10(1 + 1 / d)) / Math.log10(10));
516
460
  }
517
461
  /**
518
462
  * Utility method that returns the current fee based on inputs and outputs
@@ -525,11 +469,12 @@ export default class Transaction {
525
469
  if (typeof input.sourceTransaction !== 'object') {
526
470
  throw new Error('Source transactions or sourceSatoshis are required for all inputs to calculate fee');
527
471
  }
528
- totalIn += input.sourceTransaction.outputs[input.sourceOutputIndex].satoshis;
472
+ totalIn +=
473
+ input.sourceTransaction.outputs[input.sourceOutputIndex].satoshis ?? 0;
529
474
  }
530
475
  let totalOut = 0;
531
476
  for (const output of this.outputs) {
532
- totalOut += output.satoshis || 0;
477
+ totalOut += output.satoshis ?? 0;
533
478
  }
534
479
  return totalIn - totalOut;
535
480
  }
@@ -540,7 +485,7 @@ export default class Transaction {
540
485
  this.cachedHash = undefined;
541
486
  for (const out of this.outputs) {
542
487
  if (typeof out.satoshis === 'undefined') {
543
- if (out.change) {
488
+ if (out.change === true) {
544
489
  throw new Error('There are still change outputs with uncomputed amounts. Use the fee() method to compute the change amounts and transaction fees prior to signing.');
545
490
  }
546
491
  else {
@@ -550,7 +495,7 @@ export default class Transaction {
550
495
  }
551
496
  const unlockingScripts = await Promise.all(this.inputs.map(async (x, i) => {
552
497
  if (typeof this.inputs[i].unlockingScriptTemplate === 'object') {
553
- return await this.inputs[i].unlockingScriptTemplate.sign(this, i);
498
+ return await this.inputs[i]?.unlockingScriptTemplate?.sign(this, i);
554
499
  }
555
500
  else {
556
501
  return await Promise.resolve(undefined);
@@ -582,20 +527,28 @@ export default class Transaction {
582
527
  writer.writeVarIntNum(this.inputs.length);
583
528
  for (const i of this.inputs) {
584
529
  if (typeof i.sourceTXID === 'undefined') {
585
- writer.write(i.sourceTransaction.hash());
530
+ if (i.sourceTransaction != null) {
531
+ writer.write(i.sourceTransaction.hash());
532
+ }
533
+ else {
534
+ throw new Error('sourceTransaction is undefined');
535
+ }
586
536
  }
587
537
  else {
588
538
  writer.writeReverse(toArray(i.sourceTXID, 'hex'));
589
539
  }
590
540
  writer.writeUInt32LE(i.sourceOutputIndex);
541
+ if (i.unlockingScript == null) {
542
+ throw new Error('unlockingScript is undefined');
543
+ }
591
544
  const scriptBin = i.unlockingScript.toBinary();
592
545
  writer.writeVarIntNum(scriptBin.length);
593
546
  writer.write(scriptBin);
594
- writer.writeUInt32LE(i.sequence);
547
+ writer.writeUInt32LE(i.sequence ?? 0);
595
548
  }
596
549
  writer.writeVarIntNum(this.outputs.length);
597
550
  for (const o of this.outputs) {
598
- writer.writeUInt64LE(o.satoshis);
551
+ writer.writeUInt64LE(o.satoshis ?? 0);
599
552
  const scriptBin = o.lockingScript.toBinary();
600
553
  writer.writeVarIntNum(scriptBin.length);
601
554
  writer.write(scriptBin);
@@ -624,18 +577,21 @@ export default class Transaction {
624
577
  writer.write(toArray(i.sourceTXID, 'hex').reverse());
625
578
  }
626
579
  writer.writeUInt32LE(i.sourceOutputIndex);
580
+ if (i.unlockingScript == null) {
581
+ throw new Error('unlockingScript is undefined');
582
+ }
627
583
  const scriptBin = i.unlockingScript.toBinary();
628
584
  writer.writeVarIntNum(scriptBin.length);
629
585
  writer.write(scriptBin);
630
- writer.writeUInt32LE(i.sequence);
631
- writer.writeUInt64LE(i.sourceTransaction.outputs[i.sourceOutputIndex].satoshis);
586
+ writer.writeUInt32LE(i.sequence ?? 0);
587
+ writer.writeUInt64LE(i.sourceTransaction.outputs[i.sourceOutputIndex].satoshis ?? 0);
632
588
  const lockingScriptBin = i.sourceTransaction.outputs[i.sourceOutputIndex].lockingScript.toBinary();
633
589
  writer.writeVarIntNum(lockingScriptBin.length);
634
590
  writer.write(lockingScriptBin);
635
591
  }
636
592
  writer.writeVarIntNum(this.outputs.length);
637
593
  for (const o of this.outputs) {
638
- writer.writeUInt64LE(o.satoshis);
594
+ writer.writeUInt64LE(o.satoshis ?? 0);
639
595
  const scriptBin = o.lockingScript.toBinary();
640
596
  writer.writeVarIntNum(scriptBin.length);
641
597
  writer.write(scriptBin);
@@ -683,7 +639,7 @@ export default class Transaction {
683
639
  */
684
640
  hash(enc) {
685
641
  let hash;
686
- if (this.cachedHash) {
642
+ if (this.cachedHash != null) {
687
643
  hash = this.cachedHash;
688
644
  }
689
645
  else {
@@ -723,14 +679,16 @@ export default class Transaction {
723
679
  const txQueue = [this];
724
680
  while (txQueue.length > 0) {
725
681
  const tx = txQueue.shift();
726
- const txid = tx.id('hex');
727
- if (verifiedTxids.has(txid)) {
682
+ const txid = tx?.id('hex') ?? '';
683
+ if (txid != null && txid !== '' && verifiedTxids.has(txid)) {
728
684
  continue;
729
685
  }
730
686
  // If the transaction has a valid merkle path, verification is complete.
731
- if (typeof tx.merklePath === 'object') {
687
+ if (typeof tx?.merklePath === 'object') {
732
688
  if (chainTracker === 'scripts only') {
733
- verifiedTxids.add(txid);
689
+ if (txid != null) {
690
+ verifiedTxids.add(txid);
691
+ }
734
692
  continue;
735
693
  }
736
694
  else {
@@ -744,6 +702,9 @@ export default class Transaction {
744
702
  }
745
703
  // Verify fee if feeModel is provided
746
704
  if (typeof feeModel !== 'undefined') {
705
+ if (tx === undefined) {
706
+ throw new Error('Transaction is undefined');
707
+ }
747
708
  const cpTx = Transaction.fromEF(tx.toEF());
748
709
  delete cpTx.outputs[0].satoshis;
749
710
  cpTx.outputs[0].change = true;
@@ -755,6 +716,9 @@ export default class Transaction {
755
716
  // Verify each input transaction and evaluate the spend events.
756
717
  // Also, keep a total of the input amounts for later.
757
718
  let inputTotal = 0;
719
+ if (tx === undefined) {
720
+ throw new Error('Transaction is undefined');
721
+ }
758
722
  for (let i = 0; i < tx.inputs.length; i++) {
759
723
  const input = tx.inputs[i];
760
724
  if (typeof input.sourceTransaction !== 'object') {
@@ -764,7 +728,7 @@ export default class Transaction {
764
728
  throw new Error(`Verification failed because the input at index ${i} of transaction ${txid} is missing an associated unlocking script. This script is required for transaction verification because there is no merkle proof for the transaction spending the UTXO.`);
765
729
  }
766
730
  const sourceOutput = input.sourceTransaction.outputs[input.sourceOutputIndex];
767
- inputTotal += sourceOutput.satoshis;
731
+ inputTotal += sourceOutput.satoshis ?? 0;
768
732
  const sourceTxid = input.sourceTransaction.id('hex');
769
733
  if (!verifiedTxids.has(sourceTxid)) {
770
734
  txQueue.push(input.sourceTransaction);
@@ -777,11 +741,11 @@ export default class Transaction {
777
741
  sourceTXID: input.sourceTXID,
778
742
  sourceOutputIndex: input.sourceOutputIndex,
779
743
  lockingScript: sourceOutput.lockingScript,
780
- sourceSatoshis: sourceOutput.satoshis,
744
+ sourceSatoshis: sourceOutput.satoshis ?? 0,
781
745
  transactionVersion: tx.version,
782
746
  otherInputs,
783
747
  unlockingScript: input.unlockingScript,
784
- inputSequence: input.sequence,
748
+ inputSequence: input.sequence ?? 0,
785
749
  inputIndex: i,
786
750
  outputs: tx.outputs,
787
751
  lockTime: tx.lockTime
@@ -827,12 +791,13 @@ export default class Transaction {
827
791
  let added = false;
828
792
  // If this proof is identical to another one previously added, we use that first. Otherwise, we try to merge it with proofs from the same block.
829
793
  for (let i = 0; i < BUMPs.length; i++) {
830
- if (BUMPs[i] === tx.merklePath) { // Literally the same
794
+ if (BUMPs[i] === tx.merklePath) {
795
+ // Literally the same
831
796
  obj.pathIndex = i;
832
797
  added = true;
833
798
  break;
834
799
  }
835
- if (BUMPs[i].blockHeight === tx.merklePath.blockHeight) {
800
+ if (tx.merklePath !== null && tx.merklePath !== undefined && BUMPs[i].blockHeight === tx.merklePath.blockHeight) {
836
801
  // Probably the same...
837
802
  const rootA = BUMPs[i].computeRoot();
838
803
  const rootB = tx.merklePath.computeRoot();
@@ -848,10 +813,12 @@ export default class Transaction {
848
813
  // Finally, if the proof is not yet added, add a new path.
849
814
  if (!added) {
850
815
  obj.pathIndex = BUMPs.length;
851
- BUMPs.push(tx.merklePath);
816
+ if (tx.merklePath !== null && tx.merklePath !== undefined) {
817
+ BUMPs.push(tx.merklePath);
818
+ }
852
819
  }
853
820
  }
854
- const duplicate = txs.some(x => x.tx.id('hex') === tx.id('hex'));
821
+ const duplicate = txs.some((x) => x.tx.id('hex') === tx.id('hex'));
855
822
  if (!duplicate) {
856
823
  txs.unshift(obj);
857
824
  }
@@ -861,7 +828,7 @@ export default class Transaction {
861
828
  if (typeof input.sourceTransaction === 'object') {
862
829
  addPathsAndInputs(input.sourceTransaction);
863
830
  }
864
- else if (!allowPartial) {
831
+ else if (allowPartial === false) {
865
832
  throw new Error('A required source transaction is missing!');
866
833
  }
867
834
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../../src/transaction/Transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../../src/transaction/Transaction.ts"],"names":[],"mappings":"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"}