@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
|
@@ -34,18 +34,24 @@ export class KeyShares {
|
|
|
34
34
|
let integrity = '';
|
|
35
35
|
const points = shares.map((share, idx) => {
|
|
36
36
|
const shareParts = share.split('.');
|
|
37
|
-
if (shareParts.length !== 4)
|
|
38
|
-
throw Error('Invalid share format in share ' +
|
|
37
|
+
if (shareParts.length !== 4) {
|
|
38
|
+
throw new Error('Invalid share format in share ' +
|
|
39
|
+
idx.toString() +
|
|
40
|
+
'. Expected format: "x.y.t.i" - received ' +
|
|
41
|
+
share);
|
|
42
|
+
}
|
|
39
43
|
const [x, y, t, i] = shareParts;
|
|
40
|
-
if (
|
|
41
|
-
throw Error('Threshold not found in share ' + idx);
|
|
42
|
-
if (
|
|
43
|
-
throw Error('Integrity not found in share ' + idx);
|
|
44
|
+
if (t === undefined)
|
|
45
|
+
throw new Error('Threshold not found in share ' + idx.toString());
|
|
46
|
+
if (i === undefined)
|
|
47
|
+
throw new Error('Integrity not found in share ' + idx.toString());
|
|
44
48
|
const tInt = parseInt(t);
|
|
45
|
-
if (idx !== 0 && threshold !== tInt)
|
|
46
|
-
throw Error('Threshold mismatch in share ' + idx);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
+
if (idx !== 0 && threshold !== tInt) {
|
|
50
|
+
throw new Error('Threshold mismatch in share ' + idx.toString());
|
|
51
|
+
}
|
|
52
|
+
if (idx !== 0 && integrity !== i) {
|
|
53
|
+
throw new Error('Integrity mismatch in share ' + idx.toString());
|
|
54
|
+
}
|
|
49
55
|
threshold = tInt;
|
|
50
56
|
integrity = i;
|
|
51
57
|
return PointInFiniteField.fromString([x, y].join('.'));
|
|
@@ -53,7 +59,7 @@ export class KeyShares {
|
|
|
53
59
|
return new KeyShares(points, threshold, integrity);
|
|
54
60
|
}
|
|
55
61
|
toBackupFormat() {
|
|
56
|
-
return this.points.map(share => share.toString() + '.' + this.threshold + '.' + this.integrity);
|
|
62
|
+
return this.points.map((share) => share.toString() + '.' + this.threshold.toString() + '.' + this.integrity);
|
|
57
63
|
}
|
|
58
64
|
}
|
|
59
65
|
/**
|
|
@@ -115,7 +121,7 @@ export default class PrivateKey extends BigNumber {
|
|
|
115
121
|
* @throws Will throw an error if the string is not a valid WIF.
|
|
116
122
|
**/
|
|
117
123
|
static fromWif(wif, prefixLength = 1) {
|
|
118
|
-
const decoded = fromBase58Check(wif,
|
|
124
|
+
const decoded = fromBase58Check(wif, undefined, prefixLength);
|
|
119
125
|
if (decoded.data.length !== 33) {
|
|
120
126
|
throw new Error('Invalid WIF length');
|
|
121
127
|
}
|
|
@@ -133,7 +139,7 @@ export default class PrivateKey extends BigNumber {
|
|
|
133
139
|
*
|
|
134
140
|
* @param endian - The endianness provided. By default is 'big endian'. Ignored if number is BigNumber.
|
|
135
141
|
*
|
|
136
|
-
* @param modN - Optional. Default 'apply. If 'apply', apply modN to input to guarantee a valid PrivateKey. If 'error', if input is out of field throw Error('Input is out of field'). If 'nocheck', assumes input is in field.
|
|
142
|
+
* @param modN - Optional. Default 'apply. If 'apply', apply modN to input to guarantee a valid PrivateKey. If 'error', if input is out of field throw new Error('Input is out of field'). If 'nocheck', assumes input is in field.
|
|
137
143
|
*
|
|
138
144
|
* @example
|
|
139
145
|
* import PrivateKey from './PrivateKey';
|
|
@@ -340,14 +346,16 @@ export default class PrivateKey extends BigNumber {
|
|
|
340
346
|
* const shares = key.toKeyShares(2, 5)
|
|
341
347
|
*/
|
|
342
348
|
toKeyShares(threshold, totalShares) {
|
|
343
|
-
if (typeof threshold !== 'number' || typeof totalShares !== 'number')
|
|
349
|
+
if (typeof threshold !== 'number' || typeof totalShares !== 'number') {
|
|
344
350
|
throw new Error('threshold and totalShares must be numbers');
|
|
351
|
+
}
|
|
345
352
|
if (threshold < 2)
|
|
346
353
|
throw new Error('threshold must be at least 2');
|
|
347
354
|
if (totalShares < 2)
|
|
348
355
|
throw new Error('totalShares must be at least 2');
|
|
349
|
-
if (threshold > totalShares)
|
|
356
|
+
if (threshold > totalShares) {
|
|
350
357
|
throw new Error('threshold should be less than or equal to totalShares');
|
|
358
|
+
}
|
|
351
359
|
const poly = Polynomial.fromPrivateKey(this, threshold);
|
|
352
360
|
const points = [];
|
|
353
361
|
for (let i = 0; i < totalShares; i++) {
|
|
@@ -403,8 +411,9 @@ export default class PrivateKey extends BigNumber {
|
|
|
403
411
|
const { points, threshold, integrity } = keyShares;
|
|
404
412
|
if (threshold < 2)
|
|
405
413
|
throw new Error('threshold must be at least 2');
|
|
406
|
-
if (points.length < threshold)
|
|
414
|
+
if (points.length < threshold) {
|
|
407
415
|
throw new Error(`At least ${threshold} shares are required to reconstruct the private key`);
|
|
416
|
+
}
|
|
408
417
|
// check to see if two points have the same x value
|
|
409
418
|
for (let i = 0; i < threshold; i++) {
|
|
410
419
|
for (let j = i + 1; j < threshold; j++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrivateKey.js","sourceRoot":"","sources":["../../../../src/primitives/PrivateKey.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAEtC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AAEtC,OAAO,KAAK,MAAM,YAAY,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"PrivateKey.js","sourceRoot":"","sources":["../../../../src/primitives/PrivateKey.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublicKey.js","sourceRoot":"","sources":["../../../../src/primitives/PublicKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAA;AAE9B,OAAO,KAAK,MAAM,YAAY,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAE1D;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK;IAC1C;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,cAAc,CAAE,GAAe;QACpC,MAAM,CAAC,GAAG,IAAI,KAAK,EAAE,CAAA;QACrB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACtB,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,UAAU,CAAE,GAAW;QAC5B,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC/B,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,OAAO,CAAE,KAAe;QAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC9B,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;IAED;;;;;;;;;OASG;IACH,YACE,CAAwD,EACxD,IAAmD,IAAI,EACvD,QAAiB,IAAI;QAErB,IAAI,CAAC,YAAY,KAAK,EAAE
|
|
1
|
+
{"version":3,"file":"PublicKey.js","sourceRoot":"","sources":["../../../../src/primitives/PublicKey.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,33 @@
|
|
|
1
1
|
class Rand {
|
|
2
|
-
_rand;
|
|
2
|
+
_rand; // ✅ Explicit function type
|
|
3
3
|
constructor() {
|
|
4
4
|
const noRand = () => {
|
|
5
5
|
throw new Error('No secure random number generator is available in this environment.');
|
|
6
6
|
};
|
|
7
|
+
this._rand = noRand; // Assign the function
|
|
7
8
|
if (typeof self === 'object') {
|
|
8
9
|
/* eslint-disable-next-line */
|
|
9
10
|
if (self.crypto?.getRandomValues) {
|
|
10
|
-
this._rand = n => {
|
|
11
|
+
this._rand = (n) => {
|
|
11
12
|
const arr = new Uint8Array(n);
|
|
12
13
|
/* eslint-disable-next-line */
|
|
13
14
|
self.crypto.getRandomValues(arr);
|
|
14
15
|
return [...arr];
|
|
15
16
|
};
|
|
16
|
-
}
|
|
17
|
-
else
|
|
17
|
+
} /* if (typeof window === 'object') */
|
|
18
|
+
else {
|
|
18
19
|
this._rand = noRand;
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
else {
|
|
22
23
|
try {
|
|
23
24
|
/* eslint-disable-next-line */
|
|
24
|
-
const crypto = require(
|
|
25
|
+
const crypto = require("crypto");
|
|
25
26
|
if (typeof crypto.randomBytes === 'function') {
|
|
26
27
|
this._rand = (n) => [...crypto.randomBytes(n)];
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
|
-
catch
|
|
30
|
+
catch {
|
|
30
31
|
this._rand = noRand;
|
|
31
32
|
}
|
|
32
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Random.js","sourceRoot":"","sources":["../../../../src/primitives/Random.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI;IACR,KAAK,
|
|
1
|
+
{"version":3,"file":"Random.js","sourceRoot":"","sources":["../../../../src/primitives/Random.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI;IACR,KAAK,CAAyB,CAAC,2BAA2B;IAE1D;QACE,MAAM,MAAM,GAAG,GAAU,EAAE;YACzB,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAA;QACH,CAAC,CAAA;QAED,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA,CAAC,sBAAsB;QAE1C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,8BAA8B;YAC9B,IAAI,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE;gBAChC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE;oBACjB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;oBAC7B,8BAA8B;oBAC9B,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;oBACjC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAA;gBACjB,CAAC,CAAA;aACF,CAAC,qCAAqC;iBAAM;gBAC3C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;aACpB;SACF;aAAM;YACL,IAAI;gBACF,8BAA8B;gBAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACjC,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU,EAAE;oBAC5C,IAAI,CAAC,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;iBACvD;aACF;YAAC,MAAM;gBACN,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;aACpB;SACF;IACH,CAAC;IAED,QAAQ,CAAE,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;CACF;AAED,IAAI,GAAG,GAAgB,IAAI,CAAA;AAE3B;;;;;;;;;;GAUG;AACH,eAAe,CAAC,GAAW,EAAY,EAAE;IACvC,IAAI,GAAG,IAAI,IAAI,EAAE;QACf,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;KACjB;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC,CAAA"}
|
|
@@ -81,7 +81,7 @@ export default class ReductionContext {
|
|
|
81
81
|
*/
|
|
82
82
|
verify2(a, b) {
|
|
83
83
|
this.assert((a.negative | b.negative) === 0, 'red works only with positives');
|
|
84
|
-
this.assert(
|
|
84
|
+
this.assert(a.red != null && a.red === b.red, 'red works only with red numbers');
|
|
85
85
|
}
|
|
86
86
|
/**
|
|
87
87
|
* Performs an in-place reduction of the given BigNumber by the modulus of the reduction context, 'm'.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReductionContext.js","sourceRoot":"","sources":["../../../../src/primitives/ReductionContext.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,KAAK,CAAiB;IACtB,CAAC,CAAW;IAEZ;;;;;;;;;OASG;IACH,YAAa,CAAqB;QAChC,IAAI,CAAC,KAAK,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"ReductionContext.js","sourceRoot":"","sources":["../../../../src/primitives/ReductionContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,13 +38,13 @@ export default class Schnorr {
|
|
|
38
38
|
this.curve = new Curve();
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
* Generates a proof that demonstrates the link between public key A and shared secret S
|
|
42
|
+
* @param a Private key corresponding to public key A
|
|
43
|
+
* @param A Public key
|
|
44
|
+
* @param B Other party's public key
|
|
45
|
+
* @param S Shared secret
|
|
46
|
+
* @returns Proof (R, S', z)
|
|
47
|
+
*/
|
|
48
48
|
generateProof(aArg, AArg, BArg, S) {
|
|
49
49
|
const r = PrivateKey.fromRandom();
|
|
50
50
|
const R = r.toPublicKey();
|
|
@@ -54,13 +54,13 @@ export default class Schnorr {
|
|
|
54
54
|
return { R, SPrime, z };
|
|
55
55
|
}
|
|
56
56
|
/**
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
57
|
+
* Verifies the proof of the link between public key A and shared secret S
|
|
58
|
+
* @param A Public key
|
|
59
|
+
* @param B Other party's public key
|
|
60
|
+
* @param S Shared secret
|
|
61
|
+
* @param proof Proof (R, S', z)
|
|
62
|
+
* @returns True if the proof is valid, false otherwise
|
|
63
|
+
*/
|
|
64
64
|
verifyProof(A, B, S, proof) {
|
|
65
65
|
const { R, SPrime, z } = proof;
|
|
66
66
|
const e = this.computeChallenge(A, B, S, SPrime, R);
|
|
@@ -79,7 +79,13 @@ export default class Schnorr {
|
|
|
79
79
|
return true;
|
|
80
80
|
}
|
|
81
81
|
computeChallenge(A, B, S, SPrime, R) {
|
|
82
|
-
const message = [
|
|
82
|
+
const message = [
|
|
83
|
+
...A.encode(true),
|
|
84
|
+
...B.encode(true),
|
|
85
|
+
...S.encode(true),
|
|
86
|
+
...SPrime.encode(true),
|
|
87
|
+
...R.encode(true)
|
|
88
|
+
];
|
|
83
89
|
const hash = sha256(message);
|
|
84
90
|
return new BigNumber(hash).umod(this.curve.n);
|
|
85
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schnorr.js","sourceRoot":"","sources":["../../../../src/primitives/Schnorr.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,KAAK,MAAM,YAAY,CAAA;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,UAAU,EAAa,MAAM,YAAY,CAAA;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IACT,KAAK,CAAO;IAE7B;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED;;;;;;;
|
|
1
|
+
{"version":3,"file":"Schnorr.js","sourceRoot":"","sources":["../../../../src/primitives/Schnorr.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,KAAK,MAAM,YAAY,CAAA;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,UAAU,EAAa,MAAM,YAAY,CAAA;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IACT,KAAK,CAAO;IAE7B;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CACX,IAAgB,EAChB,IAAe,EACf,IAAe,EACf,CAAQ;QAER,MAAM,CAAC,GAAG,UAAU,CAAC,UAAU,EAAE,CAAA;QACjC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QACzD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,WAAW,CACT,CAAQ,EACR,CAAQ,EACR,CAAQ,EACR,KAAgD;QAEhD,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK,CAAA;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QAEnD,oBAAoB;QACpB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;YACnB,OAAO,KAAK,CAAA;SACb;QAED,qBAAqB;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACrC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;YACpB,OAAO,KAAK,CAAA;SACb;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,gBAAgB,CACtB,CAAQ,EACR,CAAQ,EACR,CAAQ,EACR,MAAa,EACb,CAAQ;QAER,MAAM,OAAO,GAAG;YACd,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YACjB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YACjB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YACjB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SACN,CAAA;QACb,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC5B,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;CACF"}
|
|
@@ -60,7 +60,7 @@ export default class Signature {
|
|
|
60
60
|
throw new Error('Signature DER must start with 0x30');
|
|
61
61
|
}
|
|
62
62
|
const len = getLength(data, p);
|
|
63
|
-
if (
|
|
63
|
+
if (len + p.place !== data.length) {
|
|
64
64
|
throw new Error('Signature DER invalid');
|
|
65
65
|
}
|
|
66
66
|
if (data[p.place++] !== 0x02) {
|
|
@@ -205,7 +205,7 @@ export default class Signature {
|
|
|
205
205
|
const rmPadding = (buf) => {
|
|
206
206
|
let i = 0;
|
|
207
207
|
const len = buf.length - 1;
|
|
208
|
-
while (
|
|
208
|
+
while (buf[i] === 0 && (buf[i + 1] & 0x80) === 0 && i < len) {
|
|
209
209
|
i++;
|
|
210
210
|
}
|
|
211
211
|
if (i === 0) {
|
|
@@ -225,7 +225,7 @@ export default class Signature {
|
|
|
225
225
|
}
|
|
226
226
|
r = rmPadding(r);
|
|
227
227
|
s = rmPadding(s);
|
|
228
|
-
while (
|
|
228
|
+
while (s[0] === 0 && (s[1] & 0x80) === 0) {
|
|
229
229
|
s = s.slice(1);
|
|
230
230
|
}
|
|
231
231
|
let arr = [0x02];
|
|
@@ -264,8 +264,9 @@ export default class Signature {
|
|
|
264
264
|
toCompact(recovery, compressed, enc) {
|
|
265
265
|
if (recovery < 0 || recovery > 3)
|
|
266
266
|
throw new Error('Invalid recovery param');
|
|
267
|
-
if (typeof compressed !== 'boolean')
|
|
267
|
+
if (typeof compressed !== 'boolean') {
|
|
268
268
|
throw new Error('Invalid compressed param');
|
|
269
|
+
}
|
|
269
270
|
let compactByte = 27 + recovery;
|
|
270
271
|
if (compressed) {
|
|
271
272
|
compactByte += 4;
|
|
@@ -300,7 +301,7 @@ export default class Signature {
|
|
|
300
301
|
const r = this.r;
|
|
301
302
|
const s = this.s;
|
|
302
303
|
// A set LSB signifies that the y-coordinate is odd
|
|
303
|
-
const isYOdd =
|
|
304
|
+
const isYOdd = (recovery & 1) !== 0;
|
|
304
305
|
// The more significant bit specifies whether we should use the
|
|
305
306
|
// first or second candidate key.
|
|
306
307
|
const isSecondKey = recovery >> 1;
|
|
@@ -308,7 +309,7 @@ export default class Signature {
|
|
|
308
309
|
const n = curve.n;
|
|
309
310
|
const G = curve.g;
|
|
310
311
|
// 1.1 LEt x = r + jn
|
|
311
|
-
const x = isSecondKey ? r.add(n) : r;
|
|
312
|
+
const x = isSecondKey !== 0 ? r.add(n) : r;
|
|
312
313
|
const R = Point.fromX(x, isYOdd);
|
|
313
314
|
// 1.4 Check that nR is at infinity
|
|
314
315
|
const nR = R.mul(n);
|
|
@@ -347,7 +348,7 @@ export default class Signature {
|
|
|
347
348
|
try {
|
|
348
349
|
Qprime = this.RecoverPublicKey(recovery, msgHash);
|
|
349
350
|
}
|
|
350
|
-
catch
|
|
351
|
+
catch {
|
|
351
352
|
continue;
|
|
352
353
|
}
|
|
353
354
|
if (pubkey.eq(Qprime)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Signature.js","sourceRoot":"","sources":["../../../../src/primitives/Signature.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,KAAK,MAAM,YAAY,CAAA;AAC9B,OAAO,KAAK,MAAM,YAAY,CAAA;AAE9B;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAC5B;;OAEG;IACH,CAAC,CAAW;IAEZ;;OAEG;IACH,CAAC,CAAW;IAEZ;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,OAAO,CAAE,IAAuB,EAAE,GAAsB;QAC7D,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC,EAAU,EAAE;YACnC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE
|
|
1
|
+
{"version":3,"file":"Signature.js","sourceRoot":"","sources":["../../../../src/primitives/Signature.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,19 +25,19 @@ export default class SymmetricKey extends BigNumber {
|
|
|
25
25
|
return new SymmetricKey(Random(32));
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
* Encrypts a given message using AES-GCM encryption.
|
|
29
|
+
* The generated Initialization Vector (IV) is attached to the encrypted message for decryption purposes.
|
|
30
|
+
* The OpenSSL format of |IV|encryptedContent|authTag| is used.
|
|
31
|
+
*
|
|
32
|
+
* @method encrypt
|
|
33
|
+
* @param msg - The message to be encrypted. It can be a string or an array of numbers.
|
|
34
|
+
* @param enc - optional. The encoding of the message. If hex, the string is assumed to be hex, UTF-8 otherwise.
|
|
35
|
+
* @returns Returns the encrypted message as a string or an array of numbers, depending on `enc` argument.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* const key = new SymmetricKey(1234);
|
|
39
|
+
* const encryptedMessage = key.encrypt('plainText', 'utf8');
|
|
40
|
+
*/
|
|
41
41
|
encrypt(msg, enc) {
|
|
42
42
|
const iv = Random(32);
|
|
43
43
|
msg = toArray(msg, enc);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SymmetricKey.js","sourceRoot":"","sources":["../../../../src/primitives/SymmetricKey.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5C;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS;IACjD;;;;;;;;;OASG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IACrC,CAAC;IAED;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"SymmetricKey.js","sourceRoot":"","sources":["../../../../src/primitives/SymmetricKey.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5C;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS;IACjD;;;;;;;;;OASG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IACrC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAE,GAAsB,EAAE,GAAW;QAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;QACrB,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACvB,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAC1C,GAAG,EACH,EAAE,EACF,EAAE,EACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACvB,CAAA;QACD,OAAO,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,iBAAiB,CAAC,EAAE,GAAG,CAAC,CAAA;IAC9D,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAE,GAAsB,EAAE,GAAoB;QACnD,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACvB,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC3B,MAAM,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACvC,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAA;QAC/C,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,aAAa,CAC1B,UAAU,EACV,EAAE,EACF,EAAE,EACF,UAAU,EACV,IAAI,CAAC,OAAO,EAAE,CACf,CAAA;QACD,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;SACtC;QACD,OAAO,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,CAAC;CACF"}
|
|
@@ -21,6 +21,9 @@ export default class TransactionSignature extends Signature {
|
|
|
21
21
|
const writer = new Writer();
|
|
22
22
|
for (const input of inputs) {
|
|
23
23
|
if (typeof input.sourceTXID === 'undefined') {
|
|
24
|
+
if (input.sourceTransaction == null) {
|
|
25
|
+
throw new Error('Missing sourceTransaction for input');
|
|
26
|
+
}
|
|
24
27
|
writer.write(input.sourceTransaction.hash());
|
|
25
28
|
}
|
|
26
29
|
else {
|
|
@@ -35,7 +38,8 @@ export default class TransactionSignature extends Signature {
|
|
|
35
38
|
const getSequenceHash = () => {
|
|
36
39
|
const writer = new Writer();
|
|
37
40
|
for (const input of inputs) {
|
|
38
|
-
|
|
41
|
+
const sequence = input.sequence ?? 0xffffffff; // Default to max sequence number
|
|
42
|
+
writer.writeUInt32LE(sequence);
|
|
39
43
|
}
|
|
40
44
|
const buf = writer.toArray();
|
|
41
45
|
const ret = Hash.hash256(buf);
|
|
@@ -44,18 +48,22 @@ export default class TransactionSignature extends Signature {
|
|
|
44
48
|
function getOutputsHash(outputIndex) {
|
|
45
49
|
const writer = new Writer();
|
|
46
50
|
if (typeof outputIndex === 'undefined') {
|
|
47
|
-
let script;
|
|
48
51
|
for (const output of params.outputs) {
|
|
49
|
-
|
|
50
|
-
|
|
52
|
+
const satoshis = output.satoshis ?? 0; // Default to 0 if undefined
|
|
53
|
+
writer.writeUInt64LE(satoshis);
|
|
54
|
+
const script = output.lockingScript?.toBinary() ?? [];
|
|
51
55
|
writer.writeVarIntNum(script.length);
|
|
52
56
|
writer.write(script);
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
59
|
else {
|
|
56
60
|
const output = params.outputs[outputIndex];
|
|
57
|
-
|
|
58
|
-
|
|
61
|
+
if (output === undefined) { // ✅ Explicitly check for undefined
|
|
62
|
+
throw new Error(`Output at index ${outputIndex} does not exist`);
|
|
63
|
+
}
|
|
64
|
+
const satoshis = output.satoshis ?? 0; // Default to 0 if undefined
|
|
65
|
+
writer.writeUInt64LE(satoshis);
|
|
66
|
+
const script = output.lockingScript?.toBinary() ?? [];
|
|
59
67
|
writer.writeVarIntNum(script.length);
|
|
60
68
|
writer.write(script);
|
|
61
69
|
}
|
|
@@ -74,10 +82,12 @@ export default class TransactionSignature extends Signature {
|
|
|
74
82
|
(params.scope & 31) !== TransactionSignature.SIGHASH_NONE) {
|
|
75
83
|
hashSequence = getSequenceHash();
|
|
76
84
|
}
|
|
77
|
-
if ((params.scope & 31) !== TransactionSignature.SIGHASH_SINGLE &&
|
|
85
|
+
if ((params.scope & 31) !== TransactionSignature.SIGHASH_SINGLE &&
|
|
86
|
+
(params.scope & 31) !== TransactionSignature.SIGHASH_NONE) {
|
|
78
87
|
hashOutputs = getOutputsHash();
|
|
79
88
|
}
|
|
80
|
-
else if ((params.scope & 31) === TransactionSignature.SIGHASH_SINGLE &&
|
|
89
|
+
else if ((params.scope & 31) === TransactionSignature.SIGHASH_SINGLE &&
|
|
90
|
+
params.inputIndex < params.outputs.length) {
|
|
81
91
|
hashOutputs = getOutputsHash(params.inputIndex);
|
|
82
92
|
}
|
|
83
93
|
const writer = new Writer();
|
|
@@ -126,10 +136,10 @@ export default class TransactionSignature extends Signature {
|
|
|
126
136
|
this.scope = scope;
|
|
127
137
|
}
|
|
128
138
|
/**
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
139
|
+
* Compares to bitcoind's IsLowDERSignature
|
|
140
|
+
* See also Ecdsa signature algorithm which enforces this.
|
|
141
|
+
* See also Bip 62, "low S values in signatures"
|
|
142
|
+
*/
|
|
133
143
|
hasLowS() {
|
|
134
144
|
if (this.s.ltn(1) ||
|
|
135
145
|
this.s.gt(new BigNumber('7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0', 'hex'))) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionSignature.js","sourceRoot":"","sources":["../../../../src/primitives/TransactionSignature.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAK5C,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,SAAS;IAClD,MAAM,CAAU,WAAW,GAAG,UAAU,CAAA;IACxC,MAAM,CAAU,YAAY,GAAG,UAAU,CAAA;IACzC,MAAM,CAAU,cAAc,GAAG,UAAU,CAAA;IAC3C,MAAM,CAAU,cAAc,GAAG,UAAU,CAAA;IAC3C,MAAM,CAAU,oBAAoB,GAAG,UAAU,CAAA;IAExD,KAAK,CAAQ;IAEb,MAAM,CAAC,MAAM,CAAE,MAYd;QACC,MAAM,YAAY,GAAG;YACnB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,QAAQ,EAAE,MAAM,CAAC,aAAa;SAC/B,CAAA;QACD,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;QACtC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,YAAY,CAAC,CAAA;QAEjD,MAAM,cAAc,GAAG,GAAa,EAAE;YACpC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"TransactionSignature.js","sourceRoot":"","sources":["../../../../src/primitives/TransactionSignature.ts"],"names":[],"mappings":"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"}
|