@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,1368 @@
1
+ // @ts-nocheck
2
+ import ReductionContext from './ReductionContext.js'
3
+
4
+ const BufferCtor =
5
+ typeof globalThis !== 'undefined' ? (globalThis as any).Buffer : undefined
6
+ const CAN_USE_BUFFER =
7
+ BufferCtor != null && typeof BufferCtor.from === 'function'
8
+ const HEX_CHAR_TO_VALUE = new Int8Array(256).fill(-1)
9
+ for (let i = 0; i < 10; i++) {
10
+ HEX_CHAR_TO_VALUE[48 + i] = i // '0'-'9'
11
+ }
12
+ for (let i = 0; i < 6; i++) {
13
+ HEX_CHAR_TO_VALUE[65 + i] = 10 + i // 'A'-'F'
14
+ HEX_CHAR_TO_VALUE[97 + i] = 10 + i // 'a'-'f'
15
+ }
16
+
17
+ /**
18
+ * JavaScript numbers are only precise up to 53 bits. Since Bitcoin relies on
19
+ * 256-bit cryptography, this BigNumber class enables operations on larger
20
+ * numbers.
21
+ *
22
+ * @class BigNumber
23
+ */
24
+ export default class BigNumber {
25
+ /**
26
+ * @privateinitializer
27
+ */
28
+ public static readonly zeros: string[] = [
29
+ '', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000',
30
+ '000000000', '0000000000', '00000000000', '000000000000', '0000000000000',
31
+ '00000000000000', '000000000000000', '0000000000000000', '00000000000000000',
32
+ '000000000000000000', '0000000000000000000', '00000000000000000000',
33
+ '000000000000000000000', '0000000000000000000000', '00000000000000000000000',
34
+ '000000000000000000000000', '0000000000000000000000000'
35
+ ]
36
+
37
+ /**
38
+ * @privateinitializer
39
+ */
40
+ static readonly groupSizes: number[] = [
41
+ 0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5,
42
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
43
+ ]
44
+
45
+ /**
46
+ * @privateinitializer
47
+ */
48
+ static readonly groupBases: number[] = [
49
+ 0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,
50
+ 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,
51
+ 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343,
52
+ 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000,
53
+ 28629151, 33554432, 39135393, 45435424, 52521875, 60466176
54
+ ]
55
+
56
+ /**
57
+ * The word size of big number chunks.
58
+ *
59
+ * @property wordSize
60
+ *
61
+ * @example
62
+ * console.log(BigNumber.wordSize); // output: 26
63
+ */
64
+ static readonly wordSize: number = 26
65
+ private static readonly WORD_SIZE_BIGINT: bigint = BigInt(BigNumber.wordSize)
66
+ private static readonly WORD_MASK: bigint = (1n << BigNumber.WORD_SIZE_BIGINT) - 1n
67
+ private static readonly MAX_SAFE_INTEGER_BIGINT: bigint = BigInt(Number.MAX_SAFE_INTEGER)
68
+ private static readonly MIN_SAFE_INTEGER_BIGINT: bigint = BigInt(Number.MIN_SAFE_INTEGER)
69
+ private static readonly MAX_IMULN_ARG: number = 0x4000000 - 1
70
+ private static readonly MAX_NUMBER_CONSTRUCTOR_MAG_BIGINT: bigint = (1n << 53n) - 1n
71
+
72
+ private _magnitude: bigint
73
+ private _sign: 0 | 1
74
+ private _nominalWordLength: number
75
+
76
+ /**
77
+ * Reduction context of the big number.
78
+ *
79
+ * @property red
80
+ */
81
+ public red: ReductionContext | null
82
+
83
+ /**
84
+ * Negative flag. Indicates whether the big number is a negative number.
85
+ * - If 0, the number is positive.
86
+ * - If 1, the number is negative.
87
+ *
88
+ * @property negative
89
+ */
90
+ public get negative (): number {
91
+ return this._sign
92
+ }
93
+
94
+ /**
95
+ * Sets the negative flag. Only 0 (positive) or 1 (negative) are allowed.
96
+ */
97
+ public set negative (val: number) {
98
+ this.assert(val === 0 || val === 1, 'Negative property must be 0 or 1')
99
+ const newSign = val === 1 ? 1 : 0
100
+ if (this._magnitude === 0n) {
101
+ this._sign = 0
102
+ } else {
103
+ this._sign = newSign
104
+ }
105
+ }
106
+
107
+ private get _computedWordsArray (): number[] {
108
+ if (this._magnitude === 0n) return [0]
109
+ const arr: number[] = []
110
+ let temp = this._magnitude
111
+ while (temp > 0n) {
112
+ arr.push(Number(temp & BigNumber.WORD_MASK))
113
+ temp >>= BigNumber.WORD_SIZE_BIGINT
114
+ }
115
+ return arr.length > 0 ? arr : [0]
116
+ }
117
+
118
+ /**
119
+ * Array of numbers, where each number represents a part of the value of the big number.
120
+ *
121
+ * @property words
122
+ */
123
+ public get words (): number[] {
124
+ const computed = this._computedWordsArray
125
+ if (this._nominalWordLength <= computed.length) {
126
+ return computed
127
+ }
128
+ const paddedWords = new Array(this._nominalWordLength).fill(0)
129
+ for (let i = 0; i < computed.length; i++) {
130
+ paddedWords[i] = computed[i]
131
+ }
132
+ return paddedWords
133
+ }
134
+
135
+ /**
136
+ * Sets the words array representing the value of the big number.
137
+ */
138
+ public set words (newWords: number[]) {
139
+ const oldSign = this._sign
140
+ let newMagnitude = 0n
141
+ const len = newWords.length > 0 ? newWords.length : 1
142
+ for (let i = len - 1; i >= 0; i--) {
143
+ const wordVal = newWords[i] === undefined ? 0 : newWords[i]
144
+ newMagnitude = (newMagnitude << BigNumber.WORD_SIZE_BIGINT) | BigInt(wordVal & Number(BigNumber.WORD_MASK))
145
+ }
146
+ this._magnitude = newMagnitude
147
+ this._sign = oldSign
148
+ this._nominalWordLength = len
149
+ this.normSign()
150
+ }
151
+
152
+ /**
153
+ * Length of the words array.
154
+ *
155
+ * @property length
156
+ */
157
+ public get length (): number {
158
+ return Math.max(1, this._nominalWordLength)
159
+ }
160
+
161
+ /**
162
+ * Checks whether a value is an instance of BigNumber. Regular JS numbers fail this check.
163
+ *
164
+ * @method isBN
165
+ * @param num - The value to be checked.
166
+ * @returns - Returns a boolean value determining whether or not the checked num parameter is a BigNumber.
167
+ */
168
+ static isBN (num: any): boolean {
169
+ if (num instanceof BigNumber) return true
170
+ return (
171
+ num !== null &&
172
+ typeof num === 'object' &&
173
+ num.constructor?.wordSize === BigNumber.wordSize &&
174
+ Array.isArray(num.words)
175
+ )
176
+ }
177
+
178
+ /**
179
+ * Returns the bigger value between two BigNumbers
180
+ *
181
+ * @method max
182
+ * @param left - The first BigNumber to be compared.
183
+ * @param right - The second BigNumber to be compared.
184
+ * @returns - Returns the bigger BigNumber between left and right.
185
+ */
186
+ static max (left: BigNumber, right: BigNumber): BigNumber { return left.cmp(right) > 0 ? left : right }
187
+
188
+ /**
189
+ * Returns the smaller value between two BigNumbers
190
+ *
191
+ * @method min
192
+ * @param left - The first BigNumber to be compared.
193
+ * @param right - The second BigNumber to be compared.
194
+ * @returns - Returns the smaller value between left and right.
195
+ */
196
+ static min (left: BigNumber, right: BigNumber): BigNumber { return left.cmp(right) < 0 ? left : right }
197
+
198
+ /**
199
+ * @constructor
200
+ *
201
+ * @param number - The number (various types accepted) to construct a BigNumber from. Default is 0.
202
+ * @param base - The base of number provided. By default is 10.
203
+ * @param endian - The endianness provided. By default is 'big endian'.
204
+ */
205
+ constructor (
206
+ number: number | string | number[] | bigint | undefined = 0,
207
+ base: number | 'be' | 'le' | 'hex' = 10,
208
+ endian: 'be' | 'le' = 'be'
209
+ ) {
210
+ this._magnitude = 0n
211
+ this._sign = 0
212
+ this._nominalWordLength = 1
213
+ this.red = null
214
+
215
+ if (number === undefined) number = 0
216
+
217
+ if (number === null) { this._initializeState(0n, 0); return }
218
+ if (typeof number === 'bigint') { this._initializeState(number < 0n ? -number : number, number < 0n ? 1 : 0); this.normSign(); return }
219
+
220
+ let effectiveBase: number | 'hex' = base
221
+ let effectiveEndian: 'be' | 'le' = endian
222
+
223
+ if (base === 'le' || base === 'be') { effectiveEndian = base; effectiveBase = 10 }
224
+
225
+ if (typeof number === 'number') { this.initNumber(number, effectiveEndian); return }
226
+ if (Array.isArray(number)) { this.initArray(number, effectiveEndian); return }
227
+
228
+ if (typeof number === 'string') {
229
+ if (effectiveBase === 'hex') effectiveBase = 16
230
+ this.assert(typeof effectiveBase === 'number' && effectiveBase === (effectiveBase | 0) && effectiveBase >= 2 && effectiveBase <= 36, 'Base must be an integer between 2 and 36')
231
+ const originalNumberStr = number.toString().replace(/\s+/g, '')
232
+ let start = 0; let sign = 0
233
+ if (originalNumberStr.startsWith('-')) { start++; sign = 1 } else if (originalNumberStr.startsWith('+')) { start++ }
234
+
235
+ const numStr = originalNumberStr.substring(start)
236
+ if (numStr.length === 0) { this._initializeState(0n, (sign === 1 && originalNumberStr.startsWith('-')) ? 1 : 0); this.normSign(); return }
237
+
238
+ if (effectiveBase === 16) {
239
+ let tempMagnitude: bigint
240
+ if (effectiveEndian === 'le') {
241
+ const bytes: number[] = []; let hexStr = numStr
242
+ if (hexStr.length % 2 !== 0) hexStr = '0' + hexStr
243
+ for (let i = 0; i < hexStr.length; i += 2) {
244
+ const byteHex = hexStr.substring(i, i + 2); const byteVal = parseInt(byteHex, 16)
245
+ if (isNaN(byteVal)) throw new Error('Invalid character in ' + hexStr)
246
+ bytes.push(byteVal)
247
+ }
248
+ this.initArray(bytes, 'le'); this._sign = sign; this.normSign(); return
249
+ } else {
250
+ try { tempMagnitude = BigInt('0x' + numStr) } catch (e) { throw new Error('Invalid character in ' + numStr) }
251
+ }
252
+ this._initializeState(tempMagnitude, sign); this.normSign()
253
+ } else {
254
+ try {
255
+ this._parseBaseString(numStr, effectiveBase)
256
+ this._sign = sign; this.normSign()
257
+ if (effectiveEndian === 'le') {
258
+ const currentSign = this._sign
259
+ this.initArray(this.toArray('be'), 'le')
260
+ this._sign = currentSign; this.normSign()
261
+ }
262
+ } catch (err) {
263
+ const error = err as Error
264
+ if (
265
+ error.message.includes('Invalid character in string') ||
266
+ error.message.includes('Invalid digit for base') ||
267
+ error.message.startsWith('Invalid character:')
268
+ ) {
269
+ throw new Error('Invalid character')
270
+ }
271
+ throw error
272
+ }
273
+ }
274
+ } else if (number !== 0) {
275
+ this.assert(false, 'Unsupported input type for BigNumber constructor')
276
+ } else {
277
+ this._initializeState(0n, 0)
278
+ }
279
+ }
280
+
281
+ private _bigIntToStringInBase (num: bigint, base: number): string {
282
+ if (num === 0n) return '0'
283
+ if (base < 2 || base > 36) throw new Error('Base must be between 2 and 36')
284
+
285
+ const digits = '0123456789abcdefghijklmnopqrstuvwxyz'
286
+ let result = ''
287
+ let currentNum = num > 0n ? num : -num
288
+ const bigBase = BigInt(base)
289
+
290
+ while (currentNum > 0n) {
291
+ result = digits[Number(currentNum % bigBase)] + result
292
+ currentNum /= bigBase
293
+ }
294
+ return result
295
+ }
296
+
297
+ private _parseBaseString (numberStr: string, base: number): void {
298
+ if (numberStr.length === 0) { this._magnitude = 0n; this._finishInitialization(); return }
299
+
300
+ this._magnitude = 0n
301
+ const bigBase = BigInt(base)
302
+
303
+ let groupSize = BigNumber.groupSizes[base]
304
+ let groupBaseBigInt = BigInt(BigNumber.groupBases[base])
305
+
306
+ if (groupSize === 0 || groupBaseBigInt === 0n) {
307
+ groupSize = Math.floor(Math.log(0x3ffffff) / Math.log(base))
308
+ if (groupSize === 0) groupSize = 1
309
+ groupBaseBigInt = bigBase ** BigInt(groupSize)
310
+ }
311
+
312
+ let currentPos = 0
313
+ const totalLen = numberStr.length
314
+
315
+ let firstChunkLen = totalLen % groupSize
316
+ if (firstChunkLen === 0 && totalLen > 0) firstChunkLen = groupSize
317
+
318
+ if (firstChunkLen > 0) {
319
+ const chunkStr = numberStr.substring(currentPos, currentPos + firstChunkLen)
320
+ this._magnitude = BigInt(this._parseBaseWord(chunkStr, base))
321
+ currentPos += firstChunkLen
322
+ }
323
+
324
+ while (currentPos < totalLen) {
325
+ const chunkStr = numberStr.substring(currentPos, currentPos + groupSize)
326
+ const wordVal = BigInt(this._parseBaseWord(chunkStr, base))
327
+ this._magnitude = this._magnitude * groupBaseBigInt + wordVal
328
+ currentPos += groupSize
329
+ }
330
+
331
+ this._finishInitialization()
332
+ }
333
+
334
+ private _parseBaseWord (str: string, base: number): number {
335
+ let r = 0
336
+ for (let i = 0; i < str.length; i++) {
337
+ const charCode = str.charCodeAt(i)
338
+ let digitVal
339
+ if (charCode >= 48 && charCode <= 57) digitVal = charCode - 48
340
+ else if (charCode >= 65 && charCode <= 90) digitVal = charCode - 65 + 10
341
+ else if (charCode >= 97 && charCode <= 122) digitVal = charCode - 97 + 10
342
+ else throw new Error('Invalid character: ' + str[i])
343
+
344
+ if (digitVal >= base) throw new Error('Invalid character')
345
+ r = r * base + digitVal
346
+ }
347
+ return r
348
+ }
349
+
350
+ private _initializeState (magnitude: bigint, sign: 0 | 1): void {
351
+ this._magnitude = magnitude
352
+ this._sign = (magnitude === 0n) ? 0 : sign
353
+ this._finishInitialization()
354
+ }
355
+
356
+ private _finishInitialization (): void {
357
+ if (this._magnitude === 0n) {
358
+ this._nominalWordLength = 1
359
+ this._sign = 0
360
+ } else {
361
+ const bitLen = this._magnitude.toString(2).length
362
+ this._nominalWordLength = Math.max(1, Math.ceil(bitLen / BigNumber.wordSize))
363
+ }
364
+ }
365
+
366
+ private assert (val: unknown, msg: string = 'Assertion failed'): void { if (!(val as boolean)) throw new Error(msg) }
367
+
368
+ private initNumber (number: number, endian: 'be' | 'le' = 'be'): this {
369
+ this.assert(BigInt(Math.abs(number)) <= BigNumber.MAX_NUMBER_CONSTRUCTOR_MAG_BIGINT, 'The number is larger than 2 ^ 53 (unsafe)')
370
+ this.assert(number % 1 === 0, 'Number must be an integer for BigNumber conversion')
371
+ this._initializeState(BigInt(Math.abs(number)), number < 0 ? 1 : 0)
372
+ if (endian === 'le') {
373
+ const currentSign = this._sign
374
+ const beBytes = this.toArray('be')
375
+ this.initArray(beBytes, 'le')
376
+ this._sign = currentSign
377
+ this.normSign()
378
+ }
379
+ return this
380
+ }
381
+
382
+ private initArray (bytes: number[], endian: 'be' | 'le'): this {
383
+ if (bytes.length === 0) { this._initializeState(0n, 0); return this }
384
+ let magnitude = 0n
385
+ if (endian === 'be') {
386
+ for (let i = 0; i < bytes.length; i++) magnitude = (magnitude << 8n) | BigInt(bytes[i] & 0xff)
387
+ } else {
388
+ for (let i = bytes.length - 1; i >= 0; i--) magnitude = (magnitude << 8n) | BigInt(bytes[i] & 0xff)
389
+ }
390
+ this._initializeState(magnitude, 0)
391
+ return this
392
+ }
393
+
394
+ copy (dest: BigNumber): void { dest._magnitude = this._magnitude; dest._sign = this._sign; dest._nominalWordLength = this._nominalWordLength; dest.red = this.red }
395
+ static move (dest: BigNumber, src: BigNumber): void { dest._magnitude = src._magnitude; dest._sign = src._sign; dest._nominalWordLength = src._nominalWordLength; dest.red = src.red }
396
+ clone (): BigNumber { const r = new BigNumber(0n); this.copy(r); return r }
397
+
398
+ expand (size: number): this {
399
+ this.assert(size >= 0, 'Expand size must be non-negative')
400
+ this._nominalWordLength = Math.max(this._nominalWordLength, size, 1)
401
+ return this
402
+ }
403
+
404
+ strip (): this { this._finishInitialization(); return this.normSign() }
405
+ normSign (): this { if (this._magnitude === 0n) this._sign = 0; return this }
406
+ inspect (): string { return (this.red !== null ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>' }
407
+
408
+ private _getMinimalHex (): string {
409
+ if (this._magnitude === 0n) return '0'
410
+ return this._magnitude.toString(16)
411
+ }
412
+
413
+ /**
414
+ * Converts the BigNumber instance to a string representation.
415
+ *
416
+ * @method toString
417
+ * @param base - The base for representing number. Default is 10. Other accepted values are 16 and 'hex'.
418
+ * @param padding - Represents the minimum number of digits to represent the BigNumber as a string. Default is 1.
419
+ * @returns The string representation of the BigNumber instance
420
+ */
421
+ toString (base: number | 'hex' = 10, padding: number = 1): string {
422
+ if (base === 16 || base === 'hex') {
423
+ // For toString('hex', N), N is the 'multiple-of-N characters' rule from bn.js tests
424
+ // For toString(16, P) where P=1 (default) or P=0, it means minimal hex.
425
+ let hexStr = this._getMinimalHex() // e.g., "f", "123", "0"
426
+
427
+ if (padding > 1) { // N-multiple rule for characters
428
+ // Ensure hexStr is even length if not "0" to represent full bytes before applying multiple rule
429
+ if (hexStr !== '0' && hexStr.length % 2 !== 0) {
430
+ hexStr = '0' + hexStr
431
+ }
432
+ while (hexStr.length % padding !== 0) {
433
+ hexStr = '0' + hexStr
434
+ }
435
+ }
436
+ // If padding is 0 or 1, hexStr (minimal) is used as is.
437
+ // "0" is always "0" unless toHex("") specific case.
438
+ // Single digit hex like "f" is not "0f" by default from toString(16).
439
+ return (this.isNeg() ? '-' : '') + hexStr
440
+ }
441
+
442
+ if (typeof base !== 'number' || base < 2 || base > 36 || base % 1 !== 0) throw new Error('Base should be an integer between 2 and 36')
443
+ return this.toBaseString(base, padding)
444
+ }
445
+
446
+ private toBaseString (base: number, padding: number): string {
447
+ if (this._magnitude === 0n) {
448
+ let out = '0'
449
+ if (padding > 1) { while (out.length < padding) out = '0' + out }
450
+ return out
451
+ }
452
+
453
+ let groupSize = BigNumber.groupSizes[base]
454
+ let groupBaseBigInt = BigInt(BigNumber.groupBases[base])
455
+ if (groupSize === 0 || groupBaseBigInt === 0n) {
456
+ groupSize = Math.floor(Math.log(Number.MAX_SAFE_INTEGER) / Math.log(base))
457
+ if (groupSize === 0) groupSize = 1
458
+ groupBaseBigInt = BigInt(base) ** BigInt(groupSize)
459
+ }
460
+
461
+ let out = ''
462
+ let tempMag = this._magnitude
463
+
464
+ while (tempMag > 0n) {
465
+ const remainder = tempMag % groupBaseBigInt
466
+ tempMag /= groupBaseBigInt
467
+
468
+ const chunkStr = this._bigIntToStringInBase(remainder, base)
469
+
470
+ if (tempMag > 0n) {
471
+ const zerosToPrepend = groupSize - chunkStr.length
472
+ if (zerosToPrepend > 0 && zerosToPrepend < BigNumber.zeros.length) {
473
+ out = BigNumber.zeros[zerosToPrepend] + chunkStr + out
474
+ } else if (zerosToPrepend > 0) {
475
+ out = '0'.repeat(zerosToPrepend) + chunkStr + out
476
+ } else {
477
+ out = chunkStr + out
478
+ }
479
+ } else {
480
+ out = chunkStr + out
481
+ }
482
+ }
483
+
484
+ if (padding > 0) { while (out.length < padding) out = '0' + out }
485
+ return (this._sign === 1 ? '-' : '') + out
486
+ }
487
+
488
+ /**
489
+ * Converts the BigNumber instance to a JavaScript number.
490
+ * Please note that JavaScript numbers are only precise up to 53 bits.
491
+ *
492
+ * @method toNumber
493
+ * @throws If the BigNumber instance cannot be safely stored in a JavaScript number
494
+ * @returns The JavaScript number representation of the BigNumber instance.
495
+ */
496
+ toNumber (): number {
497
+ const val = this._getSignedValue()
498
+ if (val > BigNumber.MAX_SAFE_INTEGER_BIGINT || val < BigNumber.MIN_SAFE_INTEGER_BIGINT) throw new Error('Number can only safely store up to 53 bits')
499
+ return Number(val)
500
+ }
501
+
502
+ /**
503
+ * Returns the signed BigInt representation of this BigNumber without any safety checks.
504
+ *
505
+ * @method toBigInt
506
+ * @returns bigint value for this BigNumber.
507
+ */
508
+ toBigInt (): bigint {
509
+ return this._getSignedValue()
510
+ }
511
+
512
+ /**
513
+ * Converts the BigNumber instance to a JSON-formatted string.
514
+ *
515
+ * @method toJSON
516
+ * @returns The JSON string representation of the BigNumber instance.
517
+ */
518
+ toJSON (): string {
519
+ const hex = this._getMinimalHex()
520
+ return (this.isNeg() ? '-' : '') + hex
521
+ }
522
+
523
+ private toArrayLikeGeneric (res: number[], isLE: boolean): void {
524
+ let tempMag = this._magnitude
525
+ let position = isLE ? 0 : res.length - 1
526
+ const increment = isLE ? 1 : -1
527
+
528
+ for (let k = 0; k < res.length; ++k) {
529
+ if (tempMag === 0n && position >= 0 && position < res.length) {
530
+ res[position] = 0
531
+ } else if (position >= 0 && position < res.length) {
532
+ res[position] = Number(tempMag & 0xffn)
533
+ } else {
534
+ break
535
+ }
536
+ tempMag >>= 8n
537
+ position += increment
538
+ }
539
+ }
540
+
541
+ /**
542
+ * Converts the BigNumber instance to an array of bytes.
543
+ *
544
+ * @method toArray
545
+ * @param endian - Endianness of the output array, defaults to 'be'.
546
+ * @param length - Optional length of the output array.
547
+ * @returns Array of bytes representing the BigNumber.
548
+ */
549
+ toArray (endian: 'le' | 'be' = 'be', length?: number): number[] {
550
+ this.strip()
551
+ const actualByteLength = this.byteLength()
552
+ const reqLength = length ?? Math.max(1, actualByteLength)
553
+
554
+ this.assert(actualByteLength <= reqLength, 'byte array longer than desired length')
555
+ this.assert(reqLength > 0, 'Requested array length <= 0')
556
+
557
+ const res = new Array(reqLength).fill(0)
558
+ if (this._magnitude === 0n && reqLength > 0) return res
559
+ if (this._magnitude === 0n && reqLength === 0) return []
560
+
561
+ this.toArrayLikeGeneric(res, endian === 'le')
562
+ return res
563
+ }
564
+
565
+ /**
566
+ * Calculates the number of bits required to represent the BigNumber.
567
+ *
568
+ * @method bitLength
569
+ * @returns The bit length of the BigNumber.
570
+ */
571
+ bitLength (): number { if (this._magnitude === 0n) return 0; return this._magnitude.toString(2).length }
572
+ /**
573
+ * Converts a BigNumber to an array of bits.
574
+ *
575
+ * @method toBitArray
576
+ * @param num - The BigNumber to convert.
577
+ * @returns An array of bits.
578
+ */
579
+ static toBitArray (num: BigNumber): Array<0 | 1> {
580
+ const len = num.bitLength()
581
+ if (len === 0) return []
582
+ const w = new Array<0 | 1>(len)
583
+ const mag = num._magnitude
584
+ for (let bit = 0; bit < len; bit++) {
585
+ w[bit] = ((mag >> BigInt(bit)) & 1n) !== 0n ? 1 : 0
586
+ }
587
+ return w
588
+ }
589
+
590
+ /**
591
+ * Instance version of {@link toBitArray}.
592
+ */
593
+ toBitArray (): Array<0 | 1> { return BigNumber.toBitArray(this) }
594
+
595
+ /**
596
+ * Returns the number of trailing zero bits in the big number.
597
+ *
598
+ * @method zeroBits
599
+ * @returns Returns the number of trailing zero bits
600
+ * in the binary representation of the big number.
601
+ *
602
+ * @example
603
+ * const bn = new BigNumber('8'); // binary: 1000
604
+ * const zeroBits = bn.zeroBits(); // 3
605
+ */
606
+ zeroBits (): number {
607
+ if (this._magnitude === 0n) return 0
608
+ let c = 0
609
+ let t = this._magnitude
610
+ while ((t & 1n) === 0n && t !== 0n) {
611
+ c++
612
+ t >>= 1n
613
+ }
614
+ return c
615
+ }
616
+
617
+ /**
618
+ * Calculates the number of bytes required to represent the BigNumber.
619
+ *
620
+ * @method byteLength
621
+ * @returns The byte length of the BigNumber.
622
+ */
623
+ byteLength (): number { if (this._magnitude === 0n) return 0; return Math.ceil(this.bitLength() / 8) }
624
+
625
+ private _getSignedValue (): bigint { return this._sign === 1 ? -this._magnitude : this._magnitude }
626
+
627
+ private _setValueFromSigned (sVal: bigint): void {
628
+ if (sVal < 0n) {
629
+ this._magnitude = -sVal
630
+ this._sign = 1
631
+ } else {
632
+ this._magnitude = sVal
633
+ this._sign = 0
634
+ }
635
+ this._finishInitialization()
636
+ this.normSign()
637
+ }
638
+
639
+ toTwos (width: number): BigNumber {
640
+ this.assert(width >= 0)
641
+ const Bw = BigInt(width)
642
+ let v = this._getSignedValue()
643
+ if (this._sign === 1 && this._magnitude !== 0n) v = (1n << Bw) + v
644
+ const m = (1n << Bw) - 1n; v &= m
645
+ const r = new BigNumber(0n)
646
+ r._initializeState(v, 0)
647
+ return r
648
+ }
649
+
650
+ fromTwos (width: number): BigNumber {
651
+ this.assert(width >= 0)
652
+ const Bw = BigInt(width)
653
+ const m = this._magnitude
654
+ if (width > 0 && ((m >> (Bw - 1n)) & 1n) !== 0n && this._sign === 0) {
655
+ const sVal = m - (1n << Bw)
656
+ const r = new BigNumber(0n)
657
+ r._setValueFromSigned(sVal)
658
+ return r
659
+ }
660
+ return this.clone()
661
+ }
662
+
663
+ isNeg (): boolean { return this._sign === 1 && this._magnitude !== 0n }
664
+ neg (): BigNumber { return this.clone().ineg() }
665
+ ineg (): this { if (this._magnitude !== 0n) this._sign = this._sign === 1 ? 0 : 1; return this }
666
+
667
+ private _iuop (num: BigNumber, op: (a: bigint, b: bigint) => bigint): this {
668
+ const newMag = op(this._magnitude, num._magnitude)
669
+ const isXor = op === ((a: bigint, b: bigint) => a ^ b)
670
+ let targetNominalLength = this._nominalWordLength
671
+ if (isXor) targetNominalLength = Math.max(this.length, num.length)
672
+
673
+ this._magnitude = newMag
674
+ this._finishInitialization()
675
+ if (isXor) this._nominalWordLength = Math.max(this._nominalWordLength, targetNominalLength)
676
+ return this.strip()
677
+ }
678
+
679
+ iuor (num: BigNumber): this { return this._iuop(num, (a, b) => a | b) }
680
+ iuand (num: BigNumber): this { return this._iuop(num, (a, b) => a & b) }
681
+ iuxor (num: BigNumber): this { return this._iuop(num, (a, b) => a ^ b) }
682
+ private _iop (num: BigNumber, op: (a: bigint, b: bigint) => bigint): this { this.assert(this._sign === 0 && num._sign === 0); return this._iuop(num, op) }
683
+ ior (num: BigNumber): this { return this._iop(num, (a, b) => a | b) }
684
+ iand (num: BigNumber): this { return this._iop(num, (a, b) => a & b) }
685
+ ixor (num: BigNumber): this { return this._iop(num, (a, b) => a ^ b) }
686
+ private _uop_new (num: BigNumber, opName: 'iuor' | 'iuand' | 'iuxor'): BigNumber { if (this.length >= num.length) return this.clone()[opName](num); return num.clone()[opName](this) }
687
+ or (num: BigNumber): BigNumber { this.assert(this._sign === 0 && num._sign === 0); return this._uop_new(num, 'iuor') }
688
+ uor (num: BigNumber): BigNumber { return this._uop_new(num, 'iuor') }
689
+ and (num: BigNumber): BigNumber { this.assert(this._sign === 0 && num._sign === 0); return this._uop_new(num, 'iuand') }
690
+ uand (num: BigNumber): BigNumber { return this._uop_new(num, 'iuand') }
691
+ xor (num: BigNumber): BigNumber { this.assert(this._sign === 0 && num._sign === 0); return this._uop_new(num, 'iuxor') }
692
+ uxor (num: BigNumber): BigNumber { return this._uop_new(num, 'iuxor') }
693
+
694
+ inotn (width: number): this {
695
+ this.assert(typeof width === 'number' && width >= 0)
696
+ const Bw = BigInt(width)
697
+ const m = (1n << Bw) - 1n
698
+ this._magnitude = (~this._magnitude) & m
699
+ const wfw = width === 0 ? 1 : Math.ceil(width / BigNumber.wordSize)
700
+ this._nominalWordLength = Math.max(1, wfw)
701
+ this.strip()
702
+ this._nominalWordLength = Math.max(this._nominalWordLength, Math.max(1, wfw))
703
+ return this
704
+ }
705
+
706
+ notn (width: number): BigNumber { return this.clone().inotn(width) }
707
+ setn (bit: number, val: any): this { this.assert(typeof bit === 'number' && bit >= 0); const Bb = BigInt(bit); if (val === 1 || val === true) this._magnitude |= (1n << Bb); else this._magnitude &= ~(1n << Bb); const wnb = Math.floor(bit / BigNumber.wordSize) + 1; this._nominalWordLength = Math.max(this._nominalWordLength, wnb); this._finishInitialization(); return this.strip() }
708
+
709
+ iadd (num: BigNumber): this { this._setValueFromSigned(this._getSignedValue() + num._getSignedValue()); return this }
710
+ add (num: BigNumber): BigNumber { const r = new BigNumber(0n); r._setValueFromSigned(this._getSignedValue() + num._getSignedValue()); return r }
711
+ isub (num: BigNumber): this { this._setValueFromSigned(this._getSignedValue() - num._getSignedValue()); return this }
712
+ sub (num: BigNumber): BigNumber { const r = new BigNumber(0n); r._setValueFromSigned(this._getSignedValue() - num._getSignedValue()); return r }
713
+ mul (num: BigNumber): BigNumber {
714
+ const r = new BigNumber(0n)
715
+ r._magnitude = this._magnitude * num._magnitude
716
+ r._sign = r._magnitude === 0n ? 0 : ((this._sign ^ num._sign) as 0 | 1)
717
+ r._nominalWordLength = this.length + num.length
718
+ r.red = null
719
+ return r.normSign()
720
+ }
721
+
722
+ imul (num: BigNumber): this {
723
+ this._magnitude *= num._magnitude
724
+ this._sign = this._magnitude === 0n ? 0 : ((this._sign ^ num._sign) as 0 | 1)
725
+ this._nominalWordLength = this.length + num.length
726
+ this.red = null
727
+ return this.normSign()
728
+ }
729
+
730
+ imuln (num: number): this { this.assert(typeof num === 'number', 'Assertion failed'); this.assert(Math.abs(num) <= BigNumber.MAX_IMULN_ARG, 'Assertion failed'); this._setValueFromSigned(this._getSignedValue() * BigInt(num)); return this }
731
+ muln (num: number): BigNumber { return this.clone().imuln(num) }
732
+ sqr (): BigNumber {
733
+ const r = new BigNumber(0n)
734
+ r._magnitude = this._magnitude * this._magnitude
735
+ r._sign = 0
736
+ r._nominalWordLength = this.length * 2
737
+ r.red = null
738
+ return r
739
+ }
740
+
741
+ isqr (): this {
742
+ this._magnitude *= this._magnitude
743
+ this._sign = 0
744
+ this._nominalWordLength = this.length * 2
745
+ this.red = null
746
+ return this
747
+ }
748
+
749
+ pow (num: BigNumber): BigNumber {
750
+ this.assert(num._sign === 0, 'Exponent for pow must be non-negative')
751
+ if (num.isZero()) return new BigNumber(1n)
752
+
753
+ const res = new BigNumber(1n)
754
+ const currentBase = this.clone()
755
+ const exp = num.clone()
756
+
757
+ const baseIsNegative = currentBase.isNeg()
758
+ const expIsOdd = exp.isOdd()
759
+ if (baseIsNegative) currentBase.ineg()
760
+
761
+ while (!exp.isZero()) {
762
+ if (exp.isOdd()) {
763
+ res.imul(currentBase)
764
+ }
765
+ currentBase.isqr()
766
+ exp.iushrn(1)
767
+ }
768
+
769
+ if (baseIsNegative && expIsOdd) {
770
+ res.ineg()
771
+ }
772
+ return res
773
+ }
774
+
775
+ private static normalizeNonNegativeBigInt (value: number | bigint, label: string): bigint {
776
+ if (typeof value === 'number') {
777
+ if (!Number.isFinite(value) || !Number.isInteger(value) || value < 0) throw new Error(`${label} must be a non-negative integer`)
778
+ return BigInt(value)
779
+ }
780
+ if (value < 0n) throw new Error(`${label} must be a non-negative integer`)
781
+ return value
782
+ }
783
+
784
+ iushln (bits: number | bigint): this {
785
+ const normalizedBits = BigNumber.normalizeNonNegativeBigInt(bits, 'Shift bits')
786
+ if (normalizedBits === 0n) return this
787
+ this._magnitude <<= normalizedBits
788
+ this._finishInitialization()
789
+ return this.strip()
790
+ }
791
+
792
+ ishln (bits: number | bigint): this {
793
+ this.assert(this._sign === 0, 'ishln requires positive number')
794
+ return this.iushln(bits)
795
+ }
796
+
797
+ iushrn (bits: number | bigint, hint?: number, extended?: BigNumber): this {
798
+ const normalizedBits = BigNumber.normalizeNonNegativeBigInt(bits, 'Shift bits')
799
+ if (normalizedBits === 0n) {
800
+ if (extended != null) extended._initializeState(0n, 0)
801
+ return this
802
+ }
803
+ if (extended != null) {
804
+ const m = (1n << normalizedBits) - 1n
805
+ const sOut = this._magnitude & m
806
+ extended._initializeState(sOut, 0)
807
+ }
808
+ this._magnitude >>= normalizedBits
809
+ this._finishInitialization()
810
+ return this.strip()
811
+ }
812
+
813
+ ishrn (bits: number | bigint, hint?: number, extended?: BigNumber): this {
814
+ this.assert(this._sign === 0, 'ishrn requires positive number')
815
+ return this.iushrn(bits, hint, extended)
816
+ }
817
+
818
+ shln (bits: number | bigint): BigNumber { return this.clone().ishln(bits) }
819
+ ushln (bits: number | bigint): BigNumber { return this.clone().iushln(bits) }
820
+ shrn (bits: number | bigint): BigNumber { return this.clone().ishrn(bits) }
821
+ ushrn (bits: number | bigint): BigNumber { return this.clone().iushrn(bits) }
822
+
823
+ testn (bit: number): boolean {
824
+ this.assert(typeof bit === 'number' && bit >= 0)
825
+ return ((this._magnitude >> BigInt(bit)) & 1n) !== 0n
826
+ }
827
+
828
+ imaskn (bits: number): this {
829
+ this.assert(typeof bits === 'number' && bits >= 0)
830
+ this.assert(this._sign === 0, 'imaskn works only with positive numbers')
831
+ const Bb = BigInt(bits)
832
+ const m = Bb === 0n ? 0n : (1n << Bb) - 1n
833
+ this._magnitude &= m
834
+ const wfm = bits === 0 ? 1 : Math.max(1, Math.ceil(bits / BigNumber.wordSize))
835
+ this._nominalWordLength = wfm
836
+ this._finishInitialization()
837
+ this._nominalWordLength = Math.max(this._nominalWordLength, wfm)
838
+ return this.strip()
839
+ }
840
+
841
+ maskn (bits: number): BigNumber { return this.clone().imaskn(bits) }
842
+ iaddn (num: number): this { this.assert(typeof num === 'number'); this.assert(Math.abs(num) <= BigNumber.MAX_IMULN_ARG, 'num is too large'); this._setValueFromSigned(this._getSignedValue() + BigInt(num)); return this }
843
+ _iaddn (num: number): this { return this.iaddn(num) }
844
+ isubn (num: number): this { this.assert(typeof num === 'number'); this.assert(Math.abs(num) <= BigNumber.MAX_IMULN_ARG, 'Assertion failed'); this._setValueFromSigned(this._getSignedValue() - BigInt(num)); return this }
845
+ addn (num: number): BigNumber { return this.clone().iaddn(num) } subn (num: number): BigNumber { return this.clone().isubn(num) }
846
+ iabs (): this { this._sign = 0; return this } abs (): BigNumber { return this.clone().iabs() }
847
+
848
+ divmod (num: BigNumber, mode?: 'div' | 'mod', positive?: boolean): any {
849
+ this.assert(!num.isZero(), 'Division by zero')
850
+ if (this.isZero()) {
851
+ const z = new BigNumber(0n)
852
+ return { div: mode !== 'mod' ? z : null, mod: mode !== 'div' ? z : null }
853
+ }
854
+ const tV = this._getSignedValue()
855
+ const nV = num._getSignedValue()
856
+ let dV: bigint | null = null
857
+ let mV: bigint | null = null
858
+ if (mode !== 'mod') dV = tV / nV
859
+ if (mode !== 'div') {
860
+ mV = tV % nV
861
+ if (positive === true && mV < 0n) mV += nV < 0n ? -nV : nV
862
+ }
863
+ const rd = dV !== null ? new BigNumber(0n) : null
864
+ if (rd !== null && dV !== null) rd._setValueFromSigned(dV)
865
+ const rm = mV !== null ? new BigNumber(0n) : null
866
+ if (rm !== null && mV !== null) rm._setValueFromSigned(mV)
867
+ return { div: rd, mod: rm }
868
+ }
869
+
870
+ div (num: BigNumber): BigNumber {
871
+ return this.divmod(num, 'div', false).div as BigNumber
872
+ }
873
+
874
+ mod (num: BigNumber): BigNumber {
875
+ return this.divmod(num, 'mod', false).mod as BigNumber
876
+ }
877
+
878
+ umod (num: BigNumber): BigNumber {
879
+ return this.divmod(num, 'mod', true).mod as BigNumber
880
+ }
881
+
882
+ divRound (num: BigNumber): BigNumber {
883
+ this.assert(!num.isZero())
884
+ const tV = this._getSignedValue()
885
+ const nV = num._getSignedValue()
886
+
887
+ let d = tV / nV
888
+ const m = tV % nV
889
+
890
+ if (m === 0n) {
891
+ const r = new BigNumber(0n); r._setValueFromSigned(d); return r
892
+ }
893
+
894
+ const absM = m < 0n ? -m : m
895
+ const absNV = nV < 0n ? -nV : nV
896
+
897
+ if (absM * 2n >= absNV) {
898
+ if ((tV > 0n && nV > 0n) || (tV < 0n && nV < 0n)) {
899
+ d += 1n
900
+ } else {
901
+ d -= 1n
902
+ }
903
+ }
904
+ const r = new BigNumber(0n); r._setValueFromSigned(d); return r
905
+ }
906
+
907
+ modrn (numArg: number): number {
908
+ this.assert(numArg !== 0, 'Division by zero in modrn')
909
+ const absDivisor = BigInt(Math.abs(numArg))
910
+ if (absDivisor === 0n) throw new Error('Division by zero in modrn')
911
+
912
+ const remainderMag = this._magnitude % absDivisor
913
+ return numArg < 0 ? Number(-remainderMag) : Number(remainderMag)
914
+ }
915
+
916
+ idivn (num: number): this {
917
+ this.assert(num !== 0)
918
+ this.assert(Math.abs(num) <= BigNumber.MAX_IMULN_ARG, 'num is too large')
919
+ this._setValueFromSigned(this._getSignedValue() / BigInt(num))
920
+ return this
921
+ }
922
+
923
+ divn (num: number): BigNumber { return this.clone().idivn(num) }
924
+
925
+ egcd (p: BigNumber): { a: BigNumber, b: BigNumber, gcd: BigNumber } {
926
+ this.assert(p._sign === 0, 'p must not be negative')
927
+ this.assert(!p.isZero(), 'p must not be zero')
928
+ let uV = this._getSignedValue()
929
+ let vV = p._magnitude; let a = 1n; let pa = 0n
930
+ let b = 0n
931
+ let pb = 1n
932
+ while (vV !== 0n) {
933
+ const q = uV / vV
934
+ let t = vV
935
+ vV = uV % vV
936
+ uV = t
937
+ t = pa
938
+ pa = a - q * pa
939
+ a = t
940
+ t = pb
941
+ pb = b - q * pb
942
+ b = t
943
+ }
944
+ const ra = new BigNumber(0n)
945
+ ra._setValueFromSigned(a)
946
+ const rb = new BigNumber(0n)
947
+ rb._setValueFromSigned(b)
948
+ const rg = new BigNumber(0n)
949
+ rg._initializeState(uV < 0n ? -uV : uV, 0)
950
+ return { a: ra, b: rb, gcd: rg }
951
+ }
952
+
953
+ gcd (num: BigNumber): BigNumber {
954
+ let u = this._magnitude
955
+ let v = num._magnitude
956
+ if (u === 0n) {
957
+ const r = new BigNumber(0n)
958
+ r._setValueFromSigned(v)
959
+ return r.iabs()
960
+ }
961
+ if (v === 0n) {
962
+ const r = new BigNumber(0n)
963
+ r._setValueFromSigned(u)
964
+ return r.iabs()
965
+ }
966
+ while (v !== 0n) {
967
+ const t = u % v
968
+ u = v
969
+ v = t
970
+ }
971
+ const res = new BigNumber(0n)
972
+ res._initializeState(u, 0)
973
+ return res
974
+ }
975
+
976
+ invm (num: BigNumber): BigNumber {
977
+ this.assert(!num.isZero() && num._sign === 0, 'Modulus for invm must be positive and non-zero')
978
+ const eg = this.egcd(num)
979
+ if (!eg.gcd.eqn(1)) {
980
+ throw new Error('Inverse does not exist (numbers are not coprime).')
981
+ }
982
+ return eg.a.umod(num)
983
+ }
984
+
985
+ isEven (): boolean { return this._magnitude % 2n === 0n } isOdd (): boolean { return this._magnitude % 2n === 1n }
986
+ andln (num: number): number { this.assert(num >= 0); return Number(this._magnitude & BigInt(num)) }
987
+ bincn (bit: number): this { this.assert(typeof bit === 'number' && bit >= 0); const BVal = 1n << BigInt(bit); this._setValueFromSigned(this._getSignedValue() + BVal); return this }
988
+ isZero (): boolean { return this._magnitude === 0n }
989
+ cmpn (num: number): 1 | 0 | -1 { this.assert(Math.abs(num) <= BigNumber.MAX_IMULN_ARG, 'Number is too big'); const tV = this._getSignedValue(); const nV = BigInt(num); if (tV < nV) return -1; if (tV > nV) return 1; return 0 }
990
+ cmp (num: BigNumber): 1 | 0 | -1 { const tV = this._getSignedValue(); const nV = num._getSignedValue(); if (tV < nV) return -1; if (tV > nV) return 1; return 0 }
991
+ ucmp (num: BigNumber): 1 | 0 | -1 { if (this._magnitude < num._magnitude) return -1; if (this._magnitude > num._magnitude) return 1; return 0 }
992
+ gtn (num: number): boolean { return this.cmpn(num) === 1 } gt (num: BigNumber): boolean { return this.cmp(num) === 1 } gten (num: number): boolean { return this.cmpn(num) >= 0 } gte (num: BigNumber): boolean { return this.cmp(num) >= 0 }
993
+ ltn (num: number): boolean { return this.cmpn(num) === -1 } lt (num: BigNumber): boolean { return this.cmp(num) === -1 } lten (num: number): boolean { return this.cmpn(num) <= 0 } lte (num: BigNumber): boolean { return this.cmp(num) <= 0 }
994
+ eqn (num: number): boolean { return this.cmpn(num) === 0 } eq (num: BigNumber): boolean { return this.cmp(num) === 0 }
995
+
996
+ toRed (ctx: ReductionContext): BigNumber { this.assert(this.red == null, 'Already a number in reduction context'); this.assert(this._sign === 0, 'toRed works only with positives'); return ctx.convertTo(this).forceRed(ctx) }
997
+ fromRed (): BigNumber { this.assert(this.red, 'fromRed works only with numbers in reduction context'); return this.red.convertFrom(this) }
998
+ forceRed (ctx: ReductionContext): this { this.red = ctx; return this }
999
+ redAdd (num: BigNumber): BigNumber { this.assert(this.red, 'redAdd works only with red numbers'); return this.red.add(this, num) }
1000
+ redIAdd (num: BigNumber): BigNumber { this.assert(this.red, 'redIAdd works only with red numbers'); return this.red.iadd(this, num) }
1001
+ redSub (num: BigNumber): BigNumber { this.assert(this.red, 'redSub works only with red numbers'); return this.red.sub(this, num) }
1002
+ redISub (num: BigNumber): BigNumber { this.assert(this.red, 'redISub works only with red numbers'); return this.red.isub(this, num) }
1003
+ redShl (num: number): BigNumber { this.assert(this.red, 'redShl works only with red numbers'); return this.red.shl(this, num) }
1004
+ redMul (num: BigNumber): BigNumber { this.assert(this.red, 'redMul works only with red numbers'); this.red.verify2(this, num); return this.red.mul(this, num) }
1005
+ redIMul (num: BigNumber): BigNumber { this.assert(this.red, 'redIMul works only with red numbers'); this.red.verify2(this, num); return this.red.imul(this, num) }
1006
+ redSqr (): BigNumber { this.assert(this.red, 'redSqr works only with red numbers'); this.red.verify1(this); return this.red.sqr(this) }
1007
+ redISqr (): BigNumber { this.assert(this.red, 'redISqr works only with red numbers'); this.red.verify1(this); return this.red.isqr(this) }
1008
+ redSqrt (): BigNumber { this.assert(this.red, 'redSqrt works only with red numbers'); this.red.verify1(this); return this.red.sqrt(this) }
1009
+ redInvm (): BigNumber { this.assert(this.red, 'redInvm works only with red numbers'); this.red.verify1(this); return this.red.invm(this) }
1010
+ redNeg (): BigNumber { this.assert(this.red, 'redNeg works only with red numbers'); this.red.verify1(this); return this.red.neg(this) }
1011
+ redPow (num: BigNumber): BigNumber { this.assert(this.red != null && num.red == null, 'redPow(normalNum)'); this.red.verify1(this); return this.red.pow(this, num) }
1012
+
1013
+ /**
1014
+ * Creates a BigNumber from a hexadecimal string.
1015
+ *
1016
+ * @static
1017
+ * @method fromHex
1018
+ * @param hex - The hexadecimal string to create a BigNumber from.
1019
+ * @param endian - Optional endianness for parsing the hex string.
1020
+ * @returns Returns a BigNumber created from the hexadecimal input string.
1021
+ *
1022
+ * @example
1023
+ * const exampleHex = 'a1b2c3';
1024
+ * const bigNumber = BigNumber.fromHex(exampleHex);
1025
+ */
1026
+ static fromHex (hex: string, endian?: 'le' | 'be' | 'little' | 'big'): BigNumber {
1027
+ let eE: 'le' | 'be' = 'be'
1028
+ if (endian === 'little' || endian === 'le') eE = 'le'
1029
+ return new BigNumber(hex, 16, eE)
1030
+ }
1031
+
1032
+ /**
1033
+ * Converts this BigNumber to a hexadecimal string.
1034
+ *
1035
+ * @method toHex
1036
+ * @param length - The minimum length of the hex string
1037
+ * @returns Returns a string representing the hexadecimal value of this BigNumber.
1038
+ *
1039
+ * @example
1040
+ * const bigNumber = new BigNumber(255)
1041
+ * const hex = bigNumber.toHex()
1042
+ */
1043
+ toHex (byteLength: number = 0): string {
1044
+ if (this.isZero() && byteLength === 0) return ''
1045
+
1046
+ let hexStr = this._getMinimalHex() // Raw hex: "0", "f", "10", "123"
1047
+
1048
+ // Ensure even length for non-zero values (byte alignment)
1049
+ if (hexStr !== '0' && hexStr.length % 2 !== 0) {
1050
+ hexStr = '0' + hexStr
1051
+ }
1052
+
1053
+ // Pad to minimum character length (byteLength * 2)
1054
+ const minChars = byteLength * 2
1055
+ while (hexStr.length < minChars) {
1056
+ hexStr = '0' + hexStr
1057
+ }
1058
+ return (this.isNeg() ? '-' : '') + hexStr
1059
+ }
1060
+
1061
+ /**
1062
+ * Creates a BigNumber from a JSON-serialized string.
1063
+ *
1064
+ * @static
1065
+ * @method fromJSON
1066
+ * @param str - The JSON-serialized string to create a BigNumber from.
1067
+ * @returns Returns a BigNumber created from the JSON input string.
1068
+ */
1069
+ static fromJSON (str: string): BigNumber { return new BigNumber(str, 16) }
1070
+
1071
+ /**
1072
+ * Creates a BigNumber from a number.
1073
+ *
1074
+ * @static
1075
+ * @method fromNumber
1076
+ * @param n - The number to create a BigNumber from.
1077
+ * @returns Returns a BigNumber equivalent to the input number.
1078
+ */
1079
+ static fromNumber (n: number): BigNumber { return new BigNumber(n) }
1080
+
1081
+ /**
1082
+ * Creates a BigNumber from a string, considering an optional base.
1083
+ *
1084
+ * @static
1085
+ * @method fromString
1086
+ * @param str - The string to create a BigNumber from.
1087
+ * @param base - The base used for conversion. If not provided, base 10 is assumed.
1088
+ * @returns Returns a BigNumber equivalent to the string after conversion from the specified base.
1089
+ */
1090
+ static fromString (str: string, base?: number | 'hex'): BigNumber { return new BigNumber(str, base) }
1091
+
1092
+ /**
1093
+ * Creates a BigNumber from a signed magnitude number.
1094
+ *
1095
+ * @static
1096
+ * @method fromSm
1097
+ * @param bytes - The signed magnitude number to convert to a BigNumber.
1098
+ * @param endian - Defines endianess. If not provided, big endian is assumed.
1099
+ * @returns Returns a BigNumber equivalent to the signed magnitude number interpreted with specified endianess.
1100
+ */
1101
+ static fromSm (bytes: number[], endian: 'big' | 'little' = 'big'): BigNumber {
1102
+ if (bytes.length === 0) return new BigNumber(0n)
1103
+
1104
+ const beBytes = bytes.slice()
1105
+ if (endian === 'little') {
1106
+ beBytes.reverse()
1107
+ }
1108
+ let sign: 0 | 1 = 0
1109
+ if (beBytes.length > 0 && (beBytes[0] & 0x80) !== 0) {
1110
+ sign = 1
1111
+ beBytes[0] &= 0x7f
1112
+ }
1113
+
1114
+ let magnitude = 0n
1115
+ if (CAN_USE_BUFFER) {
1116
+ const hex = BufferCtor.from(beBytes).toString('hex') as string
1117
+ magnitude = hex.length === 0 ? 0n : BigInt('0x' + hex)
1118
+ } else {
1119
+ let hex = ''
1120
+ for (const byte of beBytes) {
1121
+ hex += byte < 16 ? '0' + byte.toString(16) : byte.toString(16)
1122
+ }
1123
+ magnitude = hex.length === 0 ? 0n : BigInt('0x' + hex)
1124
+ }
1125
+
1126
+ const r = new BigNumber(0n)
1127
+ r._initializeState(magnitude, sign)
1128
+ return r
1129
+ }
1130
+
1131
+ /**
1132
+ * Converts this BigNumber to a signed magnitude number.
1133
+ *
1134
+ * @method toSm
1135
+ * @param endian - Defines endianess. If not provided, big endian is assumed.
1136
+ * @returns Returns an array equivalent to this BigNumber interpreted as a signed magnitude with specified endianess.
1137
+ */
1138
+ toSm (endian: 'big' | 'little' = 'big'): number[] {
1139
+ if (this._magnitude === 0n) {
1140
+ return this._sign === 1 ? [0x80] : []
1141
+ }
1142
+
1143
+ let hex = this._getMinimalHex()
1144
+ if (hex.length % 2 !== 0) hex = '0' + hex
1145
+
1146
+ const byteLen = hex.length / 2
1147
+ const bytes = new Array(byteLen)
1148
+ for (let i = 0, j = 0; i < hex.length; i += 2) {
1149
+ const high = HEX_CHAR_TO_VALUE[hex.charCodeAt(i)]
1150
+ const low = HEX_CHAR_TO_VALUE[hex.charCodeAt(i + 1)]
1151
+ bytes[j++] = ((high & 0xf) << 4) | (low & 0xf)
1152
+ }
1153
+
1154
+ let result: number[]
1155
+ if (this._sign === 1) {
1156
+ if ((bytes[0] & 0x80) !== 0) {
1157
+ result = [0x80, ...bytes]
1158
+ } else {
1159
+ result = bytes.slice()
1160
+ result[0] |= 0x80
1161
+ }
1162
+ } else if ((bytes[0] & 0x80) !== 0) {
1163
+ result = [0x00, ...bytes]
1164
+ } else {
1165
+ result = bytes.slice()
1166
+ }
1167
+
1168
+ return endian === 'little' ? result.reverse() : result
1169
+ }
1170
+
1171
+ /**
1172
+ * Creates a BigNumber from a number representing the "bits" value in a block header.
1173
+ *
1174
+ * @static
1175
+ * @method fromBits
1176
+ * @param bits - The number representing the bits value in a block header.
1177
+ * @param strict - If true, an error is thrown if the number has negative bit set.
1178
+ * @returns Returns a BigNumber equivalent to the "bits" value in a block header.
1179
+ * @throws Will throw an error if `strict` is `true` and the number has negative bit set.
1180
+ */
1181
+ static fromBits (bits: number, strict: boolean = false): BigNumber {
1182
+ const nSize = bits >>> 24
1183
+ const nWordCompact = bits & 0x007fffff
1184
+ const isNegativeFromBit = (bits & 0x00800000) !== 0
1185
+
1186
+ if (strict && isNegativeFromBit) {
1187
+ throw new Error('negative bit set')
1188
+ }
1189
+
1190
+ if (nSize === 0 && nWordCompact === 0) {
1191
+ if (isNegativeFromBit && strict) throw new Error('negative bit set for zero value')
1192
+ return new BigNumber(0n)
1193
+ }
1194
+
1195
+ const bn = new BigNumber(nWordCompact)
1196
+
1197
+ // This logic comes from original bn.js `fromCompact`
1198
+ if (nSize <= 3) {
1199
+ bn.iushrn((3 - nSize) * 8)
1200
+ } else {
1201
+ bn.iushln((nSize - 3) * 8)
1202
+ }
1203
+
1204
+ if (isNegativeFromBit) {
1205
+ bn.ineg()
1206
+ }
1207
+ return bn
1208
+ }
1209
+
1210
+ /**
1211
+ * Converts this BigNumber to a number representing the "bits" value in a block header.
1212
+ *
1213
+ * @method toBits
1214
+ * @returns Returns a number equivalent to the "bits" value in a block header.
1215
+ */
1216
+ toBits (): number {
1217
+ this.strip()
1218
+ if (this.isZero() && !this.isNeg()) return 0
1219
+
1220
+ const isActualNegative = this.isNeg()
1221
+ const bnAbs = this.abs() // Work with absolute value for magnitude
1222
+
1223
+ // Get byte array of absolute value
1224
+ let mB = bnAbs.toArray('be') // Minimal byte array
1225
+
1226
+ // Remove leading zeros from byte array, if any (toArray('be') might already do this if no length specified)
1227
+ let firstNonZeroIdx = 0
1228
+ while (firstNonZeroIdx < mB.length - 1 && mB[firstNonZeroIdx] === 0) { // Keep last byte if it's [0]
1229
+ firstNonZeroIdx++
1230
+ }
1231
+ mB = mB.slice(firstNonZeroIdx)
1232
+
1233
+ let nSize = mB.length
1234
+ if (nSize === 0 && !bnAbs.isZero()) { // Should not happen if bnAbs is truly non-zero and toArray is correct
1235
+ mB = [0] // Should not be needed if toArray works for small numbers
1236
+ nSize = 1
1237
+ }
1238
+ if (bnAbs.isZero()) { // if original was, e.g., -0, bnAbs is 0.
1239
+ nSize = 0 // Size for 0 is 0, unless it's negative 0 to be encoded
1240
+ mB = []
1241
+ }
1242
+
1243
+ let nWordNum
1244
+ if (nSize === 0) {
1245
+ nWordNum = 0
1246
+ } else if (nSize <= 3) {
1247
+ nWordNum = 0
1248
+ for (let i = 0; i < nSize; i++) {
1249
+ nWordNum = (nWordNum << 8) | mB[i]
1250
+ }
1251
+ } else { // nSize > 3
1252
+ nWordNum = (mB[0] << 16) | (mB[1] << 8) | mB[2]
1253
+ }
1254
+
1255
+ if ((nWordNum & 0x00800000) !== 0 && nSize <= 0xff) { // MSB of 3-byte mantissa is set
1256
+ nWordNum >>>= 8 // Shift mantissa over by one byte
1257
+ nSize++ // Increase size component by one
1258
+ }
1259
+
1260
+ let b = (nSize << 24) | nWordNum
1261
+ if (isActualNegative) b |= 0x00800000
1262
+ return b >>> 0
1263
+ }
1264
+
1265
+ /**
1266
+ * Creates a BigNumber from the format used in Bitcoin scripts.
1267
+ *
1268
+ * @static
1269
+ * @method fromScriptNum
1270
+ * @param num - The number in the format used in Bitcoin scripts.
1271
+ * @param requireMinimal - If true, non-minimally encoded values will throw an error.
1272
+ * @param maxNumSize - The maximum allowed size for the number.
1273
+ * @returns Returns a BigNumber equivalent to the number used in a Bitcoin script.
1274
+ */
1275
+ static fromScriptNum (
1276
+ num: number[],
1277
+ requireMinimal: boolean = false,
1278
+ maxNumSize?: number
1279
+ ): BigNumber {
1280
+ if (maxNumSize !== undefined && num.length > maxNumSize) throw new Error('script number overflow')
1281
+ if (num.length === 0) return new BigNumber(0n)
1282
+ if (requireMinimal) {
1283
+ if ((num[num.length - 1] & 0x7f) === 0) {
1284
+ if (num.length <= 1 || (num[num.length - 2] & 0x80) === 0) {
1285
+ throw new Error('non-minimally encoded script number')
1286
+ }
1287
+ }
1288
+ }
1289
+ return BigNumber.fromSm(num, 'little')
1290
+ }
1291
+
1292
+ /**
1293
+ * Converts this BigNumber to a number in the format used in Bitcoin scripts.
1294
+ *
1295
+ * @method toScriptNum
1296
+ * @returns Returns the equivalent to this BigNumber as a Bitcoin script number.
1297
+ */
1298
+ toScriptNum (): number[] { return this.toSm('little') }
1299
+
1300
+ /**
1301
+ * Compute the multiplicative inverse of the current BigNumber in the modulus field specified by `p`.
1302
+ * The multiplicative inverse is a number which when multiplied with the current BigNumber gives '1' in the modulus field.
1303
+ *
1304
+ * @method _invmp
1305
+ * @param p - The `BigNumber` specifying the modulus field.
1306
+ * @returns The multiplicative inverse `BigNumber` in the modulus field specified by `p`.
1307
+ */
1308
+ _invmp (p: BigNumber): BigNumber {
1309
+ this.assert(p._sign === 0, 'p must not be negative for _invmp')
1310
+ this.assert(!p.isZero(), 'p must not be zero for _invmp')
1311
+
1312
+ const aBN: BigNumber = this.umod(p)
1313
+
1314
+ let aVal = aBN._magnitude
1315
+ let bVal = p._magnitude
1316
+ let x1Val = 1n
1317
+ let x2Val = 0n
1318
+ const modulus = p._magnitude
1319
+
1320
+ while (aVal > 1n && bVal > 1n) {
1321
+ let i = 0; while (((aVal >> BigInt(i)) & 1n) === 0n) i++
1322
+ if (i > 0) {
1323
+ aVal >>= BigInt(i)
1324
+ for (let k = 0; k < i; ++k) { if ((x1Val & 1n) !== 0n) x1Val += modulus; x1Val >>= 1n }
1325
+ }
1326
+
1327
+ let j = 0; while (((bVal >> BigInt(j)) & 1n) === 0n) j++
1328
+ if (j > 0) {
1329
+ bVal >>= BigInt(j)
1330
+ for (let k = 0; k < j; ++k) { if ((x2Val & 1n) !== 0n) x2Val += modulus; x2Val >>= 1n }
1331
+ }
1332
+
1333
+ if (aVal >= bVal) { aVal -= bVal; x1Val -= x2Val } else { bVal -= aVal; x2Val -= x1Val }
1334
+ }
1335
+
1336
+ let resultVal: bigint
1337
+ if (aVal === 1n) resultVal = x1Val
1338
+ else if (bVal === 1n) resultVal = x2Val
1339
+ else if (aVal === 0n && bVal === 1n) resultVal = x2Val
1340
+ else if (bVal === 0n && aVal === 1n) resultVal = x1Val
1341
+ else throw new Error('_invmp: GCD is not 1, inverse does not exist. aVal=' + aVal + ', bVal=' + bVal)
1342
+
1343
+ resultVal %= modulus
1344
+ if (resultVal < 0n) resultVal += modulus
1345
+
1346
+ const resultBN = new BigNumber(0n)
1347
+ resultBN._initializeState(resultVal, 0)
1348
+ return resultBN
1349
+ }
1350
+
1351
+ /**
1352
+ * Performs multiplication between the BigNumber instance and a given BigNumber.
1353
+ * It chooses the multiplication method based on the lengths of the numbers to optimize execution time.
1354
+ *
1355
+ * @method mulTo
1356
+ * @param num - The BigNumber multiply with.
1357
+ * @param out - The BigNumber where to store the result.
1358
+ * @returns The BigNumber resulting from the multiplication operation.
1359
+ */
1360
+ mulTo (num: BigNumber, out: BigNumber): BigNumber {
1361
+ out._magnitude = this._magnitude * num._magnitude
1362
+ out._sign = out._magnitude === 0n ? 0 : ((this._sign ^ num._sign) as 0 | 1)
1363
+ out._nominalWordLength = this.length + num.length
1364
+ out.red = null
1365
+ out.normSign()
1366
+ return out
1367
+ }
1368
+ }