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