@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
package/src/primitives/AESGCM.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
|
|
2
|
+
// @ts-nocheck
|
|
1
3
|
const SBox = [[0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76],
|
|
2
4
|
[0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0],
|
|
3
5
|
[0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15],
|
|
@@ -8,13 +8,13 @@ export default abstract class BasePoint {
|
|
|
8
8
|
curve: Curve
|
|
9
9
|
type: 'affine' | 'jacobian'
|
|
10
10
|
precomputed: {
|
|
11
|
-
doubles
|
|
12
|
-
naf
|
|
13
|
-
beta
|
|
11
|
+
doubles?: { step: number, points: BasePoint[] }
|
|
12
|
+
naf?: { wnd: number, points: BasePoint[] }
|
|
13
|
+
beta?: BasePoint | null
|
|
14
14
|
} | null
|
|
15
15
|
|
|
16
16
|
constructor (type: 'affine' | 'jacobian') {
|
|
17
|
-
this.curve = new Curve()
|
|
17
|
+
this.curve = new Curve() // Always initialized, so never null
|
|
18
18
|
this.type = type
|
|
19
19
|
this.precomputed = null
|
|
20
20
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
1
2
|
import ReductionContext from './ReductionContext.js'
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -44,24 +45,19 @@ export default class BigNumber {
|
|
|
44
45
|
* @privateinitializer
|
|
45
46
|
*/
|
|
46
47
|
static readonly groupSizes: number[] = [
|
|
47
|
-
0, 0,
|
|
48
|
-
|
|
49
|
-
8, 7, 7, 7, 7, 6, 6,
|
|
50
|
-
6, 6, 6, 6, 6, 5, 5,
|
|
51
|
-
5, 5, 5, 5, 5, 5, 5,
|
|
52
|
-
5, 5, 5, 5, 5, 5, 5
|
|
48
|
+
0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5,
|
|
49
|
+
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
|
|
53
50
|
]
|
|
54
51
|
|
|
55
52
|
/**
|
|
56
53
|
* @privateinitializer
|
|
57
54
|
*/
|
|
58
55
|
static readonly groupBases: number[] = [
|
|
59
|
-
0, 0,
|
|
60
|
-
33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,
|
|
56
|
+
0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,
|
|
61
57
|
43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,
|
|
62
|
-
16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,
|
|
63
|
-
|
|
64
|
-
|
|
58
|
+
16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343,
|
|
59
|
+
7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000,
|
|
60
|
+
28629151, 33554432, 39135393, 45435424, 52521875, 60466176
|
|
65
61
|
]
|
|
66
62
|
|
|
67
63
|
/**
|
|
@@ -135,9 +131,12 @@ export default class BigNumber {
|
|
|
135
131
|
return true
|
|
136
132
|
}
|
|
137
133
|
|
|
138
|
-
return
|
|
134
|
+
return (
|
|
135
|
+
num !== null &&
|
|
136
|
+
typeof num === 'object' &&
|
|
139
137
|
num.constructor.wordSize === BigNumber.wordSize &&
|
|
140
138
|
Array.isArray(num.words)
|
|
139
|
+
)
|
|
141
140
|
}
|
|
142
141
|
|
|
143
142
|
/**
|
|
@@ -274,21 +273,14 @@ export default class BigNumber {
|
|
|
274
273
|
this.words = [number & 0x3ffffff]
|
|
275
274
|
this.length = 1
|
|
276
275
|
} else if (number < 0x10000000000000) {
|
|
277
|
-
this.words = [
|
|
278
|
-
number & 0x3ffffff,
|
|
279
|
-
(number / 0x4000000) & 0x3ffffff
|
|
280
|
-
]
|
|
276
|
+
this.words = [number & 0x3ffffff, (number / 0x4000000) & 0x3ffffff]
|
|
281
277
|
this.length = 2
|
|
282
278
|
} else {
|
|
283
279
|
this.assert(
|
|
284
|
-
number <=
|
|
280
|
+
number <= 0x1fffffffffffff,
|
|
285
281
|
'The number is larger than 2 ^ 53 (unsafe)'
|
|
286
282
|
)
|
|
287
|
-
this.words = [
|
|
288
|
-
number & 0x3ffffff,
|
|
289
|
-
(number / 0x4000000) & 0x3ffffff,
|
|
290
|
-
1
|
|
291
|
-
]
|
|
283
|
+
this.words = [number & 0x3ffffff, (number / 0x4000000) & 0x3ffffff, 1]
|
|
292
284
|
this.length = 3
|
|
293
285
|
}
|
|
294
286
|
|
|
@@ -369,10 +361,10 @@ export default class BigNumber {
|
|
|
369
361
|
// '0' - '9'
|
|
370
362
|
if (c >= 48 && c <= 57) {
|
|
371
363
|
return c - 48
|
|
372
|
-
|
|
364
|
+
// 'A' - 'F'
|
|
373
365
|
} else if (c >= 65 && c <= 70) {
|
|
374
366
|
return c - 55
|
|
375
|
-
|
|
367
|
+
// 'a' - 'f'
|
|
376
368
|
} else if (c >= 97 && c <= 102) {
|
|
377
369
|
return c - 87
|
|
378
370
|
} else {
|
|
@@ -391,7 +383,9 @@ export default class BigNumber {
|
|
|
391
383
|
* @return The decimal value corresponding to the two hexadecimal characters.
|
|
392
384
|
*/
|
|
393
385
|
private parseHexByte (
|
|
394
|
-
string: string,
|
|
386
|
+
string: string,
|
|
387
|
+
lowerBound: number,
|
|
388
|
+
index: number
|
|
395
389
|
): number {
|
|
396
390
|
let r = this.parseHex4Bits(string, index)
|
|
397
391
|
if (index - 1 >= lowerBound) {
|
|
@@ -410,7 +404,11 @@ export default class BigNumber {
|
|
|
410
404
|
* @param endian - The endianness ('be', 'le').
|
|
411
405
|
* @return The current BigNumber instance.
|
|
412
406
|
*/
|
|
413
|
-
private parseHex (
|
|
407
|
+
private parseHex (
|
|
408
|
+
number: string,
|
|
409
|
+
start: number,
|
|
410
|
+
endian: 'be' | 'le'
|
|
411
|
+
): BigNumber {
|
|
414
412
|
// Initialize the words array
|
|
415
413
|
this.length = Math.ceil((number.length - start) / 6)
|
|
416
414
|
this.words = new Array(this.length).fill(0)
|
|
@@ -437,7 +435,11 @@ export default class BigNumber {
|
|
|
437
435
|
}
|
|
438
436
|
} else {
|
|
439
437
|
const parseLength = number.length - start
|
|
440
|
-
for (
|
|
438
|
+
for (
|
|
439
|
+
let i = parseLength % 2 === 0 ? start + 1 : start;
|
|
440
|
+
i < number.length;
|
|
441
|
+
i += 2
|
|
442
|
+
) {
|
|
441
443
|
processHexByte(i)
|
|
442
444
|
}
|
|
443
445
|
}
|
|
@@ -469,11 +471,11 @@ export default class BigNumber {
|
|
|
469
471
|
if (c >= 49) {
|
|
470
472
|
b = c - 49 + 0xa
|
|
471
473
|
|
|
472
|
-
|
|
474
|
+
// 'A'
|
|
473
475
|
} else if (c >= 17) {
|
|
474
476
|
b = c - 17 + 0xa
|
|
475
477
|
|
|
476
|
-
|
|
478
|
+
// '0' - '9'
|
|
477
479
|
} else {
|
|
478
480
|
b = c
|
|
479
481
|
}
|
|
@@ -720,6 +722,7 @@ export default class BigNumber {
|
|
|
720
722
|
if (padding === 0 && out === '0') {
|
|
721
723
|
return ''
|
|
722
724
|
}
|
|
725
|
+
// eslint-disable-next-line no-unmodified-loop-condition
|
|
723
726
|
while (out.length % padding !== 0 && padding !== 0) {
|
|
724
727
|
out = '0' + out
|
|
725
728
|
}
|
|
@@ -775,11 +778,11 @@ export default class BigNumber {
|
|
|
775
778
|
ret += this.words[1] * 0x4000000
|
|
776
779
|
} else if (this.length === 3 && this.words[2] === 0x01) {
|
|
777
780
|
// NOTE: at this stage it is known that the top bit is set
|
|
778
|
-
ret += 0x10000000000000 +
|
|
781
|
+
ret += 0x10000000000000 + this.words[1] * 0x4000000
|
|
779
782
|
} else if (this.length > 2) {
|
|
780
783
|
throw new Error('Number can only safely store up to 53 bits')
|
|
781
784
|
}
|
|
782
|
-
return
|
|
785
|
+
return this.negative !== 0 ? -ret : ret
|
|
783
786
|
}
|
|
784
787
|
|
|
785
788
|
/**
|
|
@@ -903,7 +906,10 @@ export default class BigNumber {
|
|
|
903
906
|
|
|
904
907
|
const byteLength = this.byteLength()
|
|
905
908
|
const reqLength = length ?? Math.max(1, byteLength)
|
|
906
|
-
this.assert(
|
|
909
|
+
this.assert(
|
|
910
|
+
byteLength <= reqLength,
|
|
911
|
+
'byte array longer than desired length'
|
|
912
|
+
)
|
|
907
913
|
this.assert(reqLength > 0, 'Requested array length <= 0')
|
|
908
914
|
|
|
909
915
|
const res = new Array(reqLength)
|
|
@@ -1523,7 +1529,7 @@ export default class BigNumber {
|
|
|
1523
1529
|
this.negative ^= 1
|
|
1524
1530
|
return this.normSign()
|
|
1525
1531
|
|
|
1526
|
-
|
|
1532
|
+
// positive + negative
|
|
1527
1533
|
} else if (this.negative === 0 && num.negative !== 0) {
|
|
1528
1534
|
num.negative = 0
|
|
1529
1535
|
r = this.isub(num)
|
|
@@ -1560,7 +1566,7 @@ export default class BigNumber {
|
|
|
1560
1566
|
if (carry !== 0) {
|
|
1561
1567
|
this.words[this.length] = carry
|
|
1562
1568
|
this.length++
|
|
1563
|
-
|
|
1569
|
+
// Copy the rest of the words
|
|
1564
1570
|
} else if (a !== this) {
|
|
1565
1571
|
for (; i < a.length; i++) {
|
|
1566
1572
|
this.words[i] = a.words[i]
|
|
@@ -1622,7 +1628,7 @@ export default class BigNumber {
|
|
|
1622
1628
|
num.negative = 1
|
|
1623
1629
|
return r.normSign()
|
|
1624
1630
|
|
|
1625
|
-
|
|
1631
|
+
// -this - num = -(this + num)
|
|
1626
1632
|
} else if (this.negative !== 0) {
|
|
1627
1633
|
this.negative = 0
|
|
1628
1634
|
this.iadd(num)
|
|
@@ -1699,7 +1705,9 @@ export default class BigNumber {
|
|
|
1699
1705
|
}
|
|
1700
1706
|
|
|
1701
1707
|
private smallMulTo (
|
|
1702
|
-
self: BigNumber,
|
|
1708
|
+
self: BigNumber,
|
|
1709
|
+
num: BigNumber,
|
|
1710
|
+
out: BigNumber
|
|
1703
1711
|
): BigNumber {
|
|
1704
1712
|
out.negative = num.negative ^ self.negative
|
|
1705
1713
|
let len = (self.length + num.length) | 0
|
|
@@ -2664,7 +2672,7 @@ export default class BigNumber {
|
|
|
2664
2672
|
}
|
|
2665
2673
|
|
|
2666
2674
|
// Push carried bits as a mask
|
|
2667
|
-
if (
|
|
2675
|
+
if (maskedWords != null && carry !== 0) {
|
|
2668
2676
|
maskedWords.words[maskedWords.length++] = carry
|
|
2669
2677
|
}
|
|
2670
2678
|
|
|
@@ -3083,7 +3091,8 @@ export default class BigNumber {
|
|
|
3083
3091
|
}
|
|
3084
3092
|
|
|
3085
3093
|
for (let j = m - 1; j >= 0; j--) {
|
|
3086
|
-
let qj =
|
|
3094
|
+
let qj =
|
|
3095
|
+
(a.words[b.length + j] | 0) * 0x4000000 +
|
|
3087
3096
|
(a.words[b.length + j - 1] | 0)
|
|
3088
3097
|
|
|
3089
3098
|
// NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max
|
|
@@ -3155,7 +3164,7 @@ export default class BigNumber {
|
|
|
3155
3164
|
|
|
3156
3165
|
if (mode !== 'div') {
|
|
3157
3166
|
mod = res.mod.neg()
|
|
3158
|
-
if (positive && mod.negative !== 0) {
|
|
3167
|
+
if (positive === true && mod.negative !== 0) {
|
|
3159
3168
|
mod.iadd(num)
|
|
3160
3169
|
}
|
|
3161
3170
|
}
|
|
@@ -3184,7 +3193,7 @@ export default class BigNumber {
|
|
|
3184
3193
|
|
|
3185
3194
|
if (mode !== 'div') {
|
|
3186
3195
|
mod = res.mod.neg()
|
|
3187
|
-
if (positive && mod.negative !== 0) {
|
|
3196
|
+
if (positive === true && mod.negative !== 0) {
|
|
3188
3197
|
mod.isub(num)
|
|
3189
3198
|
}
|
|
3190
3199
|
}
|
|
@@ -3292,16 +3301,14 @@ export default class BigNumber {
|
|
|
3292
3301
|
* const quotient = bigNum1.divRound(bigNum2); // quotient here would be '2'
|
|
3293
3302
|
*/
|
|
3294
3303
|
divRound (num: BigNumber): BigNumber {
|
|
3295
|
-
const dm: { div: BigNumber, mod: BigNumber } = (
|
|
3296
|
-
|
|
3297
|
-
)
|
|
3304
|
+
const dm: { div: BigNumber, mod: BigNumber } = this.divmod(
|
|
3305
|
+
num
|
|
3306
|
+
) as unknown as { div: BigNumber, mod: BigNumber }
|
|
3298
3307
|
|
|
3299
3308
|
// Fast case - exact division
|
|
3300
3309
|
if (dm.mod.isZero()) return dm.div
|
|
3301
3310
|
|
|
3302
|
-
const mod = dm.div.negative !== 0
|
|
3303
|
-
? dm.mod.isub(num)
|
|
3304
|
-
: dm.mod
|
|
3311
|
+
const mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod
|
|
3305
3312
|
|
|
3306
3313
|
const half = num.ushrn(1)
|
|
3307
3314
|
const r2: number = num.andln(1)
|
|
@@ -4022,7 +4029,7 @@ export default class BigNumber {
|
|
|
4022
4029
|
this.red,
|
|
4023
4030
|
'fromRed works only with numbers in reduction context'
|
|
4024
4031
|
)
|
|
4025
|
-
return
|
|
4032
|
+
return this.red.convertFrom(this)
|
|
4026
4033
|
}
|
|
4027
4034
|
|
|
4028
4035
|
/**
|
|
@@ -4059,7 +4066,7 @@ export default class BigNumber {
|
|
|
4059
4066
|
*/
|
|
4060
4067
|
redAdd (num: BigNumber): BigNumber {
|
|
4061
4068
|
this.assert(this.red, 'redAdd works only with red numbers')
|
|
4062
|
-
return
|
|
4069
|
+
return this.red.add(this, num)
|
|
4063
4070
|
}
|
|
4064
4071
|
|
|
4065
4072
|
/**
|
|
@@ -4078,7 +4085,7 @@ export default class BigNumber {
|
|
|
4078
4085
|
*/
|
|
4079
4086
|
redIAdd (num: BigNumber): BigNumber {
|
|
4080
4087
|
this.assert(this.red, 'redIAdd works only with red numbers')
|
|
4081
|
-
return
|
|
4088
|
+
return this.red.iadd(this, num)
|
|
4082
4089
|
}
|
|
4083
4090
|
|
|
4084
4091
|
/**
|
|
@@ -4097,7 +4104,7 @@ export default class BigNumber {
|
|
|
4097
4104
|
*/
|
|
4098
4105
|
redSub (num: BigNumber): BigNumber {
|
|
4099
4106
|
this.assert(this.red, 'redSub works only with red numbers')
|
|
4100
|
-
return
|
|
4107
|
+
return this.red.sub(this, num)
|
|
4101
4108
|
}
|
|
4102
4109
|
|
|
4103
4110
|
/**
|
|
@@ -4116,7 +4123,7 @@ export default class BigNumber {
|
|
|
4116
4123
|
*/
|
|
4117
4124
|
redISub (num: BigNumber): BigNumber {
|
|
4118
4125
|
this.assert(this.red, 'redISub works only with red numbers')
|
|
4119
|
-
return
|
|
4126
|
+
return this.red.isub(this, num)
|
|
4120
4127
|
}
|
|
4121
4128
|
|
|
4122
4129
|
/**
|
|
@@ -4135,7 +4142,7 @@ export default class BigNumber {
|
|
|
4135
4142
|
*/
|
|
4136
4143
|
redShl (num: number): BigNumber {
|
|
4137
4144
|
this.assert(this.red, 'redShl works only with red numbers')
|
|
4138
|
-
return
|
|
4145
|
+
return this.red.shl(this, num)
|
|
4139
4146
|
}
|
|
4140
4147
|
|
|
4141
4148
|
/**
|
|
@@ -4154,8 +4161,8 @@ export default class BigNumber {
|
|
|
4154
4161
|
*/
|
|
4155
4162
|
redMul (num: BigNumber): BigNumber {
|
|
4156
4163
|
this.assert(this.red, 'redMul works only with red numbers')
|
|
4157
|
-
|
|
4158
|
-
return
|
|
4164
|
+
this.red.verify2(this, num)
|
|
4165
|
+
return this.red.mul(this, num)
|
|
4159
4166
|
}
|
|
4160
4167
|
|
|
4161
4168
|
/**
|
|
@@ -4173,8 +4180,8 @@ export default class BigNumber {
|
|
|
4173
4180
|
*/
|
|
4174
4181
|
redIMul (num: BigNumber): BigNumber {
|
|
4175
4182
|
this.assert(this.red, 'redMul works only with red numbers')
|
|
4176
|
-
|
|
4177
|
-
return
|
|
4183
|
+
this.red.verify2(this, num)
|
|
4184
|
+
return this.red.imul(this, num)
|
|
4178
4185
|
}
|
|
4179
4186
|
|
|
4180
4187
|
/**
|
|
@@ -4194,8 +4201,8 @@ export default class BigNumber {
|
|
|
4194
4201
|
*/
|
|
4195
4202
|
redSqr (): BigNumber {
|
|
4196
4203
|
this.assert(this.red, 'redSqr works only with red numbers')
|
|
4197
|
-
|
|
4198
|
-
return
|
|
4204
|
+
this.red.verify1(this)
|
|
4205
|
+
return this.red.sqr(this)
|
|
4199
4206
|
}
|
|
4200
4207
|
|
|
4201
4208
|
/**
|
|
@@ -4215,8 +4222,8 @@ export default class BigNumber {
|
|
|
4215
4222
|
*/
|
|
4216
4223
|
redISqr (): BigNumber {
|
|
4217
4224
|
this.assert(this.red, 'redISqr works only with red numbers')
|
|
4218
|
-
|
|
4219
|
-
return
|
|
4225
|
+
this.red.verify1(this)
|
|
4226
|
+
return this.red.isqr(this)
|
|
4220
4227
|
}
|
|
4221
4228
|
|
|
4222
4229
|
/**
|
|
@@ -4237,8 +4244,8 @@ export default class BigNumber {
|
|
|
4237
4244
|
*/
|
|
4238
4245
|
redSqrt (): BigNumber {
|
|
4239
4246
|
this.assert(this.red, 'redSqrt works only with red numbers')
|
|
4240
|
-
|
|
4241
|
-
return
|
|
4247
|
+
this.red.verify1(this)
|
|
4248
|
+
return this.red.sqrt(this)
|
|
4242
4249
|
}
|
|
4243
4250
|
|
|
4244
4251
|
/**
|
|
@@ -4256,8 +4263,8 @@ export default class BigNumber {
|
|
|
4256
4263
|
*/
|
|
4257
4264
|
redInvm (): BigNumber {
|
|
4258
4265
|
this.assert(this.red, 'redInvm works only with red numbers')
|
|
4259
|
-
|
|
4260
|
-
return
|
|
4266
|
+
this.red.verify1(this)
|
|
4267
|
+
return this.red.invm(this)
|
|
4261
4268
|
}
|
|
4262
4269
|
|
|
4263
4270
|
/**
|
|
@@ -4275,8 +4282,8 @@ export default class BigNumber {
|
|
|
4275
4282
|
*/
|
|
4276
4283
|
redNeg (): BigNumber {
|
|
4277
4284
|
this.assert(this.red, 'redNeg works only with red numbers')
|
|
4278
|
-
|
|
4279
|
-
return
|
|
4285
|
+
this.red.verify1(this)
|
|
4286
|
+
return this.red.neg(this)
|
|
4280
4287
|
}
|
|
4281
4288
|
|
|
4282
4289
|
/**
|
|
@@ -4295,9 +4302,9 @@ export default class BigNumber {
|
|
|
4295
4302
|
* let result = a.redPow(b); // equivalent to (a^b) mod red
|
|
4296
4303
|
*/
|
|
4297
4304
|
redPow (num: BigNumber): BigNumber {
|
|
4298
|
-
this.assert(
|
|
4299
|
-
|
|
4300
|
-
return
|
|
4305
|
+
this.assert(this.red != null && num.red == null, 'redPow(normalNum)')
|
|
4306
|
+
this.red.verify1(this)
|
|
4307
|
+
return this.red.pow(this, num)
|
|
4301
4308
|
}
|
|
4302
4309
|
|
|
4303
4310
|
/**
|
|
@@ -4471,7 +4478,7 @@ export default class BigNumber {
|
|
|
4471
4478
|
*/
|
|
4472
4479
|
static fromBits (bits: number, strict: boolean = false): BigNumber {
|
|
4473
4480
|
// Convert to signed 32-bit value manually without using Buffer
|
|
4474
|
-
bits = (bits & 0x80000000) ? bits - 0x100000000 : bits
|
|
4481
|
+
bits = (bits & 0x80000000) !== 0 ? bits - 0x100000000 : bits
|
|
4475
4482
|
if (strict && (bits & 0x00800000) !== 0) {
|
|
4476
4483
|
throw new Error('negative bit set')
|
|
4477
4484
|
}
|
|
@@ -4480,10 +4487,10 @@ export default class BigNumber {
|
|
|
4480
4487
|
|
|
4481
4488
|
// Manually create the byte array (similar to the original buffer)
|
|
4482
4489
|
let bytes = [
|
|
4483
|
-
(nword >> 24) &
|
|
4484
|
-
(nword >> 16) &
|
|
4485
|
-
(nword >> 8) &
|
|
4486
|
-
nword &
|
|
4490
|
+
(nword >> 24) & 0xff,
|
|
4491
|
+
(nword >> 16) & 0xff,
|
|
4492
|
+
(nword >> 8) & 0xff,
|
|
4493
|
+
nword & 0xff
|
|
4487
4494
|
]
|
|
4488
4495
|
|
|
4489
4496
|
if (nsize <= 3) {
|
|
@@ -4514,7 +4521,7 @@ export default class BigNumber {
|
|
|
4514
4521
|
* const bits = bigNumber.toBits();
|
|
4515
4522
|
*/
|
|
4516
4523
|
toBits (): number {
|
|
4517
|
-
let byteArray
|
|
4524
|
+
let byteArray: number[]
|
|
4518
4525
|
if (this.ltn(0)) {
|
|
4519
4526
|
byteArray = this.neg().toArray('be')
|
|
4520
4527
|
} else {
|
|
@@ -4527,7 +4534,7 @@ export default class BigNumber {
|
|
|
4527
4534
|
}
|
|
4528
4535
|
|
|
4529
4536
|
// For the case where byteArray represents '00', the bits should be 0x00000000
|
|
4530
|
-
if (byteArray.every(byte => byte === 0)) {
|
|
4537
|
+
if (byteArray.every((byte) => byte === 0)) {
|
|
4531
4538
|
return 0x00000000
|
|
4532
4539
|
}
|
|
4533
4540
|
|
|
@@ -4540,7 +4547,7 @@ export default class BigNumber {
|
|
|
4540
4547
|
|
|
4541
4548
|
// We're interested in the first three bytes for the "nword"
|
|
4542
4549
|
// or in smaller cases, what's available
|
|
4543
|
-
let nword = byteArray.slice(0, 3).reduce((acc, val) =>
|
|
4550
|
+
let nword = byteArray.slice(0, 3).reduce((acc, val) => acc * 256 + val, 0)
|
|
4544
4551
|
|
|
4545
4552
|
// Ensure we don't have the sign bit set initially
|
|
4546
4553
|
if ((nword & 0x800000) !== 0) {
|
|
@@ -4577,7 +4584,9 @@ export default class BigNumber {
|
|
|
4577
4584
|
* const bigNumber = BigNumber.fromScriptNum(num, true, 5)
|
|
4578
4585
|
*/
|
|
4579
4586
|
static fromScriptNum (
|
|
4580
|
-
num: number[],
|
|
4587
|
+
num: number[],
|
|
4588
|
+
requireMinimal?: boolean,
|
|
4589
|
+
maxNumSize?: number
|
|
4581
4590
|
): BigNumber {
|
|
4582
4591
|
if (maxNumSize === undefined) {
|
|
4583
4592
|
maxNumSize = Number.MAX_SAFE_INTEGER
|
|
@@ -4585,19 +4594,19 @@ export default class BigNumber {
|
|
|
4585
4594
|
if (num.length > maxNumSize) {
|
|
4586
4595
|
throw new Error('script number overflow')
|
|
4587
4596
|
}
|
|
4588
|
-
if (requireMinimal && num.length > 0) {
|
|
4589
|
-
|
|
4590
|
-
|
|
4591
|
-
|
|
4592
|
-
|
|
4593
|
-
|
|
4594
|
-
|
|
4597
|
+
if (requireMinimal === true && num.length > 0) {
|
|
4598
|
+
// Check that the number is encoded with the minimum possible
|
|
4599
|
+
// number of bytes.
|
|
4600
|
+
//
|
|
4601
|
+
// If the most-significant-byte - excluding the sign bit - is zero
|
|
4602
|
+
// then we're not minimal. Note how this test also rejects the
|
|
4603
|
+
// negative-zero encoding, 0x80.
|
|
4595
4604
|
if ((num[num.length - 1] & 0x7f) === 0) {
|
|
4596
|
-
|
|
4597
|
-
|
|
4598
|
-
|
|
4599
|
-
|
|
4600
|
-
|
|
4605
|
+
// One exception: if there's more than one byte and the most
|
|
4606
|
+
// significant bit of the second-most-significant-byte is set
|
|
4607
|
+
// it would conflict with the sign bit. An example of this case
|
|
4608
|
+
// is +-255, which encode to 0xff00 and 0xff80 respectively.
|
|
4609
|
+
// (big-endian).
|
|
4601
4610
|
if (num.length <= 1 || (num[num.length - 2] & 0x80) === 0) {
|
|
4602
4611
|
throw new Error('non-minimally encoded script number')
|
|
4603
4612
|
}
|