@bsv/sdk 1.3.12 → 1.3.14
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/dist/cjs/package.json +15 -3
- package/dist/cjs/src/auth/Peer.js +83 -57
- package/dist/cjs/src/auth/Peer.js.map +1 -1
- package/dist/cjs/src/auth/SessionManager.js +14 -9
- package/dist/cjs/src/auth/SessionManager.js.map +1 -1
- package/dist/cjs/src/auth/certificates/Certificate.js +16 -10
- package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/MasterCertificate.js +25 -23
- package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +2 -2
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +62 -46
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/cjs/src/auth/clients/AuthFetch.js +1 -0
- package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +70 -43
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/cjs/src/auth/utils/createNonce.js +2 -1
- package/dist/cjs/src/auth/utils/createNonce.js.map +1 -1
- package/dist/cjs/src/auth/utils/getVerifiableCertificates.js.map +1 -1
- package/dist/cjs/src/auth/utils/validateCertificates.js +5 -2
- package/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -1
- package/dist/cjs/src/auth/utils/verifyNonce.js +2 -1
- package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -1
- package/dist/cjs/src/compat/BSM.js +7 -17
- package/dist/cjs/src/compat/BSM.js.map +1 -1
- package/dist/cjs/src/compat/ECIES.js +172 -133
- package/dist/cjs/src/compat/ECIES.js.map +1 -1
- package/dist/cjs/src/compat/HD.js +63 -73
- package/dist/cjs/src/compat/HD.js.map +1 -1
- package/dist/cjs/src/compat/Mnemonic.js +102 -106
- package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
- package/dist/cjs/src/compat/Utxo.js +2 -2
- package/dist/cjs/src/compat/Utxo.js.map +1 -1
- package/dist/cjs/src/compat/index.js +7 -17
- package/dist/cjs/src/compat/index.js.map +1 -1
- package/dist/cjs/src/messages/EncryptedMessage.js +3 -1
- package/dist/cjs/src/messages/EncryptedMessage.js.map +1 -1
- package/dist/cjs/src/messages/SignedMessage.js +1 -0
- package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
- package/dist/cjs/src/messages/index.js +7 -17
- package/dist/cjs/src/messages/index.js.map +1 -1
- package/dist/cjs/src/overlay-tools/LookupResolver.js +54 -35
- package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js +32 -20
- package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +40 -28
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
- package/dist/cjs/src/primitives/AESGCM.js +6 -5
- package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
- package/dist/cjs/src/primitives/BasePoint.js +1 -1
- package/dist/cjs/src/primitives/BasePoint.js.map +1 -1
- package/dist/cjs/src/primitives/BigNumber.js +50 -62
- package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
- package/dist/cjs/src/primitives/Curve.js +46 -22
- package/dist/cjs/src/primitives/Curve.js.map +1 -1
- package/dist/cjs/src/primitives/DRBG.js +2 -8
- package/dist/cjs/src/primitives/DRBG.js.map +1 -1
- package/dist/cjs/src/primitives/ECDSA.js +51 -35
- package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
- package/dist/cjs/src/primitives/Hash.js +191 -216
- package/dist/cjs/src/primitives/Hash.js.map +1 -1
- package/dist/cjs/src/primitives/JacobianPoint.js +19 -5
- package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
- package/dist/cjs/src/primitives/K256.js.map +1 -1
- package/dist/cjs/src/primitives/Mersenne.js.map +1 -1
- package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -1
- package/dist/cjs/src/primitives/Point.js +117 -88
- package/dist/cjs/src/primitives/Point.js.map +1 -1
- package/dist/cjs/src/primitives/Polynomial.js +4 -2
- package/dist/cjs/src/primitives/Polynomial.js.map +1 -1
- package/dist/cjs/src/primitives/PrivateKey.js +32 -33
- package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
- package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
- package/dist/cjs/src/primitives/Random.js +6 -5
- package/dist/cjs/src/primitives/Random.js.map +1 -1
- package/dist/cjs/src/primitives/ReductionContext.js +1 -1
- package/dist/cjs/src/primitives/ReductionContext.js.map +1 -1
- package/dist/cjs/src/primitives/Schnorr.js +21 -15
- package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
- package/dist/cjs/src/primitives/Signature.js +8 -7
- package/dist/cjs/src/primitives/Signature.js.map +1 -1
- package/dist/cjs/src/primitives/SymmetricKey.js +13 -13
- package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
- package/dist/cjs/src/primitives/TransactionSignature.js +31 -29
- package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/cjs/src/primitives/index.js +7 -17
- package/dist/cjs/src/primitives/index.js.map +1 -1
- package/dist/cjs/src/primitives/utils.js +79 -68
- package/dist/cjs/src/primitives/utils.js.map +1 -1
- package/dist/cjs/src/script/OP.js +3 -3
- package/dist/cjs/src/script/OP.js.map +1 -1
- package/dist/cjs/src/script/Script.js +12 -10
- package/dist/cjs/src/script/Script.js.map +1 -1
- package/dist/cjs/src/script/Spend.js +47 -49
- package/dist/cjs/src/script/Spend.js.map +1 -1
- package/dist/cjs/src/script/templates/P2PKH.js +24 -12
- package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
- package/dist/cjs/src/script/templates/PushDrop.js +28 -23
- package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
- package/dist/cjs/src/script/templates/RPuzzle.js +10 -6
- package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
- package/dist/cjs/src/totp/totp.js +2 -1
- package/dist/cjs/src/totp/totp.js.map +1 -1
- package/dist/cjs/src/transaction/Beef.js +177 -154
- package/dist/cjs/src/transaction/Beef.js.map +1 -1
- package/dist/cjs/src/transaction/BeefParty.js +24 -24
- package/dist/cjs/src/transaction/BeefParty.js.map +1 -1
- package/dist/cjs/src/transaction/BeefTx.js +26 -18
- package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
- package/dist/cjs/src/transaction/Broadcaster.js +3 -2
- package/dist/cjs/src/transaction/Broadcaster.js.map +1 -1
- package/dist/cjs/src/transaction/MerklePath.js +64 -37
- package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
- package/dist/cjs/src/transaction/Transaction.js +111 -137
- package/dist/cjs/src/transaction/Transaction.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/ARC.js +25 -16
- package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js +2 -1
- package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
- package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js +2 -1
- package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
- package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
- package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
- package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
- package/dist/cjs/src/transaction/http/DefaultHttpClient.js +5 -3
- package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/FetchHttpClient.js +5 -2
- package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/NodejsHttpClient.js +5 -3
- package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/index.js.map +1 -1
- package/dist/cjs/src/transaction/index.js.map +1 -1
- package/dist/cjs/src/wallet/CachedKeyDeriver.js +91 -66
- package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
- package/dist/cjs/src/wallet/KeyDeriver.js +61 -52
- package/dist/cjs/src/wallet/KeyDeriver.js.map +1 -1
- package/dist/cjs/src/wallet/ProtoWallet.js +79 -29
- package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
- package/dist/cjs/src/wallet/WalletClient.js +7 -2
- package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
- package/dist/cjs/src/wallet/WalletError.js +2 -2
- package/dist/cjs/src/wallet/WalletError.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +4 -3
- package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +2 -2
- package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +1239 -1261
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +102 -43
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/XDM.js +8 -3
- package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/window.CWI.js +28 -28
- package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/mod.js +15 -15
- package/dist/esm/src/auth/Peer.js +75 -54
- package/dist/esm/src/auth/Peer.js.map +1 -1
- package/dist/esm/src/auth/SessionManager.js +14 -9
- package/dist/esm/src/auth/SessionManager.js.map +1 -1
- package/dist/esm/src/auth/certificates/Certificate.js +15 -11
- package/dist/esm/src/auth/certificates/Certificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/MasterCertificate.js +25 -23
- package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js +2 -2
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +64 -47
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/esm/src/auth/clients/AuthFetch.js +1 -0
- package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +69 -43
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/esm/src/auth/utils/createNonce.js.map +1 -1
- package/dist/esm/src/auth/utils/getVerifiableCertificates.js +1 -1
- package/dist/esm/src/auth/utils/getVerifiableCertificates.js.map +1 -1
- package/dist/esm/src/auth/utils/validateCertificates.js +6 -3
- package/dist/esm/src/auth/utils/validateCertificates.js.map +1 -1
- package/dist/esm/src/auth/utils/verifyNonce.js.map +1 -1
- package/dist/esm/src/compat/BSM.js.map +1 -1
- package/dist/esm/src/compat/ECIES.js +165 -116
- package/dist/esm/src/compat/ECIES.js.map +1 -1
- package/dist/esm/src/compat/HD.js +56 -56
- package/dist/esm/src/compat/HD.js.map +1 -1
- package/dist/esm/src/compat/Mnemonic.js +95 -89
- package/dist/esm/src/compat/Mnemonic.js.map +1 -1
- package/dist/esm/src/compat/Utxo.js +1 -1
- package/dist/esm/src/compat/Utxo.js.map +1 -1
- package/dist/esm/src/messages/EncryptedMessage.js +3 -1
- package/dist/esm/src/messages/EncryptedMessage.js.map +1 -1
- package/dist/esm/src/messages/SignedMessage.js +1 -0
- package/dist/esm/src/messages/SignedMessage.js.map +1 -1
- package/dist/esm/src/overlay-tools/LookupResolver.js +53 -35
- package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js +32 -20
- package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +40 -28
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
- package/dist/esm/src/primitives/AESGCM.js +1 -0
- package/dist/esm/src/primitives/AESGCM.js.map +1 -1
- package/dist/esm/src/primitives/BasePoint.js +1 -1
- package/dist/esm/src/primitives/BasePoint.js.map +1 -1
- package/dist/esm/src/primitives/BigNumber.js +50 -62
- package/dist/esm/src/primitives/BigNumber.js.map +1 -1
- package/dist/esm/src/primitives/Curve.js +45 -22
- package/dist/esm/src/primitives/Curve.js.map +1 -1
- package/dist/esm/src/primitives/DRBG.js +2 -8
- package/dist/esm/src/primitives/DRBG.js.map +1 -1
- package/dist/esm/src/primitives/ECDSA.js +50 -35
- package/dist/esm/src/primitives/ECDSA.js.map +1 -1
- package/dist/esm/src/primitives/Hash.js +188 -213
- package/dist/esm/src/primitives/Hash.js.map +1 -1
- package/dist/esm/src/primitives/JacobianPoint.js +18 -5
- package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
- package/dist/esm/src/primitives/K256.js.map +1 -1
- package/dist/esm/src/primitives/Mersenne.js.map +1 -1
- package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -1
- package/dist/esm/src/primitives/Point.js +107 -88
- package/dist/esm/src/primitives/Point.js.map +1 -1
- package/dist/esm/src/primitives/Polynomial.js +4 -2
- package/dist/esm/src/primitives/Polynomial.js.map +1 -1
- package/dist/esm/src/primitives/PrivateKey.js +25 -16
- package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
- package/dist/esm/src/primitives/PublicKey.js.map +1 -1
- package/dist/esm/src/primitives/Random.js +7 -6
- package/dist/esm/src/primitives/Random.js.map +1 -1
- package/dist/esm/src/primitives/ReductionContext.js +1 -1
- package/dist/esm/src/primitives/ReductionContext.js.map +1 -1
- package/dist/esm/src/primitives/Schnorr.js +21 -15
- package/dist/esm/src/primitives/Schnorr.js.map +1 -1
- package/dist/esm/src/primitives/Signature.js +8 -7
- package/dist/esm/src/primitives/Signature.js.map +1 -1
- package/dist/esm/src/primitives/SymmetricKey.js +13 -13
- package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
- package/dist/esm/src/primitives/TransactionSignature.js +22 -12
- package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/esm/src/primitives/utils.js +76 -66
- package/dist/esm/src/primitives/utils.js.map +1 -1
- package/dist/esm/src/script/OP.js +3 -3
- package/dist/esm/src/script/OP.js.map +1 -1
- package/dist/esm/src/script/Script.js +12 -10
- package/dist/esm/src/script/Script.js.map +1 -1
- package/dist/esm/src/script/Spend.js +39 -32
- package/dist/esm/src/script/Spend.js.map +1 -1
- package/dist/esm/src/script/templates/P2PKH.js +26 -11
- package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
- package/dist/esm/src/script/templates/PushDrop.js +29 -22
- package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
- package/dist/esm/src/script/templates/RPuzzle.js +11 -6
- package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
- package/dist/esm/src/totp/totp.js +2 -1
- package/dist/esm/src/totp/totp.js.map +1 -1
- package/dist/esm/src/transaction/Beef.js +176 -154
- package/dist/esm/src/transaction/Beef.js.map +1 -1
- package/dist/esm/src/transaction/BeefParty.js +24 -24
- package/dist/esm/src/transaction/BeefParty.js.map +1 -1
- package/dist/esm/src/transaction/BeefTx.js +26 -18
- package/dist/esm/src/transaction/BeefTx.js.map +1 -1
- package/dist/esm/src/transaction/Broadcaster.js.map +1 -1
- package/dist/esm/src/transaction/MerklePath.js +61 -36
- package/dist/esm/src/transaction/MerklePath.js.map +1 -1
- package/dist/esm/src/transaction/Transaction.js +105 -138
- package/dist/esm/src/transaction/Transaction.js.map +1 -1
- package/dist/esm/src/transaction/broadcasters/ARC.js +25 -16
- package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
- package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
- package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
- package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
- package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
- package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
- package/dist/esm/src/transaction/http/DefaultHttpClient.js +3 -2
- package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
- package/dist/esm/src/transaction/http/FetchHttpClient.js +4 -2
- package/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -1
- package/dist/esm/src/transaction/http/NodejsHttpClient.js +5 -3
- package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -1
- package/dist/esm/src/transaction/http/index.js.map +1 -1
- package/dist/esm/src/transaction/index.js.map +1 -1
- package/dist/esm/src/wallet/CachedKeyDeriver.js +91 -66
- package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
- package/dist/esm/src/wallet/KeyDeriver.js +60 -52
- package/dist/esm/src/wallet/KeyDeriver.js.map +1 -1
- package/dist/esm/src/wallet/ProtoWallet.js +75 -29
- package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
- package/dist/esm/src/wallet/WalletClient.js +7 -2
- package/dist/esm/src/wallet/WalletClient.js.map +1 -1
- package/dist/esm/src/wallet/WalletError.js +2 -2
- package/dist/esm/src/wallet/WalletError.js.map +1 -1
- package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +4 -4
- package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/esm/src/wallet/substrates/HTTPWalletWire.js +2 -2
- package/dist/esm/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1239 -1261
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +95 -43
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/esm/src/wallet/substrates/XDM.js +8 -3
- package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
- package/dist/esm/src/wallet/substrates/window.CWI.js +28 -28
- package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/mod.d.ts +15 -15
- package/dist/types/src/auth/Peer.d.ts +10 -10
- package/dist/types/src/auth/Peer.d.ts.map +1 -1
- package/dist/types/src/auth/SessionManager.d.ts +4 -4
- package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/Certificate.d.ts +6 -6
- package/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts +5 -5
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts +23 -22
- package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts.map +1 -1
- package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
- package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts +1 -1
- package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts.map +1 -1
- package/dist/types/src/auth/utils/createNonce.d.ts.map +1 -1
- package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts +3 -3
- package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts.map +1 -1
- package/dist/types/src/auth/utils/validateCertificates.d.ts +2 -2
- package/dist/types/src/auth/utils/validateCertificates.d.ts.map +1 -1
- package/dist/types/src/auth/utils/verifyNonce.d.ts +1 -1
- package/dist/types/src/auth/utils/verifyNonce.d.ts.map +1 -1
- package/dist/types/src/compat/BSM.d.ts +1 -1
- package/dist/types/src/compat/BSM.d.ts.map +1 -1
- package/dist/types/src/compat/ECIES.d.ts +36 -36
- package/dist/types/src/compat/ECIES.d.ts.map +1 -1
- package/dist/types/src/compat/HD.d.ts +51 -51
- package/dist/types/src/compat/HD.d.ts.map +1 -1
- package/dist/types/src/compat/Mnemonic.d.ts +79 -79
- package/dist/types/src/compat/Mnemonic.d.ts.map +1 -1
- package/dist/types/src/compat/Utxo.d.ts.map +1 -1
- package/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -1
- package/dist/types/src/messages/SignedMessage.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/LookupResolver.d.ts +9 -9
- package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts +17 -17
- package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +14 -14
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
- package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
- package/dist/types/src/primitives/BasePoint.d.ts +8 -8
- package/dist/types/src/primitives/BasePoint.d.ts.map +1 -1
- package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
- package/dist/types/src/primitives/Curve.d.ts +14 -7
- package/dist/types/src/primitives/Curve.d.ts.map +1 -1
- package/dist/types/src/primitives/DRBG.d.ts.map +1 -1
- package/dist/types/src/primitives/ECDSA.d.ts +1 -1
- package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
- package/dist/types/src/primitives/Hash.d.ts +11 -11
- package/dist/types/src/primitives/Hash.d.ts.map +1 -1
- package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -1
- package/dist/types/src/primitives/Point.d.ts +14 -10
- package/dist/types/src/primitives/Point.d.ts.map +1 -1
- package/dist/types/src/primitives/Polynomial.d.ts.map +1 -1
- package/dist/types/src/primitives/PrivateKey.d.ts +2 -2
- package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
- package/dist/types/src/primitives/PublicKey.d.ts.map +1 -1
- package/dist/types/src/primitives/Random.d.ts.map +1 -1
- package/dist/types/src/primitives/Schnorr.d.ts +14 -14
- package/dist/types/src/primitives/Schnorr.d.ts.map +1 -1
- package/dist/types/src/primitives/Signature.d.ts +1 -1
- package/dist/types/src/primitives/Signature.d.ts.map +1 -1
- package/dist/types/src/primitives/SymmetricKey.d.ts +13 -13
- package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
- package/dist/types/src/primitives/TransactionSignature.d.ts +4 -4
- package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -1
- package/dist/types/src/primitives/utils.d.ts +3 -6
- package/dist/types/src/primitives/utils.d.ts.map +1 -1
- package/dist/types/src/script/Script.d.ts +3 -3
- package/dist/types/src/script/Script.d.ts.map +1 -1
- package/dist/types/src/script/ScriptTemplate.d.ts +2 -2
- package/dist/types/src/script/ScriptTemplate.d.ts.map +1 -1
- package/dist/types/src/script/Spend.d.ts.map +1 -1
- package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -1
- package/dist/types/src/script/templates/PushDrop.d.ts +1 -2
- package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
- package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -1
- package/dist/types/src/totp/totp.d.ts.map +1 -1
- package/dist/types/src/transaction/Beef.d.ts +96 -96
- package/dist/types/src/transaction/Beef.d.ts.map +1 -1
- package/dist/types/src/transaction/BeefParty.d.ts +22 -22
- package/dist/types/src/transaction/BeefParty.d.ts.map +1 -1
- package/dist/types/src/transaction/BeefTx.d.ts +5 -5
- package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
- package/dist/types/src/transaction/Broadcaster.d.ts.map +1 -1
- package/dist/types/src/transaction/ChainTracker.d.ts +2 -2
- package/dist/types/src/transaction/FeeModel.d.ts.map +1 -1
- package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
- package/dist/types/src/transaction/Transaction.d.ts +4 -12
- package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
- package/dist/types/src/transaction/TransactionOutput.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/ARC.d.ts +1 -1
- package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -1
- package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -1
- package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -1
- package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -1
- package/dist/types/src/transaction/http/DefaultHttpClient.d.ts +1 -1
- package/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/FetchHttpClient.d.ts +5 -5
- package/dist/types/src/transaction/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/HttpClient.d.ts +4 -4
- package/dist/types/src/transaction/http/HttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/NodejsHttpClient.d.ts +3 -3
- package/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/index.d.ts.map +1 -1
- package/dist/types/src/transaction/index.d.ts.map +1 -1
- package/dist/types/src/wallet/CachedKeyDeriver.d.ts +58 -58
- package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
- package/dist/types/src/wallet/KeyDeriver.d.ts +78 -78
- package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
- package/dist/types/src/wallet/ProtoWallet.d.ts +10 -10
- package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -1
- package/dist/types/src/wallet/Wallet.interfaces.d.ts +151 -152
- package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
- package/dist/types/src/wallet/WalletClient.d.ts +5 -5
- package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +6 -6
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/XDM.d.ts +1 -1
- package/dist/types/src/wallet/substrates/XDM.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/window.CWI.d.ts +6 -6
- package/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +1 -1
- package/docs/auth.md +92 -82
- package/docs/compat.md +24 -24
- package/docs/messages.md +7 -5
- package/docs/overlay-tools.md +21 -21
- package/docs/primitives.md +336 -315
- package/docs/script.md +35 -35
- package/docs/swagger/dist/swagger-initializer.js +7 -7
- package/docs/swagger/dist/swagger-ui-bundle.js +1 -1
- package/docs/swagger/dist/swagger-ui-es-bundle-core.js +2 -2
- package/docs/swagger/dist/swagger-ui-es-bundle.js +1 -1
- package/docs/swagger/dist/swagger-ui-standalone-preset.js +1 -1
- package/docs/swagger/dist/swagger-ui.js +2 -2
- package/docs/totp.md +5 -5
- package/docs/transaction.md +103 -105
- package/docs/wallet-substrates.md +17 -17
- package/docs/wallet.md +202 -204
- package/mod.ts +15 -15
- package/package.json +15 -3
- package/src/auth/Peer.ts +271 -121
- package/src/auth/SessionManager.ts +17 -10
- package/src/auth/__tests/Peer.test.ts +361 -179
- package/src/auth/__tests/SessionManager.test.ts +67 -19
- package/src/auth/__tests/build.test.ts +11 -0
- package/src/auth/certificates/Certificate.ts +27 -14
- package/src/auth/certificates/MasterCertificate.ts +106 -62
- package/src/auth/certificates/VerifiableCertificate.ts +30 -8
- package/src/auth/certificates/__tests/Certificate.test.ts +32 -17
- package/src/auth/certificates/__tests/CompletedProtoWallet.ts +171 -68
- package/src/auth/certificates/__tests/MasterCertificate.test.ts +63 -47
- package/src/auth/certificates/__tests/VerifiableCertificate.test.ts +42 -31
- package/src/auth/certificates/index.ts +1 -1
- package/src/auth/clients/AuthFetch.ts +1 -0
- package/src/auth/clients/index.ts +1 -1
- package/src/auth/transports/SimplifiedFetchTransport.ts +145 -72
- package/src/auth/transports/index.ts +1 -1
- package/src/auth/utils/__tests/cryptononce.test.ts +52 -23
- package/src/auth/utils/__tests/getVerifiableCertificates.test.ts +56 -30
- package/src/auth/utils/__tests/validateCertificates.test.ts +53 -31
- package/src/auth/utils/createNonce.ts +11 -3
- package/src/auth/utils/getVerifiableCertificates.ts +12 -7
- package/src/auth/utils/validateCertificates.ts +57 -39
- package/src/auth/utils/verifyNonce.ts +6 -2
- package/src/compat/BSM.ts +10 -2
- package/src/compat/ECIES.ts +265 -141
- package/src/compat/HD.ts +81 -63
- package/src/compat/Mnemonic.ts +104 -91
- package/src/compat/Utxo.ts +8 -5
- package/src/compat/__tests/BSM.test.ts +42 -16
- package/src/compat/__tests/ECIES.test.ts +117 -52
- package/src/compat/__tests/HD.test.ts +55 -42
- package/src/compat/__tests/Mnemonic.test.ts +11 -12
- package/src/compat/__tests/Mnemonic.vectors.ts +110 -55
- package/src/messages/EncryptedMessage.ts +6 -2
- package/src/messages/SignedMessage.ts +14 -8
- package/src/messages/__tests/EncryptedMessage.test.ts +23 -24
- package/src/messages/__tests/SignedMessage.test.ts +17 -11
- package/src/overlay-tools/LookupResolver.ts +108 -56
- package/src/overlay-tools/OverlayAdminTokenTemplate.ts +52 -23
- package/src/overlay-tools/SHIPBroadcaster.ts +135 -59
- package/src/overlay-tools/__tests/LookupResolver.test.ts +723 -323
- package/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.ts +50 -22
- package/src/overlay-tools/__tests/SHIPBroadcaster.test.ts +607 -290
- package/src/primitives/AESGCM.ts +2 -0
- package/src/primitives/BasePoint.ts +4 -4
- package/src/primitives/BigNumber.ts +99 -90
- package/src/primitives/Curve.ts +117 -46
- package/src/primitives/DRBG.ts +9 -11
- package/src/primitives/ECDSA.ts +109 -63
- package/src/primitives/Hash.ts +492 -321
- package/src/primitives/JacobianPoint.ts +67 -19
- package/src/primitives/Point.ts +254 -152
- package/src/primitives/Polynomial.ts +8 -3
- package/src/primitives/PrivateKey.ts +41 -17
- package/src/primitives/PublicKey.ts +13 -3
- package/src/primitives/Random.ts +14 -8
- package/src/primitives/ReductionContext.ts +1 -1
- package/src/primitives/Schnorr.ts +40 -18
- package/src/primitives/Signature.ts +26 -16
- package/src/primitives/SymmetricKey.ts +14 -14
- package/src/primitives/TransactionSignature.ts +41 -17
- package/src/primitives/__tests/AESGCM.test.ts +457 -151
- package/src/primitives/__tests/BRC42.private.vectors.ts +30 -15
- package/src/primitives/__tests/BRC42.public.vectors.ts +30 -15
- package/src/primitives/__tests/BigNumber.arithmatic.test.ts +344 -125
- package/src/primitives/__tests/BigNumber.binary.test.ts +148 -67
- package/src/primitives/__tests/BigNumber.constructor.test.ts +65 -25
- package/src/primitives/__tests/BigNumber.dhGroup.test.ts +15 -11
- package/src/primitives/__tests/BigNumber.fixtures.ts +16 -8
- package/src/primitives/__tests/BigNumber.serializers.test.ts +41 -15
- package/src/primitives/__tests/BigNumber.utils.test.ts +132 -42
- package/src/primitives/__tests/Curve.unit.test.ts +75 -53
- package/src/primitives/__tests/DRBG.test.ts +1 -1
- package/src/primitives/__tests/DRBG.vectors.ts +45 -75
- package/src/primitives/__tests/ECDH.test.ts +15 -8
- package/src/primitives/__tests/ECDSA.test.ts +12 -6
- package/src/primitives/__tests/HMAC.test.ts +24 -18
- package/src/primitives/__tests/Hash.test.ts +57 -46
- package/src/primitives/__tests/PBKDF2.vectors.ts +130 -117
- package/src/primitives/__tests/PrivateKey.split.test.ts +33 -11
- package/src/primitives/__tests/PrivateKey.test.ts +11 -10
- package/src/primitives/__tests/PublicKey.test.ts +64 -53
- package/src/primitives/__tests/Random.test.ts +1 -1
- package/src/primitives/__tests/Reader.test.ts +240 -219
- package/src/primitives/__tests/ReductionContext.test.ts +98 -61
- package/src/primitives/__tests/Schnorr.test.ts +249 -237
- package/src/primitives/__tests/SymmetricKey.test.ts +18 -15
- package/src/primitives/__tests/SymmetricKey.vectors.ts +16 -8
- package/src/primitives/__tests/Writer.test.ts +23 -13
- package/src/primitives/__tests/bug-31.test.ts +6 -10
- package/src/primitives/__tests/utils.test.ts +70 -19
- package/src/primitives/utils.ts +103 -79
- package/src/script/Script.ts +18 -12
- package/src/script/ScriptTemplate.ts +3 -5
- package/src/script/Spend.ts +306 -108
- package/src/script/__tests/Script.test.ts +73 -55
- package/src/script/__tests/Spend.test.ts +208 -83
- package/src/script/__tests/SpendComplex.test.ts +19 -13
- package/src/script/__tests/script.invalid.vectors.ts +428 -1796
- package/src/script/__tests/script.valid.vectors.ts +728 -2764
- package/src/script/templates/P2PKH.ts +34 -12
- package/src/script/templates/PushDrop.ts +65 -31
- package/src/script/templates/RPuzzle.ts +29 -8
- package/src/script/templates/__tests/PushDrop.test.ts +146 -41
- package/src/totp/__tests/totp.test.ts +45 -44
- package/src/totp/totp.ts +3 -2
- package/src/transaction/Beef.ts +269 -174
- package/src/transaction/BeefParty.ts +41 -31
- package/src/transaction/BeefTx.ts +36 -26
- package/src/transaction/Broadcaster.ts +10 -6
- package/src/transaction/ChainTracker.ts +2 -2
- package/src/transaction/FeeModel.ts +0 -1
- package/src/transaction/MerklePath.ts +124 -59
- package/src/transaction/Transaction.ts +188 -187
- package/src/transaction/TransactionOutput.ts +0 -1
- package/src/transaction/__tests/Beef.test.ts +390 -287
- package/src/transaction/__tests/MerklePath.test.ts +59 -26
- package/src/transaction/__tests/Transaction.benchmarks.test.ts +231 -201
- package/src/transaction/__tests/Transaction.test.ts +758 -482
- package/src/transaction/__tests/bigtx.vectors.ts +2 -1
- package/src/transaction/__tests/bump.invalid.vectors.ts +24 -6
- package/src/transaction/__tests/bump.valid.vectors.ts +6 -2
- package/src/transaction/__tests/tx.invalid.vectors.ts +881 -185
- package/src/transaction/__tests/tx.valid.vectors.ts +1210 -257
- package/src/transaction/broadcasters/ARC.ts +69 -38
- package/src/transaction/broadcasters/DefaultBroadcaster.ts +9 -3
- package/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +20 -7
- package/src/transaction/broadcasters/__tests/ARC.test.ts +127 -59
- package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +27 -18
- package/src/transaction/chaintrackers/DefaultChainTracker.ts +1 -1
- package/src/transaction/chaintrackers/WhatsOnChain.ts +27 -11
- package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +59 -23
- package/src/transaction/fee-models/SatoshisPerKilobyte.ts +9 -5
- package/src/transaction/http/DefaultHttpClient.ts +5 -4
- package/src/transaction/http/FetchHttpClient.ts +18 -9
- package/src/transaction/http/HttpClient.ts +27 -22
- package/src/transaction/http/NodejsHttpClient.ts +23 -9
- package/src/transaction/http/index.ts +5 -1
- package/src/transaction/index.ts +5 -1
- package/src/wallet/CachedKeyDeriver.ts +151 -82
- package/src/wallet/KeyDeriver.ts +186 -105
- package/src/wallet/ProtoWallet.ts +121 -52
- package/src/wallet/Wallet.interfaces.ts +167 -156
- package/src/wallet/WalletClient.ts +314 -59
- package/src/wallet/WalletError.ts +2 -2
- package/src/wallet/__tests/CachedKeyDeriver.test.ts +86 -27
- package/src/wallet/__tests/KeyDeriver.test.ts +136 -33
- package/src/wallet/__tests/ProtoWallet.test.ts +190 -102
- package/src/wallet/substrates/HTTPWalletJSON.ts +250 -67
- package/src/wallet/substrates/HTTPWalletWire.ts +7 -3
- package/src/wallet/substrates/WalletWireCalls.ts +2 -2
- package/src/wallet/substrates/WalletWireProcessor.ts +1412 -1277
- package/src/wallet/substrates/WalletWireTransceiver.ts +713 -138
- package/src/wallet/substrates/XDM.ts +425 -36
- package/src/wallet/substrates/__tests/WalletWire.integration.test.ts +488 -225
- package/src/wallet/substrates/__tests/XDM.test.ts +232 -234
- package/src/wallet/substrates/window.CWI.ts +520 -61
|
@@ -15,27 +15,18 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) ||
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
35
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
27
|
};
|
|
38
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
// @ts-nocheck
|
|
39
30
|
const utils_js_1 = require("../primitives/utils.js");
|
|
40
31
|
const Hash = __importStar(require("../primitives/Hash.js"));
|
|
41
32
|
const Curve_js_1 = __importDefault(require("../primitives/Curve.js"));
|
|
@@ -55,16 +46,16 @@ const BigNumber_js_1 = __importDefault(require("../primitives/BigNumber.js"));
|
|
|
55
46
|
*/
|
|
56
47
|
class HD {
|
|
57
48
|
/**
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
49
|
+
* Constructor for the BIP32 HD wallet.
|
|
50
|
+
* Initializes an HD wallet with optional parameters for version bytes, depth, parent fingerprint, child index, chain code, private key, and public key.
|
|
51
|
+
* @param versionBytesNum - Version bytes number for the wallet.
|
|
52
|
+
* @param depth - Depth of the key in the hierarchy.
|
|
53
|
+
* @param parentFingerPrint - Fingerprint of the parent key.
|
|
54
|
+
* @param childIndex - Index of the child key.
|
|
55
|
+
* @param chainCode - Chain code for key derivation.
|
|
56
|
+
* @param privKey - Private key of the wallet.
|
|
57
|
+
* @param pubKey - Public key of the wallet.
|
|
58
|
+
*/
|
|
68
59
|
constructor(versionBytesNum, depth, parentFingerPrint, childIndex, chainCode, privKey, pubKey) {
|
|
69
60
|
this.constants = {
|
|
70
61
|
pubKey: 0x0488b21e,
|
|
@@ -79,10 +70,10 @@ class HD {
|
|
|
79
70
|
this.pubKey = pubKey;
|
|
80
71
|
}
|
|
81
72
|
/**
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
73
|
+
* Generates a new HD wallet with random keys.
|
|
74
|
+
* This method creates a root HD wallet with randomly generated private and public keys.
|
|
75
|
+
* @returns {HD} The current HD instance with generated keys.
|
|
76
|
+
*/
|
|
86
77
|
fromRandom() {
|
|
87
78
|
this.versionBytesNum = this.constants.privKey;
|
|
88
79
|
this.depth = 0x00;
|
|
@@ -94,11 +85,11 @@ class HD {
|
|
|
94
85
|
return this;
|
|
95
86
|
}
|
|
96
87
|
/**
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
88
|
+
* Generates a new HD wallet with random keys.
|
|
89
|
+
* This method creates a root HD wallet with randomly generated private and public keys.
|
|
90
|
+
* @returns {HD} A new HD instance with generated keys.
|
|
91
|
+
* @static
|
|
92
|
+
*/
|
|
102
93
|
static fromRandom() {
|
|
103
94
|
return new this().fromRandom();
|
|
104
95
|
}
|
|
@@ -112,11 +103,11 @@ class HD {
|
|
|
112
103
|
return new this().fromString(str);
|
|
113
104
|
}
|
|
114
105
|
/**
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
106
|
+
* Initializes the HD wallet from a given base58 encoded string.
|
|
107
|
+
* This method decodes a provided string to set up the HD wallet's properties.
|
|
108
|
+
* @param str - A base58 encoded string representing the wallet.
|
|
109
|
+
* @returns {HD} The current instance with properties set from the string.
|
|
110
|
+
*/
|
|
120
111
|
fromString(str) {
|
|
121
112
|
const decoded = (0, utils_js_1.fromBase58Check)(str);
|
|
122
113
|
return this.fromBinary([...decoded.prefix, ...decoded.data]);
|
|
@@ -131,11 +122,11 @@ class HD {
|
|
|
131
122
|
return new this().fromSeed(bytes);
|
|
132
123
|
}
|
|
133
124
|
/**
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
125
|
+
* Initializes the HD wallet from a seed.
|
|
126
|
+
* This method generates keys and other properties from a given seed, conforming to the BIP32 specification.
|
|
127
|
+
* @param bytes - An array of bytes representing the seed.
|
|
128
|
+
* @returns {HD} The current instance with properties set from the seed.
|
|
129
|
+
*/
|
|
139
130
|
fromSeed(bytes) {
|
|
140
131
|
if (bytes.length < 128 / 8) {
|
|
141
132
|
throw new Error('Need more than 128 bits of entropy');
|
|
@@ -204,11 +195,11 @@ class HD {
|
|
|
204
195
|
return (0, utils_js_1.toBase58Check)(bin, []);
|
|
205
196
|
}
|
|
206
197
|
/**
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
198
|
+
* Derives a child HD wallet based on a given path.
|
|
199
|
+
* The path specifies the hierarchy of the child key to be derived.
|
|
200
|
+
* @param path - A string representing the derivation path (e.g., 'm/0'/1).
|
|
201
|
+
* @returns {HD} A new HD instance representing the derived child wallet.
|
|
202
|
+
*/
|
|
212
203
|
derive(path) {
|
|
213
204
|
if (path === 'm') {
|
|
214
205
|
return this;
|
|
@@ -216,9 +207,8 @@ class HD {
|
|
|
216
207
|
const e = path.split('/');
|
|
217
208
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
218
209
|
let bip32 = this;
|
|
219
|
-
for (const i
|
|
220
|
-
|
|
221
|
-
if (i === '0') {
|
|
210
|
+
for (const [i, c] of e.entries()) {
|
|
211
|
+
if (i === 0) { // Since `i` is now a number, compare it to 0
|
|
222
212
|
if (c !== 'm') {
|
|
223
213
|
throw new Error('invalid path');
|
|
224
214
|
}
|
|
@@ -237,11 +227,11 @@ class HD {
|
|
|
237
227
|
return bip32;
|
|
238
228
|
}
|
|
239
229
|
/**
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
230
|
+
* Derives a child HD wallet from the current wallet based on an index.
|
|
231
|
+
* This method generates either a private or public child key depending on the current wallet's state.
|
|
232
|
+
* @param i - The index of the child key to derive.
|
|
233
|
+
* @returns {HD} A new HD instance representing the derived child wallet.
|
|
234
|
+
*/
|
|
245
235
|
deriveChild(i) {
|
|
246
236
|
if (typeof i !== 'number') {
|
|
247
237
|
throw new Error('i must be a number');
|
|
@@ -254,11 +244,11 @@ class HD {
|
|
|
254
244
|
const ib = [...ibc];
|
|
255
245
|
const usePrivate = (i & 0x80000000) !== 0;
|
|
256
246
|
const isPrivate = this.versionBytesNum === this.constants.privKey;
|
|
257
|
-
if (usePrivate && (
|
|
247
|
+
if (usePrivate && (this.privKey === null || this.privKey === undefined || !isPrivate)) {
|
|
258
248
|
throw new Error('Cannot do private key derivation without private key');
|
|
259
249
|
}
|
|
260
250
|
let ret = null;
|
|
261
|
-
if (this.privKey) {
|
|
251
|
+
if (this.privKey !== null && this.privKey !== undefined) {
|
|
262
252
|
let data = null;
|
|
263
253
|
if (usePrivate) {
|
|
264
254
|
data = [0, ...this.privKey.toArray('be', 32), ...ib];
|
|
@@ -298,10 +288,10 @@ class HD {
|
|
|
298
288
|
return ret;
|
|
299
289
|
}
|
|
300
290
|
/**
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
291
|
+
* Converts the current HD wallet to a public-only wallet.
|
|
292
|
+
* This method strips away the private key information, leaving only the public part.
|
|
293
|
+
* @returns {HD} A new HD instance representing the public-only wallet.
|
|
294
|
+
*/
|
|
305
295
|
toPublic() {
|
|
306
296
|
const bip32 = new HD(this.versionBytesNum, this.depth, this.parentFingerPrint, this.childIndex, this.chainCode, this.privKey, this.pubKey);
|
|
307
297
|
bip32.versionBytesNum = this.constants.pubKey;
|
|
@@ -309,10 +299,10 @@ class HD {
|
|
|
309
299
|
return bip32;
|
|
310
300
|
}
|
|
311
301
|
/**
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
302
|
+
* Converts the HD wallet into a binary representation.
|
|
303
|
+
* This method serializes the wallet's properties into a binary format.
|
|
304
|
+
* @returns {number[]} An array of numbers representing the binary data of the wallet.
|
|
305
|
+
*/
|
|
316
306
|
toBinary() {
|
|
317
307
|
const isPrivate = this.versionBytesNum === this.constants.privKey;
|
|
318
308
|
const isPublic = this.versionBytesNum === this.constants.pubKey;
|
|
@@ -342,10 +332,10 @@ class HD {
|
|
|
342
332
|
}
|
|
343
333
|
}
|
|
344
334
|
/**
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
335
|
+
* Checks if the HD wallet contains a private key.
|
|
336
|
+
* This method determines whether the wallet is a private key wallet or a public key only wallet.
|
|
337
|
+
* @returns {boolean} A boolean value indicating whether the wallet has a private key (true) or not (false).
|
|
338
|
+
*/
|
|
349
339
|
isPrivate() {
|
|
350
340
|
return this.versionBytesNum === this.constants.privKey;
|
|
351
341
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HD.js","sourceRoot":"","sources":["../../../../src/compat/HD.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HD.js","sourceRoot":"","sources":["../../../../src/compat/HD.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,23 +15,13 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) ||
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
35
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
27
|
};
|
|
@@ -51,23 +41,23 @@ const Random_js_1 = __importDefault(require("../primitives/Random.js"));
|
|
|
51
41
|
*/
|
|
52
42
|
class Mnemonic {
|
|
53
43
|
/**
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
44
|
+
* Constructs a Mnemonic object.
|
|
45
|
+
* @param {string} [mnemonic] - An optional mnemonic phrase.
|
|
46
|
+
* @param {number[]} [seed] - An optional seed derived from the mnemonic.
|
|
47
|
+
* @param {object} [wordlist=wordList] - An object containing a list of words and space character used in the mnemonic.
|
|
48
|
+
*/
|
|
59
49
|
constructor(mnemonic, seed, wordlist = bip_39_wordlist_en_js_1.wordList) {
|
|
60
|
-
this.mnemonic = mnemonic;
|
|
61
|
-
this.seed = seed;
|
|
50
|
+
this.mnemonic = mnemonic !== null && mnemonic !== void 0 ? mnemonic : ''; // Default to empty string if undefined
|
|
51
|
+
this.seed = seed !== null && seed !== void 0 ? seed : []; // Default to empty array if undefined
|
|
62
52
|
this.Wordlist = wordlist;
|
|
63
53
|
}
|
|
64
54
|
/**
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
55
|
+
* Converts the mnemonic and seed into a binary representation.
|
|
56
|
+
* @returns {number[]} The binary representation of the mnemonic and seed.
|
|
57
|
+
*/
|
|
68
58
|
toBinary() {
|
|
69
59
|
const bw = new utils_js_1.Writer();
|
|
70
|
-
if (this.mnemonic) {
|
|
60
|
+
if (this.mnemonic !== '') {
|
|
71
61
|
const buf = (0, utils_js_1.toArray)(this.mnemonic, 'utf8');
|
|
72
62
|
bw.writeVarIntNum(buf.length);
|
|
73
63
|
bw.write(buf);
|
|
@@ -75,7 +65,7 @@ class Mnemonic {
|
|
|
75
65
|
else {
|
|
76
66
|
bw.writeVarIntNum(0);
|
|
77
67
|
}
|
|
78
|
-
if (this.seed) {
|
|
68
|
+
if (this.seed.length > 0) {
|
|
79
69
|
bw.writeVarIntNum(this.seed.length);
|
|
80
70
|
bw.write(this.seed);
|
|
81
71
|
}
|
|
@@ -85,10 +75,10 @@ class Mnemonic {
|
|
|
85
75
|
return bw.toArray();
|
|
86
76
|
}
|
|
87
77
|
/**
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
78
|
+
* Loads a mnemonic and seed from a binary representation.
|
|
79
|
+
* @param {number[]} bin - The binary representation of a mnemonic and seed.
|
|
80
|
+
* @returns {this} The Mnemonic instance with loaded mnemonic and seed.
|
|
81
|
+
*/
|
|
92
82
|
fromBinary(bin) {
|
|
93
83
|
const br = new utils_js_1.Reader(bin);
|
|
94
84
|
const mnemoniclen = br.readVarIntNum();
|
|
@@ -102,13 +92,13 @@ class Mnemonic {
|
|
|
102
92
|
return this;
|
|
103
93
|
}
|
|
104
94
|
/**
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
95
|
+
* Generates a random mnemonic from a given bit length.
|
|
96
|
+
* @param {number} [bits=128] - The bit length for the random mnemonic (must be a multiple of 32 and at least 128).
|
|
97
|
+
* @returns {this} The Mnemonic instance with the new random mnemonic.
|
|
98
|
+
* @throws {Error} If the bit length is not a multiple of 32 or is less than 128.
|
|
99
|
+
*/
|
|
110
100
|
fromRandom(bits) {
|
|
111
|
-
if (
|
|
101
|
+
if (bits === undefined || bits === null || isNaN(bits) || bits === 0) {
|
|
112
102
|
bits = 128;
|
|
113
103
|
}
|
|
114
104
|
if (bits % 32 !== 0) {
|
|
@@ -123,76 +113,76 @@ class Mnemonic {
|
|
|
123
113
|
return this;
|
|
124
114
|
}
|
|
125
115
|
/**
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
116
|
+
* Static method to generate a Mnemonic instance with a random mnemonic.
|
|
117
|
+
* @param {number} [bits=128] - The bit length for the random mnemonic.
|
|
118
|
+
* @returns {Mnemonic} A new Mnemonic instance.
|
|
119
|
+
*/
|
|
130
120
|
static fromRandom(bits) {
|
|
131
121
|
return new this().fromRandom(bits);
|
|
132
122
|
}
|
|
133
123
|
/**
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
124
|
+
* Converts given entropy into a mnemonic phrase.
|
|
125
|
+
* This method is used to generate a mnemonic from a specific entropy source.
|
|
126
|
+
* @param {number[]} buf - The entropy buffer, must be at least 128 bits.
|
|
127
|
+
* @returns {this} The Mnemonic instance with the mnemonic set from the given entropy.
|
|
128
|
+
* @throws {Error} If the entropy is less than 128 bits.
|
|
129
|
+
*/
|
|
140
130
|
fromEntropy(buf) {
|
|
141
131
|
this.entropy2Mnemonic(buf);
|
|
142
132
|
return this;
|
|
143
133
|
}
|
|
144
134
|
/**
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
135
|
+
* Static method to create a Mnemonic instance from a given entropy.
|
|
136
|
+
* @param {number[]} buf - The entropy buffer.
|
|
137
|
+
* @returns {Mnemonic} A new Mnemonic instance.
|
|
138
|
+
*/
|
|
149
139
|
static fromEntropy(buf) {
|
|
150
140
|
return new this().fromEntropy(buf);
|
|
151
141
|
}
|
|
152
142
|
/**
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
143
|
+
* Sets the mnemonic for the instance from a string.
|
|
144
|
+
* @param {string} mnemonic - The mnemonic phrase as a string.
|
|
145
|
+
* @returns {this} The Mnemonic instance with the set mnemonic.
|
|
146
|
+
*/
|
|
157
147
|
fromString(mnemonic) {
|
|
158
148
|
this.mnemonic = mnemonic;
|
|
159
149
|
return this;
|
|
160
150
|
}
|
|
161
151
|
/**
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
152
|
+
* Static method to create a Mnemonic instance from a mnemonic string.
|
|
153
|
+
* @param {string} str - The mnemonic phrase.
|
|
154
|
+
* @returns {Mnemonic} A new Mnemonic instance.
|
|
155
|
+
*/
|
|
166
156
|
static fromString(str) {
|
|
167
157
|
return new this().fromString(str);
|
|
168
158
|
}
|
|
169
159
|
/**
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
160
|
+
* Converts the instance's mnemonic to a string representation.
|
|
161
|
+
* @returns {string} The mnemonic phrase as a string.
|
|
162
|
+
*/
|
|
173
163
|
toString() {
|
|
174
164
|
return this.mnemonic;
|
|
175
165
|
}
|
|
176
166
|
/**
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
167
|
+
* Converts the mnemonic to a seed.
|
|
168
|
+
* The mnemonic must pass the validity check before conversion.
|
|
169
|
+
* @param {string} [passphrase=''] - An optional passphrase for additional security.
|
|
170
|
+
* @returns {number[]} The generated seed.
|
|
171
|
+
* @throws {Error} If the mnemonic is invalid.
|
|
172
|
+
*/
|
|
183
173
|
toSeed(passphrase) {
|
|
184
174
|
this.mnemonic2Seed(passphrase);
|
|
185
175
|
return this.seed;
|
|
186
176
|
}
|
|
187
177
|
/**
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
178
|
+
* Converts entropy to a mnemonic phrase.
|
|
179
|
+
* This method takes a buffer of entropy and converts it into a corresponding
|
|
180
|
+
* mnemonic phrase based on the Mnemonic wordlist. The entropy should be at least 128 bits.
|
|
181
|
+
* The method applies a checksum and maps the entropy to words in the wordlist.
|
|
182
|
+
* @param {number[]} buf - The entropy buffer to convert. Must be at least 128 bits.
|
|
183
|
+
* @returns {this} The Mnemonic instance with the mnemonic set from the entropy.
|
|
184
|
+
* @throws {Error} If the entropy is less than 128 bits or if it's not an even multiple of 11 bits.
|
|
185
|
+
*/
|
|
196
186
|
entropy2Mnemonic(buf) {
|
|
197
187
|
if (buf.length < 128 / 8) {
|
|
198
188
|
throw new Error('Entropy is less than 128 bits. It must be 128 bits or more.');
|
|
@@ -207,7 +197,8 @@ class Mnemonic {
|
|
|
207
197
|
hashbits = ('00000000' + hashbits).slice(-8).slice(0, bits / 32);
|
|
208
198
|
bin = bin + hashbits;
|
|
209
199
|
if (bin.length % 11 !== 0) {
|
|
210
|
-
throw new Error('internal error - entropy not an even multiple of 11 bits - ' +
|
|
200
|
+
throw new Error('internal error - entropy not an even multiple of 11 bits - ' +
|
|
201
|
+
bin.length.toString());
|
|
211
202
|
}
|
|
212
203
|
let mnemonic = '';
|
|
213
204
|
for (let i = 0; i < bin.length / 11; i++) {
|
|
@@ -221,11 +212,11 @@ class Mnemonic {
|
|
|
221
212
|
return this;
|
|
222
213
|
}
|
|
223
214
|
/**
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
215
|
+
* Validates the mnemonic phrase.
|
|
216
|
+
* Checks for correct length, absence of invalid words, and proper checksum.
|
|
217
|
+
* @returns {boolean} True if the mnemonic is valid, false otherwise.
|
|
218
|
+
* @throws {Error} If the mnemonic is not an even multiple of 11 bits.
|
|
219
|
+
*/
|
|
229
220
|
check() {
|
|
230
221
|
const mnemonic = this.mnemonic;
|
|
231
222
|
// confirm no invalid words
|
|
@@ -239,7 +230,8 @@ class Mnemonic {
|
|
|
239
230
|
bin = bin + ('00000000000' + ind.toString(2)).slice(-11);
|
|
240
231
|
}
|
|
241
232
|
if (bin.length % 11 !== 0) {
|
|
242
|
-
throw new Error('internal error - entropy not an even multiple of 11 bits - ' +
|
|
233
|
+
throw new Error('internal error - entropy not an even multiple of 11 bits - ' +
|
|
234
|
+
bin.length.toString());
|
|
243
235
|
}
|
|
244
236
|
// confirm checksum
|
|
245
237
|
const cs = bin.length / 33;
|
|
@@ -255,14 +247,14 @@ class Mnemonic {
|
|
|
255
247
|
return expectedHashBits === hashBits;
|
|
256
248
|
}
|
|
257
249
|
/**
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
250
|
+
* Converts a mnemonic to a seed.
|
|
251
|
+
* This method takes the instance's mnemonic phrase, combines it with a passphrase (if provided),
|
|
252
|
+
* and uses PBKDF2 to generate a seed. It also validates the mnemonic before conversion.
|
|
253
|
+
* This seed can then be used for generating deterministic keys.
|
|
254
|
+
* @param {string} [passphrase=''] - An optional passphrase for added security.
|
|
255
|
+
* @returns {this} The Mnemonic instance with the seed generated from the mnemonic.
|
|
256
|
+
* @throws {Error} If the mnemonic does not pass validation or if the passphrase is not a string.
|
|
257
|
+
*/
|
|
266
258
|
mnemonic2Seed(passphrase = '') {
|
|
267
259
|
let mnemonic = this.mnemonic;
|
|
268
260
|
if (!this.check()) {
|
|
@@ -274,32 +266,36 @@ class Mnemonic {
|
|
|
274
266
|
mnemonic = mnemonic.normalize('NFKD');
|
|
275
267
|
passphrase = passphrase.normalize('NFKD');
|
|
276
268
|
const mbuf = (0, utils_js_1.toArray)(mnemonic, 'utf8');
|
|
277
|
-
const pbuf = [
|
|
269
|
+
const pbuf = [
|
|
270
|
+
...(0, utils_js_1.toArray)('mnemonic', 'utf8'),
|
|
271
|
+
...(0, utils_js_1.toArray)(passphrase, 'utf8')
|
|
272
|
+
];
|
|
278
273
|
this.seed = Hash.pbkdf2(mbuf, pbuf, 2048, 64, 'sha512');
|
|
279
274
|
return this;
|
|
280
275
|
}
|
|
281
276
|
/**
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
277
|
+
* Determines the validity of a given passphrase with the mnemonic.
|
|
278
|
+
* This method is useful for checking if a passphrase matches with the mnemonic.
|
|
279
|
+
* @param {string} [passphrase=''] - The passphrase to validate.
|
|
280
|
+
* @returns {boolean} True if the mnemonic and passphrase combination is valid, false otherwise.
|
|
281
|
+
*/
|
|
287
282
|
isValid(passphrase = '') {
|
|
288
283
|
let isValid;
|
|
289
284
|
try {
|
|
290
|
-
|
|
285
|
+
this.mnemonic2Seed(passphrase);
|
|
286
|
+
isValid = true;
|
|
291
287
|
}
|
|
292
|
-
catch
|
|
288
|
+
catch {
|
|
293
289
|
isValid = false;
|
|
294
290
|
}
|
|
295
291
|
return isValid;
|
|
296
292
|
}
|
|
297
293
|
/**
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
294
|
+
* Static method to check the validity of a given mnemonic and passphrase combination.
|
|
295
|
+
* @param {string} mnemonic - The mnemonic phrase.
|
|
296
|
+
* @param {string} [passphrase=''] - The passphrase to validate.
|
|
297
|
+
* @returns {boolean} True if the combination is valid, false otherwise.
|
|
298
|
+
*/
|
|
303
299
|
static isValid(mnemonic, passphrase = '') {
|
|
304
300
|
return new Mnemonic(mnemonic).isValid(passphrase);
|
|
305
301
|
}
|