@bsv/sdk 1.6.9 → 1.6.10

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 (647) hide show
  1. package/README.md +9 -4
  2. package/dist/cjs/package.json +4 -2
  3. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  4. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  5. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  6. package/docs/concepts/beef.md +84 -0
  7. package/docs/concepts/chain-tracking.md +122 -0
  8. package/docs/concepts/decentralized-identity.md +184 -0
  9. package/docs/concepts/fees.md +217 -0
  10. package/docs/concepts/identity-certificates.md +255 -0
  11. package/docs/concepts/index.md +62 -0
  12. package/docs/concepts/key-management.md +176 -0
  13. package/docs/concepts/script-templates.md +163 -0
  14. package/docs/concepts/sdk-philosophy.md +72 -0
  15. package/docs/concepts/signatures.md +179 -0
  16. package/docs/concepts/spv-verification.md +106 -0
  17. package/docs/concepts/transaction-encoding.md +148 -0
  18. package/docs/concepts/transaction-structure.md +63 -0
  19. package/docs/concepts/trust-model.md +123 -0
  20. package/docs/concepts/verification.md +219 -0
  21. package/docs/concepts/wallet-integration.md +95 -0
  22. package/docs/guides/direct-transaction-creation.md +137 -0
  23. package/docs/guides/http-client-configuration.md +414 -0
  24. package/docs/guides/index.md +30 -0
  25. package/docs/guides/transaction-signing-methods.md +268 -0
  26. package/docs/index.md +74 -0
  27. package/docs/reference/arc-config.md +698 -0
  28. package/docs/reference/brc-100.md +33 -0
  29. package/docs/reference/configuration.md +829 -0
  30. package/docs/reference/debugging.md +700 -0
  31. package/docs/reference/errors.md +547 -0
  32. package/docs/reference/index.md +98 -0
  33. package/docs/reference/network-config.md +914 -0
  34. package/docs/reference/op-codes.md +306 -0
  35. package/docs/reference/transaction-signatures.md +94 -0
  36. package/docs/requirements.txt +3 -0
  37. package/docs/tutorials/advanced-transaction.md +575 -0
  38. package/docs/tutorials/aes-encryption.md +947 -0
  39. package/docs/tutorials/authfetch-tutorial.md +957 -0
  40. package/docs/tutorials/ecdh-key-exchange.md +547 -0
  41. package/docs/tutorials/elliptic-curve-fundamentals.md +603 -0
  42. package/docs/tutorials/error-handling.md +1215 -0
  43. package/docs/tutorials/first-transaction-low-level.md +204 -0
  44. package/docs/tutorials/first-transaction.md +278 -0
  45. package/docs/tutorials/hashes-and-hmacs.md +814 -0
  46. package/docs/tutorials/identity-management.md +702 -0
  47. package/docs/tutorials/index.md +182 -0
  48. package/docs/tutorials/key-management.md +536 -0
  49. package/docs/tutorials/protowallet-development.md +716 -0
  50. package/docs/tutorials/script-construction.md +690 -0
  51. package/docs/tutorials/spv-merkle-proofs.md +682 -0
  52. package/docs/tutorials/testnet-transactions-low-level.md +352 -0
  53. package/docs/tutorials/transaction-broadcasting.md +535 -0
  54. package/docs/tutorials/transaction-types.md +419 -0
  55. package/docs/tutorials/type-42.md +582 -0
  56. package/docs/tutorials/uhrp-storage.md +579 -0
  57. package/package.json +4 -2
  58. package/dist/cjs/src/auth/__tests/Peer.test.js +0 -446
  59. package/dist/cjs/src/auth/__tests/Peer.test.js.map +0 -1
  60. package/dist/cjs/src/auth/__tests/SessionManager.test.js +0 -69
  61. package/dist/cjs/src/auth/__tests/SessionManager.test.js.map +0 -1
  62. package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js +0 -182
  63. package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js.map +0 -1
  64. package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js +0 -184
  65. package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js.map +0 -1
  66. package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js +0 -75
  67. package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +0 -1
  68. package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js +0 -101
  69. package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js.map +0 -1
  70. package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js +0 -106
  71. package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +0 -1
  72. package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js +0 -111
  73. package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js.map +0 -1
  74. package/dist/cjs/src/auth/utils/certificateHelpers.js +0 -51
  75. package/dist/cjs/src/auth/utils/certificateHelpers.js.map +0 -1
  76. package/dist/cjs/src/compat/__tests/BSM.test.js +0 -69
  77. package/dist/cjs/src/compat/__tests/BSM.test.js.map +0 -1
  78. package/dist/cjs/src/compat/__tests/ECIES.test.js +0 -115
  79. package/dist/cjs/src/compat/__tests/ECIES.test.js.map +0 -1
  80. package/dist/cjs/src/compat/__tests/HD.test.js +0 -336
  81. package/dist/cjs/src/compat/__tests/HD.test.js.map +0 -1
  82. package/dist/cjs/src/compat/__tests/Mnemonic.test.js +0 -150
  83. package/dist/cjs/src/compat/__tests/Mnemonic.test.js.map +0 -1
  84. package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js +0 -175
  85. package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js.map +0 -1
  86. package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js +0 -57
  87. package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js.map +0 -1
  88. package/dist/cjs/src/messages/__tests/SignedMessage.test.js +0 -52
  89. package/dist/cjs/src/messages/__tests/SignedMessage.test.js.map +0 -1
  90. package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js +0 -1471
  91. package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js.map +0 -1
  92. package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +0 -78
  93. package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +0 -1
  94. package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js +0 -933
  95. package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +0 -1
  96. package/dist/cjs/src/primitives/__tests/AESGCM.test.js +0 -248
  97. package/dist/cjs/src/primitives/__tests/AESGCM.test.js.map +0 -1
  98. package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js +0 -36
  99. package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js.map +0 -1
  100. package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js +0 -36
  101. package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js.map +0 -1
  102. package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js +0 -501
  103. package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js.map +0 -1
  104. package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js +0 -185
  105. package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js.map +0 -1
  106. package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js +0 -149
  107. package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js.map +0 -1
  108. package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js +0 -23
  109. package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js.map +0 -1
  110. package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js +0 -268
  111. package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js.map +0 -1
  112. package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js +0 -147
  113. package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js.map +0 -1
  114. package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js +0 -322
  115. package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js.map +0 -1
  116. package/dist/cjs/src/primitives/__tests/Curve.unit.test.js +0 -145
  117. package/dist/cjs/src/primitives/__tests/Curve.unit.test.js.map +0 -1
  118. package/dist/cjs/src/primitives/__tests/DRBG.test.js +0 -22
  119. package/dist/cjs/src/primitives/__tests/DRBG.test.js.map +0 -1
  120. package/dist/cjs/src/primitives/__tests/DRBG.vectors.js +0 -170
  121. package/dist/cjs/src/primitives/__tests/DRBG.vectors.js.map +0 -1
  122. package/dist/cjs/src/primitives/__tests/ECDH.test.js +0 -34
  123. package/dist/cjs/src/primitives/__tests/ECDH.test.js.map +0 -1
  124. package/dist/cjs/src/primitives/__tests/ECDSA.test.js +0 -89
  125. package/dist/cjs/src/primitives/__tests/ECDSA.test.js.map +0 -1
  126. package/dist/cjs/src/primitives/__tests/HMAC.test.js +0 -60
  127. package/dist/cjs/src/primitives/__tests/HMAC.test.js.map +0 -1
  128. package/dist/cjs/src/primitives/__tests/Hash.test.js +0 -159
  129. package/dist/cjs/src/primitives/__tests/Hash.test.js.map +0 -1
  130. package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js +0 -122
  131. package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js.map +0 -1
  132. package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js +0 -105
  133. package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js.map +0 -1
  134. package/dist/cjs/src/primitives/__tests/PrivateKey.test.js +0 -90
  135. package/dist/cjs/src/primitives/__tests/PrivateKey.test.js.map +0 -1
  136. package/dist/cjs/src/primitives/__tests/PublicKey.test.js +0 -83
  137. package/dist/cjs/src/primitives/__tests/PublicKey.test.js.map +0 -1
  138. package/dist/cjs/src/primitives/__tests/Random.test.js +0 -19
  139. package/dist/cjs/src/primitives/__tests/Random.test.js.map +0 -1
  140. package/dist/cjs/src/primitives/__tests/Reader.test.js +0 -282
  141. package/dist/cjs/src/primitives/__tests/Reader.test.js.map +0 -1
  142. package/dist/cjs/src/primitives/__tests/ReductionContext.test.js +0 -224
  143. package/dist/cjs/src/primitives/__tests/ReductionContext.test.js.map +0 -1
  144. package/dist/cjs/src/primitives/__tests/Schnorr.test.js +0 -213
  145. package/dist/cjs/src/primitives/__tests/Schnorr.test.js.map +0 -1
  146. package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js +0 -51
  147. package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js.map +0 -1
  148. package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js +0 -43
  149. package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js.map +0 -1
  150. package/dist/cjs/src/primitives/__tests/Writer.test.js +0 -176
  151. package/dist/cjs/src/primitives/__tests/Writer.test.js.map +0 -1
  152. package/dist/cjs/src/primitives/__tests/bug-31.test.js +0 -32
  153. package/dist/cjs/src/primitives/__tests/bug-31.test.js.map +0 -1
  154. package/dist/cjs/src/primitives/__tests/sighash.vectors.js +0 -3506
  155. package/dist/cjs/src/primitives/__tests/sighash.vectors.js.map +0 -1
  156. package/dist/cjs/src/primitives/__tests/utils.test.js +0 -110
  157. package/dist/cjs/src/primitives/__tests/utils.test.js.map +0 -1
  158. package/dist/cjs/src/script/__tests/Script.test.js +0 -347
  159. package/dist/cjs/src/script/__tests/Script.test.js.map +0 -1
  160. package/dist/cjs/src/script/__tests/Spend.test.js +0 -282
  161. package/dist/cjs/src/script/__tests/Spend.test.js.map +0 -1
  162. package/dist/cjs/src/script/__tests/SpendComplex.test.js +0 -52
  163. package/dist/cjs/src/script/__tests/SpendComplex.test.js.map +0 -1
  164. package/dist/cjs/src/script/__tests/script.invalid.vectors.js +0 -2370
  165. package/dist/cjs/src/script/__tests/script.invalid.vectors.js.map +0 -1
  166. package/dist/cjs/src/script/__tests/script.valid.vectors.js +0 -1181
  167. package/dist/cjs/src/script/__tests/script.valid.vectors.js.map +0 -1
  168. package/dist/cjs/src/script/__tests/spend.valid.vectors.js +0 -2298
  169. package/dist/cjs/src/script/__tests/spend.valid.vectors.js.map +0 -1
  170. package/dist/cjs/src/script/templates/__tests/PushDrop.test.js +0 -161
  171. package/dist/cjs/src/script/templates/__tests/PushDrop.test.js.map +0 -1
  172. package/dist/cjs/src/totp/__tests/totp.test.js +0 -67
  173. package/dist/cjs/src/totp/__tests/totp.test.js.map +0 -1
  174. package/dist/cjs/src/transaction/__tests/Beef.test.js +0 -393
  175. package/dist/cjs/src/transaction/__tests/Beef.test.js.map +0 -1
  176. package/dist/cjs/src/transaction/__tests/MerklePath.test.js +0 -209
  177. package/dist/cjs/src/transaction/__tests/MerklePath.test.js.map +0 -1
  178. package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js +0 -219
  179. package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js.map +0 -1
  180. package/dist/cjs/src/transaction/__tests/Transaction.test.js +0 -1073
  181. package/dist/cjs/src/transaction/__tests/Transaction.test.js.map +0 -1
  182. package/dist/cjs/src/transaction/__tests/bigtx.vectors.js +0 -7
  183. package/dist/cjs/src/transaction/__tests/bigtx.vectors.js.map +0 -1
  184. package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js +0 -11
  185. package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js.map +0 -1
  186. package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js +0 -7
  187. package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js.map +0 -1
  188. package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js +0 -230
  189. package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js.map +0 -1
  190. package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js +0 -296
  191. package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js.map +0 -1
  192. package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js +0 -246
  193. package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js.map +0 -1
  194. package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +0 -148
  195. package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +0 -1
  196. package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +0 -155
  197. package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +0 -1
  198. package/dist/cjs/src/wallet/ScriptTemplateSABPPP.js +0 -39
  199. package/dist/cjs/src/wallet/ScriptTemplateSABPPP.js.map +0 -1
  200. package/dist/cjs/src/wallet/WalletSigner.js +0 -260
  201. package/dist/cjs/src/wallet/WalletSigner.js.map +0 -1
  202. package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js +0 -269
  203. package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js.map +0 -1
  204. package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js +0 -114
  205. package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js.map +0 -1
  206. package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js +0 -475
  207. package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js.map +0 -1
  208. package/dist/cjs/src/wallet/createActionSdk.js +0 -230
  209. package/dist/cjs/src/wallet/createActionSdk.js.map +0 -1
  210. package/dist/cjs/src/wallet/sdk/CachedKeyDeriver.js +0 -174
  211. package/dist/cjs/src/wallet/sdk/CachedKeyDeriver.js.map +0 -1
  212. package/dist/cjs/src/wallet/sdk/CertOps.js +0 -181
  213. package/dist/cjs/src/wallet/sdk/CertOps.js.map +0 -1
  214. package/dist/cjs/src/wallet/sdk/Certificate.js +0 -162
  215. package/dist/cjs/src/wallet/sdk/Certificate.js.map +0 -1
  216. package/dist/cjs/src/wallet/sdk/KeyDeriver.js +0 -176
  217. package/dist/cjs/src/wallet/sdk/KeyDeriver.js.map +0 -1
  218. package/dist/cjs/src/wallet/sdk/ProtoWallet.js +0 -75
  219. package/dist/cjs/src/wallet/sdk/ProtoWallet.js.map +0 -1
  220. package/dist/cjs/src/wallet/sdk/StorageSyncReader.js +0 -3
  221. package/dist/cjs/src/wallet/sdk/StorageSyncReader.js.map +0 -1
  222. package/dist/cjs/src/wallet/sdk/WERR_errors.js +0 -107
  223. package/dist/cjs/src/wallet/sdk/WERR_errors.js.map +0 -1
  224. package/dist/cjs/src/wallet/sdk/Wallet.interfaces.js +0 -3
  225. package/dist/cjs/src/wallet/sdk/Wallet.interfaces.js.map +0 -1
  226. package/dist/cjs/src/wallet/sdk/WalletCrypto.js +0 -171
  227. package/dist/cjs/src/wallet/sdk/WalletCrypto.js.map +0 -1
  228. package/dist/cjs/src/wallet/sdk/WalletError.js +0 -103
  229. package/dist/cjs/src/wallet/sdk/WalletError.js.map +0 -1
  230. package/dist/cjs/src/wallet/sdk/WalletServices.interfaces.js +0 -3
  231. package/dist/cjs/src/wallet/sdk/WalletServices.interfaces.js.map +0 -1
  232. package/dist/cjs/src/wallet/sdk/WalletSigner.interfaces.js +0 -3
  233. package/dist/cjs/src/wallet/sdk/WalletSigner.interfaces.js.map +0 -1
  234. package/dist/cjs/src/wallet/sdk/WalletStorage.interfaces.js +0 -3
  235. package/dist/cjs/src/wallet/sdk/WalletStorage.interfaces.js.map +0 -1
  236. package/dist/cjs/src/wallet/sdk/index.js +0 -31
  237. package/dist/cjs/src/wallet/sdk/index.js.map +0 -1
  238. package/dist/cjs/src/wallet/sdk/types.js +0 -11
  239. package/dist/cjs/src/wallet/sdk/types.js.map +0 -1
  240. package/dist/cjs/src/wallet/sdk/validationHelpers.js +0 -601
  241. package/dist/cjs/src/wallet/sdk/validationHelpers.js.map +0 -1
  242. package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js +0 -1962
  243. package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +0 -1
  244. package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js +0 -579
  245. package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js.map +0 -1
  246. package/dist/cjs/src/wallet/utilityHelpers.js +0 -305
  247. package/dist/cjs/src/wallet/utilityHelpers.js.map +0 -1
  248. package/dist/cjs/src/wallet/validationHelpers.js +0 -601
  249. package/dist/cjs/src/wallet/validationHelpers.js.map +0 -1
  250. package/dist/esm/src/auth/__tests/Peer.test.js +0 -448
  251. package/dist/esm/src/auth/__tests/Peer.test.js.map +0 -1
  252. package/dist/esm/src/auth/__tests/SessionManager.test.js +0 -69
  253. package/dist/esm/src/auth/__tests/SessionManager.test.js.map +0 -1
  254. package/dist/esm/src/auth/certificates/__tests/Certificate.test.js +0 -182
  255. package/dist/esm/src/auth/certificates/__tests/Certificate.test.js.map +0 -1
  256. package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js +0 -184
  257. package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js.map +0 -1
  258. package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js +0 -75
  259. package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +0 -1
  260. package/dist/esm/src/auth/utils/__tests/cryptononce.test.js +0 -101
  261. package/dist/esm/src/auth/utils/__tests/cryptononce.test.js.map +0 -1
  262. package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js +0 -106
  263. package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +0 -1
  264. package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js +0 -111
  265. package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js.map +0 -1
  266. package/dist/esm/src/auth/utils/certificateHelpers.js +0 -47
  267. package/dist/esm/src/auth/utils/certificateHelpers.js.map +0 -1
  268. package/dist/esm/src/compat/__tests/BSM.test.js +0 -69
  269. package/dist/esm/src/compat/__tests/BSM.test.js.map +0 -1
  270. package/dist/esm/src/compat/__tests/ECIES.test.js +0 -115
  271. package/dist/esm/src/compat/__tests/ECIES.test.js.map +0 -1
  272. package/dist/esm/src/compat/__tests/HD.test.js +0 -336
  273. package/dist/esm/src/compat/__tests/HD.test.js.map +0 -1
  274. package/dist/esm/src/compat/__tests/Mnemonic.test.js +0 -150
  275. package/dist/esm/src/compat/__tests/Mnemonic.test.js.map +0 -1
  276. package/dist/esm/src/compat/__tests/Mnemonic.vectors.js +0 -175
  277. package/dist/esm/src/compat/__tests/Mnemonic.vectors.js.map +0 -1
  278. package/dist/esm/src/messages/__tests/EncryptedMessage.test.js +0 -57
  279. package/dist/esm/src/messages/__tests/EncryptedMessage.test.js.map +0 -1
  280. package/dist/esm/src/messages/__tests/SignedMessage.test.js +0 -52
  281. package/dist/esm/src/messages/__tests/SignedMessage.test.js.map +0 -1
  282. package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js +0 -1471
  283. package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js.map +0 -1
  284. package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +0 -78
  285. package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +0 -1
  286. package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js +0 -933
  287. package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +0 -1
  288. package/dist/esm/src/primitives/__tests/AESGCM.test.js +0 -248
  289. package/dist/esm/src/primitives/__tests/AESGCM.test.js.map +0 -1
  290. package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js +0 -36
  291. package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js.map +0 -1
  292. package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js +0 -36
  293. package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js.map +0 -1
  294. package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js +0 -501
  295. package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js.map +0 -1
  296. package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js +0 -185
  297. package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js.map +0 -1
  298. package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js +0 -149
  299. package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js.map +0 -1
  300. package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js +0 -23
  301. package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js.map +0 -1
  302. package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js +0 -268
  303. package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js.map +0 -1
  304. package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js +0 -147
  305. package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js.map +0 -1
  306. package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js +0 -322
  307. package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js.map +0 -1
  308. package/dist/esm/src/primitives/__tests/Curve.unit.test.js +0 -145
  309. package/dist/esm/src/primitives/__tests/Curve.unit.test.js.map +0 -1
  310. package/dist/esm/src/primitives/__tests/DRBG.test.js +0 -22
  311. package/dist/esm/src/primitives/__tests/DRBG.test.js.map +0 -1
  312. package/dist/esm/src/primitives/__tests/DRBG.vectors.js +0 -170
  313. package/dist/esm/src/primitives/__tests/DRBG.vectors.js.map +0 -1
  314. package/dist/esm/src/primitives/__tests/ECDH.test.js +0 -34
  315. package/dist/esm/src/primitives/__tests/ECDH.test.js.map +0 -1
  316. package/dist/esm/src/primitives/__tests/ECDSA.test.js +0 -89
  317. package/dist/esm/src/primitives/__tests/ECDSA.test.js.map +0 -1
  318. package/dist/esm/src/primitives/__tests/HMAC.test.js +0 -60
  319. package/dist/esm/src/primitives/__tests/HMAC.test.js.map +0 -1
  320. package/dist/esm/src/primitives/__tests/Hash.test.js +0 -159
  321. package/dist/esm/src/primitives/__tests/Hash.test.js.map +0 -1
  322. package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js +0 -122
  323. package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js.map +0 -1
  324. package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js +0 -105
  325. package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js.map +0 -1
  326. package/dist/esm/src/primitives/__tests/PrivateKey.test.js +0 -90
  327. package/dist/esm/src/primitives/__tests/PrivateKey.test.js.map +0 -1
  328. package/dist/esm/src/primitives/__tests/PublicKey.test.js +0 -83
  329. package/dist/esm/src/primitives/__tests/PublicKey.test.js.map +0 -1
  330. package/dist/esm/src/primitives/__tests/Random.test.js +0 -19
  331. package/dist/esm/src/primitives/__tests/Random.test.js.map +0 -1
  332. package/dist/esm/src/primitives/__tests/Reader.test.js +0 -282
  333. package/dist/esm/src/primitives/__tests/Reader.test.js.map +0 -1
  334. package/dist/esm/src/primitives/__tests/ReductionContext.test.js +0 -223
  335. package/dist/esm/src/primitives/__tests/ReductionContext.test.js.map +0 -1
  336. package/dist/esm/src/primitives/__tests/Schnorr.test.js +0 -213
  337. package/dist/esm/src/primitives/__tests/Schnorr.test.js.map +0 -1
  338. package/dist/esm/src/primitives/__tests/SymmetricKey.test.js +0 -51
  339. package/dist/esm/src/primitives/__tests/SymmetricKey.test.js.map +0 -1
  340. package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js +0 -43
  341. package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js.map +0 -1
  342. package/dist/esm/src/primitives/__tests/Writer.test.js +0 -176
  343. package/dist/esm/src/primitives/__tests/Writer.test.js.map +0 -1
  344. package/dist/esm/src/primitives/__tests/bug-31.test.js +0 -32
  345. package/dist/esm/src/primitives/__tests/bug-31.test.js.map +0 -1
  346. package/dist/esm/src/primitives/__tests/sighash.vectors.js +0 -3506
  347. package/dist/esm/src/primitives/__tests/sighash.vectors.js.map +0 -1
  348. package/dist/esm/src/primitives/__tests/utils.test.js +0 -110
  349. package/dist/esm/src/primitives/__tests/utils.test.js.map +0 -1
  350. package/dist/esm/src/script/__tests/Script.test.js +0 -347
  351. package/dist/esm/src/script/__tests/Script.test.js.map +0 -1
  352. package/dist/esm/src/script/__tests/Spend.test.js +0 -282
  353. package/dist/esm/src/script/__tests/Spend.test.js.map +0 -1
  354. package/dist/esm/src/script/__tests/SpendComplex.test.js +0 -51
  355. package/dist/esm/src/script/__tests/SpendComplex.test.js.map +0 -1
  356. package/dist/esm/src/script/__tests/script.invalid.vectors.js +0 -2370
  357. package/dist/esm/src/script/__tests/script.invalid.vectors.js.map +0 -1
  358. package/dist/esm/src/script/__tests/script.valid.vectors.js +0 -1181
  359. package/dist/esm/src/script/__tests/script.valid.vectors.js.map +0 -1
  360. package/dist/esm/src/script/__tests/spend.valid.vectors.js +0 -2298
  361. package/dist/esm/src/script/__tests/spend.valid.vectors.js.map +0 -1
  362. package/dist/esm/src/script/templates/__tests/PushDrop.test.js +0 -161
  363. package/dist/esm/src/script/templates/__tests/PushDrop.test.js.map +0 -1
  364. package/dist/esm/src/totp/__tests/totp.test.js +0 -67
  365. package/dist/esm/src/totp/__tests/totp.test.js.map +0 -1
  366. package/dist/esm/src/transaction/__tests/Beef.test.js +0 -393
  367. package/dist/esm/src/transaction/__tests/Beef.test.js.map +0 -1
  368. package/dist/esm/src/transaction/__tests/MerklePath.test.js +0 -209
  369. package/dist/esm/src/transaction/__tests/MerklePath.test.js.map +0 -1
  370. package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js +0 -219
  371. package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js.map +0 -1
  372. package/dist/esm/src/transaction/__tests/Transaction.test.js +0 -1072
  373. package/dist/esm/src/transaction/__tests/Transaction.test.js.map +0 -1
  374. package/dist/esm/src/transaction/__tests/bigtx.vectors.js +0 -7
  375. package/dist/esm/src/transaction/__tests/bigtx.vectors.js.map +0 -1
  376. package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js +0 -11
  377. package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js.map +0 -1
  378. package/dist/esm/src/transaction/__tests/bump.valid.vectors.js +0 -7
  379. package/dist/esm/src/transaction/__tests/bump.valid.vectors.js.map +0 -1
  380. package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js +0 -230
  381. package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js.map +0 -1
  382. package/dist/esm/src/transaction/__tests/tx.valid.vectors.js +0 -296
  383. package/dist/esm/src/transaction/__tests/tx.valid.vectors.js.map +0 -1
  384. package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js +0 -246
  385. package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js.map +0 -1
  386. package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +0 -148
  387. package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +0 -1
  388. package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +0 -155
  389. package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +0 -1
  390. package/dist/esm/src/wallet/ScriptTemplateSABPPP.js +0 -37
  391. package/dist/esm/src/wallet/ScriptTemplateSABPPP.js.map +0 -1
  392. package/dist/esm/src/wallet/WalletSigner.js +0 -263
  393. package/dist/esm/src/wallet/WalletSigner.js.map +0 -1
  394. package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js +0 -269
  395. package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js.map +0 -1
  396. package/dist/esm/src/wallet/__tests/KeyDeriver.test.js +0 -113
  397. package/dist/esm/src/wallet/__tests/KeyDeriver.test.js.map +0 -1
  398. package/dist/esm/src/wallet/__tests/ProtoWallet.test.js +0 -475
  399. package/dist/esm/src/wallet/__tests/ProtoWallet.test.js.map +0 -1
  400. package/dist/esm/src/wallet/createActionSdk.js +0 -223
  401. package/dist/esm/src/wallet/createActionSdk.js.map +0 -1
  402. package/dist/esm/src/wallet/sdk/CachedKeyDeriver.js +0 -174
  403. package/dist/esm/src/wallet/sdk/CachedKeyDeriver.js.map +0 -1
  404. package/dist/esm/src/wallet/sdk/CertOps.js +0 -181
  405. package/dist/esm/src/wallet/sdk/CertOps.js.map +0 -1
  406. package/dist/esm/src/wallet/sdk/Certificate.js +0 -186
  407. package/dist/esm/src/wallet/sdk/Certificate.js.map +0 -1
  408. package/dist/esm/src/wallet/sdk/KeyDeriver.js +0 -174
  409. package/dist/esm/src/wallet/sdk/KeyDeriver.js.map +0 -1
  410. package/dist/esm/src/wallet/sdk/ProtoWallet.js +0 -71
  411. package/dist/esm/src/wallet/sdk/ProtoWallet.js.map +0 -1
  412. package/dist/esm/src/wallet/sdk/StorageSyncReader.js +0 -2
  413. package/dist/esm/src/wallet/sdk/StorageSyncReader.js.map +0 -1
  414. package/dist/esm/src/wallet/sdk/WERR_errors.js +0 -99
  415. package/dist/esm/src/wallet/sdk/WERR_errors.js.map +0 -1
  416. package/dist/esm/src/wallet/sdk/Wallet.interfaces.js +0 -2
  417. package/dist/esm/src/wallet/sdk/Wallet.interfaces.js.map +0 -1
  418. package/dist/esm/src/wallet/sdk/WalletCrypto.js +0 -168
  419. package/dist/esm/src/wallet/sdk/WalletCrypto.js.map +0 -1
  420. package/dist/esm/src/wallet/sdk/WalletError.js +0 -100
  421. package/dist/esm/src/wallet/sdk/WalletError.js.map +0 -1
  422. package/dist/esm/src/wallet/sdk/WalletServices.interfaces.js +0 -2
  423. package/dist/esm/src/wallet/sdk/WalletServices.interfaces.js.map +0 -1
  424. package/dist/esm/src/wallet/sdk/WalletSigner.interfaces.js +0 -2
  425. package/dist/esm/src/wallet/sdk/WalletSigner.interfaces.js.map +0 -1
  426. package/dist/esm/src/wallet/sdk/WalletStorage.interfaces.js +0 -2
  427. package/dist/esm/src/wallet/sdk/WalletStorage.interfaces.js.map +0 -1
  428. package/dist/esm/src/wallet/sdk/index.js +0 -15
  429. package/dist/esm/src/wallet/sdk/index.js.map +0 -1
  430. package/dist/esm/src/wallet/sdk/types.js +0 -8
  431. package/dist/esm/src/wallet/sdk/types.js.map +0 -1
  432. package/dist/esm/src/wallet/sdk/validationHelpers.js +0 -566
  433. package/dist/esm/src/wallet/sdk/validationHelpers.js.map +0 -1
  434. package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js +0 -1962
  435. package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +0 -1
  436. package/dist/esm/src/wallet/substrates/__tests/XDM.test.js +0 -579
  437. package/dist/esm/src/wallet/substrates/__tests/XDM.test.js.map +0 -1
  438. package/dist/esm/src/wallet/utilityHelpers.js +0 -275
  439. package/dist/esm/src/wallet/utilityHelpers.js.map +0 -1
  440. package/dist/esm/src/wallet/validationHelpers.js +0 -566
  441. package/dist/esm/src/wallet/validationHelpers.js.map +0 -1
  442. package/dist/types/src/auth/__tests/Peer.test.d.ts +0 -2
  443. package/dist/types/src/auth/__tests/Peer.test.d.ts.map +0 -1
  444. package/dist/types/src/auth/__tests/SessionManager.test.d.ts +0 -2
  445. package/dist/types/src/auth/__tests/SessionManager.test.d.ts.map +0 -1
  446. package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts +0 -2
  447. package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts.map +0 -1
  448. package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts +0 -2
  449. package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts.map +0 -1
  450. package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts +0 -2
  451. package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts.map +0 -1
  452. package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts +0 -2
  453. package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts.map +0 -1
  454. package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts +0 -2
  455. package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts.map +0 -1
  456. package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts +0 -2
  457. package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts.map +0 -1
  458. package/dist/types/src/auth/utils/certificateHelpers.d.ts +0 -26
  459. package/dist/types/src/auth/utils/certificateHelpers.d.ts.map +0 -1
  460. package/dist/types/src/compat/__tests/BSM.test.d.ts +0 -2
  461. package/dist/types/src/compat/__tests/BSM.test.d.ts.map +0 -1
  462. package/dist/types/src/compat/__tests/ECIES.test.d.ts +0 -2
  463. package/dist/types/src/compat/__tests/ECIES.test.d.ts.map +0 -1
  464. package/dist/types/src/compat/__tests/HD.test.d.ts +0 -2
  465. package/dist/types/src/compat/__tests/HD.test.d.ts.map +0 -1
  466. package/dist/types/src/compat/__tests/Mnemonic.test.d.ts +0 -2
  467. package/dist/types/src/compat/__tests/Mnemonic.test.d.ts.map +0 -1
  468. package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts +0 -11
  469. package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts.map +0 -1
  470. package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts +0 -2
  471. package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts.map +0 -1
  472. package/dist/types/src/messages/__tests/SignedMessage.test.d.ts +0 -2
  473. package/dist/types/src/messages/__tests/SignedMessage.test.d.ts.map +0 -1
  474. package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts +0 -2
  475. package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts.map +0 -1
  476. package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts +0 -2
  477. package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts.map +0 -1
  478. package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts +0 -2
  479. package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts.map +0 -1
  480. package/dist/types/src/primitives/__tests/AESGCM.test.d.ts +0 -2
  481. package/dist/types/src/primitives/__tests/AESGCM.test.d.ts.map +0 -1
  482. package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts +0 -8
  483. package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts.map +0 -1
  484. package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts +0 -8
  485. package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts.map +0 -1
  486. package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts +0 -2
  487. package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts.map +0 -1
  488. package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts +0 -2
  489. package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts.map +0 -1
  490. package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts +0 -2
  491. package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts.map +0 -1
  492. package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts +0 -2
  493. package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts.map +0 -1
  494. package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts +0 -15
  495. package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts.map +0 -1
  496. package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts +0 -2
  497. package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts.map +0 -1
  498. package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts +0 -2
  499. package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts.map +0 -1
  500. package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts +0 -2
  501. package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts.map +0 -1
  502. package/dist/types/src/primitives/__tests/DRBG.test.d.ts +0 -2
  503. package/dist/types/src/primitives/__tests/DRBG.test.d.ts.map +0 -1
  504. package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts +0 -10
  505. package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts.map +0 -1
  506. package/dist/types/src/primitives/__tests/ECDH.test.d.ts +0 -2
  507. package/dist/types/src/primitives/__tests/ECDH.test.d.ts.map +0 -1
  508. package/dist/types/src/primitives/__tests/ECDSA.test.d.ts +0 -2
  509. package/dist/types/src/primitives/__tests/ECDSA.test.d.ts.map +0 -1
  510. package/dist/types/src/primitives/__tests/HMAC.test.d.ts +0 -2
  511. package/dist/types/src/primitives/__tests/HMAC.test.d.ts.map +0 -1
  512. package/dist/types/src/primitives/__tests/Hash.test.d.ts +0 -2
  513. package/dist/types/src/primitives/__tests/Hash.test.d.ts.map +0 -1
  514. package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts +0 -68
  515. package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts.map +0 -1
  516. package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts +0 -2
  517. package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts.map +0 -1
  518. package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts +0 -2
  519. package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts.map +0 -1
  520. package/dist/types/src/primitives/__tests/PublicKey.test.d.ts +0 -2
  521. package/dist/types/src/primitives/__tests/PublicKey.test.d.ts.map +0 -1
  522. package/dist/types/src/primitives/__tests/Random.test.d.ts +0 -2
  523. package/dist/types/src/primitives/__tests/Random.test.d.ts.map +0 -1
  524. package/dist/types/src/primitives/__tests/Reader.test.d.ts +0 -2
  525. package/dist/types/src/primitives/__tests/Reader.test.d.ts.map +0 -1
  526. package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts +0 -2
  527. package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts.map +0 -1
  528. package/dist/types/src/primitives/__tests/Schnorr.test.d.ts +0 -2
  529. package/dist/types/src/primitives/__tests/Schnorr.test.d.ts.map +0 -1
  530. package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts +0 -2
  531. package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts.map +0 -1
  532. package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts +0 -20
  533. package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts.map +0 -1
  534. package/dist/types/src/primitives/__tests/Writer.test.d.ts +0 -2
  535. package/dist/types/src/primitives/__tests/Writer.test.d.ts.map +0 -1
  536. package/dist/types/src/primitives/__tests/bug-31.test.d.ts +0 -2
  537. package/dist/types/src/primitives/__tests/bug-31.test.d.ts.map +0 -1
  538. package/dist/types/src/primitives/__tests/sighash.vectors.d.ts +0 -3
  539. package/dist/types/src/primitives/__tests/sighash.vectors.d.ts.map +0 -1
  540. package/dist/types/src/primitives/__tests/utils.test.d.ts +0 -2
  541. package/dist/types/src/primitives/__tests/utils.test.d.ts.map +0 -1
  542. package/dist/types/src/script/__tests/Script.test.d.ts +0 -2
  543. package/dist/types/src/script/__tests/Script.test.d.ts.map +0 -1
  544. package/dist/types/src/script/__tests/Spend.test.d.ts +0 -2
  545. package/dist/types/src/script/__tests/Spend.test.d.ts.map +0 -1
  546. package/dist/types/src/script/__tests/SpendComplex.test.d.ts +0 -2
  547. package/dist/types/src/script/__tests/SpendComplex.test.d.ts.map +0 -1
  548. package/dist/types/src/script/__tests/script.invalid.vectors.d.ts +0 -3
  549. package/dist/types/src/script/__tests/script.invalid.vectors.d.ts.map +0 -1
  550. package/dist/types/src/script/__tests/script.valid.vectors.d.ts +0 -3
  551. package/dist/types/src/script/__tests/script.valid.vectors.d.ts.map +0 -1
  552. package/dist/types/src/script/__tests/spend.valid.vectors.d.ts +0 -3
  553. package/dist/types/src/script/__tests/spend.valid.vectors.d.ts.map +0 -1
  554. package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts +0 -2
  555. package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts.map +0 -1
  556. package/dist/types/src/totp/__tests/totp.test.d.ts +0 -2
  557. package/dist/types/src/totp/__tests/totp.test.d.ts.map +0 -1
  558. package/dist/types/src/transaction/__tests/Beef.test.d.ts +0 -2
  559. package/dist/types/src/transaction/__tests/Beef.test.d.ts.map +0 -1
  560. package/dist/types/src/transaction/__tests/MerklePath.test.d.ts +0 -2
  561. package/dist/types/src/transaction/__tests/MerklePath.test.d.ts.map +0 -1
  562. package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts +0 -2
  563. package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts.map +0 -1
  564. package/dist/types/src/transaction/__tests/Transaction.test.d.ts +0 -2
  565. package/dist/types/src/transaction/__tests/Transaction.test.d.ts.map +0 -1
  566. package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts +0 -6
  567. package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts.map +0 -1
  568. package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts +0 -6
  569. package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts.map +0 -1
  570. package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts +0 -5
  571. package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts.map +0 -1
  572. package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts +0 -3
  573. package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts.map +0 -1
  574. package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts +0 -3
  575. package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts.map +0 -1
  576. package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts +0 -2
  577. package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts.map +0 -1
  578. package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts +0 -2
  579. package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts.map +0 -1
  580. package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts +0 -2
  581. package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts.map +0 -1
  582. package/dist/types/src/wallet/ScriptTemplateSABPPP.d.ts +0 -25
  583. package/dist/types/src/wallet/ScriptTemplateSABPPP.d.ts.map +0 -1
  584. package/dist/types/src/wallet/WalletSigner.d.ts +0 -110
  585. package/dist/types/src/wallet/WalletSigner.d.ts.map +0 -1
  586. package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts +0 -2
  587. package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts.map +0 -1
  588. package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts +0 -2
  589. package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts.map +0 -1
  590. package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts +0 -2
  591. package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts.map +0 -1
  592. package/dist/types/src/wallet/createActionSdk.d.ts +0 -8
  593. package/dist/types/src/wallet/createActionSdk.d.ts.map +0 -1
  594. package/dist/types/src/wallet/sdk/CachedKeyDeriver.d.ts +0 -94
  595. package/dist/types/src/wallet/sdk/CachedKeyDeriver.d.ts.map +0 -1
  596. package/dist/types/src/wallet/sdk/CertOps.d.ts +0 -63
  597. package/dist/types/src/wallet/sdk/CertOps.d.ts.map +0 -1
  598. package/dist/types/src/wallet/sdk/Certificate.d.ts +0 -77
  599. package/dist/types/src/wallet/sdk/Certificate.d.ts.map +0 -1
  600. package/dist/types/src/wallet/sdk/KeyDeriver.d.ts +0 -128
  601. package/dist/types/src/wallet/sdk/KeyDeriver.d.ts.map +0 -1
  602. package/dist/types/src/wallet/sdk/ProtoWallet.d.ts +0 -30
  603. package/dist/types/src/wallet/sdk/ProtoWallet.d.ts.map +0 -1
  604. package/dist/types/src/wallet/sdk/StorageSyncReader.d.ts +0 -102
  605. package/dist/types/src/wallet/sdk/StorageSyncReader.d.ts.map +0 -1
  606. package/dist/types/src/wallet/sdk/WERR_errors.d.ts +0 -84
  607. package/dist/types/src/wallet/sdk/WERR_errors.d.ts.map +0 -1
  608. package/dist/types/src/wallet/sdk/Wallet.interfaces.d.ts +0 -1036
  609. package/dist/types/src/wallet/sdk/Wallet.interfaces.d.ts.map +0 -1
  610. package/dist/types/src/wallet/sdk/WalletCrypto.d.ts +0 -31
  611. package/dist/types/src/wallet/sdk/WalletCrypto.d.ts.map +0 -1
  612. package/dist/types/src/wallet/sdk/WalletError.d.ts +0 -46
  613. package/dist/types/src/wallet/sdk/WalletError.d.ts.map +0 -1
  614. package/dist/types/src/wallet/sdk/WalletServices.interfaces.d.ts +0 -293
  615. package/dist/types/src/wallet/sdk/WalletServices.interfaces.d.ts.map +0 -1
  616. package/dist/types/src/wallet/sdk/WalletSigner.interfaces.d.ts +0 -48
  617. package/dist/types/src/wallet/sdk/WalletSigner.interfaces.d.ts.map +0 -1
  618. package/dist/types/src/wallet/sdk/WalletStorage.interfaces.d.ts +0 -296
  619. package/dist/types/src/wallet/sdk/WalletStorage.interfaces.d.ts.map +0 -1
  620. package/dist/types/src/wallet/sdk/index.d.ts +0 -15
  621. package/dist/types/src/wallet/sdk/index.d.ts.map +0 -1
  622. package/dist/types/src/wallet/sdk/types.d.ts +0 -56
  623. package/dist/types/src/wallet/sdk/types.d.ts.map +0 -1
  624. package/dist/types/src/wallet/sdk/validationHelpers.d.ts +0 -301
  625. package/dist/types/src/wallet/sdk/validationHelpers.d.ts.map +0 -1
  626. package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts +0 -2
  627. package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts.map +0 -1
  628. package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts +0 -5
  629. package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts.map +0 -1
  630. package/dist/types/src/wallet/utilityHelpers.d.ts +0 -142
  631. package/dist/types/src/wallet/utilityHelpers.d.ts.map +0 -1
  632. package/dist/types/src/wallet/validationHelpers.d.ts +0 -301
  633. package/dist/types/src/wallet/validationHelpers.d.ts.map +0 -1
  634. package/docs/README.md +0 -21
  635. /package/docs/{auth.md → reference/auth.md} +0 -0
  636. /package/docs/{compat.md → reference/compat.md} +0 -0
  637. /package/docs/{identity.md → reference/identity.md} +0 -0
  638. /package/docs/{kvstore.md → reference/kvstore.md} +0 -0
  639. /package/docs/{messages.md → reference/messages.md} +0 -0
  640. /package/docs/{overlay-tools.md → reference/overlay-tools.md} +0 -0
  641. /package/docs/{primitives.md → reference/primitives.md} +0 -0
  642. /package/docs/{registry.md → reference/registry.md} +0 -0
  643. /package/docs/{script.md → reference/script.md} +0 -0
  644. /package/docs/{storage.md → reference/storage.md} +0 -0
  645. /package/docs/{totp.md → reference/totp.md} +0 -0
  646. /package/docs/{transaction.md → reference/transaction.md} +0 -0
  647. /package/docs/{wallet.md → reference/wallet.md} +0 -0
@@ -0,0 +1,914 @@
1
+ # Network Configuration Reference
2
+
3
+ Complete reference for configuring network settings, chain trackers, and blockchain connectivity in the BSV TypeScript SDK.
4
+
5
+ ## Network Configuration Interface
6
+
7
+ ### NetworkConfig
8
+
9
+ ```typescript
10
+ interface NetworkConfig {
11
+ name: string
12
+ network: 'mainnet' | 'testnet' | 'regtest'
13
+ chainTracker: ChainTrackerConfig
14
+ feeModel: FeeModelConfig
15
+ limits: NetworkLimits
16
+ endpoints: NetworkEndpoints
17
+ security: NetworkSecurity
18
+ monitoring: NetworkMonitoring
19
+ }
20
+ ```
21
+
22
+ ### ChainTrackerConfig
23
+
24
+ ```typescript
25
+ interface ChainTrackerConfig {
26
+ provider: 'whatsonchain' | 'blockchair' | 'custom'
27
+ url?: string
28
+ apiKey?: string
29
+ timeout: number
30
+ retries: number
31
+ retryDelay: number
32
+ fallbacks: ChainTrackerFallback[]
33
+ caching: ChainTrackerCaching
34
+ spv: SPVConfig
35
+ }
36
+
37
+ interface ChainTrackerFallback {
38
+ provider: string
39
+ url: string
40
+ apiKey?: string
41
+ priority: number
42
+ healthCheck: boolean
43
+ }
44
+
45
+ interface ChainTrackerCaching {
46
+ enabled: boolean
47
+ ttl: number // Time to live in milliseconds
48
+ maxSize: number // Maximum cache entries
49
+ storage: 'memory' | 'localStorage' | 'custom'
50
+ }
51
+
52
+ interface SPVConfig {
53
+ enabled: boolean
54
+ maxDepth: number
55
+ requiredConfirmations: number
56
+ merkleProofValidation: boolean
57
+ headerValidation: boolean
58
+ }
59
+ ```
60
+
61
+ ### NetworkEndpoints
62
+
63
+ ```typescript
64
+ interface NetworkEndpoints {
65
+ // Block and transaction data
66
+ blocks: string
67
+ transactions: string
68
+ utxos: string
69
+ balance: string
70
+ history: string
71
+
72
+ // Mempool and broadcasting
73
+ mempool: string
74
+ broadcast: string
75
+ fees: string
76
+
77
+ // Chain information
78
+ chainInfo: string
79
+ blockHeight: string
80
+ difficulty: string
81
+
82
+ // WebSocket endpoints
83
+ websocket?: {
84
+ blocks: string
85
+ transactions: string
86
+ mempool: string
87
+ }
88
+ }
89
+ ```
90
+
91
+ ### NetworkLimits
92
+
93
+ ```typescript
94
+ interface NetworkLimits {
95
+ maxBlockSize: number
96
+ maxTransactionSize: number
97
+ maxScriptSize: number
98
+ maxInputs: number
99
+ maxOutputs: number
100
+ maxSigOps: number
101
+ dustThreshold: number
102
+
103
+ // Rate limiting
104
+ requestsPerSecond: number
105
+ requestsPerMinute: number
106
+ requestsPerHour: number
107
+
108
+ // Connection limits
109
+ maxConcurrentRequests: number
110
+ maxRetries: number
111
+ backoffMultiplier: number
112
+ }
113
+ ```
114
+
115
+ ### NetworkSecurity
116
+
117
+ ```typescript
118
+ interface NetworkSecurity {
119
+ ssl: {
120
+ enabled: boolean
121
+ validateCertificates: boolean
122
+ allowSelfSigned: boolean
123
+ }
124
+
125
+ authentication: {
126
+ required: boolean
127
+ type: 'apiKey' | 'bearer' | 'basic'
128
+ credentials: Record<string, string>
129
+ }
130
+
131
+ rateLimit: {
132
+ enabled: boolean
133
+ windowMs: number
134
+ maxRequests: number
135
+ skipSuccessfulRequests: boolean
136
+ }
137
+
138
+ cors: {
139
+ enabled: boolean
140
+ origins: string[]
141
+ methods: string[]
142
+ headers: string[]
143
+ }
144
+ }
145
+ ```
146
+
147
+ ## Predefined Network Configurations
148
+
149
+ ### Mainnet Configuration
150
+
151
+ ```typescript
152
+ const MAINNET_CONFIG: NetworkConfig = {
153
+ name: 'Bitcoin SV Mainnet',
154
+ network: 'mainnet',
155
+ chainTracker: {
156
+ provider: 'whatsonchain',
157
+ url: 'https://api.whatsonchain.com/v1/bsv/main',
158
+ timeout: 30000,
159
+ retries: 3,
160
+ retryDelay: 1000,
161
+ fallbacks: [
162
+ {
163
+ provider: 'blockchair',
164
+ url: 'https://api.blockchair.com/bitcoin-sv',
165
+ priority: 1,
166
+ healthCheck: true
167
+ }
168
+ ],
169
+ caching: {
170
+ enabled: true,
171
+ ttl: 300000, // 5 minutes
172
+ maxSize: 1000,
173
+ storage: 'memory'
174
+ },
175
+ spv: {
176
+ enabled: true,
177
+ maxDepth: 6,
178
+ requiredConfirmations: 6,
179
+ merkleProofValidation: true,
180
+ headerValidation: true
181
+ }
182
+ },
183
+ feeModel: {
184
+ standard: 0.5, // satoshis per byte
185
+ data: 0.25,
186
+ priority: 1.0
187
+ },
188
+ limits: {
189
+ maxBlockSize: 4000000000, // 4GB
190
+ maxTransactionSize: 100000000, // 100MB
191
+ maxScriptSize: 10000,
192
+ maxInputs: 100000,
193
+ maxOutputs: 100000,
194
+ maxSigOps: 4000000,
195
+ dustThreshold: 546,
196
+ requestsPerSecond: 10,
197
+ requestsPerMinute: 600,
198
+ requestsPerHour: 36000,
199
+ maxConcurrentRequests: 5,
200
+ maxRetries: 3,
201
+ backoffMultiplier: 2
202
+ },
203
+ endpoints: {
204
+ blocks: '/block',
205
+ transactions: '/tx',
206
+ utxos: '/address/{address}/unspent',
207
+ balance: '/address/{address}/balance',
208
+ history: '/address/{address}/history',
209
+ mempool: '/mempool',
210
+ broadcast: '/tx/raw',
211
+ fees: '/fees',
212
+ chainInfo: '/chain/info',
213
+ blockHeight: '/chain/info',
214
+ difficulty: '/chain/info'
215
+ },
216
+ security: {
217
+ ssl: {
218
+ enabled: true,
219
+ validateCertificates: true,
220
+ allowSelfSigned: false
221
+ },
222
+ authentication: {
223
+ required: false,
224
+ type: 'apiKey',
225
+ credentials: {}
226
+ },
227
+ rateLimit: {
228
+ enabled: true,
229
+ windowMs: 60000,
230
+ maxRequests: 100,
231
+ skipSuccessfulRequests: false
232
+ },
233
+ cors: {
234
+ enabled: false,
235
+ origins: [],
236
+ methods: ['GET', 'POST'],
237
+ headers: ['Content-Type', 'Authorization']
238
+ }
239
+ },
240
+ monitoring: {
241
+ enabled: true,
242
+ healthCheck: {
243
+ interval: 60000,
244
+ timeout: 10000,
245
+ endpoints: ['chainInfo', 'fees']
246
+ },
247
+ metrics: {
248
+ enabled: true,
249
+ collectInterval: 30000,
250
+ retentionPeriod: 86400000 // 24 hours
251
+ }
252
+ }
253
+ }
254
+ ```
255
+
256
+ ### Testnet Configuration
257
+
258
+ ```typescript
259
+ const TESTNET_CONFIG: NetworkConfig = {
260
+ name: 'Bitcoin SV Testnet',
261
+ network: 'testnet',
262
+ chainTracker: {
263
+ provider: 'whatsonchain',
264
+ url: 'https://api.whatsonchain.com/v1/bsv/test',
265
+ timeout: 30000,
266
+ retries: 3,
267
+ retryDelay: 1000,
268
+ fallbacks: [],
269
+ caching: {
270
+ enabled: true,
271
+ ttl: 300000,
272
+ maxSize: 500,
273
+ storage: 'memory'
274
+ },
275
+ spv: {
276
+ enabled: true,
277
+ maxDepth: 3, // Shorter for testnet
278
+ requiredConfirmations: 3,
279
+ merkleProofValidation: true,
280
+ headerValidation: true
281
+ }
282
+ },
283
+ feeModel: {
284
+ standard: 0.1, // Lower fees for testnet
285
+ data: 0.05,
286
+ priority: 0.2
287
+ },
288
+ limits: {
289
+ maxBlockSize: 4000000000,
290
+ maxTransactionSize: 100000000,
291
+ maxScriptSize: 10000,
292
+ maxInputs: 100000,
293
+ maxOutputs: 100000,
294
+ maxSigOps: 4000000,
295
+ dustThreshold: 546,
296
+ requestsPerSecond: 20, // Higher limits for testing
297
+ requestsPerMinute: 1200,
298
+ requestsPerHour: 72000,
299
+ maxConcurrentRequests: 10,
300
+ maxRetries: 5,
301
+ backoffMultiplier: 1.5
302
+ },
303
+ endpoints: {
304
+ blocks: '/block',
305
+ transactions: '/tx',
306
+ utxos: '/address/{address}/unspent',
307
+ balance: '/address/{address}/balance',
308
+ history: '/address/{address}/history',
309
+ mempool: '/mempool',
310
+ broadcast: '/tx/raw',
311
+ fees: '/fees',
312
+ chainInfo: '/chain/info',
313
+ blockHeight: '/chain/info',
314
+ difficulty: '/chain/info'
315
+ },
316
+ security: {
317
+ ssl: {
318
+ enabled: true,
319
+ validateCertificates: true,
320
+ allowSelfSigned: false
321
+ },
322
+ authentication: {
323
+ required: false,
324
+ type: 'apiKey',
325
+ credentials: {}
326
+ },
327
+ rateLimit: {
328
+ enabled: false, // Disabled for testing
329
+ windowMs: 60000,
330
+ maxRequests: 1000,
331
+ skipSuccessfulRequests: true
332
+ },
333
+ cors: {
334
+ enabled: true, // Enabled for development
335
+ origins: ['*'],
336
+ methods: ['GET', 'POST', 'OPTIONS'],
337
+ headers: ['*']
338
+ }
339
+ },
340
+ monitoring: {
341
+ enabled: true,
342
+ healthCheck: {
343
+ interval: 30000,
344
+ timeout: 5000,
345
+ endpoints: ['chainInfo']
346
+ },
347
+ metrics: {
348
+ enabled: true,
349
+ collectInterval: 60000,
350
+ retentionPeriod: 43200000 // 12 hours
351
+ }
352
+ }
353
+ }
354
+ ```
355
+
356
+ ### RegTest Configuration
357
+
358
+ ```typescript
359
+ const REGTEST_CONFIG: NetworkConfig = {
360
+ name: 'Bitcoin SV RegTest',
361
+ network: 'regtest',
362
+ chainTracker: {
363
+ provider: 'custom',
364
+ url: 'http://localhost:18332',
365
+ timeout: 5000,
366
+ retries: 1,
367
+ retryDelay: 500,
368
+ fallbacks: [],
369
+ caching: {
370
+ enabled: false, // Disabled for local testing
371
+ ttl: 0,
372
+ maxSize: 0,
373
+ storage: 'memory'
374
+ },
375
+ spv: {
376
+ enabled: false, // Disabled for regtest
377
+ maxDepth: 1,
378
+ requiredConfirmations: 1,
379
+ merkleProofValidation: false,
380
+ headerValidation: false
381
+ }
382
+ },
383
+ feeModel: {
384
+ standard: 0.01, // Minimal fees for regtest
385
+ data: 0.01,
386
+ priority: 0.01
387
+ },
388
+ limits: {
389
+ maxBlockSize: 4000000000,
390
+ maxTransactionSize: 100000000,
391
+ maxScriptSize: 10000,
392
+ maxInputs: 100000,
393
+ maxOutputs: 100000,
394
+ maxSigOps: 4000000,
395
+ dustThreshold: 546,
396
+ requestsPerSecond: 1000, // No limits for local testing
397
+ requestsPerMinute: 60000,
398
+ requestsPerHour: 3600000,
399
+ maxConcurrentRequests: 100,
400
+ maxRetries: 1,
401
+ backoffMultiplier: 1
402
+ },
403
+ endpoints: {
404
+ blocks: '/rest/block',
405
+ transactions: '/rest/tx',
406
+ utxos: '/rest/getutxos',
407
+ balance: '/rest/balance',
408
+ history: '/rest/history',
409
+ mempool: '/rest/mempool',
410
+ broadcast: '/rest/tx',
411
+ fees: '/rest/fees',
412
+ chainInfo: '/rest/chaininfo',
413
+ blockHeight: '/rest/chaininfo',
414
+ difficulty: '/rest/chaininfo'
415
+ },
416
+ security: {
417
+ ssl: {
418
+ enabled: false, // HTTP for local development
419
+ validateCertificates: false,
420
+ allowSelfSigned: true
421
+ },
422
+ authentication: {
423
+ required: true,
424
+ type: 'basic',
425
+ credentials: {
426
+ username: 'rpcuser',
427
+ password: 'rpcpassword'
428
+ }
429
+ },
430
+ rateLimit: {
431
+ enabled: false,
432
+ windowMs: 0,
433
+ maxRequests: 0,
434
+ skipSuccessfulRequests: true
435
+ },
436
+ cors: {
437
+ enabled: true,
438
+ origins: ['*'],
439
+ methods: ['*'],
440
+ headers: ['*']
441
+ }
442
+ },
443
+ monitoring: {
444
+ enabled: false, // Disabled for local testing
445
+ healthCheck: {
446
+ interval: 0,
447
+ timeout: 0,
448
+ endpoints: []
449
+ },
450
+ metrics: {
451
+ enabled: false,
452
+ collectInterval: 0,
453
+ retentionPeriod: 0
454
+ }
455
+ }
456
+ }
457
+ ```
458
+
459
+ ## Network Configuration Builder
460
+
461
+ ### NetworkConfigBuilder Class
462
+
463
+ ```typescript
464
+ class NetworkConfigBuilder {
465
+ private config: Partial<NetworkConfig> = {}
466
+
467
+ name(name: string): NetworkConfigBuilder {
468
+ this.config.name = name
469
+ return this
470
+ }
471
+
472
+ network(network: 'mainnet' | 'testnet' | 'regtest'): NetworkConfigBuilder {
473
+ this.config.network = network
474
+ return this
475
+ }
476
+
477
+ chainTracker(config: Partial<ChainTrackerConfig>): NetworkConfigBuilder {
478
+ this.config.chainTracker = { ...this.config.chainTracker, ...config }
479
+ return this
480
+ }
481
+
482
+ feeModel(config: FeeModelConfig): NetworkConfigBuilder {
483
+ this.config.feeModel = config
484
+ return this
485
+ }
486
+
487
+ limits(config: Partial<NetworkLimits>): NetworkConfigBuilder {
488
+ this.config.limits = { ...this.config.limits, ...config }
489
+ return this
490
+ }
491
+
492
+ endpoints(config: Partial<NetworkEndpoints>): NetworkConfigBuilder {
493
+ this.config.endpoints = { ...this.config.endpoints, ...config }
494
+ return this
495
+ }
496
+
497
+ security(config: Partial<NetworkSecurity>): NetworkConfigBuilder {
498
+ this.config.security = { ...this.config.security, ...config }
499
+ return this
500
+ }
501
+
502
+ monitoring(config: Partial<NetworkMonitoring>): NetworkConfigBuilder {
503
+ this.config.monitoring = { ...this.config.monitoring, ...config }
504
+ return this
505
+ }
506
+
507
+ build(): NetworkConfig {
508
+ // Apply defaults based on network type
509
+ const defaults = this.getNetworkDefaults(this.config.network || 'mainnet')
510
+
511
+ return {
512
+ ...defaults,
513
+ ...this.config,
514
+ chainTracker: { ...defaults.chainTracker, ...this.config.chainTracker },
515
+ limits: { ...defaults.limits, ...this.config.limits },
516
+ endpoints: { ...defaults.endpoints, ...this.config.endpoints },
517
+ security: { ...defaults.security, ...this.config.security },
518
+ monitoring: { ...defaults.monitoring, ...this.config.monitoring }
519
+ } as NetworkConfig
520
+ }
521
+
522
+ private getNetworkDefaults(network: string): NetworkConfig {
523
+ switch (network) {
524
+ case 'mainnet':
525
+ return MAINNET_CONFIG
526
+ case 'testnet':
527
+ return TESTNET_CONFIG
528
+ case 'regtest':
529
+ return REGTEST_CONFIG
530
+ default:
531
+ return MAINNET_CONFIG
532
+ }
533
+ }
534
+ }
535
+ ```
536
+
537
+ ### Usage Examples
538
+
539
+ ```typescript
540
+ // Basic network configuration
541
+ const basicNetwork = new NetworkConfigBuilder()
542
+ .name('Custom Mainnet')
543
+ .network('mainnet')
544
+ .chainTracker({
545
+ provider: 'whatsonchain',
546
+ timeout: 15000
547
+ })
548
+ .build()
549
+
550
+ // Custom network with fallbacks
551
+ const robustNetwork = new NetworkConfigBuilder()
552
+ .name('Production Mainnet')
553
+ .network('mainnet')
554
+ .chainTracker({
555
+ provider: 'whatsonchain',
556
+ url: 'https://api.whatsonchain.com/v1/bsv/main',
557
+ timeout: 30000,
558
+ retries: 3,
559
+ fallbacks: [
560
+ {
561
+ provider: 'blockchair',
562
+ url: 'https://api.blockchair.com/bitcoin-sv',
563
+ priority: 1,
564
+ healthCheck: true
565
+ },
566
+ {
567
+ provider: 'custom',
568
+ url: 'https://custom-api.example.com',
569
+ apiKey: 'your-api-key',
570
+ priority: 2,
571
+ healthCheck: true
572
+ }
573
+ ]
574
+ })
575
+ .security({
576
+ ssl: { enabled: true, validateCertificates: true },
577
+ rateLimit: { enabled: true, windowMs: 60000, maxRequests: 100 }
578
+ })
579
+ .monitoring({
580
+ enabled: true,
581
+ healthCheck: { interval: 30000, timeout: 5000 }
582
+ })
583
+ .build()
584
+ ```
585
+
586
+ ## Chain Tracker Management
587
+
588
+ ### ChainTracker Interface
589
+
590
+ ```typescript
591
+ interface ChainTracker {
592
+ config: ChainTrackerConfig
593
+
594
+ // Block operations
595
+ getBlock(hash: string): Promise<Block>
596
+ getBlockHeader(hash: string): Promise<BlockHeader>
597
+ getBlockHeight(): Promise<number>
598
+
599
+ // Transaction operations
600
+ getTransaction(txid: string): Promise<Transaction>
601
+ getTransactionStatus(txid: string): Promise<TransactionStatus>
602
+ getRawTransaction(txid: string): Promise<string>
603
+
604
+ // UTXO operations
605
+ getUTXOs(address: string): Promise<UTXO[]>
606
+ getBalance(address: string): Promise<number>
607
+ getHistory(address: string): Promise<TransactionHistory[]>
608
+
609
+ // Broadcasting
610
+ broadcast(rawTx: string): Promise<BroadcastResult>
611
+
612
+ // Mempool
613
+ getMempoolInfo(): Promise<MempoolInfo>
614
+ getMempoolTransactions(): Promise<string[]>
615
+
616
+ // Health and status
617
+ getHealth(): Promise<HealthStatus>
618
+ isConnected(): boolean
619
+ }
620
+ ```
621
+
622
+ ### Multi-Provider Chain Tracker
623
+
624
+ ```typescript
625
+ class MultiProviderChainTracker implements ChainTracker {
626
+ private providers: ChainTracker[]
627
+ private currentProvider = 0
628
+ private healthStatus = new Map<string, boolean>()
629
+
630
+ constructor(
631
+ public config: ChainTrackerConfig,
632
+ providers: ChainTracker[]
633
+ ) {
634
+ this.providers = providers
635
+ this.startHealthChecks()
636
+ }
637
+
638
+ async getTransaction(txid: string): Promise<Transaction> {
639
+ const provider = this.selectProvider()
640
+
641
+ try {
642
+ return await provider.getTransaction(txid)
643
+ } catch (error) {
644
+ this.markProviderUnhealthy(provider)
645
+
646
+ if (this.hasHealthyProviders()) {
647
+ return this.getTransaction(txid) // Retry with different provider
648
+ }
649
+
650
+ throw error
651
+ }
652
+ }
653
+
654
+ async broadcast(rawTx: string): Promise<BroadcastResult> {
655
+ const errors: Error[] = []
656
+
657
+ // Try all healthy providers for broadcasting
658
+ for (const provider of this.getHealthyProviders()) {
659
+ try {
660
+ return await provider.broadcast(rawTx)
661
+ } catch (error) {
662
+ errors.push(error as Error)
663
+ this.markProviderUnhealthy(provider)
664
+ }
665
+ }
666
+
667
+ throw new Error(`Broadcast failed on all providers: ${errors.map(e => e.message).join(', ')}`)
668
+ }
669
+
670
+ private selectProvider(): ChainTracker {
671
+ const healthyProviders = this.getHealthyProviders()
672
+
673
+ if (healthyProviders.length === 0) {
674
+ return this.providers[0] // Fallback to first provider
675
+ }
676
+
677
+ // Round-robin selection
678
+ const provider = healthyProviders[this.currentProvider % healthyProviders.length]
679
+ this.currentProvider++
680
+ return provider
681
+ }
682
+
683
+ private getHealthyProviders(): ChainTracker[] {
684
+ return this.providers.filter(provider =>
685
+ this.healthStatus.get(this.getProviderId(provider)) !== false
686
+ )
687
+ }
688
+
689
+ private markProviderUnhealthy(provider: ChainTracker): void {
690
+ this.healthStatus.set(this.getProviderId(provider), false)
691
+ }
692
+
693
+ private getProviderId(provider: ChainTracker): string {
694
+ return provider.config.url || provider.config.provider
695
+ }
696
+
697
+ private startHealthChecks(): void {
698
+ setInterval(async () => {
699
+ for (const provider of this.providers) {
700
+ try {
701
+ await provider.getHealth()
702
+ this.healthStatus.set(this.getProviderId(provider), true)
703
+ } catch (error) {
704
+ this.healthStatus.set(this.getProviderId(provider), false)
705
+ }
706
+ }
707
+ }, 60000) // Check every minute
708
+ }
709
+
710
+ // Implement other ChainTracker methods...
711
+ async getBlock(hash: string): Promise<Block> {
712
+ const provider = this.selectProvider()
713
+ return provider.getBlock(hash)
714
+ }
715
+
716
+ async getUTXOs(address: string): Promise<UTXO[]> {
717
+ const provider = this.selectProvider()
718
+ return provider.getUTXOs(address)
719
+ }
720
+
721
+ async getHealth(): Promise<HealthStatus> {
722
+ const healthyCount = this.getHealthyProviders().length
723
+ const totalCount = this.providers.length
724
+
725
+ return {
726
+ status: healthyCount > 0 ? 'healthy' : 'unhealthy',
727
+ providers: {
728
+ healthy: healthyCount,
729
+ total: totalCount,
730
+ percentage: (healthyCount / totalCount) * 100
731
+ },
732
+ timestamp: Date.now()
733
+ }
734
+ }
735
+
736
+ isConnected(): boolean {
737
+ return this.getHealthyProviders().length > 0
738
+ }
739
+ }
740
+ ```
741
+
742
+ ## Environment-Based Network Configuration
743
+
744
+ ### Environment Configuration Loader
745
+
746
+ ```typescript
747
+ class NetworkEnvironmentConfig {
748
+ static fromEnvironment(): NetworkConfig {
749
+ const network = (process.env.BSV_NETWORK || 'mainnet') as 'mainnet' | 'testnet' | 'regtest'
750
+ const baseConfig = NetworkEnvironmentConfig.getBaseConfig(network)
751
+
752
+ // Override with environment variables
753
+ if (process.env.BSV_CHAIN_TRACKER_URL) {
754
+ baseConfig.chainTracker.url = process.env.BSV_CHAIN_TRACKER_URL
755
+ }
756
+
757
+ if (process.env.BSV_CHAIN_TRACKER_API_KEY) {
758
+ baseConfig.chainTracker.apiKey = process.env.BSV_CHAIN_TRACKER_API_KEY
759
+ }
760
+
761
+ if (process.env.BSV_CHAIN_TRACKER_TIMEOUT) {
762
+ baseConfig.chainTracker.timeout = parseInt(process.env.BSV_CHAIN_TRACKER_TIMEOUT)
763
+ }
764
+
765
+ // Fee model overrides
766
+ if (process.env.BSV_FEE_STANDARD) {
767
+ baseConfig.feeModel.standard = parseFloat(process.env.BSV_FEE_STANDARD)
768
+ }
769
+
770
+ if (process.env.BSV_FEE_DATA) {
771
+ baseConfig.feeModel.data = parseFloat(process.env.BSV_FEE_DATA)
772
+ }
773
+
774
+ // Security overrides
775
+ if (process.env.BSV_SSL_ENABLED) {
776
+ baseConfig.security.ssl.enabled = process.env.BSV_SSL_ENABLED === 'true'
777
+ }
778
+
779
+ if (process.env.BSV_RATE_LIMIT_ENABLED) {
780
+ baseConfig.security.rateLimit.enabled = process.env.BSV_RATE_LIMIT_ENABLED === 'true'
781
+ }
782
+
783
+ return baseConfig
784
+ }
785
+
786
+ private static getBaseConfig(network: string): NetworkConfig {
787
+ switch (network) {
788
+ case 'mainnet':
789
+ return { ...MAINNET_CONFIG }
790
+ case 'testnet':
791
+ return { ...TESTNET_CONFIG }
792
+ case 'regtest':
793
+ return { ...REGTEST_CONFIG }
794
+ default:
795
+ return { ...MAINNET_CONFIG }
796
+ }
797
+ }
798
+
799
+ static validate(config: NetworkConfig): void {
800
+ if (!config.name) {
801
+ throw new Error('Network name is required')
802
+ }
803
+
804
+ if (!config.network) {
805
+ throw new Error('Network type is required')
806
+ }
807
+
808
+ if (!config.chainTracker.url && config.chainTracker.provider === 'custom') {
809
+ throw new Error('Chain tracker URL is required for custom provider')
810
+ }
811
+
812
+ if (config.chainTracker.timeout < 1000) {
813
+ throw new Error('Chain tracker timeout must be at least 1000ms')
814
+ }
815
+
816
+ if (config.limits.maxTransactionSize > config.limits.maxBlockSize) {
817
+ throw new Error('Max transaction size cannot exceed max block size')
818
+ }
819
+
820
+ if (config.security.ssl.enabled && !config.chainTracker.url?.startsWith('https')) {
821
+ console.warn('SSL is enabled but chain tracker URL is not HTTPS')
822
+ }
823
+ }
824
+ }
825
+ ```
826
+
827
+ ## Network Configuration Best Practices
828
+
829
+ ### Production Configuration
830
+
831
+ ```typescript
832
+ const productionConfig = new NetworkConfigBuilder()
833
+ .name('Production Mainnet')
834
+ .network('mainnet')
835
+ .chainTracker({
836
+ provider: 'whatsonchain',
837
+ timeout: 30000,
838
+ retries: 3,
839
+ retryDelay: 2000,
840
+ fallbacks: [
841
+ {
842
+ provider: 'blockchair',
843
+ url: 'https://api.blockchair.com/bitcoin-sv',
844
+ priority: 1,
845
+ healthCheck: true
846
+ }
847
+ ],
848
+ caching: {
849
+ enabled: true,
850
+ ttl: 300000, // 5 minutes
851
+ maxSize: 10000,
852
+ storage: 'memory'
853
+ }
854
+ })
855
+ .security({
856
+ ssl: {
857
+ enabled: true,
858
+ validateCertificates: true,
859
+ allowSelfSigned: false
860
+ },
861
+ rateLimit: {
862
+ enabled: true,
863
+ windowMs: 60000,
864
+ maxRequests: 100
865
+ }
866
+ })
867
+ .monitoring({
868
+ enabled: true,
869
+ healthCheck: {
870
+ interval: 30000,
871
+ timeout: 10000,
872
+ endpoints: ['chainInfo', 'fees']
873
+ },
874
+ metrics: {
875
+ enabled: true,
876
+ collectInterval: 60000,
877
+ retentionPeriod: 86400000
878
+ }
879
+ })
880
+ .build()
881
+ ```
882
+
883
+ ### Development Configuration
884
+
885
+ ```typescript
886
+ const developmentConfig = new NetworkConfigBuilder()
887
+ .name('Development Testnet')
888
+ .network('testnet')
889
+ .chainTracker({
890
+ provider: 'whatsonchain',
891
+ timeout: 15000,
892
+ retries: 5,
893
+ caching: {
894
+ enabled: false // Disable caching for development
895
+ }
896
+ })
897
+ .security({
898
+ ssl: { enabled: true },
899
+ rateLimit: { enabled: false }, // Disable rate limiting for development
900
+ cors: {
901
+ enabled: true,
902
+ origins: ['*'],
903
+ methods: ['*'],
904
+ headers: ['*']
905
+ }
906
+ })
907
+ .monitoring({
908
+ enabled: true,
909
+ healthCheck: { interval: 10000, timeout: 5000 }
910
+ })
911
+ .build()
912
+ ```
913
+
914
+ This comprehensive network configuration reference provides developers with all the tools needed to effectively configure and manage network connectivity in their BSV TypeScript SDK applications.