@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
|
@@ -133,7 +133,7 @@ class Point extends BasePoint_js_1.default {
|
|
|
133
133
|
}
|
|
134
134
|
// Curve parameters for secp256k1
|
|
135
135
|
const p = BigInt('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F');
|
|
136
|
-
const a = BigInt(0)
|
|
136
|
+
// const a = BigInt(0)
|
|
137
137
|
const b = BigInt(7);
|
|
138
138
|
// Convert x to BigInt
|
|
139
139
|
let xBigInt;
|
|
@@ -144,8 +144,7 @@ class Point extends BasePoint_js_1.default {
|
|
|
144
144
|
xBigInt = BigInt('0x' + x);
|
|
145
145
|
}
|
|
146
146
|
else if (Array.isArray(x)) {
|
|
147
|
-
xBigInt = BigInt('0x' +
|
|
148
|
-
(0, utils_js_1.toHex)(x).padStart(64, '0'));
|
|
147
|
+
xBigInt = BigInt('0x' + (0, utils_js_1.toHex)(x).padStart(64, '0'));
|
|
149
148
|
}
|
|
150
149
|
else if (typeof x === 'number') {
|
|
151
150
|
xBigInt = BigInt(x);
|
|
@@ -163,7 +162,7 @@ class Point extends BasePoint_js_1.default {
|
|
|
163
162
|
throw new Error('Invalid point');
|
|
164
163
|
}
|
|
165
164
|
// Adjust y to match the oddness
|
|
166
|
-
const isYOdd =
|
|
165
|
+
const isYOdd = y % BigInt(2) === BigInt(1);
|
|
167
166
|
if ((odd && !isYOdd) || (!odd && isYOdd)) {
|
|
168
167
|
y = p - y;
|
|
169
168
|
}
|
|
@@ -357,22 +356,26 @@ class Point extends BasePoint_js_1.default {
|
|
|
357
356
|
if (this.precomputed == null) {
|
|
358
357
|
return [this.x, this.y];
|
|
359
358
|
}
|
|
360
|
-
return [
|
|
359
|
+
return [
|
|
360
|
+
this.x,
|
|
361
|
+
this.y,
|
|
362
|
+
typeof this.precomputed === 'object' && this.precomputed !== null
|
|
361
363
|
? {
|
|
362
|
-
doubles:
|
|
364
|
+
doubles: this.precomputed.doubles != null
|
|
363
365
|
? {
|
|
364
366
|
step: this.precomputed.doubles.step,
|
|
365
367
|
points: this.precomputed.doubles.points.slice(1)
|
|
366
368
|
}
|
|
367
369
|
: undefined,
|
|
368
|
-
naf:
|
|
370
|
+
naf: this.precomputed.naf != null
|
|
369
371
|
? {
|
|
370
372
|
wnd: this.precomputed.naf.wnd,
|
|
371
373
|
points: this.precomputed.naf.points.slice(1)
|
|
372
374
|
}
|
|
373
375
|
: undefined
|
|
374
376
|
}
|
|
375
|
-
: undefined
|
|
377
|
+
: undefined
|
|
378
|
+
];
|
|
376
379
|
}
|
|
377
380
|
/**
|
|
378
381
|
* Provides the point coordinates in a human-readable string format for debugging purposes.
|
|
@@ -385,11 +388,15 @@ class Point extends BasePoint_js_1.default {
|
|
|
385
388
|
* console.log(aPoint.inspect());
|
|
386
389
|
*/
|
|
387
390
|
inspect() {
|
|
391
|
+
var _a, _b, _c, _d, _e, _f;
|
|
388
392
|
if (this.isInfinity()) {
|
|
389
393
|
return '<EC Point Infinity>';
|
|
390
394
|
}
|
|
391
|
-
return '<EC Point x: ' +
|
|
392
|
-
|
|
395
|
+
return ('<EC Point x: ' +
|
|
396
|
+
((_c = (_b = (_a = this.x) === null || _a === void 0 ? void 0 : _a.fromRed()) === null || _b === void 0 ? void 0 : _b.toString(16, 2)) !== null && _c !== void 0 ? _c : 'undefined') +
|
|
397
|
+
' y: ' +
|
|
398
|
+
((_f = (_e = (_d = this.y) === null || _d === void 0 ? void 0 : _d.fromRed()) === null || _e === void 0 ? void 0 : _e.toString(16, 2)) !== null && _f !== void 0 ? _f : 'undefined') +
|
|
399
|
+
'>');
|
|
393
400
|
}
|
|
394
401
|
/**
|
|
395
402
|
* Checks if the point is at infinity.
|
|
@@ -416,6 +423,7 @@ class Point extends BasePoint_js_1.default {
|
|
|
416
423
|
* const result = p1.add(p2);
|
|
417
424
|
*/
|
|
418
425
|
add(p) {
|
|
426
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
419
427
|
// O + P = P
|
|
420
428
|
if (this.inf) {
|
|
421
429
|
return p;
|
|
@@ -430,19 +438,21 @@ class Point extends BasePoint_js_1.default {
|
|
|
430
438
|
}
|
|
431
439
|
// P + (-P) = O
|
|
432
440
|
if (this.neg().eq(p)) {
|
|
433
|
-
return new Point(
|
|
441
|
+
return new Point(new BigNumber_js_1.default(0), new BigNumber_js_1.default(0));
|
|
434
442
|
}
|
|
435
443
|
// P + Q = O
|
|
436
|
-
if (this.x.cmp(p.x) === 0) {
|
|
437
|
-
return new Point(
|
|
444
|
+
if (((_a = this.x) === null || _a === void 0 ? void 0 : _a.cmp((_b = p.x) !== null && _b !== void 0 ? _b : new BigNumber_js_1.default(0))) === 0) {
|
|
445
|
+
return new Point(new BigNumber_js_1.default(0), new BigNumber_js_1.default(0));
|
|
438
446
|
}
|
|
439
|
-
let c = this.y.redSub(p.y);
|
|
447
|
+
let c = (_e = (_c = this.y) === null || _c === void 0 ? void 0 : _c.redSub((_d = p.y) !== null && _d !== void 0 ? _d : new BigNumber_js_1.default(0))) !== null && _e !== void 0 ? _e : new BigNumber_js_1.default(0);
|
|
440
448
|
if (c.cmpn(0) !== 0) {
|
|
441
|
-
c = c.redMul(this.x.redSub(p.x).redInvm());
|
|
449
|
+
c = c.redMul((_h = (_f = this.x) === null || _f === void 0 ? void 0 : _f.redSub((_g = p.x) !== null && _g !== void 0 ? _g : new BigNumber_js_1.default(0)).redInvm()) !== null && _h !== void 0 ? _h : new BigNumber_js_1.default(1));
|
|
442
450
|
}
|
|
443
|
-
const nx = c.redSqr().redISub(this.x).redISub(p.x);
|
|
444
|
-
const ny = c.
|
|
445
|
-
|
|
451
|
+
const nx = c === null || c === void 0 ? void 0 : c.redSqr().redISub((_j = this.x) !== null && _j !== void 0 ? _j : new BigNumber_js_1.default(0)).redISub((_k = p.x) !== null && _k !== void 0 ? _k : new BigNumber_js_1.default(0));
|
|
452
|
+
const ny = (c !== null && c !== void 0 ? c : new BigNumber_js_1.default(1))
|
|
453
|
+
.redMul(((_l = this.x) !== null && _l !== void 0 ? _l : new BigNumber_js_1.default(0)).redSub(nx !== null && nx !== void 0 ? nx : new BigNumber_js_1.default(0)))
|
|
454
|
+
.redISub((_m = this.y) !== null && _m !== void 0 ? _m : new BigNumber_js_1.default(0));
|
|
455
|
+
return new Point(nx !== null && nx !== void 0 ? nx : new BigNumber_js_1.default(0), ny !== null && ny !== void 0 ? ny : new BigNumber_js_1.default(0));
|
|
446
456
|
}
|
|
447
457
|
/**
|
|
448
458
|
* Doubles the current point.
|
|
@@ -454,20 +464,21 @@ class Point extends BasePoint_js_1.default {
|
|
|
454
464
|
* const result = P.dbl();
|
|
455
465
|
* */
|
|
456
466
|
dbl() {
|
|
467
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
457
468
|
if (this.inf) {
|
|
458
469
|
return this;
|
|
459
470
|
}
|
|
460
471
|
// 2P = O
|
|
461
|
-
const ys1 = this.y.redAdd(this.y);
|
|
472
|
+
const ys1 = ((_a = this.y) !== null && _a !== void 0 ? _a : new BigNumber_js_1.default(0)).redAdd((_b = this.y) !== null && _b !== void 0 ? _b : new BigNumber_js_1.default(0));
|
|
462
473
|
if (ys1.cmpn(0) === 0) {
|
|
463
|
-
return new Point(
|
|
474
|
+
return new Point(new BigNumber_js_1.default(0), new BigNumber_js_1.default(0));
|
|
464
475
|
}
|
|
465
476
|
const a = this.curve.a;
|
|
466
|
-
const x2 = this.x.redSqr();
|
|
477
|
+
const x2 = ((_c = this.x) !== null && _c !== void 0 ? _c : new BigNumber_js_1.default(0)).redSqr();
|
|
467
478
|
const dyinv = ys1.redInvm();
|
|
468
479
|
const c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
|
|
469
|
-
const nx = c.redSqr().redISub(this.x.redAdd(this.x));
|
|
470
|
-
const ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
|
|
480
|
+
const nx = c.redSqr().redISub(((_d = this.x) !== null && _d !== void 0 ? _d : new BigNumber_js_1.default(0)).redAdd((_e = this.x) !== null && _e !== void 0 ? _e : new BigNumber_js_1.default(0)));
|
|
481
|
+
const ny = c.redMul(((_f = this.x) !== null && _f !== void 0 ? _f : new BigNumber_js_1.default(0)).redSub(nx)).redISub((_g = this.y) !== null && _g !== void 0 ? _g : new BigNumber_js_1.default(0));
|
|
471
482
|
return new Point(nx, ny);
|
|
472
483
|
}
|
|
473
484
|
/**
|
|
@@ -478,7 +489,8 @@ class Point extends BasePoint_js_1.default {
|
|
|
478
489
|
* const x = P.getX();
|
|
479
490
|
*/
|
|
480
491
|
getX() {
|
|
481
|
-
|
|
492
|
+
var _a;
|
|
493
|
+
return ((_a = this.x) !== null && _a !== void 0 ? _a : new BigNumber_js_1.default(0)).fromRed();
|
|
482
494
|
}
|
|
483
495
|
/**
|
|
484
496
|
* Returns X coordinate of point
|
|
@@ -488,7 +500,8 @@ class Point extends BasePoint_js_1.default {
|
|
|
488
500
|
* const x = P.getX();
|
|
489
501
|
*/
|
|
490
502
|
getY() {
|
|
491
|
-
|
|
503
|
+
var _a;
|
|
504
|
+
return ((_a = this.y) !== null && _a !== void 0 ? _a : new BigNumber_js_1.default(0)).fromRed();
|
|
492
505
|
}
|
|
493
506
|
/**
|
|
494
507
|
* Multiplies this Point by a scalar value, returning a new Point.
|
|
@@ -570,8 +583,10 @@ class Point extends BasePoint_js_1.default {
|
|
|
570
583
|
* const areEqual = p1.eq(p2); // returns true
|
|
571
584
|
*/
|
|
572
585
|
eq(p) {
|
|
573
|
-
|
|
574
|
-
|
|
586
|
+
var _a, _b, _c, _d;
|
|
587
|
+
return (this === p ||
|
|
588
|
+
(this.inf === p.inf &&
|
|
589
|
+
(this.inf || (((_a = this.x) !== null && _a !== void 0 ? _a : new BigNumber_js_1.default(0)).cmp((_b = p.x) !== null && _b !== void 0 ? _b : new BigNumber_js_1.default(0)) === 0 && ((_c = this.y) !== null && _c !== void 0 ? _c : new BigNumber_js_1.default(0)).cmp((_d = p.y) !== null && _d !== void 0 ? _d : new BigNumber_js_1.default(0)) === 0))));
|
|
575
590
|
}
|
|
576
591
|
/**
|
|
577
592
|
* Negate a point. The negation of a point P is the mirror of P about x-axis.
|
|
@@ -583,22 +598,27 @@ class Point extends BasePoint_js_1.default {
|
|
|
583
598
|
* const result = P.neg();
|
|
584
599
|
*/
|
|
585
600
|
neg(_precompute) {
|
|
601
|
+
var _a;
|
|
586
602
|
if (this.inf) {
|
|
587
603
|
return this;
|
|
588
604
|
}
|
|
589
|
-
const res = new Point(this.x, this.y.redNeg());
|
|
590
|
-
if (_precompute &&
|
|
605
|
+
const res = new Point(this.x, ((_a = this.y) !== null && _a !== void 0 ? _a : new BigNumber_js_1.default(0)).redNeg());
|
|
606
|
+
if (_precompute === true && this.precomputed != null) {
|
|
591
607
|
const pre = this.precomputed;
|
|
592
608
|
const negate = (p) => p.neg();
|
|
593
609
|
res.precomputed = {
|
|
594
|
-
naf:
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
610
|
+
naf: pre.naf != null
|
|
611
|
+
? {
|
|
612
|
+
wnd: pre.naf.wnd,
|
|
613
|
+
points: pre.naf.points.map(negate)
|
|
614
|
+
}
|
|
615
|
+
: undefined,
|
|
616
|
+
doubles: pre.doubles != null
|
|
617
|
+
? {
|
|
618
|
+
step: pre.doubles.step,
|
|
619
|
+
points: pre.doubles.points.map((p) => p.neg())
|
|
620
|
+
}
|
|
621
|
+
: undefined,
|
|
602
622
|
beta: undefined
|
|
603
623
|
};
|
|
604
624
|
}
|
|
@@ -645,29 +665,39 @@ class Point extends BasePoint_js_1.default {
|
|
|
645
665
|
return res;
|
|
646
666
|
}
|
|
647
667
|
_getBeta() {
|
|
668
|
+
var _a;
|
|
648
669
|
if (typeof this.curve.endo !== 'object') {
|
|
649
670
|
return;
|
|
650
671
|
}
|
|
651
672
|
const pre = this.precomputed;
|
|
652
|
-
if (typeof pre === 'object' &&
|
|
673
|
+
if (typeof pre === 'object' &&
|
|
674
|
+
pre !== null &&
|
|
675
|
+
typeof pre.beta === 'object' &&
|
|
676
|
+
pre.beta !== null) {
|
|
653
677
|
return pre.beta;
|
|
654
678
|
}
|
|
655
|
-
const beta = new Point(this.x.redMul(this.curve.endo.beta), this.y);
|
|
679
|
+
const beta = new Point(((_a = this.x) !== null && _a !== void 0 ? _a : new BigNumber_js_1.default(0)).redMul(this.curve.endo.beta), this.y);
|
|
656
680
|
if (pre != null) {
|
|
657
681
|
const curve = this.curve;
|
|
658
682
|
const endoMul = (p) => {
|
|
683
|
+
if (p.x === null) {
|
|
684
|
+
throw new Error('p.x is null');
|
|
685
|
+
}
|
|
686
|
+
if (curve.endo === undefined || curve.endo === null) {
|
|
687
|
+
throw new Error('curve.endo is undefined');
|
|
688
|
+
}
|
|
659
689
|
return new Point(p.x.redMul(curve.endo.beta), p.y);
|
|
660
690
|
};
|
|
661
691
|
pre.beta = beta;
|
|
662
692
|
beta.precomputed = {
|
|
663
693
|
beta: null,
|
|
664
|
-
naf:
|
|
694
|
+
naf: pre.naf != null
|
|
665
695
|
? {
|
|
666
696
|
wnd: pre.naf.wnd,
|
|
667
697
|
points: pre.naf.points.map(endoMul)
|
|
668
698
|
}
|
|
669
699
|
: undefined,
|
|
670
|
-
doubles:
|
|
700
|
+
doubles: pre.doubles != null
|
|
671
701
|
? {
|
|
672
702
|
step: pre.doubles.step,
|
|
673
703
|
points: pre.doubles.points.map(endoMul)
|
|
@@ -703,7 +733,7 @@ class Point extends BasePoint_js_1.default {
|
|
|
703
733
|
b = b.mixedAdd(doubles.points[j]);
|
|
704
734
|
}
|
|
705
735
|
else if (nafW === -i) {
|
|
706
|
-
b = b.mixedAdd(
|
|
736
|
+
b = b.mixedAdd(doubles.points[j].neg());
|
|
707
737
|
}
|
|
708
738
|
}
|
|
709
739
|
a = a.add(b);
|
|
@@ -711,42 +741,41 @@ class Point extends BasePoint_js_1.default {
|
|
|
711
741
|
return a.toP();
|
|
712
742
|
}
|
|
713
743
|
_wnafMulAdd(defW, points, coeffs, len, jacobianResult) {
|
|
714
|
-
|
|
715
|
-
const
|
|
716
|
-
const
|
|
744
|
+
var _a, _b, _c, _d;
|
|
745
|
+
const wndWidth = this.curve._wnafT1.map(num => num.toNumber()); // Convert BigNumber to number
|
|
746
|
+
const wnd = this.curve._wnafT2.map(() => []); // Initialize as empty Point[][] array
|
|
747
|
+
const naf = this.curve._wnafT3.map(() => []); // Initialize as empty number[][] array
|
|
717
748
|
// Fill all arrays
|
|
718
749
|
let max = 0;
|
|
719
750
|
for (let i = 0; i < len; i++) {
|
|
720
751
|
const p = points[i];
|
|
721
752
|
const nafPoints = p._getNAFPoints(defW);
|
|
722
|
-
wndWidth[i] = nafPoints.wnd;
|
|
723
|
-
wnd[i] = nafPoints.points;
|
|
753
|
+
wndWidth[i] = nafPoints.wnd; // Ensure correct type
|
|
754
|
+
wnd[i] = nafPoints.points; // Ensure correct type
|
|
724
755
|
}
|
|
725
756
|
// Comb small window NAFs
|
|
726
757
|
for (let i = len - 1; i >= 1; i -= 2) {
|
|
727
758
|
const a = i - 1;
|
|
728
759
|
const b = i;
|
|
729
760
|
if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {
|
|
730
|
-
naf[a] = this.curve
|
|
731
|
-
|
|
732
|
-
naf[b] = this.curve
|
|
733
|
-
.getNAF(coeffs[b], wndWidth[b], this.curve._bitLength);
|
|
761
|
+
naf[a] = this.curve.getNAF(coeffs[a], wndWidth[a], this.curve._bitLength);
|
|
762
|
+
naf[b] = this.curve.getNAF(coeffs[b], wndWidth[b], this.curve._bitLength);
|
|
734
763
|
max = Math.max(naf[a].length, max);
|
|
735
764
|
max = Math.max(naf[b].length, max);
|
|
736
765
|
continue;
|
|
737
766
|
}
|
|
738
767
|
const comb = [
|
|
739
|
-
points[a]
|
|
740
|
-
null
|
|
741
|
-
null
|
|
768
|
+
points[a] /* 1 */,
|
|
769
|
+
null /* 3 */,
|
|
770
|
+
null /* 5 */,
|
|
742
771
|
points[b] /* 7 */
|
|
743
772
|
];
|
|
744
773
|
// Try to avoid Projective points, if possible
|
|
745
|
-
if (points[a].y.cmp(points[b].y) === 0) {
|
|
774
|
+
if (((_a = points[a].y) !== null && _a !== void 0 ? _a : new BigNumber_js_1.default(0)).cmp((_b = points[b].y) !== null && _b !== void 0 ? _b : new BigNumber_js_1.default(0)) === 0) {
|
|
746
775
|
comb[1] = points[a].add(points[b]);
|
|
747
776
|
comb[2] = points[a].toJ().mixedAdd(points[b].neg());
|
|
748
777
|
}
|
|
749
|
-
else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {
|
|
778
|
+
else if (((_c = points[a].y) !== null && _c !== void 0 ? _c : new BigNumber_js_1.default(0)).cmp(((_d = points[b].y) !== null && _d !== void 0 ? _d : new BigNumber_js_1.default(0)).redNeg()) === 0) {
|
|
750
779
|
comb[1] = points[a].toJ().mixedAdd(points[b]);
|
|
751
780
|
comb[2] = points[a].add(points[b].neg());
|
|
752
781
|
}
|
|
@@ -755,15 +784,8 @@ class Point extends BasePoint_js_1.default {
|
|
|
755
784
|
comb[2] = points[a].toJ().mixedAdd(points[b].neg());
|
|
756
785
|
}
|
|
757
786
|
const index = [
|
|
758
|
-
-3
|
|
759
|
-
|
|
760
|
-
-5, /* -1 1 */
|
|
761
|
-
-7, /* 0 -1 */
|
|
762
|
-
0, /* 0 0 */
|
|
763
|
-
7, /* 0 1 */
|
|
764
|
-
5, /* 1 -1 */
|
|
765
|
-
1, /* 1 0 */
|
|
766
|
-
3 /* 1 1 */
|
|
787
|
+
-3 /* -1 -1 */, -1 /* -1 0 */, -5 /* -1 1 */, -7 /* 0 -1 */,
|
|
788
|
+
0 /* 0 0 */, 7 /* 0 1 */, 5 /* 1 -1 */, 1 /* 1 0 */, 3 /* 1 1 */
|
|
767
789
|
];
|
|
768
790
|
const jsf = this.curve.getJSF(coeffs[a], coeffs[b]);
|
|
769
791
|
max = Math.max(jsf[0].length, max);
|
|
@@ -784,8 +806,8 @@ class Point extends BasePoint_js_1.default {
|
|
|
784
806
|
while (i >= 0) {
|
|
785
807
|
let zero = true;
|
|
786
808
|
for (let j = 0; j < len; j++) {
|
|
787
|
-
tmp[j] = naf[j][i]
|
|
788
|
-
if (tmp[j]
|
|
809
|
+
tmp[j] = new BigNumber_js_1.default(typeof naf[j][i] === 'number' ? naf[j][i] : 0); // Ensure type consistency
|
|
810
|
+
if (!tmp[j].isZero()) { // Use BigNumber's built-in comparison
|
|
789
811
|
zero = false;
|
|
790
812
|
}
|
|
791
813
|
}
|
|
@@ -802,17 +824,19 @@ class Point extends BasePoint_js_1.default {
|
|
|
802
824
|
if (i < 0) {
|
|
803
825
|
break;
|
|
804
826
|
}
|
|
827
|
+
const one = new BigNumber_js_1.default(1);
|
|
828
|
+
const two = new BigNumber_js_1.default(2);
|
|
805
829
|
for (let j = 0; j < len; j++) {
|
|
806
830
|
const z = tmp[j];
|
|
807
831
|
let p;
|
|
808
|
-
if (z === 0) {
|
|
832
|
+
if (z.cmpn(0) === 0) { // Check if z is 0
|
|
809
833
|
continue;
|
|
810
834
|
}
|
|
811
|
-
else if (z
|
|
812
|
-
p = wnd[j][(
|
|
835
|
+
else if (!z.isNeg()) { // If z is positive
|
|
836
|
+
p = wnd[j][z.sub(one).div(two).toNumber()];
|
|
813
837
|
}
|
|
814
|
-
else
|
|
815
|
-
p = wnd[j][(
|
|
838
|
+
else { // If z is negative
|
|
839
|
+
p = wnd[j][z.neg().sub(one).div(two).toNumber()].neg();
|
|
816
840
|
}
|
|
817
841
|
if (p.type === 'affine') {
|
|
818
842
|
acc = acc.mixedAdd(p);
|
|
@@ -824,23 +848,25 @@ class Point extends BasePoint_js_1.default {
|
|
|
824
848
|
}
|
|
825
849
|
// Zeroify references
|
|
826
850
|
for (let i = 0; i < len; i++) {
|
|
827
|
-
wnd[i] =
|
|
851
|
+
wnd[i] = [];
|
|
828
852
|
}
|
|
829
|
-
if (jacobianResult) {
|
|
853
|
+
if (jacobianResult === true) {
|
|
830
854
|
return acc;
|
|
831
855
|
}
|
|
832
856
|
else {
|
|
833
857
|
return acc.toP();
|
|
834
858
|
}
|
|
835
859
|
}
|
|
836
|
-
_endoWnafMulAdd(points, coeffs,
|
|
837
|
-
|
|
838
|
-
|
|
860
|
+
_endoWnafMulAdd(points, coeffs, // Explicitly type coeffs
|
|
861
|
+
jacobianResult) {
|
|
862
|
+
var _a;
|
|
863
|
+
const npoints = new Array(points.length * 2);
|
|
864
|
+
const ncoeffs = new Array(points.length * 2);
|
|
839
865
|
let i;
|
|
840
866
|
for (i = 0; i < points.length; i++) {
|
|
841
867
|
const split = this.curve._endoSplit(coeffs[i]);
|
|
842
868
|
let p = points[i];
|
|
843
|
-
let beta = p._getBeta();
|
|
869
|
+
let beta = (_a = p._getBeta()) !== null && _a !== void 0 ? _a : new Point(new BigNumber_js_1.default(0), new BigNumber_js_1.default(0));
|
|
844
870
|
if (split.k1.negative !== 0) {
|
|
845
871
|
split.k1.ineg();
|
|
846
872
|
p = p.neg(true);
|
|
@@ -870,11 +896,11 @@ class Point extends BasePoint_js_1.default {
|
|
|
870
896
|
if (typeof doubles !== 'object') {
|
|
871
897
|
return false;
|
|
872
898
|
}
|
|
873
|
-
return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);
|
|
899
|
+
return (doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step));
|
|
874
900
|
}
|
|
875
|
-
;
|
|
876
901
|
_getDoubles(step, power) {
|
|
877
|
-
if (typeof this.precomputed === 'object' &&
|
|
902
|
+
if (typeof this.precomputed === 'object' &&
|
|
903
|
+
this.precomputed !== null &&
|
|
878
904
|
typeof this.precomputed.doubles === 'object' &&
|
|
879
905
|
this.precomputed.doubles !== null) {
|
|
880
906
|
return this.precomputed.doubles;
|
|
@@ -882,28 +908,31 @@ class Point extends BasePoint_js_1.default {
|
|
|
882
908
|
const doubles = [this];
|
|
883
909
|
/* eslint-disable @typescript-eslint/no-this-alias */
|
|
884
910
|
let acc = this;
|
|
885
|
-
for (let i = 0; i < power; i += step) {
|
|
886
|
-
for (let j = 0; j < step; j++) {
|
|
911
|
+
for (let i = 0; i < (power !== null && power !== void 0 ? power : 0); i += (step !== null && step !== void 0 ? step : 1)) {
|
|
912
|
+
for (let j = 0; j < (step !== null && step !== void 0 ? step : 1); j++) {
|
|
887
913
|
acc = acc.dbl();
|
|
888
914
|
}
|
|
889
915
|
doubles.push(acc);
|
|
890
916
|
}
|
|
891
917
|
return {
|
|
892
|
-
step,
|
|
918
|
+
step: step !== null && step !== void 0 ? step : 1,
|
|
893
919
|
points: doubles
|
|
894
920
|
};
|
|
895
921
|
}
|
|
896
|
-
;
|
|
897
922
|
_getNAFPoints(wnd) {
|
|
898
|
-
if (typeof this.precomputed === 'object' &&
|
|
899
|
-
|
|
923
|
+
if (typeof this.precomputed === 'object' &&
|
|
924
|
+
this.precomputed !== null &&
|
|
925
|
+
typeof this.precomputed.naf === 'object' &&
|
|
926
|
+
this.precomputed.naf !== null) {
|
|
900
927
|
return this.precomputed.naf;
|
|
901
928
|
}
|
|
902
929
|
const res = [this];
|
|
903
930
|
const max = (1 << wnd) - 1;
|
|
904
931
|
const dbl = max === 1 ? null : this.dbl();
|
|
905
932
|
for (let i = 1; i < max; i++) {
|
|
906
|
-
|
|
933
|
+
if (dbl !== null) {
|
|
934
|
+
res[i] = res[i - 1].add(dbl);
|
|
935
|
+
}
|
|
907
936
|
}
|
|
908
937
|
return {
|
|
909
938
|
wnd,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Point.js","sourceRoot":"","sources":["../../../../src/primitives/Point.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Point.js","sourceRoot":"","sources":["../../../../src/primitives/Point.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,12 +41,14 @@ exports.PointInFiniteField = PointInFiniteField;
|
|
|
41
41
|
class Polynomial {
|
|
42
42
|
constructor(points, threshold) {
|
|
43
43
|
this.points = points;
|
|
44
|
-
this.threshold = threshold
|
|
44
|
+
this.threshold = threshold !== null && threshold !== void 0 ? threshold : points.length; // ✅ Handles undefined safely
|
|
45
45
|
}
|
|
46
46
|
static fromPrivateKey(key, threshold) {
|
|
47
47
|
const P = new Curve_js_1.default().p; // arithmetic is mod P
|
|
48
48
|
// The key is the y-intercept of the polynomial where x=0.
|
|
49
|
-
const points = [
|
|
49
|
+
const points = [
|
|
50
|
+
new PointInFiniteField(new BigNumber_js_1.default(0), new BigNumber_js_1.default(key.toArray()))
|
|
51
|
+
];
|
|
50
52
|
// The other values are random
|
|
51
53
|
for (let i = 1; i < threshold; i++) {
|
|
52
54
|
const randomX = new BigNumber_js_1.default((0, Random_js_1.default)(32)).umod(P);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Polynomial.js","sourceRoot":"","sources":["../../../../src/primitives/Polynomial.ts"],"names":[],"mappings":";;;;;;AACA,kEAAsC;AACtC,0DAA8B;AAC9B,4DAAgC;AAChC,yCAAiD;AAEjD,MAAa,kBAAkB;IAI7B,YAAa,CAAY,EAAE,CAAY;QACrC,MAAM,CAAC,GAAG,IAAI,kBAAK,EAAE,CAAC,CAAC,CAAA,CAAC,sBAAsB;QAC9C,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAClB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACpB,CAAC;IAED,QAAQ;QACN,OAAO,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,CAAC,UAAU,CAAE,GAAW;QAC5B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC7B,OAAO,IAAI,kBAAkB,
|
|
1
|
+
{"version":3,"file":"Polynomial.js","sourceRoot":"","sources":["../../../../src/primitives/Polynomial.ts"],"names":[],"mappings":"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"}
|