@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
|
@@ -119,11 +119,11 @@ export default class Spend {
|
|
|
119
119
|
operation = this.lockingScript.chunks[this.programCounter];
|
|
120
120
|
}
|
|
121
121
|
const isOpcodeDisabled = (op) => {
|
|
122
|
-
return op === OP.OP_2MUL ||
|
|
122
|
+
return (op === OP.OP_2MUL ||
|
|
123
123
|
op === OP.OP_2DIV ||
|
|
124
124
|
op === OP.OP_VERIF ||
|
|
125
125
|
op === OP.OP_VERNOTIF ||
|
|
126
|
-
op === OP.OP_VER;
|
|
126
|
+
op === OP.OP_VER);
|
|
127
127
|
};
|
|
128
128
|
const isChunkMinimal = (chunk) => {
|
|
129
129
|
const data = chunk.data;
|
|
@@ -157,7 +157,7 @@ export default class Spend {
|
|
|
157
157
|
}
|
|
158
158
|
return true;
|
|
159
159
|
};
|
|
160
|
-
// Following example from sCrypt now using Number.MAX_SAFE_INTEGER (bsv/lib/transaction/input/input
|
|
160
|
+
// Following example from sCrypt now using Number.MAX_SAFE_INTEGER (bsv/lib/transaction/input/input).
|
|
161
161
|
const isMinimallyEncoded = (buf, maxNumSize = Number.MAX_SAFE_INTEGER) => {
|
|
162
162
|
if (buf.length > maxNumSize) {
|
|
163
163
|
return false;
|
|
@@ -292,7 +292,7 @@ export default class Spend {
|
|
|
292
292
|
this.scriptEvaluationError('The non-compressed public key must be 65 bytes.');
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
|
-
else if (
|
|
295
|
+
else if (buf[0] === 0x02 || buf[0] === 0x03) {
|
|
296
296
|
if (buf.length !== 33) {
|
|
297
297
|
this.scriptEvaluationError('The compressed public key must be 33 bytes.');
|
|
298
298
|
}
|
|
@@ -320,7 +320,7 @@ export default class Spend {
|
|
|
320
320
|
return verify(hash, sig, pubkey);
|
|
321
321
|
};
|
|
322
322
|
const isScriptExecuting = !this.ifStack.includes(false);
|
|
323
|
-
let buf, buf1, buf2, buf3, spliced, n, size, rawnum, num, signbit, x1, x2, x3, bn, bn1, bn2, bn3, bufSig, bufPubkey, subscript
|
|
323
|
+
let buf, buf1, buf2, buf3, spliced, n, size, rawnum, num, signbit, x1, x2, x3, bn, bn1, bn2, bn3, bufSig, bufPubkey, subscript;
|
|
324
324
|
let sig, pubkey, i, fOk, nKeysCount, ikey, ikey2, nSigsCount, isig;
|
|
325
325
|
let fValue, fEqual, fSuccess;
|
|
326
326
|
// Read instruction
|
|
@@ -335,7 +335,8 @@ export default class Spend {
|
|
|
335
335
|
if (isScriptExecuting && isOpcodeDisabled(currentOpcode)) {
|
|
336
336
|
this.scriptEvaluationError('This opcode is currently disabled.');
|
|
337
337
|
}
|
|
338
|
-
if (isScriptExecuting &&
|
|
338
|
+
if (isScriptExecuting &&
|
|
339
|
+
currentOpcode >= 0 &&
|
|
339
340
|
currentOpcode <= OP.OP_PUSHDATA4) {
|
|
340
341
|
if (requireMinimalPush && !isChunkMinimal(operation)) {
|
|
341
342
|
this.scriptEvaluationError('This data is not minimally-encoded.');
|
|
@@ -347,7 +348,8 @@ export default class Spend {
|
|
|
347
348
|
this.stack.push(operation.data);
|
|
348
349
|
}
|
|
349
350
|
}
|
|
350
|
-
else if (isScriptExecuting ||
|
|
351
|
+
else if (isScriptExecuting ||
|
|
352
|
+
(OP.OP_IF <= currentOpcode && currentOpcode <= OP.OP_ENDIF)) {
|
|
351
353
|
switch (currentOpcode) {
|
|
352
354
|
case OP.OP_1NEGATE:
|
|
353
355
|
case OP.OP_1:
|
|
@@ -466,7 +468,8 @@ export default class Spend {
|
|
|
466
468
|
if (this.ifStack.length === 0) {
|
|
467
469
|
this.scriptEvaluationError('OP_ELSE requires a preceeding OP_IF.');
|
|
468
470
|
}
|
|
469
|
-
this.ifStack[this.ifStack.length - 1] =
|
|
471
|
+
this.ifStack[this.ifStack.length - 1] =
|
|
472
|
+
!this.ifStack[this.ifStack.length - 1];
|
|
470
473
|
break;
|
|
471
474
|
case OP.OP_ENDIF:
|
|
472
475
|
if (this.ifStack.length === 0) {
|
|
@@ -500,13 +503,13 @@ export default class Spend {
|
|
|
500
503
|
if (this.stack.length < 1) {
|
|
501
504
|
this.scriptEvaluationError('OP_TOALTSTACK requires at oeast one item to be on the stack.');
|
|
502
505
|
}
|
|
503
|
-
this.altStack.push(this.stack.pop());
|
|
506
|
+
this.altStack.push(this.stack.pop() ?? []);
|
|
504
507
|
break;
|
|
505
508
|
case OP.OP_FROMALTSTACK:
|
|
506
509
|
if (this.altStack.length < 1) {
|
|
507
510
|
this.scriptEvaluationError('OP_FROMALTSTACK requires at least one item to be on the stack.');
|
|
508
511
|
}
|
|
509
|
-
this.stack.push(this.altStack.pop());
|
|
512
|
+
this.stack.push(this.altStack.pop() ?? []);
|
|
510
513
|
break;
|
|
511
514
|
case OP.OP_2DROP:
|
|
512
515
|
if (this.stack.length < 2) {
|
|
@@ -765,10 +768,10 @@ export default class Spend {
|
|
|
765
768
|
}
|
|
766
769
|
break;
|
|
767
770
|
case OP.OP_NOT:
|
|
768
|
-
bn = new BigNumber(
|
|
771
|
+
bn = new BigNumber(bn.cmpn(0) === 0 ? 1 : 0 + 0);
|
|
769
772
|
break;
|
|
770
773
|
case OP.OP_0NOTEQUAL:
|
|
771
|
-
bn = new BigNumber(
|
|
774
|
+
bn = new BigNumber(bn.cmpn(0) !== 0 ? 1 : 0 + 0);
|
|
772
775
|
break;
|
|
773
776
|
}
|
|
774
777
|
this.stack.pop();
|
|
@@ -819,37 +822,37 @@ export default class Spend {
|
|
|
819
822
|
bn = bn1.mod(bn2);
|
|
820
823
|
break;
|
|
821
824
|
case OP.OP_BOOLAND:
|
|
822
|
-
bn = new BigNumber(
|
|
825
|
+
bn = new BigNumber(bn1.cmpn(0) !== 0 && bn2.cmpn(0) !== 0 ? 1 : 0 + 0);
|
|
823
826
|
break;
|
|
824
827
|
case OP.OP_BOOLOR:
|
|
825
|
-
bn = new BigNumber(
|
|
828
|
+
bn = new BigNumber(bn1.cmpn(0) !== 0 || bn2.cmpn(0) !== 0 ? 1 : 0 + 0);
|
|
826
829
|
break;
|
|
827
830
|
case OP.OP_NUMEQUAL:
|
|
828
|
-
bn = new BigNumber(
|
|
831
|
+
bn = new BigNumber(bn1.cmp(bn2) === 0 ? 1 : 0 + 0);
|
|
829
832
|
break;
|
|
830
833
|
case OP.OP_NUMEQUALVERIFY:
|
|
831
|
-
bn = new BigNumber(
|
|
834
|
+
bn = new BigNumber(bn1.cmp(bn2) === 0 ? 1 : 0 + 0);
|
|
832
835
|
break;
|
|
833
836
|
case OP.OP_NUMNOTEQUAL:
|
|
834
|
-
bn = new BigNumber(
|
|
837
|
+
bn = new BigNumber(bn1.cmp(bn2) !== 0 ? 1 : 0 + 0);
|
|
835
838
|
break;
|
|
836
839
|
case OP.OP_LESSTHAN:
|
|
837
|
-
bn = new BigNumber(
|
|
840
|
+
bn = new BigNumber(bn1.cmp(bn2) < 0 ? 1 : 0 + 0);
|
|
838
841
|
break;
|
|
839
842
|
case OP.OP_GREATERTHAN:
|
|
840
|
-
bn = new BigNumber(
|
|
843
|
+
bn = new BigNumber(bn1.cmp(bn2) > 0 ? 1 : 0 + 0);
|
|
841
844
|
break;
|
|
842
845
|
case OP.OP_LESSTHANOREQUAL:
|
|
843
|
-
bn = new BigNumber(
|
|
846
|
+
bn = new BigNumber(bn1.cmp(bn2) <= 0 ? 1 : 0 + 0);
|
|
844
847
|
break;
|
|
845
848
|
case OP.OP_GREATERTHANOREQUAL:
|
|
846
|
-
bn = new BigNumber(
|
|
849
|
+
bn = new BigNumber(bn1.cmp(bn2) >= 0 ? 1 : 0 + 0);
|
|
847
850
|
break;
|
|
848
851
|
case OP.OP_MIN:
|
|
849
|
-
bn =
|
|
852
|
+
bn = bn1.cmp(bn2) < 0 ? bn1 : bn2;
|
|
850
853
|
break;
|
|
851
854
|
case OP.OP_MAX:
|
|
852
|
-
bn =
|
|
855
|
+
bn = bn1.cmp(bn2) > 0 ? bn1 : bn2;
|
|
853
856
|
break;
|
|
854
857
|
}
|
|
855
858
|
this.stack.pop();
|
|
@@ -871,7 +874,7 @@ export default class Spend {
|
|
|
871
874
|
bn1 = BigNumber.fromScriptNum(this.stacktop(-3), requireMinimalPush);
|
|
872
875
|
bn2 = BigNumber.fromScriptNum(this.stacktop(-2), requireMinimalPush);
|
|
873
876
|
bn3 = BigNumber.fromScriptNum(this.stacktop(-1), requireMinimalPush);
|
|
874
|
-
fValue =
|
|
877
|
+
fValue = bn2.cmp(bn1) <= 0 && bn1.cmp(bn3) < 0;
|
|
875
878
|
this.stack.pop();
|
|
876
879
|
this.stack.pop();
|
|
877
880
|
this.stack.pop();
|
|
@@ -881,10 +884,11 @@ export default class Spend {
|
|
|
881
884
|
case OP.OP_SHA1:
|
|
882
885
|
case OP.OP_SHA256:
|
|
883
886
|
case OP.OP_HASH160:
|
|
884
|
-
case OP.OP_HASH256:
|
|
887
|
+
case OP.OP_HASH256: {
|
|
885
888
|
if (this.stack.length < 1) {
|
|
886
889
|
this.scriptEvaluationError(`${OP[currentOpcode]} requires at least one item to be on the stack.`);
|
|
887
890
|
}
|
|
891
|
+
let bufHash = []; // ✅ Initialize bufHash to an empty array
|
|
888
892
|
buf = this.stacktop(-1);
|
|
889
893
|
if (currentOpcode === OP.OP_RIPEMD160) {
|
|
890
894
|
bufHash = Hash.ripemd160(buf);
|
|
@@ -904,6 +908,7 @@ export default class Spend {
|
|
|
904
908
|
this.stack.pop();
|
|
905
909
|
this.stack.push(bufHash);
|
|
906
910
|
break;
|
|
911
|
+
}
|
|
907
912
|
case OP.OP_CODESEPARATOR:
|
|
908
913
|
this.lastCodeSeparator = this.programCounter;
|
|
909
914
|
break;
|
|
@@ -921,10 +926,10 @@ export default class Spend {
|
|
|
921
926
|
// Subset of script starting at the most recent codeseparator
|
|
922
927
|
// CScript scriptCode(pbegincodehash, pend);
|
|
923
928
|
if (this.context === 'UnlockingScript') {
|
|
924
|
-
subscript = new Script(this.unlockingScript.chunks.slice(this.lastCodeSeparator));
|
|
929
|
+
subscript = new Script(this.unlockingScript.chunks.slice(this.lastCodeSeparator ?? 0));
|
|
925
930
|
}
|
|
926
931
|
else {
|
|
927
|
-
subscript = new Script(this.lockingScript.chunks.slice(this.lastCodeSeparator));
|
|
932
|
+
subscript = new Script(this.lockingScript.chunks.slice(this.lastCodeSeparator ?? 0));
|
|
928
933
|
}
|
|
929
934
|
// Drop the signature, since there's no way for a signature to sign itself
|
|
930
935
|
subscript.findAndDelete(new Script().writeBin(bufSig));
|
|
@@ -985,10 +990,10 @@ export default class Spend {
|
|
|
985
990
|
}
|
|
986
991
|
// Subset of script starting at the most recent codeseparator
|
|
987
992
|
if (this.context === 'UnlockingScript') {
|
|
988
|
-
subscript = new Script(this.unlockingScript.chunks.slice(this.lastCodeSeparator));
|
|
993
|
+
subscript = new Script(this.unlockingScript.chunks.slice(this.lastCodeSeparator ?? 0));
|
|
989
994
|
}
|
|
990
995
|
else {
|
|
991
|
-
subscript = new Script(this.lockingScript.chunks.slice(this.lastCodeSeparator));
|
|
996
|
+
subscript = new Script(this.lockingScript.chunks.slice(this.lastCodeSeparator ?? 0));
|
|
992
997
|
}
|
|
993
998
|
// Drop the signatures, since there's no way for a signature to sign itself
|
|
994
999
|
for (let k = 0; k < nSigsCount; k++) {
|
|
@@ -1028,7 +1033,7 @@ export default class Spend {
|
|
|
1028
1033
|
}
|
|
1029
1034
|
// Clean up stack of actual arguments
|
|
1030
1035
|
while (i-- > 1) {
|
|
1031
|
-
if (!fSuccess &&
|
|
1036
|
+
if (!fSuccess && ikey2 === 0 && this.stacktop(-1).length > 0) {
|
|
1032
1037
|
this.scriptEvaluationError(`${OP[currentOpcode]} failed to verify a signature, and requires an empty signature when verification fails.`);
|
|
1033
1038
|
}
|
|
1034
1039
|
if (ikey2 > 0) {
|
|
@@ -1045,7 +1050,8 @@ export default class Spend {
|
|
|
1045
1050
|
if (this.stack.length < 1) {
|
|
1046
1051
|
this.scriptEvaluationError(`${OP[currentOpcode]} requires an extra item to be on the stack.`);
|
|
1047
1052
|
}
|
|
1048
|
-
if (this.stacktop(-1).length > 0) {
|
|
1053
|
+
if (this.stacktop(-1).length > 0) {
|
|
1054
|
+
// NOTE: Is this necessary? We don't care about malleability.
|
|
1049
1055
|
this.scriptEvaluationError(`${OP[currentOpcode]} requires the extra stack item to be empty.`);
|
|
1050
1056
|
}
|
|
1051
1057
|
this.stack.pop();
|
|
@@ -1164,7 +1170,8 @@ export default class Spend {
|
|
|
1164
1170
|
}
|
|
1165
1171
|
while (true) {
|
|
1166
1172
|
this.step();
|
|
1167
|
-
if (this.context === 'LockingScript' &&
|
|
1173
|
+
if (this.context === 'LockingScript' &&
|
|
1174
|
+
this.programCounter >= this.lockingScript.chunks.length) {
|
|
1168
1175
|
break;
|
|
1169
1176
|
}
|
|
1170
1177
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Spend.js","sourceRoot":"","sources":["../../../../src/script/Spend.ts"],"names":[],"mappings":"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AAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,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"}
|
|
1
|
+
{"version":3,"file":"Spend.js","sourceRoot":"","sources":["../../../../src/script/Spend.ts"],"names":[],"mappings":"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AC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBA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"}
|
|
@@ -4,6 +4,11 @@ import LockingScript from '../LockingScript.js';
|
|
|
4
4
|
import UnlockingScript from '../UnlockingScript.js';
|
|
5
5
|
import TransactionSignature from '../../primitives/TransactionSignature.js';
|
|
6
6
|
import { sha256 } from '../../primitives/Hash.js';
|
|
7
|
+
function verifyTruthy(v) {
|
|
8
|
+
if (v == null)
|
|
9
|
+
throw new Error('must have value');
|
|
10
|
+
return v;
|
|
11
|
+
}
|
|
7
12
|
/**
|
|
8
13
|
* P2PKH (Pay To Public Key Hash) class implementing ScriptTemplate.
|
|
9
14
|
*
|
|
@@ -20,15 +25,17 @@ export default class P2PKH {
|
|
|
20
25
|
let data;
|
|
21
26
|
if (typeof pubkeyhash === 'string') {
|
|
22
27
|
const hash = fromBase58Check(pubkeyhash);
|
|
23
|
-
if (hash.prefix[0] !== 0x00 && hash.prefix[0] !== 0x6f)
|
|
28
|
+
if (hash.prefix[0] !== 0x00 && hash.prefix[0] !== 0x6f) {
|
|
24
29
|
throw new Error('only P2PKH is supported');
|
|
30
|
+
}
|
|
25
31
|
data = hash.data;
|
|
26
32
|
}
|
|
27
33
|
else {
|
|
28
34
|
data = pubkeyhash;
|
|
29
35
|
}
|
|
30
|
-
if (data.length !== 20)
|
|
36
|
+
if (data.length !== 20) {
|
|
31
37
|
throw new Error('P2PKH hash length must be 20 bytes');
|
|
38
|
+
}
|
|
32
39
|
return new LockingScript([
|
|
33
40
|
{ op: OP.OP_DUP },
|
|
34
41
|
{ op: OP.OP_HASH160 },
|
|
@@ -70,27 +77,33 @@ export default class P2PKH {
|
|
|
70
77
|
}
|
|
71
78
|
const input = tx.inputs[inputIndex];
|
|
72
79
|
const otherInputs = tx.inputs.filter((_, index) => index !== inputIndex);
|
|
73
|
-
const sourceTXID = input.sourceTXID
|
|
74
|
-
if (
|
|
80
|
+
const sourceTXID = input.sourceTXID ?? input.sourceTransaction?.id('hex');
|
|
81
|
+
if (sourceTXID == null || sourceTXID === undefined) {
|
|
82
|
+
throw new Error('The input sourceTXID or sourceTransaction is required for transaction signing.');
|
|
83
|
+
}
|
|
84
|
+
if (sourceTXID === '') {
|
|
75
85
|
throw new Error('The input sourceTXID or sourceTransaction is required for transaction signing.');
|
|
76
86
|
}
|
|
77
|
-
sourceSatoshis ||=
|
|
78
|
-
|
|
87
|
+
sourceSatoshis ||=
|
|
88
|
+
input.sourceTransaction?.outputs[input.sourceOutputIndex].satoshis;
|
|
89
|
+
if (sourceSatoshis == null || sourceSatoshis === undefined) {
|
|
79
90
|
throw new Error('The sourceSatoshis or input sourceTransaction is required for transaction signing.');
|
|
80
91
|
}
|
|
81
|
-
lockingScript ||=
|
|
82
|
-
|
|
92
|
+
lockingScript ||=
|
|
93
|
+
input.sourceTransaction?.outputs[input.sourceOutputIndex]
|
|
94
|
+
.lockingScript;
|
|
95
|
+
if (lockingScript == null) {
|
|
83
96
|
throw new Error('The lockingScript or input sourceTransaction is required for transaction signing.');
|
|
84
97
|
}
|
|
85
98
|
const preimage = TransactionSignature.format({
|
|
86
99
|
sourceTXID,
|
|
87
|
-
sourceOutputIndex: input.sourceOutputIndex,
|
|
100
|
+
sourceOutputIndex: verifyTruthy(input.sourceOutputIndex),
|
|
88
101
|
sourceSatoshis,
|
|
89
102
|
transactionVersion: tx.version,
|
|
90
103
|
otherInputs,
|
|
91
104
|
inputIndex,
|
|
92
105
|
outputs: tx.outputs,
|
|
93
|
-
inputSequence: input.sequence,
|
|
106
|
+
inputSequence: verifyTruthy(input.sequence),
|
|
94
107
|
subscript: lockingScript,
|
|
95
108
|
lockTime: tx.lockTime,
|
|
96
109
|
scope: signatureScope
|
|
@@ -98,7 +111,9 @@ export default class P2PKH {
|
|
|
98
111
|
const rawSignature = privateKey.sign(sha256(preimage));
|
|
99
112
|
const sig = new TransactionSignature(rawSignature.r, rawSignature.s, signatureScope);
|
|
100
113
|
const sigForScript = sig.toChecksigFormat();
|
|
101
|
-
const pubkeyForScript = privateKey
|
|
114
|
+
const pubkeyForScript = privateKey
|
|
115
|
+
.toPublicKey()
|
|
116
|
+
.encode(true);
|
|
102
117
|
return new UnlockingScript([
|
|
103
118
|
{ op: sigForScript.length, data: sigForScript },
|
|
104
119
|
{ op: pubkeyForScript.length, data: pubkeyForScript }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"P2PKH.js","sourceRoot":"","sources":["../../../../../src/script/templates/P2PKH.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAA;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,aAAa,MAAM,qBAAqB,CAAA;AAC/C,OAAO,eAAe,MAAM,uBAAuB,CAAA;AAGnD,OAAO,oBAAoB,MAAM,0CAA0C,CAAA;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAGjD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB;;;;;OAKG;IACH,IAAI,CAAC,UAA6B;QAChC,IAAI,IAAc,CAAA;QAClB,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"P2PKH.js","sourceRoot":"","sources":["../../../../../src/script/templates/P2PKH.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { LockingScript, UnlockingScript, OP } from '../index.js';
|
|
2
2
|
import { Utils, Hash, TransactionSignature, Signature, PublicKey } from '../../primitives/index.js';
|
|
3
|
+
function verifyTruthy(v) {
|
|
4
|
+
if (v == null)
|
|
5
|
+
throw new Error('must have value');
|
|
6
|
+
return v;
|
|
7
|
+
}
|
|
3
8
|
/**
|
|
4
9
|
* For a given piece of data to push onto the stack in script, creates the correct minimally-encoded script chunk,
|
|
5
10
|
* including the correct push operation.
|
|
@@ -47,12 +52,14 @@ export default class PushDrop {
|
|
|
47
52
|
* @returns An object containing PushDrop token fields and the locking public key. If a signature was included, it will be the last field.
|
|
48
53
|
*/
|
|
49
54
|
static decode(script) {
|
|
50
|
-
const lockingPublicKey = PublicKey.fromString(Utils.toHex(script.chunks[0].data))
|
|
55
|
+
const lockingPublicKey = PublicKey.fromString(Utils.toHex(verifyTruthy(script.chunks[0].data)) // ✅ Ensure not undefined
|
|
56
|
+
);
|
|
51
57
|
const fields = [];
|
|
52
58
|
for (let i = 2; i < script.chunks.length; i++) {
|
|
53
|
-
const nextOpcode = script.chunks[i + 1]
|
|
54
|
-
let chunk = script.chunks[i].data;
|
|
55
|
-
if (
|
|
59
|
+
const nextOpcode = script.chunks[i + 1]?.op; // ✅ Prevent accessing `op` from `undefined`
|
|
60
|
+
let chunk = script.chunks[i].data ?? []; // ✅ Ensure `chunk` is always `number[]`
|
|
61
|
+
if (chunk.length === 0) {
|
|
62
|
+
// ✅ Only modify `chunk` if it was empty
|
|
56
63
|
if (script.chunks[i].op >= 80 && script.chunks[i].op <= 95) {
|
|
57
64
|
chunk = [script.chunks[i].op - 80];
|
|
58
65
|
}
|
|
@@ -102,7 +109,10 @@ export default class PushDrop {
|
|
|
102
109
|
});
|
|
103
110
|
const lockChunks = [];
|
|
104
111
|
const pushDropChunks = [];
|
|
105
|
-
lockChunks.push({
|
|
112
|
+
lockChunks.push({
|
|
113
|
+
op: publicKey.length / 2,
|
|
114
|
+
data: Utils.toArray(publicKey, 'hex')
|
|
115
|
+
});
|
|
106
116
|
lockChunks.push({ op: OP.OP_CHECKSIG });
|
|
107
117
|
if (includeSignature) {
|
|
108
118
|
const dataToSign = fields.reduce((a, e) => [...a, ...e], []);
|
|
@@ -122,20 +132,14 @@ export default class PushDrop {
|
|
|
122
132
|
pushDropChunks.push({ op: OP.OP_2DROP });
|
|
123
133
|
notYetDropped -= 2;
|
|
124
134
|
}
|
|
125
|
-
if (notYetDropped) {
|
|
135
|
+
if (notYetDropped !== 0) {
|
|
126
136
|
pushDropChunks.push({ op: OP.OP_DROP });
|
|
127
137
|
}
|
|
128
138
|
if (lockPosition === 'before') {
|
|
129
|
-
return new LockingScript([
|
|
130
|
-
...lockChunks,
|
|
131
|
-
...pushDropChunks
|
|
132
|
-
]);
|
|
139
|
+
return new LockingScript([...lockChunks, ...pushDropChunks]);
|
|
133
140
|
}
|
|
134
141
|
else {
|
|
135
|
-
return new LockingScript([
|
|
136
|
-
...pushDropChunks,
|
|
137
|
-
...lockChunks
|
|
138
|
-
]);
|
|
142
|
+
return new LockingScript([...pushDropChunks, ...lockChunks]);
|
|
139
143
|
}
|
|
140
144
|
}
|
|
141
145
|
/**
|
|
@@ -169,27 +173,30 @@ export default class PushDrop {
|
|
|
169
173
|
}
|
|
170
174
|
const input = tx.inputs[inputIndex];
|
|
171
175
|
const otherInputs = tx.inputs.filter((_, index) => index !== inputIndex);
|
|
172
|
-
const sourceTXID = input.sourceTXID
|
|
173
|
-
if (
|
|
176
|
+
const sourceTXID = input.sourceTXID ?? input.sourceTransaction?.id('hex');
|
|
177
|
+
if (sourceTXID == null || sourceTXID === undefined) {
|
|
174
178
|
throw new Error('The input sourceTXID or sourceTransaction is required for transaction signing.');
|
|
175
179
|
}
|
|
176
|
-
sourceSatoshis ||=
|
|
177
|
-
|
|
180
|
+
sourceSatoshis ||=
|
|
181
|
+
input.sourceTransaction?.outputs[input.sourceOutputIndex].satoshis;
|
|
182
|
+
if (sourceSatoshis == null || sourceSatoshis === undefined) {
|
|
178
183
|
throw new Error('The sourceSatoshis or input sourceTransaction is required for transaction signing.');
|
|
179
184
|
}
|
|
180
|
-
lockingScript ||=
|
|
181
|
-
|
|
185
|
+
lockingScript ||=
|
|
186
|
+
input.sourceTransaction?.outputs[input.sourceOutputIndex]
|
|
187
|
+
.lockingScript;
|
|
188
|
+
if (lockingScript == null) {
|
|
182
189
|
throw new Error('The lockingScript or input sourceTransaction is required for transaction signing.');
|
|
183
190
|
}
|
|
184
191
|
const preimage = TransactionSignature.format({
|
|
185
192
|
sourceTXID,
|
|
186
|
-
sourceOutputIndex: input.sourceOutputIndex,
|
|
193
|
+
sourceOutputIndex: verifyTruthy(input.sourceOutputIndex),
|
|
187
194
|
sourceSatoshis,
|
|
188
195
|
transactionVersion: tx.version,
|
|
189
196
|
otherInputs,
|
|
190
197
|
inputIndex,
|
|
191
198
|
outputs: tx.outputs,
|
|
192
|
-
inputSequence: input.sequence,
|
|
199
|
+
inputSequence: input.sequence ?? 0xffffffff,
|
|
193
200
|
subscript: lockingScript,
|
|
194
201
|
lockTime: tx.lockTime,
|
|
195
202
|
scope: signatureScope
|