@bsv/wallet-toolbox 1.7.14 → 1.7.16

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 (1194) hide show
  1. package/.github/workflows/push.yaml +136 -62
  2. package/CHANGELOG.md +5 -0
  3. package/docs/client.md +4 -2
  4. package/docs/storage.md +4 -2
  5. package/docs/wallet.md +4 -2
  6. package/mobile/node_modules/.package-lock.json +14 -0
  7. package/mobile/node_modules/@bsv/sdk/LICENSE.txt +28 -0
  8. package/mobile/node_modules/@bsv/sdk/README.md +133 -0
  9. package/mobile/node_modules/@bsv/sdk/dist/cjs/mod.js +36 -0
  10. package/mobile/node_modules/@bsv/sdk/dist/cjs/mod.js.map +1 -0
  11. package/mobile/node_modules/@bsv/sdk/dist/cjs/package.json +70 -0
  12. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/Peer.js +695 -0
  13. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/Peer.js.map +1 -0
  14. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/SessionManager.js +130 -0
  15. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/SessionManager.js.map +1 -0
  16. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/certificates/Certificate.js +236 -0
  17. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/certificates/Certificate.js.map +1 -0
  18. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/certificates/MasterCertificate.js +245 -0
  19. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -0
  20. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/certificates/VerifiableCertificate.js +96 -0
  21. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -0
  22. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +111 -0
  23. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -0
  24. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/certificates/index.js +26 -0
  25. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/certificates/index.js.map +1 -0
  26. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/clients/AuthFetch.js +734 -0
  27. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -0
  28. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/clients/__tests__/AuthFetch.test.js +189 -0
  29. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/clients/__tests__/AuthFetch.test.js.map +1 -0
  30. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/clients/index.js +18 -0
  31. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/clients/index.js.map +1 -0
  32. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/index.js +24 -0
  33. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/index.js.map +1 -0
  34. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +424 -0
  35. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -0
  36. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/transports/__tests__/SimplifiedFetchTransport.test.js +144 -0
  37. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/transports/__tests__/SimplifiedFetchTransport.test.js.map +1 -0
  38. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/transports/index.js +18 -0
  39. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/transports/index.js.map +1 -0
  40. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/types.js +3 -0
  41. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/types.js.map +1 -0
  42. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/utils/createNonce.js +62 -0
  43. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/utils/createNonce.js.map +1 -0
  44. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/utils/getVerifiableCertificates.js +31 -0
  45. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/utils/getVerifiableCertificates.js.map +1 -0
  46. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/utils/index.js +21 -0
  47. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/utils/index.js.map +1 -0
  48. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/utils/validateCertificates.js +45 -0
  49. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -0
  50. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/utils/verifyNonce.js +61 -0
  51. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -0
  52. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/compat/BSM.js +94 -0
  53. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/compat/BSM.js.map +1 -0
  54. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/compat/ECIES.js +590 -0
  55. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/compat/ECIES.js.map +1 -0
  56. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/compat/HD.js +354 -0
  57. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/compat/HD.js.map +1 -0
  58. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/compat/Mnemonic.js +314 -0
  59. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/compat/Mnemonic.js.map +1 -0
  60. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/compat/Utxo.js +51 -0
  61. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/compat/Utxo.js.map +1 -0
  62. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/compat/bip-39-wordlist-en.js +2057 -0
  63. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/compat/bip-39-wordlist-en.js.map +1 -0
  64. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/compat/index.js +49 -0
  65. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/compat/index.js.map +1 -0
  66. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/identity/ContactsManager.js +338 -0
  67. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/identity/ContactsManager.js.map +1 -0
  68. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/identity/IdentityClient.js +367 -0
  69. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/identity/IdentityClient.js.map +1 -0
  70. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/identity/index.js +19 -0
  71. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/identity/index.js.map +1 -0
  72. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/identity/types/index.js +30 -0
  73. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/identity/types/index.js.map +1 -0
  74. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/kvstore/GlobalKVStore.js +470 -0
  75. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/kvstore/GlobalKVStore.js.map +1 -0
  76. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/kvstore/LocalKVStore.js +343 -0
  77. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/kvstore/LocalKVStore.js.map +1 -0
  78. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/kvstore/index.js +11 -0
  79. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/kvstore/index.js.map +1 -0
  80. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/kvstore/kvStoreInterpreter.js +88 -0
  81. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/kvstore/kvStoreInterpreter.js.map +1 -0
  82. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/kvstore/types.js +12 -0
  83. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/kvstore/types.js.map +1 -0
  84. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/messages/EncryptedMessage.js +71 -0
  85. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/messages/EncryptedMessage.js.map +1 -0
  86. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/messages/SignedMessage.js +86 -0
  87. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/messages/SignedMessage.js.map +1 -0
  88. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/messages/index.js +39 -0
  89. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/messages/index.js.map +1 -0
  90. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/overlay-tools/Historian.js +153 -0
  91. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/overlay-tools/Historian.js.map +1 -0
  92. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/overlay-tools/HostReputationTracker.js +216 -0
  93. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/overlay-tools/HostReputationTracker.js.map +1 -0
  94. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/overlay-tools/LookupResolver.js +398 -0
  95. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -0
  96. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js +81 -0
  97. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -0
  98. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +408 -0
  99. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -0
  100. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/overlay-tools/index.js +36 -0
  101. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/overlay-tools/index.js.map +1 -0
  102. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/overlay-tools/withDoubleSpendRetry.js +54 -0
  103. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/overlay-tools/withDoubleSpendRetry.js.map +1 -0
  104. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/AESGCM.js +376 -0
  105. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/AESGCM.js.map +1 -0
  106. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/BasePoint.js +19 -0
  107. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/BasePoint.js.map +1 -0
  108. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/BigNumber.js +1367 -0
  109. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/BigNumber.js.map +1 -0
  110. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Curve.js +1149 -0
  111. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Curve.js.map +1 -0
  112. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/DRBG.js +109 -0
  113. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/DRBG.js.map +1 -0
  114. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/ECDSA.js +188 -0
  115. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/ECDSA.js.map +1 -0
  116. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Hash.js +1687 -0
  117. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Hash.js.map +1 -0
  118. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/JacobianPoint.js +427 -0
  119. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/JacobianPoint.js.map +1 -0
  120. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/K256.js +127 -0
  121. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/K256.js.map +1 -0
  122. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Mersenne.js +113 -0
  123. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Mersenne.js.map +1 -0
  124. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/MontgomoryMethod.js +150 -0
  125. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -0
  126. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Point.js +1098 -0
  127. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Point.js.map +1 -0
  128. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Polynomial.js +83 -0
  129. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Polynomial.js.map +1 -0
  130. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/PrivateKey.js +519 -0
  131. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/PrivateKey.js.map +1 -0
  132. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/PublicKey.js +261 -0
  133. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/PublicKey.js.map +1 -0
  134. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Random.js +91 -0
  135. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Random.js.map +1 -0
  136. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/ReductionContext.js +490 -0
  137. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/ReductionContext.js.map +1 -0
  138. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Schnorr.js +98 -0
  139. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Schnorr.js.map +1 -0
  140. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Secp256r1.js +327 -0
  141. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Secp256r1.js.map +1 -0
  142. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Signature.js +358 -0
  143. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/Signature.js.map +1 -0
  144. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/SymmetricKey.js +96 -0
  145. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/SymmetricKey.js.map +1 -0
  146. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/TransactionSignature.js +235 -0
  147. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/TransactionSignature.js.map +1 -0
  148. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/hex.js +33 -0
  149. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/hex.js.map +1 -0
  150. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/index.js +69 -0
  151. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/index.js.map +1 -0
  152. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/utils.js +863 -0
  153. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/primitives/utils.js.map +1 -0
  154. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/registry/RegistryClient.js +533 -0
  155. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/registry/RegistryClient.js.map +1 -0
  156. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/registry/index.js +19 -0
  157. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/registry/index.js.map +1 -0
  158. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/registry/types/index.js +3 -0
  159. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/registry/types/index.js.map +1 -0
  160. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/LockingScript.js +35 -0
  161. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/LockingScript.js.map +1 -0
  162. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/OP.js +207 -0
  163. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/OP.js.map +1 -0
  164. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/Script.js +567 -0
  165. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/Script.js.map +1 -0
  166. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/ScriptChunk.js +3 -0
  167. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/ScriptChunk.js.map +1 -0
  168. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/ScriptEvaluationError.js +27 -0
  169. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/ScriptEvaluationError.js.map +1 -0
  170. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/ScriptTemplate.js +3 -0
  171. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/ScriptTemplate.js.map +1 -0
  172. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/ScriptTemplateUnlock.js +3 -0
  173. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/ScriptTemplateUnlock.js.map +1 -0
  174. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/Spend.js +1208 -0
  175. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/Spend.js.map +1 -0
  176. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/UnlockingScript.js +35 -0
  177. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/UnlockingScript.js.map +1 -0
  178. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/index.js +34 -0
  179. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/index.js.map +1 -0
  180. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/templates/P2PKH.js +129 -0
  181. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/templates/P2PKH.js.map +1 -0
  182. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/templates/PushDrop.js +219 -0
  183. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/templates/PushDrop.js.map +1 -0
  184. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/templates/RPuzzle.js +130 -0
  185. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/templates/RPuzzle.js.map +1 -0
  186. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/templates/index.js +13 -0
  187. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/script/templates/index.js.map +1 -0
  188. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/storage/StorageDownloader.js +100 -0
  189. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/storage/StorageDownloader.js.map +1 -0
  190. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/storage/StorageUploader.js +213 -0
  191. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/storage/StorageUploader.js.map +1 -0
  192. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/storage/StorageUtils.js +81 -0
  193. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/storage/StorageUtils.js.map +1 -0
  194. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/storage/index.js +42 -0
  195. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/storage/index.js.map +1 -0
  196. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/totp/index.js +18 -0
  197. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/totp/index.js.map +1 -0
  198. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/totp/totp.js +92 -0
  199. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/totp/totp.js.map +1 -0
  200. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/Beef.js +840 -0
  201. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/Beef.js.map +1 -0
  202. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/BeefParty.js +117 -0
  203. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/BeefParty.js.map +1 -0
  204. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/BeefTx.js +191 -0
  205. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/BeefTx.js.map +1 -0
  206. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/Broadcaster.js +17 -0
  207. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/Broadcaster.js.map +1 -0
  208. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/ChainTracker.js +3 -0
  209. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/ChainTracker.js.map +1 -0
  210. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/FeeModel.js +3 -0
  211. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/FeeModel.js.map +1 -0
  212. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/MerklePath.js +383 -0
  213. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/MerklePath.js.map +1 -0
  214. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/Transaction.js +911 -0
  215. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/Transaction.js.map +1 -0
  216. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/TransactionInput.js +3 -0
  217. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/TransactionInput.js.map +1 -0
  218. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/TransactionOutput.js +3 -0
  219. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/TransactionOutput.js.map +1 -0
  220. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/broadcasters/ARC.js +181 -0
  221. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -0
  222. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js +11 -0
  223. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -0
  224. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/broadcasters/Teranode.js +63 -0
  225. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/broadcasters/Teranode.js.map +1 -0
  226. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +65 -0
  227. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -0
  228. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/broadcasters/index.js +15 -0
  229. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/broadcasters/index.js.map +1 -0
  230. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/chaintrackers/BlockHeadersService.js +91 -0
  231. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/chaintrackers/BlockHeadersService.js.map +1 -0
  232. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js +11 -0
  233. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -0
  234. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +67 -0
  235. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -0
  236. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/chaintrackers/index.js +13 -0
  237. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/chaintrackers/index.js.map +1 -0
  238. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/fee-models/LivePolicy.js +90 -0
  239. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/fee-models/LivePolicy.js.map +1 -0
  240. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js +69 -0
  241. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -0
  242. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/fee-models/index.js +11 -0
  243. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/fee-models/index.js.map +1 -0
  244. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/http/BinaryFetchClient.js +94 -0
  245. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/http/BinaryFetchClient.js.map +1 -0
  246. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/http/DefaultHttpClient.js +37 -0
  247. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -0
  248. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/http/FetchHttpClient.js +31 -0
  249. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -0
  250. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/http/HttpClient.js +3 -0
  251. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/http/HttpClient.js.map +1 -0
  252. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/http/NodejsHttpClient.js +43 -0
  253. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -0
  254. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/http/index.js +12 -0
  255. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/http/index.js.map +1 -0
  256. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/index.js +33 -0
  257. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/transaction/index.js.map +1 -0
  258. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/CachedKeyDeriver.js +210 -0
  259. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -0
  260. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/KeyDeriver.js +191 -0
  261. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/KeyDeriver.js.map +1 -0
  262. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/ProtoWallet.js +188 -0
  263. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/ProtoWallet.js.map +1 -0
  264. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/WERR_INSUFFICIENT_FUNDS.js +26 -0
  265. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/WERR_INSUFFICIENT_FUNDS.js.map +1 -0
  266. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/WERR_INVALID_PARAMETER.js +20 -0
  267. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/WERR_INVALID_PARAMETER.js.map +1 -0
  268. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/WERR_REVIEW_ACTIONS.js +29 -0
  269. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/WERR_REVIEW_ACTIONS.js.map +1 -0
  270. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/Wallet.interfaces.js +17 -0
  271. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/Wallet.interfaces.js.map +1 -0
  272. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/WalletClient.js +222 -0
  273. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/WalletClient.js.map +1 -0
  274. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/WalletError.js +84 -0
  275. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/WalletError.js.map +1 -0
  276. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/WalletLoggerInterface.js +8 -0
  277. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/WalletLoggerInterface.js.map +1 -0
  278. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/index.js +64 -0
  279. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/index.js.map +1 -0
  280. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +153 -0
  281. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -0
  282. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +78 -0
  283. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -0
  284. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/ReactNativeWebView.js +175 -0
  285. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/ReactNativeWebView.js.map +1 -0
  286. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/WalletWire.js +3 -0
  287. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/WalletWire.js.map +1 -0
  288. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/WalletWireCalls.js +36 -0
  289. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/WalletWireCalls.js.map +1 -0
  290. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +1854 -0
  291. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -0
  292. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +1411 -0
  293. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -0
  294. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/XDM.js +172 -0
  295. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/XDM.js.map +1 -0
  296. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/index.js +37 -0
  297. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/index.js.map +1 -0
  298. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/utils/toOriginHeader.js +20 -0
  299. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/utils/toOriginHeader.js.map +1 -0
  300. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/window.CWI.js +102 -0
  301. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -0
  302. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/validationHelpers.js +931 -0
  303. package/mobile/node_modules/@bsv/sdk/dist/cjs/src/wallet/validationHelpers.js.map +1 -0
  304. package/mobile/node_modules/@bsv/sdk/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  305. package/mobile/node_modules/@bsv/sdk/dist/esm/mod.js +20 -0
  306. package/mobile/node_modules/@bsv/sdk/dist/esm/mod.js.map +1 -0
  307. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/Peer.js +663 -0
  308. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/Peer.js.map +1 -0
  309. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/SessionManager.js +134 -0
  310. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/SessionManager.js.map +1 -0
  311. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/certificates/Certificate.js +225 -0
  312. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/certificates/Certificate.js.map +1 -0
  313. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/certificates/MasterCertificate.js +206 -0
  314. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -0
  315. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/certificates/VerifiableCertificate.js +58 -0
  316. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -0
  317. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +105 -0
  318. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -0
  319. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/certificates/index.js +5 -0
  320. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/certificates/index.js.map +1 -0
  321. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/clients/AuthFetch.js +698 -0
  322. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/clients/AuthFetch.js.map +1 -0
  323. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/clients/__tests__/AuthFetch.test.js +187 -0
  324. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/clients/__tests__/AuthFetch.test.js.map +1 -0
  325. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/clients/index.js +2 -0
  326. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/clients/index.js.map +1 -0
  327. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/index.js +8 -0
  328. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/index.js.map +1 -0
  329. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +390 -0
  330. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -0
  331. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/transports/__tests__/SimplifiedFetchTransport.test.js +109 -0
  332. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/transports/__tests__/SimplifiedFetchTransport.test.js.map +1 -0
  333. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/transports/index.js +2 -0
  334. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/transports/index.js.map +1 -0
  335. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/types.js +2 -0
  336. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/types.js.map +1 -0
  337. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/utils/createNonce.js +23 -0
  338. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/utils/createNonce.js.map +1 -0
  339. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/utils/getVerifiableCertificates.js +27 -0
  340. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/utils/getVerifiableCertificates.js.map +1 -0
  341. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/utils/index.js +5 -0
  342. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/utils/index.js.map +1 -0
  343. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/utils/validateCertificates.js +41 -0
  344. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/utils/validateCertificates.js.map +1 -0
  345. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/utils/verifyNonce.js +25 -0
  346. package/mobile/node_modules/@bsv/sdk/dist/esm/src/auth/utils/verifyNonce.js.map +1 -0
  347. package/mobile/node_modules/@bsv/sdk/dist/esm/src/compat/BSM.js +52 -0
  348. package/mobile/node_modules/@bsv/sdk/dist/esm/src/compat/BSM.js.map +1 -0
  349. package/mobile/node_modules/@bsv/sdk/dist/esm/src/compat/ECIES.js +551 -0
  350. package/mobile/node_modules/@bsv/sdk/dist/esm/src/compat/ECIES.js.map +1 -0
  351. package/mobile/node_modules/@bsv/sdk/dist/esm/src/compat/HD.js +322 -0
  352. package/mobile/node_modules/@bsv/sdk/dist/esm/src/compat/HD.js.map +1 -0
  353. package/mobile/node_modules/@bsv/sdk/dist/esm/src/compat/Mnemonic.js +278 -0
  354. package/mobile/node_modules/@bsv/sdk/dist/esm/src/compat/Mnemonic.js.map +1 -0
  355. package/mobile/node_modules/@bsv/sdk/dist/esm/src/compat/Utxo.js +45 -0
  356. package/mobile/node_modules/@bsv/sdk/dist/esm/src/compat/Utxo.js.map +1 -0
  357. package/mobile/node_modules/@bsv/sdk/dist/esm/src/compat/bip-39-wordlist-en.js +2054 -0
  358. package/mobile/node_modules/@bsv/sdk/dist/esm/src/compat/bip-39-wordlist-en.js.map +1 -0
  359. package/mobile/node_modules/@bsv/sdk/dist/esm/src/compat/index.js +6 -0
  360. package/mobile/node_modules/@bsv/sdk/dist/esm/src/compat/index.js.map +1 -0
  361. package/mobile/node_modules/@bsv/sdk/dist/esm/src/identity/ContactsManager.js +334 -0
  362. package/mobile/node_modules/@bsv/sdk/dist/esm/src/identity/ContactsManager.js.map +1 -0
  363. package/mobile/node_modules/@bsv/sdk/dist/esm/src/identity/IdentityClient.js +364 -0
  364. package/mobile/node_modules/@bsv/sdk/dist/esm/src/identity/IdentityClient.js.map +1 -0
  365. package/mobile/node_modules/@bsv/sdk/dist/esm/src/identity/index.js +3 -0
  366. package/mobile/node_modules/@bsv/sdk/dist/esm/src/identity/index.js.map +1 -0
  367. package/mobile/node_modules/@bsv/sdk/dist/esm/src/identity/types/index.js +27 -0
  368. package/mobile/node_modules/@bsv/sdk/dist/esm/src/identity/types/index.js.map +1 -0
  369. package/mobile/node_modules/@bsv/sdk/dist/esm/src/kvstore/GlobalKVStore.js +456 -0
  370. package/mobile/node_modules/@bsv/sdk/dist/esm/src/kvstore/GlobalKVStore.js.map +1 -0
  371. package/mobile/node_modules/@bsv/sdk/dist/esm/src/kvstore/LocalKVStore.js +328 -0
  372. package/mobile/node_modules/@bsv/sdk/dist/esm/src/kvstore/LocalKVStore.js.map +1 -0
  373. package/mobile/node_modules/@bsv/sdk/dist/esm/src/kvstore/index.js +3 -0
  374. package/mobile/node_modules/@bsv/sdk/dist/esm/src/kvstore/index.js.map +1 -0
  375. package/mobile/node_modules/@bsv/sdk/dist/esm/src/kvstore/kvStoreInterpreter.js +51 -0
  376. package/mobile/node_modules/@bsv/sdk/dist/esm/src/kvstore/kvStoreInterpreter.js.map +1 -0
  377. package/mobile/node_modules/@bsv/sdk/dist/esm/src/kvstore/types.js +9 -0
  378. package/mobile/node_modules/@bsv/sdk/dist/esm/src/kvstore/types.js.map +1 -0
  379. package/mobile/node_modules/@bsv/sdk/dist/esm/src/messages/EncryptedMessage.js +63 -0
  380. package/mobile/node_modules/@bsv/sdk/dist/esm/src/messages/EncryptedMessage.js.map +1 -0
  381. package/mobile/node_modules/@bsv/sdk/dist/esm/src/messages/SignedMessage.js +78 -0
  382. package/mobile/node_modules/@bsv/sdk/dist/esm/src/messages/SignedMessage.js.map +1 -0
  383. package/mobile/node_modules/@bsv/sdk/dist/esm/src/messages/index.js +3 -0
  384. package/mobile/node_modules/@bsv/sdk/dist/esm/src/messages/index.js.map +1 -0
  385. package/mobile/node_modules/@bsv/sdk/dist/esm/src/overlay-tools/Historian.js +155 -0
  386. package/mobile/node_modules/@bsv/sdk/dist/esm/src/overlay-tools/Historian.js.map +1 -0
  387. package/mobile/node_modules/@bsv/sdk/dist/esm/src/overlay-tools/HostReputationTracker.js +213 -0
  388. package/mobile/node_modules/@bsv/sdk/dist/esm/src/overlay-tools/HostReputationTracker.js.map +1 -0
  389. package/mobile/node_modules/@bsv/sdk/dist/esm/src/overlay-tools/LookupResolver.js +372 -0
  390. package/mobile/node_modules/@bsv/sdk/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -0
  391. package/mobile/node_modules/@bsv/sdk/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js +76 -0
  392. package/mobile/node_modules/@bsv/sdk/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -0
  393. package/mobile/node_modules/@bsv/sdk/dist/esm/src/overlay-tools/SHIPBroadcaster.js +376 -0
  394. package/mobile/node_modules/@bsv/sdk/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -0
  395. package/mobile/node_modules/@bsv/sdk/dist/esm/src/overlay-tools/index.js +11 -0
  396. package/mobile/node_modules/@bsv/sdk/dist/esm/src/overlay-tools/index.js.map +1 -0
  397. package/mobile/node_modules/@bsv/sdk/dist/esm/src/overlay-tools/withDoubleSpendRetry.js +48 -0
  398. package/mobile/node_modules/@bsv/sdk/dist/esm/src/overlay-tools/withDoubleSpendRetry.js.map +1 -0
  399. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/AESGCM.js +363 -0
  400. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/AESGCM.js.map +1 -0
  401. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/BasePoint.js +16 -0
  402. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/BasePoint.js.map +1 -0
  403. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/BigNumber.js +1373 -0
  404. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/BigNumber.js.map +1 -0
  405. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Curve.js +1164 -0
  406. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Curve.js.map +1 -0
  407. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/DRBG.js +108 -0
  408. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/DRBG.js.map +1 -0
  409. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/ECDSA.js +180 -0
  410. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/ECDSA.js.map +1 -0
  411. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Hash.js +1693 -0
  412. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Hash.js.map +1 -0
  413. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/JacobianPoint.js +425 -0
  414. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/JacobianPoint.js.map +1 -0
  415. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/K256.js +121 -0
  416. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/K256.js.map +1 -0
  417. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Mersenne.js +112 -0
  418. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Mersenne.js.map +1 -0
  419. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/MontgomoryMethod.js +149 -0
  420. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -0
  421. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Point.js +1078 -0
  422. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Point.js.map +1 -0
  423. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Polynomial.js +79 -0
  424. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Polynomial.js.map +1 -0
  425. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/PrivateKey.js +481 -0
  426. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/PrivateKey.js.map +1 -0
  427. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/PublicKey.js +255 -0
  428. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/PublicKey.js.map +1 -0
  429. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Random.js +90 -0
  430. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Random.js.map +1 -0
  431. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/ReductionContext.js +486 -0
  432. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/ReductionContext.js.map +1 -0
  433. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Schnorr.js +93 -0
  434. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Schnorr.js.map +1 -0
  435. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Secp256r1.js +319 -0
  436. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Secp256r1.js.map +1 -0
  437. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Signature.js +361 -0
  438. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/Signature.js.map +1 -0
  439. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/SymmetricKey.js +90 -0
  440. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/SymmetricKey.js.map +1 -0
  441. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/TransactionSignature.js +197 -0
  442. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/TransactionSignature.js.map +1 -0
  443. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/hex.js +29 -0
  444. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/hex.js.map +1 -0
  445. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/index.js +16 -0
  446. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/index.js.map +1 -0
  447. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/utils.js +847 -0
  448. package/mobile/node_modules/@bsv/sdk/dist/esm/src/primitives/utils.js.map +1 -0
  449. package/mobile/node_modules/@bsv/sdk/dist/esm/src/registry/RegistryClient.js +534 -0
  450. package/mobile/node_modules/@bsv/sdk/dist/esm/src/registry/RegistryClient.js.map +1 -0
  451. package/mobile/node_modules/@bsv/sdk/dist/esm/src/registry/index.js +3 -0
  452. package/mobile/node_modules/@bsv/sdk/dist/esm/src/registry/index.js.map +1 -0
  453. package/mobile/node_modules/@bsv/sdk/dist/esm/src/registry/types/index.js +2 -0
  454. package/mobile/node_modules/@bsv/sdk/dist/esm/src/registry/types/index.js.map +1 -0
  455. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/LockingScript.js +29 -0
  456. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/LockingScript.js.map +1 -0
  457. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/OP.js +205 -0
  458. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/OP.js.map +1 -0
  459. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/Script.js +565 -0
  460. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/Script.js.map +1 -0
  461. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/ScriptChunk.js +2 -0
  462. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/ScriptChunk.js.map +1 -0
  463. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/ScriptEvaluationError.js +33 -0
  464. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/ScriptEvaluationError.js.map +1 -0
  465. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/ScriptTemplate.js +2 -0
  466. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/ScriptTemplate.js.map +1 -0
  467. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/ScriptTemplateUnlock.js +2 -0
  468. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/ScriptTemplateUnlock.js.map +1 -0
  469. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/Spend.js +1190 -0
  470. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/Spend.js.map +1 -0
  471. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/UnlockingScript.js +29 -0
  472. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/UnlockingScript.js.map +1 -0
  473. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/index.js +8 -0
  474. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/index.js.map +1 -0
  475. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/templates/P2PKH.js +125 -0
  476. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/templates/P2PKH.js.map +1 -0
  477. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/templates/PushDrop.js +220 -0
  478. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/templates/PushDrop.js.map +1 -0
  479. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/templates/RPuzzle.js +124 -0
  480. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/templates/RPuzzle.js.map +1 -0
  481. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/templates/index.js +4 -0
  482. package/mobile/node_modules/@bsv/sdk/dist/esm/src/script/templates/index.js.map +1 -0
  483. package/mobile/node_modules/@bsv/sdk/dist/esm/src/storage/StorageDownloader.js +94 -0
  484. package/mobile/node_modules/@bsv/sdk/dist/esm/src/storage/StorageDownloader.js.map +1 -0
  485. package/mobile/node_modules/@bsv/sdk/dist/esm/src/storage/StorageUploader.js +178 -0
  486. package/mobile/node_modules/@bsv/sdk/dist/esm/src/storage/StorageUploader.js.map +1 -0
  487. package/mobile/node_modules/@bsv/sdk/dist/esm/src/storage/StorageUtils.js +73 -0
  488. package/mobile/node_modules/@bsv/sdk/dist/esm/src/storage/StorageUtils.js.map +1 -0
  489. package/mobile/node_modules/@bsv/sdk/dist/esm/src/storage/index.js +4 -0
  490. package/mobile/node_modules/@bsv/sdk/dist/esm/src/storage/index.js.map +1 -0
  491. package/mobile/node_modules/@bsv/sdk/dist/esm/src/totp/index.js +2 -0
  492. package/mobile/node_modules/@bsv/sdk/dist/esm/src/totp/index.js.map +1 -0
  493. package/mobile/node_modules/@bsv/sdk/dist/esm/src/totp/totp.js +85 -0
  494. package/mobile/node_modules/@bsv/sdk/dist/esm/src/totp/totp.js.map +1 -0
  495. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/Beef.js +835 -0
  496. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/Beef.js.map +1 -0
  497. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/BeefParty.js +113 -0
  498. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/BeefParty.js.map +1 -0
  499. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/BeefTx.js +189 -0
  500. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/BeefTx.js.map +1 -0
  501. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/Broadcaster.js +13 -0
  502. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/Broadcaster.js.map +1 -0
  503. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/ChainTracker.js +2 -0
  504. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/ChainTracker.js.map +1 -0
  505. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/FeeModel.js +2 -0
  506. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/FeeModel.js.map +1 -0
  507. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/MerklePath.js +382 -0
  508. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/MerklePath.js.map +1 -0
  509. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/Transaction.js +914 -0
  510. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/Transaction.js.map +1 -0
  511. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/TransactionInput.js +2 -0
  512. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/TransactionInput.js.map +1 -0
  513. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/TransactionOutput.js +2 -0
  514. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/TransactionOutput.js.map +1 -0
  515. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/broadcasters/ARC.js +182 -0
  516. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -0
  517. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js +5 -0
  518. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -0
  519. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/broadcasters/Teranode.js +62 -0
  520. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/broadcasters/Teranode.js.map +1 -0
  521. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +65 -0
  522. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -0
  523. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/broadcasters/index.js +5 -0
  524. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/broadcasters/index.js.map +1 -0
  525. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/chaintrackers/BlockHeadersService.js +90 -0
  526. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/chaintrackers/BlockHeadersService.js.map +1 -0
  527. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js +5 -0
  528. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -0
  529. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +68 -0
  530. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -0
  531. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/chaintrackers/index.js +4 -0
  532. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/chaintrackers/index.js.map +1 -0
  533. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/fee-models/LivePolicy.js +85 -0
  534. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/fee-models/LivePolicy.js.map +1 -0
  535. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js +71 -0
  536. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -0
  537. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/fee-models/index.js +3 -0
  538. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/fee-models/index.js.map +1 -0
  539. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/http/BinaryFetchClient.js +90 -0
  540. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/http/BinaryFetchClient.js.map +1 -0
  541. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/http/DefaultHttpClient.js +34 -0
  542. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -0
  543. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/http/FetchHttpClient.js +28 -0
  544. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -0
  545. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/http/HttpClient.js +2 -0
  546. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/http/HttpClient.js.map +1 -0
  547. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/http/NodejsHttpClient.js +40 -0
  548. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -0
  549. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/http/index.js +5 -0
  550. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/http/index.js.map +1 -0
  551. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/index.js +7 -0
  552. package/mobile/node_modules/@bsv/sdk/dist/esm/src/transaction/index.js.map +1 -0
  553. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/CachedKeyDeriver.js +218 -0
  554. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -0
  555. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/KeyDeriver.js +192 -0
  556. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/KeyDeriver.js.map +1 -0
  557. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/ProtoWallet.js +182 -0
  558. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/ProtoWallet.js.map +1 -0
  559. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/WERR_INSUFFICIENT_FUNDS.js +25 -0
  560. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/WERR_INSUFFICIENT_FUNDS.js.map +1 -0
  561. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/WERR_INVALID_PARAMETER.js +18 -0
  562. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/WERR_INVALID_PARAMETER.js.map +1 -0
  563. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/WERR_REVIEW_ACTIONS.js +31 -0
  564. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/WERR_REVIEW_ACTIONS.js.map +1 -0
  565. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/Wallet.interfaces.js +14 -0
  566. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/Wallet.interfaces.js.map +1 -0
  567. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/WalletClient.js +218 -0
  568. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/WalletClient.js.map +1 -0
  569. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/WalletError.js +81 -0
  570. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/WalletError.js.map +1 -0
  571. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/WalletLoggerInterface.js +7 -0
  572. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/WalletLoggerInterface.js.map +1 -0
  573. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/index.js +15 -0
  574. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/index.js.map +1 -0
  575. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +151 -0
  576. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -0
  577. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/HTTPWalletWire.js +42 -0
  578. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/HTTPWalletWire.js.map +1 -0
  579. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/ReactNativeWebView.js +137 -0
  580. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/ReactNativeWebView.js.map +1 -0
  581. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/WalletWire.js +2 -0
  582. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/WalletWire.js.map +1 -0
  583. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/WalletWireCalls.js +34 -0
  584. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/WalletWireCalls.js.map +1 -0
  585. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1816 -0
  586. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -0
  587. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +1373 -0
  588. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -0
  589. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/XDM.js +134 -0
  590. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/XDM.js.map +1 -0
  591. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/index.js +10 -0
  592. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/index.js.map +1 -0
  593. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/utils/toOriginHeader.js +17 -0
  594. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/utils/toOriginHeader.js.map +1 -0
  595. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/window.CWI.js +100 -0
  596. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -0
  597. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/validationHelpers.js +860 -0
  598. package/mobile/node_modules/@bsv/sdk/dist/esm/src/wallet/validationHelpers.js.map +1 -0
  599. package/mobile/node_modules/@bsv/sdk/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  600. package/mobile/node_modules/@bsv/sdk/dist/types/mod.d.ts +20 -0
  601. package/mobile/node_modules/@bsv/sdk/dist/types/mod.d.ts.map +1 -0
  602. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/Peer.d.ts +200 -0
  603. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/Peer.d.ts.map +1 -0
  604. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/SessionManager.d.ts +60 -0
  605. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/SessionManager.d.ts.map +1 -0
  606. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/certificates/Certificate.d.ts +112 -0
  607. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -0
  608. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/certificates/MasterCertificate.d.ts +108 -0
  609. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -0
  610. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/certificates/VerifiableCertificate.d.ts +37 -0
  611. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -0
  612. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts +29 -0
  613. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts.map +1 -0
  614. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/certificates/index.d.ts +5 -0
  615. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/certificates/index.d.ts.map +1 -0
  616. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/clients/AuthFetch.d.ts +126 -0
  617. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -0
  618. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/clients/__tests__/AuthFetch.test.d.ts +2 -0
  619. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/clients/__tests__/AuthFetch.test.d.ts.map +1 -0
  620. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/clients/index.d.ts +2 -0
  621. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/clients/index.d.ts.map +1 -0
  622. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/index.d.ts +8 -0
  623. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/index.d.ts.map +1 -0
  624. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts +57 -0
  625. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts.map +1 -0
  626. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/transports/__tests__/SimplifiedFetchTransport.test.d.ts +2 -0
  627. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/transports/__tests__/SimplifiedFetchTransport.test.d.ts.map +1 -0
  628. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/transports/index.d.ts +2 -0
  629. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/transports/index.d.ts.map +1 -0
  630. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/types.d.ts +32 -0
  631. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/types.d.ts.map +1 -0
  632. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/utils/createNonce.d.ts +9 -0
  633. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/utils/createNonce.d.ts.map +1 -0
  634. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/utils/getVerifiableCertificates.d.ts +13 -0
  635. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/utils/getVerifiableCertificates.d.ts.map +1 -0
  636. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/utils/index.d.ts +5 -0
  637. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/utils/index.d.ts.map +1 -0
  638. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/utils/validateCertificates.d.ts +12 -0
  639. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/utils/validateCertificates.d.ts.map +1 -0
  640. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/utils/verifyNonce.d.ts +10 -0
  641. package/mobile/node_modules/@bsv/sdk/dist/types/src/auth/utils/verifyNonce.d.ts.map +1 -0
  642. package/mobile/node_modules/@bsv/sdk/dist/types/src/compat/BSM.d.ts +29 -0
  643. package/mobile/node_modules/@bsv/sdk/dist/types/src/compat/BSM.d.ts.map +1 -0
  644. package/mobile/node_modules/@bsv/sdk/dist/types/src/compat/ECIES.d.ts +62 -0
  645. package/mobile/node_modules/@bsv/sdk/dist/types/src/compat/ECIES.d.ts.map +1 -0
  646. package/mobile/node_modules/@bsv/sdk/dist/types/src/compat/HD.d.ts +131 -0
  647. package/mobile/node_modules/@bsv/sdk/dist/types/src/compat/HD.d.ts.map +1 -0
  648. package/mobile/node_modules/@bsv/sdk/dist/types/src/compat/Mnemonic.d.ts +132 -0
  649. package/mobile/node_modules/@bsv/sdk/dist/types/src/compat/Mnemonic.d.ts.map +1 -0
  650. package/mobile/node_modules/@bsv/sdk/dist/types/src/compat/Utxo.d.ts +42 -0
  651. package/mobile/node_modules/@bsv/sdk/dist/types/src/compat/Utxo.d.ts.map +1 -0
  652. package/mobile/node_modules/@bsv/sdk/dist/types/src/compat/bip-39-wordlist-en.d.ts +5 -0
  653. package/mobile/node_modules/@bsv/sdk/dist/types/src/compat/bip-39-wordlist-en.d.ts.map +1 -0
  654. package/mobile/node_modules/@bsv/sdk/dist/types/src/compat/index.d.ts +6 -0
  655. package/mobile/node_modules/@bsv/sdk/dist/types/src/compat/index.d.ts.map +1 -0
  656. package/mobile/node_modules/@bsv/sdk/dist/types/src/identity/ContactsManager.d.ts +32 -0
  657. package/mobile/node_modules/@bsv/sdk/dist/types/src/identity/ContactsManager.d.ts.map +1 -0
  658. package/mobile/node_modules/@bsv/sdk/dist/types/src/identity/IdentityClient.d.ts +81 -0
  659. package/mobile/node_modules/@bsv/sdk/dist/types/src/identity/IdentityClient.d.ts.map +1 -0
  660. package/mobile/node_modules/@bsv/sdk/dist/types/src/identity/index.d.ts +3 -0
  661. package/mobile/node_modules/@bsv/sdk/dist/types/src/identity/index.d.ts.map +1 -0
  662. package/mobile/node_modules/@bsv/sdk/dist/types/src/identity/types/index.d.ts +30 -0
  663. package/mobile/node_modules/@bsv/sdk/dist/types/src/identity/types/index.d.ts.map +1 -0
  664. package/mobile/node_modules/@bsv/sdk/dist/types/src/kvstore/GlobalKVStore.d.ts +129 -0
  665. package/mobile/node_modules/@bsv/sdk/dist/types/src/kvstore/GlobalKVStore.d.ts.map +1 -0
  666. package/mobile/node_modules/@bsv/sdk/dist/types/src/kvstore/LocalKVStore.d.ts +95 -0
  667. package/mobile/node_modules/@bsv/sdk/dist/types/src/kvstore/LocalKVStore.d.ts.map +1 -0
  668. package/mobile/node_modules/@bsv/sdk/dist/types/src/kvstore/index.d.ts +3 -0
  669. package/mobile/node_modules/@bsv/sdk/dist/types/src/kvstore/index.d.ts.map +1 -0
  670. package/mobile/node_modules/@bsv/sdk/dist/types/src/kvstore/kvStoreInterpreter.d.ts +23 -0
  671. package/mobile/node_modules/@bsv/sdk/dist/types/src/kvstore/kvStoreInterpreter.d.ts.map +1 -0
  672. package/mobile/node_modules/@bsv/sdk/dist/types/src/kvstore/types.d.ts +118 -0
  673. package/mobile/node_modules/@bsv/sdk/dist/types/src/kvstore/types.d.ts.map +1 -0
  674. package/mobile/node_modules/@bsv/sdk/dist/types/src/messages/EncryptedMessage.d.ts +20 -0
  675. package/mobile/node_modules/@bsv/sdk/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -0
  676. package/mobile/node_modules/@bsv/sdk/dist/types/src/messages/SignedMessage.d.ts +21 -0
  677. package/mobile/node_modules/@bsv/sdk/dist/types/src/messages/SignedMessage.d.ts.map +1 -0
  678. package/mobile/node_modules/@bsv/sdk/dist/types/src/messages/index.d.ts +3 -0
  679. package/mobile/node_modules/@bsv/sdk/dist/types/src/messages/index.d.ts.map +1 -0
  680. package/mobile/node_modules/@bsv/sdk/dist/types/src/overlay-tools/Historian.d.ts +92 -0
  681. package/mobile/node_modules/@bsv/sdk/dist/types/src/overlay-tools/Historian.d.ts.map +1 -0
  682. package/mobile/node_modules/@bsv/sdk/dist/types/src/overlay-tools/HostReputationTracker.d.ts +37 -0
  683. package/mobile/node_modules/@bsv/sdk/dist/types/src/overlay-tools/HostReputationTracker.d.ts.map +1 -0
  684. package/mobile/node_modules/@bsv/sdk/dist/types/src/overlay-tools/LookupResolver.d.ts +124 -0
  685. package/mobile/node_modules/@bsv/sdk/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -0
  686. package/mobile/node_modules/@bsv/sdk/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts +44 -0
  687. package/mobile/node_modules/@bsv/sdk/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts.map +1 -0
  688. package/mobile/node_modules/@bsv/sdk/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +105 -0
  689. package/mobile/node_modules/@bsv/sdk/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -0
  690. package/mobile/node_modules/@bsv/sdk/dist/types/src/overlay-tools/index.d.ts +9 -0
  691. package/mobile/node_modules/@bsv/sdk/dist/types/src/overlay-tools/index.d.ts.map +1 -0
  692. package/mobile/node_modules/@bsv/sdk/dist/types/src/overlay-tools/withDoubleSpendRetry.d.ts +14 -0
  693. package/mobile/node_modules/@bsv/sdk/dist/types/src/overlay-tools/withDoubleSpendRetry.d.ts.map +1 -0
  694. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/AESGCM.d.ts +14 -0
  695. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/AESGCM.d.ts.map +1 -0
  696. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/BasePoint.d.ts +22 -0
  697. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/BasePoint.d.ts.map +1 -0
  698. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/BigNumber.d.ts +438 -0
  699. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/BigNumber.d.ts.map +1 -0
  700. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Curve.d.ts +62 -0
  701. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Curve.d.ts.map +1 -0
  702. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/DRBG.d.ts +66 -0
  703. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/DRBG.d.ts.map +1 -0
  704. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/ECDSA.d.ts +39 -0
  705. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/ECDSA.d.ts.map +1 -0
  706. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Hash.d.ts +499 -0
  707. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Hash.d.ts.map +1 -0
  708. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/JacobianPoint.d.ts +164 -0
  709. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -0
  710. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/K256.d.ts +53 -0
  711. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/K256.d.ts.map +1 -0
  712. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Mersenne.d.ts +72 -0
  713. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Mersenne.d.ts.map +1 -0
  714. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/MontgomoryMethod.d.ts +96 -0
  715. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/MontgomoryMethod.d.ts.map +1 -0
  716. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Point.d.ts +362 -0
  717. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Point.d.ts.map +1 -0
  718. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Polynomial.d.ts +32 -0
  719. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Polynomial.d.ts.map +1 -0
  720. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/PrivateKey.d.ts +284 -0
  721. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/PrivateKey.d.ts.map +1 -0
  722. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/PublicKey.d.ts +155 -0
  723. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/PublicKey.d.ts.map +1 -0
  724. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Random.d.ts +14 -0
  725. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Random.d.ts.map +1 -0
  726. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/ReductionContext.d.ts +308 -0
  727. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/ReductionContext.d.ts.map +1 -0
  728. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Schnorr.d.ts +65 -0
  729. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Schnorr.d.ts.map +1 -0
  730. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Secp256r1.d.ts +91 -0
  731. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Secp256r1.d.ts.map +1 -0
  732. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Signature.d.ts +162 -0
  733. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/Signature.d.ts.map +1 -0
  734. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/SymmetricKey.d.ts +55 -0
  735. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -0
  736. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/TransactionSignature.d.ts +57 -0
  737. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -0
  738. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/hex.d.ts +3 -0
  739. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/hex.d.ts.map +1 -0
  740. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/index.d.ts +16 -0
  741. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/index.d.ts.map +1 -0
  742. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/utils.d.ts +140 -0
  743. package/mobile/node_modules/@bsv/sdk/dist/types/src/primitives/utils.d.ts.map +1 -0
  744. package/mobile/node_modules/@bsv/sdk/dist/types/src/registry/RegistryClient.d.ts +121 -0
  745. package/mobile/node_modules/@bsv/sdk/dist/types/src/registry/RegistryClient.d.ts.map +1 -0
  746. package/mobile/node_modules/@bsv/sdk/dist/types/src/registry/index.d.ts +3 -0
  747. package/mobile/node_modules/@bsv/sdk/dist/types/src/registry/index.d.ts.map +1 -0
  748. package/mobile/node_modules/@bsv/sdk/dist/types/src/registry/types/index.d.ts +113 -0
  749. package/mobile/node_modules/@bsv/sdk/dist/types/src/registry/types/index.d.ts.map +1 -0
  750. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/LockingScript.d.ts +25 -0
  751. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/LockingScript.d.ts.map +1 -0
  752. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/OP.d.ts +193 -0
  753. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/OP.d.ts.map +1 -0
  754. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/Script.d.ts +157 -0
  755. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/Script.d.ts.map +1 -0
  756. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/ScriptChunk.d.ts +8 -0
  757. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/ScriptChunk.d.ts.map +1 -0
  758. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/ScriptEvaluationError.d.ts +24 -0
  759. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/ScriptEvaluationError.d.ts.map +1 -0
  760. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/ScriptTemplate.d.ts +29 -0
  761. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/ScriptTemplate.d.ts.map +1 -0
  762. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/ScriptTemplateUnlock.d.ts +7 -0
  763. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/ScriptTemplateUnlock.d.ts.map +1 -0
  764. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/Spend.d.ts +120 -0
  765. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/Spend.d.ts.map +1 -0
  766. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/UnlockingScript.d.ts +25 -0
  767. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/UnlockingScript.d.ts.map +1 -0
  768. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/index.d.ts +11 -0
  769. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/index.d.ts.map +1 -0
  770. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/templates/P2PKH.d.ts +40 -0
  771. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/templates/P2PKH.d.ts.map +1 -0
  772. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/templates/PushDrop.d.ts +56 -0
  773. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/templates/PushDrop.d.ts.map +1 -0
  774. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/templates/RPuzzle.d.ts +47 -0
  775. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -0
  776. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/templates/index.d.ts +4 -0
  777. package/mobile/node_modules/@bsv/sdk/dist/types/src/script/templates/index.d.ts.map +1 -0
  778. package/mobile/node_modules/@bsv/sdk/dist/types/src/storage/StorageDownloader.d.ts +25 -0
  779. package/mobile/node_modules/@bsv/sdk/dist/types/src/storage/StorageDownloader.d.ts.map +1 -0
  780. package/mobile/node_modules/@bsv/sdk/dist/types/src/storage/StorageUploader.d.ts +103 -0
  781. package/mobile/node_modules/@bsv/sdk/dist/types/src/storage/StorageUploader.d.ts.map +1 -0
  782. package/mobile/node_modules/@bsv/sdk/dist/types/src/storage/StorageUtils.d.ts +32 -0
  783. package/mobile/node_modules/@bsv/sdk/dist/types/src/storage/StorageUtils.d.ts.map +1 -0
  784. package/mobile/node_modules/@bsv/sdk/dist/types/src/storage/index.d.ts +4 -0
  785. package/mobile/node_modules/@bsv/sdk/dist/types/src/storage/index.d.ts.map +1 -0
  786. package/mobile/node_modules/@bsv/sdk/dist/types/src/totp/index.d.ts +2 -0
  787. package/mobile/node_modules/@bsv/sdk/dist/types/src/totp/index.d.ts.map +1 -0
  788. package/mobile/node_modules/@bsv/sdk/dist/types/src/totp/totp.d.ts +42 -0
  789. package/mobile/node_modules/@bsv/sdk/dist/types/src/totp/totp.d.ts.map +1 -0
  790. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/Beef.d.ts +248 -0
  791. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/Beef.d.ts.map +1 -0
  792. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/BeefParty.d.ts +73 -0
  793. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/BeefParty.d.ts.map +1 -0
  794. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/BeefTx.d.ts +43 -0
  795. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/BeefTx.d.ts.map +1 -0
  796. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/Broadcaster.d.ts +55 -0
  797. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/Broadcaster.d.ts.map +1 -0
  798. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/ChainTracker.d.ts +29 -0
  799. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/ChainTracker.d.ts.map +1 -0
  800. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/FeeModel.d.ts +12 -0
  801. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/FeeModel.d.ts.map +1 -0
  802. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/MerklePath.d.ts +125 -0
  803. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/MerklePath.d.ts.map +1 -0
  804. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/Transaction.d.ts +299 -0
  805. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/Transaction.d.ts.map +1 -0
  806. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/TransactionInput.d.ts +63 -0
  807. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/TransactionInput.d.ts.map +1 -0
  808. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/TransactionOutput.d.ts +36 -0
  809. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/TransactionOutput.d.ts.map +1 -0
  810. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/broadcasters/ARC.d.ts +64 -0
  811. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -0
  812. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts +4 -0
  813. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -0
  814. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/broadcasters/Teranode.d.ts +25 -0
  815. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/broadcasters/Teranode.d.ts.map +1 -0
  816. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts +26 -0
  817. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -0
  818. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/broadcasters/index.d.ts +6 -0
  819. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/broadcasters/index.d.ts.map +1 -0
  820. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/chaintrackers/BlockHeadersService.d.ts +46 -0
  821. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/chaintrackers/BlockHeadersService.d.ts.map +1 -0
  822. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts +3 -0
  823. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -0
  824. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts +29 -0
  825. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -0
  826. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/chaintrackers/index.d.ts +5 -0
  827. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/chaintrackers/index.d.ts.map +1 -0
  828. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/fee-models/LivePolicy.d.ts +41 -0
  829. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/fee-models/LivePolicy.d.ts.map +1 -0
  830. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts +26 -0
  831. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -0
  832. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/fee-models/index.d.ts +3 -0
  833. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/fee-models/index.d.ts.map +1 -0
  834. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/http/BinaryFetchClient.d.ts +48 -0
  835. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/http/BinaryFetchClient.d.ts.map +1 -0
  836. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/http/DefaultHttpClient.d.ts +8 -0
  837. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -0
  838. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/http/FetchHttpClient.d.ts +29 -0
  839. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/http/FetchHttpClient.d.ts.map +1 -0
  840. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/http/HttpClient.d.ts +45 -0
  841. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/http/HttpClient.d.ts.map +1 -0
  842. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/http/NodejsHttpClient.d.ts +20 -0
  843. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -0
  844. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/http/index.d.ts +8 -0
  845. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/http/index.d.ts.map +1 -0
  846. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/index.d.ts +11 -0
  847. package/mobile/node_modules/@bsv/sdk/dist/types/src/transaction/index.d.ts.map +1 -0
  848. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/CachedKeyDeriver.d.ts +102 -0
  849. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -0
  850. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/KeyDeriver.d.ts +130 -0
  851. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -0
  852. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/ProtoWallet.d.ts +27 -0
  853. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -0
  854. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/WERR_INSUFFICIENT_FUNDS.d.ts +19 -0
  855. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/WERR_INSUFFICIENT_FUNDS.d.ts.map +1 -0
  856. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/WERR_INVALID_PARAMETER.d.ts +13 -0
  857. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/WERR_INVALID_PARAMETER.d.ts.map +1 -0
  858. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/WERR_REVIEW_ACTIONS.d.ts +23 -0
  859. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/WERR_REVIEW_ACTIONS.d.ts.map +1 -0
  860. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/Wallet.interfaces.d.ts +1068 -0
  861. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -0
  862. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/WalletClient.d.ts +180 -0
  863. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/WalletClient.d.ts.map +1 -0
  864. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/WalletError.d.ts +28 -0
  865. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/WalletError.d.ts.map +1 -0
  866. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/WalletLoggerInterface.d.ts +79 -0
  867. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/WalletLoggerInterface.d.ts.map +1 -0
  868. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/index.d.ts +14 -0
  869. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/index.d.ts.map +1 -0
  870. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +189 -0
  871. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -0
  872. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts +9 -0
  873. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts.map +1 -0
  874. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/ReactNativeWebView.d.ts +412 -0
  875. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/ReactNativeWebView.d.ts.map +1 -0
  876. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/WalletWire.d.ts +7 -0
  877. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/WalletWire.d.ts.map +1 -0
  878. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/WalletWireCalls.d.ts +33 -0
  879. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/WalletWireCalls.d.ts.map +1 -0
  880. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts +18 -0
  881. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts.map +1 -0
  882. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts +196 -0
  883. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -0
  884. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/XDM.d.ts +412 -0
  885. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/XDM.d.ts.map +1 -0
  886. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/index.d.ts +10 -0
  887. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/index.d.ts.map +1 -0
  888. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/utils/toOriginHeader.d.ts +2 -0
  889. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/utils/toOriginHeader.d.ts.map +1 -0
  890. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/window.CWI.d.ts +410 -0
  891. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -0
  892. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/validationHelpers.d.ts +514 -0
  893. package/mobile/node_modules/@bsv/sdk/dist/types/src/wallet/validationHelpers.d.ts.map +1 -0
  894. package/mobile/node_modules/@bsv/sdk/dist/types/tsconfig.types.tsbuildinfo +1 -0
  895. package/mobile/node_modules/@bsv/sdk/dist/umd/bundle.js +20 -0
  896. package/mobile/node_modules/@bsv/sdk/dist/umd/bundle.js.map +1 -0
  897. package/mobile/node_modules/@bsv/sdk/docs/fast-docs.png +0 -0
  898. package/mobile/node_modules/@bsv/sdk/docs/index.md +77 -0
  899. package/mobile/node_modules/@bsv/sdk/docs/performance.md +70 -0
  900. package/mobile/node_modules/@bsv/sdk/docs/reference/auth.md +1330 -0
  901. package/mobile/node_modules/@bsv/sdk/docs/reference/compat.md +2951 -0
  902. package/mobile/node_modules/@bsv/sdk/docs/reference/identity.md +383 -0
  903. package/mobile/node_modules/@bsv/sdk/docs/reference/kvstore.md +648 -0
  904. package/mobile/node_modules/@bsv/sdk/docs/reference/messages.md +158 -0
  905. package/mobile/node_modules/@bsv/sdk/docs/reference/overlay-tools.md +691 -0
  906. package/mobile/node_modules/@bsv/sdk/docs/reference/primitives.md +6262 -0
  907. package/mobile/node_modules/@bsv/sdk/docs/reference/registry.md +408 -0
  908. package/mobile/node_modules/@bsv/sdk/docs/reference/script.md +942 -0
  909. package/mobile/node_modules/@bsv/sdk/docs/reference/storage.md +411 -0
  910. package/mobile/node_modules/@bsv/sdk/docs/reference/totp.md +121 -0
  911. package/mobile/node_modules/@bsv/sdk/docs/reference/transaction.md +2332 -0
  912. package/mobile/node_modules/@bsv/sdk/docs/reference/wallet.md +6054 -0
  913. package/mobile/node_modules/@bsv/sdk/docs/requirements.txt +3 -0
  914. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/LICENSE +21 -0
  915. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/favicon-16x16.png +0 -0
  916. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/favicon-32x32.png +0 -0
  917. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/index.css +16 -0
  918. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/oauth2-redirect.html +79 -0
  919. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/swagger-initializer.js +20 -0
  920. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/swagger-ui-bundle.js +2 -0
  921. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/swagger-ui-bundle.js.map +1 -0
  922. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/swagger-ui-es-bundle-core.js +3 -0
  923. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/swagger-ui-es-bundle-core.js.map +1 -0
  924. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/swagger-ui-es-bundle.js +2 -0
  925. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/swagger-ui-es-bundle.js.map +1 -0
  926. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/swagger-ui-standalone-preset.js +2 -0
  927. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/swagger-ui-standalone-preset.js.map +1 -0
  928. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/swagger-ui.css +3 -0
  929. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/swagger-ui.css.map +1 -0
  930. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/swagger-ui.js +2 -0
  931. package/mobile/node_modules/@bsv/sdk/docs/swagger/dist/swagger-ui.js.map +1 -0
  932. package/mobile/node_modules/@bsv/sdk/docs/swagger/index.html +19 -0
  933. package/mobile/node_modules/@bsv/sdk/docs/swagger/swagger-ui.version +1 -0
  934. package/mobile/node_modules/@bsv/sdk/docs/swagger/swagger.yaml +1960 -0
  935. package/mobile/node_modules/@bsv/sdk/docs/swagger.png +0 -0
  936. package/mobile/node_modules/@bsv/sdk/mod.ts +19 -0
  937. package/mobile/node_modules/@bsv/sdk/package.json +268 -0
  938. package/mobile/node_modules/@bsv/sdk/src/auth/Peer.ts +875 -0
  939. package/mobile/node_modules/@bsv/sdk/src/auth/SessionManager.ts +145 -0
  940. package/mobile/node_modules/@bsv/sdk/src/auth/__tests/Peer.test.ts +1059 -0
  941. package/mobile/node_modules/@bsv/sdk/src/auth/__tests/SessionManager.test.ts +136 -0
  942. package/mobile/node_modules/@bsv/sdk/src/auth/__tests/build.test.ts +11 -0
  943. package/mobile/node_modules/@bsv/sdk/src/auth/certificates/Certificate.ts +311 -0
  944. package/mobile/node_modules/@bsv/sdk/src/auth/certificates/MasterCertificate.ts +360 -0
  945. package/mobile/node_modules/@bsv/sdk/src/auth/certificates/VerifiableCertificate.ts +125 -0
  946. package/mobile/node_modules/@bsv/sdk/src/auth/certificates/__tests/Certificate.test.ts +386 -0
  947. package/mobile/node_modules/@bsv/sdk/src/auth/certificates/__tests/CompletedProtoWallet.ts +202 -0
  948. package/mobile/node_modules/@bsv/sdk/src/auth/certificates/__tests/MasterCertificate.test.ts +424 -0
  949. package/mobile/node_modules/@bsv/sdk/src/auth/certificates/__tests/VerifiableCertificate.test.ts +179 -0
  950. package/mobile/node_modules/@bsv/sdk/src/auth/certificates/index.ts +4 -0
  951. package/mobile/node_modules/@bsv/sdk/src/auth/clients/AuthFetch.ts +881 -0
  952. package/mobile/node_modules/@bsv/sdk/src/auth/clients/__tests__/AuthFetch.test.ts +262 -0
  953. package/mobile/node_modules/@bsv/sdk/src/auth/clients/index.ts +1 -0
  954. package/mobile/node_modules/@bsv/sdk/src/auth/index.ts +7 -0
  955. package/mobile/node_modules/@bsv/sdk/src/auth/transports/SimplifiedFetchTransport.ts +446 -0
  956. package/mobile/node_modules/@bsv/sdk/src/auth/transports/__tests__/SimplifiedFetchTransport.test.ts +126 -0
  957. package/mobile/node_modules/@bsv/sdk/src/auth/transports/index.ts +1 -0
  958. package/mobile/node_modules/@bsv/sdk/src/auth/types.ts +42 -0
  959. package/mobile/node_modules/@bsv/sdk/src/auth/utils/__tests/cryptononce.test.ts +146 -0
  960. package/mobile/node_modules/@bsv/sdk/src/auth/utils/__tests/getVerifiableCertificates.test.ts +152 -0
  961. package/mobile/node_modules/@bsv/sdk/src/auth/utils/__tests/validateCertificates.test.ts +164 -0
  962. package/mobile/node_modules/@bsv/sdk/src/auth/utils/createNonce.ts +33 -0
  963. package/mobile/node_modules/@bsv/sdk/src/auth/utils/getVerifiableCertificates.ts +46 -0
  964. package/mobile/node_modules/@bsv/sdk/src/auth/utils/index.ts +4 -0
  965. package/mobile/node_modules/@bsv/sdk/src/auth/utils/validateCertificates.ts +73 -0
  966. package/mobile/node_modules/@bsv/sdk/src/auth/utils/verifyNonce.ts +34 -0
  967. package/mobile/node_modules/@bsv/sdk/src/compat/BSM.ts +66 -0
  968. package/mobile/node_modules/@bsv/sdk/src/compat/ECIES.ts +701 -0
  969. package/mobile/node_modules/@bsv/sdk/src/compat/HD.ts +386 -0
  970. package/mobile/node_modules/@bsv/sdk/src/compat/Mnemonic.ts +308 -0
  971. package/mobile/node_modules/@bsv/sdk/src/compat/Utxo.ts +59 -0
  972. package/mobile/node_modules/@bsv/sdk/src/compat/__tests/BSM.test.ts +80 -0
  973. package/mobile/node_modules/@bsv/sdk/src/compat/__tests/ECIES.test.ts +184 -0
  974. package/mobile/node_modules/@bsv/sdk/src/compat/__tests/HD.test.ts +417 -0
  975. package/mobile/node_modules/@bsv/sdk/src/compat/__tests/Mnemonic.test.ts +175 -0
  976. package/mobile/node_modules/@bsv/sdk/src/compat/__tests/Mnemonic.vectors.ts +227 -0
  977. package/mobile/node_modules/@bsv/sdk/src/compat/bip-39-wordlist-en.ts +2053 -0
  978. package/mobile/node_modules/@bsv/sdk/src/compat/index.ts +5 -0
  979. package/mobile/node_modules/@bsv/sdk/src/identity/ContactsManager.ts +376 -0
  980. package/mobile/node_modules/@bsv/sdk/src/identity/IdentityClient.ts +497 -0
  981. package/mobile/node_modules/@bsv/sdk/src/identity/README.md +92 -0
  982. package/mobile/node_modules/@bsv/sdk/src/identity/__tests/IdentityClient.test.ts +772 -0
  983. package/mobile/node_modules/@bsv/sdk/src/identity/index.ts +2 -0
  984. package/mobile/node_modules/@bsv/sdk/src/identity/types/index.ts +46 -0
  985. package/mobile/node_modules/@bsv/sdk/src/kvstore/GlobalKVStore.ts +523 -0
  986. package/mobile/node_modules/@bsv/sdk/src/kvstore/LocalKVStore.ts +357 -0
  987. package/mobile/node_modules/@bsv/sdk/src/kvstore/__tests/GlobalKVStore.test.ts +1104 -0
  988. package/mobile/node_modules/@bsv/sdk/src/kvstore/__tests/LocalKVStore.test.ts +686 -0
  989. package/mobile/node_modules/@bsv/sdk/src/kvstore/index.ts +2 -0
  990. package/mobile/node_modules/@bsv/sdk/src/kvstore/kvStoreInterpreter.ts +54 -0
  991. package/mobile/node_modules/@bsv/sdk/src/kvstore/types.ts +126 -0
  992. package/mobile/node_modules/@bsv/sdk/src/messages/EncryptedMessage.ts +74 -0
  993. package/mobile/node_modules/@bsv/sdk/src/messages/SignedMessage.ts +93 -0
  994. package/mobile/node_modules/@bsv/sdk/src/messages/__tests/EncryptedMessage.test.ts +61 -0
  995. package/mobile/node_modules/@bsv/sdk/src/messages/__tests/SignedMessage.test.ts +59 -0
  996. package/mobile/node_modules/@bsv/sdk/src/messages/index.ts +2 -0
  997. package/mobile/node_modules/@bsv/sdk/src/overlay-tools/Historian.ts +195 -0
  998. package/mobile/node_modules/@bsv/sdk/src/overlay-tools/HostReputationTracker.ts +232 -0
  999. package/mobile/node_modules/@bsv/sdk/src/overlay-tools/LookupResolver.ts +499 -0
  1000. package/mobile/node_modules/@bsv/sdk/src/overlay-tools/OverlayAdminTokenTemplate.ts +108 -0
  1001. package/mobile/node_modules/@bsv/sdk/src/overlay-tools/SHIPBroadcaster.ts +504 -0
  1002. package/mobile/node_modules/@bsv/sdk/src/overlay-tools/__tests/Historian.test.ts +690 -0
  1003. package/mobile/node_modules/@bsv/sdk/src/overlay-tools/__tests/LookupResolver.test.ts +1805 -0
  1004. package/mobile/node_modules/@bsv/sdk/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.ts +97 -0
  1005. package/mobile/node_modules/@bsv/sdk/src/overlay-tools/__tests/SHIPBroadcaster.test.ts +1304 -0
  1006. package/mobile/node_modules/@bsv/sdk/src/overlay-tools/index.ts +11 -0
  1007. package/mobile/node_modules/@bsv/sdk/src/overlay-tools/withDoubleSpendRetry.ts +71 -0
  1008. package/mobile/node_modules/@bsv/sdk/src/primitives/AESGCM.ts +457 -0
  1009. package/mobile/node_modules/@bsv/sdk/src/primitives/BasePoint.ts +21 -0
  1010. package/mobile/node_modules/@bsv/sdk/src/primitives/BigNumber.ts +1368 -0
  1011. package/mobile/node_modules/@bsv/sdk/src/primitives/Curve.ts +1234 -0
  1012. package/mobile/node_modules/@bsv/sdk/src/primitives/DRBG.ts +118 -0
  1013. package/mobile/node_modules/@bsv/sdk/src/primitives/ECDSA.ts +208 -0
  1014. package/mobile/node_modules/@bsv/sdk/src/primitives/Hash.ts +1924 -0
  1015. package/mobile/node_modules/@bsv/sdk/src/primitives/JacobianPoint.ts +475 -0
  1016. package/mobile/node_modules/@bsv/sdk/src/primitives/K256.ts +136 -0
  1017. package/mobile/node_modules/@bsv/sdk/src/primitives/Mersenne.ts +119 -0
  1018. package/mobile/node_modules/@bsv/sdk/src/primitives/MontgomoryMethod.ts +160 -0
  1019. package/mobile/node_modules/@bsv/sdk/src/primitives/Point.ts +1200 -0
  1020. package/mobile/node_modules/@bsv/sdk/src/primitives/Polynomial.ts +94 -0
  1021. package/mobile/node_modules/@bsv/sdk/src/primitives/PrivateKey.ts +524 -0
  1022. package/mobile/node_modules/@bsv/sdk/src/primitives/PublicKey.ts +282 -0
  1023. package/mobile/node_modules/@bsv/sdk/src/primitives/Random.ts +101 -0
  1024. package/mobile/node_modules/@bsv/sdk/src/primitives/ReductionContext.ts +528 -0
  1025. package/mobile/node_modules/@bsv/sdk/src/primitives/Schnorr.ts +117 -0
  1026. package/mobile/node_modules/@bsv/sdk/src/primitives/Secp256r1.ts +334 -0
  1027. package/mobile/node_modules/@bsv/sdk/src/primitives/Signature.ts +389 -0
  1028. package/mobile/node_modules/@bsv/sdk/src/primitives/SymmetricKey.ts +102 -0
  1029. package/mobile/node_modules/@bsv/sdk/src/primitives/TransactionSignature.ts +260 -0
  1030. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/AESGCM.test.ts +700 -0
  1031. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/BRC42.private.vectors.ts +48 -0
  1032. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/BRC42.public.vectors.ts +48 -0
  1033. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/BigNumber.arithmatic.test.ts +791 -0
  1034. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/BigNumber.binary.test.ts +284 -0
  1035. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/BigNumber.constructor.test.ts +216 -0
  1036. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/BigNumber.dhGroup.test.ts +22 -0
  1037. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/BigNumber.fixtures.ts +272 -0
  1038. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/BigNumber.serializers.test.ts +183 -0
  1039. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/BigNumber.utils.test.ts +437 -0
  1040. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/Curve.unit.test.ts +277 -0
  1041. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/DRBG.test.ts +281 -0
  1042. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/DRBG.vectors.ts +137 -0
  1043. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/ECDH.test.ts +38 -0
  1044. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/ECDSA.test.ts +93 -0
  1045. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/HMAC.test.ts +76 -0
  1046. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/Hash.test.ts +256 -0
  1047. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/PBKDF2.vectors.ts +132 -0
  1048. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/PrivateKey.split.test.ts +92 -0
  1049. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/PrivateKey.test.ts +98 -0
  1050. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/PublicKey.test.ts +96 -0
  1051. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/Random.test.ts +35 -0
  1052. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/Reader.test.ts +317 -0
  1053. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/ReductionContext.test.ts +321 -0
  1054. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/Schnorr.test.ts +284 -0
  1055. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/Secp256r1.test.ts +101 -0
  1056. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/SymmetricKey.test.ts +128 -0
  1057. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/SymmetricKey.vectors.ts +48 -0
  1058. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/SymmetricKeyCompatibility.test.ts +150 -0
  1059. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/Writer.test.ts +208 -0
  1060. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/bug-31.test.ts +27 -0
  1061. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/hex.test.ts +57 -0
  1062. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/sighash.vectors.ts +3503 -0
  1063. package/mobile/node_modules/@bsv/sdk/src/primitives/__tests/utils.test.ts +378 -0
  1064. package/mobile/node_modules/@bsv/sdk/src/primitives/hex.ts +35 -0
  1065. package/mobile/node_modules/@bsv/sdk/src/primitives/index.ts +15 -0
  1066. package/mobile/node_modules/@bsv/sdk/src/primitives/utils.ts +953 -0
  1067. package/mobile/node_modules/@bsv/sdk/src/registry/RegistryClient.ts +667 -0
  1068. package/mobile/node_modules/@bsv/sdk/src/registry/__tests/RegistryClient.test.ts +647 -0
  1069. package/mobile/node_modules/@bsv/sdk/src/registry/index.ts +2 -0
  1070. package/mobile/node_modules/@bsv/sdk/src/registry/types/index.ts +131 -0
  1071. package/mobile/node_modules/@bsv/sdk/src/script/LockingScript.ts +30 -0
  1072. package/mobile/node_modules/@bsv/sdk/src/script/OP.ts +218 -0
  1073. package/mobile/node_modules/@bsv/sdk/src/script/Script.ts +591 -0
  1074. package/mobile/node_modules/@bsv/sdk/src/script/ScriptChunk.ts +7 -0
  1075. package/mobile/node_modules/@bsv/sdk/src/script/ScriptEvaluationError.ts +44 -0
  1076. package/mobile/node_modules/@bsv/sdk/src/script/ScriptTemplate.ts +30 -0
  1077. package/mobile/node_modules/@bsv/sdk/src/script/ScriptTemplateUnlock.ts +7 -0
  1078. package/mobile/node_modules/@bsv/sdk/src/script/Spend.ts +1085 -0
  1079. package/mobile/node_modules/@bsv/sdk/src/script/UnlockingScript.ts +30 -0
  1080. package/mobile/node_modules/@bsv/sdk/src/script/__tests/Script.test.ts +429 -0
  1081. package/mobile/node_modules/@bsv/sdk/src/script/__tests/Spend.test.ts +555 -0
  1082. package/mobile/node_modules/@bsv/sdk/src/script/__tests/SpendComplex.test.ts +48 -0
  1083. package/mobile/node_modules/@bsv/sdk/src/script/__tests/script.invalid.vectors.ts +999 -0
  1084. package/mobile/node_modules/@bsv/sdk/src/script/__tests/script.valid.vectors.ts +1178 -0
  1085. package/mobile/node_modules/@bsv/sdk/src/script/__tests/spend.valid.vectors.ts +2295 -0
  1086. package/mobile/node_modules/@bsv/sdk/src/script/index.ts +10 -0
  1087. package/mobile/node_modules/@bsv/sdk/src/script/templates/P2PKH.ts +157 -0
  1088. package/mobile/node_modules/@bsv/sdk/src/script/templates/PushDrop.ts +281 -0
  1089. package/mobile/node_modules/@bsv/sdk/src/script/templates/RPuzzle.ts +161 -0
  1090. package/mobile/node_modules/@bsv/sdk/src/script/templates/__tests/PushDrop.test.ts +263 -0
  1091. package/mobile/node_modules/@bsv/sdk/src/script/templates/index.ts +3 -0
  1092. package/mobile/node_modules/@bsv/sdk/src/storage/StorageDownloader.ts +114 -0
  1093. package/mobile/node_modules/@bsv/sdk/src/storage/StorageUploader.ts +258 -0
  1094. package/mobile/node_modules/@bsv/sdk/src/storage/StorageUtils.ts +74 -0
  1095. package/mobile/node_modules/@bsv/sdk/src/storage/__tests/StorageDownloader.test.ts +236 -0
  1096. package/mobile/node_modules/@bsv/sdk/src/storage/__tests/StorageUploader.test.ts +219 -0
  1097. package/mobile/node_modules/@bsv/sdk/src/storage/__tests/StorageUtils.test.ts +86 -0
  1098. package/mobile/node_modules/@bsv/sdk/src/storage/index.ts +5 -0
  1099. package/mobile/node_modules/@bsv/sdk/src/totp/__tests/totp.test.ts +81 -0
  1100. package/mobile/node_modules/@bsv/sdk/src/totp/index.ts +1 -0
  1101. package/mobile/node_modules/@bsv/sdk/src/totp/totp.ts +138 -0
  1102. package/mobile/node_modules/@bsv/sdk/src/transaction/Beef.ts +935 -0
  1103. package/mobile/node_modules/@bsv/sdk/src/transaction/BeefParty.ts +123 -0
  1104. package/mobile/node_modules/@bsv/sdk/src/transaction/BeefTx.ts +194 -0
  1105. package/mobile/node_modules/@bsv/sdk/src/transaction/Broadcaster.ts +69 -0
  1106. package/mobile/node_modules/@bsv/sdk/src/transaction/ChainTracker.ts +28 -0
  1107. package/mobile/node_modules/@bsv/sdk/src/transaction/FeeModel.ts +12 -0
  1108. package/mobile/node_modules/@bsv/sdk/src/transaction/MerklePath.ts +455 -0
  1109. package/mobile/node_modules/@bsv/sdk/src/transaction/Transaction.ts +1055 -0
  1110. package/mobile/node_modules/@bsv/sdk/src/transaction/TransactionInput.ts +63 -0
  1111. package/mobile/node_modules/@bsv/sdk/src/transaction/TransactionOutput.ts +36 -0
  1112. package/mobile/node_modules/@bsv/sdk/src/transaction/__tests/Beef.test.ts +500 -0
  1113. package/mobile/node_modules/@bsv/sdk/src/transaction/__tests/MerklePath.test.ts +249 -0
  1114. package/mobile/node_modules/@bsv/sdk/src/transaction/__tests/Transaction.test.ts +1419 -0
  1115. package/mobile/node_modules/@bsv/sdk/src/transaction/__tests/bigtx.vectors.ts +5 -0
  1116. package/mobile/node_modules/@bsv/sdk/src/transaction/__tests/bump.invalid.vectors.ts +26 -0
  1117. package/mobile/node_modules/@bsv/sdk/src/transaction/__tests/bump.valid.vectors.ts +8 -0
  1118. package/mobile/node_modules/@bsv/sdk/src/transaction/__tests/tx.invalid.vectors.ts +977 -0
  1119. package/mobile/node_modules/@bsv/sdk/src/transaction/__tests/tx.valid.vectors.ts +1317 -0
  1120. package/mobile/node_modules/@bsv/sdk/src/transaction/broadcasters/ARC.ts +255 -0
  1121. package/mobile/node_modules/@bsv/sdk/src/transaction/broadcasters/DefaultBroadcaster.ts +12 -0
  1122. package/mobile/node_modules/@bsv/sdk/src/transaction/broadcasters/Teranode.ts +77 -0
  1123. package/mobile/node_modules/@bsv/sdk/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +83 -0
  1124. package/mobile/node_modules/@bsv/sdk/src/transaction/broadcasters/__tests/ARC.test.ts +323 -0
  1125. package/mobile/node_modules/@bsv/sdk/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +171 -0
  1126. package/mobile/node_modules/@bsv/sdk/src/transaction/broadcasters/index.ts +5 -0
  1127. package/mobile/node_modules/@bsv/sdk/src/transaction/chaintrackers/BlockHeadersService.ts +138 -0
  1128. package/mobile/node_modules/@bsv/sdk/src/transaction/chaintrackers/DefaultChainTracker.ts +6 -0
  1129. package/mobile/node_modules/@bsv/sdk/src/transaction/chaintrackers/WhatsOnChain.ts +102 -0
  1130. package/mobile/node_modules/@bsv/sdk/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +198 -0
  1131. package/mobile/node_modules/@bsv/sdk/src/transaction/chaintrackers/index.ts +4 -0
  1132. package/mobile/node_modules/@bsv/sdk/src/transaction/fee-models/LivePolicy.ts +97 -0
  1133. package/mobile/node_modules/@bsv/sdk/src/transaction/fee-models/SatoshisPerKilobyte.ts +75 -0
  1134. package/mobile/node_modules/@bsv/sdk/src/transaction/fee-models/__tests/LivePolicy.test.ts +148 -0
  1135. package/mobile/node_modules/@bsv/sdk/src/transaction/fee-models/index.ts +2 -0
  1136. package/mobile/node_modules/@bsv/sdk/src/transaction/http/BinaryFetchClient.ts +141 -0
  1137. package/mobile/node_modules/@bsv/sdk/src/transaction/http/DefaultHttpClient.ts +33 -0
  1138. package/mobile/node_modules/@bsv/sdk/src/transaction/http/FetchHttpClient.ts +57 -0
  1139. package/mobile/node_modules/@bsv/sdk/src/transaction/http/HttpClient.ts +51 -0
  1140. package/mobile/node_modules/@bsv/sdk/src/transaction/http/NodejsHttpClient.ts +67 -0
  1141. package/mobile/node_modules/@bsv/sdk/src/transaction/http/index.ts +11 -0
  1142. package/mobile/node_modules/@bsv/sdk/src/transaction/index.ts +14 -0
  1143. package/mobile/node_modules/@bsv/sdk/src/wallet/CachedKeyDeriver.ts +287 -0
  1144. package/mobile/node_modules/@bsv/sdk/src/wallet/KeyDeriver.ts +342 -0
  1145. package/mobile/node_modules/@bsv/sdk/src/wallet/ProtoWallet.ts +300 -0
  1146. package/mobile/node_modules/@bsv/sdk/src/wallet/WERR_INSUFFICIENT_FUNDS.ts +25 -0
  1147. package/mobile/node_modules/@bsv/sdk/src/wallet/WERR_INVALID_PARAMETER.ts +20 -0
  1148. package/mobile/node_modules/@bsv/sdk/src/wallet/WERR_REVIEW_ACTIONS.ts +30 -0
  1149. package/mobile/node_modules/@bsv/sdk/src/wallet/Wallet.interfaces.ts +1308 -0
  1150. package/mobile/node_modules/@bsv/sdk/src/wallet/WalletClient.ts +504 -0
  1151. package/mobile/node_modules/@bsv/sdk/src/wallet/WalletError.ts +81 -0
  1152. package/mobile/node_modules/@bsv/sdk/src/wallet/WalletLoggerInterface.ts +85 -0
  1153. package/mobile/node_modules/@bsv/sdk/src/wallet/__tests/CachedKeyDeriver.test.ts +381 -0
  1154. package/mobile/node_modules/@bsv/sdk/src/wallet/__tests/KeyDeriver.test.ts +221 -0
  1155. package/mobile/node_modules/@bsv/sdk/src/wallet/__tests/ProtoWallet.test.ts +592 -0
  1156. package/mobile/node_modules/@bsv/sdk/src/wallet/__tests/WalletClient.test.ts +31 -0
  1157. package/mobile/node_modules/@bsv/sdk/src/wallet/index.ts +14 -0
  1158. package/mobile/node_modules/@bsv/sdk/src/wallet/substrates/HTTPWalletJSON.ts +364 -0
  1159. package/mobile/node_modules/@bsv/sdk/src/wallet/substrates/HTTPWalletWire.ts +51 -0
  1160. package/mobile/node_modules/@bsv/sdk/src/wallet/substrates/ReactNativeWebView.ts +560 -0
  1161. package/mobile/node_modules/@bsv/sdk/src/wallet/substrates/WalletWire.ts +6 -0
  1162. package/mobile/node_modules/@bsv/sdk/src/wallet/substrates/WalletWireCalls.ts +34 -0
  1163. package/mobile/node_modules/@bsv/sdk/src/wallet/substrates/WalletWireProcessor.ts +2206 -0
  1164. package/mobile/node_modules/@bsv/sdk/src/wallet/substrates/WalletWireTransceiver.ts +2032 -0
  1165. package/mobile/node_modules/@bsv/sdk/src/wallet/substrates/XDM.ts +547 -0
  1166. package/mobile/node_modules/@bsv/sdk/src/wallet/substrates/__tests/WalletWire.integration.test.ts +2353 -0
  1167. package/mobile/node_modules/@bsv/sdk/src/wallet/substrates/__tests/XDM.test.ts +660 -0
  1168. package/mobile/node_modules/@bsv/sdk/src/wallet/substrates/__tests/toOriginHeader.test.ts +34 -0
  1169. package/mobile/node_modules/@bsv/sdk/src/wallet/substrates/index.ts +9 -0
  1170. package/mobile/node_modules/@bsv/sdk/src/wallet/substrates/utils/toOriginHeader.ts +15 -0
  1171. package/mobile/node_modules/@bsv/sdk/src/wallet/substrates/window.CWI.ts +593 -0
  1172. package/mobile/node_modules/@bsv/sdk/src/wallet/validationHelpers.ts +1215 -0
  1173. package/mobile/out/src/sdk/types.d.ts +1 -1
  1174. package/mobile/out/src/sdk/types.js +1 -1
  1175. package/mobile/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  1176. package/mobile/out/src/storage/methods/ListOutputsSpecOp.js +2 -0
  1177. package/mobile/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  1178. package/mobile/package-lock.json +6 -6
  1179. package/mobile/package.json +2 -2
  1180. package/out/src/sdk/types.d.ts +1 -1
  1181. package/out/src/sdk/types.js +1 -1
  1182. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  1183. package/out/src/storage/methods/ListOutputsSpecOp.js +2 -0
  1184. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  1185. package/out/test/Wallet/local/localWallet2.man.test.js +3 -2
  1186. package/out/test/Wallet/local/localWallet2.man.test.js.map +1 -1
  1187. package/out/test/Wallet/support/operations.man.test.js +11 -4
  1188. package/out/test/Wallet/support/operations.man.test.js.map +1 -1
  1189. package/out/tsconfig.all.tsbuildinfo +1 -1
  1190. package/package.json +2 -2
  1191. package/src/sdk/types.ts +1 -1
  1192. package/src/storage/methods/ListOutputsSpecOp.ts +1 -0
  1193. package/test/Wallet/local/localWallet2.man.test.ts +2 -2
  1194. package/test/Wallet/support/operations.man.test.ts +11 -4
@@ -0,0 +1,1924 @@
1
+
2
+ // @ts-nocheck
3
+ /* eslint-disable @typescript-eslint/naming-convention */
4
+ import { assertValidHex, normalizeHex } from './hex.js'
5
+
6
+ const assert = (
7
+ expression: unknown,
8
+ message: string = 'Hash assertion failed'
9
+ ): void => {
10
+ if (!(expression as boolean)) {
11
+ throw new Error(message)
12
+ }
13
+ }
14
+
15
+ /**
16
+ * The BaseHash class is an abstract base class for cryptographic hash functions.
17
+ * It provides a common structure and functionality for hash function classes.
18
+ *
19
+ * @class BaseHash
20
+ *
21
+ * @property pending - Stores partially processed message segments.
22
+ * @property pendingTotal - The total number of characters that are being stored in `pending`
23
+ * @property blockSize - The size of each block to processed.
24
+ * @property outSize - The size of the final hash output.
25
+ * @property endian - The endianness used during processing, can either be 'big' or 'little'.
26
+ * @property _delta8 - The block size divided by 8, useful in various computations.
27
+ * @property _delta32 - The block size divided by 32, useful in various computations.
28
+ * @property padLength - The length of padding to be added to finalize the computation.
29
+ * @property hmacStrength - The HMAC strength value.
30
+ *
31
+ * @param blockSize - The size of the block to be hashed.
32
+ * @param outSize - The size of the resulting hash.
33
+ * @param hmacStrength - The strength of the HMAC.
34
+ * @param padLength - The length of the padding to be added.
35
+ *
36
+ * @example
37
+ * Sub-classes would extend this base BaseHash class like:
38
+ * class RIPEMD160 extends BaseHash {
39
+ * constructor () {
40
+ * super(512, 160, 192, 64);
41
+ * // ...
42
+ * }
43
+ * // ...
44
+ * }
45
+ */
46
+ abstract class BaseHash {
47
+ pending: number[] | null
48
+ pendingTotal: number
49
+ blockSize: number
50
+ outSize: number
51
+ endian: 'big' | 'little'
52
+ _delta8: number
53
+ _delta32: number
54
+ padLength: number
55
+ hmacStrength: number
56
+
57
+ constructor (
58
+ blockSize: number,
59
+ outSize: number,
60
+ hmacStrength: number,
61
+ padLength: number
62
+ ) {
63
+ this.pending = null
64
+ this.pendingTotal = 0
65
+ this.blockSize = blockSize
66
+ this.outSize = outSize
67
+ this.hmacStrength = hmacStrength
68
+ this.padLength = padLength / 8
69
+ this.endian = 'big'
70
+
71
+ this._delta8 = this.blockSize / 8
72
+ this._delta32 = this.blockSize / 32
73
+ }
74
+
75
+ _update (msg: number[], start: number): void {
76
+ throw new Error('Not implemented')
77
+ }
78
+
79
+ _digest (): number[] {
80
+ throw new Error('Not implemented')
81
+ }
82
+
83
+ _digestHex (): string {
84
+ throw new Error('Not implemented')
85
+ }
86
+
87
+ /**
88
+ * Converts the input message into an array, pads it, and joins into 32bit blocks.
89
+ * If there is enough data, it tries updating the hash computation.
90
+ *
91
+ * @method update
92
+ * @param msg - The message segment to include in the hashing computation.
93
+ * @param enc - The encoding of the message. If 'hex', the string will be treated as such, 'utf8' otherwise.
94
+ *
95
+ * @returns Returns the instance of the object for chaining.
96
+ *
97
+ * @example
98
+ * sha256.update('Hello World', 'utf8');
99
+ */
100
+ update (msg: number[] | string, enc?: 'hex' | 'utf8'): this {
101
+ // Convert message to array, pad it, and join into 32bit blocks
102
+ msg = toArray(msg, enc)
103
+ if (this.pending == null) {
104
+ this.pending = msg
105
+ } else {
106
+ this.pending = this.pending.concat(msg)
107
+ }
108
+ this.pendingTotal += msg.length
109
+
110
+ // Enough data, try updating
111
+ if (this.pending.length >= this._delta8) {
112
+ msg = this.pending
113
+
114
+ // Process pending data in blocks
115
+ const r = msg.length % this._delta8
116
+ this.pending = msg.slice(msg.length - r, msg.length)
117
+ if (this.pending.length === 0) {
118
+ this.pending = null
119
+ }
120
+
121
+ msg = join32(msg, 0, msg.length - r, this.endian)
122
+ for (let i = 0; i < msg.length; i += this._delta32) {
123
+ this._update(msg, i)
124
+ }
125
+ }
126
+
127
+ return this
128
+ }
129
+
130
+ /**
131
+ * Finalizes the hash computation and returns the hash value/result.
132
+ *
133
+ * @method digest
134
+ *
135
+ * @returns Returns the final hash value.
136
+ *
137
+ * @example
138
+ * const hash = sha256.digest();
139
+ */
140
+ digest (): number[] {
141
+ this.update(this._pad())
142
+ assert(this.pending === null)
143
+
144
+ return this._digest()
145
+ }
146
+
147
+ /**
148
+ * Finalizes the hash computation and returns the hash value/result as a hex string.
149
+ *
150
+ * @method digest
151
+ *
152
+ * @returns Returns the final hash value as a hex string.
153
+ *
154
+ * @example
155
+ * const hash = sha256.digestHex();
156
+ */
157
+ digestHex (): string {
158
+ this.update(this._pad())
159
+ assert(this.pending === null)
160
+
161
+ return this._digestHex()
162
+ }
163
+
164
+ /**
165
+ * [Private Method] Used internally to prepare the padding for the final stage of the hash computation.
166
+ *
167
+ * @method _pad
168
+ * @private
169
+ *
170
+ * @returns Returns an array denoting the padding.
171
+ */
172
+ private _pad (): number[] {
173
+ const len = this.pendingTotal
174
+ if (!Number.isSafeInteger(len) || len < 0) {
175
+ throw new Error('Message too long for this hash function')
176
+ }
177
+
178
+ const bytes = this._delta8
179
+ const k = bytes - ((len + this.padLength) % bytes)
180
+ const res = new Array(k + this.padLength)
181
+ res[0] = 0x80
182
+ let i: number
183
+ for (i = 1; i < k; i++) {
184
+ res[i] = 0
185
+ }
186
+ const lengthBytes = this.padLength
187
+ const maxBits = 1n << BigInt(lengthBytes * 8)
188
+ let totalBits = BigInt(len) * 8n
189
+
190
+ if (totalBits >= maxBits) {
191
+ throw new Error('Message too long for this hash function')
192
+ }
193
+
194
+ if (this.endian === 'big') {
195
+ const lenArray = new Array<number>(lengthBytes)
196
+
197
+ for (let b = lengthBytes - 1; b >= 0; b--) {
198
+ lenArray[b] = Number(totalBits & 0xffn)
199
+ totalBits >>= 8n
200
+ }
201
+
202
+ for (let b = 0; b < lengthBytes; b++) {
203
+ res[i++] = lenArray[b]
204
+ }
205
+ } else {
206
+ for (let b = 0; b < lengthBytes; b++) {
207
+ res[i++] = Number(totalBits & 0xffn)
208
+ totalBits >>= 8n
209
+ }
210
+ }
211
+
212
+ return res
213
+ }
214
+ }
215
+
216
+ function isSurrogatePair (msg: string, i: number): boolean {
217
+ if ((msg.charCodeAt(i) & 0xfc00) !== 0xd800) {
218
+ return false
219
+ }
220
+ if (i < 0 || i + 1 >= msg.length) {
221
+ return false
222
+ }
223
+ return (msg.charCodeAt(i + 1) & 0xfc00) === 0xdc00
224
+ }
225
+
226
+ /**
227
+ *
228
+ * @param msg
229
+ * @param enc Optional. Encoding to use if msg is string. Default is 'utf8'.
230
+ * @returns array of byte values from msg. If msg is an array, a copy is returned.
231
+ */
232
+ export function toArray (
233
+ msg: number[] | string,
234
+ enc?: 'hex' | 'utf8'
235
+ ): number[] {
236
+ if (Array.isArray(msg)) {
237
+ return msg.slice()
238
+ }
239
+ if (!(msg as unknown as boolean)) {
240
+ return []
241
+ }
242
+ const res: number[] = []
243
+ if (typeof msg === 'string') {
244
+ if (enc !== 'hex') {
245
+ // Inspired by stringToUtf8ByteArray() in closure-library by Google
246
+ // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt#L117-L143
247
+ // Apache License 2.0
248
+ // https://github.com/google/closure-library/blob/master/LICENSE
249
+ let p = 0
250
+ for (let i = 0; i < msg.length; i++) {
251
+ let c = msg.charCodeAt(i)
252
+ if (c < 128) {
253
+ res[p++] = c
254
+ } else if (c < 2048) {
255
+ res[p++] = (c >> 6) | 192
256
+ res[p++] = (c & 63) | 128
257
+ } else if (isSurrogatePair(msg, i)) {
258
+ c = 0x10000 + ((c & 0x03ff) << 10) + (msg.charCodeAt(++i) & 0x03ff)
259
+ res[p++] = (c >> 18) | 240
260
+ res[p++] = ((c >> 12) & 63) | 128
261
+ res[p++] = ((c >> 6) & 63) | 128
262
+ res[p++] = (c & 63) | 128
263
+ } else {
264
+ res[p++] = (c >> 12) | 224
265
+ res[p++] = ((c >> 6) & 63) | 128
266
+ res[p++] = (c & 63) | 128
267
+ }
268
+ }
269
+ } else {
270
+ assertValidHex(msg)
271
+ msg = normalizeHex(msg)
272
+ for (let i = 0; i < msg.length; i += 2) {
273
+ res.push(parseInt(msg[i] + msg[i + 1], 16))
274
+ }
275
+ }
276
+ } else {
277
+ msg = msg as number[]
278
+ for (let i = 0; i < msg.length; i++) {
279
+ res[i] = msg[i] | 0
280
+ }
281
+ }
282
+ return res
283
+ }
284
+
285
+ /**
286
+ * @deprecated
287
+ * This function behaves differently from the standard C `htonl()`.
288
+ * It always performs an unconditional 32-bit byte swap.
289
+ * Use `swapBytes32()` for explicit byte swapping, or `realHtonl()` for
290
+ * standards-compliant host-to-network conversion.
291
+ */
292
+ export function htonl (w: number): number {
293
+ return swapBytes32(w)
294
+ }
295
+
296
+ function toHex32 (msg: number[], endian?: 'little' | 'big'): string {
297
+ let res = ''
298
+ for (let i = 0; i < msg.length; i++) {
299
+ let w = msg[i]
300
+ if (endian === 'little') {
301
+ w = htonl(w)
302
+ }
303
+ res += zero8(w.toString(16))
304
+ }
305
+ return res
306
+ }
307
+
308
+ function zero8 (word: string): string {
309
+ if (word.length === 7) {
310
+ return '0' + word
311
+ } else if (word.length === 6) {
312
+ return '00' + word
313
+ } else if (word.length === 5) {
314
+ return '000' + word
315
+ } else if (word.length === 4) {
316
+ return '0000' + word
317
+ } else if (word.length === 3) {
318
+ return '00000' + word
319
+ } else if (word.length === 2) {
320
+ return '000000' + word
321
+ } else if (word.length === 1) {
322
+ return '0000000' + word
323
+ } else {
324
+ return word
325
+ }
326
+ }
327
+
328
+ function bytesToHex (data: Uint8Array): string {
329
+ let res = ''
330
+ for (const b of data) res += (b.toString(16).padStart(2, '0') as string)
331
+ return res
332
+ }
333
+
334
+ function join32 (msg, start, end, endian): number[] {
335
+ const len = end - start
336
+ assert(len % 4 === 0)
337
+ const res = new Array(len / 4)
338
+ for (let i = 0, k: number = start; i < res.length; i++, k += 4) {
339
+ let w
340
+ if (endian === 'big') {
341
+ w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3]
342
+ } else {
343
+ w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k]
344
+ }
345
+ res[i] = w >>> 0
346
+ }
347
+ return res
348
+ }
349
+
350
+ function split32 (msg: number[], endian: 'big' | 'little'): number[] {
351
+ const res = new Array(msg.length * 4)
352
+ for (let i = 0, k = 0; i < msg.length; i++, k += 4) {
353
+ const m = msg[i]
354
+ if (endian === 'big') {
355
+ res[k] = m >>> 24
356
+ res[k + 1] = (m >>> 16) & 0xff
357
+ res[k + 2] = (m >>> 8) & 0xff
358
+ res[k + 3] = m & 0xff
359
+ } else {
360
+ res[k + 3] = m >>> 24
361
+ res[k + 2] = (m >>> 16) & 0xff
362
+ res[k + 1] = (m >>> 8) & 0xff
363
+ res[k] = m & 0xff
364
+ }
365
+ }
366
+ return res
367
+ }
368
+
369
+ function rotr32 (w: number, b: number): number {
370
+ return (w >>> b) | (w << (32 - b))
371
+ }
372
+
373
+ function rotl32 (w: number, b: number): number {
374
+ return (w << b) | (w >>> (32 - b))
375
+ }
376
+
377
+ function sum32 (a: number, b: number): number {
378
+ return (a + b) >>> 0
379
+ }
380
+
381
+ function SUM32_3 (a: number, b: number, c: number): number {
382
+ return (a + b + c) >>> 0
383
+ }
384
+
385
+ function SUM32_4 (a: number, b: number, c: number, d: number): number {
386
+ return (a + b + c + d) >>> 0
387
+ }
388
+
389
+ function SUM32_5 (
390
+ a: number,
391
+ b: number,
392
+ c: number,
393
+ d: number,
394
+ e: number
395
+ ): number {
396
+ return (a + b + c + d + e) >>> 0
397
+ }
398
+
399
+ function FT_1 (s, x, y, z): number {
400
+ if (s === 0) {
401
+ return ch32(x, y, z)
402
+ }
403
+ if (s === 1 || s === 3) {
404
+ return p32(x, y, z)
405
+ }
406
+ if (s === 2) {
407
+ return maj32(x, y, z)
408
+ }
409
+ return 0
410
+ }
411
+
412
+ function ch32 (x, y, z): number {
413
+ return (x & y) ^ (~x & z)
414
+ }
415
+
416
+ function maj32 (x, y, z): number {
417
+ return (x & y) ^ (x & z) ^ (y & z)
418
+ }
419
+
420
+ function p32 (x, y, z): number {
421
+ return x ^ y ^ z
422
+ }
423
+
424
+ function S0_256 (x): number {
425
+ return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22)
426
+ }
427
+
428
+ function S1_256 (x): number {
429
+ return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25)
430
+ }
431
+
432
+ function G0_256 (x): number {
433
+ return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3)
434
+ }
435
+
436
+ function G1_256 (x): number {
437
+ return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10)
438
+ }
439
+
440
+ const r = [
441
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15,
442
+ 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11,
443
+ 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7,
444
+ 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
445
+ ]
446
+
447
+ const rh = [
448
+ 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5,
449
+ 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0,
450
+ 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1,
451
+ 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
452
+ ]
453
+
454
+ const s = [
455
+ 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7,
456
+ 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5,
457
+ 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5,
458
+ 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
459
+ ]
460
+
461
+ const sh = [
462
+ 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8,
463
+ 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14,
464
+ 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5,
465
+ 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
466
+ ]
467
+
468
+ function f (j, x, y, z): number {
469
+ if (j <= 15) {
470
+ return x ^ y ^ z
471
+ } else if (j <= 31) {
472
+ return (x & y) | (~x & z)
473
+ } else if (j <= 47) {
474
+ return (x | ~y) ^ z
475
+ } else if (j <= 63) {
476
+ return (x & z) | (y & ~z)
477
+ } else {
478
+ return x ^ (y | ~z)
479
+ }
480
+ }
481
+
482
+ function K (j): number {
483
+ if (j <= 15) {
484
+ return 0x00000000
485
+ } else if (j <= 31) {
486
+ return 0x5a827999
487
+ } else if (j <= 47) {
488
+ return 0x6ed9eba1
489
+ } else if (j <= 63) {
490
+ return 0x8f1bbcdc
491
+ } else {
492
+ return 0xa953fd4e
493
+ }
494
+ }
495
+
496
+ function Kh (j): number {
497
+ if (j <= 15) {
498
+ return 0x50a28be6
499
+ } else if (j <= 31) {
500
+ return 0x5c4dd124
501
+ } else if (j <= 47) {
502
+ return 0x6d703ef3
503
+ } else if (j <= 63) {
504
+ return 0x7a6d76e9
505
+ } else {
506
+ return 0x00000000
507
+ }
508
+ }
509
+
510
+ /**
511
+ * An implementation of RIPEMD160 cryptographic hash function. Extends the BaseHash class.
512
+ * It provides a way to compute a 'digest' for any kind of input data; transforming the data
513
+ * into a unique output of fixed size. The output is deterministic; it will always be
514
+ * the same for the same input.
515
+ *
516
+ * @class RIPEMD160
517
+ * @param None
518
+ *
519
+ * @constructor
520
+ * Use the RIPEMD160 constructor to create an instance of RIPEMD160 hash function.
521
+ *
522
+ * @example
523
+ * const ripemd160 = new RIPEMD160();
524
+ *
525
+ * @property h - Array that is updated iteratively as part of hashing computation.
526
+ */
527
+ export class RIPEMD160 extends BaseHash {
528
+ h: number[]
529
+
530
+ constructor () {
531
+ super(512, 160, 192, 64)
532
+ this.endian = 'little'
533
+
534
+ this.h = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]
535
+ this.endian = 'little'
536
+ }
537
+
538
+ _update (msg: number[], start: number): void {
539
+ let A = this.h[0]
540
+ let B = this.h[1]
541
+ let C = this.h[2]
542
+ let D = this.h[3]
543
+ let E = this.h[4]
544
+ let Ah = A
545
+ let Bh = B
546
+ let Ch = C
547
+ let Dh = D
548
+ let Eh = E
549
+ let T
550
+ for (let j = 0; j < 80; j++) {
551
+ T = sum32(
552
+ rotl32(SUM32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)), s[j]),
553
+ E
554
+ )
555
+ A = E
556
+ E = D
557
+ D = rotl32(C, 10)
558
+ C = B
559
+ B = T
560
+ T = sum32(
561
+ rotl32(
562
+ SUM32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
563
+ sh[j]
564
+ ),
565
+ Eh
566
+ )
567
+ Ah = Eh
568
+ Eh = Dh
569
+ Dh = rotl32(Ch, 10)
570
+ Ch = Bh
571
+ Bh = T
572
+ }
573
+ T = SUM32_3(this.h[1], C, Dh)
574
+ this.h[1] = SUM32_3(this.h[2], D, Eh)
575
+ this.h[2] = SUM32_3(this.h[3], E, Ah)
576
+ this.h[3] = SUM32_3(this.h[4], A, Bh)
577
+ this.h[4] = SUM32_3(this.h[0], B, Ch)
578
+ this.h[0] = T
579
+ }
580
+
581
+ _digest (): number[] {
582
+ return split32(this.h, 'little')
583
+ }
584
+
585
+ _digestHex (): string {
586
+ return toHex32(this.h, 'little')
587
+ }
588
+ }
589
+
590
+ /**
591
+ * An implementation of SHA256 cryptographic hash function. Extends the BaseHash class.
592
+ * It provides a way to compute a 'digest' for any kind of input data; transforming the data
593
+ * into a unique output of fixed size. The output is deterministic; it will always be
594
+ * the same for the same input.
595
+ *
596
+ * @class SHA256
597
+ * @param None
598
+ *
599
+ * @constructor
600
+ * Use the SHA256 constructor to create an instance of SHA256 hash function.
601
+ *
602
+ * @example
603
+ * const sha256 = new SHA256();
604
+ *
605
+ * @property h - The initial hash constants
606
+ * @property W - Provides a way to recycle usage of the array memory.
607
+ * @property k - The round constants used for each round of SHA-256
608
+ */
609
+ export class SHA256 {
610
+ private readonly h: FastSHA256
611
+ constructor () {
612
+ this.h = new FastSHA256()
613
+ }
614
+
615
+ update (
616
+ msg: Uint8Array | number[] | string,
617
+ enc?: 'hex' | 'utf8'
618
+ ): this {
619
+ const data =
620
+ msg instanceof Uint8Array ? msg : Uint8Array.from(toArray(msg, enc))
621
+ this.h.update(data)
622
+ return this
623
+ }
624
+
625
+ digest (): number[] {
626
+ return Array.from(this.h.digest())
627
+ }
628
+
629
+ digestHex (): string {
630
+ return bytesToHex(this.h.digest())
631
+ }
632
+ }
633
+
634
+ /**
635
+ * An implementation of SHA1 cryptographic hash function. Extends the BaseHash class.
636
+ * It provides a way to compute a 'digest' for any kind of input data; transforming the data
637
+ * into a unique output of fixed size. The output is deterministic; it will always be
638
+ * the same for the same input.
639
+ *
640
+ * @class SHA1
641
+ * @param None
642
+ *
643
+ * @constructor
644
+ * Use the SHA1 constructor to create an instance of SHA1 hash function.
645
+ *
646
+ * @example
647
+ * const sha1 = new SHA1();
648
+ *
649
+ * @property h - The initial hash constants.
650
+ * @property W - Provides a way to recycle usage of the array memory.
651
+ * @property k - The round constants used for each round of SHA-1.
652
+ */
653
+ export class SHA1 extends BaseHash {
654
+ h: number[]
655
+ W: number[]
656
+ k: number[]
657
+
658
+ constructor () {
659
+ super(512, 160, 80, 64)
660
+ this.k = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6]
661
+ this.h = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]
662
+ this.W = new Array(80)
663
+ }
664
+
665
+ _update (msg: number[], start?: number): void {
666
+ const W = this.W
667
+
668
+ // Default start to 0
669
+ if (start === undefined) {
670
+ start = 0
671
+ }
672
+
673
+ let i: number
674
+ for (i = 0; i < 16; i++) {
675
+ W[i] = msg[start + i]
676
+ }
677
+
678
+ for (; i < W.length; i++) {
679
+ W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1)
680
+ }
681
+
682
+ let a = this.h[0]
683
+ let b = this.h[1]
684
+ let c = this.h[2]
685
+ let d = this.h[3]
686
+ let e = this.h[4]
687
+
688
+ for (i = 0; i < W.length; i++) {
689
+ const s = ~~(i / 20)
690
+ const t = SUM32_5(rotl32(a, 5), FT_1(s, b, c, d), e, W[i], this.k[s])
691
+ e = d
692
+ d = c
693
+ c = rotl32(b, 30)
694
+ b = a
695
+ a = t
696
+ }
697
+
698
+ this.h[0] = sum32(this.h[0], a)
699
+ this.h[1] = sum32(this.h[1], b)
700
+ this.h[2] = sum32(this.h[2], c)
701
+ this.h[3] = sum32(this.h[3], d)
702
+ this.h[4] = sum32(this.h[4], e)
703
+ }
704
+
705
+ _digest (): number[] {
706
+ return split32(this.h, 'big')
707
+ }
708
+
709
+ _digestHex (): string {
710
+ return toHex32(this.h, 'big')
711
+ }
712
+ }
713
+
714
+ /**
715
+ * An implementation of SHA512 cryptographic hash function. Extends the BaseHash class.
716
+ * It provides a way to compute a 'digest' for any kind of input data; transforming the data
717
+ * into a unique output of fixed size. The output is deterministic; it will always be
718
+ * the same for the same input.
719
+ *
720
+ * @class SHA512
721
+ * @param None
722
+ *
723
+ * @constructor
724
+ * Use the SHA512 constructor to create an instance of SHA512 hash function.
725
+ *
726
+ * @example
727
+ * const sha512 = new SHA512();
728
+ *
729
+ * @property h - The initial hash constants.
730
+ * @property W - Provides a way to recycle usage of the array memory.
731
+ * @property k - The round constants used for each round of SHA-512.
732
+ */
733
+ export class SHA512 {
734
+ private readonly h: FastSHA512
735
+ constructor () {
736
+ this.h = new FastSHA512()
737
+ }
738
+
739
+ update (msg: number[] | string, enc?: 'hex' | 'utf8'): this {
740
+ const data = Uint8Array.from(toArray(msg, enc))
741
+ this.h.update(data)
742
+ return this
743
+ }
744
+
745
+ digest (): number[] {
746
+ return Array.from(this.h.digest())
747
+ }
748
+
749
+ digestHex (): string {
750
+ return bytesToHex(this.h.digest())
751
+ }
752
+ }
753
+
754
+ /**
755
+ * The `SHA256HMAC` class is used to create Hash-based Message Authentication Code (HMAC) using the SHA-256 cryptographic hash function.
756
+ *
757
+ * HMAC is a specific type of MAC involving a cryptographic hash function and a secret cryptographic key. It may be used to simultaneously verify both the data integrity and the authenticity of a message.
758
+ *
759
+ * This class also uses the SHA-256 cryptographic hash algorithm that produces a 256-bit (32-byte) hash value.
760
+ *
761
+ * @property inner - Represents the inner hash of SHA-256.
762
+ * @property outer - Represents the outer hash of SHA-256.
763
+ * @property blockSize - The block size for the SHA-256 hash function, in bytes. It's set to 64 bytes.
764
+ * @property outSize - The output size of the SHA-256 hash function, in bytes. It's set to 32 bytes.
765
+ */
766
+ export class SHA256HMAC {
767
+ private readonly h: HMAC<FastSHA256>
768
+ blockSize = 64
769
+ outSize = 32
770
+
771
+ /**
772
+ * The constructor for the `SHA256HMAC` class.
773
+ *
774
+ * It initializes the `SHA256HMAC` object and sets up the inner and outer padded keys.
775
+ * If the key size is larger than the blockSize, it is digested using SHA-256.
776
+ * If the key size is less than the blockSize, it is padded with zeroes.
777
+ *
778
+ * @constructor
779
+ * @param key - The key to use to create the HMAC. Can be a number array or a string in hexadecimal format.
780
+ *
781
+ * @example
782
+ * const myHMAC = new SHA256HMAC('deadbeef');
783
+ */
784
+ constructor (key: Uint8Array | number[] | string) {
785
+ const k =
786
+ key instanceof Uint8Array
787
+ ? key
788
+ : Uint8Array.from(
789
+ toArray(
790
+ key,
791
+ typeof key === 'string' ? 'hex' : undefined
792
+ )
793
+ )
794
+ this.h = new HMAC(sha256Fast, k)
795
+ }
796
+
797
+ /**
798
+ * Updates the `SHA256HMAC` object with part of the message to be hashed.
799
+ *
800
+ * @method update
801
+ * @param msg - Part of the message to hash. Can be a number array or a string.
802
+ * @param enc - If 'hex', then the input is encoded as hexadecimal. If undefined or not 'hex', then no encoding is performed.
803
+ * @returns Returns the instance of `SHA256HMAC` for chaining calls.
804
+ *
805
+ * @example
806
+ * myHMAC.update('deadbeef', 'hex');
807
+ */
808
+ update (msg: Uint8Array | number[] | string, enc?: 'hex'): SHA256HMAC {
809
+ const data =
810
+ msg instanceof Uint8Array ? msg : Uint8Array.from(toArray(msg, enc))
811
+ this.h.update(data)
812
+ return this
813
+ }
814
+
815
+ /**
816
+ * Finalizes the HMAC computation and returns the resultant hash.
817
+ *
818
+ * @method digest
819
+ * @returns Returns the digest of the hashed data. Can be a number array or a string.
820
+ *
821
+ * @example
822
+ * let hashedMessage = myHMAC.digest();
823
+ */
824
+ digest (): number[] {
825
+ return Array.from(this.h.digest())
826
+ }
827
+
828
+ /**
829
+ * Finalizes the HMAC computation and returns the resultant hash as a hex string.
830
+ *
831
+ * @method digest
832
+ * @returns Returns the digest of the hashed data as a hex string
833
+ *
834
+ * @example
835
+ * let hashedMessage = myHMAC.digestHex();
836
+ */
837
+ digestHex (): string {
838
+ return bytesToHex(this.h.digest())
839
+ }
840
+ }
841
+
842
+ export class SHA1HMAC {
843
+ inner: SHA1
844
+ outer: SHA1
845
+ blockSize = 64
846
+
847
+ constructor (key: number[] | string) {
848
+ key = toArray(key, 'hex')
849
+ // Shorten key, if needed
850
+ if (key.length > this.blockSize) {
851
+ key = new SHA1().update(key).digest()
852
+ }
853
+
854
+ // Keys shorter than block size are padded with zeros on the right
855
+ let i
856
+ for (i = key.length; i < this.blockSize; i++) {
857
+ key.push(0)
858
+ }
859
+
860
+ for (i = 0; i < key.length; i++) {
861
+ key[i] ^= 0x36
862
+ }
863
+ this.inner = new SHA1().update(key)
864
+
865
+ // 0x36 ^ 0x5c = 0x6a
866
+ for (i = 0; i < key.length; i++) {
867
+ key[i] ^= 0x6a
868
+ }
869
+ this.outer = new SHA1().update(key)
870
+ }
871
+
872
+ update (msg: number[] | string, enc?: 'hex'): SHA1HMAC {
873
+ this.inner.update(msg, enc)
874
+ return this
875
+ }
876
+
877
+ digest (): number[] {
878
+ this.outer.update(this.inner.digest())
879
+ return this.outer.digest()
880
+ }
881
+
882
+ digestHex (): string {
883
+ this.outer.update(this.inner.digest())
884
+ return this.outer.digestHex()
885
+ }
886
+ }
887
+
888
+ /**
889
+ * The `SHA512HMAC` class is used to create Hash-based Message Authentication Code (HMAC) using the SHA-512 cryptographic hash function.
890
+ *
891
+ * HMAC is a specific type of MAC involving a cryptographic hash function and a secret cryptographic key. It may be used to simultaneously verify both the data integrity and the authenticity of a message.
892
+ *
893
+ * This class also uses the SHA-512 cryptographic hash algorithm that produces a 512-bit (64-byte) hash value.
894
+ *
895
+ * @property inner - Represents the inner hash of SHA-512.
896
+ * @property outer - Represents the outer hash of SHA-512.
897
+ * @property blockSize - The block size for the SHA-512 hash function, in bytes. It's set to 128 bytes.
898
+ * @property outSize - The output size of the SHA-512 hash function, in bytes. It's set to 64 bytes.
899
+ */
900
+ export class SHA512HMAC {
901
+ private readonly h: HMAC<FastSHA512>
902
+ blockSize = 128
903
+ outSize = 32
904
+
905
+ /**
906
+ * The constructor for the `SHA512HMAC` class.
907
+ *
908
+ * It initializes the `SHA512HMAC` object and sets up the inner and outer padded keys.
909
+ * If the key size is larger than the blockSize, it is digested using SHA-512.
910
+ * If the key size is less than the blockSize, it is padded with zeroes.
911
+ *
912
+ * @constructor
913
+ * @param key - The key to use to create the HMAC. Can be a number array or a string in hexadecimal format.
914
+ *
915
+ * @example
916
+ * const myHMAC = new SHA512HMAC('deadbeef');
917
+ */
918
+ constructor (key: Uint8Array | number[] | string) {
919
+ const k =
920
+ key instanceof Uint8Array
921
+ ? key
922
+ : Uint8Array.from(
923
+ toArray(
924
+ key,
925
+ typeof key === 'string' ? 'hex' : undefined
926
+ )
927
+ )
928
+ this.h = new HMAC(sha512Fast, k)
929
+ }
930
+
931
+ /**
932
+ * Updates the `SHA512HMAC` object with part of the message to be hashed.
933
+ *
934
+ * @method update
935
+ * @param msg - Part of the message to hash. Can be a number array or a string.
936
+ * @param enc - If 'hex', then the input is encoded as hexadecimal. If undefined or not 'hex', then no encoding is performed.
937
+ * @returns Returns the instance of `SHA512HMAC` for chaining calls.
938
+ *
939
+ * @example
940
+ * myHMAC.update('deadbeef', 'hex');
941
+ */
942
+ update (msg: Uint8Array | number[] | string, enc?: 'hex' | 'utf8'): SHA512HMAC {
943
+ const data =
944
+ msg instanceof Uint8Array ? msg : Uint8Array.from(toArray(msg, enc))
945
+ this.h.update(data)
946
+ return this
947
+ }
948
+
949
+ /**
950
+ * Finalizes the HMAC computation and returns the resultant hash.
951
+ *
952
+ * @method digest
953
+ * @returns Returns the digest of the hashed data as a number array.
954
+ *
955
+ * @example
956
+ * let hashedMessage = myHMAC.digest();
957
+ */
958
+ digest (): number[] {
959
+ return Array.from(this.h.digest())
960
+ }
961
+
962
+ /**
963
+ * Finalizes the HMAC computation and returns the resultant hash as a hex string.
964
+ *
965
+ * @method digest
966
+ * @returns Returns the digest of the hashed data as a hex string
967
+ *
968
+ * @example
969
+ * let hashedMessage = myHMAC.digestHex();
970
+ */
971
+ digestHex (): string {
972
+ return bytesToHex(this.h.digest())
973
+ }
974
+ }
975
+
976
+ /**
977
+ * Computes RIPEMD160 hash of a given message.
978
+ * @function ripemd160
979
+ * @param msg - The message to compute the hash for.
980
+ * @param enc - The encoding of msg if string. Default is 'utf8'.
981
+ *
982
+ * @returns the computed RIPEMD160 hash of the message.
983
+ *
984
+ * @example
985
+ * const digest = ripemd160('Hello, world!');
986
+ */
987
+ export const ripemd160 = (
988
+ msg: number[] | string,
989
+ enc?: 'hex' | 'utf8'
990
+ ): number[] => {
991
+ return new RIPEMD160().update(msg, enc).digest()
992
+ }
993
+
994
+ /**
995
+ * Computes SHA1 hash of a given message.
996
+ * @function sha1
997
+ * @param msg - The message to compute the hash for.
998
+ * @param enc - The encoding of msg if string. Default is 'utf8'.
999
+ *
1000
+ * @returns the computed SHA1 hash of the message.
1001
+ *
1002
+ * @example
1003
+ * const digest = sha1('Hello, world!');
1004
+ */
1005
+ export const sha1 = (
1006
+ msg: number[] | string,
1007
+ enc?: 'hex' | 'utf8'
1008
+ ): number[] => {
1009
+ return new SHA1().update(msg, enc).digest()
1010
+ }
1011
+
1012
+ /**
1013
+ * Computes SHA256 hash of a given message.
1014
+ * @function sha256
1015
+ * @param msg - The message to compute the hash for.
1016
+ * @param enc - The encoding of msg if string. Default is 'utf8'.
1017
+ *
1018
+ * @returns the computed SHA256 hash of the message.
1019
+ *
1020
+ * @example
1021
+ * const digest = sha256('Hello, world!');
1022
+ */
1023
+ export const sha256 = (
1024
+ msg: Uint8Array | number[] | string,
1025
+ enc?: 'hex' | 'utf8'
1026
+ ): number[] => {
1027
+ return new SHA256().update(msg, enc).digest()
1028
+ }
1029
+
1030
+ /**
1031
+ * Computes SHA512 hash of a given message.
1032
+ * @function sha512
1033
+ * @param msg - The message to compute the hash for.
1034
+ * @param enc - The encoding of msg if string. Default is 'utf8'.
1035
+ *
1036
+ * @returns the computed SHA512 hash of the message.
1037
+ *
1038
+ * @example
1039
+ * const digest = sha512('Hello, world!');
1040
+ */
1041
+ export const sha512 = (
1042
+ msg: number[] | string,
1043
+ enc?: 'hex' | 'utf8'
1044
+ ): number[] => {
1045
+ return new SHA512().update(msg, enc).digest()
1046
+ }
1047
+
1048
+ /**
1049
+ * Performs a 'double hash' using SHA256. This means the data is hashed twice
1050
+ * with SHA256. First, the SHA256 hash of the message is computed, then the
1051
+ * SHA256 hash of the resulting hash is computed.
1052
+ * @function hash256
1053
+ * @param msg - The message to compute the hash for.
1054
+ * @param enc - The encoding of msg if string. Default is 'utf8'.
1055
+ *
1056
+ * @returns the double hashed SHA256 output.
1057
+ *
1058
+ * @example
1059
+ * const doubleHash = hash256('Hello, world!');
1060
+ */
1061
+ export const hash256 = (
1062
+ msg: Uint8Array | number[] | string,
1063
+ enc?: 'hex' | 'utf8'
1064
+ ): number[] => {
1065
+ const first = new SHA256().update(msg, enc).digest()
1066
+ return new SHA256().update(first).digest()
1067
+ }
1068
+
1069
+ /**
1070
+ * Computes SHA256 hash of a given message and then computes a RIPEMD160 hash of the result.
1071
+ *
1072
+ * @function hash160
1073
+ * @param msg - The message to compute the hash for.
1074
+ * @param enc - The encoding of msg if string. Default is 'utf8'.
1075
+ *
1076
+ * @returns the RIPEMD160 hash of the SHA256 hash of the input message.
1077
+ *
1078
+ * @example
1079
+ * const hash = hash160('Hello, world!');
1080
+ */
1081
+ export const hash160 = (
1082
+ msg: Uint8Array | number[] | string,
1083
+ enc?: 'hex' | 'utf8'
1084
+ ): number[] => {
1085
+ const first = new SHA256().update(msg, enc).digest()
1086
+ return new RIPEMD160().update(first).digest()
1087
+ }
1088
+
1089
+ /**
1090
+ * Computes SHA256 HMAC of a given message with a given key.
1091
+ * @function sha256hmac
1092
+ * @param key - The key used to compute the HMAC
1093
+ * @param msg - The message to compute the hash for.
1094
+ * @param enc - The encoding of msg if string. Default is 'utf8'.
1095
+ *
1096
+ * @returns the computed HMAC of the message.
1097
+ *
1098
+ * @example
1099
+ * const digest = sha256hmac('deadbeef', 'ffff001d');
1100
+ */
1101
+ export const sha256hmac = (
1102
+ key: Uint8Array | number[] | string,
1103
+ msg: Uint8Array | number[] | string,
1104
+ enc?: 'hex'
1105
+ ): number[] => {
1106
+ return new SHA256HMAC(key).update(msg, enc).digest()
1107
+ }
1108
+
1109
+ /**
1110
+ * Computes SHA512 HMAC of a given message with a given key.
1111
+ * @function sha512hmac
1112
+ * @param key - The key used to compute the HMAC
1113
+ * @param msg - The message to compute the hash for.
1114
+ * @param enc - The encoding of msg if string. Default is 'utf8'.
1115
+ *
1116
+ * @returns the computed HMAC of the message.
1117
+ *
1118
+ * @example
1119
+ * const digest = sha512hmac('deadbeef', 'ffff001d');
1120
+ */
1121
+ export const sha512hmac = (
1122
+ key: Uint8Array | number[] | string,
1123
+ msg: Uint8Array | number[] | string,
1124
+ enc?: 'hex'
1125
+ ): number[] => {
1126
+ return new SHA512HMAC(key).update(msg, enc).digest()
1127
+ }
1128
+
1129
+ // BEGIN fast-pbkdf2 helpers
1130
+ // Utils
1131
+ function isBytes (a: unknown): a is Uint8Array {
1132
+ return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array')
1133
+ }
1134
+ function anumber (n: number): void {
1135
+ if (!Number.isSafeInteger(n) || n < 0) {
1136
+ throw new Error(`positive integer expected, got ${n}`)
1137
+ }
1138
+ }
1139
+ function abytes (b: Uint8Array | undefined, ...lengths: number[]): void {
1140
+ if (!isBytes(b)) throw new Error('Uint8Array expected')
1141
+ if (lengths.length > 0 && !lengths.includes(b.length)) {
1142
+ const lens = lengths.join(',')
1143
+ throw new Error(`Uint8Array expected of length ${lens}, got length=${b.length}`)
1144
+ }
1145
+ }
1146
+ function ahash (h: IHash): void {
1147
+ if (typeof h !== 'function' || typeof h.create !== 'function') { throw new Error('Hash should be wrapped by utils.createHasher') }
1148
+ anumber(h.outputLen)
1149
+ anumber(h.blockLen)
1150
+ }
1151
+ function aexists (instance: any, checkFinished = true): void {
1152
+ if (instance.destroyed === true) throw new Error('Hash instance has been destroyed')
1153
+ if (checkFinished && instance.finished === true) {
1154
+ throw new Error('Hash#digest() has already been called')
1155
+ }
1156
+ }
1157
+ function aoutput (out: any, instance: any): void {
1158
+ abytes(out)
1159
+ const min: number = instance.outputLen as number
1160
+ if (out.length < min) {
1161
+ throw new Error(`digestInto() expects output buffer of length at least ${min}`)
1162
+ }
1163
+ }
1164
+ type TypedArray =
1165
+ | Int8Array
1166
+ | Uint8ClampedArray
1167
+ | Uint8Array
1168
+ | Uint16Array
1169
+ | Int16Array
1170
+ | Uint32Array
1171
+ | Int32Array
1172
+
1173
+ function clean (...arrays: TypedArray[]): void {
1174
+ for (let i = 0; i < arrays.length; i++) arrays[i].fill(0)
1175
+ }
1176
+ function createView (arr: TypedArray): DataView {
1177
+ return new DataView(arr.buffer, arr.byteOffset, arr.byteLength)
1178
+ }
1179
+ function toBytes (data: Input): Uint8Array {
1180
+ if (typeof data === 'string') data = utf8ToBytes(data)
1181
+ abytes(data)
1182
+ return data
1183
+ }
1184
+ function utf8ToBytes (str: string): Uint8Array {
1185
+ if (typeof str !== 'string') throw new Error('string expected')
1186
+ return new Uint8Array(new TextEncoder().encode(str))
1187
+ }
1188
+ type Input = string | Uint8Array
1189
+ type KDFInput = string | Uint8Array
1190
+ function kdfInputToBytes (data: KDFInput): Uint8Array {
1191
+ if (typeof data === 'string') data = utf8ToBytes(data)
1192
+ abytes(data)
1193
+ return data
1194
+ }
1195
+ interface IHash {
1196
+ (data: Uint8Array): Uint8Array
1197
+ blockLen: number
1198
+ outputLen: number
1199
+ create: any
1200
+ }
1201
+
1202
+ interface Hasher<T extends Hash<T>> {
1203
+ (msg: Input): Uint8Array
1204
+ blockLen: number
1205
+ outputLen: number
1206
+ create: () => Hash<T>
1207
+ }
1208
+ abstract class Hash<T extends Hash<T>> {
1209
+ abstract blockLen: number
1210
+ abstract outputLen: number
1211
+ abstract update (buf: Input): this
1212
+ abstract digestInto (buf: Uint8Array): void
1213
+ abstract digest (): Uint8Array
1214
+ abstract destroy (): void
1215
+ abstract _cloneInto (to?: T): T
1216
+ abstract clone (): T
1217
+ }
1218
+ function createHasher<T extends Hash<T>> (hashCons: () => Hash<T>): Hasher<T> {
1219
+ const hashC = (msg: Input): Uint8Array => hashCons().update(toBytes(msg)).digest()
1220
+ const tmp = hashCons()
1221
+ hashC.outputLen = tmp.outputLen
1222
+ hashC.blockLen = tmp.blockLen
1223
+ hashC.create = () => hashCons()
1224
+ return hashC
1225
+ }
1226
+
1227
+ // u64 helpers
1228
+ const U32_MASK64 = BigInt(2 ** 32 - 1)
1229
+ const _32n = BigInt(32)
1230
+ function fromBig (n: bigint, le = false): { h: number, l: number } {
1231
+ if (le) return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) }
1232
+ return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 }
1233
+ }
1234
+ function split (lst: bigint[], le = false): Uint32Array[] {
1235
+ const len = lst.length
1236
+ const Ah = new Uint32Array(len)
1237
+ const Al = new Uint32Array(len)
1238
+ for (let i = 0; i < len; i++) {
1239
+ const { h, l } = fromBig(lst[i], le)
1240
+ Ah[i] = h
1241
+ Al[i] = l
1242
+ }
1243
+ return [Ah, Al]
1244
+ }
1245
+ const shrSH = (h: number, _l: number, s: number): number => h >>> s
1246
+ const shrSL = (h: number, l: number, s: number): number => (h << (32 - s)) | (l >>> s)
1247
+ const rotrSH = (h: number, l: number, s: number): number => (h >>> s) | (l << (32 - s))
1248
+ const rotrSL = (h: number, l: number, s: number): number => (h << (32 - s)) | (l >>> s)
1249
+ const rotrBH = (h: number, l: number, s: number): number => (h << (64 - s)) | (l >>> (s - 32))
1250
+ const rotrBL = (h: number, l: number, s: number): number => (h >>> (s - 32)) | (l << (64 - s))
1251
+ function add (Ah: number, Al: number, Bh: number, Bl: number): { h: number, l: number } {
1252
+ const l = (Al >>> 0) + (Bl >>> 0)
1253
+ return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 }
1254
+ }
1255
+ const add3L = (Al: number, Bl: number, Cl: number): number => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0)
1256
+ const add3H = (low: number, Ah: number, Bh: number, Ch: number): number => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0
1257
+ const add4L = (Al: number, Bl: number, Cl: number, Dl: number): number => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0)
1258
+ const add4H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number): number => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0
1259
+ const add5L = (Al: number, Bl: number, Cl: number, Dl: number, El: number): number =>
1260
+ (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0)
1261
+ const add5H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number, Eh: number): number =>
1262
+ (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0
1263
+
1264
+ // _md helpers
1265
+ abstract class HashMD<T extends HashMD<T>> extends Hash<T> {
1266
+ readonly blockLen: number
1267
+ readonly outputLen: number
1268
+ readonly padOffset: number
1269
+ readonly isLE: boolean
1270
+ protected buffer: Uint8Array
1271
+ protected view: DataView
1272
+ protected finished = false
1273
+ protected length = 0
1274
+ protected pos = 0
1275
+ protected destroyed = false
1276
+ constructor (blockLen: number, outputLen: number, padOffset: number, isLE: boolean) {
1277
+ super()
1278
+ this.blockLen = blockLen
1279
+ this.outputLen = outputLen
1280
+ this.padOffset = padOffset
1281
+ this.isLE = isLE
1282
+ this.buffer = new Uint8Array(blockLen)
1283
+ this.view = createView(this.buffer)
1284
+ }
1285
+
1286
+ protected abstract process (buf: DataView, offset: number): void
1287
+ protected abstract get (): number[]
1288
+ protected abstract set (...args: number[]): void
1289
+ abstract destroy (): void
1290
+ protected abstract roundClean (): void
1291
+ update (data: Input): this {
1292
+ aexists(this)
1293
+ data = toBytes(data)
1294
+ abytes(data)
1295
+ const { view, buffer, blockLen } = this
1296
+ const len = data.length
1297
+ for (let pos = 0; pos < len;) {
1298
+ const take = Math.min(blockLen - this.pos, len - pos)
1299
+ if (take === blockLen) {
1300
+ const dataView = createView(data)
1301
+ for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos)
1302
+ continue
1303
+ }
1304
+ buffer.set(data.subarray(pos, pos + take), this.pos)
1305
+ this.pos += take
1306
+ pos += take
1307
+ if (this.pos === blockLen) {
1308
+ this.process(view, 0)
1309
+ this.pos = 0
1310
+ }
1311
+ }
1312
+ this.length += data.length
1313
+ this.roundClean()
1314
+ return this
1315
+ }
1316
+
1317
+ digestInto (out: Uint8Array): void {
1318
+ aexists(this)
1319
+ aoutput(out, this)
1320
+ this.finished = true
1321
+ const { buffer, view, blockLen, isLE } = this
1322
+ let { pos } = this
1323
+ buffer[pos++] = 0b10000000
1324
+ clean(this.buffer.subarray(pos))
1325
+ if (this.padOffset > blockLen - pos) {
1326
+ this.process(view, 0)
1327
+ pos = 0
1328
+ }
1329
+ for (let i = pos; i < blockLen; i++) buffer[i] = 0
1330
+ setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE)
1331
+ this.process(view, 0)
1332
+ const oview = createView(out)
1333
+ const len = this.outputLen
1334
+ if (len % 4 !== 0) throw new Error('_sha2: outputLen should be aligned to 32bit')
1335
+ const outLen = len / 4
1336
+ const state = this.get()
1337
+ if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state')
1338
+ for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE)
1339
+ }
1340
+
1341
+ digest (): Uint8Array {
1342
+ const { buffer, outputLen } = this
1343
+ this.digestInto(buffer)
1344
+ const res = buffer.slice(0, outputLen)
1345
+ this.destroy()
1346
+ return res
1347
+ }
1348
+
1349
+ _cloneInto (to?: T): T {
1350
+ to ||= new (this.constructor as any)() as T
1351
+ to.set(...this.get())
1352
+ const { blockLen, buffer, length, finished, destroyed, pos } = this
1353
+ to.destroyed = destroyed
1354
+ to.finished = finished
1355
+ to.length = length
1356
+ to.pos = pos
1357
+ if (length % blockLen !== 0) to.buffer.set(buffer)
1358
+ return to
1359
+ }
1360
+
1361
+ clone (): T {
1362
+ return this._cloneInto()
1363
+ }
1364
+ }
1365
+ function setBigUint64 (view: DataView, byteOffset: number, value: bigint, isLE: boolean): void {
1366
+ if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE)
1367
+ const _32n = BigInt(32)
1368
+ const _u32_max = BigInt(0xffffffff)
1369
+ const wh = Number((value >> _32n) & _u32_max)
1370
+ const wl = Number(value & _u32_max)
1371
+ const h = isLE ? 4 : 0
1372
+ const l = isLE ? 0 : 4
1373
+ view.setUint32(byteOffset + h, wh, isLE)
1374
+ view.setUint32(byteOffset + l, wl, isLE)
1375
+ }
1376
+
1377
+ // sha256 fast constants
1378
+ const SHA256_IV = Uint32Array.from([
1379
+ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
1380
+ 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
1381
+ ])
1382
+ const K256 = Uint32Array.from([
1383
+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,
1384
+ 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
1385
+ 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,
1386
+ 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
1387
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,
1388
+ 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
1389
+ 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,
1390
+ 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
1391
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,
1392
+ 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
1393
+ 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
1394
+ ])
1395
+ const SHA256_W = new Uint32Array(64)
1396
+
1397
+ class FastSHA256 extends HashMD<FastSHA256> {
1398
+ protected A = SHA256_IV[0] | 0
1399
+ protected B = SHA256_IV[1] | 0
1400
+ protected C = SHA256_IV[2] | 0
1401
+ protected D = SHA256_IV[3] | 0
1402
+ protected E = SHA256_IV[4] | 0
1403
+ protected F = SHA256_IV[5] | 0
1404
+ protected G = SHA256_IV[6] | 0
1405
+ protected H = SHA256_IV[7] | 0
1406
+ constructor (outputLen = 32) {
1407
+ super(64, outputLen, 8, false)
1408
+ }
1409
+
1410
+ protected get (): number[] {
1411
+ const { A, B, C, D, E, F, G, H } = this
1412
+ return [A, B, C, D, E, F, G, H]
1413
+ }
1414
+
1415
+ protected set (
1416
+ A: number,
1417
+ B: number,
1418
+ C: number,
1419
+ D: number,
1420
+ E: number,
1421
+ F: number,
1422
+ G: number,
1423
+ H: number
1424
+ ): void {
1425
+ this.A = A | 0
1426
+ this.B = B | 0
1427
+ this.C = C | 0
1428
+ this.D = D | 0
1429
+ this.E = E | 0
1430
+ this.F = F | 0
1431
+ this.G = G | 0
1432
+ this.H = H | 0
1433
+ }
1434
+
1435
+ protected process (view: DataView, offset: number): void {
1436
+ for (let i = 0; i < 16; i++, offset += 4) {
1437
+ SHA256_W[i] = view.getUint32(offset)
1438
+ }
1439
+ for (let i = 16; i < 64; i++) {
1440
+ const w15 = SHA256_W[i - 15]
1441
+ const w2 = SHA256_W[i - 2]
1442
+ const s0 = G0_256(w15)
1443
+ const s1 = G1_256(w2)
1444
+ SHA256_W[i] = sum32(sum32(s0, SHA256_W[i - 7]), sum32(s1, SHA256_W[i - 16]))
1445
+ }
1446
+
1447
+ let { A, B, C, D, E, F, G, H } = this
1448
+ for (let i = 0; i < 64; i++) {
1449
+ const T1 = SUM32_5(H, S1_256(E), ch32(E, F, G), K256[i], SHA256_W[i])
1450
+ const T2 = sum32(S0_256(A), maj32(A, B, C))
1451
+ H = G
1452
+ G = F
1453
+ F = E
1454
+ E = sum32(D, T1)
1455
+ D = C
1456
+ C = B
1457
+ B = A
1458
+ A = sum32(T1, T2)
1459
+ }
1460
+ this.A = sum32(this.A, A)
1461
+ this.B = sum32(this.B, B)
1462
+ this.C = sum32(this.C, C)
1463
+ this.D = sum32(this.D, D)
1464
+ this.E = sum32(this.E, E)
1465
+ this.F = sum32(this.F, F)
1466
+ this.G = sum32(this.G, G)
1467
+ this.H = sum32(this.H, H)
1468
+ }
1469
+
1470
+ protected roundClean (): void {
1471
+ clean(SHA256_W)
1472
+ }
1473
+
1474
+ destroy (): void {
1475
+ clean(this.buffer)
1476
+ this.set(0, 0, 0, 0, 0, 0, 0, 0)
1477
+ }
1478
+ }
1479
+ const sha256Fast = createHasher(() => new FastSHA256())
1480
+
1481
+ // sha512
1482
+ const SHA512_IV = Uint32Array.from([
1483
+ 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,
1484
+ 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179
1485
+ ])
1486
+ const K512 = (() =>
1487
+ split([
1488
+ '0x428a2f98d728ae22',
1489
+ '0x7137449123ef65cd',
1490
+ '0xb5c0fbcfec4d3b2f',
1491
+ '0xe9b5dba58189dbbc',
1492
+ '0x3956c25bf348b538',
1493
+ '0x59f111f1b605d019',
1494
+ '0x923f82a4af194f9b',
1495
+ '0xab1c5ed5da6d8118',
1496
+ '0xd807aa98a3030242',
1497
+ '0x12835b0145706fbe',
1498
+ '0x243185be4ee4b28c',
1499
+ '0x550c7dc3d5ffb4e2',
1500
+ '0x72be5d74f27b896f',
1501
+ '0x80deb1fe3b1696b1',
1502
+ '0x9bdc06a725c71235',
1503
+ '0xc19bf174cf692694',
1504
+ '0xe49b69c19ef14ad2',
1505
+ '0xefbe4786384f25e3',
1506
+ '0x0fc19dc68b8cd5b5',
1507
+ '0x240ca1cc77ac9c65',
1508
+ '0x2de92c6f592b0275',
1509
+ '0x4a7484aa6ea6e483',
1510
+ '0x5cb0a9dcbd41fbd4',
1511
+ '0x76f988da831153b5',
1512
+ '0x983e5152ee66dfab',
1513
+ '0xa831c66d2db43210',
1514
+ '0xb00327c898fb213f',
1515
+ '0xbf597fc7beef0ee4',
1516
+ '0xc6e00bf33da88fc2',
1517
+ '0xd5a79147930aa725',
1518
+ '0x06ca6351e003826f',
1519
+ '0x142929670a0e6e70',
1520
+ '0x27b70a8546d22ffc',
1521
+ '0x2e1b21385c26c926',
1522
+ '0x4d2c6dfc5ac42aed',
1523
+ '0x53380d139d95b3df',
1524
+ '0x650a73548baf63de',
1525
+ '0x766a0abb3c77b2a8',
1526
+ '0x81c2c92e47edaee6',
1527
+ '0x92722c851482353b',
1528
+ '0xa2bfe8a14cf10364',
1529
+ '0xa81a664bbc423001',
1530
+ '0xc24b8b70d0f89791',
1531
+ '0xc76c51a30654be30',
1532
+ '0xd192e819d6ef5218',
1533
+ '0xd69906245565a910',
1534
+ '0xf40e35855771202a',
1535
+ '0x106aa07032bbd1b8',
1536
+ '0x19a4c116b8d2d0c8',
1537
+ '0x1e376c085141ab53',
1538
+ '0x2748774cdf8eeb99',
1539
+ '0x34b0bcb5e19b48a8',
1540
+ '0x391c0cb3c5c95a63',
1541
+ '0x4ed8aa4ae3418acb',
1542
+ '0x5b9cca4f7763e373',
1543
+ '0x682e6ff3d6b2b8a3',
1544
+ '0x748f82ee5defb2fc',
1545
+ '0x78a5636f43172f60',
1546
+ '0x84c87814a1f0ab72',
1547
+ '0x8cc702081a6439ec',
1548
+ '0x90befffa23631e28',
1549
+ '0xa4506cebde82bde9',
1550
+ '0xbef9a3f7b2c67915',
1551
+ '0xc67178f2e372532b',
1552
+ '0xca273eceea26619c',
1553
+ '0xd186b8c721c0c207',
1554
+ '0xeada7dd6cde0eb1e',
1555
+ '0xf57d4f7fee6ed178',
1556
+ '0x06f067aa72176fba',
1557
+ '0x0a637dc5a2c898a6',
1558
+ '0x113f9804bef90dae',
1559
+ '0x1b710b35131c471b',
1560
+ '0x28db77f523047d84',
1561
+ '0x32caab7b40c72493',
1562
+ '0x3c9ebe0a15c9bebc',
1563
+ '0x431d67c49c100d4c',
1564
+ '0x4cc5d4becb3e42b6',
1565
+ '0x597f299cfc657e2a',
1566
+ '0x5fcb6fab3ad6faec',
1567
+ '0x6c44198c4a475817'
1568
+ ].map((n) => BigInt(n)))
1569
+ )()
1570
+ const SHA512_Kh = (() => K512[0])()
1571
+ const SHA512_Kl = (() => K512[1])()
1572
+ const SHA512_W_H = new Uint32Array(80)
1573
+ const SHA512_W_L = new Uint32Array(80)
1574
+
1575
+ class FastSHA512 extends HashMD<FastSHA512> {
1576
+ protected Ah = SHA512_IV[0] | 0
1577
+ protected Al = SHA512_IV[1] | 0
1578
+ protected Bh = SHA512_IV[2] | 0
1579
+ protected Bl = SHA512_IV[3] | 0
1580
+ protected Ch = SHA512_IV[4] | 0
1581
+ protected Cl = SHA512_IV[5] | 0
1582
+ protected Dh = SHA512_IV[6] | 0
1583
+ protected Dl = SHA512_IV[7] | 0
1584
+ protected Eh = SHA512_IV[8] | 0
1585
+ protected El = SHA512_IV[9] | 0
1586
+ protected Fh = SHA512_IV[10] | 0
1587
+ protected Fl = SHA512_IV[11] | 0
1588
+ protected Gh = SHA512_IV[12] | 0
1589
+ protected Gl = SHA512_IV[13] | 0
1590
+ protected Hh = SHA512_IV[14] | 0
1591
+ protected Hl = SHA512_IV[15] | 0
1592
+ constructor (outputLen = 64) {
1593
+ super(128, outputLen, 16, false)
1594
+ }
1595
+
1596
+ protected get (): number[] {
1597
+ const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this
1598
+ return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl]
1599
+ }
1600
+
1601
+ protected set (
1602
+ Ah: number,
1603
+ Al: number,
1604
+ Bh: number,
1605
+ Bl: number,
1606
+ Ch: number,
1607
+ Cl: number,
1608
+ Dh: number,
1609
+ Dl: number,
1610
+ Eh: number,
1611
+ El: number,
1612
+ Fh: number,
1613
+ Fl: number,
1614
+ Gh: number,
1615
+ Gl: number,
1616
+ Hh: number,
1617
+ Hl: number
1618
+ ): void {
1619
+ this.Ah = Ah | 0
1620
+ this.Al = Al | 0
1621
+ this.Bh = Bh | 0
1622
+ this.Bl = Bl | 0
1623
+ this.Ch = Ch | 0
1624
+ this.Cl = Cl | 0
1625
+ this.Dh = Dh | 0
1626
+ this.Dl = Dl | 0
1627
+ this.Eh = Eh | 0
1628
+ this.El = El | 0
1629
+ this.Fh = Fh | 0
1630
+ this.Fl = Fl | 0
1631
+ this.Gh = Gh | 0
1632
+ this.Gl = Gl | 0
1633
+ this.Hh = Hh | 0
1634
+ this.Hl = Hl | 0
1635
+ }
1636
+
1637
+ protected process (view: DataView, offset: number): void {
1638
+ for (let i = 0; i < 16; i++, offset += 4) {
1639
+ SHA512_W_H[i] = view.getUint32(offset)
1640
+ SHA512_W_L[i] = view.getUint32((offset += 4))
1641
+ }
1642
+ for (let i = 16; i < 80; i++) {
1643
+ const W15h = SHA512_W_H[i - 15] | 0
1644
+ const W15l = SHA512_W_L[i - 15] | 0
1645
+ const s0h = rotrSH(W15h, W15l, 1) ^ rotrSH(W15h, W15l, 8) ^ shrSH(W15h, W15l, 7)
1646
+ const s0l = rotrSL(W15h, W15l, 1) ^ rotrSL(W15h, W15l, 8) ^ shrSL(W15h, W15l, 7)
1647
+ const W2h = SHA512_W_H[i - 2] | 0
1648
+ const W2l = SHA512_W_L[i - 2] | 0
1649
+ const s1h = rotrSH(W2h, W2l, 19) ^ rotrBH(W2h, W2l, 61) ^ shrSH(W2h, W2l, 6)
1650
+ const s1l = rotrSL(W2h, W2l, 19) ^ rotrBL(W2h, W2l, 61) ^ shrSL(W2h, W2l, 6)
1651
+ const SUMl = add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16])
1652
+ const SUMh = add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16])
1653
+ SHA512_W_H[i] = SUMh | 0
1654
+ SHA512_W_L[i] = SUMl | 0
1655
+ }
1656
+ let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this
1657
+ for (let i = 0; i < 80; i++) {
1658
+ const sigma1h = rotrSH(Eh, El, 14) ^ rotrSH(Eh, El, 18) ^ rotrBH(Eh, El, 41)
1659
+ const sigma1l = rotrSL(Eh, El, 14) ^ rotrSL(Eh, El, 18) ^ rotrBL(Eh, El, 41)
1660
+ const CHIh = (Eh & Fh) ^ (~Eh & Gh)
1661
+ const CHIl = (El & Fl) ^ (~El & Gl)
1662
+ const T1ll = add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i])
1663
+ const T1h = add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i])
1664
+ const T1l = T1ll | 0
1665
+ const sigma0h = rotrSH(Ah, Al, 28) ^ rotrBH(Ah, Al, 34) ^ rotrBH(Ah, Al, 39)
1666
+ const sigma0l = rotrSL(Ah, Al, 28) ^ rotrBL(Ah, Al, 34) ^ rotrBL(Ah, Al, 39)
1667
+ const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch)
1668
+ const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl)
1669
+ Hh = Gh | 0
1670
+ Hl = Gl | 0
1671
+ Gh = Fh | 0
1672
+ Gl = Fl | 0
1673
+ Fh = Eh | 0
1674
+ Fl = El | 0
1675
+ ;({ h: Eh, l: El } = add(Dh | 0, Dl | 0, T1h | 0, T1l | 0))
1676
+ Dh = Ch | 0
1677
+ Dl = Cl | 0
1678
+ Ch = Bh | 0
1679
+ Cl = Bl | 0
1680
+ Bh = Ah | 0
1681
+ Bl = Al | 0
1682
+ const T2l = add3L(sigma0l, MAJl, T1l)
1683
+ Ah = add3H(T2l, sigma0h, MAJh, T1h)
1684
+ Al = T2l | 0
1685
+ }
1686
+ ;({ h: Ah, l: Al } = add(Ah, Al, this.Ah, this.Al))
1687
+ ;({ h: Bh, l: Bl } = add(Bh, Bl, this.Bh, this.Bl))
1688
+ ;({ h: Ch, l: Cl } = add(Ch, Cl, this.Ch, this.Cl))
1689
+ ;({ h: Dh, l: Dl } = add(Dh, Dl, this.Dh, this.Dl))
1690
+ ;({ h: Eh, l: El } = add(Eh, El, this.Eh, this.El))
1691
+ ;({ h: Fh, l: Fl } = add(Fh, Fl, this.Fh, this.Fl))
1692
+ ;({ h: Gh, l: Gl } = add(Gh, Gl, this.Gh, this.Gl))
1693
+ ;({ h: Hh, l: Hl } = add(Hh, Hl, this.Hh, this.Hl))
1694
+ this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl)
1695
+ }
1696
+
1697
+ protected roundClean (): void {
1698
+ clean(SHA512_W_H, SHA512_W_L)
1699
+ }
1700
+
1701
+ destroy (): void {
1702
+ clean(this.buffer)
1703
+ this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
1704
+ }
1705
+ }
1706
+ const sha512Fast = createHasher(() => new FastSHA512())
1707
+
1708
+ class HMAC<T extends Hash<T>> extends Hash<HMAC<T>> {
1709
+ oHash: T
1710
+ iHash: T
1711
+ blockLen: number
1712
+ outputLen: number
1713
+ private finished = false
1714
+ private destroyed = false
1715
+ constructor (hash: (msg: Input) => Uint8Array & { create: () => T, blockLen: number, outputLen: number }, _key: Input) {
1716
+ super()
1717
+ ahash(hash)
1718
+ const key = toBytes(_key)
1719
+ this.iHash = hash.create() as T
1720
+ if (typeof (this.iHash as any).update !== 'function') { throw new Error('Expected instance of class which extends utils.Hash') }
1721
+ this.blockLen = this.iHash.blockLen
1722
+ this.outputLen = this.iHash.outputLen
1723
+ const blockLen = this.blockLen
1724
+ const pad = new Uint8Array(blockLen)
1725
+ pad.set(key.length > blockLen ? hash.create().update(key).digest() : key)
1726
+ for (let i = 0; i < pad.length; i++) pad[i] ^= 0x36
1727
+ this.iHash.update(pad)
1728
+ this.oHash = hash.create() as T
1729
+ for (let i = 0; i < pad.length; i++) pad[i] ^= 0x36 ^ 0x5c
1730
+ this.oHash.update(pad)
1731
+ clean(pad)
1732
+ }
1733
+
1734
+ update (buf: Input): this {
1735
+ aexists(this)
1736
+ this.iHash.update(buf)
1737
+ return this
1738
+ }
1739
+
1740
+ digestInto (out: Uint8Array): void {
1741
+ aexists(this)
1742
+ abytes(out, this.outputLen)
1743
+ this.finished = true
1744
+ this.iHash.digestInto(out)
1745
+ this.oHash.update(out)
1746
+ this.oHash.digestInto(out)
1747
+ this.destroy()
1748
+ }
1749
+
1750
+ digest (): Uint8Array {
1751
+ const out = new Uint8Array(this.oHash.outputLen)
1752
+ this.digestInto(out)
1753
+ return out
1754
+ }
1755
+
1756
+ _cloneInto (to?: HMAC<T>): HMAC<T> {
1757
+ to ||= Object.create(Object.getPrototypeOf(this), {})
1758
+ const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this
1759
+ to = to as this
1760
+ to.finished = finished
1761
+ to.destroyed = destroyed
1762
+ to.blockLen = blockLen
1763
+ to.outputLen = outputLen
1764
+ to.oHash = oHash._cloneInto(to.oHash ?? undefined)
1765
+ to.iHash = iHash._cloneInto(to.iHash ?? undefined)
1766
+ return to
1767
+ }
1768
+
1769
+ clone (): HMAC<T> {
1770
+ return this._cloneInto()
1771
+ }
1772
+
1773
+ destroy (): void {
1774
+ this.destroyed = true
1775
+ this.oHash.destroy()
1776
+ this.iHash.destroy()
1777
+ }
1778
+ }
1779
+
1780
+ function pbkdf2Core (hash: (msg: Input) => Uint8Array & { create: () => FastSHA512, blockLen: number, outputLen: number }, password: KDFInput, salt: KDFInput, opts: { c: number, dkLen?: number }): Uint8Array {
1781
+ ahash(hash)
1782
+ const { c, dkLen } = Object.assign({ dkLen: 32 }, opts)
1783
+ anumber(c)
1784
+ anumber(dkLen)
1785
+ if (c < 1) throw new Error('iterations (c) should be >= 1')
1786
+ const pwd = kdfInputToBytes(password)
1787
+ const slt = kdfInputToBytes(salt)
1788
+ const DK = new Uint8Array(dkLen)
1789
+ const PRF = hmac.create(hash, pwd)
1790
+ const PRFSalt = PRF._cloneInto().update(slt)
1791
+ let prfW: any
1792
+ const arr = new Uint8Array(4)
1793
+ const view = createView(arr)
1794
+ const u = new Uint8Array(PRF.outputLen)
1795
+ for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {
1796
+ const Ti = DK.subarray(pos, pos + PRF.outputLen)
1797
+ view.setInt32(0, ti, false)
1798
+ ;(prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u)
1799
+ Ti.set(u.subarray(0, Ti.length))
1800
+ for (let ui = 1; ui < c; ui++) {
1801
+ PRF._cloneInto(prfW).update(u).digestInto(u)
1802
+ for (let i = 0; i < Ti.length; i++) Ti[i] ^= u[i]
1803
+ }
1804
+ }
1805
+ PRF.destroy()
1806
+ PRFSalt.destroy()
1807
+ if (prfW != null) prfW.destroy()
1808
+ clean(u)
1809
+ return DK
1810
+ }
1811
+
1812
+ const hmac = (hash: any, key: Input, message: Input): Uint8Array =>
1813
+ new HMAC<any>(hash, key).update(message).digest()
1814
+ hmac.create = (hash: any, key: Input) => new HMAC<any>(hash, key)
1815
+
1816
+ function pbkdf2Fast (password: Uint8Array, salt: Uint8Array, iterations: number, keylen: number): Uint8Array {
1817
+ return pbkdf2Core(sha512Fast, password, salt, { c: iterations, dkLen: keylen })
1818
+ }
1819
+ // END fast-pbkdf2 helpers
1820
+
1821
+ /**
1822
+ * Limited SHA-512-only PBKDF2 function for use in deprecated BIP39 code.
1823
+ * @function pbkdf2
1824
+ * @param password - The PBKDF2 password
1825
+ * @param salt - The PBKDF2 salt
1826
+ * @param iterations - The number of of iterations to run
1827
+ * @param keylen - The length of the key
1828
+ * @param digest - The digest (must be sha512 for this implementation)
1829
+ *
1830
+ * @returns The computed key
1831
+ */
1832
+ export function pbkdf2 (
1833
+ password: number[],
1834
+ salt: number[],
1835
+ iterations: number,
1836
+ keylen: number,
1837
+ digest = 'sha512'
1838
+ ): number[] {
1839
+ if (digest !== 'sha512') {
1840
+ throw new Error('Only sha512 is supported in this PBKDF2 implementation')
1841
+ }
1842
+ // Attempt to use the native Node.js implementation if available as it is
1843
+ // considerably faster than the pure TypeScript fallback below. If the crypto
1844
+ // module isn't present (for example in a browser build) we'll silently fall
1845
+ // back to the original implementation.
1846
+ try {
1847
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
1848
+ const nodeCrypto = require('crypto')
1849
+ if (typeof nodeCrypto.pbkdf2Sync === 'function') {
1850
+ const p = Buffer.from(password)
1851
+ const s = Buffer.from(salt)
1852
+ return [...nodeCrypto.pbkdf2Sync(p, s, iterations, keylen, digest)]
1853
+ }
1854
+ } catch {
1855
+ // ignore
1856
+ }
1857
+ const p = Uint8Array.from(password)
1858
+ const s = Uint8Array.from(salt)
1859
+ const out = pbkdf2Fast(p, s, iterations, keylen)
1860
+ return Array.from(out)
1861
+ }
1862
+
1863
+ /**
1864
+ * Unconditionally swaps the byte order of a 32-bit unsigned integer.
1865
+ *
1866
+ * This function performs a strict 32-bit byte swap regardless of host
1867
+ * endianness. It is equivalent to the behavior commonly referred to as
1868
+ * `bswap32` in low-level libraries.
1869
+ *
1870
+ * This function is introduced as part of TOB-20 to provide a clearly-named
1871
+ * alternative to `htonl()`, which was previously implemented as an
1872
+ * unconditional byte swap and did not match the semantics of the traditional
1873
+ * C `htonl()` function.
1874
+ *
1875
+ * @param w - A 32-bit unsigned integer.
1876
+ * @returns The value with its byte order reversed.
1877
+ *
1878
+ * @example
1879
+ * swapBytes32(0x11223344) // → 0x44332211
1880
+ */
1881
+ export function swapBytes32 (w: number): number {
1882
+ const res =
1883
+ (w >>> 24) |
1884
+ ((w >>> 8) & 0xff00) |
1885
+ ((w << 8) & 0xff0000) |
1886
+ ((w & 0xff) << 24)
1887
+ return res >>> 0
1888
+ }
1889
+
1890
+ // Detect the host machine's endianness at runtime.
1891
+ //
1892
+ // This is used by `realHtonl()` to determine whether the value must be
1893
+ // byte-swapped or returned unchanged. JavaScript engines on common platforms
1894
+ // are almost always little-endian, but this check is included for correctness.
1895
+ const isLittleEndian = (() => {
1896
+ const b = new ArrayBuffer(4)
1897
+ const a = new Uint32Array(b)
1898
+ const c = new Uint8Array(b)
1899
+ a[0] = 0x01020304
1900
+ return c[0] === 0x04
1901
+ })()
1902
+
1903
+ /**
1904
+ * Converts a 32-bit unsigned integer from host byte order to network byte order.
1905
+ *
1906
+ * Unlike the legacy `htonl()` implementation (which always swapped bytes),
1907
+ * this function behaves like the traditional C `htonl()`:
1908
+ *
1909
+ * - On **little-endian** machines → performs a byte swap.
1910
+ * - On **big-endian** machines → returns the value unchanged.
1911
+ *
1912
+ * This function is provided to resolve TOB-20, which identified that the
1913
+ * previous `htonl()` implementation had a misleading name and did not match
1914
+ * platform-dependent semantics.
1915
+ *
1916
+ * @param w - A 32-bit unsigned integer.
1917
+ * @returns The value converted to network byte order.
1918
+ *
1919
+ * @example
1920
+ * realHtonl(0x11223344) // → 0x44332211 on little-endian systems
1921
+ */
1922
+ export function realHtonl (w: number): number {
1923
+ return isLittleEndian ? swapBytes32(w) : (w >>> 0)
1924
+ }