@bsv/sdk 1.6.9 → 1.6.11

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 (654) hide show
  1. package/README.md +9 -4
  2. package/dist/cjs/package.json +4 -2
  3. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +5 -1
  4. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  5. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  6. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +5 -1
  7. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  8. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  9. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
  10. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  11. package/dist/umd/bundle.js +1 -1
  12. package/docs/concepts/beef.md +84 -0
  13. package/docs/concepts/chain-tracking.md +122 -0
  14. package/docs/concepts/decentralized-identity.md +184 -0
  15. package/docs/concepts/fees.md +217 -0
  16. package/docs/concepts/identity-certificates.md +255 -0
  17. package/docs/concepts/index.md +62 -0
  18. package/docs/concepts/key-management.md +176 -0
  19. package/docs/concepts/script-templates.md +163 -0
  20. package/docs/concepts/sdk-philosophy.md +72 -0
  21. package/docs/concepts/signatures.md +179 -0
  22. package/docs/concepts/spv-verification.md +106 -0
  23. package/docs/concepts/transaction-encoding.md +148 -0
  24. package/docs/concepts/transaction-structure.md +63 -0
  25. package/docs/concepts/trust-model.md +123 -0
  26. package/docs/concepts/verification.md +219 -0
  27. package/docs/concepts/wallet-integration.md +95 -0
  28. package/docs/guides/direct-transaction-creation.md +137 -0
  29. package/docs/guides/http-client-configuration.md +414 -0
  30. package/docs/guides/index.md +30 -0
  31. package/docs/guides/transaction-signing-methods.md +268 -0
  32. package/docs/index.md +74 -0
  33. package/docs/reference/arc-config.md +698 -0
  34. package/docs/reference/brc-100.md +33 -0
  35. package/docs/reference/configuration.md +829 -0
  36. package/docs/reference/debugging.md +700 -0
  37. package/docs/reference/errors.md +547 -0
  38. package/docs/reference/index.md +98 -0
  39. package/docs/reference/network-config.md +914 -0
  40. package/docs/reference/op-codes.md +306 -0
  41. package/docs/reference/transaction-signatures.md +94 -0
  42. package/docs/requirements.txt +3 -0
  43. package/docs/tutorials/advanced-transaction.md +575 -0
  44. package/docs/tutorials/aes-encryption.md +947 -0
  45. package/docs/tutorials/authfetch-tutorial.md +957 -0
  46. package/docs/tutorials/ecdh-key-exchange.md +547 -0
  47. package/docs/tutorials/elliptic-curve-fundamentals.md +603 -0
  48. package/docs/tutorials/error-handling.md +1215 -0
  49. package/docs/tutorials/first-transaction-low-level.md +204 -0
  50. package/docs/tutorials/first-transaction.md +278 -0
  51. package/docs/tutorials/hashes-and-hmacs.md +814 -0
  52. package/docs/tutorials/identity-management.md +702 -0
  53. package/docs/tutorials/index.md +182 -0
  54. package/docs/tutorials/key-management.md +536 -0
  55. package/docs/tutorials/protowallet-development.md +716 -0
  56. package/docs/tutorials/script-construction.md +690 -0
  57. package/docs/tutorials/spv-merkle-proofs.md +682 -0
  58. package/docs/tutorials/testnet-transactions-low-level.md +352 -0
  59. package/docs/tutorials/transaction-broadcasting.md +535 -0
  60. package/docs/tutorials/transaction-types.md +419 -0
  61. package/docs/tutorials/type-42.md +582 -0
  62. package/docs/tutorials/uhrp-storage.md +579 -0
  63. package/package.json +4 -2
  64. package/src/wallet/substrates/HTTPWalletJSON.ts +6 -1
  65. package/dist/cjs/src/auth/__tests/Peer.test.js +0 -446
  66. package/dist/cjs/src/auth/__tests/Peer.test.js.map +0 -1
  67. package/dist/cjs/src/auth/__tests/SessionManager.test.js +0 -69
  68. package/dist/cjs/src/auth/__tests/SessionManager.test.js.map +0 -1
  69. package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js +0 -182
  70. package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js.map +0 -1
  71. package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js +0 -184
  72. package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js.map +0 -1
  73. package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js +0 -75
  74. package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +0 -1
  75. package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js +0 -101
  76. package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js.map +0 -1
  77. package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js +0 -106
  78. package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +0 -1
  79. package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js +0 -111
  80. package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js.map +0 -1
  81. package/dist/cjs/src/auth/utils/certificateHelpers.js +0 -51
  82. package/dist/cjs/src/auth/utils/certificateHelpers.js.map +0 -1
  83. package/dist/cjs/src/compat/__tests/BSM.test.js +0 -69
  84. package/dist/cjs/src/compat/__tests/BSM.test.js.map +0 -1
  85. package/dist/cjs/src/compat/__tests/ECIES.test.js +0 -115
  86. package/dist/cjs/src/compat/__tests/ECIES.test.js.map +0 -1
  87. package/dist/cjs/src/compat/__tests/HD.test.js +0 -336
  88. package/dist/cjs/src/compat/__tests/HD.test.js.map +0 -1
  89. package/dist/cjs/src/compat/__tests/Mnemonic.test.js +0 -150
  90. package/dist/cjs/src/compat/__tests/Mnemonic.test.js.map +0 -1
  91. package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js +0 -175
  92. package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js.map +0 -1
  93. package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js +0 -57
  94. package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js.map +0 -1
  95. package/dist/cjs/src/messages/__tests/SignedMessage.test.js +0 -52
  96. package/dist/cjs/src/messages/__tests/SignedMessage.test.js.map +0 -1
  97. package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js +0 -1471
  98. package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js.map +0 -1
  99. package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +0 -78
  100. package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +0 -1
  101. package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js +0 -933
  102. package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +0 -1
  103. package/dist/cjs/src/primitives/__tests/AESGCM.test.js +0 -248
  104. package/dist/cjs/src/primitives/__tests/AESGCM.test.js.map +0 -1
  105. package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js +0 -36
  106. package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js.map +0 -1
  107. package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js +0 -36
  108. package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js.map +0 -1
  109. package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js +0 -501
  110. package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js.map +0 -1
  111. package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js +0 -185
  112. package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js.map +0 -1
  113. package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js +0 -149
  114. package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js.map +0 -1
  115. package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js +0 -23
  116. package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js.map +0 -1
  117. package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js +0 -268
  118. package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js.map +0 -1
  119. package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js +0 -147
  120. package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js.map +0 -1
  121. package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js +0 -322
  122. package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js.map +0 -1
  123. package/dist/cjs/src/primitives/__tests/Curve.unit.test.js +0 -145
  124. package/dist/cjs/src/primitives/__tests/Curve.unit.test.js.map +0 -1
  125. package/dist/cjs/src/primitives/__tests/DRBG.test.js +0 -22
  126. package/dist/cjs/src/primitives/__tests/DRBG.test.js.map +0 -1
  127. package/dist/cjs/src/primitives/__tests/DRBG.vectors.js +0 -170
  128. package/dist/cjs/src/primitives/__tests/DRBG.vectors.js.map +0 -1
  129. package/dist/cjs/src/primitives/__tests/ECDH.test.js +0 -34
  130. package/dist/cjs/src/primitives/__tests/ECDH.test.js.map +0 -1
  131. package/dist/cjs/src/primitives/__tests/ECDSA.test.js +0 -89
  132. package/dist/cjs/src/primitives/__tests/ECDSA.test.js.map +0 -1
  133. package/dist/cjs/src/primitives/__tests/HMAC.test.js +0 -60
  134. package/dist/cjs/src/primitives/__tests/HMAC.test.js.map +0 -1
  135. package/dist/cjs/src/primitives/__tests/Hash.test.js +0 -159
  136. package/dist/cjs/src/primitives/__tests/Hash.test.js.map +0 -1
  137. package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js +0 -122
  138. package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js.map +0 -1
  139. package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js +0 -105
  140. package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js.map +0 -1
  141. package/dist/cjs/src/primitives/__tests/PrivateKey.test.js +0 -90
  142. package/dist/cjs/src/primitives/__tests/PrivateKey.test.js.map +0 -1
  143. package/dist/cjs/src/primitives/__tests/PublicKey.test.js +0 -83
  144. package/dist/cjs/src/primitives/__tests/PublicKey.test.js.map +0 -1
  145. package/dist/cjs/src/primitives/__tests/Random.test.js +0 -19
  146. package/dist/cjs/src/primitives/__tests/Random.test.js.map +0 -1
  147. package/dist/cjs/src/primitives/__tests/Reader.test.js +0 -282
  148. package/dist/cjs/src/primitives/__tests/Reader.test.js.map +0 -1
  149. package/dist/cjs/src/primitives/__tests/ReductionContext.test.js +0 -224
  150. package/dist/cjs/src/primitives/__tests/ReductionContext.test.js.map +0 -1
  151. package/dist/cjs/src/primitives/__tests/Schnorr.test.js +0 -213
  152. package/dist/cjs/src/primitives/__tests/Schnorr.test.js.map +0 -1
  153. package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js +0 -51
  154. package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js.map +0 -1
  155. package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js +0 -43
  156. package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js.map +0 -1
  157. package/dist/cjs/src/primitives/__tests/Writer.test.js +0 -176
  158. package/dist/cjs/src/primitives/__tests/Writer.test.js.map +0 -1
  159. package/dist/cjs/src/primitives/__tests/bug-31.test.js +0 -32
  160. package/dist/cjs/src/primitives/__tests/bug-31.test.js.map +0 -1
  161. package/dist/cjs/src/primitives/__tests/sighash.vectors.js +0 -3506
  162. package/dist/cjs/src/primitives/__tests/sighash.vectors.js.map +0 -1
  163. package/dist/cjs/src/primitives/__tests/utils.test.js +0 -110
  164. package/dist/cjs/src/primitives/__tests/utils.test.js.map +0 -1
  165. package/dist/cjs/src/script/__tests/Script.test.js +0 -347
  166. package/dist/cjs/src/script/__tests/Script.test.js.map +0 -1
  167. package/dist/cjs/src/script/__tests/Spend.test.js +0 -282
  168. package/dist/cjs/src/script/__tests/Spend.test.js.map +0 -1
  169. package/dist/cjs/src/script/__tests/SpendComplex.test.js +0 -52
  170. package/dist/cjs/src/script/__tests/SpendComplex.test.js.map +0 -1
  171. package/dist/cjs/src/script/__tests/script.invalid.vectors.js +0 -2370
  172. package/dist/cjs/src/script/__tests/script.invalid.vectors.js.map +0 -1
  173. package/dist/cjs/src/script/__tests/script.valid.vectors.js +0 -1181
  174. package/dist/cjs/src/script/__tests/script.valid.vectors.js.map +0 -1
  175. package/dist/cjs/src/script/__tests/spend.valid.vectors.js +0 -2298
  176. package/dist/cjs/src/script/__tests/spend.valid.vectors.js.map +0 -1
  177. package/dist/cjs/src/script/templates/__tests/PushDrop.test.js +0 -161
  178. package/dist/cjs/src/script/templates/__tests/PushDrop.test.js.map +0 -1
  179. package/dist/cjs/src/totp/__tests/totp.test.js +0 -67
  180. package/dist/cjs/src/totp/__tests/totp.test.js.map +0 -1
  181. package/dist/cjs/src/transaction/__tests/Beef.test.js +0 -393
  182. package/dist/cjs/src/transaction/__tests/Beef.test.js.map +0 -1
  183. package/dist/cjs/src/transaction/__tests/MerklePath.test.js +0 -209
  184. package/dist/cjs/src/transaction/__tests/MerklePath.test.js.map +0 -1
  185. package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js +0 -219
  186. package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js.map +0 -1
  187. package/dist/cjs/src/transaction/__tests/Transaction.test.js +0 -1073
  188. package/dist/cjs/src/transaction/__tests/Transaction.test.js.map +0 -1
  189. package/dist/cjs/src/transaction/__tests/bigtx.vectors.js +0 -7
  190. package/dist/cjs/src/transaction/__tests/bigtx.vectors.js.map +0 -1
  191. package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js +0 -11
  192. package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js.map +0 -1
  193. package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js +0 -7
  194. package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js.map +0 -1
  195. package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js +0 -230
  196. package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js.map +0 -1
  197. package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js +0 -296
  198. package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js.map +0 -1
  199. package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js +0 -246
  200. package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js.map +0 -1
  201. package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +0 -148
  202. package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +0 -1
  203. package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +0 -155
  204. package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +0 -1
  205. package/dist/cjs/src/wallet/ScriptTemplateSABPPP.js +0 -39
  206. package/dist/cjs/src/wallet/ScriptTemplateSABPPP.js.map +0 -1
  207. package/dist/cjs/src/wallet/WalletSigner.js +0 -260
  208. package/dist/cjs/src/wallet/WalletSigner.js.map +0 -1
  209. package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js +0 -269
  210. package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js.map +0 -1
  211. package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js +0 -114
  212. package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js.map +0 -1
  213. package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js +0 -475
  214. package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js.map +0 -1
  215. package/dist/cjs/src/wallet/createActionSdk.js +0 -230
  216. package/dist/cjs/src/wallet/createActionSdk.js.map +0 -1
  217. package/dist/cjs/src/wallet/sdk/CachedKeyDeriver.js +0 -174
  218. package/dist/cjs/src/wallet/sdk/CachedKeyDeriver.js.map +0 -1
  219. package/dist/cjs/src/wallet/sdk/CertOps.js +0 -181
  220. package/dist/cjs/src/wallet/sdk/CertOps.js.map +0 -1
  221. package/dist/cjs/src/wallet/sdk/Certificate.js +0 -162
  222. package/dist/cjs/src/wallet/sdk/Certificate.js.map +0 -1
  223. package/dist/cjs/src/wallet/sdk/KeyDeriver.js +0 -176
  224. package/dist/cjs/src/wallet/sdk/KeyDeriver.js.map +0 -1
  225. package/dist/cjs/src/wallet/sdk/ProtoWallet.js +0 -75
  226. package/dist/cjs/src/wallet/sdk/ProtoWallet.js.map +0 -1
  227. package/dist/cjs/src/wallet/sdk/StorageSyncReader.js +0 -3
  228. package/dist/cjs/src/wallet/sdk/StorageSyncReader.js.map +0 -1
  229. package/dist/cjs/src/wallet/sdk/WERR_errors.js +0 -107
  230. package/dist/cjs/src/wallet/sdk/WERR_errors.js.map +0 -1
  231. package/dist/cjs/src/wallet/sdk/Wallet.interfaces.js +0 -3
  232. package/dist/cjs/src/wallet/sdk/Wallet.interfaces.js.map +0 -1
  233. package/dist/cjs/src/wallet/sdk/WalletCrypto.js +0 -171
  234. package/dist/cjs/src/wallet/sdk/WalletCrypto.js.map +0 -1
  235. package/dist/cjs/src/wallet/sdk/WalletError.js +0 -103
  236. package/dist/cjs/src/wallet/sdk/WalletError.js.map +0 -1
  237. package/dist/cjs/src/wallet/sdk/WalletServices.interfaces.js +0 -3
  238. package/dist/cjs/src/wallet/sdk/WalletServices.interfaces.js.map +0 -1
  239. package/dist/cjs/src/wallet/sdk/WalletSigner.interfaces.js +0 -3
  240. package/dist/cjs/src/wallet/sdk/WalletSigner.interfaces.js.map +0 -1
  241. package/dist/cjs/src/wallet/sdk/WalletStorage.interfaces.js +0 -3
  242. package/dist/cjs/src/wallet/sdk/WalletStorage.interfaces.js.map +0 -1
  243. package/dist/cjs/src/wallet/sdk/index.js +0 -31
  244. package/dist/cjs/src/wallet/sdk/index.js.map +0 -1
  245. package/dist/cjs/src/wallet/sdk/types.js +0 -11
  246. package/dist/cjs/src/wallet/sdk/types.js.map +0 -1
  247. package/dist/cjs/src/wallet/sdk/validationHelpers.js +0 -601
  248. package/dist/cjs/src/wallet/sdk/validationHelpers.js.map +0 -1
  249. package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js +0 -1962
  250. package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +0 -1
  251. package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js +0 -579
  252. package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js.map +0 -1
  253. package/dist/cjs/src/wallet/utilityHelpers.js +0 -305
  254. package/dist/cjs/src/wallet/utilityHelpers.js.map +0 -1
  255. package/dist/cjs/src/wallet/validationHelpers.js +0 -601
  256. package/dist/cjs/src/wallet/validationHelpers.js.map +0 -1
  257. package/dist/esm/src/auth/__tests/Peer.test.js +0 -448
  258. package/dist/esm/src/auth/__tests/Peer.test.js.map +0 -1
  259. package/dist/esm/src/auth/__tests/SessionManager.test.js +0 -69
  260. package/dist/esm/src/auth/__tests/SessionManager.test.js.map +0 -1
  261. package/dist/esm/src/auth/certificates/__tests/Certificate.test.js +0 -182
  262. package/dist/esm/src/auth/certificates/__tests/Certificate.test.js.map +0 -1
  263. package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js +0 -184
  264. package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js.map +0 -1
  265. package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js +0 -75
  266. package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +0 -1
  267. package/dist/esm/src/auth/utils/__tests/cryptononce.test.js +0 -101
  268. package/dist/esm/src/auth/utils/__tests/cryptononce.test.js.map +0 -1
  269. package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js +0 -106
  270. package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +0 -1
  271. package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js +0 -111
  272. package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js.map +0 -1
  273. package/dist/esm/src/auth/utils/certificateHelpers.js +0 -47
  274. package/dist/esm/src/auth/utils/certificateHelpers.js.map +0 -1
  275. package/dist/esm/src/compat/__tests/BSM.test.js +0 -69
  276. package/dist/esm/src/compat/__tests/BSM.test.js.map +0 -1
  277. package/dist/esm/src/compat/__tests/ECIES.test.js +0 -115
  278. package/dist/esm/src/compat/__tests/ECIES.test.js.map +0 -1
  279. package/dist/esm/src/compat/__tests/HD.test.js +0 -336
  280. package/dist/esm/src/compat/__tests/HD.test.js.map +0 -1
  281. package/dist/esm/src/compat/__tests/Mnemonic.test.js +0 -150
  282. package/dist/esm/src/compat/__tests/Mnemonic.test.js.map +0 -1
  283. package/dist/esm/src/compat/__tests/Mnemonic.vectors.js +0 -175
  284. package/dist/esm/src/compat/__tests/Mnemonic.vectors.js.map +0 -1
  285. package/dist/esm/src/messages/__tests/EncryptedMessage.test.js +0 -57
  286. package/dist/esm/src/messages/__tests/EncryptedMessage.test.js.map +0 -1
  287. package/dist/esm/src/messages/__tests/SignedMessage.test.js +0 -52
  288. package/dist/esm/src/messages/__tests/SignedMessage.test.js.map +0 -1
  289. package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js +0 -1471
  290. package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js.map +0 -1
  291. package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +0 -78
  292. package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +0 -1
  293. package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js +0 -933
  294. package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +0 -1
  295. package/dist/esm/src/primitives/__tests/AESGCM.test.js +0 -248
  296. package/dist/esm/src/primitives/__tests/AESGCM.test.js.map +0 -1
  297. package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js +0 -36
  298. package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js.map +0 -1
  299. package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js +0 -36
  300. package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js.map +0 -1
  301. package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js +0 -501
  302. package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js.map +0 -1
  303. package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js +0 -185
  304. package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js.map +0 -1
  305. package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js +0 -149
  306. package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js.map +0 -1
  307. package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js +0 -23
  308. package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js.map +0 -1
  309. package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js +0 -268
  310. package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js.map +0 -1
  311. package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js +0 -147
  312. package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js.map +0 -1
  313. package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js +0 -322
  314. package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js.map +0 -1
  315. package/dist/esm/src/primitives/__tests/Curve.unit.test.js +0 -145
  316. package/dist/esm/src/primitives/__tests/Curve.unit.test.js.map +0 -1
  317. package/dist/esm/src/primitives/__tests/DRBG.test.js +0 -22
  318. package/dist/esm/src/primitives/__tests/DRBG.test.js.map +0 -1
  319. package/dist/esm/src/primitives/__tests/DRBG.vectors.js +0 -170
  320. package/dist/esm/src/primitives/__tests/DRBG.vectors.js.map +0 -1
  321. package/dist/esm/src/primitives/__tests/ECDH.test.js +0 -34
  322. package/dist/esm/src/primitives/__tests/ECDH.test.js.map +0 -1
  323. package/dist/esm/src/primitives/__tests/ECDSA.test.js +0 -89
  324. package/dist/esm/src/primitives/__tests/ECDSA.test.js.map +0 -1
  325. package/dist/esm/src/primitives/__tests/HMAC.test.js +0 -60
  326. package/dist/esm/src/primitives/__tests/HMAC.test.js.map +0 -1
  327. package/dist/esm/src/primitives/__tests/Hash.test.js +0 -159
  328. package/dist/esm/src/primitives/__tests/Hash.test.js.map +0 -1
  329. package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js +0 -122
  330. package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js.map +0 -1
  331. package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js +0 -105
  332. package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js.map +0 -1
  333. package/dist/esm/src/primitives/__tests/PrivateKey.test.js +0 -90
  334. package/dist/esm/src/primitives/__tests/PrivateKey.test.js.map +0 -1
  335. package/dist/esm/src/primitives/__tests/PublicKey.test.js +0 -83
  336. package/dist/esm/src/primitives/__tests/PublicKey.test.js.map +0 -1
  337. package/dist/esm/src/primitives/__tests/Random.test.js +0 -19
  338. package/dist/esm/src/primitives/__tests/Random.test.js.map +0 -1
  339. package/dist/esm/src/primitives/__tests/Reader.test.js +0 -282
  340. package/dist/esm/src/primitives/__tests/Reader.test.js.map +0 -1
  341. package/dist/esm/src/primitives/__tests/ReductionContext.test.js +0 -223
  342. package/dist/esm/src/primitives/__tests/ReductionContext.test.js.map +0 -1
  343. package/dist/esm/src/primitives/__tests/Schnorr.test.js +0 -213
  344. package/dist/esm/src/primitives/__tests/Schnorr.test.js.map +0 -1
  345. package/dist/esm/src/primitives/__tests/SymmetricKey.test.js +0 -51
  346. package/dist/esm/src/primitives/__tests/SymmetricKey.test.js.map +0 -1
  347. package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js +0 -43
  348. package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js.map +0 -1
  349. package/dist/esm/src/primitives/__tests/Writer.test.js +0 -176
  350. package/dist/esm/src/primitives/__tests/Writer.test.js.map +0 -1
  351. package/dist/esm/src/primitives/__tests/bug-31.test.js +0 -32
  352. package/dist/esm/src/primitives/__tests/bug-31.test.js.map +0 -1
  353. package/dist/esm/src/primitives/__tests/sighash.vectors.js +0 -3506
  354. package/dist/esm/src/primitives/__tests/sighash.vectors.js.map +0 -1
  355. package/dist/esm/src/primitives/__tests/utils.test.js +0 -110
  356. package/dist/esm/src/primitives/__tests/utils.test.js.map +0 -1
  357. package/dist/esm/src/script/__tests/Script.test.js +0 -347
  358. package/dist/esm/src/script/__tests/Script.test.js.map +0 -1
  359. package/dist/esm/src/script/__tests/Spend.test.js +0 -282
  360. package/dist/esm/src/script/__tests/Spend.test.js.map +0 -1
  361. package/dist/esm/src/script/__tests/SpendComplex.test.js +0 -51
  362. package/dist/esm/src/script/__tests/SpendComplex.test.js.map +0 -1
  363. package/dist/esm/src/script/__tests/script.invalid.vectors.js +0 -2370
  364. package/dist/esm/src/script/__tests/script.invalid.vectors.js.map +0 -1
  365. package/dist/esm/src/script/__tests/script.valid.vectors.js +0 -1181
  366. package/dist/esm/src/script/__tests/script.valid.vectors.js.map +0 -1
  367. package/dist/esm/src/script/__tests/spend.valid.vectors.js +0 -2298
  368. package/dist/esm/src/script/__tests/spend.valid.vectors.js.map +0 -1
  369. package/dist/esm/src/script/templates/__tests/PushDrop.test.js +0 -161
  370. package/dist/esm/src/script/templates/__tests/PushDrop.test.js.map +0 -1
  371. package/dist/esm/src/totp/__tests/totp.test.js +0 -67
  372. package/dist/esm/src/totp/__tests/totp.test.js.map +0 -1
  373. package/dist/esm/src/transaction/__tests/Beef.test.js +0 -393
  374. package/dist/esm/src/transaction/__tests/Beef.test.js.map +0 -1
  375. package/dist/esm/src/transaction/__tests/MerklePath.test.js +0 -209
  376. package/dist/esm/src/transaction/__tests/MerklePath.test.js.map +0 -1
  377. package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js +0 -219
  378. package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js.map +0 -1
  379. package/dist/esm/src/transaction/__tests/Transaction.test.js +0 -1072
  380. package/dist/esm/src/transaction/__tests/Transaction.test.js.map +0 -1
  381. package/dist/esm/src/transaction/__tests/bigtx.vectors.js +0 -7
  382. package/dist/esm/src/transaction/__tests/bigtx.vectors.js.map +0 -1
  383. package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js +0 -11
  384. package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js.map +0 -1
  385. package/dist/esm/src/transaction/__tests/bump.valid.vectors.js +0 -7
  386. package/dist/esm/src/transaction/__tests/bump.valid.vectors.js.map +0 -1
  387. package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js +0 -230
  388. package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js.map +0 -1
  389. package/dist/esm/src/transaction/__tests/tx.valid.vectors.js +0 -296
  390. package/dist/esm/src/transaction/__tests/tx.valid.vectors.js.map +0 -1
  391. package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js +0 -246
  392. package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js.map +0 -1
  393. package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +0 -148
  394. package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +0 -1
  395. package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +0 -155
  396. package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +0 -1
  397. package/dist/esm/src/wallet/ScriptTemplateSABPPP.js +0 -37
  398. package/dist/esm/src/wallet/ScriptTemplateSABPPP.js.map +0 -1
  399. package/dist/esm/src/wallet/WalletSigner.js +0 -263
  400. package/dist/esm/src/wallet/WalletSigner.js.map +0 -1
  401. package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js +0 -269
  402. package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js.map +0 -1
  403. package/dist/esm/src/wallet/__tests/KeyDeriver.test.js +0 -113
  404. package/dist/esm/src/wallet/__tests/KeyDeriver.test.js.map +0 -1
  405. package/dist/esm/src/wallet/__tests/ProtoWallet.test.js +0 -475
  406. package/dist/esm/src/wallet/__tests/ProtoWallet.test.js.map +0 -1
  407. package/dist/esm/src/wallet/createActionSdk.js +0 -223
  408. package/dist/esm/src/wallet/createActionSdk.js.map +0 -1
  409. package/dist/esm/src/wallet/sdk/CachedKeyDeriver.js +0 -174
  410. package/dist/esm/src/wallet/sdk/CachedKeyDeriver.js.map +0 -1
  411. package/dist/esm/src/wallet/sdk/CertOps.js +0 -181
  412. package/dist/esm/src/wallet/sdk/CertOps.js.map +0 -1
  413. package/dist/esm/src/wallet/sdk/Certificate.js +0 -186
  414. package/dist/esm/src/wallet/sdk/Certificate.js.map +0 -1
  415. package/dist/esm/src/wallet/sdk/KeyDeriver.js +0 -174
  416. package/dist/esm/src/wallet/sdk/KeyDeriver.js.map +0 -1
  417. package/dist/esm/src/wallet/sdk/ProtoWallet.js +0 -71
  418. package/dist/esm/src/wallet/sdk/ProtoWallet.js.map +0 -1
  419. package/dist/esm/src/wallet/sdk/StorageSyncReader.js +0 -2
  420. package/dist/esm/src/wallet/sdk/StorageSyncReader.js.map +0 -1
  421. package/dist/esm/src/wallet/sdk/WERR_errors.js +0 -99
  422. package/dist/esm/src/wallet/sdk/WERR_errors.js.map +0 -1
  423. package/dist/esm/src/wallet/sdk/Wallet.interfaces.js +0 -2
  424. package/dist/esm/src/wallet/sdk/Wallet.interfaces.js.map +0 -1
  425. package/dist/esm/src/wallet/sdk/WalletCrypto.js +0 -168
  426. package/dist/esm/src/wallet/sdk/WalletCrypto.js.map +0 -1
  427. package/dist/esm/src/wallet/sdk/WalletError.js +0 -100
  428. package/dist/esm/src/wallet/sdk/WalletError.js.map +0 -1
  429. package/dist/esm/src/wallet/sdk/WalletServices.interfaces.js +0 -2
  430. package/dist/esm/src/wallet/sdk/WalletServices.interfaces.js.map +0 -1
  431. package/dist/esm/src/wallet/sdk/WalletSigner.interfaces.js +0 -2
  432. package/dist/esm/src/wallet/sdk/WalletSigner.interfaces.js.map +0 -1
  433. package/dist/esm/src/wallet/sdk/WalletStorage.interfaces.js +0 -2
  434. package/dist/esm/src/wallet/sdk/WalletStorage.interfaces.js.map +0 -1
  435. package/dist/esm/src/wallet/sdk/index.js +0 -15
  436. package/dist/esm/src/wallet/sdk/index.js.map +0 -1
  437. package/dist/esm/src/wallet/sdk/types.js +0 -8
  438. package/dist/esm/src/wallet/sdk/types.js.map +0 -1
  439. package/dist/esm/src/wallet/sdk/validationHelpers.js +0 -566
  440. package/dist/esm/src/wallet/sdk/validationHelpers.js.map +0 -1
  441. package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js +0 -1962
  442. package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +0 -1
  443. package/dist/esm/src/wallet/substrates/__tests/XDM.test.js +0 -579
  444. package/dist/esm/src/wallet/substrates/__tests/XDM.test.js.map +0 -1
  445. package/dist/esm/src/wallet/utilityHelpers.js +0 -275
  446. package/dist/esm/src/wallet/utilityHelpers.js.map +0 -1
  447. package/dist/esm/src/wallet/validationHelpers.js +0 -566
  448. package/dist/esm/src/wallet/validationHelpers.js.map +0 -1
  449. package/dist/types/src/auth/__tests/Peer.test.d.ts +0 -2
  450. package/dist/types/src/auth/__tests/Peer.test.d.ts.map +0 -1
  451. package/dist/types/src/auth/__tests/SessionManager.test.d.ts +0 -2
  452. package/dist/types/src/auth/__tests/SessionManager.test.d.ts.map +0 -1
  453. package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts +0 -2
  454. package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts.map +0 -1
  455. package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts +0 -2
  456. package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts.map +0 -1
  457. package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts +0 -2
  458. package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts.map +0 -1
  459. package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts +0 -2
  460. package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts.map +0 -1
  461. package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts +0 -2
  462. package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts.map +0 -1
  463. package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts +0 -2
  464. package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts.map +0 -1
  465. package/dist/types/src/auth/utils/certificateHelpers.d.ts +0 -26
  466. package/dist/types/src/auth/utils/certificateHelpers.d.ts.map +0 -1
  467. package/dist/types/src/compat/__tests/BSM.test.d.ts +0 -2
  468. package/dist/types/src/compat/__tests/BSM.test.d.ts.map +0 -1
  469. package/dist/types/src/compat/__tests/ECIES.test.d.ts +0 -2
  470. package/dist/types/src/compat/__tests/ECIES.test.d.ts.map +0 -1
  471. package/dist/types/src/compat/__tests/HD.test.d.ts +0 -2
  472. package/dist/types/src/compat/__tests/HD.test.d.ts.map +0 -1
  473. package/dist/types/src/compat/__tests/Mnemonic.test.d.ts +0 -2
  474. package/dist/types/src/compat/__tests/Mnemonic.test.d.ts.map +0 -1
  475. package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts +0 -11
  476. package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts.map +0 -1
  477. package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts +0 -2
  478. package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts.map +0 -1
  479. package/dist/types/src/messages/__tests/SignedMessage.test.d.ts +0 -2
  480. package/dist/types/src/messages/__tests/SignedMessage.test.d.ts.map +0 -1
  481. package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts +0 -2
  482. package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts.map +0 -1
  483. package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts +0 -2
  484. package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts.map +0 -1
  485. package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts +0 -2
  486. package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts.map +0 -1
  487. package/dist/types/src/primitives/__tests/AESGCM.test.d.ts +0 -2
  488. package/dist/types/src/primitives/__tests/AESGCM.test.d.ts.map +0 -1
  489. package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts +0 -8
  490. package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts.map +0 -1
  491. package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts +0 -8
  492. package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts.map +0 -1
  493. package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts +0 -2
  494. package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts.map +0 -1
  495. package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts +0 -2
  496. package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts.map +0 -1
  497. package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts +0 -2
  498. package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts.map +0 -1
  499. package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts +0 -2
  500. package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts.map +0 -1
  501. package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts +0 -15
  502. package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts.map +0 -1
  503. package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts +0 -2
  504. package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts.map +0 -1
  505. package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts +0 -2
  506. package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts.map +0 -1
  507. package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts +0 -2
  508. package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts.map +0 -1
  509. package/dist/types/src/primitives/__tests/DRBG.test.d.ts +0 -2
  510. package/dist/types/src/primitives/__tests/DRBG.test.d.ts.map +0 -1
  511. package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts +0 -10
  512. package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts.map +0 -1
  513. package/dist/types/src/primitives/__tests/ECDH.test.d.ts +0 -2
  514. package/dist/types/src/primitives/__tests/ECDH.test.d.ts.map +0 -1
  515. package/dist/types/src/primitives/__tests/ECDSA.test.d.ts +0 -2
  516. package/dist/types/src/primitives/__tests/ECDSA.test.d.ts.map +0 -1
  517. package/dist/types/src/primitives/__tests/HMAC.test.d.ts +0 -2
  518. package/dist/types/src/primitives/__tests/HMAC.test.d.ts.map +0 -1
  519. package/dist/types/src/primitives/__tests/Hash.test.d.ts +0 -2
  520. package/dist/types/src/primitives/__tests/Hash.test.d.ts.map +0 -1
  521. package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts +0 -68
  522. package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts.map +0 -1
  523. package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts +0 -2
  524. package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts.map +0 -1
  525. package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts +0 -2
  526. package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts.map +0 -1
  527. package/dist/types/src/primitives/__tests/PublicKey.test.d.ts +0 -2
  528. package/dist/types/src/primitives/__tests/PublicKey.test.d.ts.map +0 -1
  529. package/dist/types/src/primitives/__tests/Random.test.d.ts +0 -2
  530. package/dist/types/src/primitives/__tests/Random.test.d.ts.map +0 -1
  531. package/dist/types/src/primitives/__tests/Reader.test.d.ts +0 -2
  532. package/dist/types/src/primitives/__tests/Reader.test.d.ts.map +0 -1
  533. package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts +0 -2
  534. package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts.map +0 -1
  535. package/dist/types/src/primitives/__tests/Schnorr.test.d.ts +0 -2
  536. package/dist/types/src/primitives/__tests/Schnorr.test.d.ts.map +0 -1
  537. package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts +0 -2
  538. package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts.map +0 -1
  539. package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts +0 -20
  540. package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts.map +0 -1
  541. package/dist/types/src/primitives/__tests/Writer.test.d.ts +0 -2
  542. package/dist/types/src/primitives/__tests/Writer.test.d.ts.map +0 -1
  543. package/dist/types/src/primitives/__tests/bug-31.test.d.ts +0 -2
  544. package/dist/types/src/primitives/__tests/bug-31.test.d.ts.map +0 -1
  545. package/dist/types/src/primitives/__tests/sighash.vectors.d.ts +0 -3
  546. package/dist/types/src/primitives/__tests/sighash.vectors.d.ts.map +0 -1
  547. package/dist/types/src/primitives/__tests/utils.test.d.ts +0 -2
  548. package/dist/types/src/primitives/__tests/utils.test.d.ts.map +0 -1
  549. package/dist/types/src/script/__tests/Script.test.d.ts +0 -2
  550. package/dist/types/src/script/__tests/Script.test.d.ts.map +0 -1
  551. package/dist/types/src/script/__tests/Spend.test.d.ts +0 -2
  552. package/dist/types/src/script/__tests/Spend.test.d.ts.map +0 -1
  553. package/dist/types/src/script/__tests/SpendComplex.test.d.ts +0 -2
  554. package/dist/types/src/script/__tests/SpendComplex.test.d.ts.map +0 -1
  555. package/dist/types/src/script/__tests/script.invalid.vectors.d.ts +0 -3
  556. package/dist/types/src/script/__tests/script.invalid.vectors.d.ts.map +0 -1
  557. package/dist/types/src/script/__tests/script.valid.vectors.d.ts +0 -3
  558. package/dist/types/src/script/__tests/script.valid.vectors.d.ts.map +0 -1
  559. package/dist/types/src/script/__tests/spend.valid.vectors.d.ts +0 -3
  560. package/dist/types/src/script/__tests/spend.valid.vectors.d.ts.map +0 -1
  561. package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts +0 -2
  562. package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts.map +0 -1
  563. package/dist/types/src/totp/__tests/totp.test.d.ts +0 -2
  564. package/dist/types/src/totp/__tests/totp.test.d.ts.map +0 -1
  565. package/dist/types/src/transaction/__tests/Beef.test.d.ts +0 -2
  566. package/dist/types/src/transaction/__tests/Beef.test.d.ts.map +0 -1
  567. package/dist/types/src/transaction/__tests/MerklePath.test.d.ts +0 -2
  568. package/dist/types/src/transaction/__tests/MerklePath.test.d.ts.map +0 -1
  569. package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts +0 -2
  570. package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts.map +0 -1
  571. package/dist/types/src/transaction/__tests/Transaction.test.d.ts +0 -2
  572. package/dist/types/src/transaction/__tests/Transaction.test.d.ts.map +0 -1
  573. package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts +0 -6
  574. package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts.map +0 -1
  575. package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts +0 -6
  576. package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts.map +0 -1
  577. package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts +0 -5
  578. package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts.map +0 -1
  579. package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts +0 -3
  580. package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts.map +0 -1
  581. package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts +0 -3
  582. package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts.map +0 -1
  583. package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts +0 -2
  584. package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts.map +0 -1
  585. package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts +0 -2
  586. package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts.map +0 -1
  587. package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts +0 -2
  588. package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts.map +0 -1
  589. package/dist/types/src/wallet/ScriptTemplateSABPPP.d.ts +0 -25
  590. package/dist/types/src/wallet/ScriptTemplateSABPPP.d.ts.map +0 -1
  591. package/dist/types/src/wallet/WalletSigner.d.ts +0 -110
  592. package/dist/types/src/wallet/WalletSigner.d.ts.map +0 -1
  593. package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts +0 -2
  594. package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts.map +0 -1
  595. package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts +0 -2
  596. package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts.map +0 -1
  597. package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts +0 -2
  598. package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts.map +0 -1
  599. package/dist/types/src/wallet/createActionSdk.d.ts +0 -8
  600. package/dist/types/src/wallet/createActionSdk.d.ts.map +0 -1
  601. package/dist/types/src/wallet/sdk/CachedKeyDeriver.d.ts +0 -94
  602. package/dist/types/src/wallet/sdk/CachedKeyDeriver.d.ts.map +0 -1
  603. package/dist/types/src/wallet/sdk/CertOps.d.ts +0 -63
  604. package/dist/types/src/wallet/sdk/CertOps.d.ts.map +0 -1
  605. package/dist/types/src/wallet/sdk/Certificate.d.ts +0 -77
  606. package/dist/types/src/wallet/sdk/Certificate.d.ts.map +0 -1
  607. package/dist/types/src/wallet/sdk/KeyDeriver.d.ts +0 -128
  608. package/dist/types/src/wallet/sdk/KeyDeriver.d.ts.map +0 -1
  609. package/dist/types/src/wallet/sdk/ProtoWallet.d.ts +0 -30
  610. package/dist/types/src/wallet/sdk/ProtoWallet.d.ts.map +0 -1
  611. package/dist/types/src/wallet/sdk/StorageSyncReader.d.ts +0 -102
  612. package/dist/types/src/wallet/sdk/StorageSyncReader.d.ts.map +0 -1
  613. package/dist/types/src/wallet/sdk/WERR_errors.d.ts +0 -84
  614. package/dist/types/src/wallet/sdk/WERR_errors.d.ts.map +0 -1
  615. package/dist/types/src/wallet/sdk/Wallet.interfaces.d.ts +0 -1036
  616. package/dist/types/src/wallet/sdk/Wallet.interfaces.d.ts.map +0 -1
  617. package/dist/types/src/wallet/sdk/WalletCrypto.d.ts +0 -31
  618. package/dist/types/src/wallet/sdk/WalletCrypto.d.ts.map +0 -1
  619. package/dist/types/src/wallet/sdk/WalletError.d.ts +0 -46
  620. package/dist/types/src/wallet/sdk/WalletError.d.ts.map +0 -1
  621. package/dist/types/src/wallet/sdk/WalletServices.interfaces.d.ts +0 -293
  622. package/dist/types/src/wallet/sdk/WalletServices.interfaces.d.ts.map +0 -1
  623. package/dist/types/src/wallet/sdk/WalletSigner.interfaces.d.ts +0 -48
  624. package/dist/types/src/wallet/sdk/WalletSigner.interfaces.d.ts.map +0 -1
  625. package/dist/types/src/wallet/sdk/WalletStorage.interfaces.d.ts +0 -296
  626. package/dist/types/src/wallet/sdk/WalletStorage.interfaces.d.ts.map +0 -1
  627. package/dist/types/src/wallet/sdk/index.d.ts +0 -15
  628. package/dist/types/src/wallet/sdk/index.d.ts.map +0 -1
  629. package/dist/types/src/wallet/sdk/types.d.ts +0 -56
  630. package/dist/types/src/wallet/sdk/types.d.ts.map +0 -1
  631. package/dist/types/src/wallet/sdk/validationHelpers.d.ts +0 -301
  632. package/dist/types/src/wallet/sdk/validationHelpers.d.ts.map +0 -1
  633. package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts +0 -2
  634. package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts.map +0 -1
  635. package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts +0 -5
  636. package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts.map +0 -1
  637. package/dist/types/src/wallet/utilityHelpers.d.ts +0 -142
  638. package/dist/types/src/wallet/utilityHelpers.d.ts.map +0 -1
  639. package/dist/types/src/wallet/validationHelpers.d.ts +0 -301
  640. package/dist/types/src/wallet/validationHelpers.d.ts.map +0 -1
  641. package/docs/README.md +0 -21
  642. /package/docs/{auth.md → reference/auth.md} +0 -0
  643. /package/docs/{compat.md → reference/compat.md} +0 -0
  644. /package/docs/{identity.md → reference/identity.md} +0 -0
  645. /package/docs/{kvstore.md → reference/kvstore.md} +0 -0
  646. /package/docs/{messages.md → reference/messages.md} +0 -0
  647. /package/docs/{overlay-tools.md → reference/overlay-tools.md} +0 -0
  648. /package/docs/{primitives.md → reference/primitives.md} +0 -0
  649. /package/docs/{registry.md → reference/registry.md} +0 -0
  650. /package/docs/{script.md → reference/script.md} +0 -0
  651. /package/docs/{storage.md → reference/storage.md} +0 -0
  652. /package/docs/{totp.md → reference/totp.md} +0 -0
  653. /package/docs/{transaction.md → reference/transaction.md} +0 -0
  654. /package/docs/{wallet.md → reference/wallet.md} +0 -0
@@ -1,933 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const SHIPBroadcaster_1 = __importDefault(require("../../overlay-tools/SHIPBroadcaster"));
7
- const index_1 = require("../../primitives/index");
8
- const index_2 = require("../../transaction/index");
9
- const OverlayAdminTokenTemplate_1 = __importDefault(require("../../overlay-tools/OverlayAdminTokenTemplate"));
10
- const CompletedProtoWallet_1 = require("../../auth/certificates/__tests/CompletedProtoWallet");
11
- const mockFacilitator = {
12
- send: jest.fn()
13
- };
14
- const mockResolver = {
15
- query: jest.fn()
16
- };
17
- describe('SHIPCast', () => {
18
- beforeEach(() => {
19
- mockFacilitator.send.mockReset();
20
- mockResolver.query.mockReset();
21
- });
22
- it('Handles constructor errors', () => {
23
- expect(() => new SHIPBroadcaster_1.default([])).toThrow(new Error('At least one topic is required for broadcast.'));
24
- expect(() => new SHIPBroadcaster_1.default(['badprefix_foo'])).toThrow(new Error('Every topic must start with "tm_".'));
25
- });
26
- it('should broadcast to a single SHIP host found via resolver', async () => {
27
- const shipHostKey = new index_1.PrivateKey(42);
28
- const shipWallet = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey);
29
- const shipLib = new OverlayAdminTokenTemplate_1.default(shipWallet);
30
- const shipScript = await shipLib.lock('SHIP', 'https://shiphost.com', 'tm_foo');
31
- const shipTx = new index_2.Transaction(1, [], [
32
- {
33
- lockingScript: shipScript,
34
- satoshis: 1
35
- }
36
- ], 0);
37
- // Resolver returns one host interested in 'tm_foo' topic
38
- mockResolver.query.mockReturnValueOnce({
39
- type: 'output-list',
40
- outputs: [
41
- {
42
- beef: shipTx.toBEEF(),
43
- outputIndex: 0
44
- }
45
- ]
46
- });
47
- // Host responds successfully
48
- mockFacilitator.send.mockReturnValueOnce({
49
- tm_foo: {
50
- outputsToAdmit: [0],
51
- coinsToRetain: []
52
- }
53
- });
54
- const b = new SHIPBroadcaster_1.default(['tm_foo'], {
55
- facilitator: mockFacilitator,
56
- resolver: mockResolver
57
- });
58
- const testTx = new index_2.Transaction(1, [], [], 0);
59
- const response = await b.broadcast(testTx);
60
- expect(response).toEqual({
61
- status: 'success',
62
- txid: testTx.id('hex'),
63
- message: 'Sent to 1 Overlay Services host.'
64
- });
65
- expect(mockResolver.query).toHaveBeenCalledWith({
66
- service: 'ls_ship',
67
- query: {
68
- topics: ['tm_foo']
69
- }
70
- }, 1000);
71
- expect(mockFacilitator.send).toHaveBeenCalledWith('https://shiphost.com', {
72
- beef: testTx.toBEEF(),
73
- topics: ['tm_foo']
74
- });
75
- });
76
- it('should be resilient to malformed or corrupted SHIP data, to the extent possible', async () => {
77
- const shipHostKey = new index_1.PrivateKey(42);
78
- const shipWallet = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey);
79
- const shipLib = new OverlayAdminTokenTemplate_1.default(shipWallet);
80
- // First SHIP is for wrong topic
81
- const shipScript = await shipLib.lock('SHIP', 'https://shiphost.com', 'tm_wrong');
82
- const shipTx = new index_2.Transaction(1, [], [
83
- {
84
- lockingScript: shipScript,
85
- satoshis: 1
86
- }
87
- ], 0);
88
- const shipHostKey2 = new index_1.PrivateKey(43);
89
- const shipWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey2);
90
- const shipLib2 = new OverlayAdminTokenTemplate_1.default(shipWallet2);
91
- // Second SHIP is for correct topic
92
- const shipScript2 = await shipLib2.lock('SHIP', 'https://shiphost2.com', 'tm_foo');
93
- const shipTx2 = new index_2.Transaction(1, [], [
94
- {
95
- lockingScript: shipScript2,
96
- satoshis: 1
97
- }
98
- ], 0);
99
- // Resolver returns two hosts, both the correct and the corrupted ones.
100
- mockResolver.query.mockReturnValueOnce({
101
- type: 'output-list',
102
- outputs: [
103
- {
104
- beef: shipTx.toBEEF(),
105
- outputIndex: 0
106
- },
107
- {
108
- beef: shipTx2.toBEEF(),
109
- outputIndex: 0
110
- }
111
- ]
112
- });
113
- // Host responds successfully
114
- mockFacilitator.send.mockReturnValue({
115
- tm_foo: {
116
- outputsToAdmit: [0],
117
- coinsToRetain: []
118
- }
119
- });
120
- const b = new SHIPBroadcaster_1.default(['tm_foo'], {
121
- facilitator: mockFacilitator,
122
- resolver: mockResolver
123
- });
124
- const testTx = new index_2.Transaction(1, [], [], 0);
125
- let response = await b.broadcast(testTx);
126
- expect(response).toEqual({
127
- status: 'success',
128
- txid: testTx.id('hex'),
129
- // One SHIP advertisement should be used, but the second one was invalid
130
- message: 'Sent to 1 Overlay Services host.'
131
- });
132
- // Transaction should have been sent to the second host, but the first one was invalid
133
- expect(mockFacilitator.send).toHaveBeenCalledWith('https://shiphost2.com', {
134
- beef: testTx.toBEEF(),
135
- topics: ['tm_foo']
136
- });
137
- mockFacilitator.send.mockClear();
138
- // Resolver returns the wrong type of data
139
- mockResolver.query.mockReturnValueOnce({
140
- type: 'invalid',
141
- bogus: true,
142
- outputs: {
143
- different: 'structure'
144
- }
145
- });
146
- await expect(async () => await b.broadcast(testTx)).rejects.toThrow('SHIP answer is not an output list.');
147
- expect(mockFacilitator.send).not.toHaveBeenCalled();
148
- // Resolver returns the wrong output structure
149
- mockResolver.query.mockReturnValueOnce({
150
- type: 'output-list',
151
- outputs: {
152
- different: 'structure'
153
- }
154
- });
155
- await expect(async () => await b.broadcast(testTx)).rejects.toThrow('answer.outputs is not iterable');
156
- expect(mockFacilitator.send).not.toHaveBeenCalled();
157
- // Resolver returns corrupted BEEF alongside good data
158
- mockResolver.query.mockReturnValueOnce({
159
- type: 'output-list',
160
- outputs: [
161
- {
162
- beef: shipTx.toBEEF(), // Wrong topic
163
- outputIndex: 0
164
- },
165
- {
166
- beef: [0], // corrupted "rotten" BEEF
167
- outputIndex: 4
168
- },
169
- {
170
- beef: shipTx2.toBEEF(),
171
- outputIndex: 1 // Wrong output index
172
- },
173
- {
174
- beef: shipTx2.toBEEF(),
175
- outputIndex: 0 // correct
176
- }
177
- ]
178
- });
179
- response = await b.broadcast(testTx);
180
- expect(response).toEqual({
181
- status: 'success',
182
- txid: testTx.id('hex'),
183
- // One SHIP advertisement should be used, but the second one was invalid
184
- message: 'Sent to 1 Overlay Services host.'
185
- });
186
- // Transaction should have been sent to the second host, but the first one was invalid
187
- expect(mockFacilitator.send).toHaveBeenCalledWith('https://shiphost2.com', {
188
- beef: testTx.toBEEF(),
189
- topics: ['tm_foo']
190
- });
191
- });
192
- it('should fail when transaction cannot be serialized to BEEF', async () => {
193
- const b = new SHIPBroadcaster_1.default(['tm_foo'], {
194
- facilitator: mockFacilitator,
195
- resolver: mockResolver
196
- });
197
- const testTx = {
198
- toBEEF: () => {
199
- throw new Error('Cannot serialize to BEEF');
200
- }
201
- };
202
- await expect(b.broadcast(testTx)).rejects.toThrow('Transactions sent via SHIP to Overlay Services must be serializable to BEEF format.');
203
- });
204
- it('should fail when no hosts are interested in the topics', async () => {
205
- // Resolver returns empty output list
206
- mockResolver.query.mockReturnValueOnce({
207
- type: 'output-list',
208
- outputs: []
209
- });
210
- const b = new SHIPBroadcaster_1.default(['tm_foo'], {
211
- facilitator: mockFacilitator,
212
- resolver: mockResolver
213
- });
214
- const testTx = new index_2.Transaction(1, [], [], 0);
215
- const result = await b.broadcast(testTx);
216
- expect(result).toEqual({
217
- status: 'error',
218
- code: 'ERR_NO_HOSTS_INTERESTED',
219
- description: 'No hosts are interested in receiving this transaction.'
220
- });
221
- expect(mockResolver.query).toHaveBeenCalledWith({
222
- service: 'ls_ship',
223
- query: {
224
- topics: ['tm_foo']
225
- }
226
- }, 1000);
227
- expect(mockFacilitator.send).not.toHaveBeenCalled();
228
- });
229
- it('should fail when all hosts reject the transaction', async () => {
230
- const shipHostKey = new index_1.PrivateKey(42);
231
- const shipWallet = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey);
232
- const shipLib = new OverlayAdminTokenTemplate_1.default(shipWallet);
233
- const shipScript = await shipLib.lock('SHIP', 'https://shiphost.com', 'tm_foo');
234
- const shipTx = new index_2.Transaction(1, [], [
235
- {
236
- lockingScript: shipScript,
237
- satoshis: 1
238
- }
239
- ], 0);
240
- // Resolver returns one host
241
- mockResolver.query.mockReturnValueOnce({
242
- type: 'output-list',
243
- outputs: [
244
- {
245
- beef: shipTx.toBEEF(),
246
- outputIndex: 0
247
- }
248
- ]
249
- });
250
- // Host fails
251
- mockFacilitator.send.mockImplementationOnce(() => {
252
- throw new Error('Host failed');
253
- });
254
- const b = new SHIPBroadcaster_1.default(['tm_foo'], {
255
- facilitator: mockFacilitator,
256
- resolver: mockResolver
257
- });
258
- const testTx = new index_2.Transaction(1, [], [], 0);
259
- const result = await b.broadcast(testTx);
260
- expect(result).toEqual({
261
- status: 'error',
262
- code: 'ERR_ALL_HOSTS_REJECTED',
263
- description: 'All SHIP hosts have rejected the transaction.'
264
- });
265
- expect(mockFacilitator.send).toHaveBeenCalled();
266
- });
267
- it('should fail when required specific hosts are not among interested hosts', async () => {
268
- const shipHostKey = new index_1.PrivateKey(42);
269
- const shipWallet = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey);
270
- const shipLib = new OverlayAdminTokenTemplate_1.default(shipWallet);
271
- const shipScript = await shipLib.lock('SHIP', 'https://shiphost.com', 'tm_foo');
272
- const shipTx = new index_2.Transaction(1, [], [
273
- {
274
- lockingScript: shipScript,
275
- satoshis: 1
276
- }
277
- ], 0);
278
- // Resolver returns one host
279
- mockResolver.query.mockReturnValueOnce({
280
- type: 'output-list',
281
- outputs: [
282
- {
283
- beef: shipTx.toBEEF(),
284
- outputIndex: 0
285
- }
286
- ]
287
- });
288
- // First host acknowledges 'tm_foo', but it's not the right host.
289
- mockFacilitator.send.mockImplementationOnce(async (host, { beef, topics }) => {
290
- const steak = {};
291
- for (const topic of topics) {
292
- steak[topic] = {
293
- outputsToAdmit: topic === 'tm_foo' ? [0] : [],
294
- coinsToRetain: []
295
- };
296
- }
297
- return steak;
298
- });
299
- const b = new SHIPBroadcaster_1.default(['tm_foo'], {
300
- facilitator: mockFacilitator,
301
- resolver: mockResolver,
302
- requireAcknowledgmentFromSpecificHostsForTopics: {
303
- 'https://anotherhost.com': ['tm_foo']
304
- },
305
- requireAcknowledgmentFromAllHostsForTopics: [],
306
- requireAcknowledgmentFromAnyHostForTopics: []
307
- });
308
- const testTx = new index_2.Transaction(1, [], [], 0);
309
- const response = await b.broadcast(testTx);
310
- expect(response).toEqual({
311
- status: 'error',
312
- code: 'ERR_REQUIRE_ACK_FROM_SPECIFIC_HOSTS_FAILED',
313
- description: 'Specific hosts did not acknowledge the required topics.'
314
- });
315
- });
316
- it('should succeed when all hosts acknowledge all topics (default behavior)', async () => {
317
- const shipHostKey1 = new index_1.PrivateKey(42);
318
- const shipWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey1);
319
- const shipLib1 = new OverlayAdminTokenTemplate_1.default(shipWallet1);
320
- const shipScript1 = await shipLib1.lock('SHIP', 'https://shiphost1.com', 'tm_foo');
321
- const shipScript1b = await shipLib1.lock('SHIP', 'https://shiphost1.com', 'tm_bar');
322
- const shipTx1 = new index_2.Transaction(1, [], [
323
- {
324
- lockingScript: shipScript1,
325
- satoshis: 1
326
- },
327
- {
328
- lockingScript: shipScript1b,
329
- satoshis: 1
330
- }
331
- ], 0);
332
- const shipHostKey2 = new index_1.PrivateKey(43);
333
- const shipWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey2);
334
- const shipLib2 = new OverlayAdminTokenTemplate_1.default(shipWallet2);
335
- const shipScript2 = await shipLib2.lock('SHIP', 'https://shiphost2.com', 'tm_bar');
336
- const shipScript2b = await shipLib2.lock('SHIP', 'https://shiphost2.com', 'tm_foo');
337
- const shipTx2 = new index_2.Transaction(1, [], [
338
- {
339
- lockingScript: shipScript2,
340
- satoshis: 1
341
- },
342
- {
343
- lockingScript: shipScript2b,
344
- satoshis: 1
345
- }
346
- ], 0);
347
- // Resolver returns two hosts
348
- mockResolver.query.mockReturnValueOnce({
349
- type: 'output-list',
350
- outputs: [
351
- { beef: shipTx1.toBEEF(), outputIndex: 0 },
352
- { beef: shipTx1.toBEEF(), outputIndex: 1 },
353
- { beef: shipTx2.toBEEF(), outputIndex: 0 },
354
- { beef: shipTx2.toBEEF(), outputIndex: 1 }
355
- ]
356
- });
357
- // Both hosts acknowledge all topics
358
- mockFacilitator.send.mockImplementation(async (host, { topics }) => {
359
- const steak = {};
360
- for (const topic of topics) {
361
- steak[topic] = {
362
- outputsToAdmit: [0],
363
- coinsToRetain: []
364
- };
365
- }
366
- return steak;
367
- });
368
- const b = new SHIPBroadcaster_1.default(['tm_foo', 'tm_bar'], {
369
- facilitator: mockFacilitator,
370
- resolver: mockResolver
371
- });
372
- const testTx = new index_2.Transaction(1, [], [], 0);
373
- const response = await b.broadcast(testTx);
374
- expect(response).toEqual({
375
- status: 'success',
376
- txid: testTx.id('hex'),
377
- message: 'Sent to 2 Overlay Services hosts.'
378
- });
379
- expect(mockResolver.query).toHaveBeenCalledWith({
380
- service: 'ls_ship',
381
- query: {
382
- topics: ['tm_foo', 'tm_bar']
383
- }
384
- }, 1000);
385
- expect(mockFacilitator.send).toHaveBeenCalledTimes(2);
386
- });
387
- it('should fail if at least one host does not acknowledge every topic (default behavior)', async () => {
388
- const shipHostKey1 = new index_1.PrivateKey(42);
389
- const shipWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey1);
390
- const shipLib1 = new OverlayAdminTokenTemplate_1.default(shipWallet1);
391
- const shipScript1 = await shipLib1.lock('SHIP', 'https://shiphost1.com', 'tm_foo');
392
- const shipTx1 = new index_2.Transaction(1, [], [
393
- {
394
- lockingScript: shipScript1,
395
- satoshis: 1
396
- }
397
- ], 0);
398
- const shipHostKey2 = new index_1.PrivateKey(43);
399
- const shipWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey2);
400
- const shipLib2 = new OverlayAdminTokenTemplate_1.default(shipWallet2);
401
- const shipScript2 = await shipLib2.lock('SHIP', 'https://shiphost2.com', 'tm_bar');
402
- const shipTx2 = new index_2.Transaction(1, [], [
403
- {
404
- lockingScript: shipScript2,
405
- satoshis: 1
406
- }
407
- ], 0);
408
- // Resolver returns two hosts
409
- mockResolver.query.mockReturnValueOnce({
410
- type: 'output-list',
411
- outputs: [
412
- { beef: shipTx1.toBEEF(), outputIndex: 0 },
413
- { beef: shipTx2.toBEEF(), outputIndex: 0 }
414
- ]
415
- });
416
- // First host acknowledges 'tm_foo'
417
- mockFacilitator.send.mockImplementationOnce(async (host, { beef, topics }) => {
418
- const steak = {};
419
- for (const topic of topics) {
420
- steak[topic] = {
421
- outputsToAdmit: [],
422
- coinsToRetain: []
423
- };
424
- }
425
- return steak;
426
- });
427
- // Second host does not acknowledge any topics
428
- mockFacilitator.send.mockImplementationOnce(async (host, { beef, topics }) => {
429
- const steak = {};
430
- for (const topic of topics) {
431
- steak[topic] = {
432
- outputsToAdmit: [],
433
- coinsToRetain: []
434
- };
435
- }
436
- return steak;
437
- });
438
- const b = new SHIPBroadcaster_1.default(['tm_foo', 'tm_bar'], {
439
- facilitator: mockFacilitator,
440
- resolver: mockResolver
441
- });
442
- const testTx = new index_2.Transaction(1, [], [], 0);
443
- const response = await b.broadcast(testTx);
444
- expect(response).toEqual({
445
- status: 'error',
446
- code: 'ERR_REQUIRE_ACK_FROM_ANY_HOST_FAILED',
447
- description: 'No host acknowledged the required topics.'
448
- });
449
- });
450
- it('should succeed when at least one host acknowledges required topics with requireAcknowledgmentFromAnyHostForTopics set to "any"', async () => {
451
- const shipHostKey1 = new index_1.PrivateKey(42);
452
- const shipWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey1);
453
- const shipLib1 = new OverlayAdminTokenTemplate_1.default(shipWallet1);
454
- const shipScript1 = await shipLib1.lock('SHIP', 'https://shiphost1.com', 'tm_foo');
455
- const shipTx1 = new index_2.Transaction(1, [], [
456
- {
457
- lockingScript: shipScript1,
458
- satoshis: 1
459
- }
460
- ], 0);
461
- const shipHostKey2 = new index_1.PrivateKey(43);
462
- const shipWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey2);
463
- const shipLib2 = new OverlayAdminTokenTemplate_1.default(shipWallet2);
464
- const shipScript2 = await shipLib2.lock('SHIP', 'https://shiphost2.com', 'tm_bar');
465
- const shipTx2 = new index_2.Transaction(1, [], [
466
- {
467
- lockingScript: shipScript2,
468
- satoshis: 1
469
- }
470
- ], 0);
471
- // Resolver returns two hosts
472
- mockResolver.query.mockReturnValueOnce({
473
- type: 'output-list',
474
- outputs: [
475
- { beef: shipTx1.toBEEF(), outputIndex: 0 },
476
- { beef: shipTx2.toBEEF(), outputIndex: 0 }
477
- ]
478
- });
479
- // First host acknowledges no topics
480
- mockFacilitator.send.mockImplementationOnce(async (host, { beef, topics }) => {
481
- const steak = {};
482
- for (const topic of topics) {
483
- steak[topic] = {
484
- outputsToAdmit: [],
485
- coinsToRetain: []
486
- };
487
- }
488
- return steak;
489
- });
490
- // Second host acknowledges 'tm_bar'
491
- mockFacilitator.send.mockImplementationOnce(async (host, { beef, topics }) => {
492
- const steak = {};
493
- for (const topic of topics) {
494
- steak[topic] = {
495
- outputsToAdmit: topic === 'tm_bar' ? [0] : [],
496
- coinsToRetain: []
497
- };
498
- }
499
- return steak;
500
- });
501
- const b = new SHIPBroadcaster_1.default(['tm_foo', 'tm_bar'], {
502
- facilitator: mockFacilitator,
503
- resolver: mockResolver,
504
- requireAcknowledgmentFromAnyHostForTopics: 'any',
505
- requireAcknowledgmentFromAllHostsForTopics: []
506
- });
507
- const testTx = new index_2.Transaction(1, [], [], 0);
508
- const response = await b.broadcast(testTx);
509
- expect(response).toEqual({
510
- status: 'success',
511
- txid: testTx.id('hex'),
512
- message: 'Sent to 2 Overlay Services hosts.'
513
- });
514
- });
515
- it('should fail when no hosts acknowledge required topics with requireAcknowledgmentFromAnyHostForTopics set to "any"', async () => {
516
- const shipHostKey1 = new index_1.PrivateKey(42);
517
- const shipWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey1);
518
- const shipLib1 = new OverlayAdminTokenTemplate_1.default(shipWallet1);
519
- const shipScript1 = await shipLib1.lock('SHIP', 'https://shiphost1.com', 'tm_foo');
520
- const shipTx1 = new index_2.Transaction(1, [], [
521
- {
522
- lockingScript: shipScript1,
523
- satoshis: 1
524
- }
525
- ], 0);
526
- // Resolver returns one host
527
- mockResolver.query.mockReturnValueOnce({
528
- type: 'output-list',
529
- outputs: [{ beef: shipTx1.toBEEF(), outputIndex: 0 }]
530
- });
531
- // Host acknowledges no topics
532
- mockFacilitator.send.mockImplementationOnce(async (host, { beef, topics }) => {
533
- const steak = {};
534
- for (const topic of topics) {
535
- steak[topic] = {
536
- outputsToAdmit: [],
537
- coinsToRetain: []
538
- };
539
- }
540
- return steak;
541
- });
542
- const b = new SHIPBroadcaster_1.default(['tm_foo'], {
543
- facilitator: mockFacilitator,
544
- resolver: mockResolver,
545
- requireAcknowledgmentFromAnyHostForTopics: 'any',
546
- requireAcknowledgmentFromAllHostsForTopics: []
547
- });
548
- const testTx = new index_2.Transaction(1, [], [], 0);
549
- const response = await b.broadcast(testTx);
550
- expect(response).toEqual({
551
- status: 'error',
552
- code: 'ERR_REQUIRE_ACK_FROM_ANY_HOST_FAILED',
553
- description: 'No host acknowledged the required topics.'
554
- });
555
- });
556
- it('should succeed when specific hosts acknowledge required topics', async () => {
557
- const shipHostKey1 = new index_1.PrivateKey(42);
558
- const shipWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey1);
559
- const shipLib1 = new OverlayAdminTokenTemplate_1.default(shipWallet1);
560
- const shipScript1 = await shipLib1.lock('SHIP', 'https://shiphost1.com', 'tm_foo');
561
- const shipTx1 = new index_2.Transaction(1, [], [
562
- {
563
- lockingScript: shipScript1,
564
- satoshis: 1
565
- }
566
- ], 0);
567
- const shipHostKey2 = new index_1.PrivateKey(43);
568
- const shipWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey2);
569
- const shipLib2 = new OverlayAdminTokenTemplate_1.default(shipWallet2);
570
- const shipScript2 = await shipLib2.lock('SHIP', 'https://shiphost2.com', 'tm_bar');
571
- const shipTx2 = new index_2.Transaction(1, [], [
572
- {
573
- lockingScript: shipScript2,
574
- satoshis: 1
575
- }
576
- ], 0);
577
- // Resolver returns two hosts
578
- mockResolver.query.mockReturnValueOnce({
579
- type: 'output-list',
580
- outputs: [
581
- { beef: shipTx1.toBEEF(), outputIndex: 0 },
582
- { beef: shipTx2.toBEEF(), outputIndex: 0 }
583
- ]
584
- });
585
- // First host acknowledges 'tm_foo'
586
- mockFacilitator.send.mockImplementationOnce(async (host, { beef, topics }) => {
587
- const steak = {};
588
- for (const topic of topics) {
589
- steak[topic] = {
590
- outputsToAdmit: topic === 'tm_foo' ? [0] : [],
591
- coinsToRetain: []
592
- };
593
- }
594
- return steak;
595
- });
596
- // Second host does not acknowledge 'tm_bar'
597
- mockFacilitator.send.mockImplementationOnce(async (host, { beef, topics }) => {
598
- const steak = {};
599
- for (const topic of topics) {
600
- steak[topic] = {
601
- outputsToAdmit: [],
602
- coinsToRetain: []
603
- };
604
- }
605
- return steak;
606
- });
607
- const b = new SHIPBroadcaster_1.default(['tm_foo', 'tm_bar'], {
608
- facilitator: mockFacilitator,
609
- resolver: mockResolver,
610
- requireAcknowledgmentFromSpecificHostsForTopics: {
611
- 'https://shiphost1.com': ['tm_foo']
612
- },
613
- requireAcknowledgmentFromAllHostsForTopics: [],
614
- requireAcknowledgmentFromAnyHostForTopics: []
615
- });
616
- const testTx = new index_2.Transaction(1, [], [], 0);
617
- const response = await b.broadcast(testTx);
618
- expect(response).toEqual({
619
- status: 'success',
620
- txid: testTx.id('hex'),
621
- message: 'Sent to 2 Overlay Services hosts.'
622
- });
623
- });
624
- it('should succeed when interested hosts only remove coins in a transaction broadcast', async () => {
625
- const shipHostKey1 = new index_1.PrivateKey(42);
626
- const shipWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey1);
627
- const shipLib1 = new OverlayAdminTokenTemplate_1.default(shipWallet1);
628
- const shipScript1 = await shipLib1.lock('SHIP', 'https://shiphost1.com', 'tm_foo');
629
- const shipTx1 = new index_2.Transaction(1, [], [
630
- {
631
- lockingScript: shipScript1,
632
- satoshis: 1
633
- }
634
- ], 0);
635
- const shipHostKey2 = new index_1.PrivateKey(43);
636
- const shipWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey2);
637
- const shipLib2 = new OverlayAdminTokenTemplate_1.default(shipWallet2);
638
- const shipScript2 = await shipLib2.lock('SHIP', 'https://shiphost2.com', 'tm_bar');
639
- const shipTx2 = new index_2.Transaction(1, [], [
640
- {
641
- lockingScript: shipScript2,
642
- satoshis: 1
643
- }
644
- ], 0);
645
- // Resolver returns two hosts
646
- mockResolver.query.mockReturnValueOnce({
647
- type: 'output-list',
648
- outputs: [
649
- { beef: shipTx1.toBEEF(), outputIndex: 0 },
650
- { beef: shipTx2.toBEEF(), outputIndex: 0 }
651
- ]
652
- });
653
- // First host acknowledges 'tm_foo' with coinsRemoved
654
- mockFacilitator.send.mockImplementationOnce(async (host, { beef, topics }) => {
655
- const steak = {};
656
- for (const topic of topics) {
657
- steak[topic] = {
658
- outputsToAdmit: [],
659
- coinsToRetain: [],
660
- coinsRemoved: topic === 'tm_foo' ? [0] : []
661
- };
662
- }
663
- return steak;
664
- });
665
- // Second host does not acknowledge 'tm_bar'
666
- mockFacilitator.send.mockImplementationOnce(async (host, { beef, topics }) => {
667
- const steak = {};
668
- for (const topic of topics) {
669
- steak[topic] = {
670
- outputsToAdmit: [],
671
- coinsToRetain: [],
672
- coinsRemoved: []
673
- };
674
- }
675
- return steak;
676
- });
677
- const b = new SHIPBroadcaster_1.default(['tm_foo', 'tm_bar'], {
678
- facilitator: mockFacilitator,
679
- resolver: mockResolver,
680
- requireAcknowledgmentFromSpecificHostsForTopics: {
681
- 'https://shiphost1.com': ['tm_foo']
682
- },
683
- requireAcknowledgmentFromAllHostsForTopics: [],
684
- requireAcknowledgmentFromAnyHostForTopics: []
685
- });
686
- const testTx = new index_2.Transaction(1, [], [], 0);
687
- const response = await b.broadcast(testTx);
688
- expect(response).toEqual({
689
- status: 'success',
690
- txid: testTx.id('hex'),
691
- message: 'Sent to 2 Overlay Services hosts.'
692
- });
693
- // Verify the resolver was queried correctly
694
- expect(mockResolver.query).toHaveBeenCalledWith({
695
- service: 'ls_ship',
696
- query: {
697
- topics: ['tm_foo', 'tm_bar']
698
- }
699
- }, 1000);
700
- });
701
- it('should fail when specific hosts do not acknowledge required topics', async () => {
702
- const shipHostKey1 = new index_1.PrivateKey(42);
703
- const shipWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey1);
704
- const shipLib1 = new OverlayAdminTokenTemplate_1.default(shipWallet1);
705
- const shipScript1 = await shipLib1.lock('SHIP', 'https://shiphost1.com', 'tm_foo');
706
- const shipTx1 = new index_2.Transaction(1, [], [
707
- {
708
- lockingScript: shipScript1,
709
- satoshis: 1
710
- }
711
- ], 0);
712
- // Resolver returns one host
713
- mockResolver.query.mockReturnValueOnce({
714
- type: 'output-list',
715
- outputs: [{ beef: shipTx1.toBEEF(), outputIndex: 0 }]
716
- });
717
- // Host does not acknowledge 'tm_foo'
718
- mockFacilitator.send.mockImplementationOnce(async (host, { beef, topics }) => {
719
- const steak = {};
720
- for (const topic of topics) {
721
- steak[topic] = {
722
- outputsToAdmit: [],
723
- coinsToRetain: []
724
- };
725
- }
726
- return steak;
727
- });
728
- const b = new SHIPBroadcaster_1.default(['tm_foo'], {
729
- facilitator: mockFacilitator,
730
- resolver: mockResolver,
731
- requireAcknowledgmentFromSpecificHostsForTopics: {
732
- 'https://shiphost1.com': ['tm_foo']
733
- },
734
- requireAcknowledgmentFromAllHostsForTopics: [],
735
- requireAcknowledgmentFromAnyHostForTopics: []
736
- });
737
- const testTx = new index_2.Transaction(1, [], [], 0);
738
- const response = await b.broadcast(testTx);
739
- expect(response).toEqual({
740
- status: 'error',
741
- code: 'ERR_REQUIRE_ACK_FROM_SPECIFIC_HOSTS_FAILED',
742
- description: 'Specific hosts did not acknowledge the required topics.'
743
- });
744
- });
745
- it('should handle invalid acknowledgments from hosts gracefully', async () => {
746
- const shipHostKey = new index_1.PrivateKey(42);
747
- const shipWallet = new CompletedProtoWallet_1.CompletedProtoWallet(shipHostKey);
748
- const shipLib = new OverlayAdminTokenTemplate_1.default(shipWallet);
749
- const shipScript = await shipLib.lock('SHIP', 'https://shiphost.com', 'tm_foo');
750
- const shipTx = new index_2.Transaction(1, [], [
751
- {
752
- lockingScript: shipScript,
753
- satoshis: 1
754
- }
755
- ], 0);
756
- // Resolver returns one host
757
- mockResolver.query.mockReturnValueOnce({
758
- type: 'output-list',
759
- outputs: [
760
- {
761
- beef: shipTx.toBEEF(),
762
- outputIndex: 0
763
- }
764
- ]
765
- });
766
- // Host returns invalid acknowledgment
767
- mockFacilitator.send.mockReturnValueOnce(null);
768
- const b = new SHIPBroadcaster_1.default(['tm_foo'], {
769
- facilitator: mockFacilitator,
770
- resolver: mockResolver
771
- });
772
- const testTx = new index_2.Transaction(1, [], [], 0);
773
- const response = await b.broadcast(testTx);
774
- // Since the host responded (successfully in terms of HTTP), but with invalid data, we should consider it a failure
775
- expect(response).toEqual({
776
- status: 'error',
777
- code: 'ERR_ALL_HOSTS_REJECTED',
778
- description: 'All SHIP hosts have rejected the transaction.'
779
- });
780
- });
781
- describe('SHIPCast private methods', () => {
782
- let shipCast;
783
- beforeEach(() => {
784
- shipCast = new SHIPBroadcaster_1.default(['tm_foo', 'tm_bar'], {
785
- facilitator: mockFacilitator,
786
- resolver: mockResolver
787
- });
788
- });
789
- describe('checkAcknowledgmentFromAllHosts', () => {
790
- it('should return true when all hosts acknowledge all required topics', () => {
791
- const hostAcknowledgments = {
792
- 'https://host1.com': new Set(['tm_foo', 'tm_bar']),
793
- 'https://host2.com': new Set(['tm_foo', 'tm_bar'])
794
- };
795
- const result = shipCast.checkAcknowledgmentFromAllHosts(hostAcknowledgments, ['tm_foo', 'tm_bar'], 'all');
796
- expect(result).toBe(true);
797
- });
798
- it('should return false when any host does not acknowledge all required topics', () => {
799
- const hostAcknowledgments = {
800
- 'https://host1.com': new Set(['tm_foo']),
801
- 'https://host2.com': new Set(['tm_foo', 'tm_bar'])
802
- };
803
- const result = shipCast.checkAcknowledgmentFromAllHosts(hostAcknowledgments, ['tm_foo', 'tm_bar'], 'all');
804
- expect(result).toBe(false);
805
- });
806
- it('should return true when all hosts acknowledge any of the required topics', () => {
807
- const hostAcknowledgments = {
808
- 'https://host1.com': new Set(['tm_foo']),
809
- 'https://host2.com': new Set(['tm_bar'])
810
- };
811
- const result = shipCast.checkAcknowledgmentFromAllHosts(hostAcknowledgments, ['tm_foo', 'tm_bar'], 'any');
812
- expect(result).toBe(true);
813
- });
814
- it('should return false when any host does not acknowledge any of the required topics', () => {
815
- const hostAcknowledgments = {
816
- 'https://host1.com': new Set(),
817
- 'https://host2.com': new Set(['tm_bar'])
818
- };
819
- const result = shipCast.checkAcknowledgmentFromAllHosts(hostAcknowledgments, ['tm_foo', 'tm_bar'], 'any');
820
- expect(result).toBe(false);
821
- });
822
- });
823
- describe('checkAcknowledgmentFromAnyHost', () => {
824
- it('should return true when at least one host acknowledges all required topics', () => {
825
- const hostAcknowledgments = {
826
- 'https://host1.com': new Set(['tm_foo', 'tm_bar']),
827
- 'https://host2.com': new Set(['tm_foo'])
828
- };
829
- const result = shipCast.checkAcknowledgmentFromAnyHost(hostAcknowledgments, ['tm_foo', 'tm_bar'], 'all');
830
- expect(result).toBe(true);
831
- });
832
- it('should return false when no host acknowledges all required topics', () => {
833
- const hostAcknowledgments = {
834
- 'https://host1.com': new Set(['tm_foo']),
835
- 'https://host2.com': new Set(['tm_bar'])
836
- };
837
- const result = shipCast.checkAcknowledgmentFromAnyHost(hostAcknowledgments, ['tm_foo', 'tm_bar'], 'all');
838
- expect(result).toBe(false);
839
- });
840
- it('should return true when at least one host acknowledges any of the required topics', () => {
841
- const hostAcknowledgments = {
842
- 'https://host1.com': new Set(['tm_foo']),
843
- 'https://host2.com': new Set()
844
- };
845
- const result = shipCast.checkAcknowledgmentFromAnyHost(hostAcknowledgments, ['tm_foo', 'tm_bar'], 'any');
846
- expect(result).toBe(true);
847
- });
848
- it('should return false when no host acknowledges any of the required topics', () => {
849
- const hostAcknowledgments = {
850
- 'https://host1.com': new Set(),
851
- 'https://host2.com': new Set()
852
- };
853
- const result = shipCast.checkAcknowledgmentFromAnyHost(hostAcknowledgments, ['tm_foo', 'tm_bar'], 'any');
854
- expect(result).toBe(false);
855
- });
856
- });
857
- describe('checkAcknowledgmentFromSpecificHosts', () => {
858
- it('should return true when specific hosts acknowledge all required topics', () => {
859
- const hostAcknowledgments = {
860
- 'https://host1.com': new Set(['tm_foo', 'tm_bar']),
861
- 'https://host2.com': new Set(['tm_foo'])
862
- };
863
- const requirements = {
864
- 'https://host1.com': ['tm_foo', 'tm_bar']
865
- };
866
- const result = shipCast.checkAcknowledgmentFromSpecificHosts(hostAcknowledgments, requirements);
867
- expect(result).toBe(true);
868
- });
869
- it('should return false when specific hosts do not acknowledge all required topics', () => {
870
- const hostAcknowledgments = {
871
- 'https://host1.com': new Set(['tm_foo']),
872
- 'https://host2.com': new Set(['tm_bar'])
873
- };
874
- const requirements = {
875
- 'https://host1.com': ['tm_foo', 'tm_bar']
876
- };
877
- const result = shipCast.checkAcknowledgmentFromSpecificHosts(hostAcknowledgments, requirements);
878
- expect(result).toBe(false);
879
- });
880
- it('should return true when specific hosts acknowledge any of the required topics', () => {
881
- const hostAcknowledgments = {
882
- 'https://host1.com': new Set(['tm_foo']),
883
- 'https://host2.com': new Set(['tm_bar'])
884
- };
885
- const requirements = {
886
- 'https://host1.com': 'any'
887
- };
888
- const result = shipCast.checkAcknowledgmentFromSpecificHosts(hostAcknowledgments, requirements);
889
- expect(result).toBe(true);
890
- });
891
- it('should return false when specific hosts do not acknowledge any of the required topics', () => {
892
- const hostAcknowledgments = {
893
- 'https://host1.com': new Set(),
894
- 'https://host2.com': new Set(['tm_bar'])
895
- };
896
- const requirements = {
897
- 'https://host1.com': 'any'
898
- };
899
- const result = shipCast.checkAcknowledgmentFromSpecificHosts(hostAcknowledgments, requirements);
900
- expect(result).toBe(false);
901
- });
902
- it('should handle multiple hosts with different requirements', () => {
903
- const hostAcknowledgments = {
904
- 'https://host1.com': new Set(['tm_foo']),
905
- 'https://host2.com': new Set(['tm_bar']),
906
- 'https://host3.com': new Set(['tm_foo', 'tm_bar'])
907
- };
908
- const requirements = {
909
- 'https://host1.com': ['tm_foo'],
910
- 'https://host2.com': 'any',
911
- 'https://host3.com': 'all'
912
- };
913
- const result = shipCast.checkAcknowledgmentFromSpecificHosts(hostAcknowledgments, requirements);
914
- expect(result).toBe(true);
915
- });
916
- it('should return false if any specific host fails to meet its requirement', () => {
917
- const hostAcknowledgments = {
918
- 'https://host1.com': new Set(['tm_foo']),
919
- 'https://host2.com': new Set(),
920
- 'https://host3.com': new Set(['tm_foo'])
921
- };
922
- const requirements = {
923
- 'https://host1.com': ['tm_foo'],
924
- 'https://host2.com': 'any',
925
- 'https://host3.com': ['tm_foo', 'tm_bar']
926
- };
927
- const result = shipCast.checkAcknowledgmentFromSpecificHosts(hostAcknowledgments, requirements);
928
- expect(result).toBe(false);
929
- });
930
- });
931
- });
932
- });
933
- //# sourceMappingURL=SHIPBroadcaster.test.js.map