@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
@@ -0,0 +1,957 @@
1
+ # Authenticated HTTP Requests with AuthFetch
2
+
3
+ **Duration**: 60 minutes
4
+ **Prerequisites**: Node.js, basic TypeScript knowledge, understanding of HTTP and authentication
5
+ **Learning Goals**:
6
+ - Understand BRC-103/104 authentication protocols
7
+ - Implement authenticated HTTP requests with AuthFetch
8
+ - Handle peer-to-peer authentication and certificate exchange
9
+ - Build secure API communication systems
10
+
11
+ ## When to Use AuthFetch
12
+
13
+ **Use AuthFetch when you need:**
14
+ - BRC-103/104 cryptographic authentication
15
+ - Wallet-signed HTTP requests for identity verification
16
+ - Certificate-based peer authentication
17
+ - Secure peer-to-peer communication between BSV applications
18
+ - APIs that require cryptographic proof of identity
19
+
20
+ **For general HTTP client configuration, use [HTTP Client Configuration Guide](../guides/http-client-configuration.md) instead:**
21
+ - Custom HTTP client setup (Axios, fetch, etc.)
22
+ - Transaction broadcasting via ARC endpoints
23
+ - Environment-specific configuration (timeouts, retries)
24
+ - Testing and mocking HTTP clients
25
+ - Integration with existing HTTP infrastructure
26
+
27
+ ## Introduction
28
+
29
+ AuthFetch is a specialized HTTP client that implements BRC-103 and BRC-104 authentication protocols for secure peer-to-peer communication in the BSV ecosystem. Unlike traditional API authentication (like JWT tokens), AuthFetch uses cryptographic signatures and certificate-based authentication.
30
+
31
+ ## Key Features
32
+
33
+ - **BRC-103 Authentication**: Cryptographic request signing
34
+ - **BRC-104 Certificate Exchange**: Peer identity verification
35
+ - **Automatic Session Management**: Handles authentication state
36
+ - **Certificate Validation**: Verifies peer credentials
37
+ - **Secure Communication**: End-to-end authenticated requests
38
+
39
+ ## What You'll Build
40
+
41
+ In this tutorial, you'll create:
42
+ - Basic authenticated HTTP client
43
+ - Peer-to-peer communication system
44
+ - Certificate exchange mechanism
45
+ - Secure API integration
46
+
47
+ ## Setting Up AuthFetch with `WalletClient`
48
+
49
+ ### Basic AuthFetch Configuration
50
+
51
+ ```typescript
52
+ import { AuthFetch, WalletClient } from '@bsv/sdk'
53
+
54
+ async function createAuthFetch() {
55
+ // Create wallet for authentication - connects to local wallet (e.g., MetaNet Desktop)
56
+ const wallet = new WalletClient('auto', 'localhost')
57
+
58
+ // Check if wallet is connected
59
+ try {
60
+ const authStatus = await wallet.isAuthenticated()
61
+ console.log('Wallet authenticated:', authStatus.authenticated)
62
+
63
+ const network = await wallet.getNetwork()
64
+ console.log('Connected to network:', network.network)
65
+ } catch (error) {
66
+ console.log('Wallet connection status:', error.message)
67
+ // This is expected if no wallet is running
68
+ }
69
+
70
+ // Create AuthFetch instance
71
+ const authFetch = new AuthFetch(wallet)
72
+
73
+ console.log('AuthFetch client created')
74
+ return authFetch
75
+ }
76
+
77
+ async function basicAuthenticatedRequest() {
78
+ const authFetch = await createAuthFetch()
79
+
80
+ try {
81
+ // Make authenticated request to a real, working endpoint
82
+ const response = await authFetch.fetch('https://httpbin.org/get', {
83
+ method: 'GET',
84
+ headers: {
85
+ 'Content-Type': 'application/json',
86
+ 'X-BSV-Tutorial': 'AuthFetch-Example'
87
+ }
88
+ })
89
+
90
+ if (response.ok) {
91
+ const data = await response.json()
92
+ console.log('Authenticated request successful!')
93
+ console.log('Request URL:', data.url)
94
+ console.log('Headers sent:', Object.keys(data.headers).length)
95
+ return data
96
+ } else {
97
+ console.error('Request failed:', response.status, response.statusText)
98
+ }
99
+ } catch (error) {
100
+ console.error('Authentication error:', error.message)
101
+ if (error.message.includes('No wallet available')) {
102
+ console.log(' Install and run MetaNet Desktop Wallet to test with real authentication')
103
+ console.log(' For now, this demonstrates the AuthFetch API structure')
104
+ }
105
+ }
106
+ }
107
+
108
+ // Test the basic functionality
109
+ basicAuthenticatedRequest().catch(console.error)
110
+ ```
111
+
112
+ ### AuthFetch with Certificate Requirements
113
+
114
+ ```typescript
115
+ import { AuthFetch, WalletClient } from '@bsv/sdk'
116
+
117
+ async function createAuthFetchWithCertificates() {
118
+ const wallet = new WalletClient('auto', 'localhost')
119
+
120
+ // Define required certificates from peers
121
+ const requestedCertificates = {
122
+ certifiers: {
123
+ // Require identity certificates from trusted certifier
124
+ 'identity-certifier-key': {
125
+ certificateTypes: ['identity-cert'],
126
+ fieldsRequired: ['name', 'email']
127
+ }
128
+ },
129
+ acquisitionProtocol: 'direct' as const
130
+ }
131
+
132
+ const authFetch = new AuthFetch(wallet, requestedCertificates)
133
+
134
+ console.log('AuthFetch with certificate requirements created')
135
+ return authFetch
136
+ }
137
+
138
+ async function testCertificateRequirements() {
139
+ const authFetch = await createAuthFetchWithCertificates()
140
+
141
+ try {
142
+ // Test with a real endpoint that will show our certificate headers (using a dummy URL for demo purposes)
143
+ const response = await authFetch.fetch('https://httpbin.org/headers', {
144
+ method: 'GET'
145
+ })
146
+
147
+ if (response.ok) {
148
+ const data = await response.json()
149
+ console.log('Certificate-enabled request successful!')
150
+ console.log('Headers sent to server:', data.headers)
151
+
152
+ // AuthFetch will include certificate-related headers when available
153
+ const certHeaders = Object.keys(data.headers).filter(h =>
154
+ h.toLowerCase().includes('cert') || h.toLowerCase().includes('auth')
155
+ )
156
+ console.log('Certificate/Auth headers:', certHeaders)
157
+
158
+ } else {
159
+ console.error('Request failed:', response.status)
160
+ }
161
+ } catch (error) {
162
+ console.error('Certificate request error:', error.message)
163
+ if (error.message.includes('No wallet available')) {
164
+ console.log(' Certificate exchange requires a connected wallet')
165
+ }
166
+ }
167
+ }
168
+
169
+ testCertificateRequirements().catch(console.error)
170
+ ```
171
+
172
+ ## Certificate Exchange and Verification
173
+
174
+ ### Requesting Certificates from Peers
175
+
176
+ ```typescript
177
+ import { AuthFetch, WalletClient } from '@bsv/sdk'
178
+
179
+ class CertificateManager {
180
+ private authFetch: AuthFetch
181
+
182
+ constructor(wallet: WalletClient) {
183
+ this.authFetch = new AuthFetch(wallet)
184
+ }
185
+
186
+ async requestPeerCertificates(
187
+ peerBaseUrl: string,
188
+ certificateRequirements: any
189
+ ): Promise<any[]> {
190
+ try {
191
+ console.log('Requesting certificates from peer:', peerBaseUrl)
192
+
193
+ const certificates = await this.authFetch.sendCertificateRequest(
194
+ peerBaseUrl,
195
+ certificateRequirements
196
+ )
197
+
198
+ console.log('Received certificates:', certificates.length)
199
+ return certificates
200
+ } catch (error) {
201
+ console.error('Certificate request failed:', error)
202
+ throw error
203
+ }
204
+ }
205
+
206
+ async verifyPeerIdentity(peerUrl: string): Promise<{
207
+ verified: boolean
208
+ identity: string | null
209
+ certificates: any[]
210
+ }> {
211
+ const certificateRequirements = {
212
+ certifiers: {
213
+ 'trusted-identity-provider': {
214
+ certificateTypes: ['identity'],
215
+ fieldsRequired: ['name']
216
+ }
217
+ },
218
+ acquisitionProtocol: 'direct' as const
219
+ }
220
+
221
+ try {
222
+ const certificates = await this.requestPeerCertificates(
223
+ peerUrl,
224
+ certificateRequirements
225
+ )
226
+
227
+ // Verify certificates (simplified verification)
228
+ const verified = certificates.length > 0
229
+ const identity = verified ? certificates[0].subject : null
230
+
231
+ return { verified, identity, certificates }
232
+ } catch (error) {
233
+ console.error('Identity verification failed:', error)
234
+ return { verified: false, identity: null, certificates: [] }
235
+ }
236
+ }
237
+ }
238
+
239
+ async function demonstrateCertificateExchange() {
240
+ const wallet = new WalletClient('auto', 'localhost')
241
+ const certManager = new CertificateManager(wallet)
242
+
243
+ // Example peer URLs (replace with actual peer endpoints)
244
+ const peerUrls = [
245
+ 'https://peer1.example.com',
246
+ 'https://peer2.example.com'
247
+ ]
248
+
249
+ for (const peerUrl of peerUrls) {
250
+ console.log(`\n=== Verifying peer: ${peerUrl} ===`)
251
+
252
+ try {
253
+ const verification = await certManager.verifyPeerIdentity(peerUrl)
254
+
255
+ if (verification.verified) {
256
+ console.log(' Peer verified successfully')
257
+ console.log('Identity:', verification.identity)
258
+ console.log('Certificates received:', verification.certificates.length)
259
+ } else {
260
+ console.log(' Peer verification failed')
261
+ }
262
+ } catch (error) {
263
+ console.log(' Peer unreachable or invalid')
264
+ }
265
+ }
266
+ }
267
+
268
+ demonstrateCertificateExchange().catch(console.error)
269
+ ```
270
+
271
+ ## Building Secure API Clients
272
+
273
+ ### Authenticated API Client
274
+
275
+ ```typescript
276
+ import { AuthFetch, WalletClient } from '@bsv/sdk'
277
+
278
+ class SecureAPIClient {
279
+ private authFetch: AuthFetch
280
+ private baseUrl: string
281
+
282
+ constructor(baseUrl: string, wallet?: WalletClient) {
283
+ this.baseUrl = baseUrl
284
+ this.authFetch = new AuthFetch(wallet || new WalletClient('auto', 'localhost'))
285
+ }
286
+
287
+ async get(endpoint: string, options: any = {}): Promise<any> {
288
+ return this.request('GET', endpoint, null, options)
289
+ }
290
+
291
+ async post(endpoint: string, data: any, options: any = {}): Promise<any> {
292
+ return this.request('POST', endpoint, data, options)
293
+ }
294
+
295
+ async put(endpoint: string, data: any, options: any = {}): Promise<any> {
296
+ return this.request('PUT', endpoint, data, options)
297
+ }
298
+
299
+ async delete(endpoint: string, options: any = {}): Promise<any> {
300
+ return this.request('DELETE', endpoint, null, options)
301
+ }
302
+
303
+ private async request(
304
+ method: string,
305
+ endpoint: string,
306
+ data: any = null,
307
+ options: any = {}
308
+ ): Promise<any> {
309
+ const url = `${this.baseUrl}${endpoint}`
310
+
311
+ const requestOptions: any = {
312
+ method,
313
+ headers: {
314
+ 'Content-Type': 'application/json',
315
+ ...options.headers
316
+ }
317
+ }
318
+
319
+ if (data) {
320
+ requestOptions.body = JSON.stringify(data)
321
+ }
322
+
323
+ try {
324
+ console.log(`Making authenticated ${method} request to ${endpoint}`)
325
+
326
+ const response = await this.authFetch.fetch(url, requestOptions)
327
+
328
+ if (!response.ok) {
329
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`)
330
+ }
331
+
332
+ const contentType = response.headers.get('content-type')
333
+ if (contentType && contentType.includes('application/json')) {
334
+ return await response.json()
335
+ } else {
336
+ return await response.text()
337
+ }
338
+ } catch (error) {
339
+ console.error(`Request failed for ${method} ${endpoint}:`, error)
340
+ throw error
341
+ }
342
+ }
343
+
344
+ async healthCheck(): Promise<boolean> {
345
+ try {
346
+ await this.get('/health')
347
+ return true
348
+ } catch (error) {
349
+ return false
350
+ }
351
+ }
352
+ }
353
+
354
+ async function demonstrateSecureAPIClient() {
355
+ // Create secure API client using real, testable endpoints
356
+ const apiClient = new SecureAPIClient('https://httpbin.org')
357
+
358
+ try {
359
+ // Health check using a real endpoint
360
+ console.log('Testing API client with real endpoints...')
361
+
362
+ // Test GET request
363
+ const getResult = await apiClient.get('/get?test=true&client=secure')
364
+ console.log('✅ GET request successful')
365
+ console.log('Request URL:', getResult.url)
366
+ console.log('Query parameters received:', getResult.args)
367
+
368
+ // Test POST request with data
369
+ const postResult = await apiClient.post('/post', {
370
+ user: 'demo-user',
371
+ action: 'test-post',
372
+ timestamp: new Date().toISOString(),
373
+ authenticated: true
374
+ })
375
+ console.log('✅ POST request successful')
376
+ console.log('Data sent:', postResult.json)
377
+ console.log('Content-Type:', postResult.headers['Content-Type'])
378
+
379
+ // Test PUT request
380
+ const putResult = await apiClient.put('/put', {
381
+ resource: 'user-settings',
382
+ theme: 'dark',
383
+ notifications: true,
384
+ updated: new Date().toISOString()
385
+ })
386
+ console.log('✅ PUT request successful')
387
+ console.log('PUT data received:', putResult.json)
388
+
389
+ // Test DELETE request
390
+ const deleteResult = await apiClient.delete('/delete')
391
+ console.log('✅ DELETE request successful')
392
+ console.log('DELETE method confirmed:', deleteResult.url)
393
+
394
+ // Test custom headers
395
+ const headersResult = await apiClient.get('/headers')
396
+ console.log('✅ Headers test successful')
397
+ console.log('Custom headers sent:', Object.keys(headersResult.headers).length)
398
+
399
+ return {
400
+ get: getResult,
401
+ post: postResult,
402
+ put: putResult,
403
+ delete: deleteResult,
404
+ headers: headersResult
405
+ }
406
+ } catch (error) {
407
+ console.error('API operations failed:', error.message)
408
+ if (error.message.includes('No wallet available')) {
409
+ console.log('💡 Install MetaNet Desktop Wallet to test with real authentication')
410
+ console.log(' The API calls work, but authentication requires a connected wallet')
411
+ }
412
+ }
413
+ }
414
+
415
+ demonstrateSecureAPIClient().catch(console.error)
416
+ ```
417
+
418
+ ### Multi-Peer Communication System
419
+
420
+ ```typescript
421
+ import { AuthFetch, WalletClient } from '@bsv/sdk'
422
+
423
+ interface PeerInfo {
424
+ url: string
425
+ identity: string | null
426
+ verified: boolean
427
+ lastContact: Date
428
+ }
429
+
430
+ class PeerNetwork {
431
+ private authFetch: AuthFetch
432
+ private peers: Map<string, PeerInfo> = new Map()
433
+
434
+ constructor(wallet?: WalletClient) {
435
+ this.authFetch = new AuthFetch(wallet || new WalletClient('auto', 'localhost'))
436
+ }
437
+
438
+ async addPeer(peerUrl: string): Promise<boolean> {
439
+ try {
440
+ console.log(`Adding peer: ${peerUrl}`)
441
+
442
+ // Verify peer identity
443
+ const verification = await this.verifyPeer(peerUrl)
444
+
445
+ const peerInfo: PeerInfo = {
446
+ url: peerUrl,
447
+ identity: verification.identity,
448
+ verified: verification.verified,
449
+ lastContact: new Date()
450
+ }
451
+
452
+ this.peers.set(peerUrl, peerInfo)
453
+
454
+ console.log(`Peer ${peerUrl} ${verification.verified ? 'verified' : 'unverified'}`)
455
+ return verification.verified
456
+ } catch (error) {
457
+ console.error(`Failed to add peer ${peerUrl}:`, error)
458
+ return false
459
+ }
460
+ }
461
+
462
+ private async verifyPeer(peerUrl: string): Promise<{
463
+ verified: boolean
464
+ identity: string | null
465
+ }> {
466
+ try {
467
+ // Simple ping to verify peer is reachable
468
+ const response = await this.authFetch.fetch(`${peerUrl}/ping`, {
469
+ method: 'GET'
470
+ })
471
+
472
+ if (response.ok) {
473
+ // In a real implementation, you would verify certificates here
474
+ return { verified: true, identity: 'peer-identity' }
475
+ } else {
476
+ return { verified: false, identity: null }
477
+ }
478
+ } catch (error) {
479
+ return { verified: false, identity: null }
480
+ }
481
+ }
482
+
483
+ async broadcastMessage(message: any): Promise<{
484
+ successful: string[]
485
+ failed: string[]
486
+ }> {
487
+ const successful: string[] = []
488
+ const failed: string[] = []
489
+
490
+ console.log(`Broadcasting message to ${this.peers.size} peers`)
491
+
492
+ const promises = Array.from(this.peers.entries()).map(async ([url, peerInfo]) => {
493
+ try {
494
+ const response = await this.authFetch.fetch(`${url}/message`, {
495
+ method: 'POST',
496
+ headers: {
497
+ 'Content-Type': 'application/json'
498
+ },
499
+ body: JSON.stringify(message)
500
+ })
501
+
502
+ if (response.ok) {
503
+ successful.push(url)
504
+ // Update last contact
505
+ peerInfo.lastContact = new Date()
506
+ } else {
507
+ failed.push(url)
508
+ }
509
+ } catch (error) {
510
+ failed.push(url)
511
+ console.error(`Failed to send message to ${url}:`, error)
512
+ }
513
+ })
514
+
515
+ await Promise.all(promises)
516
+
517
+ console.log(`Broadcast complete: ${successful.length} successful, ${failed.length} failed`)
518
+ return { successful, failed }
519
+ }
520
+
521
+ async sendDirectMessage(peerUrl: string, message: any): Promise<any> {
522
+ const peer = this.peers.get(peerUrl)
523
+ if (!peer) {
524
+ throw new Error(`Peer ${peerUrl} not found`)
525
+ }
526
+
527
+ if (!peer.verified) {
528
+ throw new Error(`Peer ${peerUrl} not verified`)
529
+ }
530
+
531
+ try {
532
+ const response = await this.authFetch.fetch(`${peerUrl}/direct-message`, {
533
+ method: 'POST',
534
+ headers: {
535
+ 'Content-Type': 'application/json'
536
+ },
537
+ body: JSON.stringify(message)
538
+ })
539
+
540
+ if (response.ok) {
541
+ peer.lastContact = new Date()
542
+ return await response.json()
543
+ } else {
544
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`)
545
+ }
546
+ } catch (error) {
547
+ console.error(`Direct message to ${peerUrl} failed:`, error)
548
+ throw error
549
+ }
550
+ }
551
+
552
+ getPeerStatus(): { total: number; verified: number; unverified: number } {
553
+ const total = this.peers.size
554
+ let verified = 0
555
+ let unverified = 0
556
+
557
+ for (const peer of this.peers.values()) {
558
+ if (peer.verified) {
559
+ verified++
560
+ } else {
561
+ unverified++
562
+ }
563
+ }
564
+
565
+ return { total, verified, unverified }
566
+ }
567
+
568
+ listPeers(): PeerInfo[] {
569
+ return Array.from(this.peers.values())
570
+ }
571
+ }
572
+
573
+ async function demonstratePeerNetwork() {
574
+ const network = new PeerNetwork()
575
+
576
+ // Add peers (replace with actual peer URLs)
577
+ const peerUrls = [
578
+ 'https://peer1.example.com',
579
+ 'https://peer2.example.com',
580
+ 'https://peer3.example.com'
581
+ ]
582
+
583
+ console.log('=== Setting up peer network ===')
584
+
585
+ for (const peerUrl of peerUrls) {
586
+ await network.addPeer(peerUrl)
587
+ }
588
+
589
+ const status = network.getPeerStatus()
590
+ console.log('Network status:', status)
591
+
592
+ // Broadcast message
593
+ const broadcastMessage = {
594
+ type: 'announcement',
595
+ content: 'Hello from authenticated peer network!',
596
+ timestamp: new Date().toISOString()
597
+ }
598
+
599
+ console.log('\n=== Broadcasting message ===')
600
+ const broadcastResult = await network.broadcastMessage(broadcastMessage)
601
+ console.log('Broadcast result:', broadcastResult)
602
+
603
+ // Send direct message to first verified peer
604
+ const peers = network.listPeers()
605
+ const verifiedPeer = peers.find(p => p.verified)
606
+
607
+ if (verifiedPeer) {
608
+ console.log('\n=== Sending direct message ===')
609
+ try {
610
+ const directMessage = {
611
+ type: 'direct',
612
+ content: 'This is a direct authenticated message',
613
+ timestamp: new Date().toISOString()
614
+ }
615
+
616
+ const response = await network.sendDirectMessage(verifiedPeer.url, directMessage)
617
+ console.log('Direct message response:', response)
618
+ } catch (error) {
619
+ console.log('Direct message failed (expected in demo)')
620
+ }
621
+ }
622
+
623
+ return { status, broadcastResult, peers }
624
+ }
625
+
626
+ demonstratePeerNetwork().catch(console.error)
627
+ ```
628
+
629
+ ## Advanced Authentication Patterns
630
+
631
+ ### Session Management and Reconnection
632
+
633
+ ```typescript
634
+ import { AuthFetch, WalletClient } from '@bsv/sdk'
635
+
636
+ class RobustAuthClient {
637
+ private authFetch: AuthFetch
638
+ private maxRetries: number = 3
639
+ private retryDelay: number = 1000
640
+
641
+ constructor(wallet?: WalletClient) {
642
+ this.authFetch = new AuthFetch(wallet || new WalletClient('auto', 'localhost'))
643
+ }
644
+
645
+ async authenticatedRequest(
646
+ url: string,
647
+ options: any = {},
648
+ retryCount: number = 0
649
+ ): Promise<Response> {
650
+ try {
651
+ const response = await this.authFetch.fetch(url, options)
652
+
653
+ if (response.status === 401 && retryCount < this.maxRetries) {
654
+ console.log(`Authentication failed, retrying... (${retryCount + 1}/${this.maxRetries})`)
655
+
656
+ // Wait and retry - AuthFetch will handle session management automatically
657
+ await this.delay(this.retryDelay * (retryCount + 1))
658
+
659
+ return this.authenticatedRequest(url, options, retryCount + 1)
660
+ }
661
+
662
+ return response
663
+ } catch (error) {
664
+ if (retryCount < this.maxRetries) {
665
+ console.log(`Request failed, retrying... (${retryCount + 1}/${this.maxRetries})`)
666
+ await this.delay(this.retryDelay * (retryCount + 1))
667
+ return this.authenticatedRequest(url, options, retryCount + 1)
668
+ }
669
+
670
+ throw error
671
+ }
672
+ }
673
+
674
+ private delay(ms: number): Promise<void> {
675
+ return new Promise(resolve => setTimeout(resolve, ms))
676
+ }
677
+
678
+ async batchRequests(requests: Array<{
679
+ url: string
680
+ options?: any
681
+ }>): Promise<Array<{
682
+ success: boolean
683
+ response?: any
684
+ error?: string
685
+ }>> {
686
+ const results = await Promise.allSettled(
687
+ requests.map(req => this.authenticatedRequest(req.url, req.options))
688
+ )
689
+
690
+ return results.map((result, index) => {
691
+ if (result.status === 'fulfilled') {
692
+ return {
693
+ success: true,
694
+ response: result.value
695
+ }
696
+ } else {
697
+ return {
698
+ success: false,
699
+ error: result.reason.message
700
+ }
701
+ }
702
+ })
703
+ }
704
+ }
705
+
706
+ async function demonstrateRobustAuthentication() {
707
+ const robustClient = new RobustAuthClient()
708
+
709
+ console.log('=== Testing robust authentication ===')
710
+
711
+ // Single request with retry logic
712
+ try {
713
+ const response = await robustClient.authenticatedRequest('https://api.example.com/data')
714
+ console.log('Single request successful:', response.ok)
715
+ } catch (error) {
716
+ console.log('Single request failed after retries:', error.message)
717
+ }
718
+
719
+ // Batch requests
720
+ const batchRequests = [
721
+ { url: 'https://api.example.com/endpoint1' },
722
+ { url: 'https://api.example.com/endpoint2' },
723
+ { url: 'https://api.example.com/endpoint3' }
724
+ ]
725
+
726
+ console.log('\n=== Testing batch requests ===')
727
+ const batchResults = await robustClient.batchRequests(batchRequests)
728
+
729
+ batchResults.forEach((result, index) => {
730
+ console.log(`Request ${index + 1}:`, result.success ? 'SUCCESS' : `FAILED - ${result.error}`)
731
+ })
732
+
733
+ return batchResults
734
+ }
735
+
736
+ demonstrateRobustAuthentication().catch(console.error)
737
+ ```
738
+
739
+ ## Error Handling and Debugging
740
+
741
+ ### Comprehensive Error Handling
742
+
743
+ ```typescript
744
+ import { AuthFetch, WalletClient } from '@bsv/sdk'
745
+
746
+ enum AuthErrorType {
747
+ NETWORK_ERROR = 'network_error',
748
+ AUTHENTICATION_FAILED = 'authentication_failed',
749
+ CERTIFICATE_INVALID = 'certificate_invalid',
750
+ PEER_UNREACHABLE = 'peer_unreachable',
751
+ SESSION_EXPIRED = 'session_expired'
752
+ }
753
+
754
+ class AuthError extends Error {
755
+ constructor(
756
+ public type: AuthErrorType,
757
+ message: string,
758
+ public originalError?: Error
759
+ ) {
760
+ super(message)
761
+ this.name = 'AuthError'
762
+ }
763
+ }
764
+
765
+ class AuthFetchWithErrorHandling {
766
+ private authFetch: AuthFetch
767
+ private debugMode: boolean = false
768
+
769
+ constructor(wallet?: WalletClient, debugMode: boolean = false) {
770
+ this.authFetch = new AuthFetch(wallet || new WalletClient('auto', 'localhost'))
771
+ this.debugMode = debugMode
772
+ }
773
+
774
+ async safeRequest(url: string, options: any = {}): Promise<{
775
+ success: boolean
776
+ data?: any
777
+ error?: AuthError
778
+ }> {
779
+ try {
780
+ if (this.debugMode) {
781
+ console.log(`[DEBUG] Making request to: ${url}`)
782
+ console.log(`[DEBUG] Options:`, JSON.stringify(options, null, 2))
783
+ }
784
+
785
+ const response = await this.authFetch.fetch(url, options)
786
+
787
+ if (this.debugMode) {
788
+ console.log(`[DEBUG] Response status: ${response.status}`)
789
+ console.log(`[DEBUG] Response headers:`, Object.fromEntries(response.headers.entries()))
790
+ }
791
+
792
+ if (!response.ok) {
793
+ const errorType = this.categorizeHttpError(response.status)
794
+ const errorMessage = await this.extractErrorMessage(response)
795
+
796
+ return {
797
+ success: false,
798
+ error: new AuthError(errorType, errorMessage)
799
+ }
800
+ }
801
+
802
+ const data = await this.parseResponse(response)
803
+ return { success: true, data }
804
+
805
+ } catch (error) {
806
+ if (this.debugMode) {
807
+ console.log(`[DEBUG] Request failed:`, error)
808
+ }
809
+
810
+ const authError = this.categorizeError(error)
811
+ return { success: false, error: authError }
812
+ }
813
+ }
814
+
815
+ private categorizeHttpError(status: number): AuthErrorType {
816
+ switch (status) {
817
+ case 401:
818
+ return AuthErrorType.AUTHENTICATION_FAILED
819
+ case 403:
820
+ return AuthErrorType.CERTIFICATE_INVALID
821
+ case 408:
822
+ case 504:
823
+ return AuthErrorType.PEER_UNREACHABLE
824
+ default:
825
+ return AuthErrorType.NETWORK_ERROR
826
+ }
827
+ }
828
+
829
+ private async extractErrorMessage(response: Response): Promise<string> {
830
+ try {
831
+ const contentType = response.headers.get('content-type')
832
+ if (contentType && contentType.includes('application/json')) {
833
+ const errorData = await response.json()
834
+ return errorData.message || errorData.error || `HTTP ${response.status}`
835
+ } else {
836
+ return await response.text() || `HTTP ${response.status}`
837
+ }
838
+ } catch {
839
+ return `HTTP ${response.status}: ${response.statusText}`
840
+ }
841
+ }
842
+
843
+ private async parseResponse(response: Response): Promise<any> {
844
+ const contentType = response.headers.get('content-type')
845
+ if (contentType && contentType.includes('application/json')) {
846
+ return await response.json()
847
+ } else {
848
+ return await response.text()
849
+ }
850
+ }
851
+
852
+ private categorizeError(error: any): AuthError {
853
+ if (error.name === 'TypeError' && error.message.includes('fetch')) {
854
+ return new AuthError(
855
+ AuthErrorType.NETWORK_ERROR,
856
+ 'Network connection failed',
857
+ error
858
+ )
859
+ }
860
+
861
+ if (error.message.includes('certificate')) {
862
+ return new AuthError(
863
+ AuthErrorType.CERTIFICATE_INVALID,
864
+ 'Certificate validation failed',
865
+ error
866
+ )
867
+ }
868
+
869
+ if (error.message.includes('session')) {
870
+ return new AuthError(
871
+ AuthErrorType.SESSION_EXPIRED,
872
+ 'Authentication session expired',
873
+ error
874
+ )
875
+ }
876
+
877
+ return new AuthError(
878
+ AuthErrorType.NETWORK_ERROR,
879
+ error.message || 'Unknown error occurred',
880
+ error
881
+ )
882
+ }
883
+
884
+ async testConnectivity(urls: string[]): Promise<{
885
+ reachable: string[]
886
+ unreachable: string[]
887
+ errors: Record<string, string>
888
+ }> {
889
+ const reachable: string[] = []
890
+ const unreachable: string[] = []
891
+ const errors: Record<string, string> = {}
892
+
893
+ console.log(`Testing connectivity to ${urls.length} endpoints...`)
894
+
895
+ const results = await Promise.allSettled(
896
+ urls.map(url => this.safeRequest(`${url}/ping`))
897
+ )
898
+
899
+ results.forEach((result, index) => {
900
+ const url = urls[index]
901
+
902
+ if (result.status === 'fulfilled' && result.value.success) {
903
+ reachable.push(url)
904
+ console.log(` ${url} - reachable`)
905
+ } else {
906
+ unreachable.push(url)
907
+ const error = result.status === 'fulfilled'
908
+ ? result.value.error?.message || 'Unknown error'
909
+ : result.reason.message
910
+ errors[url] = error
911
+ console.log(` ${url} - ${error}`)
912
+ }
913
+ })
914
+
915
+ return { reachable, unreachable, errors }
916
+ }
917
+ }
918
+
919
+ async function demonstrateErrorHandling() {
920
+ const authClient = new AuthFetchWithErrorHandling(undefined, true) // Debug mode on
921
+
922
+ console.log('=== Testing error handling ===')
923
+
924
+ // Test various scenarios
925
+ const testUrls = [
926
+ 'https://httpbin.org/status/200', // Should succeed
927
+ 'https://httpbin.org/status/401', // Authentication error
928
+ 'https://httpbin.org/status/403', // Certificate error
929
+ 'https://httpbin.org/status/500', // Server error
930
+ 'https://invalid-domain-12345.com' // Network error
931
+ ]
932
+
933
+ for (const url of testUrls) {
934
+ console.log(`\n--- Testing: ${url} ---`)
935
+ const result = await authClient.safeRequest(url)
936
+
937
+ if (result.success) {
938
+ console.log(' Request successful')
939
+ } else {
940
+ console.log(` Request failed: ${result.error?.type} - ${result.error?.message}`)
941
+ }
942
+ }
943
+
944
+ // Test connectivity to multiple endpoints
945
+ console.log('\n=== Testing connectivity ===')
946
+ const connectivityTest = await authClient.testConnectivity([
947
+ 'https://httpbin.org',
948
+ 'https://jsonplaceholder.typicode.com',
949
+ 'https://invalid-endpoint.example.com'
950
+ ])
951
+
952
+ console.log('Connectivity results:', connectivityTest)
953
+
954
+ return connectivityTest
955
+ }
956
+
957
+ demonstrateErrorHandling().catch(console.error)