@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,1471 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- const LookupResolver_1 = __importStar(require("../LookupResolver"));
40
- const OverlayAdminTokenTemplate_1 = __importDefault(require("../../overlay-tools/OverlayAdminTokenTemplate"));
41
- const CompletedProtoWallet_1 = require("../../auth/certificates/__tests/CompletedProtoWallet");
42
- const index_1 = require("../../primitives/index");
43
- const index_2 = require("../../transaction/index");
44
- const index_3 = require("../../script/index");
45
- const mockFacilitator = {
46
- lookup: jest.fn()
47
- };
48
- const sampleBeef1 = new index_2.Transaction(1, [], [{ lockingScript: index_3.LockingScript.fromHex('88'), satoshis: 1 }], 0).toBEEF();
49
- const sampleBeef2 = new index_2.Transaction(1, [], [{ lockingScript: index_3.LockingScript.fromHex('88'), satoshis: 2 }], 0).toBEEF();
50
- const sampleBeef3 = new index_2.Transaction(1, [], [{ lockingScript: index_3.LockingScript.fromHex('88'), satoshis: 3 }], 0).toBEEF();
51
- const sampleBeef4 = new index_2.Transaction(1, [], [{ lockingScript: index_3.LockingScript.fromHex('88'), satoshis: 4 }], 0).toBEEF();
52
- describe('LookupResolver', () => {
53
- beforeEach(() => {
54
- mockFacilitator.lookup.mockReset();
55
- });
56
- it('should query the host and return the response when a single host is found via SLAP', async () => {
57
- const slapHostKey = new index_1.PrivateKey(42);
58
- const slapWallet = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey);
59
- const slapLib = new OverlayAdminTokenTemplate_1.default(slapWallet);
60
- const slapScript = await slapLib.lock('SLAP', 'https://slaphost.com', 'ls_foo');
61
- const slapTx = new index_2.Transaction(1, [], [
62
- {
63
- lockingScript: slapScript,
64
- satoshis: 1
65
- }
66
- ], 0);
67
- mockFacilitator.lookup
68
- .mockReturnValueOnce({
69
- type: 'output-list',
70
- outputs: [
71
- {
72
- outputIndex: 0,
73
- beef: slapTx.toBEEF()
74
- }
75
- ]
76
- })
77
- .mockReturnValueOnce({
78
- type: 'output-list',
79
- outputs: [
80
- {
81
- beef: sampleBeef1,
82
- outputIndex: 0
83
- }
84
- ]
85
- });
86
- const r = new LookupResolver_1.default({
87
- facilitator: mockFacilitator,
88
- slapTrackers: ['https://mock.slap']
89
- });
90
- const res = await r.query({
91
- service: 'ls_foo',
92
- query: { test: 1 }
93
- });
94
- expect(res).toEqual({
95
- type: 'output-list',
96
- outputs: [
97
- {
98
- beef: sampleBeef1,
99
- outputIndex: 0
100
- }
101
- ]
102
- });
103
- expect(mockFacilitator.lookup.mock.calls).toEqual([
104
- [
105
- 'https://mock.slap',
106
- {
107
- service: 'ls_slap',
108
- query: {
109
- service: 'ls_foo'
110
- }
111
- },
112
- 1000
113
- ],
114
- [
115
- 'https://slaphost.com',
116
- {
117
- service: 'ls_foo',
118
- query: {
119
- test: 1
120
- }
121
- },
122
- undefined
123
- ]
124
- ]);
125
- });
126
- it('should query from provided additional hosts while still making use of SLAP', async () => {
127
- const slapHostKey = new index_1.PrivateKey(42);
128
- const slapWallet = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey);
129
- const slapLib = new OverlayAdminTokenTemplate_1.default(slapWallet);
130
- const slapScript = await slapLib.lock('SLAP', 'https://slaphost.com', 'ls_foo');
131
- const slapTx = new index_2.Transaction(1, [], [
132
- {
133
- lockingScript: slapScript,
134
- satoshis: 1
135
- }
136
- ], 0);
137
- mockFacilitator.lookup
138
- .mockReturnValueOnce({
139
- type: 'output-list',
140
- outputs: [
141
- {
142
- outputIndex: 0,
143
- beef: slapTx.toBEEF()
144
- }
145
- ]
146
- })
147
- .mockReturnValueOnce({
148
- type: 'output-list',
149
- outputs: [
150
- {
151
- beef: sampleBeef1,
152
- outputIndex: 0
153
- }
154
- ]
155
- })
156
- .mockReturnValueOnce({
157
- type: 'output-list',
158
- outputs: [
159
- {
160
- // duplicate the output the other host knows about
161
- beef: sampleBeef1,
162
- outputIndex: 0
163
- },
164
- {
165
- // the additional host also knows about a second output
166
- beef: sampleBeef2,
167
- outputIndex: 1033
168
- }
169
- ]
170
- });
171
- const r = new LookupResolver_1.default({
172
- facilitator: mockFacilitator,
173
- slapTrackers: ['https://mock.slap'],
174
- additionalHosts: {
175
- ls_foo: ['https://additional.host']
176
- }
177
- });
178
- const res = await r.query({
179
- service: 'ls_foo',
180
- query: { test: 1 }
181
- });
182
- expect(res).toEqual({
183
- type: 'output-list',
184
- outputs: [
185
- {
186
- // expect the first output to appear only once, and be de-duplicated
187
- beef: sampleBeef1,
188
- outputIndex: 0
189
- },
190
- {
191
- // also expect the second output from the additional host
192
- beef: sampleBeef2,
193
- outputIndex: 1033
194
- }
195
- ]
196
- });
197
- expect(mockFacilitator.lookup.mock.calls).toEqual([
198
- [
199
- 'https://mock.slap',
200
- {
201
- service: 'ls_slap',
202
- query: {
203
- service: 'ls_foo'
204
- }
205
- },
206
- 1000
207
- ],
208
- [
209
- 'https://slaphost.com',
210
- {
211
- service: 'ls_foo',
212
- query: {
213
- test: 1
214
- }
215
- },
216
- undefined
217
- ],
218
- [
219
- // additional host should also have been queried
220
- 'https://additional.host',
221
- {
222
- service: 'ls_foo',
223
- query: {
224
- test: 1
225
- }
226
- },
227
- undefined
228
- ]
229
- ]);
230
- });
231
- it('should utilize host overrides instead of SLAP', async () => {
232
- mockFacilitator.lookup.mockReturnValueOnce({
233
- type: 'output-list',
234
- outputs: [
235
- {
236
- beef: sampleBeef1,
237
- outputIndex: 0
238
- }
239
- ]
240
- });
241
- const r = new LookupResolver_1.default({
242
- facilitator: mockFacilitator,
243
- slapTrackers: ['https://mock.slap'],
244
- hostOverrides: {
245
- ls_foo: ['https://override.host']
246
- }
247
- });
248
- const res = await r.query({
249
- service: 'ls_foo',
250
- query: { test: 1 }
251
- });
252
- expect(res).toEqual({
253
- type: 'output-list',
254
- outputs: [
255
- {
256
- beef: sampleBeef1,
257
- outputIndex: 0
258
- }
259
- ]
260
- });
261
- expect(mockFacilitator.lookup.mock.calls).toEqual([
262
- [
263
- 'https://override.host',
264
- {
265
- service: 'ls_foo',
266
- query: {
267
- test: 1
268
- }
269
- },
270
- undefined
271
- ]
272
- ]);
273
- });
274
- it('should allow using host overrides with additional hosts at the same time', async () => {
275
- mockFacilitator.lookup
276
- .mockReturnValueOnce({
277
- type: 'output-list', // from the override host
278
- outputs: [
279
- {
280
- beef: sampleBeef1,
281
- outputIndex: 0
282
- }
283
- ]
284
- })
285
- .mockReturnValueOnce({
286
- type: 'output-list', // from the additional host
287
- outputs: [
288
- {
289
- beef: sampleBeef1,
290
- outputIndex: 0
291
- },
292
- {
293
- beef: sampleBeef2,
294
- outputIndex: 1033
295
- }
296
- ]
297
- });
298
- const r = new LookupResolver_1.default({
299
- facilitator: mockFacilitator,
300
- slapTrackers: ['https://mock.slap'],
301
- additionalHosts: {
302
- ls_foo: ['https://additional.host']
303
- },
304
- hostOverrides: {
305
- ls_foo: ['https://override.host']
306
- }
307
- });
308
- const res = await r.query({
309
- service: 'ls_foo',
310
- query: { test: 1 }
311
- });
312
- expect(res).toEqual({
313
- type: 'output-list',
314
- outputs: [
315
- {
316
- // expect the first output to appear only once, and be de-duplicated
317
- beef: sampleBeef1,
318
- outputIndex: 0
319
- },
320
- {
321
- // also expect the second output from the additional host
322
- beef: sampleBeef2,
323
- outputIndex: 1033
324
- }
325
- ]
326
- });
327
- expect(mockFacilitator.lookup.mock.calls).toEqual([
328
- [
329
- 'https://override.host',
330
- {
331
- service: 'ls_foo',
332
- query: {
333
- test: 1
334
- }
335
- },
336
- undefined
337
- ],
338
- [
339
- // additional host should also have been queried
340
- 'https://additional.host',
341
- {
342
- service: 'ls_foo',
343
- query: {
344
- test: 1
345
- }
346
- },
347
- undefined
348
- ]
349
- ]);
350
- });
351
- it('should handle multiple SLAP trackers and aggregate results from multiple hosts', async () => {
352
- const slapHostKey1 = new index_1.PrivateKey(42);
353
- const slapWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey1);
354
- const slapLib1 = new OverlayAdminTokenTemplate_1.default(slapWallet1);
355
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo');
356
- const slapTx1 = new index_2.Transaction(1, [], [
357
- {
358
- lockingScript: slapScript1,
359
- satoshis: 1
360
- }
361
- ], 0);
362
- const slapHostKey2 = new index_1.PrivateKey(43);
363
- const slapWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey2);
364
- const slapLib2 = new OverlayAdminTokenTemplate_1.default(slapWallet2);
365
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo');
366
- const slapTx2 = new index_2.Transaction(1, [], [
367
- {
368
- lockingScript: slapScript2,
369
- satoshis: 1
370
- }
371
- ], 0);
372
- // SLAP trackers return hosts
373
- mockFacilitator.lookup
374
- .mockReturnValueOnce({
375
- type: 'output-list',
376
- outputs: [
377
- {
378
- outputIndex: 0,
379
- beef: slapTx1.toBEEF()
380
- }
381
- ]
382
- })
383
- .mockReturnValueOnce({
384
- type: 'output-list',
385
- outputs: [
386
- {
387
- outputIndex: 0,
388
- beef: slapTx2.toBEEF()
389
- }
390
- ]
391
- });
392
- // Hosts respond to the query
393
- mockFacilitator.lookup
394
- .mockReturnValueOnce({
395
- type: 'output-list',
396
- outputs: [
397
- {
398
- beef: sampleBeef3,
399
- outputIndex: 0
400
- }
401
- ]
402
- })
403
- .mockReturnValueOnce({
404
- type: 'output-list',
405
- outputs: [
406
- {
407
- beef: sampleBeef4,
408
- outputIndex: 1
409
- }
410
- ]
411
- });
412
- const r = new LookupResolver_1.default({
413
- facilitator: mockFacilitator,
414
- slapTrackers: ['https://mock.slap1', 'https://mock.slap2']
415
- });
416
- const res = await r.query({
417
- service: 'ls_foo',
418
- query: { test: 1 }
419
- });
420
- expect(res).toEqual({
421
- type: 'output-list',
422
- outputs: [
423
- { beef: sampleBeef3, outputIndex: 0 },
424
- { beef: sampleBeef4, outputIndex: 1 }
425
- ]
426
- });
427
- expect(mockFacilitator.lookup.mock.calls).toEqual([
428
- [
429
- 'https://mock.slap1',
430
- {
431
- service: 'ls_slap',
432
- query: {
433
- service: 'ls_foo'
434
- }
435
- },
436
- 1000
437
- ],
438
- [
439
- 'https://mock.slap2',
440
- {
441
- service: 'ls_slap',
442
- query: {
443
- service: 'ls_foo'
444
- }
445
- },
446
- 1000
447
- ],
448
- [
449
- 'https://slaphost1.com',
450
- {
451
- service: 'ls_foo',
452
- query: {
453
- test: 1
454
- }
455
- },
456
- undefined
457
- ],
458
- [
459
- 'https://slaphost2.com',
460
- {
461
- service: 'ls_foo',
462
- query: {
463
- test: 1
464
- }
465
- },
466
- undefined
467
- ]
468
- ]);
469
- });
470
- it('should de-duplicate outputs from multiple hosts', async () => {
471
- const slapHostKey1 = new index_1.PrivateKey(42);
472
- const slapWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey1);
473
- const slapLib1 = new OverlayAdminTokenTemplate_1.default(slapWallet1);
474
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo');
475
- const slapTx1 = new index_2.Transaction(1, [], [
476
- {
477
- lockingScript: slapScript1,
478
- satoshis: 1
479
- }
480
- ], 0);
481
- const slapHostKey2 = new index_1.PrivateKey(43);
482
- const slapWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey2);
483
- const slapLib2 = new OverlayAdminTokenTemplate_1.default(slapWallet2);
484
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo');
485
- const slapTx2 = new index_2.Transaction(1, [], [
486
- {
487
- lockingScript: slapScript2,
488
- satoshis: 1
489
- }
490
- ], 0);
491
- // SLAP tracker returns two hosts
492
- mockFacilitator.lookup.mockReturnValueOnce({
493
- type: 'output-list',
494
- outputs: [
495
- { outputIndex: 0, beef: slapTx1.toBEEF() },
496
- { outputIndex: 0, beef: slapTx2.toBEEF() }
497
- ]
498
- });
499
- // Both hosts return the same output
500
- const duplicateOutput = { beef: sampleBeef3, outputIndex: 0 };
501
- mockFacilitator.lookup
502
- .mockReturnValueOnce({
503
- type: 'output-list',
504
- outputs: [duplicateOutput]
505
- })
506
- .mockReturnValueOnce({
507
- type: 'output-list',
508
- outputs: [duplicateOutput]
509
- });
510
- const r = new LookupResolver_1.default({
511
- facilitator: mockFacilitator,
512
- slapTrackers: ['https://mock.slap']
513
- });
514
- const res = await r.query({
515
- service: 'ls_foo',
516
- query: { test: 1 }
517
- });
518
- expect(res).toEqual({
519
- type: 'output-list',
520
- outputs: [duplicateOutput]
521
- });
522
- expect(mockFacilitator.lookup.mock.calls).toEqual([
523
- [
524
- 'https://mock.slap',
525
- {
526
- service: 'ls_slap',
527
- query: {
528
- service: 'ls_foo'
529
- }
530
- },
531
- 1000
532
- ],
533
- [
534
- 'https://slaphost1.com',
535
- {
536
- service: 'ls_foo',
537
- query: {
538
- test: 1
539
- }
540
- },
541
- undefined
542
- ],
543
- [
544
- 'https://slaphost2.com',
545
- {
546
- service: 'ls_foo',
547
- query: {
548
- test: 1
549
- }
550
- },
551
- undefined
552
- ]
553
- ]);
554
- });
555
- it('should handle hosts returning different response types', async () => {
556
- const slapHostKey1 = new index_1.PrivateKey(42);
557
- const slapWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey1);
558
- const slapLib1 = new OverlayAdminTokenTemplate_1.default(slapWallet1);
559
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo');
560
- const slapTx1 = new index_2.Transaction(1, [], [
561
- {
562
- lockingScript: slapScript1,
563
- satoshis: 1
564
- }
565
- ], 0);
566
- const slapHostKey2 = new index_1.PrivateKey(43);
567
- const slapWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey2);
568
- const slapLib2 = new OverlayAdminTokenTemplate_1.default(slapWallet2);
569
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo');
570
- const slapTx2 = new index_2.Transaction(1, [], [
571
- {
572
- lockingScript: slapScript2,
573
- satoshis: 1
574
- }
575
- ], 0);
576
- // SLAP tracker returns two hosts
577
- mockFacilitator.lookup.mockReturnValueOnce({
578
- type: 'output-list',
579
- outputs: [
580
- { outputIndex: 0, beef: slapTx1.toBEEF() },
581
- { outputIndex: 0, beef: slapTx2.toBEEF() }
582
- ]
583
- });
584
- // First host returns 'freeform' response
585
- mockFacilitator.lookup.mockReturnValueOnce({
586
- type: 'freeform',
587
- result: { message: 'Freeform response from host1' }
588
- });
589
- // Second host returns 'output-list' response
590
- mockFacilitator.lookup.mockReturnValueOnce({
591
- type: 'output-list',
592
- outputs: [{ beef: sampleBeef3, outputIndex: 0 }]
593
- });
594
- const r = new LookupResolver_1.default({
595
- facilitator: mockFacilitator,
596
- slapTrackers: ['https://mock.slap']
597
- });
598
- const res = await r.query({
599
- service: 'ls_foo',
600
- query: { test: 1 }
601
- });
602
- // Since the first response is 'freeform', it should return that response
603
- expect(res).toEqual({
604
- type: 'freeform',
605
- result: { message: 'Freeform response from host1' }
606
- });
607
- expect(mockFacilitator.lookup.mock.calls).toEqual([
608
- [
609
- 'https://mock.slap',
610
- {
611
- service: 'ls_slap',
612
- query: {
613
- service: 'ls_foo'
614
- }
615
- },
616
- 1000
617
- ],
618
- [
619
- 'https://slaphost1.com',
620
- {
621
- service: 'ls_foo',
622
- query: {
623
- test: 1
624
- }
625
- },
626
- undefined
627
- ],
628
- [
629
- 'https://slaphost2.com',
630
- {
631
- service: 'ls_foo',
632
- query: {
633
- test: 1
634
- }
635
- },
636
- undefined
637
- ]
638
- ]);
639
- });
640
- it('should ignore freeform responses when first response is output-list', async () => {
641
- const slapHostKey1 = new index_1.PrivateKey(42);
642
- const slapWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey1);
643
- const slapLib1 = new OverlayAdminTokenTemplate_1.default(slapWallet1);
644
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo');
645
- const slapTx1 = new index_2.Transaction(1, [], [
646
- {
647
- lockingScript: slapScript1,
648
- satoshis: 1
649
- }
650
- ], 0);
651
- const slapHostKey2 = new index_1.PrivateKey(43);
652
- const slapWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey2);
653
- const slapLib2 = new OverlayAdminTokenTemplate_1.default(slapWallet2);
654
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo');
655
- const slapTx2 = new index_2.Transaction(1, [], [
656
- {
657
- lockingScript: slapScript2,
658
- satoshis: 1
659
- }
660
- ], 0);
661
- // SLAP tracker returns two hosts
662
- mockFacilitator.lookup.mockReturnValueOnce({
663
- type: 'output-list',
664
- outputs: [
665
- { outputIndex: 0, beef: slapTx1.toBEEF() },
666
- { outputIndex: 0, beef: slapTx2.toBEEF() }
667
- ]
668
- });
669
- // First host returns 'output-list' response
670
- mockFacilitator.lookup.mockReturnValueOnce({
671
- type: 'output-list',
672
- outputs: [{ beef: sampleBeef3, outputIndex: 0 }]
673
- });
674
- // Second host returns 'freeform' response
675
- mockFacilitator.lookup.mockReturnValueOnce({
676
- type: 'freeform',
677
- result: { message: 'Freeform response from host2' }
678
- });
679
- const r = new LookupResolver_1.default({
680
- facilitator: mockFacilitator,
681
- slapTrackers: ['https://mock.slap']
682
- });
683
- const res = await r.query({
684
- service: 'ls_foo',
685
- query: { test: 1 }
686
- });
687
- expect(res).toEqual({
688
- type: 'output-list',
689
- outputs: [{ beef: sampleBeef3, outputIndex: 0 }]
690
- });
691
- expect(mockFacilitator.lookup.mock.calls).toEqual([
692
- [
693
- 'https://mock.slap',
694
- {
695
- service: 'ls_slap',
696
- query: {
697
- service: 'ls_foo'
698
- }
699
- },
700
- 1000
701
- ],
702
- [
703
- 'https://slaphost1.com',
704
- {
705
- service: 'ls_foo',
706
- query: {
707
- test: 1
708
- }
709
- },
710
- undefined
711
- ],
712
- [
713
- 'https://slaphost2.com',
714
- {
715
- service: 'ls_foo',
716
- query: {
717
- test: 1
718
- }
719
- },
720
- undefined
721
- ]
722
- ]);
723
- });
724
- it('should throw an error when no competent hosts are found', async () => {
725
- // SLAP tracker returns empty output-list
726
- mockFacilitator.lookup.mockReturnValueOnce({
727
- type: 'output-list',
728
- outputs: []
729
- });
730
- const r = new LookupResolver_1.default({
731
- facilitator: mockFacilitator,
732
- slapTrackers: ['https://mock.slap']
733
- });
734
- await expect(r.query({
735
- service: 'ls_foo',
736
- query: { test: 1 }
737
- })).rejects.toThrow('No competent hosts found by the SLAP trackers for lookup service: ls_foo');
738
- expect(mockFacilitator.lookup.mock.calls).toEqual([
739
- [
740
- 'https://mock.slap',
741
- {
742
- service: 'ls_slap',
743
- query: {
744
- service: 'ls_foo'
745
- }
746
- },
747
- 1000
748
- ]
749
- ]);
750
- });
751
- it('should not throw an error when one host fails to respond', async () => {
752
- const slapHostKey1 = new index_1.PrivateKey(42);
753
- const slapWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey1);
754
- const slapLib1 = new OverlayAdminTokenTemplate_1.default(slapWallet1);
755
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo');
756
- const slapTx1 = new index_2.Transaction(1, [], [
757
- {
758
- lockingScript: slapScript1,
759
- satoshis: 1
760
- }
761
- ], 0);
762
- const slapHostKey2 = new index_1.PrivateKey(43);
763
- const slapWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey2);
764
- const slapLib2 = new OverlayAdminTokenTemplate_1.default(slapWallet2);
765
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo');
766
- const slapTx2 = new index_2.Transaction(1, [], [
767
- {
768
- lockingScript: slapScript2,
769
- satoshis: 1
770
- }
771
- ], 0);
772
- // SLAP tracker returns two hosts
773
- mockFacilitator.lookup.mockReturnValueOnce({
774
- type: 'output-list',
775
- outputs: [
776
- { outputIndex: 0, beef: slapTx1.toBEEF() },
777
- { outputIndex: 0, beef: slapTx2.toBEEF() }
778
- ]
779
- });
780
- // First host responds successfully
781
- mockFacilitator.lookup.mockReturnValueOnce({
782
- type: 'output-list',
783
- outputs: [{ beef: sampleBeef3, outputIndex: 0 }]
784
- });
785
- // Second host fails to respond
786
- mockFacilitator.lookup.mockImplementationOnce(async () => {
787
- throw new Error('Host2 failed to respond');
788
- });
789
- const r = new LookupResolver_1.default({
790
- facilitator: mockFacilitator,
791
- slapTrackers: ['https://mock.slap']
792
- });
793
- const res = await r.query({
794
- service: 'ls_foo',
795
- query: { test: 1 }
796
- });
797
- expect(res).toEqual({
798
- type: 'output-list',
799
- outputs: [
800
- {
801
- beef: sampleBeef3,
802
- outputIndex: 0
803
- }
804
- ]
805
- });
806
- expect(mockFacilitator.lookup.mock.calls).toEqual([
807
- [
808
- 'https://mock.slap',
809
- {
810
- service: 'ls_slap',
811
- query: {
812
- service: 'ls_foo'
813
- }
814
- },
815
- 1000
816
- ],
817
- [
818
- 'https://slaphost1.com',
819
- {
820
- service: 'ls_foo',
821
- query: {
822
- test: 1
823
- }
824
- },
825
- undefined
826
- ],
827
- [
828
- 'https://slaphost2.com',
829
- {
830
- service: 'ls_foo',
831
- query: {
832
- test: 1
833
- }
834
- },
835
- undefined
836
- ]
837
- ]);
838
- });
839
- it('Directly uses SLAP resolvers to facilitate SLAP queries', async () => {
840
- mockFacilitator.lookup.mockReturnValueOnce({
841
- type: 'output-list',
842
- outputs: [
843
- {
844
- beef: sampleBeef1,
845
- outputIndex: 0
846
- }
847
- ]
848
- });
849
- const r = new LookupResolver_1.default({
850
- facilitator: mockFacilitator,
851
- slapTrackers: ['https://mock.slap']
852
- });
853
- const res = await r.query({
854
- service: 'ls_slap',
855
- query: { test: 1 }
856
- });
857
- expect(res).toEqual({
858
- type: 'output-list',
859
- outputs: [
860
- {
861
- beef: sampleBeef1,
862
- outputIndex: 0
863
- }
864
- ]
865
- });
866
- expect(mockFacilitator.lookup.mock.calls).toEqual([
867
- [
868
- 'https://mock.slap',
869
- {
870
- service: 'ls_slap',
871
- query: {
872
- test: 1
873
- }
874
- },
875
- undefined
876
- ]
877
- ]);
878
- });
879
- it('should throw an error when SLAP tracker returns invalid response', async () => {
880
- // SLAP tracker returns 'freeform' response
881
- mockFacilitator.lookup.mockReturnValueOnce({
882
- type: 'freeform',
883
- result: { message: 'Invalid response' }
884
- });
885
- const r = new LookupResolver_1.default({
886
- facilitator: mockFacilitator,
887
- slapTrackers: ['https://mock.slap']
888
- });
889
- // Because a freeform response is not valid, the SLAP trackers have not found any competent hosts.
890
- await expect(r.query({
891
- service: 'ls_foo',
892
- query: { test: 1 }
893
- })).rejects.toThrow('No competent hosts found by the SLAP trackers for lookup service: ls_foo');
894
- expect(mockFacilitator.lookup.mock.calls).toEqual([
895
- [
896
- 'https://mock.slap',
897
- {
898
- service: 'ls_slap',
899
- query: {
900
- service: 'ls_foo'
901
- }
902
- },
903
- 1000
904
- ]
905
- ]);
906
- });
907
- it('should throw an error when HTTPSOverlayLookupFacilitator is used with non-HTTPS URL', async () => {
908
- const facilitator = new LookupResolver_1.HTTPSOverlayLookupFacilitator();
909
- await expect(facilitator.lookup('http://insecure.url', { service: 'test', query: {} })).rejects.toThrow('HTTPS facilitator can only use URLs that start with "https:"');
910
- });
911
- describe('LookupResolver Resiliency', () => {
912
- beforeEach(() => {
913
- mockFacilitator.lookup.mockReset();
914
- });
915
- it('should continue to function when one SLAP tracker fails', async () => {
916
- const slapHostKey = new index_1.PrivateKey(42);
917
- const slapWallet = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey);
918
- const slapLib = new OverlayAdminTokenTemplate_1.default(slapWallet);
919
- const slapScript = await slapLib.lock('SLAP', 'https://slaphost.com', 'ls_foo');
920
- const slapTx = new index_2.Transaction(1, [], [
921
- {
922
- lockingScript: slapScript,
923
- satoshis: 1
924
- }
925
- ], 0);
926
- // First SLAP tracker fails
927
- mockFacilitator.lookup.mockImplementationOnce(async () => {
928
- throw new Error('SLAP tracker failed');
929
- });
930
- // Second SLAP tracker succeeds
931
- mockFacilitator.lookup.mockReturnValueOnce({
932
- type: 'output-list',
933
- outputs: [
934
- {
935
- outputIndex: 0,
936
- beef: slapTx.toBEEF()
937
- }
938
- ]
939
- });
940
- // Host responds successfully
941
- mockFacilitator.lookup.mockReturnValueOnce({
942
- type: 'output-list',
943
- outputs: [
944
- {
945
- beef: sampleBeef3,
946
- outputIndex: 0
947
- }
948
- ]
949
- });
950
- const r = new LookupResolver_1.default({
951
- facilitator: mockFacilitator,
952
- slapTrackers: ['https://mock.slap1', 'https://mock.slap2']
953
- });
954
- const res = await r.query({
955
- service: 'ls_foo',
956
- query: { test: 1 }
957
- });
958
- expect(res).toEqual({
959
- type: 'output-list',
960
- outputs: [
961
- {
962
- beef: sampleBeef3,
963
- outputIndex: 0
964
- }
965
- ]
966
- });
967
- expect(mockFacilitator.lookup.mock.calls).toEqual([
968
- [
969
- 'https://mock.slap1',
970
- {
971
- service: 'ls_slap',
972
- query: {
973
- service: 'ls_foo'
974
- }
975
- },
976
- 1000
977
- ],
978
- [
979
- 'https://mock.slap2',
980
- {
981
- service: 'ls_slap',
982
- query: {
983
- service: 'ls_foo'
984
- }
985
- },
986
- 1000
987
- ],
988
- [
989
- 'https://slaphost.com',
990
- {
991
- service: 'ls_foo',
992
- query: {
993
- test: 1
994
- }
995
- },
996
- undefined
997
- ]
998
- ]);
999
- });
1000
- it('should aggregate outputs from hosts that respond, even if some SLAP trackers lie to our face', async () => {
1001
- const slapHostKey1 = new index_1.PrivateKey(42);
1002
- const slapWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey1);
1003
- const slapLib1 = new OverlayAdminTokenTemplate_1.default(slapWallet1);
1004
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo');
1005
- const slapTx1 = new index_2.Transaction(1, [], [
1006
- {
1007
- lockingScript: slapScript1,
1008
- satoshis: 1
1009
- }
1010
- ], 0);
1011
- const slapHostKey2 = new index_1.PrivateKey(43);
1012
- const slapWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey2);
1013
- const slapLib2 = new OverlayAdminTokenTemplate_1.default(slapWallet2);
1014
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo');
1015
- const slapTx2 = new index_2.Transaction(1, [], [
1016
- {
1017
- lockingScript: slapScript2,
1018
- satoshis: 1
1019
- }
1020
- ], 0);
1021
- const slapHostKey3 = new index_1.PrivateKey(44);
1022
- const slapWallet3 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey3);
1023
- const slapLib3 = new OverlayAdminTokenTemplate_1.default(slapWallet3);
1024
- const slapScript3 = await slapLib3.lock('SLAP', 'https://slaphost3.pantsonfire.com', 'ls_not_what_i_asked_you_for');
1025
- const slapTx3 = new index_2.Transaction(1, [], [
1026
- {
1027
- lockingScript: slapScript3,
1028
- satoshis: 1
1029
- }
1030
- ], 0);
1031
- // SLAP trackers return hosts
1032
- mockFacilitator.lookup.mockReturnValueOnce({
1033
- type: 'output-list',
1034
- outputs: [
1035
- { outputIndex: 0, beef: slapTx1.toBEEF() },
1036
- { outputIndex: 0, beef: slapTx2.toBEEF() },
1037
- { outputIndex: 0, beef: slapTx3.toBEEF() }
1038
- ]
1039
- });
1040
- // First host responds successfully
1041
- mockFacilitator.lookup.mockReturnValueOnce({
1042
- type: 'output-list',
1043
- outputs: [{ beef: sampleBeef3, outputIndex: 0 }]
1044
- });
1045
- // Second host fails
1046
- mockFacilitator.lookup.mockImplementationOnce(async () => {
1047
- throw new Error('Host2 failed');
1048
- });
1049
- const r = new LookupResolver_1.default({
1050
- facilitator: mockFacilitator,
1051
- slapTrackers: ['https://mock.slap']
1052
- });
1053
- const res = await r.query({
1054
- service: 'ls_foo',
1055
- query: { test: 1 }
1056
- });
1057
- expect(res).toEqual({
1058
- type: 'output-list',
1059
- outputs: [{ beef: sampleBeef3, outputIndex: 0 }]
1060
- });
1061
- expect(mockFacilitator.lookup.mock.calls).toEqual([
1062
- [
1063
- 'https://mock.slap',
1064
- {
1065
- service: 'ls_slap',
1066
- query: {
1067
- service: 'ls_foo'
1068
- }
1069
- },
1070
- 1000
1071
- ],
1072
- [
1073
- 'https://slaphost1.com',
1074
- {
1075
- service: 'ls_foo',
1076
- query: {
1077
- test: 1
1078
- }
1079
- },
1080
- undefined
1081
- ],
1082
- [
1083
- 'https://slaphost2.com',
1084
- {
1085
- service: 'ls_foo',
1086
- query: {
1087
- test: 1
1088
- }
1089
- },
1090
- undefined
1091
- ]
1092
- ]);
1093
- });
1094
- it('should aggregate outputs from hosts that respond, even if some SLAP trackers give us rotten BEEF', async () => {
1095
- const slapHostKey1 = new index_1.PrivateKey(42);
1096
- const slapWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey1);
1097
- const slapLib1 = new OverlayAdminTokenTemplate_1.default(slapWallet1);
1098
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo');
1099
- const slapTx1 = new index_2.Transaction(1, [], [
1100
- {
1101
- lockingScript: slapScript1,
1102
- satoshis: 1
1103
- }
1104
- ], 0);
1105
- const slapHostKey2 = new index_1.PrivateKey(43);
1106
- const slapWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey2);
1107
- const slapLib2 = new OverlayAdminTokenTemplate_1.default(slapWallet2);
1108
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo');
1109
- const slapTx2 = new index_2.Transaction(1, [], [
1110
- {
1111
- lockingScript: slapScript2,
1112
- satoshis: 1
1113
- }
1114
- ], 0);
1115
- // SLAP trackers return hosts
1116
- mockFacilitator.lookup.mockReturnValueOnce({
1117
- type: 'output-list',
1118
- outputs: [
1119
- { outputIndex: 0, beef: slapTx1.toBEEF() },
1120
- { outputIndex: 0, beef: slapTx2.toBEEF() },
1121
- { outputIndex: 0, beef: [0] } // "rotten" (corrupted) BEEF
1122
- ]
1123
- });
1124
- // First host responds successfully
1125
- mockFacilitator.lookup.mockReturnValueOnce({
1126
- type: 'output-list',
1127
- outputs: [{ beef: sampleBeef3, outputIndex: 0 }]
1128
- });
1129
- // Second host fails
1130
- mockFacilitator.lookup.mockImplementationOnce(async () => {
1131
- throw new Error('Host2 failed');
1132
- });
1133
- const r = new LookupResolver_1.default({
1134
- facilitator: mockFacilitator,
1135
- slapTrackers: ['https://mock.slap']
1136
- });
1137
- const res = await r.query({
1138
- service: 'ls_foo',
1139
- query: { test: 1 }
1140
- });
1141
- expect(res).toEqual({
1142
- type: 'output-list',
1143
- outputs: [{ beef: sampleBeef3, outputIndex: 0 }]
1144
- });
1145
- expect(mockFacilitator.lookup.mock.calls).toEqual([
1146
- [
1147
- 'https://mock.slap',
1148
- {
1149
- service: 'ls_slap',
1150
- query: {
1151
- service: 'ls_foo'
1152
- }
1153
- },
1154
- 1000
1155
- ],
1156
- [
1157
- 'https://slaphost1.com',
1158
- {
1159
- service: 'ls_foo',
1160
- query: {
1161
- test: 1
1162
- }
1163
- },
1164
- undefined
1165
- ],
1166
- [
1167
- 'https://slaphost2.com',
1168
- {
1169
- service: 'ls_foo',
1170
- query: {
1171
- test: 1
1172
- }
1173
- },
1174
- undefined
1175
- ]
1176
- ]);
1177
- });
1178
- it('should aggregate outputs from hosts that respond, even if some fail', async () => {
1179
- const slapHostKey1 = new index_1.PrivateKey(42);
1180
- const slapWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey1);
1181
- const slapLib1 = new OverlayAdminTokenTemplate_1.default(slapWallet1);
1182
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo');
1183
- const slapTx1 = new index_2.Transaction(1, [], [
1184
- {
1185
- lockingScript: slapScript1,
1186
- satoshis: 1
1187
- }
1188
- ], 0);
1189
- const slapHostKey2 = new index_1.PrivateKey(43);
1190
- const slapWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey2);
1191
- const slapLib2 = new OverlayAdminTokenTemplate_1.default(slapWallet2);
1192
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo');
1193
- const slapTx2 = new index_2.Transaction(1, [], [
1194
- {
1195
- lockingScript: slapScript2,
1196
- satoshis: 1
1197
- }
1198
- ], 0);
1199
- // SLAP trackers return hosts
1200
- mockFacilitator.lookup.mockReturnValueOnce({
1201
- type: 'output-list',
1202
- outputs: [
1203
- { outputIndex: 0, beef: slapTx1.toBEEF() },
1204
- { outputIndex: 0, beef: slapTx2.toBEEF() }
1205
- ]
1206
- });
1207
- // First host responds successfully
1208
- mockFacilitator.lookup.mockReturnValueOnce({
1209
- type: 'output-list',
1210
- outputs: [{ beef: sampleBeef3, outputIndex: 0 }]
1211
- });
1212
- // Second host fails
1213
- mockFacilitator.lookup.mockImplementationOnce(async () => {
1214
- throw new Error('Host2 failed');
1215
- });
1216
- const r = new LookupResolver_1.default({
1217
- facilitator: mockFacilitator,
1218
- slapTrackers: ['https://mock.slap']
1219
- });
1220
- const res = await r.query({
1221
- service: 'ls_foo',
1222
- query: { test: 1 }
1223
- });
1224
- expect(res).toEqual({
1225
- type: 'output-list',
1226
- outputs: [{ beef: sampleBeef3, outputIndex: 0 }]
1227
- });
1228
- expect(mockFacilitator.lookup.mock.calls).toEqual([
1229
- [
1230
- 'https://mock.slap',
1231
- {
1232
- service: 'ls_slap',
1233
- query: {
1234
- service: 'ls_foo'
1235
- }
1236
- },
1237
- 1000
1238
- ],
1239
- [
1240
- 'https://slaphost1.com',
1241
- {
1242
- service: 'ls_foo',
1243
- query: {
1244
- test: 1
1245
- }
1246
- },
1247
- undefined
1248
- ],
1249
- [
1250
- 'https://slaphost2.com',
1251
- {
1252
- service: 'ls_foo',
1253
- query: {
1254
- test: 1
1255
- }
1256
- },
1257
- undefined
1258
- ]
1259
- ]);
1260
- });
1261
- it('should handle invalid responses from some hosts and continue with valid ones', async () => {
1262
- const slapHostKey = new index_1.PrivateKey(42);
1263
- const slapWallet = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey);
1264
- const slapLib = new OverlayAdminTokenTemplate_1.default(slapWallet);
1265
- const slapScript = await slapLib.lock('SLAP', 'https://slaphost.com', 'ls_foo');
1266
- const slapTx = new index_2.Transaction(1, [], [
1267
- {
1268
- lockingScript: slapScript,
1269
- satoshis: 1
1270
- }
1271
- ], 0);
1272
- // SLAP tracker returns host
1273
- mockFacilitator.lookup.mockReturnValueOnce({
1274
- type: 'output-list',
1275
- outputs: [{ outputIndex: 0, beef: slapTx.toBEEF() }]
1276
- });
1277
- // Host returns invalid response
1278
- mockFacilitator.lookup.mockReturnValueOnce({
1279
- type: 'invalid-type',
1280
- data: {}
1281
- });
1282
- const r = new LookupResolver_1.default({
1283
- facilitator: mockFacilitator,
1284
- slapTrackers: ['https://mock.slap']
1285
- });
1286
- const res = await r.query({
1287
- service: 'ls_foo',
1288
- query: { test: 1 }
1289
- });
1290
- // Since there are no valid outputs, expect an error
1291
- expect(res).toEqual({
1292
- type: 'output-list',
1293
- outputs: []
1294
- });
1295
- expect(mockFacilitator.lookup.mock.calls).toEqual([
1296
- [
1297
- 'https://mock.slap',
1298
- {
1299
- service: 'ls_slap',
1300
- query: {
1301
- service: 'ls_foo'
1302
- }
1303
- },
1304
- 1000
1305
- ],
1306
- [
1307
- 'https://slaphost.com',
1308
- {
1309
- service: 'ls_foo',
1310
- query: {
1311
- test: 1
1312
- }
1313
- },
1314
- undefined
1315
- ]
1316
- ]);
1317
- });
1318
- it('should handle all SLAP trackers failing and throw an error', async () => {
1319
- // Both SLAP trackers fail
1320
- mockFacilitator.lookup.mockImplementation(async () => {
1321
- throw new Error('SLAP tracker failed');
1322
- });
1323
- const r = new LookupResolver_1.default({
1324
- facilitator: mockFacilitator,
1325
- slapTrackers: ['https://mock.slap1', 'https://mock.slap2']
1326
- });
1327
- await expect(r.query({
1328
- service: 'ls_foo',
1329
- query: { test: 1 }
1330
- })).rejects.toThrow('No competent hosts found by the SLAP trackers for lookup service: ls_foo');
1331
- expect(mockFacilitator.lookup.mock.calls.length).toBe(2);
1332
- });
1333
- it('should handle all hosts failing and throw an error', async () => {
1334
- const slapHostKey = new index_1.PrivateKey(42);
1335
- const slapWallet = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey);
1336
- const slapLib = new OverlayAdminTokenTemplate_1.default(slapWallet);
1337
- const slapScript = await slapLib.lock('SLAP', 'https://slaphost.com', 'ls_foo');
1338
- const slapTx = new index_2.Transaction(1, [], [
1339
- {
1340
- lockingScript: slapScript,
1341
- satoshis: 1
1342
- }
1343
- ], 0);
1344
- // SLAP tracker returns host
1345
- mockFacilitator.lookup.mockReturnValueOnce({
1346
- type: 'output-list',
1347
- outputs: [{ outputIndex: 0, beef: slapTx.toBEEF() }]
1348
- });
1349
- // Host fails
1350
- mockFacilitator.lookup.mockImplementationOnce(async () => {
1351
- throw new Error('Host failed');
1352
- });
1353
- const r = new LookupResolver_1.default({
1354
- facilitator: mockFacilitator,
1355
- slapTrackers: ['https://mock.slap']
1356
- });
1357
- await expect(r.query({
1358
- service: 'ls_foo',
1359
- query: { test: 1 }
1360
- })).rejects.toThrow('No successful responses from any hosts');
1361
- expect(mockFacilitator.lookup.mock.calls.length).toBe(2);
1362
- });
1363
- it('should continue to aggregate outputs when some hosts return invalid outputs', async () => {
1364
- const slapHostKey1 = new index_1.PrivateKey(42);
1365
- const slapWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey1);
1366
- const slapLib1 = new OverlayAdminTokenTemplate_1.default(slapWallet1);
1367
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo');
1368
- const slapTx1 = new index_2.Transaction(1, [], [
1369
- {
1370
- lockingScript: slapScript1,
1371
- satoshis: 1
1372
- }
1373
- ], 0);
1374
- const slapHostKey2 = new index_1.PrivateKey(43);
1375
- const slapWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey2);
1376
- const slapLib2 = new OverlayAdminTokenTemplate_1.default(slapWallet2);
1377
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo');
1378
- const slapTx2 = new index_2.Transaction(1, [], [
1379
- {
1380
- lockingScript: slapScript2,
1381
- satoshis: 1
1382
- }
1383
- ], 0);
1384
- // SLAP tracker returns two hosts
1385
- mockFacilitator.lookup.mockReturnValueOnce({
1386
- type: 'output-list',
1387
- outputs: [
1388
- { outputIndex: 0, beef: slapTx1.toBEEF() },
1389
- { outputIndex: 0, beef: slapTx2.toBEEF() }
1390
- ]
1391
- });
1392
- // First host returns valid output
1393
- mockFacilitator.lookup.mockReturnValueOnce({
1394
- type: 'output-list',
1395
- outputs: [{ beef: sampleBeef3, outputIndex: 0 }]
1396
- });
1397
- // Second host returns invalid output
1398
- mockFacilitator.lookup.mockReturnValueOnce({
1399
- type: 'output-list',
1400
- outputs: [{ invalid: true }]
1401
- });
1402
- const r = new LookupResolver_1.default({
1403
- facilitator: mockFacilitator,
1404
- slapTrackers: ['https://mock.slap']
1405
- });
1406
- const res = await r.query({
1407
- service: 'ls_foo',
1408
- query: { test: 1 }
1409
- });
1410
- expect(res).toEqual({
1411
- type: 'output-list',
1412
- outputs: [{ beef: sampleBeef3, outputIndex: 0 }]
1413
- });
1414
- expect(mockFacilitator.lookup.mock.calls.length).toBe(3);
1415
- });
1416
- it('should continue to aggregate outputs when some hosts return malformed malarkie', async () => {
1417
- const slapHostKey1 = new index_1.PrivateKey(42);
1418
- const slapWallet1 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey1);
1419
- const slapLib1 = new OverlayAdminTokenTemplate_1.default(slapWallet1);
1420
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo');
1421
- const slapTx1 = new index_2.Transaction(1, [], [
1422
- {
1423
- lockingScript: slapScript1,
1424
- satoshis: 1
1425
- }
1426
- ], 0);
1427
- const slapHostKey2 = new index_1.PrivateKey(43);
1428
- const slapWallet2 = new CompletedProtoWallet_1.CompletedProtoWallet(slapHostKey2);
1429
- const slapLib2 = new OverlayAdminTokenTemplate_1.default(slapWallet2);
1430
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo');
1431
- const slapTx2 = new index_2.Transaction(1, [], [
1432
- {
1433
- lockingScript: slapScript2,
1434
- satoshis: 1
1435
- }
1436
- ], 0);
1437
- // SLAP tracker returns two hosts
1438
- mockFacilitator.lookup.mockReturnValueOnce({
1439
- type: 'output-list',
1440
- outputs: [
1441
- { outputIndex: 0, beef: slapTx1.toBEEF() },
1442
- { outputIndex: 0, beef: slapTx2.toBEEF() }
1443
- ]
1444
- });
1445
- // First host returns valid output
1446
- mockFacilitator.lookup.mockReturnValueOnce({
1447
- type: 'output-list',
1448
- outputs: [{ beef: sampleBeef3, outputIndex: 0 }]
1449
- });
1450
- // Second host returns invalid output
1451
- mockFacilitator.lookup.mockReturnValueOnce({
1452
- type: 'output-list',
1453
- output: 'document.createElement('
1454
- });
1455
- const r = new LookupResolver_1.default({
1456
- facilitator: mockFacilitator,
1457
- slapTrackers: ['https://mock.slap']
1458
- });
1459
- const res = await r.query({
1460
- service: 'ls_foo',
1461
- query: { test: 1 }
1462
- });
1463
- expect(res).toEqual({
1464
- type: 'output-list',
1465
- outputs: [{ beef: sampleBeef3, outputIndex: 0 }]
1466
- });
1467
- expect(mockFacilitator.lookup.mock.calls.length).toBe(3);
1468
- });
1469
- });
1470
- });
1471
- //# sourceMappingURL=LookupResolver.test.js.map