@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
|
@@ -62,10 +62,7 @@ export default class Curve {
|
|
|
62
62
|
}
|
|
63
63
|
// Represent k1, k2 in a Joint Sparse Form
|
|
64
64
|
getJSF(k1, k2) {
|
|
65
|
-
const jsf = [
|
|
66
|
-
[],
|
|
67
|
-
[]
|
|
68
|
-
];
|
|
65
|
+
const jsf = [[], []];
|
|
69
66
|
k1 = k1.clone();
|
|
70
67
|
k2 = k2.clone();
|
|
71
68
|
let d1 = 0;
|
|
@@ -123,16 +120,12 @@ export default class Curve {
|
|
|
123
120
|
static cachedProperty(obj, name, computer) {
|
|
124
121
|
const key = '_' + name;
|
|
125
122
|
obj.prototype[name] = function cachedProperty() {
|
|
126
|
-
const r = this[key] !== undefined
|
|
127
|
-
? this[key]
|
|
128
|
-
: this[key] = computer.call(this);
|
|
123
|
+
const r = this[key] !== undefined ? this[key] : (this[key] = computer.call(this));
|
|
129
124
|
return r;
|
|
130
125
|
};
|
|
131
126
|
}
|
|
132
127
|
static parseBytes(bytes) {
|
|
133
|
-
return typeof bytes === 'string'
|
|
134
|
-
? toArray(bytes, 'hex')
|
|
135
|
-
: bytes;
|
|
128
|
+
return typeof bytes === 'string' ? toArray(bytes, 'hex') : bytes;
|
|
136
129
|
}
|
|
137
130
|
static intFromLE(bytes) {
|
|
138
131
|
return new BigNumber(bytes, 'hex', 'le');
|
|
@@ -992,6 +985,9 @@ export default class Curve {
|
|
|
992
985
|
}
|
|
993
986
|
else {
|
|
994
987
|
const betas = this._getEndoRoots(this.p);
|
|
988
|
+
if (betas === null) {
|
|
989
|
+
throw new Error('Failed to get endomorphism roots for beta.');
|
|
990
|
+
}
|
|
995
991
|
// Choose the smallest beta
|
|
996
992
|
beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];
|
|
997
993
|
beta = beta.toRed(this.red);
|
|
@@ -1000,14 +996,30 @@ export default class Curve {
|
|
|
1000
996
|
lambda = new BigNumber(conf.lambda, 16);
|
|
1001
997
|
}
|
|
1002
998
|
else {
|
|
1003
|
-
// Choose the lambda that
|
|
999
|
+
// Choose the lambda that matches selected beta
|
|
1004
1000
|
const lambdas = this._getEndoRoots(this.n);
|
|
1005
|
-
if (
|
|
1001
|
+
if (lambdas === null) {
|
|
1002
|
+
throw new Error('Failed to get endomorphism roots for lambda.');
|
|
1003
|
+
}
|
|
1004
|
+
if (this.g == null) {
|
|
1005
|
+
throw new Error('Curve generator point (g) is not defined.');
|
|
1006
|
+
}
|
|
1007
|
+
const gMulX = this.g.mul(lambdas[0])?.x;
|
|
1008
|
+
const gXRedMulBeta = (this.g.x != null) ? this.g.x.redMul(beta) : undefined;
|
|
1009
|
+
if ((gMulX != null) && (gXRedMulBeta != null) && gMulX.cmp(gXRedMulBeta) === 0) {
|
|
1006
1010
|
lambda = lambdas[0];
|
|
1007
1011
|
}
|
|
1008
1012
|
else {
|
|
1009
1013
|
lambda = lambdas[1];
|
|
1010
|
-
|
|
1014
|
+
if (this.g == null) {
|
|
1015
|
+
throw new Error('Curve generator point (g) is not defined.');
|
|
1016
|
+
}
|
|
1017
|
+
const gMulX = this.g.mul(lambda)?.x;
|
|
1018
|
+
const gXRedMulBeta = (this.g.x != null) ? this.g.x.redMul(beta) : undefined;
|
|
1019
|
+
if ((gMulX == null) || (gXRedMulBeta == null)) {
|
|
1020
|
+
throw new Error('Lambda computation failed: g.mul(lambda).x or g.x.redMul(beta) is undefined.');
|
|
1021
|
+
}
|
|
1022
|
+
Curve.assert(gMulX.cmp(gXRedMulBeta) === 0, 'Lambda selection does not match computed beta.');
|
|
1011
1023
|
}
|
|
1012
1024
|
}
|
|
1013
1025
|
// Get basis vectors, used for balanced length-two representation
|
|
@@ -1029,7 +1041,6 @@ export default class Curve {
|
|
|
1029
1041
|
basis
|
|
1030
1042
|
};
|
|
1031
1043
|
}
|
|
1032
|
-
;
|
|
1033
1044
|
_getEndoRoots(num) {
|
|
1034
1045
|
// Find roots of for x^2 + x + 1 in F
|
|
1035
1046
|
// Root = (-1 +- Sqrt(-3)) / 2
|
|
@@ -1042,7 +1053,6 @@ export default class Curve {
|
|
|
1042
1053
|
const l2 = ntinv.redSub(s).fromRed();
|
|
1043
1054
|
return [l1, l2];
|
|
1044
1055
|
}
|
|
1045
|
-
;
|
|
1046
1056
|
_getEndoBasis(lambda) {
|
|
1047
1057
|
// aprxSqrt >= sqrt(this.n)
|
|
1048
1058
|
const aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));
|
|
@@ -1063,22 +1073,22 @@ export default class Curve {
|
|
|
1063
1073
|
// Second vector
|
|
1064
1074
|
let a2;
|
|
1065
1075
|
let b2;
|
|
1066
|
-
let prevR;
|
|
1076
|
+
let prevR = new BigNumber(0);
|
|
1067
1077
|
let i = 0;
|
|
1068
|
-
let r;
|
|
1069
|
-
let x;
|
|
1078
|
+
let r = new BigNumber(0);
|
|
1079
|
+
let x = new BigNumber(0); // Ensure x is initialized
|
|
1070
1080
|
while (u.cmpn(0) !== 0) {
|
|
1071
1081
|
const q = v.div(u);
|
|
1072
1082
|
r = v.sub(q.mul(u));
|
|
1073
|
-
x = x2.sub(q.mul(x1));
|
|
1083
|
+
x = x2.sub(q.mul(x1)); // Now TypeScript knows x is always assigned
|
|
1074
1084
|
const y = y2.sub(q.mul(y1));
|
|
1075
|
-
if (
|
|
1085
|
+
if (a1 === undefined && r.cmp(aprxSqrt) < 0) {
|
|
1076
1086
|
a0 = prevR.neg();
|
|
1077
1087
|
b0 = x1;
|
|
1078
1088
|
a1 = r.neg();
|
|
1079
1089
|
b1 = x;
|
|
1080
1090
|
}
|
|
1081
|
-
else if (
|
|
1091
|
+
else if (a1 !== undefined && ++i === 2) {
|
|
1082
1092
|
break;
|
|
1083
1093
|
}
|
|
1084
1094
|
prevR = r;
|
|
@@ -1089,6 +1099,13 @@ export default class Curve {
|
|
|
1089
1099
|
y2 = y1;
|
|
1090
1100
|
y1 = y;
|
|
1091
1101
|
}
|
|
1102
|
+
// Ensure a0 and b0 have been assigned
|
|
1103
|
+
if (a0 === undefined ||
|
|
1104
|
+
b0 === undefined ||
|
|
1105
|
+
a1 === undefined ||
|
|
1106
|
+
b1 === undefined) {
|
|
1107
|
+
throw new Error('Failed to compute Endo Basis values');
|
|
1108
|
+
}
|
|
1092
1109
|
a2 = r.neg();
|
|
1093
1110
|
b2 = x;
|
|
1094
1111
|
const len1 = a1.sqr().add(b1.sqr());
|
|
@@ -1112,6 +1129,9 @@ export default class Curve {
|
|
|
1112
1129
|
];
|
|
1113
1130
|
}
|
|
1114
1131
|
_endoSplit(k) {
|
|
1132
|
+
if (this.endo == null) {
|
|
1133
|
+
throw new Error('Endomorphism is not defined.');
|
|
1134
|
+
}
|
|
1115
1135
|
const basis = this.endo.basis;
|
|
1116
1136
|
const v1 = basis[0];
|
|
1117
1137
|
const v2 = basis[1];
|
|
@@ -1132,10 +1152,13 @@ export default class Curve {
|
|
|
1132
1152
|
}
|
|
1133
1153
|
const x = point.x;
|
|
1134
1154
|
const y = point.y;
|
|
1155
|
+
// Ensure x and y are not null before proceeding
|
|
1156
|
+
if (x === null || y === null) {
|
|
1157
|
+
throw new Error('Point coordinates cannot be null');
|
|
1158
|
+
}
|
|
1135
1159
|
const ax = this.a.redMul(x);
|
|
1136
1160
|
const rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
|
|
1137
1161
|
return y.redSqr().redISub(rhs).cmpn(0) === 0;
|
|
1138
1162
|
}
|
|
1139
|
-
;
|
|
1140
1163
|
}
|
|
1141
1164
|
//# sourceMappingURL=Curve.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Curve.js","sourceRoot":"","sources":["../../../../src/primitives/Curve.ts"],"names":[],"mappings":"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E;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,gEAAgE;qBACjE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;iBACF;aACF;YACD,GAAG,EAAE;gBACH,GAAG,EAAE,CAAC;gBACN,MAAM,EAAE;oBACN;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,gEAAgE;wBAChE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;iBACF;aACF;SACF,CAAA;QACD,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,MAAM;YACb,CAAC,EAAE,yEAAyE;YAC5E,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,yEAAyE;YAC5E,CAAC,EAAE,GAAG;YAEN,2BAA2B;YAC3B,IAAI,EAAE,kEAAkE;YACxE,MAAM,EAAE,kEAAkE;YAC1E,KAAK,EAAE;gBACL;oBACE,CAAC,EAAE,kCAAkC;oBACrC,CAAC,EAAE,mCAAmC;iBACvC;gBACD;oBACE,CAAC,EAAE,mCAAmC;oBACtC,CAAC,EAAE,kCAAkC;iBACtC;aACF;YAED,IAAI,EAAE,KAAK;YACX,CAAC,EAAE;gBACD,kEAAkE;gBAClE,kEAAkE;gBAClE,WAAW;aACZ;SACF,CAAA;QAED,IAAI,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAElC,gEAAgE;QAChE,IAAI,CAAC,GAAG,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAe,CAAC,CAAA;QAErD,yBAAyB;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAE3C,gCAAgC;QAChC,IAAI,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAClC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAE1C,mBAAmB;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;QAE3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAClD,IAAI,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAClD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QAE9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAEzD,4DAA4D;QAC5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,gBAAgB,CAAE,IAAI;QAKpB,4BAA4B;QAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAAC,OAAM;QAAC,CAAC;QAEpD,6DAA6D;QAC7D,IAAI,IAAe,CAAA;QACnB,IAAI,MAAiB,CAAA;QACrB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrD,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxC,2BAA2B;YAC3B,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACvD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACzC,CAAC;aAAM,CAAC;YACN,mDAAmD;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC1C,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9D,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACrB,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;gBACnB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;YACrE,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,IAAI,KAA4C,CAAA;QAChD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1D,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG;gBAClC,OAAO;oBACL,CAAC,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;oBAC3B,CAAC,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;iBAC5B,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACpC,CAAC;QAED,OAAO;YACL,IAAI;YACJ,MAAM;YACN,KAAK;SACN,CAAA;IACH,CAAC;IAAA,CAAC;IAEF,aAAa,CAAE,GAAc;QAC3B,qCAAqC;QACrC,8BAA8B;QAC9B,EAAE;QACF,MAAM,GAAG,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAA;QACjE,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAA;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QAE3B,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAErE,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;QACpC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;QACpC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACjB,CAAC;IAAA,CAAC;IAEF,aAAa,CAAE,MAAiB;QAC9B,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;QAEjE,OAAO;QACP,sCAAsC;QACtC,IAAI,CAAC,GAAG,MAAM,CAAA;QACd,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;QACzB,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;QACzB,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;QACzB,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;QAEzB,6DAA6D;QAC7D,IAAI,EAAa,CAAA;QACjB,IAAI,EAAa,CAAA;QACjB,eAAe;QACf,IAAI,EAAa,CAAA;QACjB,IAAI,EAAa,CAAA;QACjB,gBAAgB;QAChB,IAAI,EAAa,CAAA;QACjB,IAAI,EAAa,CAAA;QAEjB,IAAI,KAAK,CAAA;QACT,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,IAAI,CAAC,CAAA;QACL,IAAI,CAAC,CAAA;QACL,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAClB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACnB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YACrB,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAE3B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClD,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;gBAChB,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;gBACZ,EAAE,GAAG,CAAC,CAAA;YACR,CAAC;iBAAM,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAK;YACP,CAAC;YACD,KAAK,GAAG,CAAC,CAAA;YAET,CAAC,GAAG,CAAC,CAAA;YACL,CAAC,GAAG,CAAC,CAAA;YACL,EAAE,GAAG,EAAE,CAAA;YACP,EAAE,GAAG,CAAC,CAAA;YACN,EAAE,GAAG,EAAE,CAAA;YACP,EAAE,GAAG,CAAC,CAAA;QACR,CAAC;QACD,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;QACZ,EAAE,GAAG,CAAC,CAAA;QAEN,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;QACnC,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;QACnC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,EAAE,GAAG,EAAE,CAAA;YACP,EAAE,GAAG,EAAE,CAAA;QACT,CAAC;QAED,kBAAkB;QAClB,IAAI,EAAE,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACtB,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;YACb,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;QACf,CAAC;QACD,IAAI,EAAE,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACtB,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;YACb,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;QACf,CAAC;QAED,OAAO;YACL,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;YAChB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;SACjB,CAAA;IACH,CAAC;IAED,UAAU,CAAE,CAAY;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA;QAC7B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACnB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAEnB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE7C,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAEvB,mBAAmB;QACnB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;QAC3B,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAA;IACnB,CAAC;IAED,QAAQ,CAAE,KAAY;QACpB,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YAAC,OAAO,IAAI,CAAA;QAAC,CAAC;QAE9B,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;QACjB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;QAEjB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5D,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC;IAAA,CAAC;CACH"}
|
|
1
|
+
{"version":3,"file":"Curve.js","sourceRoot":"","sources":["../../../../src/primitives/Curve.ts"],"names":[],"mappings":"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E;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,gEAAgE;qBACjE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;iBACF;aACF;YACD,GAAG,EAAE;gBACH,GAAG,EAAE,CAAC;gBACN,MAAM,EAAE;oBACN;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,gEAAgE;wBAChE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,iEAAiE;wBACjE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,iEAAiE;qBAClE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;oBACD;wBACE,kEAAkE;wBAClE,kEAAkE;qBACnE;iBACF;aACF;SACF,CAAA;QACD,MAAM,IAAI,GAAG;YACX,KAAK,EAAE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"}
|
|
@@ -55,9 +55,7 @@ export default class DRBG {
|
|
|
55
55
|
* drbg.update('e13af...');
|
|
56
56
|
*/
|
|
57
57
|
update(seed) {
|
|
58
|
-
let kmac = this.hmac()
|
|
59
|
-
.update(this.V)
|
|
60
|
-
.update([0x00]);
|
|
58
|
+
let kmac = this.hmac().update(this.V).update([0x00]);
|
|
61
59
|
if (seed !== undefined) {
|
|
62
60
|
kmac = kmac.update(seed);
|
|
63
61
|
}
|
|
@@ -66,11 +64,7 @@ export default class DRBG {
|
|
|
66
64
|
if (seed === undefined) {
|
|
67
65
|
return;
|
|
68
66
|
}
|
|
69
|
-
this.K = this.hmac()
|
|
70
|
-
.update(this.V)
|
|
71
|
-
.update([0x01])
|
|
72
|
-
.update(seed)
|
|
73
|
-
.digest();
|
|
67
|
+
this.K = this.hmac().update(this.V).update([0x01]).update(seed).digest();
|
|
74
68
|
this.V = this.hmac().update(this.V).digest();
|
|
75
69
|
}
|
|
76
70
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DRBG.js","sourceRoot":"","sources":["../../../../src/primitives/DRBG.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,CAAC,CAAU;IACX,CAAC,CAAU;IAEX,YAAa,OAA0B,EAAE,KAAwB;QAC/D,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACjC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAE7B,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"DRBG.js","sourceRoot":"","sources":["../../../../src/primitives/DRBG.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ function truncateToN(msg, truncOnly, curve = new Curve()) {
|
|
|
26
26
|
if (delta > 0) {
|
|
27
27
|
msg.iushrn(delta);
|
|
28
28
|
}
|
|
29
|
-
if (
|
|
29
|
+
if (truncOnly === null && msg.cmp(curve.n) >= 0) {
|
|
30
30
|
return msg.sub(curve.n);
|
|
31
31
|
}
|
|
32
32
|
else {
|
|
@@ -100,23 +100,23 @@ export const sign = (msg, key, forceLowS = false, customK) => {
|
|
|
100
100
|
return k;
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
|
-
function generateK() {
|
|
103
|
+
function generateK(customK) {
|
|
104
104
|
if (typeof customK === 'function') {
|
|
105
105
|
// Call customK function to get k as BigNumber
|
|
106
|
-
const
|
|
106
|
+
const kbn = customK(iter);
|
|
107
107
|
// Convert k_bn (BigNumber) to BigInt
|
|
108
|
-
const
|
|
109
|
-
return BigInt('0x' +
|
|
108
|
+
const kstr = kbn.toString(16);
|
|
109
|
+
return BigInt('0x' + kstr);
|
|
110
110
|
}
|
|
111
|
-
else if (BigNumber.isBN(customK)) {
|
|
111
|
+
else if ((customK != null) && BigNumber.isBN(customK)) {
|
|
112
112
|
// Use customK provided, convert to BigInt
|
|
113
|
-
const
|
|
114
|
-
return BigInt('0x' +
|
|
113
|
+
const kstr = customK.toString(16);
|
|
114
|
+
return BigInt('0x' + kstr);
|
|
115
115
|
}
|
|
116
116
|
else {
|
|
117
117
|
// Use DRBG to generate k
|
|
118
|
-
const
|
|
119
|
-
return BigInt('0x' +
|
|
118
|
+
const khex = drbg.generate(bytes); // Generate hex string
|
|
119
|
+
return BigInt('0x' + khex);
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
122
|
// Modular arithmetic functions
|
|
@@ -168,19 +168,26 @@ export const sign = (msg, key, forceLowS = false, customK) => {
|
|
|
168
168
|
}
|
|
169
169
|
function scalarMul(k, P) {
|
|
170
170
|
let N = P;
|
|
171
|
-
let Q = null;
|
|
172
|
-
while (k >
|
|
173
|
-
if (k %
|
|
174
|
-
Q = pointAdd(Q, N);
|
|
171
|
+
let Q = null;
|
|
172
|
+
while (k > BigInt(0)) {
|
|
173
|
+
if (k % BigInt(2) === BigInt(1)) {
|
|
174
|
+
Q = Q === null ? N : (pointAdd(Q, N) ?? Q);
|
|
175
175
|
}
|
|
176
|
-
N = pointAdd(N, N);
|
|
177
|
-
k >>=
|
|
176
|
+
N = pointAdd(N, N) ?? N;
|
|
177
|
+
k >>= BigInt(1);
|
|
178
|
+
}
|
|
179
|
+
if (Q === null) {
|
|
180
|
+
throw new Error('Scalar multiplication resulted in an invalid point.');
|
|
178
181
|
}
|
|
179
182
|
return Q;
|
|
180
183
|
}
|
|
181
|
-
|
|
182
|
-
|
|
184
|
+
let validSignature = false;
|
|
185
|
+
while (!validSignature) {
|
|
183
186
|
iter += 1;
|
|
187
|
+
validSignature = true;
|
|
188
|
+
iter += 1;
|
|
189
|
+
// Generate k value
|
|
190
|
+
let k = generateK(customK);
|
|
184
191
|
// Truncate k to n bits
|
|
185
192
|
k = truncateToN(k, n, true);
|
|
186
193
|
if (k <= one || k >= ns1) {
|
|
@@ -225,9 +232,9 @@ export const sign = (msg, key, forceLowS = false, customK) => {
|
|
|
225
232
|
s = n - s;
|
|
226
233
|
}
|
|
227
234
|
// Return signature as BigNumbers
|
|
228
|
-
const
|
|
229
|
-
const
|
|
230
|
-
return new Signature(
|
|
235
|
+
const rbn = new BigNumber(r.toString(16), 16);
|
|
236
|
+
const sbn = new BigNumber(s.toString(16), 16);
|
|
237
|
+
return new Signature(rbn, sbn);
|
|
231
238
|
}
|
|
232
239
|
}
|
|
233
240
|
else {
|
|
@@ -249,7 +256,12 @@ export const sign = (msg, key, forceLowS = false, customK) => {
|
|
|
249
256
|
: BigNumber.isBN(customK)
|
|
250
257
|
? customK
|
|
251
258
|
: new BigNumber(drbg.generate(bytes), 16);
|
|
252
|
-
|
|
259
|
+
if (k != null) {
|
|
260
|
+
k = truncateToN(k, true);
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
throw new Error('k is undefined');
|
|
264
|
+
}
|
|
253
265
|
if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0) {
|
|
254
266
|
if (BigNumber.isBN(customK)) {
|
|
255
267
|
throw new Error('Invalid fixed custom K value (must be more than 1 and less than N-1)');
|
|
@@ -294,6 +306,7 @@ export const sign = (msg, key, forceLowS = false, customK) => {
|
|
|
294
306
|
return new Signature(r, s);
|
|
295
307
|
}
|
|
296
308
|
}
|
|
309
|
+
throw new Error('Failed to generate a valid signature');
|
|
297
310
|
};
|
|
298
311
|
/**
|
|
299
312
|
* Verifies a digital signature of a given message.
|
|
@@ -331,20 +344,19 @@ export const verify = (msg, sig, key) => {
|
|
|
331
344
|
const mod = (a, m) => ((a % m) + m) % m;
|
|
332
345
|
const modInv = (a, m) => {
|
|
333
346
|
// Extended Euclidean Algorithm for modular inverse
|
|
334
|
-
let [
|
|
335
|
-
let [
|
|
347
|
+
let [oldr, r] = [a, m];
|
|
348
|
+
let [olds, s] = [BigInt(1), BigInt(0)];
|
|
336
349
|
while (r !== zero) {
|
|
337
|
-
const q =
|
|
338
|
-
[
|
|
339
|
-
[
|
|
350
|
+
const q = oldr / r;
|
|
351
|
+
[oldr, r] = [r, oldr - q * r];
|
|
352
|
+
[olds, s] = [s, olds - q * s];
|
|
340
353
|
}
|
|
341
|
-
if (
|
|
354
|
+
if (oldr > one)
|
|
342
355
|
return zero; // No inverse
|
|
343
|
-
return mod(
|
|
356
|
+
return mod(olds, m);
|
|
344
357
|
};
|
|
345
358
|
const modMul = (a, b, m) => mod(a * b, m);
|
|
346
359
|
const modSub = (a, b, m) => mod(a - b, m);
|
|
347
|
-
const modAdd = (a, b, m) => mod(a + b, m);
|
|
348
360
|
// Define constants
|
|
349
361
|
const four = BigInt(4);
|
|
350
362
|
const eight = BigInt(8);
|
|
@@ -354,11 +366,11 @@ export const verify = (msg, sig, key) => {
|
|
|
354
366
|
if (Y1 === zero) {
|
|
355
367
|
return { X: zero, Y: one, Z: zero }; // Point at infinity
|
|
356
368
|
}
|
|
357
|
-
const
|
|
358
|
-
const S = modMul(four, modMul(X1,
|
|
369
|
+
const Y1sq = modMul(Y1, Y1, p); // Y1^2
|
|
370
|
+
const S = modMul(four, modMul(X1, Y1sq, p), p); // S = 4 * X1 * Y1^2
|
|
359
371
|
const M = modMul(three, modMul(X1, X1, p), p); // M = 3 * X1^2
|
|
360
372
|
const X3 = modSub(modMul(M, M, p), modMul(two, S, p), p); // X3 = M^2 - 2 * S
|
|
361
|
-
const Y3 = modSub(modMul(M, modSub(S, X3, p), p), modMul(eight, modMul(
|
|
373
|
+
const Y3 = modSub(modMul(M, modSub(S, X3, p), p), modMul(eight, modMul(Y1sq, Y1sq, p), p), p); // Y3 = M * (S - X3) - 8 * Y1^4
|
|
362
374
|
const Z3 = modMul(two, modMul(Y1, Z1, p), p); // Z3 = 2 * Y1 * Z1
|
|
363
375
|
return { X: X3, Y: Y3, Z: Z3 };
|
|
364
376
|
};
|
|
@@ -435,14 +447,17 @@ export const verify = (msg, sig, key) => {
|
|
|
435
447
|
return false; // No inverse exists
|
|
436
448
|
}
|
|
437
449
|
const ZInv2 = modMul(ZInv, ZInv, p);
|
|
438
|
-
const
|
|
450
|
+
const x1affine = modMul(R.X, ZInv2, p);
|
|
439
451
|
// Compute v = x1_affine mod n
|
|
440
|
-
const v = mod(
|
|
452
|
+
const v = mod(x1affine, n);
|
|
441
453
|
// Signature is valid if v == r mod n
|
|
442
454
|
return v === r;
|
|
443
455
|
};
|
|
444
456
|
// Convert inputs to BigInt
|
|
445
457
|
const hash = BigInt('0x' + msg.toString(16));
|
|
458
|
+
if ((key.x == null) || (key.y == null)) {
|
|
459
|
+
throw new Error('Invalid public key: missing coordinates.');
|
|
460
|
+
}
|
|
446
461
|
const publicKey = {
|
|
447
462
|
x: BigInt('0x' + key.x.toString(16)),
|
|
448
463
|
y: BigInt('0x' + key.y.toString(16))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ECDSA.js","sourceRoot":"","sources":["../../../../src/primitives/ECDSA.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ECDSA.js","sourceRoot":"","sources":["../../../../src/primitives/ECDSA.ts"],"names":[],"mappings":"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"}
|