@bsv/sdk 1.3.12 → 1.3.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (607) hide show
  1. package/dist/cjs/package.json +15 -3
  2. package/dist/cjs/src/auth/Peer.js +83 -57
  3. package/dist/cjs/src/auth/Peer.js.map +1 -1
  4. package/dist/cjs/src/auth/SessionManager.js +14 -9
  5. package/dist/cjs/src/auth/SessionManager.js.map +1 -1
  6. package/dist/cjs/src/auth/certificates/Certificate.js +16 -10
  7. package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -1
  8. package/dist/cjs/src/auth/certificates/MasterCertificate.js +25 -23
  9. package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
  10. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +2 -2
  11. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  12. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +62 -46
  13. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  14. package/dist/cjs/src/auth/clients/AuthFetch.js +1 -0
  15. package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
  16. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +70 -43
  17. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  18. package/dist/cjs/src/auth/utils/createNonce.js +2 -1
  19. package/dist/cjs/src/auth/utils/createNonce.js.map +1 -1
  20. package/dist/cjs/src/auth/utils/getVerifiableCertificates.js.map +1 -1
  21. package/dist/cjs/src/auth/utils/validateCertificates.js +5 -2
  22. package/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -1
  23. package/dist/cjs/src/auth/utils/verifyNonce.js +2 -1
  24. package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -1
  25. package/dist/cjs/src/compat/BSM.js +7 -17
  26. package/dist/cjs/src/compat/BSM.js.map +1 -1
  27. package/dist/cjs/src/compat/ECIES.js +172 -133
  28. package/dist/cjs/src/compat/ECIES.js.map +1 -1
  29. package/dist/cjs/src/compat/HD.js +63 -73
  30. package/dist/cjs/src/compat/HD.js.map +1 -1
  31. package/dist/cjs/src/compat/Mnemonic.js +102 -106
  32. package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
  33. package/dist/cjs/src/compat/Utxo.js +2 -2
  34. package/dist/cjs/src/compat/Utxo.js.map +1 -1
  35. package/dist/cjs/src/compat/index.js +7 -17
  36. package/dist/cjs/src/compat/index.js.map +1 -1
  37. package/dist/cjs/src/messages/EncryptedMessage.js +3 -1
  38. package/dist/cjs/src/messages/EncryptedMessage.js.map +1 -1
  39. package/dist/cjs/src/messages/SignedMessage.js +1 -0
  40. package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
  41. package/dist/cjs/src/messages/index.js +7 -17
  42. package/dist/cjs/src/messages/index.js.map +1 -1
  43. package/dist/cjs/src/overlay-tools/LookupResolver.js +54 -35
  44. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
  45. package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js +32 -20
  46. package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
  47. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +40 -28
  48. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  49. package/dist/cjs/src/primitives/AESGCM.js +6 -5
  50. package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
  51. package/dist/cjs/src/primitives/BasePoint.js +1 -1
  52. package/dist/cjs/src/primitives/BasePoint.js.map +1 -1
  53. package/dist/cjs/src/primitives/BigNumber.js +50 -62
  54. package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
  55. package/dist/cjs/src/primitives/Curve.js +46 -22
  56. package/dist/cjs/src/primitives/Curve.js.map +1 -1
  57. package/dist/cjs/src/primitives/DRBG.js +2 -8
  58. package/dist/cjs/src/primitives/DRBG.js.map +1 -1
  59. package/dist/cjs/src/primitives/ECDSA.js +51 -35
  60. package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
  61. package/dist/cjs/src/primitives/Hash.js +191 -216
  62. package/dist/cjs/src/primitives/Hash.js.map +1 -1
  63. package/dist/cjs/src/primitives/JacobianPoint.js +19 -5
  64. package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
  65. package/dist/cjs/src/primitives/K256.js.map +1 -1
  66. package/dist/cjs/src/primitives/Mersenne.js.map +1 -1
  67. package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -1
  68. package/dist/cjs/src/primitives/Point.js +117 -88
  69. package/dist/cjs/src/primitives/Point.js.map +1 -1
  70. package/dist/cjs/src/primitives/Polynomial.js +4 -2
  71. package/dist/cjs/src/primitives/Polynomial.js.map +1 -1
  72. package/dist/cjs/src/primitives/PrivateKey.js +32 -33
  73. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  74. package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
  75. package/dist/cjs/src/primitives/Random.js +6 -5
  76. package/dist/cjs/src/primitives/Random.js.map +1 -1
  77. package/dist/cjs/src/primitives/ReductionContext.js +1 -1
  78. package/dist/cjs/src/primitives/ReductionContext.js.map +1 -1
  79. package/dist/cjs/src/primitives/Schnorr.js +21 -15
  80. package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
  81. package/dist/cjs/src/primitives/Signature.js +8 -7
  82. package/dist/cjs/src/primitives/Signature.js.map +1 -1
  83. package/dist/cjs/src/primitives/SymmetricKey.js +13 -13
  84. package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
  85. package/dist/cjs/src/primitives/TransactionSignature.js +31 -29
  86. package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
  87. package/dist/cjs/src/primitives/index.js +7 -17
  88. package/dist/cjs/src/primitives/index.js.map +1 -1
  89. package/dist/cjs/src/primitives/utils.js +79 -68
  90. package/dist/cjs/src/primitives/utils.js.map +1 -1
  91. package/dist/cjs/src/script/OP.js +3 -3
  92. package/dist/cjs/src/script/OP.js.map +1 -1
  93. package/dist/cjs/src/script/Script.js +12 -10
  94. package/dist/cjs/src/script/Script.js.map +1 -1
  95. package/dist/cjs/src/script/Spend.js +47 -49
  96. package/dist/cjs/src/script/Spend.js.map +1 -1
  97. package/dist/cjs/src/script/templates/P2PKH.js +24 -12
  98. package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
  99. package/dist/cjs/src/script/templates/PushDrop.js +28 -23
  100. package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
  101. package/dist/cjs/src/script/templates/RPuzzle.js +10 -6
  102. package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
  103. package/dist/cjs/src/totp/totp.js +2 -1
  104. package/dist/cjs/src/totp/totp.js.map +1 -1
  105. package/dist/cjs/src/transaction/Beef.js +177 -154
  106. package/dist/cjs/src/transaction/Beef.js.map +1 -1
  107. package/dist/cjs/src/transaction/BeefParty.js +24 -24
  108. package/dist/cjs/src/transaction/BeefParty.js.map +1 -1
  109. package/dist/cjs/src/transaction/BeefTx.js +26 -18
  110. package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
  111. package/dist/cjs/src/transaction/Broadcaster.js +3 -2
  112. package/dist/cjs/src/transaction/Broadcaster.js.map +1 -1
  113. package/dist/cjs/src/transaction/MerklePath.js +64 -37
  114. package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
  115. package/dist/cjs/src/transaction/Transaction.js +111 -137
  116. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  117. package/dist/cjs/src/transaction/broadcasters/ARC.js +25 -16
  118. package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
  119. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js +2 -1
  120. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  121. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  122. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js +2 -1
  123. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
  124. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
  125. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  126. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  127. package/dist/cjs/src/transaction/http/DefaultHttpClient.js +5 -3
  128. package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
  129. package/dist/cjs/src/transaction/http/FetchHttpClient.js +5 -2
  130. package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -1
  131. package/dist/cjs/src/transaction/http/NodejsHttpClient.js +5 -3
  132. package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -1
  133. package/dist/cjs/src/transaction/http/index.js.map +1 -1
  134. package/dist/cjs/src/transaction/index.js.map +1 -1
  135. package/dist/cjs/src/wallet/CachedKeyDeriver.js +91 -66
  136. package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
  137. package/dist/cjs/src/wallet/KeyDeriver.js +61 -52
  138. package/dist/cjs/src/wallet/KeyDeriver.js.map +1 -1
  139. package/dist/cjs/src/wallet/ProtoWallet.js +79 -29
  140. package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
  141. package/dist/cjs/src/wallet/WalletClient.js +7 -2
  142. package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
  143. package/dist/cjs/src/wallet/WalletError.js +2 -2
  144. package/dist/cjs/src/wallet/WalletError.js.map +1 -1
  145. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +4 -3
  146. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  147. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +2 -2
  148. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  149. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +1239 -1261
  150. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  151. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +102 -43
  152. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  153. package/dist/cjs/src/wallet/substrates/XDM.js +8 -3
  154. package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
  155. package/dist/cjs/src/wallet/substrates/window.CWI.js +28 -28
  156. package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -1
  157. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  158. package/dist/esm/mod.js +15 -15
  159. package/dist/esm/src/auth/Peer.js +75 -54
  160. package/dist/esm/src/auth/Peer.js.map +1 -1
  161. package/dist/esm/src/auth/SessionManager.js +14 -9
  162. package/dist/esm/src/auth/SessionManager.js.map +1 -1
  163. package/dist/esm/src/auth/certificates/Certificate.js +15 -11
  164. package/dist/esm/src/auth/certificates/Certificate.js.map +1 -1
  165. package/dist/esm/src/auth/certificates/MasterCertificate.js +25 -23
  166. package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
  167. package/dist/esm/src/auth/certificates/VerifiableCertificate.js +2 -2
  168. package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  169. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +64 -47
  170. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  171. package/dist/esm/src/auth/clients/AuthFetch.js +1 -0
  172. package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
  173. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +69 -43
  174. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  175. package/dist/esm/src/auth/utils/createNonce.js.map +1 -1
  176. package/dist/esm/src/auth/utils/getVerifiableCertificates.js +1 -1
  177. package/dist/esm/src/auth/utils/getVerifiableCertificates.js.map +1 -1
  178. package/dist/esm/src/auth/utils/validateCertificates.js +6 -3
  179. package/dist/esm/src/auth/utils/validateCertificates.js.map +1 -1
  180. package/dist/esm/src/auth/utils/verifyNonce.js.map +1 -1
  181. package/dist/esm/src/compat/BSM.js.map +1 -1
  182. package/dist/esm/src/compat/ECIES.js +165 -116
  183. package/dist/esm/src/compat/ECIES.js.map +1 -1
  184. package/dist/esm/src/compat/HD.js +56 -56
  185. package/dist/esm/src/compat/HD.js.map +1 -1
  186. package/dist/esm/src/compat/Mnemonic.js +95 -89
  187. package/dist/esm/src/compat/Mnemonic.js.map +1 -1
  188. package/dist/esm/src/compat/Utxo.js +1 -1
  189. package/dist/esm/src/compat/Utxo.js.map +1 -1
  190. package/dist/esm/src/messages/EncryptedMessage.js +3 -1
  191. package/dist/esm/src/messages/EncryptedMessage.js.map +1 -1
  192. package/dist/esm/src/messages/SignedMessage.js +1 -0
  193. package/dist/esm/src/messages/SignedMessage.js.map +1 -1
  194. package/dist/esm/src/overlay-tools/LookupResolver.js +53 -35
  195. package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
  196. package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js +32 -20
  197. package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
  198. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +40 -28
  199. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  200. package/dist/esm/src/primitives/AESGCM.js +1 -0
  201. package/dist/esm/src/primitives/AESGCM.js.map +1 -1
  202. package/dist/esm/src/primitives/BasePoint.js +1 -1
  203. package/dist/esm/src/primitives/BasePoint.js.map +1 -1
  204. package/dist/esm/src/primitives/BigNumber.js +50 -62
  205. package/dist/esm/src/primitives/BigNumber.js.map +1 -1
  206. package/dist/esm/src/primitives/Curve.js +45 -22
  207. package/dist/esm/src/primitives/Curve.js.map +1 -1
  208. package/dist/esm/src/primitives/DRBG.js +2 -8
  209. package/dist/esm/src/primitives/DRBG.js.map +1 -1
  210. package/dist/esm/src/primitives/ECDSA.js +50 -35
  211. package/dist/esm/src/primitives/ECDSA.js.map +1 -1
  212. package/dist/esm/src/primitives/Hash.js +188 -213
  213. package/dist/esm/src/primitives/Hash.js.map +1 -1
  214. package/dist/esm/src/primitives/JacobianPoint.js +18 -5
  215. package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
  216. package/dist/esm/src/primitives/K256.js.map +1 -1
  217. package/dist/esm/src/primitives/Mersenne.js.map +1 -1
  218. package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -1
  219. package/dist/esm/src/primitives/Point.js +107 -88
  220. package/dist/esm/src/primitives/Point.js.map +1 -1
  221. package/dist/esm/src/primitives/Polynomial.js +4 -2
  222. package/dist/esm/src/primitives/Polynomial.js.map +1 -1
  223. package/dist/esm/src/primitives/PrivateKey.js +25 -16
  224. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  225. package/dist/esm/src/primitives/PublicKey.js.map +1 -1
  226. package/dist/esm/src/primitives/Random.js +7 -6
  227. package/dist/esm/src/primitives/Random.js.map +1 -1
  228. package/dist/esm/src/primitives/ReductionContext.js +1 -1
  229. package/dist/esm/src/primitives/ReductionContext.js.map +1 -1
  230. package/dist/esm/src/primitives/Schnorr.js +21 -15
  231. package/dist/esm/src/primitives/Schnorr.js.map +1 -1
  232. package/dist/esm/src/primitives/Signature.js +8 -7
  233. package/dist/esm/src/primitives/Signature.js.map +1 -1
  234. package/dist/esm/src/primitives/SymmetricKey.js +13 -13
  235. package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
  236. package/dist/esm/src/primitives/TransactionSignature.js +22 -12
  237. package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
  238. package/dist/esm/src/primitives/utils.js +76 -66
  239. package/dist/esm/src/primitives/utils.js.map +1 -1
  240. package/dist/esm/src/script/OP.js +3 -3
  241. package/dist/esm/src/script/OP.js.map +1 -1
  242. package/dist/esm/src/script/Script.js +12 -10
  243. package/dist/esm/src/script/Script.js.map +1 -1
  244. package/dist/esm/src/script/Spend.js +39 -32
  245. package/dist/esm/src/script/Spend.js.map +1 -1
  246. package/dist/esm/src/script/templates/P2PKH.js +26 -11
  247. package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
  248. package/dist/esm/src/script/templates/PushDrop.js +29 -22
  249. package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
  250. package/dist/esm/src/script/templates/RPuzzle.js +11 -6
  251. package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
  252. package/dist/esm/src/totp/totp.js +2 -1
  253. package/dist/esm/src/totp/totp.js.map +1 -1
  254. package/dist/esm/src/transaction/Beef.js +176 -154
  255. package/dist/esm/src/transaction/Beef.js.map +1 -1
  256. package/dist/esm/src/transaction/BeefParty.js +24 -24
  257. package/dist/esm/src/transaction/BeefParty.js.map +1 -1
  258. package/dist/esm/src/transaction/BeefTx.js +26 -18
  259. package/dist/esm/src/transaction/BeefTx.js.map +1 -1
  260. package/dist/esm/src/transaction/Broadcaster.js.map +1 -1
  261. package/dist/esm/src/transaction/MerklePath.js +61 -36
  262. package/dist/esm/src/transaction/MerklePath.js.map +1 -1
  263. package/dist/esm/src/transaction/Transaction.js +105 -138
  264. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  265. package/dist/esm/src/transaction/broadcasters/ARC.js +25 -16
  266. package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
  267. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  268. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  269. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
  270. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  271. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  272. package/dist/esm/src/transaction/http/DefaultHttpClient.js +3 -2
  273. package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
  274. package/dist/esm/src/transaction/http/FetchHttpClient.js +4 -2
  275. package/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -1
  276. package/dist/esm/src/transaction/http/NodejsHttpClient.js +5 -3
  277. package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -1
  278. package/dist/esm/src/transaction/http/index.js.map +1 -1
  279. package/dist/esm/src/transaction/index.js.map +1 -1
  280. package/dist/esm/src/wallet/CachedKeyDeriver.js +91 -66
  281. package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
  282. package/dist/esm/src/wallet/KeyDeriver.js +60 -52
  283. package/dist/esm/src/wallet/KeyDeriver.js.map +1 -1
  284. package/dist/esm/src/wallet/ProtoWallet.js +75 -29
  285. package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
  286. package/dist/esm/src/wallet/WalletClient.js +7 -2
  287. package/dist/esm/src/wallet/WalletClient.js.map +1 -1
  288. package/dist/esm/src/wallet/WalletError.js +2 -2
  289. package/dist/esm/src/wallet/WalletError.js.map +1 -1
  290. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +4 -4
  291. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  292. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js +2 -2
  293. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  294. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1239 -1261
  295. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  296. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +95 -43
  297. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  298. package/dist/esm/src/wallet/substrates/XDM.js +8 -3
  299. package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
  300. package/dist/esm/src/wallet/substrates/window.CWI.js +28 -28
  301. package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -1
  302. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  303. package/dist/types/mod.d.ts +15 -15
  304. package/dist/types/src/auth/Peer.d.ts +10 -10
  305. package/dist/types/src/auth/Peer.d.ts.map +1 -1
  306. package/dist/types/src/auth/SessionManager.d.ts +4 -4
  307. package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
  308. package/dist/types/src/auth/certificates/Certificate.d.ts +6 -6
  309. package/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -1
  310. package/dist/types/src/auth/certificates/MasterCertificate.d.ts +5 -5
  311. package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
  312. package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -1
  313. package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts +23 -22
  314. package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts.map +1 -1
  315. package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
  316. package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts +1 -1
  317. package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts.map +1 -1
  318. package/dist/types/src/auth/utils/createNonce.d.ts.map +1 -1
  319. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts +3 -3
  320. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts.map +1 -1
  321. package/dist/types/src/auth/utils/validateCertificates.d.ts +2 -2
  322. package/dist/types/src/auth/utils/validateCertificates.d.ts.map +1 -1
  323. package/dist/types/src/auth/utils/verifyNonce.d.ts +1 -1
  324. package/dist/types/src/auth/utils/verifyNonce.d.ts.map +1 -1
  325. package/dist/types/src/compat/BSM.d.ts +1 -1
  326. package/dist/types/src/compat/BSM.d.ts.map +1 -1
  327. package/dist/types/src/compat/ECIES.d.ts +36 -36
  328. package/dist/types/src/compat/ECIES.d.ts.map +1 -1
  329. package/dist/types/src/compat/HD.d.ts +51 -51
  330. package/dist/types/src/compat/HD.d.ts.map +1 -1
  331. package/dist/types/src/compat/Mnemonic.d.ts +79 -79
  332. package/dist/types/src/compat/Mnemonic.d.ts.map +1 -1
  333. package/dist/types/src/compat/Utxo.d.ts.map +1 -1
  334. package/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -1
  335. package/dist/types/src/messages/SignedMessage.d.ts.map +1 -1
  336. package/dist/types/src/overlay-tools/LookupResolver.d.ts +9 -9
  337. package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
  338. package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts +17 -17
  339. package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts.map +1 -1
  340. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +14 -14
  341. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
  342. package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
  343. package/dist/types/src/primitives/BasePoint.d.ts +8 -8
  344. package/dist/types/src/primitives/BasePoint.d.ts.map +1 -1
  345. package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
  346. package/dist/types/src/primitives/Curve.d.ts +14 -7
  347. package/dist/types/src/primitives/Curve.d.ts.map +1 -1
  348. package/dist/types/src/primitives/DRBG.d.ts.map +1 -1
  349. package/dist/types/src/primitives/ECDSA.d.ts +1 -1
  350. package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
  351. package/dist/types/src/primitives/Hash.d.ts +11 -11
  352. package/dist/types/src/primitives/Hash.d.ts.map +1 -1
  353. package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -1
  354. package/dist/types/src/primitives/Point.d.ts +14 -10
  355. package/dist/types/src/primitives/Point.d.ts.map +1 -1
  356. package/dist/types/src/primitives/Polynomial.d.ts.map +1 -1
  357. package/dist/types/src/primitives/PrivateKey.d.ts +2 -2
  358. package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
  359. package/dist/types/src/primitives/PublicKey.d.ts.map +1 -1
  360. package/dist/types/src/primitives/Random.d.ts.map +1 -1
  361. package/dist/types/src/primitives/Schnorr.d.ts +14 -14
  362. package/dist/types/src/primitives/Schnorr.d.ts.map +1 -1
  363. package/dist/types/src/primitives/Signature.d.ts +1 -1
  364. package/dist/types/src/primitives/Signature.d.ts.map +1 -1
  365. package/dist/types/src/primitives/SymmetricKey.d.ts +13 -13
  366. package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
  367. package/dist/types/src/primitives/TransactionSignature.d.ts +4 -4
  368. package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -1
  369. package/dist/types/src/primitives/utils.d.ts +3 -6
  370. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  371. package/dist/types/src/script/Script.d.ts +3 -3
  372. package/dist/types/src/script/Script.d.ts.map +1 -1
  373. package/dist/types/src/script/ScriptTemplate.d.ts +2 -2
  374. package/dist/types/src/script/ScriptTemplate.d.ts.map +1 -1
  375. package/dist/types/src/script/Spend.d.ts.map +1 -1
  376. package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -1
  377. package/dist/types/src/script/templates/PushDrop.d.ts +1 -2
  378. package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
  379. package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -1
  380. package/dist/types/src/totp/totp.d.ts.map +1 -1
  381. package/dist/types/src/transaction/Beef.d.ts +96 -96
  382. package/dist/types/src/transaction/Beef.d.ts.map +1 -1
  383. package/dist/types/src/transaction/BeefParty.d.ts +22 -22
  384. package/dist/types/src/transaction/BeefParty.d.ts.map +1 -1
  385. package/dist/types/src/transaction/BeefTx.d.ts +5 -5
  386. package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
  387. package/dist/types/src/transaction/Broadcaster.d.ts.map +1 -1
  388. package/dist/types/src/transaction/ChainTracker.d.ts +2 -2
  389. package/dist/types/src/transaction/FeeModel.d.ts.map +1 -1
  390. package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
  391. package/dist/types/src/transaction/Transaction.d.ts +4 -12
  392. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  393. package/dist/types/src/transaction/TransactionOutput.d.ts.map +1 -1
  394. package/dist/types/src/transaction/broadcasters/ARC.d.ts +1 -1
  395. package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
  396. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -1
  397. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -1
  398. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -1
  399. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -1
  400. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -1
  401. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts +1 -1
  402. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -1
  403. package/dist/types/src/transaction/http/FetchHttpClient.d.ts +5 -5
  404. package/dist/types/src/transaction/http/FetchHttpClient.d.ts.map +1 -1
  405. package/dist/types/src/transaction/http/HttpClient.d.ts +4 -4
  406. package/dist/types/src/transaction/http/HttpClient.d.ts.map +1 -1
  407. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts +3 -3
  408. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -1
  409. package/dist/types/src/transaction/http/index.d.ts.map +1 -1
  410. package/dist/types/src/transaction/index.d.ts.map +1 -1
  411. package/dist/types/src/wallet/CachedKeyDeriver.d.ts +58 -58
  412. package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
  413. package/dist/types/src/wallet/KeyDeriver.d.ts +78 -78
  414. package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
  415. package/dist/types/src/wallet/ProtoWallet.d.ts +10 -10
  416. package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -1
  417. package/dist/types/src/wallet/Wallet.interfaces.d.ts +151 -152
  418. package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
  419. package/dist/types/src/wallet/WalletClient.d.ts +5 -5
  420. package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
  421. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +6 -6
  422. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
  423. package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts.map +1 -1
  424. package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts.map +1 -1
  425. package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
  426. package/dist/types/src/wallet/substrates/XDM.d.ts +1 -1
  427. package/dist/types/src/wallet/substrates/XDM.d.ts.map +1 -1
  428. package/dist/types/src/wallet/substrates/window.CWI.d.ts +6 -6
  429. package/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -1
  430. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  431. package/dist/umd/bundle.js +1 -1
  432. package/docs/auth.md +92 -82
  433. package/docs/compat.md +24 -24
  434. package/docs/messages.md +7 -5
  435. package/docs/overlay-tools.md +21 -21
  436. package/docs/primitives.md +336 -315
  437. package/docs/script.md +35 -35
  438. package/docs/swagger/dist/swagger-initializer.js +7 -7
  439. package/docs/swagger/dist/swagger-ui-bundle.js +1 -1
  440. package/docs/swagger/dist/swagger-ui-es-bundle-core.js +2 -2
  441. package/docs/swagger/dist/swagger-ui-es-bundle.js +1 -1
  442. package/docs/swagger/dist/swagger-ui-standalone-preset.js +1 -1
  443. package/docs/swagger/dist/swagger-ui.js +2 -2
  444. package/docs/totp.md +5 -5
  445. package/docs/transaction.md +103 -105
  446. package/docs/wallet-substrates.md +17 -17
  447. package/docs/wallet.md +202 -204
  448. package/mod.ts +15 -15
  449. package/package.json +15 -3
  450. package/src/auth/Peer.ts +271 -121
  451. package/src/auth/SessionManager.ts +17 -10
  452. package/src/auth/__tests/Peer.test.ts +361 -179
  453. package/src/auth/__tests/SessionManager.test.ts +67 -19
  454. package/src/auth/__tests/build.test.ts +11 -0
  455. package/src/auth/certificates/Certificate.ts +27 -14
  456. package/src/auth/certificates/MasterCertificate.ts +106 -62
  457. package/src/auth/certificates/VerifiableCertificate.ts +30 -8
  458. package/src/auth/certificates/__tests/Certificate.test.ts +32 -17
  459. package/src/auth/certificates/__tests/CompletedProtoWallet.ts +171 -68
  460. package/src/auth/certificates/__tests/MasterCertificate.test.ts +63 -47
  461. package/src/auth/certificates/__tests/VerifiableCertificate.test.ts +42 -31
  462. package/src/auth/certificates/index.ts +1 -1
  463. package/src/auth/clients/AuthFetch.ts +1 -0
  464. package/src/auth/clients/index.ts +1 -1
  465. package/src/auth/transports/SimplifiedFetchTransport.ts +145 -72
  466. package/src/auth/transports/index.ts +1 -1
  467. package/src/auth/utils/__tests/cryptononce.test.ts +52 -23
  468. package/src/auth/utils/__tests/getVerifiableCertificates.test.ts +56 -30
  469. package/src/auth/utils/__tests/validateCertificates.test.ts +53 -31
  470. package/src/auth/utils/createNonce.ts +11 -3
  471. package/src/auth/utils/getVerifiableCertificates.ts +12 -7
  472. package/src/auth/utils/validateCertificates.ts +57 -39
  473. package/src/auth/utils/verifyNonce.ts +6 -2
  474. package/src/compat/BSM.ts +10 -2
  475. package/src/compat/ECIES.ts +265 -141
  476. package/src/compat/HD.ts +81 -63
  477. package/src/compat/Mnemonic.ts +104 -91
  478. package/src/compat/Utxo.ts +8 -5
  479. package/src/compat/__tests/BSM.test.ts +42 -16
  480. package/src/compat/__tests/ECIES.test.ts +117 -52
  481. package/src/compat/__tests/HD.test.ts +55 -42
  482. package/src/compat/__tests/Mnemonic.test.ts +11 -12
  483. package/src/compat/__tests/Mnemonic.vectors.ts +110 -55
  484. package/src/messages/EncryptedMessage.ts +6 -2
  485. package/src/messages/SignedMessage.ts +14 -8
  486. package/src/messages/__tests/EncryptedMessage.test.ts +23 -24
  487. package/src/messages/__tests/SignedMessage.test.ts +17 -11
  488. package/src/overlay-tools/LookupResolver.ts +108 -56
  489. package/src/overlay-tools/OverlayAdminTokenTemplate.ts +52 -23
  490. package/src/overlay-tools/SHIPBroadcaster.ts +135 -59
  491. package/src/overlay-tools/__tests/LookupResolver.test.ts +723 -323
  492. package/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.ts +50 -22
  493. package/src/overlay-tools/__tests/SHIPBroadcaster.test.ts +607 -290
  494. package/src/primitives/AESGCM.ts +2 -0
  495. package/src/primitives/BasePoint.ts +4 -4
  496. package/src/primitives/BigNumber.ts +99 -90
  497. package/src/primitives/Curve.ts +117 -46
  498. package/src/primitives/DRBG.ts +9 -11
  499. package/src/primitives/ECDSA.ts +109 -63
  500. package/src/primitives/Hash.ts +492 -321
  501. package/src/primitives/JacobianPoint.ts +67 -19
  502. package/src/primitives/Point.ts +254 -152
  503. package/src/primitives/Polynomial.ts +8 -3
  504. package/src/primitives/PrivateKey.ts +41 -17
  505. package/src/primitives/PublicKey.ts +13 -3
  506. package/src/primitives/Random.ts +14 -8
  507. package/src/primitives/ReductionContext.ts +1 -1
  508. package/src/primitives/Schnorr.ts +40 -18
  509. package/src/primitives/Signature.ts +26 -16
  510. package/src/primitives/SymmetricKey.ts +14 -14
  511. package/src/primitives/TransactionSignature.ts +41 -17
  512. package/src/primitives/__tests/AESGCM.test.ts +457 -151
  513. package/src/primitives/__tests/BRC42.private.vectors.ts +30 -15
  514. package/src/primitives/__tests/BRC42.public.vectors.ts +30 -15
  515. package/src/primitives/__tests/BigNumber.arithmatic.test.ts +344 -125
  516. package/src/primitives/__tests/BigNumber.binary.test.ts +148 -67
  517. package/src/primitives/__tests/BigNumber.constructor.test.ts +65 -25
  518. package/src/primitives/__tests/BigNumber.dhGroup.test.ts +15 -11
  519. package/src/primitives/__tests/BigNumber.fixtures.ts +16 -8
  520. package/src/primitives/__tests/BigNumber.serializers.test.ts +41 -15
  521. package/src/primitives/__tests/BigNumber.utils.test.ts +132 -42
  522. package/src/primitives/__tests/Curve.unit.test.ts +75 -53
  523. package/src/primitives/__tests/DRBG.test.ts +1 -1
  524. package/src/primitives/__tests/DRBG.vectors.ts +45 -75
  525. package/src/primitives/__tests/ECDH.test.ts +15 -8
  526. package/src/primitives/__tests/ECDSA.test.ts +12 -6
  527. package/src/primitives/__tests/HMAC.test.ts +24 -18
  528. package/src/primitives/__tests/Hash.test.ts +57 -46
  529. package/src/primitives/__tests/PBKDF2.vectors.ts +130 -117
  530. package/src/primitives/__tests/PrivateKey.split.test.ts +33 -11
  531. package/src/primitives/__tests/PrivateKey.test.ts +11 -10
  532. package/src/primitives/__tests/PublicKey.test.ts +64 -53
  533. package/src/primitives/__tests/Random.test.ts +1 -1
  534. package/src/primitives/__tests/Reader.test.ts +240 -219
  535. package/src/primitives/__tests/ReductionContext.test.ts +98 -61
  536. package/src/primitives/__tests/Schnorr.test.ts +249 -237
  537. package/src/primitives/__tests/SymmetricKey.test.ts +18 -15
  538. package/src/primitives/__tests/SymmetricKey.vectors.ts +16 -8
  539. package/src/primitives/__tests/Writer.test.ts +23 -13
  540. package/src/primitives/__tests/bug-31.test.ts +6 -10
  541. package/src/primitives/__tests/utils.test.ts +70 -19
  542. package/src/primitives/utils.ts +103 -79
  543. package/src/script/Script.ts +18 -12
  544. package/src/script/ScriptTemplate.ts +3 -5
  545. package/src/script/Spend.ts +306 -108
  546. package/src/script/__tests/Script.test.ts +73 -55
  547. package/src/script/__tests/Spend.test.ts +208 -83
  548. package/src/script/__tests/SpendComplex.test.ts +19 -13
  549. package/src/script/__tests/script.invalid.vectors.ts +428 -1796
  550. package/src/script/__tests/script.valid.vectors.ts +728 -2764
  551. package/src/script/templates/P2PKH.ts +34 -12
  552. package/src/script/templates/PushDrop.ts +65 -31
  553. package/src/script/templates/RPuzzle.ts +29 -8
  554. package/src/script/templates/__tests/PushDrop.test.ts +146 -41
  555. package/src/totp/__tests/totp.test.ts +45 -44
  556. package/src/totp/totp.ts +3 -2
  557. package/src/transaction/Beef.ts +269 -174
  558. package/src/transaction/BeefParty.ts +41 -31
  559. package/src/transaction/BeefTx.ts +36 -26
  560. package/src/transaction/Broadcaster.ts +10 -6
  561. package/src/transaction/ChainTracker.ts +2 -2
  562. package/src/transaction/FeeModel.ts +0 -1
  563. package/src/transaction/MerklePath.ts +124 -59
  564. package/src/transaction/Transaction.ts +188 -187
  565. package/src/transaction/TransactionOutput.ts +0 -1
  566. package/src/transaction/__tests/Beef.test.ts +390 -287
  567. package/src/transaction/__tests/MerklePath.test.ts +59 -26
  568. package/src/transaction/__tests/Transaction.benchmarks.test.ts +231 -201
  569. package/src/transaction/__tests/Transaction.test.ts +758 -482
  570. package/src/transaction/__tests/bigtx.vectors.ts +2 -1
  571. package/src/transaction/__tests/bump.invalid.vectors.ts +24 -6
  572. package/src/transaction/__tests/bump.valid.vectors.ts +6 -2
  573. package/src/transaction/__tests/tx.invalid.vectors.ts +881 -185
  574. package/src/transaction/__tests/tx.valid.vectors.ts +1210 -257
  575. package/src/transaction/broadcasters/ARC.ts +69 -38
  576. package/src/transaction/broadcasters/DefaultBroadcaster.ts +9 -3
  577. package/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +20 -7
  578. package/src/transaction/broadcasters/__tests/ARC.test.ts +127 -59
  579. package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +27 -18
  580. package/src/transaction/chaintrackers/DefaultChainTracker.ts +1 -1
  581. package/src/transaction/chaintrackers/WhatsOnChain.ts +27 -11
  582. package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +59 -23
  583. package/src/transaction/fee-models/SatoshisPerKilobyte.ts +9 -5
  584. package/src/transaction/http/DefaultHttpClient.ts +5 -4
  585. package/src/transaction/http/FetchHttpClient.ts +18 -9
  586. package/src/transaction/http/HttpClient.ts +27 -22
  587. package/src/transaction/http/NodejsHttpClient.ts +23 -9
  588. package/src/transaction/http/index.ts +5 -1
  589. package/src/transaction/index.ts +5 -1
  590. package/src/wallet/CachedKeyDeriver.ts +151 -82
  591. package/src/wallet/KeyDeriver.ts +186 -105
  592. package/src/wallet/ProtoWallet.ts +121 -52
  593. package/src/wallet/Wallet.interfaces.ts +167 -156
  594. package/src/wallet/WalletClient.ts +314 -59
  595. package/src/wallet/WalletError.ts +2 -2
  596. package/src/wallet/__tests/CachedKeyDeriver.test.ts +86 -27
  597. package/src/wallet/__tests/KeyDeriver.test.ts +136 -33
  598. package/src/wallet/__tests/ProtoWallet.test.ts +190 -102
  599. package/src/wallet/substrates/HTTPWalletJSON.ts +250 -67
  600. package/src/wallet/substrates/HTTPWalletWire.ts +7 -3
  601. package/src/wallet/substrates/WalletWireCalls.ts +2 -2
  602. package/src/wallet/substrates/WalletWireProcessor.ts +1412 -1277
  603. package/src/wallet/substrates/WalletWireTransceiver.ts +713 -138
  604. package/src/wallet/substrates/XDM.ts +425 -36
  605. package/src/wallet/substrates/__tests/WalletWire.integration.test.ts +488 -225
  606. package/src/wallet/substrates/__tests/XDM.test.ts +232 -234
  607. package/src/wallet/substrates/window.CWI.ts +520 -61
@@ -1,4 +1,8 @@
1
- import { BroadcastResponse, BroadcastFailure, Broadcaster } from '../Broadcaster.js'
1
+ import {
2
+ BroadcastResponse,
3
+ BroadcastFailure,
4
+ Broadcaster
5
+ } from '../Broadcaster.js'
2
6
  import Transaction from '../Transaction.js'
3
7
  import { HttpClient, HttpClientRequestOptions } from '../http/HttpClient.js'
4
8
  import { defaultHttpClient } from '../http/DefaultHttpClient.js'
@@ -21,7 +25,7 @@ export interface ArcConfig {
21
25
  headers?: Record<string, string>
22
26
  }
23
27
 
24
- function defaultDeploymentId() {
28
+ function defaultDeploymentId(): string {
25
29
  return `ts-sdk-${toHex(Random(16))}`
26
30
  }
27
31
 
@@ -61,7 +65,15 @@ export default class ARC implements Broadcaster {
61
65
  this.callbackToken = undefined
62
66
  this.callbackUrl = undefined
63
67
  } else {
64
- const { apiKey, deploymentId, httpClient, callbackToken, callbackUrl, headers } = config ?? {} as ArcConfig
68
+ const configObj: ArcConfig = config ?? {}
69
+ const {
70
+ apiKey,
71
+ deploymentId,
72
+ httpClient,
73
+ callbackToken,
74
+ callbackUrl,
75
+ headers
76
+ } = configObj
65
77
  this.apiKey = apiKey
66
78
  this.httpClient = httpClient ?? defaultHttpClient()
67
79
  this.deploymentId = deploymentId ?? defaultDeploymentId()
@@ -74,25 +86,25 @@ export default class ARC implements Broadcaster {
74
86
  /**
75
87
  * Constructs a dictionary of the default & supplied request headers.
76
88
  */
77
- private requestHeaders() {
89
+ private requestHeaders(): Record<string, string> {
78
90
  const headers: Record<string, string> = {
79
91
  'Content-Type': 'application/json',
80
92
  'XDeployment-ID': this.deploymentId
81
93
  }
82
94
 
83
- if (this.apiKey) {
95
+ if (this.apiKey != null && this.apiKey !== '') {
84
96
  headers.Authorization = `Bearer ${this.apiKey}`
85
97
  }
86
98
 
87
- if (this.callbackUrl) {
99
+ if (this.callbackUrl != null && this.callbackUrl !== '') {
88
100
  headers['X-CallbackUrl'] = this.callbackUrl
89
101
  }
90
102
 
91
- if (this.callbackToken) {
103
+ if (this.callbackToken != null && this.callbackToken !== '') {
92
104
  headers['X-CallbackToken'] = this.callbackToken
93
105
  }
94
106
 
95
- if (this.headers) {
107
+ if (this.headers != null) {
96
108
  for (const key in this.headers) {
97
109
  headers[key] = this.headers[key]
98
110
  }
@@ -107,12 +119,17 @@ export default class ARC implements Broadcaster {
107
119
  * @param {Transaction} tx - The transaction to be broadcasted.
108
120
  * @returns {Promise<BroadcastResponse | BroadcastFailure>} A promise that resolves to either a success or failure response.
109
121
  */
110
- async broadcast(tx: Transaction): Promise<BroadcastResponse | BroadcastFailure> {
122
+ async broadcast(
123
+ tx: Transaction
124
+ ): Promise<BroadcastResponse | BroadcastFailure> {
111
125
  let rawTx
112
126
  try {
113
127
  rawTx = tx.toHexEF()
114
128
  } catch (error) {
115
- if (error.message === 'All inputs must have source transactions when serializing to EF format') {
129
+ if (
130
+ error.message ===
131
+ 'All inputs must have source transactions when serializing to EF format'
132
+ ) {
116
133
  rawTx = tx.toHex()
117
134
  } else {
118
135
  throw error
@@ -126,15 +143,18 @@ export default class ARC implements Broadcaster {
126
143
  }
127
144
 
128
145
  try {
129
- const response = await this.httpClient.request<ArcResponse>(`${this.URL}/v1/tx`, requestOptions)
146
+ const response = await this.httpClient.request<ArcResponse>(
147
+ `${this.URL}/v1/tx`,
148
+ requestOptions
149
+ )
130
150
  if (response.ok) {
131
151
  const { txid, extraInfo, txStatus, competingTxs } = response.data
132
- let broadcastRes: BroadcastResponse = {
152
+ const broadcastRes: BroadcastResponse = {
133
153
  status: 'success',
134
154
  txid,
135
155
  message: `${txStatus} ${extraInfo}`
136
156
  }
137
- if (competingTxs) {
157
+ if (competingTxs != null) {
138
158
  broadcastRes.competingTxs = competingTxs
139
159
  }
140
160
  return broadcastRes
@@ -142,22 +162,29 @@ export default class ARC implements Broadcaster {
142
162
  const st = typeof response.status
143
163
  const r: BroadcastFailure = {
144
164
  status: 'error',
145
- code: st === 'number' || st === 'string' ? response.status.toString() : 'ERR_UNKNOWN',
165
+ code:
166
+ st === 'number' || st === 'string'
167
+ ? response.status.toString()
168
+ : 'ERR_UNKNOWN',
146
169
  description: 'Unknown error'
147
170
  }
148
171
  let d = response.data
149
172
  if (typeof d === 'string') {
150
173
  try {
151
- d = JSON.parse(response.data)
152
- } catch { }
174
+ d = JSON.parse(response.data as string)
175
+ } catch {
176
+ // Intentionally left empty
177
+ }
153
178
  }
154
179
  if (typeof d === 'object') {
155
- r.more = d
156
- if (typeof d.txid === 'string') {
157
- r.txid = d.txid
180
+ if (d !== null) {
181
+ r.more = d
182
+ }
183
+ if ((d != null) && typeof (d as { txid: string }).txid === 'string') {
184
+ r.txid = (d as { txid: string }).txid
158
185
  }
159
- if (typeof d.detail === 'string') {
160
- r.description = d.detail
186
+ if ((d != null) && 'detail' in d && typeof (d as { detail: string }).detail === 'string') {
187
+ r.description = (d as { detail: string }).detail
161
188
  }
162
189
  }
163
190
  return r
@@ -166,9 +193,10 @@ export default class ARC implements Broadcaster {
166
193
  return {
167
194
  status: 'error',
168
195
  code: '500',
169
- description: typeof error.message === 'string'
170
- ? error.message
171
- : 'Internal Server Error'
196
+ description:
197
+ typeof error.message === 'string'
198
+ ? error.message
199
+ : 'Internal Server Error'
172
200
  }
173
201
  }
174
202
  }
@@ -180,38 +208,41 @@ export default class ARC implements Broadcaster {
180
208
  * @param {Transaction[]} txs - Array of transactions to be broadcasted.
181
209
  * @returns {Promise<Array<object>>} A promise that resolves to an array of objects.
182
210
  */
183
- async broadcastMany(txs: Transaction[]): Promise<Array<object>> {
184
- const rawTxs = txs.map(tx => {
211
+ async broadcastMany(txs: Transaction[]): Promise<object[]> {
212
+ const rawTxs = txs.map((tx) => {
185
213
  try {
186
- return { rawTx: tx.toHexEF() };
214
+ return { rawTx: tx.toHexEF() }
187
215
  } catch (error) {
188
- if (error.message === 'All inputs must have source transactions when serializing to EF format') {
189
- return { rawTx: tx.toHex() };
216
+ if (
217
+ error.message ===
218
+ 'All inputs must have source transactions when serializing to EF format'
219
+ ) {
220
+ return { rawTx: tx.toHex() }
190
221
  }
191
- throw error;
222
+ throw error
192
223
  }
193
- });
224
+ })
194
225
 
195
226
  const requestOptions: HttpClientRequestOptions = {
196
227
  method: 'POST',
197
228
  headers: this.requestHeaders(),
198
229
  data: rawTxs
199
- };
230
+ }
200
231
 
201
232
  try {
202
- const response = await this.httpClient.request<Array<object>>(
233
+ const response = await this.httpClient.request<object[]>(
203
234
  `${this.URL}/v1/txs`,
204
235
  requestOptions
205
- );
236
+ )
206
237
 
207
- return response.data
238
+ return response.data as object[]
208
239
  } catch (error) {
209
240
  const errorResponse: BroadcastFailure = {
210
241
  status: 'error',
211
242
  code: '500',
212
- description: error.message || 'Internal Server Error'
213
- };
214
- return txs.map(() => errorResponse);
243
+ description: typeof error.message === 'string' ? error.message : 'Internal Server Error'
244
+ }
245
+ return txs.map(() => errorResponse)
215
246
  }
216
247
  }
217
248
  }
@@ -1,6 +1,12 @@
1
1
  import { Broadcaster } from '../Broadcaster.js'
2
2
  import ARC, { ArcConfig } from './ARC.js'
3
3
 
4
- export function defaultBroadcaster (isTestnet: boolean = false, config: ArcConfig = {}): Broadcaster {
5
- return new ARC(isTestnet ? 'https://arc-test.taal.com' : 'https://arc.taal.com', config)
6
- }
4
+ export function defaultBroadcaster(
5
+ isTestnet: boolean = false,
6
+ config: ArcConfig = {}
7
+ ): Broadcaster {
8
+ return new ARC(
9
+ isTestnet ? 'https://arc-test.taal.com' : 'https://arc.taal.com',
10
+ config
11
+ )
12
+ }
@@ -1,4 +1,8 @@
1
- import { BroadcastResponse, BroadcastFailure, Broadcaster } from '../Broadcaster.js'
1
+ import {
2
+ BroadcastResponse,
3
+ BroadcastFailure,
4
+ Broadcaster
5
+ } from '../Broadcaster.js'
2
6
  import Transaction from '../Transaction.js'
3
7
  import { HttpClient } from '../http/HttpClient.js'
4
8
  import { defaultHttpClient } from '../http/DefaultHttpClient.js'
@@ -17,7 +21,10 @@ export default class WhatsOnChainBroadcaster implements Broadcaster {
17
21
  * @param {'main' | 'test' | 'stn'} network - The BSV network to use when calling the WhatsOnChain API.
18
22
  * @param {HttpClient} httpClient - The HTTP client used to make requests to the API.
19
23
  */
20
- constructor (network: 'main' | 'test' | 'stn' = 'main', httpClient: HttpClient = defaultHttpClient()) {
24
+ constructor(
25
+ network: 'main' | 'test' | 'stn' = 'main',
26
+ httpClient: HttpClient = defaultHttpClient()
27
+ ) {
21
28
  this.network = network
22
29
  this.URL = `https://api.whatsonchain.com/v1/bsv/${network}/tx/raw`
23
30
  this.httpClient = httpClient
@@ -29,7 +36,9 @@ export default class WhatsOnChainBroadcaster implements Broadcaster {
29
36
  * @param {Transaction} tx - The transaction to be broadcasted.
30
37
  * @returns {Promise<BroadcastResponse | BroadcastFailure>} A promise that resolves to either a success or failure response.
31
38
  */
32
- async broadcast (tx: Transaction): Promise<BroadcastResponse | BroadcastFailure> {
39
+ async broadcast(
40
+ tx: Transaction
41
+ ): Promise<BroadcastResponse | BroadcastFailure> {
33
42
  const rawTx = tx.toHex()
34
43
 
35
44
  const requestOptions = {
@@ -42,7 +51,10 @@ export default class WhatsOnChainBroadcaster implements Broadcaster {
42
51
  }
43
52
 
44
53
  try {
45
- const response = await this.httpClient.request<string>(this.URL, requestOptions)
54
+ const response = await this.httpClient.request<string>(
55
+ this.URL,
56
+ requestOptions
57
+ )
46
58
  if (response.ok) {
47
59
  const txid = response.data
48
60
  return {
@@ -61,9 +73,10 @@ export default class WhatsOnChainBroadcaster implements Broadcaster {
61
73
  return {
62
74
  status: 'error',
63
75
  code: '500',
64
- description: typeof error.message === 'string'
65
- ? error.message
66
- : 'Internal Server Error'
76
+ description:
77
+ typeof error.message === 'string'
78
+ ? error.message
79
+ : 'Internal Server Error'
67
80
  }
68
81
  }
69
82
  }
@@ -1,18 +1,22 @@
1
- import ARC from '../../../../dist/cjs/src/transaction/broadcasters/ARC.js'
2
- import Transaction from '../../../../dist/cjs/src/transaction/Transaction.js'
3
- import {NodejsHttpClient} from "../../../../dist/cjs/src/transaction/http/NodejsHttpClient.js";
4
- import {FetchHttpClient} from "../../../../dist/cjs/src/transaction/http/FetchHttpClient.js";
5
- import {HttpClientRequestOptions} from "../../http";
1
+ import ARC from '../../../transaction/broadcasters/ARC'
2
+ import Transaction from '../../../transaction/Transaction'
3
+ import { NodejsHttpClient } from '../../../transaction/http/NodejsHttpClient'
4
+ import { FetchHttpClient } from '../../../transaction/http/FetchHttpClient'
5
+ import { HttpClientRequestOptions } from '../../http'
6
+ import { RequestOptions } from 'https'
6
7
 
7
8
  // Mock Transaction
8
- jest.mock('../../Transaction', () => {
9
- return {
10
- default: jest.fn().mockImplementation(() => {
11
- return {
12
- toHex: () => 'mocked_transaction_hex'
13
- }
14
- })
9
+ jest.mock('../../../transaction/Transaction', () => {
10
+ class MockTransaction {
11
+ toHex (): string {
12
+ return 'mocked_transaction_hex'
13
+ }
14
+
15
+ toHexEF (): string {
16
+ return 'mocked_transaction_hexEF'
17
+ }
15
18
  }
19
+ return { __esModule: true, default: MockTransaction }
16
20
  })
17
21
 
18
22
  describe('ARC Broadcaster', () => {
@@ -35,7 +39,7 @@ describe('ARC Broadcaster', () => {
35
39
  it('should broadcast successfully using window.fetch', async () => {
36
40
  // Mocking window.fetch
37
41
  const mockFetch = mockedFetch(successResponse)
38
- global.window = {fetch: mockFetch} as any
42
+ global.window = { fetch: mockFetch } as unknown as Window & typeof globalThis
39
43
 
40
44
  const broadcaster = new ARC(URL)
41
45
  const response = await broadcaster.broadcast(transaction)
@@ -51,7 +55,9 @@ describe('ARC Broadcaster', () => {
51
55
  it('should broadcast successfully using Node.js https', async () => {
52
56
  // Mocking Node.js https module
53
57
  mockedHttps(successResponse)
54
- delete global.window
58
+ if ('window' in globalThis) {
59
+ delete (globalThis as { window?: unknown }).window // ✅ Explicit property check
60
+ }
55
61
 
56
62
  const broadcaster = new ARC(URL)
57
63
  const response = await broadcaster.broadcast(transaction)
@@ -64,10 +70,11 @@ describe('ARC Broadcaster', () => {
64
70
  })
65
71
 
66
72
  it('should broadcast successfully using provided fetch', async () => {
67
-
68
73
  const mockFetch = mockedFetch(successResponse)
69
74
 
70
- const broadcaster = new ARC(URL, {httpClient: new FetchHttpClient(mockFetch)})
75
+ const broadcaster = new ARC(URL, {
76
+ httpClient: new FetchHttpClient(mockFetch)
77
+ })
71
78
  const response = await broadcaster.broadcast(transaction)
72
79
 
73
80
  expect(mockFetch).toHaveBeenCalled()
@@ -79,9 +86,10 @@ describe('ARC Broadcaster', () => {
79
86
  })
80
87
 
81
88
  it('should broadcast successfully using provided https', async () => {
82
-
83
89
  const mockHttps = mockedHttps(successResponse)
84
- const broadcaster = new ARC(URL, {httpClient: new NodejsHttpClient(mockHttps)})
90
+ const broadcaster = new ARC(URL, {
91
+ httpClient: new NodejsHttpClient(mockHttps)
92
+ })
85
93
 
86
94
  const response = await broadcaster.broadcast(transaction)
87
95
 
@@ -95,63 +103,79 @@ describe('ARC Broadcaster', () => {
95
103
  it('should send default request headers when broadcasting', async () => {
96
104
  const mockFetch = mockedFetch(successResponse)
97
105
 
98
- const broadcaster = new ARC(URL, {httpClient: new FetchHttpClient(mockFetch)})
106
+ const broadcaster = new ARC(URL, {
107
+ httpClient: new FetchHttpClient(mockFetch)
108
+ })
99
109
  await broadcaster.broadcast(transaction)
100
110
 
101
- const {headers} = (mockFetch as jest.Mock).mock.calls[0][1] as HttpClientRequestOptions
111
+ // Ensure headers exist and cast to the correct type
112
+ const requestOptions = mockFetch.mock.calls[0][1] as HttpClientRequestOptions
113
+ const headers = (requestOptions?.headers ?? {}) // ✅ Proper typing
102
114
 
103
115
  expect(headers['Content-Type']).toEqual('application/json')
104
116
  expect(headers['XDeployment-ID']).toBeDefined()
105
117
  expect(headers['XDeployment-ID']).toMatch(/ts-sdk-.*/)
106
- expect(headers['Authorization']).toBeUndefined()
118
+ expect(headers.Authorization).toBeUndefined()
107
119
  })
108
120
 
109
121
  it('should send authorization header when api key is provided', async () => {
110
122
  const mockFetch = mockedFetch(successResponse)
111
123
  const apiKey = 'mainnet_1234567890'
112
124
 
113
- const broadcaster = new ARC(URL, {apiKey, httpClient: new FetchHttpClient(mockFetch)})
125
+ const broadcaster = new ARC(URL, {
126
+ apiKey,
127
+ httpClient: new FetchHttpClient(mockFetch)
128
+ })
114
129
  await broadcaster.broadcast(transaction)
115
130
 
116
- const {headers} = (mockFetch as jest.Mock).mock.calls[0][1] as HttpClientRequestOptions
131
+ // Extract and properly type headers
132
+ const requestOptions = mockFetch.mock.calls[0][1] as HttpClientRequestOptions
133
+ const headers = (requestOptions?.headers ?? {}) // ✅ Correct typing
117
134
 
118
135
  expect(headers['XDeployment-ID']).toBeDefined()
119
136
  expect(headers['XDeployment-ID']).toMatch(/ts-sdk-.*/)
120
- expect(headers['Authorization']).toEqual(`Bearer ${apiKey}`)
137
+ expect(headers.Authorization).toEqual(`Bearer ${apiKey}`) // ✅ Now properly typed
121
138
  })
122
139
 
123
140
  it('should handle api key as second argument', async () => {
124
141
  const mockFetch = mockedFetch(successResponse)
125
- global.window = {fetch: mockFetch} as any
142
+ global.window = { fetch: mockFetch } as unknown as Window & typeof globalThis
126
143
 
127
144
  const apiKey = 'mainnet_1234567890'
128
145
 
129
146
  const broadcaster = new ARC(URL, apiKey)
130
147
  await broadcaster.broadcast(transaction)
131
148
 
132
- const {headers} = (mockFetch as jest.Mock).mock.calls[0][1] as HttpClientRequestOptions
149
+ // Ensure headers is always defined
150
+ const headers = (mockFetch.mock.calls[0][1] as HttpClientRequestOptions)?.headers ?? {}
133
151
 
134
- expect(headers['Authorization']).toEqual(`Bearer ${apiKey}`)
152
+ expect(headers.Authorization).toEqual(`Bearer ${apiKey}`)
135
153
  })
136
154
 
137
-
138
155
  it('should send provided deployment id', async () => {
139
156
  const mockFetch = mockedFetch(successResponse)
140
157
  const deploymentId = 'custom_deployment_id'
141
158
 
142
- const broadcaster = new ARC(URL, {deploymentId, httpClient: new FetchHttpClient(mockFetch)})
159
+ const broadcaster = new ARC(URL, {
160
+ deploymentId,
161
+ httpClient: new FetchHttpClient(mockFetch)
162
+ })
143
163
  await broadcaster.broadcast(transaction)
144
164
 
145
- const {headers} = (mockFetch as jest.Mock).mock.calls[0][1] as HttpClientRequestOptions
165
+ // Ensure headers is always defined
166
+ const headers =
167
+ (mockFetch.mock.calls[0]?.[1]?.headers) ?? {}
146
168
 
147
169
  expect(headers['XDeployment-ID']).toEqual(deploymentId)
148
170
  })
149
171
 
150
172
  it('should handle network errors', async () => {
151
173
  const mockFetch = jest.fn().mockRejectedValue(new Error('Network error'))
152
- global.window = {fetch: mockFetch} as any
174
+ global.window = { fetch: mockFetch } as unknown as Window & typeof globalThis
153
175
 
154
- const broadcaster = new ARC(URL, {httpClient: new FetchHttpClient(mockFetch)})
176
+ const broadcaster = new ARC(URL, {
177
+ httpClient: new FetchHttpClient(mockFetch)
178
+ })
155
179
  const response = await broadcaster.broadcast(transaction)
156
180
 
157
181
  expect(mockFetch).toHaveBeenCalled()
@@ -164,13 +188,15 @@ describe('ARC Broadcaster', () => {
164
188
 
165
189
  it('should handle non-200 responses', async () => {
166
190
  const mockFetch = mockedFetch({
167
- status: '400',
191
+ status: 400,
168
192
  data: JSON.stringify({
169
193
  detail: 'Bad request'
170
194
  })
171
195
  })
172
196
 
173
- const broadcaster = new ARC(URL, {httpClient: new FetchHttpClient(mockFetch)})
197
+ const broadcaster = new ARC(URL, {
198
+ httpClient: new FetchHttpClient(mockFetch)
199
+ })
174
200
  const response = await broadcaster.broadcast(transaction)
175
201
 
176
202
  expect(mockFetch).toHaveBeenCalled()
@@ -185,15 +211,7 @@ describe('ARC Broadcaster', () => {
185
211
  })
186
212
 
187
213
  it('handles error 460', async () => {
188
- // Model the actual response format received from...
189
- const apiKey: string = '...'
190
- if (apiKey !== '...') {
191
- const URL = 'https://arc.taal.com'
192
- const arc = new ARC(URL, apiKey)
193
- const response = await arc.broadcast(transaction)
194
- expect(response.more).toBeTruthy()
195
- }
196
-
214
+ // Mock the fetch response to simulate the error 460 response
197
215
  const mockFetch = mockedFetch({
198
216
  status: 460,
199
217
  data: {
@@ -203,45 +221,94 @@ describe('ARC Broadcaster', () => {
203
221
  }
204
222
  })
205
223
 
206
- const broadcaster = new ARC(URL, {httpClient: new FetchHttpClient(mockFetch)})
224
+ // Initialize the ARC broadcaster with the mocked fetch client
225
+ const URL = 'https://arc.taal.com'
226
+ const apiKey = 'mock_api_key' // Example API key
227
+ const broadcaster = new ARC(URL, {
228
+ apiKey,
229
+ httpClient: new FetchHttpClient(mockFetch)
230
+ })
231
+
232
+ // Simulate broadcasting the transaction
207
233
  const response = await broadcaster.broadcast(transaction)
208
- expect(response.status).toBe('error')
209
- expect(response.code).toBe('460')
210
- expect(response.description).toBe('Transaction is not in extended format, missing input scripts')
211
- expect(response.txid).toBe('d21633ba23f70118185227be58a63527675641ad37967e2aa461559f577aec43')
234
+
235
+ // Check if the response is an error as expected
236
+ if (response.status === 'error') {
237
+ // Validate the BroadcastFailure response properties
238
+ expect(response.status).toBe('error')
239
+ expect(response.code).toBe('460')
240
+ expect(response.description).toBe(
241
+ 'Transaction is not in extended format, missing input scripts'
242
+ )
243
+ expect(response.txid).toBe(
244
+ 'd21633ba23f70118185227be58a63527675641ad37967e2aa461559f577aec43'
245
+ )
246
+ expect(response.more).toBeTruthy() // Validate the presence of additional error details
247
+ } else {
248
+ // Fail the test if the response is not an error
249
+ fail('Expected a BroadcastFailure but got a BroadcastResponse')
250
+ }
212
251
  })
213
252
 
214
- function mockedFetch(response) {
253
+ function mockedFetch (response: { status: number, data: any }): jest.Mock {
215
254
  return jest.fn().mockResolvedValue({
216
255
  ok: response.status === 200,
217
256
  status: response.status,
218
257
  statusText: response.status === 200 ? 'OK' : 'Bad request',
219
258
  headers: {
220
- get(key: string) {
259
+ get: (key: string): string | undefined => {
221
260
  if (key === 'Content-Type') {
222
261
  return 'application/json; charset=UTF-8'
223
262
  }
263
+ return undefined
224
264
  }
225
265
  },
226
266
  json: async () => response.data
227
- });
267
+ })
228
268
  }
229
269
 
230
- function mockedHttps(response) {
270
+ function mockedHttps (response: { status: number, data: any }): {
271
+ request: (
272
+ url: string,
273
+ options: RequestOptions,
274
+ callback: (res: {
275
+ statusCode: number
276
+ statusMessage: string
277
+ headers: { 'content-type': string }
278
+ on: (event: string, handler: (chunk?: any) => void) => void
279
+ }) => void
280
+ ) => {
281
+ on: jest.Mock
282
+ write: jest.Mock
283
+ end: jest.Mock
284
+ }
285
+ } {
231
286
  const https = {
232
- request: (url, options, callback) => {
233
- // eslint-disable-next-line
234
- callback({
287
+ request: (
288
+ url: string,
289
+ options: RequestOptions,
290
+ callback: (res: {
291
+ statusCode: number
292
+ statusMessage: string
293
+ headers: { 'content-type': string }
294
+ on: (event: string, handler: (chunk?: any) => void) => void
295
+ }) => void
296
+ ) => {
297
+ const mockResponse = {
235
298
  statusCode: response.status,
236
- statusMessage: response.status == 200 ? 'OK' : 'Bad request',
299
+ statusMessage: response.status === 200 ? 'OK' : 'Bad request',
237
300
  headers: {
238
301
  'content-type': 'application/json; charset=UTF-8'
239
302
  },
240
- on: (event, handler) => {
303
+ on (event: string, handler: (chunk?: any) => void) {
241
304
  if (event === 'data') handler(JSON.stringify(response.data))
242
305
  if (event === 'end') handler()
243
306
  }
244
- })
307
+ }
308
+
309
+ // ✅ Call the callback asynchronously to match Node.js behavior
310
+ process.nextTick(() => callback(mockResponse))
311
+
245
312
  return {
246
313
  on: jest.fn(),
247
314
  write: jest.fn(),
@@ -249,7 +316,8 @@ describe('ARC Broadcaster', () => {
249
316
  }
250
317
  }
251
318
  }
319
+
252
320
  jest.mock('https', () => https)
253
321
  return https
254
322
  }
255
- })
323
+ })