@bsv/sdk 1.3.11 → 1.3.13
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/mod.js +15 -15
- package/dist/cjs/mod.js.map +1 -1
- package/dist/cjs/package.json +10 -2
- package/dist/cjs/src/auth/Peer.js +62 -46
- package/dist/cjs/src/auth/Peer.js.map +1 -1
- package/dist/cjs/src/auth/SessionManager.js +4 -4
- package/dist/cjs/src/auth/SessionManager.js.map +1 -1
- package/dist/cjs/src/auth/__tests/Peer.test.js +446 -0
- package/dist/cjs/src/auth/__tests/Peer.test.js.map +1 -0
- package/dist/cjs/src/auth/__tests/SessionManager.test.js +69 -0
- package/dist/cjs/src/auth/__tests/SessionManager.test.js.map +1 -0
- package/dist/cjs/src/auth/certificates/Certificate.js +26 -23
- package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/MasterCertificate.js +26 -24
- package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +8 -8
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js +182 -0
- package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js.map +1 -0
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +22 -22
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js +184 -0
- package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js.map +1 -0
- package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js +75 -0
- package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +1 -0
- package/dist/cjs/src/auth/certificates/index.js +5 -5
- package/dist/cjs/src/auth/certificates/index.js.map +1 -1
- package/dist/cjs/src/auth/clients/AuthFetch.js +74 -64
- package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/cjs/src/auth/clients/index.js +1 -1
- package/dist/cjs/src/auth/clients/index.js.map +1 -1
- package/dist/cjs/src/auth/index.js +7 -7
- package/dist/cjs/src/auth/index.js.map +1 -1
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +62 -54
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/cjs/src/auth/transports/index.js +1 -1
- package/dist/cjs/src/auth/transports/index.js.map +1 -1
- package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js +101 -0
- package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js.map +1 -0
- package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js +106 -0
- package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +1 -0
- package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js +111 -0
- package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js.map +1 -0
- package/dist/cjs/src/auth/utils/createNonce.js +4 -4
- package/dist/cjs/src/auth/utils/createNonce.js.map +1 -1
- package/dist/cjs/src/auth/utils/getVerifiableCertificates.js +2 -2
- package/dist/cjs/src/auth/utils/getVerifiableCertificates.js.map +1 -1
- package/dist/cjs/src/auth/utils/index.js +4 -4
- package/dist/cjs/src/auth/utils/index.js.map +1 -1
- package/dist/cjs/src/auth/utils/validateCertificates.js +2 -2
- package/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -1
- package/dist/cjs/src/auth/utils/verifyNonce.js +3 -3
- package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -1
- package/dist/cjs/src/compat/BSM.js +9 -9
- package/dist/cjs/src/compat/BSM.js.map +1 -1
- package/dist/cjs/src/compat/ECIES.js +157 -116
- package/dist/cjs/src/compat/ECIES.js.map +1 -1
- package/dist/cjs/src/compat/HD.js +75 -75
- package/dist/cjs/src/compat/HD.js.map +1 -1
- package/dist/cjs/src/compat/Mnemonic.js +98 -93
- package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
- package/dist/cjs/src/compat/Utxo.js +5 -5
- package/dist/cjs/src/compat/Utxo.js.map +1 -1
- package/dist/cjs/src/compat/__tests/BSM.test.js +69 -0
- package/dist/cjs/src/compat/__tests/BSM.test.js.map +1 -0
- package/dist/cjs/src/compat/__tests/ECIES.test.js +115 -0
- package/dist/cjs/src/compat/__tests/ECIES.test.js.map +1 -0
- package/dist/cjs/src/compat/__tests/HD.test.js +336 -0
- package/dist/cjs/src/compat/__tests/HD.test.js.map +1 -0
- package/dist/cjs/src/compat/__tests/Mnemonic.test.js +150 -0
- package/dist/cjs/src/compat/__tests/Mnemonic.test.js.map +1 -0
- package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js +175 -0
- package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js.map +1 -0
- package/dist/cjs/src/compat/index.js +9 -9
- package/dist/cjs/src/compat/index.js.map +1 -1
- package/dist/cjs/src/messages/EncryptedMessage.js +17 -15
- package/dist/cjs/src/messages/EncryptedMessage.js.map +1 -1
- package/dist/cjs/src/messages/SignedMessage.js +20 -20
- package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
- package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js +57 -0
- package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js.map +1 -0
- package/dist/cjs/src/messages/__tests/SignedMessage.test.js +52 -0
- package/dist/cjs/src/messages/__tests/SignedMessage.test.js.map +1 -0
- package/dist/cjs/src/messages/index.js +2 -2
- package/dist/cjs/src/messages/index.js.map +1 -1
- package/dist/cjs/src/overlay-tools/LookupResolver.js +20 -13
- package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js +44 -32
- package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +41 -30
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
- package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js +1471 -0
- package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js.map +1 -0
- package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +78 -0
- package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +1 -0
- package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js +933 -0
- package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +1 -0
- package/dist/cjs/src/overlay-tools/index.js +8 -8
- package/dist/cjs/src/overlay-tools/index.js.map +1 -1
- package/dist/cjs/src/primitives/BasePoint.js +2 -2
- package/dist/cjs/src/primitives/BasePoint.js.map +1 -1
- package/dist/cjs/src/primitives/BigNumber.js +46 -59
- package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
- package/dist/cjs/src/primitives/Curve.js +29 -39
- package/dist/cjs/src/primitives/Curve.js.map +1 -1
- package/dist/cjs/src/primitives/DRBG.js +8 -14
- package/dist/cjs/src/primitives/DRBG.js.map +1 -1
- package/dist/cjs/src/primitives/ECDSA.js +24 -24
- package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
- package/dist/cjs/src/primitives/Hash.js +76 -111
- package/dist/cjs/src/primitives/Hash.js.map +1 -1
- package/dist/cjs/src/primitives/JacobianPoint.js +20 -16
- package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
- package/dist/cjs/src/primitives/K256.js +2 -2
- package/dist/cjs/src/primitives/K256.js.map +1 -1
- package/dist/cjs/src/primitives/Mersenne.js +4 -4
- package/dist/cjs/src/primitives/Mersenne.js.map +1 -1
- package/dist/cjs/src/primitives/MontgomoryMethod.js +5 -5
- package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -1
- package/dist/cjs/src/primitives/Point.js +74 -72
- package/dist/cjs/src/primitives/Point.js.map +1 -1
- package/dist/cjs/src/primitives/Polynomial.js +15 -13
- package/dist/cjs/src/primitives/Polynomial.js.map +1 -1
- package/dist/cjs/src/primitives/PrivateKey.js +48 -39
- package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
- package/dist/cjs/src/primitives/PublicKey.js +23 -23
- package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
- package/dist/cjs/src/primitives/Random.js +4 -4
- package/dist/cjs/src/primitives/Random.js.map +1 -1
- package/dist/cjs/src/primitives/ReductionContext.js +11 -11
- package/dist/cjs/src/primitives/ReductionContext.js.map +1 -1
- package/dist/cjs/src/primitives/Schnorr.js +29 -23
- package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
- package/dist/cjs/src/primitives/Signature.js +25 -24
- package/dist/cjs/src/primitives/Signature.js.map +1 -1
- package/dist/cjs/src/primitives/SymmetricKey.js +26 -26
- package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
- package/dist/cjs/src/primitives/TransactionSignature.js +23 -21
- package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/cjs/src/primitives/__tests/AESGCM.test.js +248 -0
- package/dist/cjs/src/primitives/__tests/AESGCM.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js +36 -0
- package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js +36 -0
- package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js +501 -0
- package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js +185 -0
- package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js +149 -0
- package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js +23 -0
- package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js +268 -0
- package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js +147 -0
- package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js +322 -0
- package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/Curve.unit.test.js +145 -0
- package/dist/cjs/src/primitives/__tests/Curve.unit.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/DRBG.test.js +22 -0
- package/dist/cjs/src/primitives/__tests/DRBG.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/DRBG.vectors.js +170 -0
- package/dist/cjs/src/primitives/__tests/DRBG.vectors.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/ECDH.test.js +34 -0
- package/dist/cjs/src/primitives/__tests/ECDH.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/ECDSA.test.js +89 -0
- package/dist/cjs/src/primitives/__tests/ECDSA.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/HMAC.test.js +60 -0
- package/dist/cjs/src/primitives/__tests/HMAC.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/Hash.test.js +159 -0
- package/dist/cjs/src/primitives/__tests/Hash.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js +122 -0
- package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js +105 -0
- package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/PrivateKey.test.js +90 -0
- package/dist/cjs/src/primitives/__tests/PrivateKey.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/PublicKey.test.js +83 -0
- package/dist/cjs/src/primitives/__tests/PublicKey.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/Random.test.js +19 -0
- package/dist/cjs/src/primitives/__tests/Random.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/Reader.test.js +282 -0
- package/dist/cjs/src/primitives/__tests/Reader.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/ReductionContext.test.js +224 -0
- package/dist/cjs/src/primitives/__tests/ReductionContext.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/Schnorr.test.js +213 -0
- package/dist/cjs/src/primitives/__tests/Schnorr.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js +51 -0
- package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js +43 -0
- package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/Writer.test.js +176 -0
- package/dist/cjs/src/primitives/__tests/Writer.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/bug-31.test.js +32 -0
- package/dist/cjs/src/primitives/__tests/bug-31.test.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/sighash.vectors.js +3506 -0
- package/dist/cjs/src/primitives/__tests/sighash.vectors.js.map +1 -0
- package/dist/cjs/src/primitives/__tests/utils.test.js +110 -0
- package/dist/cjs/src/primitives/__tests/utils.test.js.map +1 -0
- package/dist/cjs/src/primitives/index.js +27 -27
- package/dist/cjs/src/primitives/index.js.map +1 -1
- package/dist/cjs/src/primitives/utils.js +70 -60
- package/dist/cjs/src/primitives/utils.js.map +1 -1
- package/dist/cjs/src/script/LockingScript.js +2 -2
- package/dist/cjs/src/script/LockingScript.js.map +1 -1
- package/dist/cjs/src/script/Script.js +49 -47
- package/dist/cjs/src/script/Script.js.map +1 -1
- package/dist/cjs/src/script/Spend.js +305 -300
- package/dist/cjs/src/script/Spend.js.map +1 -1
- package/dist/cjs/src/script/UnlockingScript.js +2 -2
- package/dist/cjs/src/script/UnlockingScript.js.map +1 -1
- package/dist/cjs/src/script/__tests/Script.test.js +347 -0
- package/dist/cjs/src/script/__tests/Script.test.js.map +1 -0
- package/dist/cjs/src/script/__tests/Spend.test.js +282 -0
- package/dist/cjs/src/script/__tests/Spend.test.js.map +1 -0
- package/dist/cjs/src/script/__tests/SpendComplex.test.js +52 -0
- package/dist/cjs/src/script/__tests/SpendComplex.test.js.map +1 -0
- package/dist/cjs/src/script/__tests/script.invalid.vectors.js +2370 -0
- package/dist/cjs/src/script/__tests/script.invalid.vectors.js.map +1 -0
- package/dist/cjs/src/script/__tests/script.valid.vectors.js +1181 -0
- package/dist/cjs/src/script/__tests/script.valid.vectors.js.map +1 -0
- package/dist/cjs/src/script/__tests/spend.valid.vectors.js +2298 -0
- package/dist/cjs/src/script/__tests/spend.valid.vectors.js.map +1 -0
- package/dist/cjs/src/script/index.js +11 -11
- package/dist/cjs/src/script/index.js.map +1 -1
- package/dist/cjs/src/script/templates/P2PKH.js +40 -36
- package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
- package/dist/cjs/src/script/templates/PushDrop.js +42 -43
- package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
- package/dist/cjs/src/script/templates/RPuzzle.js +48 -45
- package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
- package/dist/cjs/src/script/templates/__tests/PushDrop.test.js +161 -0
- package/dist/cjs/src/script/templates/__tests/PushDrop.test.js.map +1 -0
- package/dist/cjs/src/script/templates/index.js +6 -6
- package/dist/cjs/src/script/templates/index.js.map +1 -1
- package/dist/cjs/src/totp/__tests/totp.test.js +67 -0
- package/dist/cjs/src/totp/__tests/totp.test.js.map +1 -0
- package/dist/cjs/src/totp/index.js +1 -1
- package/dist/cjs/src/totp/index.js.map +1 -1
- package/dist/cjs/src/totp/totp.js +7 -7
- package/dist/cjs/src/totp/totp.js.map +1 -1
- package/dist/cjs/src/transaction/Beef.js +141 -129
- package/dist/cjs/src/transaction/Beef.js.map +1 -1
- package/dist/cjs/src/transaction/BeefParty.js +25 -25
- package/dist/cjs/src/transaction/BeefParty.js.map +1 -1
- package/dist/cjs/src/transaction/BeefTx.js +25 -23
- package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
- package/dist/cjs/src/transaction/Broadcaster.js.map +1 -1
- package/dist/cjs/src/transaction/MerklePath.js +27 -22
- package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
- package/dist/cjs/src/transaction/Transaction.js +89 -157
- package/dist/cjs/src/transaction/Transaction.js.map +1 -1
- package/dist/cjs/src/transaction/__tests/Beef.test.js +393 -0
- package/dist/cjs/src/transaction/__tests/Beef.test.js.map +1 -0
- package/dist/cjs/src/transaction/__tests/MerklePath.test.js +209 -0
- package/dist/cjs/src/transaction/__tests/MerklePath.test.js.map +1 -0
- package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js +219 -0
- package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js.map +1 -0
- package/dist/cjs/src/transaction/__tests/Transaction.test.js +1073 -0
- package/dist/cjs/src/transaction/__tests/Transaction.test.js.map +1 -0
- package/dist/cjs/src/transaction/__tests/bigtx.vectors.js +7 -0
- package/dist/cjs/src/transaction/__tests/bigtx.vectors.js.map +1 -0
- package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js +11 -0
- package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js.map +1 -0
- package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js +7 -0
- package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js.map +1 -0
- package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js +230 -0
- package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js.map +1 -0
- package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js +296 -0
- package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js.map +1 -0
- package/dist/cjs/src/transaction/broadcasters/ARC.js +39 -35
- package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js +2 -2
- package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +15 -15
- package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js +246 -0
- package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js.map +1 -0
- package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +148 -0
- package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +1 -0
- package/dist/cjs/src/transaction/broadcasters/index.js +6 -6
- package/dist/cjs/src/transaction/broadcasters/index.js.map +1 -1
- package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js +2 -2
- package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
- package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +8 -8
- package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
- package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +155 -0
- package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +1 -0
- package/dist/cjs/src/transaction/chaintrackers/index.js +4 -4
- package/dist/cjs/src/transaction/chaintrackers/index.js.map +1 -1
- package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js +3 -3
- package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
- package/dist/cjs/src/transaction/fee-models/index.js +2 -2
- package/dist/cjs/src/transaction/fee-models/index.js.map +1 -1
- package/dist/cjs/src/transaction/http/DefaultHttpClient.js +11 -11
- package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/FetchHttpClient.js +4 -2
- package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/NodejsHttpClient.js +10 -8
- package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/index.js +6 -6
- package/dist/cjs/src/transaction/http/index.js.map +1 -1
- package/dist/cjs/src/transaction/index.js +12 -12
- package/dist/cjs/src/transaction/index.js.map +1 -1
- package/dist/cjs/src/wallet/CachedKeyDeriver.js +65 -63
- package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
- package/dist/cjs/src/wallet/KeyDeriver.js +66 -58
- package/dist/cjs/src/wallet/KeyDeriver.js.map +1 -1
- package/dist/cjs/src/wallet/ProtoWallet.js +36 -23
- package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
- package/dist/cjs/src/wallet/WalletClient.js +15 -14
- package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
- package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js +269 -0
- package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js.map +1 -0
- package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js +114 -0
- package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js.map +1 -0
- package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js +475 -0
- package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js.map +1 -0
- package/dist/cjs/src/wallet/index.js +12 -12
- package/dist/cjs/src/wallet/index.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +3 -3
- package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +10 -10
- package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireCalls.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +1293 -1316
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +320 -272
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/XDM.js +8 -5
- package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js +1962 -0
- package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +1 -0
- package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js +579 -0
- package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js.map +1 -0
- package/dist/cjs/src/wallet/substrates/index.js +12 -12
- package/dist/cjs/src/wallet/substrates/index.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/window.CWI.js +4 -4
- 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 +31 -15
- package/dist/esm/mod.js.map +1 -1
- package/dist/esm/src/auth/Peer.js +67 -47
- package/dist/esm/src/auth/Peer.js.map +1 -1
- package/dist/esm/src/auth/SessionManager.js +9 -5
- package/dist/esm/src/auth/SessionManager.js.map +1 -1
- package/dist/esm/src/auth/__tests/Peer.test.js +448 -0
- package/dist/esm/src/auth/__tests/Peer.test.js.map +1 -0
- package/dist/esm/src/auth/__tests/SessionManager.test.js +69 -0
- package/dist/esm/src/auth/__tests/SessionManager.test.js.map +1 -0
- package/dist/esm/src/auth/certificates/Certificate.js +31 -25
- package/dist/esm/src/auth/certificates/Certificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/MasterCertificate.js +33 -24
- package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js +15 -8
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/__tests/Certificate.test.js +182 -0
- package/dist/esm/src/auth/certificates/__tests/Certificate.test.js.map +1 -0
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +26 -22
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js +184 -0
- package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js.map +1 -0
- package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js +75 -0
- package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +1 -0
- package/dist/esm/src/auth/certificates/index.js +25 -4
- package/dist/esm/src/auth/certificates/index.js.map +1 -1
- package/dist/esm/src/auth/clients/AuthFetch.js +79 -65
- package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/esm/src/auth/clients/index.js +17 -1
- package/dist/esm/src/auth/clients/index.js.map +1 -1
- package/dist/esm/src/auth/index.js +23 -7
- package/dist/esm/src/auth/index.js.map +1 -1
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +67 -55
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/esm/src/auth/transports/index.js +17 -1
- package/dist/esm/src/auth/transports/index.js.map +1 -1
- package/dist/esm/src/auth/types.js +2 -1
- package/dist/esm/src/auth/utils/__tests/cryptononce.test.js +101 -0
- package/dist/esm/src/auth/utils/__tests/cryptononce.test.js.map +1 -0
- package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js +106 -0
- package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +1 -0
- package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js +111 -0
- package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js.map +1 -0
- package/dist/esm/src/auth/utils/createNonce.js +8 -5
- package/dist/esm/src/auth/utils/createNonce.js.map +1 -1
- package/dist/esm/src/auth/utils/getVerifiableCertificates.js +7 -3
- package/dist/esm/src/auth/utils/getVerifiableCertificates.js.map +1 -1
- package/dist/esm/src/auth/utils/index.js +20 -4
- package/dist/esm/src/auth/utils/index.js.map +1 -1
- package/dist/esm/src/auth/utils/validateCertificates.js +7 -3
- package/dist/esm/src/auth/utils/validateCertificates.js.map +1 -1
- package/dist/esm/src/auth/utils/verifyNonce.js +7 -4
- package/dist/esm/src/auth/utils/verifyNonce.js.map +1 -1
- package/dist/esm/src/compat/BSM.js +56 -14
- package/dist/esm/src/compat/BSM.js.map +1 -1
- package/dist/esm/src/compat/ECIES.js +197 -117
- package/dist/esm/src/compat/ECIES.js.map +1 -1
- package/dist/esm/src/compat/HD.js +115 -76
- package/dist/esm/src/compat/HD.js.map +1 -1
- package/dist/esm/src/compat/Mnemonic.js +138 -94
- package/dist/esm/src/compat/Mnemonic.js.map +1 -1
- package/dist/esm/src/compat/Utxo.js +12 -6
- package/dist/esm/src/compat/Utxo.js.map +1 -1
- package/dist/esm/src/compat/__tests/BSM.test.js +69 -0
- package/dist/esm/src/compat/__tests/BSM.test.js.map +1 -0
- package/dist/esm/src/compat/__tests/ECIES.test.js +115 -0
- package/dist/esm/src/compat/__tests/ECIES.test.js.map +1 -0
- package/dist/esm/src/compat/__tests/HD.test.js +336 -0
- package/dist/esm/src/compat/__tests/HD.test.js.map +1 -0
- package/dist/esm/src/compat/__tests/Mnemonic.test.js +150 -0
- package/dist/esm/src/compat/__tests/Mnemonic.test.js.map +1 -0
- package/dist/esm/src/compat/__tests/Mnemonic.vectors.js +175 -0
- package/dist/esm/src/compat/__tests/Mnemonic.vectors.js.map +1 -0
- package/dist/esm/src/compat/bip-39-wordlist-en.js +4 -1
- package/dist/esm/src/compat/bip-39-wordlist-en.js.map +1 -1
- package/dist/esm/src/compat/index.js +48 -5
- package/dist/esm/src/compat/index.js.map +1 -1
- package/dist/esm/src/messages/EncryptedMessage.js +27 -17
- package/dist/esm/src/messages/EncryptedMessage.js.map +1 -1
- package/dist/esm/src/messages/SignedMessage.js +30 -22
- package/dist/esm/src/messages/SignedMessage.js.map +1 -1
- package/dist/esm/src/messages/__tests/EncryptedMessage.test.js +57 -0
- package/dist/esm/src/messages/__tests/EncryptedMessage.test.js.map +1 -0
- package/dist/esm/src/messages/__tests/SignedMessage.test.js +52 -0
- package/dist/esm/src/messages/__tests/SignedMessage.test.js.map +1 -0
- package/dist/esm/src/messages/index.js +38 -2
- package/dist/esm/src/messages/index.js.map +1 -1
- package/dist/esm/src/overlay-tools/LookupResolver.js +32 -17
- package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js +51 -33
- package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +51 -32
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
- package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js +1471 -0
- package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js.map +1 -0
- package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +78 -0
- package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +1 -0
- package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js +933 -0
- package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +1 -0
- package/dist/esm/src/overlay-tools/index.js +28 -5
- package/dist/esm/src/overlay-tools/index.js.map +1 -1
- package/dist/esm/src/primitives/AESGCM.js +39 -26
- package/dist/esm/src/primitives/AESGCM.js.map +1 -1
- package/dist/esm/src/primitives/BasePoint.js +9 -3
- package/dist/esm/src/primitives/BasePoint.js.map +1 -1
- package/dist/esm/src/primitives/BigNumber.js +50 -60
- package/dist/esm/src/primitives/BigNumber.js.map +1 -1
- package/dist/esm/src/primitives/Curve.js +36 -40
- package/dist/esm/src/primitives/Curve.js.map +1 -1
- package/dist/esm/src/primitives/DRBG.js +12 -15
- package/dist/esm/src/primitives/DRBG.js.map +1 -1
- package/dist/esm/src/primitives/ECDSA.js +34 -26
- package/dist/esm/src/primitives/ECDSA.js.map +1 -1
- package/dist/esm/src/primitives/Hash.js +115 -130
- package/dist/esm/src/primitives/Hash.js.map +1 -1
- package/dist/esm/src/primitives/JacobianPoint.js +26 -16
- package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
- package/dist/esm/src/primitives/K256.js +8 -2
- package/dist/esm/src/primitives/K256.js.map +1 -1
- package/dist/esm/src/primitives/Mersenne.js +11 -5
- package/dist/esm/src/primitives/Mersenne.js.map +1 -1
- package/dist/esm/src/primitives/MontgomoryMethod.js +11 -5
- package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -1
- package/dist/esm/src/primitives/Point.js +80 -72
- package/dist/esm/src/primitives/Point.js.map +1 -1
- package/dist/esm/src/primitives/Polynomial.js +25 -15
- package/dist/esm/src/primitives/Polynomial.js.map +1 -1
- package/dist/esm/src/primitives/PrivateKey.js +90 -40
- package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
- package/dist/esm/src/primitives/PublicKey.js +29 -23
- package/dist/esm/src/primitives/PublicKey.js.map +1 -1
- package/dist/esm/src/primitives/Random.js +7 -5
- package/dist/esm/src/primitives/Random.js.map +1 -1
- package/dist/esm/src/primitives/ReductionContext.js +18 -12
- package/dist/esm/src/primitives/ReductionContext.js.map +1 -1
- package/dist/esm/src/primitives/Schnorr.js +36 -24
- package/dist/esm/src/primitives/Schnorr.js.map +1 -1
- package/dist/esm/src/primitives/Signature.js +32 -25
- package/dist/esm/src/primitives/Signature.js.map +1 -1
- package/dist/esm/src/primitives/SymmetricKey.js +32 -26
- package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
- package/dist/esm/src/primitives/TransactionSignature.js +62 -21
- package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/esm/src/primitives/__tests/AESGCM.test.js +248 -0
- package/dist/esm/src/primitives/__tests/AESGCM.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js +36 -0
- package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js.map +1 -0
- package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js +36 -0
- package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js.map +1 -0
- package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js +501 -0
- package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js +185 -0
- package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js +149 -0
- package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js +23 -0
- package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js +268 -0
- package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js.map +1 -0
- package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js +147 -0
- package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js +322 -0
- package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/Curve.unit.test.js +145 -0
- package/dist/esm/src/primitives/__tests/Curve.unit.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/DRBG.test.js +22 -0
- package/dist/esm/src/primitives/__tests/DRBG.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/DRBG.vectors.js +170 -0
- package/dist/esm/src/primitives/__tests/DRBG.vectors.js.map +1 -0
- package/dist/esm/src/primitives/__tests/ECDH.test.js +34 -0
- package/dist/esm/src/primitives/__tests/ECDH.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/ECDSA.test.js +89 -0
- package/dist/esm/src/primitives/__tests/ECDSA.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/HMAC.test.js +60 -0
- package/dist/esm/src/primitives/__tests/HMAC.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/Hash.test.js +159 -0
- package/dist/esm/src/primitives/__tests/Hash.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js +122 -0
- package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js.map +1 -0
- package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js +105 -0
- package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/PrivateKey.test.js +90 -0
- package/dist/esm/src/primitives/__tests/PrivateKey.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/PublicKey.test.js +83 -0
- package/dist/esm/src/primitives/__tests/PublicKey.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/Random.test.js +19 -0
- package/dist/esm/src/primitives/__tests/Random.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/Reader.test.js +282 -0
- package/dist/esm/src/primitives/__tests/Reader.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/ReductionContext.test.js +223 -0
- package/dist/esm/src/primitives/__tests/ReductionContext.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/Schnorr.test.js +213 -0
- package/dist/esm/src/primitives/__tests/Schnorr.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/SymmetricKey.test.js +51 -0
- package/dist/esm/src/primitives/__tests/SymmetricKey.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js +43 -0
- package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js.map +1 -0
- package/dist/esm/src/primitives/__tests/Writer.test.js +176 -0
- package/dist/esm/src/primitives/__tests/Writer.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/bug-31.test.js +32 -0
- package/dist/esm/src/primitives/__tests/bug-31.test.js.map +1 -0
- package/dist/esm/src/primitives/__tests/sighash.vectors.js +3506 -0
- package/dist/esm/src/primitives/__tests/sighash.vectors.js.map +1 -0
- package/dist/esm/src/primitives/__tests/utils.test.js +110 -0
- package/dist/esm/src/primitives/__tests/utils.test.js.map +1 -0
- package/dist/esm/src/primitives/index.js +66 -14
- package/dist/esm/src/primitives/index.js.map +1 -1
- package/dist/esm/src/primitives/utils.js +109 -80
- package/dist/esm/src/primitives/utils.js.map +1 -1
- package/dist/esm/src/script/LockingScript.js +8 -2
- package/dist/esm/src/script/LockingScript.js.map +1 -1
- package/dist/esm/src/script/OP.js +3 -1
- package/dist/esm/src/script/OP.js.map +1 -1
- package/dist/esm/src/script/Script.js +56 -48
- package/dist/esm/src/script/Script.js.map +1 -1
- package/dist/esm/src/script/ScriptChunk.js +2 -1
- package/dist/esm/src/script/ScriptTemplate.js +2 -1
- package/dist/esm/src/script/Spend.js +345 -301
- package/dist/esm/src/script/Spend.js.map +1 -1
- package/dist/esm/src/script/UnlockingScript.js +8 -2
- package/dist/esm/src/script/UnlockingScript.js.map +1 -1
- package/dist/esm/src/script/__tests/Script.test.js +347 -0
- package/dist/esm/src/script/__tests/Script.test.js.map +1 -0
- package/dist/esm/src/script/__tests/Spend.test.js +282 -0
- package/dist/esm/src/script/__tests/Spend.test.js.map +1 -0
- package/dist/esm/src/script/__tests/SpendComplex.test.js +51 -0
- package/dist/esm/src/script/__tests/SpendComplex.test.js.map +1 -0
- package/dist/esm/src/script/__tests/script.invalid.vectors.js +2370 -0
- package/dist/esm/src/script/__tests/script.invalid.vectors.js.map +1 -0
- package/dist/esm/src/script/__tests/script.valid.vectors.js +1181 -0
- package/dist/esm/src/script/__tests/script.valid.vectors.js.map +1 -0
- package/dist/esm/src/script/__tests/spend.valid.vectors.js +2298 -0
- package/dist/esm/src/script/__tests/spend.valid.vectors.js.map +1 -0
- package/dist/esm/src/script/index.js +31 -6
- package/dist/esm/src/script/index.js.map +1 -1
- package/dist/esm/src/script/templates/P2PKH.js +52 -39
- package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
- package/dist/esm/src/script/templates/PushDrop.js +51 -46
- package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
- package/dist/esm/src/script/templates/RPuzzle.js +55 -46
- package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
- package/dist/esm/src/script/templates/__tests/PushDrop.test.js +161 -0
- package/dist/esm/src/script/templates/__tests/PushDrop.test.js.map +1 -0
- package/dist/esm/src/script/templates/index.js +12 -3
- package/dist/esm/src/script/templates/index.js.map +1 -1
- package/dist/esm/src/totp/__tests/totp.test.js +67 -0
- package/dist/esm/src/totp/__tests/totp.test.js.map +1 -0
- package/dist/esm/src/totp/index.js +17 -1
- package/dist/esm/src/totp/index.js.map +1 -1
- package/dist/esm/src/totp/totp.js +15 -8
- package/dist/esm/src/totp/totp.js.map +1 -1
- package/dist/esm/src/transaction/Beef.js +160 -141
- package/dist/esm/src/transaction/Beef.js.map +1 -1
- package/dist/esm/src/transaction/BeefParty.js +30 -26
- package/dist/esm/src/transaction/BeefParty.js.map +1 -1
- package/dist/esm/src/transaction/BeefTx.js +32 -24
- package/dist/esm/src/transaction/BeefTx.js.map +1 -1
- package/dist/esm/src/transaction/Broadcaster.js +6 -2
- package/dist/esm/src/transaction/Broadcaster.js.map +1 -1
- package/dist/esm/src/transaction/ChainTracker.js +2 -1
- package/dist/esm/src/transaction/FeeModel.js +2 -1
- package/dist/esm/src/transaction/MerklePath.js +31 -23
- package/dist/esm/src/transaction/MerklePath.js.map +1 -1
- package/dist/esm/src/transaction/Transaction.js +96 -158
- package/dist/esm/src/transaction/Transaction.js.map +1 -1
- package/dist/esm/src/transaction/TransactionInput.js +2 -1
- package/dist/esm/src/transaction/TransactionOutput.js +2 -1
- package/dist/esm/src/transaction/__tests/Beef.test.js +393 -0
- package/dist/esm/src/transaction/__tests/Beef.test.js.map +1 -0
- package/dist/esm/src/transaction/__tests/MerklePath.test.js +209 -0
- package/dist/esm/src/transaction/__tests/MerklePath.test.js.map +1 -0
- package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js +219 -0
- package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js.map +1 -0
- package/dist/esm/src/transaction/__tests/Transaction.test.js +1072 -0
- package/dist/esm/src/transaction/__tests/Transaction.test.js.map +1 -0
- package/dist/esm/src/transaction/__tests/bigtx.vectors.js +7 -0
- package/dist/esm/src/transaction/__tests/bigtx.vectors.js.map +1 -0
- package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js +11 -0
- package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js.map +1 -0
- package/dist/esm/src/transaction/__tests/bump.valid.vectors.js +7 -0
- package/dist/esm/src/transaction/__tests/bump.valid.vectors.js.map +1 -0
- package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js +230 -0
- package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js.map +1 -0
- package/dist/esm/src/transaction/__tests/tx.valid.vectors.js +296 -0
- package/dist/esm/src/transaction/__tests/tx.valid.vectors.js.map +1 -0
- package/dist/esm/src/transaction/broadcasters/ARC.js +46 -36
- package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
- package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js +9 -3
- package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
- package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +19 -16
- package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
- package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js +246 -0
- package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js.map +1 -0
- package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +148 -0
- package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +1 -0
- package/dist/esm/src/transaction/broadcasters/index.js +12 -3
- package/dist/esm/src/transaction/broadcasters/index.js.map +1 -1
- package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js +9 -3
- package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
- package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +12 -9
- package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
- package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +155 -0
- package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +1 -0
- package/dist/esm/src/transaction/chaintrackers/index.js +10 -2
- package/dist/esm/src/transaction/chaintrackers/index.js.map +1 -1
- package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js +7 -4
- package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
- package/dist/esm/src/transaction/fee-models/index.js +8 -1
- package/dist/esm/src/transaction/fee-models/index.js.map +1 -1
- package/dist/esm/src/transaction/http/DefaultHttpClient.js +15 -12
- package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
- package/dist/esm/src/transaction/http/FetchHttpClient.js +9 -3
- package/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -1
- package/dist/esm/src/transaction/http/HttpClient.js +2 -1
- package/dist/esm/src/transaction/http/NodejsHttpClient.js +15 -9
- package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -1
- package/dist/esm/src/transaction/http/index.js +9 -3
- package/dist/esm/src/transaction/http/index.js.map +1 -1
- package/dist/esm/src/transaction/index.js +32 -6
- package/dist/esm/src/transaction/index.js.map +1 -1
- package/dist/esm/src/wallet/CachedKeyDeriver.js +69 -64
- package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
- package/dist/esm/src/wallet/KeyDeriver.js +72 -60
- package/dist/esm/src/wallet/KeyDeriver.js.map +1 -1
- package/dist/esm/src/wallet/ProtoWallet.js +42 -25
- package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
- package/dist/esm/src/wallet/Wallet.interfaces.js +5 -2
- package/dist/esm/src/wallet/Wallet.interfaces.js.map +1 -1
- package/dist/esm/src/wallet/WalletClient.js +22 -15
- package/dist/esm/src/wallet/WalletClient.js.map +1 -1
- package/dist/esm/src/wallet/WalletError.js +6 -2
- package/dist/esm/src/wallet/WalletError.js.map +1 -1
- package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js +269 -0
- package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js.map +1 -0
- package/dist/esm/src/wallet/__tests/KeyDeriver.test.js +113 -0
- package/dist/esm/src/wallet/__tests/KeyDeriver.test.js.map +1 -0
- package/dist/esm/src/wallet/__tests/ProtoWallet.test.js +475 -0
- package/dist/esm/src/wallet/__tests/ProtoWallet.test.js.map +1 -0
- package/dist/esm/src/wallet/index.js +32 -8
- package/dist/esm/src/wallet/index.js.map +1 -1
- package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +7 -4
- package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/esm/src/wallet/substrates/HTTPWalletWire.js +17 -11
- package/dist/esm/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWire.js +2 -1
- package/dist/esm/src/wallet/substrates/WalletWireCalls.js +3 -1
- package/dist/esm/src/wallet/substrates/WalletWireCalls.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1300 -1317
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +327 -273
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/esm/src/wallet/substrates/XDM.js +12 -6
- package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
- package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js +1962 -0
- package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +1 -0
- package/dist/esm/src/wallet/substrates/__tests/XDM.test.js +579 -0
- package/dist/esm/src/wallet/substrates/__tests/XDM.test.js.map +1 -0
- package/dist/esm/src/wallet/substrates/index.js +32 -7
- package/dist/esm/src/wallet/substrates/index.js.map +1 -1
- package/dist/esm/src/wallet/substrates/window.CWI.js +8 -5
- 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/mod.d.ts.map +1 -1
- package/dist/types/src/auth/Peer.d.ts +14 -14
- package/dist/types/src/auth/Peer.d.ts.map +1 -1
- package/dist/types/src/auth/SessionManager.d.ts +5 -5
- package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
- package/dist/types/src/auth/__tests/Peer.test.d.ts +2 -0
- package/dist/types/src/auth/__tests/Peer.test.d.ts.map +1 -0
- package/dist/types/src/auth/__tests/SessionManager.test.d.ts +2 -0
- package/dist/types/src/auth/__tests/SessionManager.test.d.ts.map +1 -0
- package/dist/types/src/auth/certificates/Certificate.d.ts +3 -3
- package/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts +11 -11
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts +4 -4
- package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts +2 -0
- package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts.map +1 -0
- package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts +2 -2
- package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts +2 -0
- package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts.map +1 -0
- package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts +2 -0
- package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts.map +1 -0
- package/dist/types/src/auth/certificates/index.d.ts +4 -4
- package/dist/types/src/auth/certificates/index.d.ts.map +1 -1
- package/dist/types/src/auth/clients/AuthFetch.d.ts +9 -9
- package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
- package/dist/types/src/auth/clients/index.d.ts +1 -1
- package/dist/types/src/auth/clients/index.d.ts.map +1 -1
- package/dist/types/src/auth/index.d.ts +7 -7
- package/dist/types/src/auth/index.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/transports/index.d.ts +1 -1
- package/dist/types/src/auth/transports/index.d.ts.map +1 -1
- package/dist/types/src/auth/types.d.ts +1 -1
- package/dist/types/src/auth/types.d.ts.map +1 -1
- package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts +2 -0
- package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts.map +1 -0
- package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts +2 -0
- package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts.map +1 -0
- package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts +2 -0
- package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts.map +1 -0
- package/dist/types/src/auth/utils/createNonce.d.ts +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/index.d.ts +4 -4
- package/dist/types/src/auth/utils/index.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 +3 -3
- package/dist/types/src/compat/BSM.d.ts.map +1 -1
- package/dist/types/src/compat/ECIES.d.ts +38 -38
- package/dist/types/src/compat/ECIES.d.ts.map +1 -1
- package/dist/types/src/compat/HD.d.ts +53 -53
- 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 +3 -3
- package/dist/types/src/compat/Utxo.d.ts.map +1 -1
- package/dist/types/src/compat/__tests/BSM.test.d.ts +2 -0
- package/dist/types/src/compat/__tests/BSM.test.d.ts.map +1 -0
- package/dist/types/src/compat/__tests/ECIES.test.d.ts +2 -0
- package/dist/types/src/compat/__tests/ECIES.test.d.ts.map +1 -0
- package/dist/types/src/compat/__tests/HD.test.d.ts +2 -0
- package/dist/types/src/compat/__tests/HD.test.d.ts.map +1 -0
- package/dist/types/src/compat/__tests/Mnemonic.test.d.ts +2 -0
- package/dist/types/src/compat/__tests/Mnemonic.test.d.ts.map +1 -0
- package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts +11 -0
- package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts.map +1 -0
- package/dist/types/src/compat/index.d.ts +5 -5
- package/dist/types/src/compat/index.d.ts.map +1 -1
- package/dist/types/src/messages/EncryptedMessage.d.ts +2 -2
- package/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -1
- package/dist/types/src/messages/SignedMessage.d.ts +2 -2
- package/dist/types/src/messages/SignedMessage.d.ts.map +1 -1
- package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts +2 -0
- package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts.map +1 -0
- package/dist/types/src/messages/__tests/SignedMessage.test.d.ts +2 -0
- package/dist/types/src/messages/__tests/SignedMessage.test.d.ts.map +1 -0
- package/dist/types/src/messages/index.d.ts +2 -2
- package/dist/types/src/messages/index.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 +21 -21
- package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +16 -16
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts +2 -0
- package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts.map +1 -0
- package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts +2 -0
- package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts.map +1 -0
- package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts +2 -0
- package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts.map +1 -0
- package/dist/types/src/overlay-tools/index.d.ts +5 -5
- package/dist/types/src/overlay-tools/index.d.ts.map +1 -1
- package/dist/types/src/primitives/BasePoint.d.ts +1 -1
- package/dist/types/src/primitives/BasePoint.d.ts.map +1 -1
- package/dist/types/src/primitives/BigNumber.d.ts +1 -1
- package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
- package/dist/types/src/primitives/Curve.d.ts +3 -3
- package/dist/types/src/primitives/Curve.d.ts.map +1 -1
- package/dist/types/src/primitives/DRBG.d.ts +1 -1
- package/dist/types/src/primitives/DRBG.d.ts.map +1 -1
- package/dist/types/src/primitives/ECDSA.d.ts +3 -3
- package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
- package/dist/types/src/primitives/Hash.d.ts.map +1 -1
- package/dist/types/src/primitives/JacobianPoint.d.ts +3 -3
- package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -1
- package/dist/types/src/primitives/K256.d.ts +2 -2
- package/dist/types/src/primitives/K256.d.ts.map +1 -1
- package/dist/types/src/primitives/Mersenne.d.ts +1 -1
- package/dist/types/src/primitives/Mersenne.d.ts.map +1 -1
- package/dist/types/src/primitives/MontgomoryMethod.d.ts +2 -2
- package/dist/types/src/primitives/MontgomoryMethod.d.ts.map +1 -1
- package/dist/types/src/primitives/Point.d.ts +17 -13
- package/dist/types/src/primitives/Point.d.ts.map +1 -1
- package/dist/types/src/primitives/Polynomial.d.ts +2 -2
- package/dist/types/src/primitives/Polynomial.d.ts.map +1 -1
- package/dist/types/src/primitives/PrivateKey.d.ts +5 -5
- package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
- package/dist/types/src/primitives/PublicKey.d.ts +4 -4
- 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/ReductionContext.d.ts +2 -2
- package/dist/types/src/primitives/ReductionContext.d.ts.map +1 -1
- package/dist/types/src/primitives/Schnorr.d.ts +17 -17
- package/dist/types/src/primitives/Schnorr.d.ts.map +1 -1
- package/dist/types/src/primitives/Signature.d.ts +2 -2
- package/dist/types/src/primitives/Signature.d.ts.map +1 -1
- package/dist/types/src/primitives/SymmetricKey.d.ts +14 -14
- package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
- package/dist/types/src/primitives/TransactionSignature.d.ts +9 -9
- package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -1
- package/dist/types/src/primitives/__tests/AESGCM.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/AESGCM.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts +8 -0
- package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts +8 -0
- package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts +15 -0
- package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/DRBG.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/DRBG.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts +10 -0
- package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/ECDH.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/ECDH.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/ECDSA.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/ECDSA.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/HMAC.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/HMAC.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/Hash.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/Hash.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts +68 -0
- package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/PublicKey.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/PublicKey.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/Random.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/Random.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/Reader.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/Reader.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/Schnorr.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/Schnorr.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts +20 -0
- package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/Writer.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/Writer.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/bug-31.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/bug-31.test.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/sighash.vectors.d.ts +3 -0
- package/dist/types/src/primitives/__tests/sighash.vectors.d.ts.map +1 -0
- package/dist/types/src/primitives/__tests/utils.test.d.ts +2 -0
- package/dist/types/src/primitives/__tests/utils.test.d.ts.map +1 -0
- package/dist/types/src/primitives/index.d.ts +14 -14
- package/dist/types/src/primitives/index.d.ts.map +1 -1
- package/dist/types/src/primitives/utils.d.ts +1 -1
- package/dist/types/src/primitives/utils.d.ts.map +1 -1
- package/dist/types/src/script/LockingScript.d.ts +1 -1
- package/dist/types/src/script/LockingScript.d.ts.map +1 -1
- package/dist/types/src/script/Script.d.ts +5 -5
- package/dist/types/src/script/Script.d.ts.map +1 -1
- package/dist/types/src/script/ScriptTemplate.d.ts +3 -3
- package/dist/types/src/script/ScriptTemplate.d.ts.map +1 -1
- package/dist/types/src/script/Spend.d.ts +4 -4
- package/dist/types/src/script/Spend.d.ts.map +1 -1
- package/dist/types/src/script/UnlockingScript.d.ts +1 -1
- package/dist/types/src/script/UnlockingScript.d.ts.map +1 -1
- package/dist/types/src/script/__tests/Script.test.d.ts +2 -0
- package/dist/types/src/script/__tests/Script.test.d.ts.map +1 -0
- package/dist/types/src/script/__tests/Spend.test.d.ts +2 -0
- package/dist/types/src/script/__tests/Spend.test.d.ts.map +1 -0
- package/dist/types/src/script/__tests/SpendComplex.test.d.ts +2 -0
- package/dist/types/src/script/__tests/SpendComplex.test.d.ts.map +1 -0
- package/dist/types/src/script/__tests/script.invalid.vectors.d.ts +3 -0
- package/dist/types/src/script/__tests/script.invalid.vectors.d.ts.map +1 -0
- package/dist/types/src/script/__tests/script.valid.vectors.d.ts +3 -0
- package/dist/types/src/script/__tests/script.valid.vectors.d.ts.map +1 -0
- package/dist/types/src/script/__tests/spend.valid.vectors.d.ts +3 -0
- package/dist/types/src/script/__tests/spend.valid.vectors.d.ts.map +1 -0
- package/dist/types/src/script/index.d.ts +7 -7
- package/dist/types/src/script/index.d.ts.map +1 -1
- package/dist/types/src/script/templates/P2PKH.d.ts +7 -7
- package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -1
- package/dist/types/src/script/templates/PushDrop.d.ts +7 -7
- package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
- package/dist/types/src/script/templates/RPuzzle.d.ts +9 -9
- package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -1
- package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts +2 -0
- package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts.map +1 -0
- package/dist/types/src/script/templates/index.d.ts +3 -3
- package/dist/types/src/script/templates/index.d.ts.map +1 -1
- package/dist/types/src/totp/__tests/totp.test.d.ts +2 -0
- package/dist/types/src/totp/__tests/totp.test.d.ts.map +1 -0
- package/dist/types/src/totp/index.d.ts +1 -1
- package/dist/types/src/totp/index.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 +23 -23
- 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 +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 +1 -1
- package/dist/types/src/transaction/FeeModel.d.ts.map +1 -1
- package/dist/types/src/transaction/MerklePath.d.ts +2 -2
- package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
- package/dist/types/src/transaction/Transaction.d.ts +11 -19
- package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
- package/dist/types/src/transaction/TransactionInput.d.ts +2 -2
- package/dist/types/src/transaction/TransactionInput.d.ts.map +1 -1
- package/dist/types/src/transaction/TransactionOutput.d.ts +1 -1
- package/dist/types/src/transaction/TransactionOutput.d.ts.map +1 -1
- package/dist/types/src/transaction/__tests/Beef.test.d.ts +2 -0
- package/dist/types/src/transaction/__tests/Beef.test.d.ts.map +1 -0
- package/dist/types/src/transaction/__tests/MerklePath.test.d.ts +2 -0
- package/dist/types/src/transaction/__tests/MerklePath.test.d.ts.map +1 -0
- package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts +2 -0
- package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts.map +1 -0
- package/dist/types/src/transaction/__tests/Transaction.test.d.ts +2 -0
- package/dist/types/src/transaction/__tests/Transaction.test.d.ts.map +1 -0
- package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts +6 -0
- package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts.map +1 -0
- package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts +6 -0
- package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts.map +1 -0
- package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts +5 -0
- package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts.map +1 -0
- package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts +3 -0
- package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts.map +1 -0
- package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts +3 -0
- package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts.map +1 -0
- package/dist/types/src/transaction/broadcasters/ARC.d.ts +3 -3
- package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts +2 -2
- package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts +4 -4
- package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts +2 -0
- package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts.map +1 -0
- package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts +2 -0
- package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts.map +1 -0
- package/dist/types/src/transaction/broadcasters/index.d.ts +4 -4
- package/dist/types/src/transaction/broadcasters/index.d.ts.map +1 -1
- package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts +1 -1
- package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -1
- package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts +3 -3
- package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -1
- package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts +2 -0
- package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts.map +1 -0
- package/dist/types/src/transaction/chaintrackers/index.d.ts +3 -3
- package/dist/types/src/transaction/chaintrackers/index.d.ts.map +1 -1
- package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts +2 -2
- package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -1
- package/dist/types/src/transaction/fee-models/index.d.ts +1 -1
- package/dist/types/src/transaction/fee-models/index.d.ts.map +1 -1
- package/dist/types/src/transaction/http/DefaultHttpClient.d.ts +2 -2
- package/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/FetchHttpClient.d.ts +6 -6
- 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 +4 -4
- package/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/index.d.ts +6 -6
- package/dist/types/src/transaction/http/index.d.ts.map +1 -1
- package/dist/types/src/transaction/index.d.ts +10 -10
- package/dist/types/src/transaction/index.d.ts.map +1 -1
- package/dist/types/src/wallet/CachedKeyDeriver.d.ts +61 -61
- package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
- package/dist/types/src/wallet/KeyDeriver.d.ts +80 -80
- package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
- package/dist/types/src/wallet/ProtoWallet.d.ts +14 -14
- package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -1
- package/dist/types/src/wallet/Wallet.interfaces.d.ts +144 -144
- package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
- package/dist/types/src/wallet/WalletClient.d.ts +1 -1
- package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
- package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts +2 -0
- package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts.map +1 -0
- package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts +2 -0
- package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts.map +1 -0
- package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts +2 -0
- package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts.map +1 -0
- package/dist/types/src/wallet/index.d.ts +8 -8
- package/dist/types/src/wallet/index.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWire.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireCalls.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts +2 -2
- package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts +10 -10
- package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/XDM.d.ts +2 -2
- package/dist/types/src/wallet/substrates/XDM.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts +2 -0
- package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts.map +1 -0
- package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts +5 -0
- package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts.map +1 -0
- package/dist/types/src/wallet/substrates/index.d.ts +7 -7
- package/dist/types/src/wallet/substrates/index.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/window.CWI.d.ts +19 -19
- 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 +71 -63
- package/docs/compat.md +24 -24
- package/docs/messages.md +7 -5
- package/docs/overlay-tools.md +21 -21
- package/docs/primitives.md +239 -242
- package/docs/script.md +31 -31
- package/docs/totp.md +5 -5
- package/docs/transaction.md +76 -78
- package/docs/wallet-substrates.md +6 -6
- package/docs/wallet.md +140 -140
- package/mod.ts +15 -15
- package/package.json +10 -2
- package/src/auth/Peer.ts +217 -72
- package/src/auth/SessionManager.ts +8 -6
- package/src/auth/__tests/Peer.test.ts +314 -159
- package/src/auth/certificates/Certificate.ts +17 -8
- package/src/auth/certificates/MasterCertificate.ts +111 -55
- package/src/auth/certificates/VerifiableCertificate.ts +31 -11
- package/src/auth/certificates/__tests/Certificate.test.ts +160 -146
- package/src/auth/certificates/__tests/CompletedProtoWallet.ts +148 -59
- package/src/auth/certificates/__tests/MasterCertificate.test.ts +65 -41
- package/src/auth/certificates/__tests/VerifiableCertificate.test.ts +60 -15
- package/src/auth/certificates/index.ts +4 -4
- package/src/auth/clients/AuthFetch.ts +316 -231
- package/src/auth/clients/index.ts +1 -1
- package/src/auth/index.ts +7 -7
- package/src/auth/transports/SimplifiedFetchTransport.ts +166 -124
- package/src/auth/transports/index.ts +1 -1
- package/src/auth/types.ts +1 -1
- package/src/auth/utils/__tests/cryptononce.test.ts +52 -25
- package/src/auth/utils/__tests/getVerifiableCertificates.test.ts +64 -38
- package/src/auth/utils/__tests/validateCertificates.test.ts +101 -89
- package/src/auth/utils/createNonce.ts +11 -3
- package/src/auth/utils/getVerifiableCertificates.ts +11 -6
- package/src/auth/utils/index.ts +4 -4
- package/src/auth/utils/validateCertificates.ts +53 -39
- package/src/auth/utils/verifyNonce.ts +6 -2
- package/src/compat/BSM.ts +17 -9
- package/src/compat/ECIES.ts +239 -123
- package/src/compat/HD.ts +82 -63
- package/src/compat/Mnemonic.ts +98 -87
- package/src/compat/Utxo.ts +12 -9
- package/src/compat/__tests/BSM.test.ts +43 -16
- package/src/compat/__tests/ECIES.test.ts +117 -52
- package/src/compat/__tests/HD.test.ts +49 -38
- package/src/compat/__tests/Mnemonic.test.ts +145 -145
- package/src/compat/index.ts +5 -5
- package/src/messages/EncryptedMessage.ts +11 -7
- package/src/messages/SignedMessage.ts +19 -14
- package/src/messages/__tests/EncryptedMessage.test.ts +55 -56
- package/src/messages/__tests/SignedMessage.test.ts +58 -52
- package/src/messages/index.ts +2 -2
- package/src/overlay-tools/LookupResolver.ts +65 -33
- package/src/overlay-tools/OverlayAdminTokenTemplate.ts +52 -27
- package/src/overlay-tools/SHIPBroadcaster.ts +134 -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/overlay-tools/index.ts +5 -5
- package/src/primitives/BasePoint.ts +1 -1
- package/src/primitives/BigNumber.ts +94 -87
- package/src/primitives/Curve.ts +49 -30
- package/src/primitives/DRBG.ts +10 -12
- package/src/primitives/ECDSA.ts +59 -33
- package/src/primitives/Hash.ts +298 -179
- package/src/primitives/JacobianPoint.ts +55 -21
- package/src/primitives/K256.ts +2 -2
- package/src/primitives/Mersenne.ts +1 -1
- package/src/primitives/MontgomoryMethod.ts +2 -2
- package/src/primitives/Point.ts +193 -113
- package/src/primitives/Polynomial.ts +12 -7
- package/src/primitives/PrivateKey.ts +44 -20
- package/src/primitives/PublicKey.ts +21 -11
- package/src/primitives/Random.ts +7 -5
- package/src/primitives/ReductionContext.ts +4 -4
- package/src/primitives/Schnorr.ts +45 -23
- package/src/primitives/Signature.ts +27 -19
- package/src/primitives/SymmetricKey.ts +17 -17
- package/src/primitives/TransactionSignature.ts +29 -18
- package/src/primitives/__tests/AESGCM.test.ts +635 -329
- package/src/primitives/__tests/BigNumber.arithmatic.test.ts +721 -502
- package/src/primitives/__tests/BigNumber.binary.test.ts +271 -190
- package/src/primitives/__tests/BigNumber.constructor.test.ts +60 -24
- package/src/primitives/__tests/BigNumber.dhGroup.test.ts +19 -15
- package/src/primitives/__tests/BigNumber.serializers.test.ts +183 -157
- package/src/primitives/__tests/BigNumber.utils.test.ts +394 -304
- package/src/primitives/__tests/Curve.unit.test.ts +158 -143
- package/src/primitives/__tests/DRBG.test.ts +13 -13
- package/src/primitives/__tests/ECDH.test.ts +15 -8
- package/src/primitives/__tests/ECDSA.test.ts +63 -57
- package/src/primitives/__tests/HMAC.test.ts +55 -49
- package/src/primitives/__tests/Hash.test.ts +96 -85
- package/src/primitives/__tests/PrivateKey.split.test.ts +29 -9
- package/src/primitives/__tests/PrivateKey.test.ts +53 -50
- package/src/primitives/__tests/PublicKey.test.ts +15 -6
- package/src/primitives/__tests/Random.test.ts +10 -10
- package/src/primitives/__tests/Reader.test.ts +240 -219
- package/src/primitives/__tests/ReductionContext.test.ts +271 -234
- package/src/primitives/__tests/Schnorr.test.ts +252 -242
- package/src/primitives/__tests/SymmetricKey.test.ts +53 -50
- package/src/primitives/__tests/Writer.test.ts +23 -13
- package/src/primitives/__tests/bug-31.test.ts +25 -23
- package/src/primitives/__tests/utils.test.ts +70 -19
- package/src/primitives/index.ts +14 -14
- package/src/primitives/utils.ts +88 -63
- package/src/script/LockingScript.ts +1 -1
- package/src/script/Script.ts +14 -10
- package/src/script/ScriptTemplate.ts +5 -7
- package/src/script/Spend.ts +314 -118
- package/src/script/UnlockingScript.ts +1 -1
- package/src/script/__tests/Script.test.ts +68 -54
- package/src/script/__tests/Spend.test.ts +188 -68
- package/src/script/__tests/SpendComplex.test.ts +36 -26
- package/src/script/__tests/script.valid.vectors.ts +1064 -3100
- package/src/script/index.ts +7 -7
- package/src/script/templates/P2PKH.ts +63 -52
- package/src/script/templates/PushDrop.ts +117 -89
- package/src/script/templates/RPuzzle.ts +72 -54
- package/src/script/templates/__tests/PushDrop.test.ts +146 -40
- package/src/script/templates/index.ts +3 -3
- package/src/totp/__tests/totp.test.ts +39 -39
- package/src/totp/index.ts +1 -1
- package/src/totp/totp.ts +2 -2
- package/src/transaction/Beef.ts +211 -141
- package/src/transaction/BeefParty.ts +35 -27
- package/src/transaction/BeefTx.ts +13 -9
- package/src/transaction/Broadcaster.ts +11 -7
- package/src/transaction/ChainTracker.ts +2 -2
- package/src/transaction/FeeModel.ts +2 -2
- package/src/transaction/MerklePath.ts +81 -37
- package/src/transaction/Transaction.ts +185 -208
- package/src/transaction/TransactionInput.ts +2 -2
- package/src/transaction/TransactionOutput.ts +2 -2
- package/src/transaction/__tests/Beef.test.ts +359 -297
- package/src/transaction/__tests/MerklePath.test.ts +163 -131
- package/src/transaction/__tests/Transaction.benchmarks.test.ts +235 -202
- package/src/transaction/__tests/Transaction.test.ts +746 -459
- package/src/transaction/broadcasters/ARC.ts +120 -94
- package/src/transaction/broadcasters/DefaultBroadcaster.ts +11 -5
- package/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +46 -33
- package/src/transaction/broadcasters/__tests/ARC.test.ts +77 -45
- package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +25 -17
- package/src/transaction/broadcasters/index.ts +4 -4
- package/src/transaction/chaintrackers/DefaultChainTracker.ts +4 -4
- package/src/transaction/chaintrackers/WhatsOnChain.ts +53 -38
- package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +138 -102
- package/src/transaction/chaintrackers/index.ts +3 -3
- package/src/transaction/fee-models/SatoshisPerKilobyte.ts +37 -32
- package/src/transaction/fee-models/index.ts +1 -1
- package/src/transaction/http/DefaultHttpClient.ts +17 -17
- package/src/transaction/http/FetchHttpClient.ts +18 -9
- package/src/transaction/http/HttpClient.ts +30 -25
- package/src/transaction/http/NodejsHttpClient.ts +42 -28
- package/src/transaction/http/index.ts +10 -6
- package/src/transaction/index.ts +14 -10
- package/src/wallet/CachedKeyDeriver.ts +118 -72
- package/src/wallet/KeyDeriver.ts +186 -105
- package/src/wallet/ProtoWallet.ts +73 -28
- package/src/wallet/Wallet.interfaces.ts +158 -149
- package/src/wallet/WalletClient.ts +316 -58
- package/src/wallet/__tests/CachedKeyDeriver.test.ts +83 -27
- package/src/wallet/__tests/KeyDeriver.test.ts +219 -116
- package/src/wallet/__tests/ProtoWallet.test.ts +420 -339
- package/src/wallet/index.ts +8 -8
- package/src/wallet/substrates/HTTPWalletJSON.ts +201 -32
- package/src/wallet/substrates/HTTPWalletWire.ts +30 -26
- package/src/wallet/substrates/WalletWire.ts +1 -1
- package/src/wallet/substrates/WalletWireCalls.ts +3 -3
- package/src/wallet/substrates/WalletWireProcessor.ts +1651 -1515
- package/src/wallet/substrates/WalletWireTransceiver.ts +1424 -854
- package/src/wallet/substrates/XDM.ts +427 -37
- package/src/wallet/substrates/__tests/WalletWire.integration.test.ts +484 -223
- package/src/wallet/substrates/__tests/XDM.test.ts +191 -195
- package/src/wallet/substrates/index.ts +7 -7
- package/src/wallet/substrates/window.CWI.ts +524 -65
|
@@ -36,14 +36,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
const Hash = __importStar(require("../primitives/Hash
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
const
|
|
39
|
+
const Script_1 = __importDefault(require("./Script"));
|
|
40
|
+
const BigNumber_1 = __importDefault(require("../primitives/BigNumber"));
|
|
41
|
+
const OP_17 = __importDefault(require("./OP"));
|
|
42
|
+
const utils_1 = require("../primitives/utils");
|
|
43
|
+
const Hash = __importStar(require("../primitives/Hash"));
|
|
44
|
+
const TransactionSignature_1 = __importDefault(require("../primitives/TransactionSignature"));
|
|
45
|
+
const PublicKey_1 = __importDefault(require("../primitives/PublicKey"));
|
|
46
|
+
const ECDSA_1 = require("../primitives/ECDSA");
|
|
47
47
|
// These constants control the current behavior of the interpreter.
|
|
48
48
|
// In the future, all of them will go away.
|
|
49
49
|
const maxScriptElementSize = 1024 * 1024 * 1024;
|
|
@@ -140,11 +140,11 @@ class Spend {
|
|
|
140
140
|
operation = this.lockingScript.chunks[this.programCounter];
|
|
141
141
|
}
|
|
142
142
|
const isOpcodeDisabled = (op) => {
|
|
143
|
-
return op ===
|
|
144
|
-
op ===
|
|
145
|
-
op ===
|
|
146
|
-
op ===
|
|
147
|
-
op ===
|
|
143
|
+
return (op === OP_17.default.OP_2MUL ||
|
|
144
|
+
op === OP_17.default.OP_2DIV ||
|
|
145
|
+
op === OP_17.default.OP_VERIF ||
|
|
146
|
+
op === OP_17.default.OP_VERNOTIF ||
|
|
147
|
+
op === OP_17.default.OP_VER);
|
|
148
148
|
};
|
|
149
149
|
const isChunkMinimal = (chunk) => {
|
|
150
150
|
const data = chunk.data;
|
|
@@ -154,15 +154,15 @@ class Spend {
|
|
|
154
154
|
}
|
|
155
155
|
if (data.length === 0) {
|
|
156
156
|
// Could have used OP_0.
|
|
157
|
-
return op ===
|
|
157
|
+
return op === OP_17.default.OP_0;
|
|
158
158
|
}
|
|
159
159
|
else if (data.length === 1 && data[0] >= 1 && data[0] <= 16) {
|
|
160
160
|
// Could have used OP_1 .. OP_16.
|
|
161
|
-
return op ===
|
|
161
|
+
return op === OP_17.default.OP_1 + (data[0] - 1);
|
|
162
162
|
}
|
|
163
163
|
else if (data.length === 1 && data[0] === 0x81) {
|
|
164
164
|
// Could have used OP_1NEGATE.
|
|
165
|
-
return op ===
|
|
165
|
+
return op === OP_17.default.OP_1NEGATE;
|
|
166
166
|
}
|
|
167
167
|
else if (data.length <= 75) {
|
|
168
168
|
// Could have used a direct push (opCode indicating number of bytes pushed + those bytes).
|
|
@@ -170,15 +170,15 @@ class Spend {
|
|
|
170
170
|
}
|
|
171
171
|
else if (data.length <= 255) {
|
|
172
172
|
// Could have used OP_PUSHDATA.
|
|
173
|
-
return op ===
|
|
173
|
+
return op === OP_17.default.OP_PUSHDATA1;
|
|
174
174
|
}
|
|
175
175
|
else if (data.length <= 65535) {
|
|
176
176
|
// Could have used OP_PUSHDATA2.
|
|
177
|
-
return op ===
|
|
177
|
+
return op === OP_17.default.OP_PUSHDATA2;
|
|
178
178
|
}
|
|
179
179
|
return true;
|
|
180
180
|
};
|
|
181
|
-
// Following example from sCrypt now using Number.MAX_SAFE_INTEGER (bsv/lib/transaction/input/input
|
|
181
|
+
// Following example from sCrypt now using Number.MAX_SAFE_INTEGER (bsv/lib/transaction/input/input).
|
|
182
182
|
const isMinimallyEncoded = (buf, maxNumSize = Number.MAX_SAFE_INTEGER) => {
|
|
183
183
|
if (buf.length > maxNumSize) {
|
|
184
184
|
return false;
|
|
@@ -294,11 +294,11 @@ class Spend {
|
|
|
294
294
|
if (!isChecksigFormat(buf)) {
|
|
295
295
|
this.scriptEvaluationError('The signature format is invalid.');
|
|
296
296
|
}
|
|
297
|
-
const sig =
|
|
297
|
+
const sig = TransactionSignature_1.default.fromChecksigFormat(buf);
|
|
298
298
|
if (requireLowSSignatures && !sig.hasLowS()) {
|
|
299
299
|
this.scriptEvaluationError('The signature must have a low S value.');
|
|
300
300
|
}
|
|
301
|
-
if ((sig.scope &
|
|
301
|
+
if ((sig.scope & TransactionSignature_1.default.SIGHASH_FORKID) === 0) {
|
|
302
302
|
this.scriptEvaluationError('The signature must use SIGHASH_FORKID.');
|
|
303
303
|
return false;
|
|
304
304
|
}
|
|
@@ -313,7 +313,7 @@ class Spend {
|
|
|
313
313
|
this.scriptEvaluationError('The non-compressed public key must be 65 bytes.');
|
|
314
314
|
}
|
|
315
315
|
}
|
|
316
|
-
else if (
|
|
316
|
+
else if (buf[0] === 0x02 || buf[0] === 0x03) {
|
|
317
317
|
if (buf.length !== 33) {
|
|
318
318
|
this.scriptEvaluationError('The compressed public key must be 33 bytes.');
|
|
319
319
|
}
|
|
@@ -324,7 +324,7 @@ class Spend {
|
|
|
324
324
|
return true;
|
|
325
325
|
};
|
|
326
326
|
const verifySignature = (sig, pubkey, subscript) => {
|
|
327
|
-
const preimage =
|
|
327
|
+
const preimage = TransactionSignature_1.default.format({
|
|
328
328
|
sourceTXID: this.sourceTXID,
|
|
329
329
|
sourceOutputIndex: this.sourceOutputIndex,
|
|
330
330
|
sourceSatoshis: this.sourceSatoshis,
|
|
@@ -337,8 +337,8 @@ class Spend {
|
|
|
337
337
|
lockTime: this.lockTime,
|
|
338
338
|
scope: sig.scope
|
|
339
339
|
});
|
|
340
|
-
const hash = new
|
|
341
|
-
return (0,
|
|
340
|
+
const hash = new BigNumber_1.default(Hash.hash256(preimage));
|
|
341
|
+
return (0, ECDSA_1.verify)(hash, sig, pubkey);
|
|
342
342
|
};
|
|
343
343
|
const isScriptExecuting = !this.ifStack.includes(false);
|
|
344
344
|
let buf, buf1, buf2, buf3, spliced, n, size, rawnum, num, signbit, x1, x2, x3, bn, bn1, bn2, bn3, bufSig, bufPubkey, subscript, bufHash;
|
|
@@ -356,8 +356,9 @@ class Spend {
|
|
|
356
356
|
if (isScriptExecuting && isOpcodeDisabled(currentOpcode)) {
|
|
357
357
|
this.scriptEvaluationError('This opcode is currently disabled.');
|
|
358
358
|
}
|
|
359
|
-
if (isScriptExecuting &&
|
|
360
|
-
currentOpcode
|
|
359
|
+
if (isScriptExecuting &&
|
|
360
|
+
currentOpcode >= 0 &&
|
|
361
|
+
currentOpcode <= OP_17.default.OP_PUSHDATA4) {
|
|
361
362
|
if (requireMinimalPush && !isChunkMinimal(operation)) {
|
|
362
363
|
this.scriptEvaluationError('This data is not minimally-encoded.');
|
|
363
364
|
}
|
|
@@ -368,107 +369,108 @@ class Spend {
|
|
|
368
369
|
this.stack.push(operation.data);
|
|
369
370
|
}
|
|
370
371
|
}
|
|
371
|
-
else if (isScriptExecuting ||
|
|
372
|
+
else if (isScriptExecuting ||
|
|
373
|
+
(OP_17.default.OP_IF <= currentOpcode && currentOpcode <= OP_17.default.OP_ENDIF)) {
|
|
372
374
|
switch (currentOpcode) {
|
|
373
|
-
case
|
|
374
|
-
case
|
|
375
|
-
case
|
|
376
|
-
case
|
|
377
|
-
case
|
|
378
|
-
case
|
|
379
|
-
case
|
|
380
|
-
case
|
|
381
|
-
case
|
|
382
|
-
case
|
|
383
|
-
case
|
|
384
|
-
case
|
|
385
|
-
case
|
|
386
|
-
case
|
|
387
|
-
case
|
|
388
|
-
case
|
|
389
|
-
case
|
|
390
|
-
n = currentOpcode - (
|
|
391
|
-
buf = new
|
|
375
|
+
case OP_17.default.OP_1NEGATE:
|
|
376
|
+
case OP_17.default.OP_1:
|
|
377
|
+
case OP_17.default.OP_2:
|
|
378
|
+
case OP_17.default.OP_3:
|
|
379
|
+
case OP_17.default.OP_4:
|
|
380
|
+
case OP_17.default.OP_5:
|
|
381
|
+
case OP_17.default.OP_6:
|
|
382
|
+
case OP_17.default.OP_7:
|
|
383
|
+
case OP_17.default.OP_8:
|
|
384
|
+
case OP_17.default.OP_9:
|
|
385
|
+
case OP_17.default.OP_10:
|
|
386
|
+
case OP_17.default.OP_11:
|
|
387
|
+
case OP_17.default.OP_12:
|
|
388
|
+
case OP_17.default.OP_13:
|
|
389
|
+
case OP_17.default.OP_14:
|
|
390
|
+
case OP_17.default.OP_15:
|
|
391
|
+
case OP_17.default.OP_16:
|
|
392
|
+
n = currentOpcode - (OP_17.default.OP_1 - 1);
|
|
393
|
+
buf = new BigNumber_1.default(n).toScriptNum();
|
|
392
394
|
this.stack.push(buf);
|
|
393
395
|
break;
|
|
394
|
-
case
|
|
395
|
-
case
|
|
396
|
-
case
|
|
397
|
-
case
|
|
398
|
-
case
|
|
399
|
-
case
|
|
400
|
-
case
|
|
401
|
-
case
|
|
402
|
-
case
|
|
403
|
-
case
|
|
404
|
-
case
|
|
405
|
-
case
|
|
406
|
-
case
|
|
407
|
-
case
|
|
408
|
-
case
|
|
409
|
-
case
|
|
410
|
-
case
|
|
411
|
-
case
|
|
412
|
-
case
|
|
413
|
-
case
|
|
414
|
-
case
|
|
415
|
-
case
|
|
416
|
-
case
|
|
417
|
-
case
|
|
418
|
-
case
|
|
419
|
-
case
|
|
420
|
-
case
|
|
421
|
-
case
|
|
422
|
-
case
|
|
423
|
-
case
|
|
424
|
-
case
|
|
425
|
-
case
|
|
426
|
-
case
|
|
427
|
-
case
|
|
428
|
-
case
|
|
429
|
-
case
|
|
430
|
-
case
|
|
431
|
-
case
|
|
432
|
-
case
|
|
433
|
-
case
|
|
434
|
-
case
|
|
435
|
-
case
|
|
436
|
-
case
|
|
437
|
-
case
|
|
438
|
-
case
|
|
439
|
-
case
|
|
440
|
-
case
|
|
441
|
-
case
|
|
442
|
-
case
|
|
443
|
-
case
|
|
444
|
-
case
|
|
445
|
-
case
|
|
446
|
-
case
|
|
447
|
-
case
|
|
448
|
-
case
|
|
449
|
-
case
|
|
450
|
-
case
|
|
451
|
-
case
|
|
452
|
-
case
|
|
453
|
-
case
|
|
454
|
-
case
|
|
455
|
-
case
|
|
456
|
-
case
|
|
457
|
-
case
|
|
458
|
-
case
|
|
459
|
-
case
|
|
460
|
-
case
|
|
461
|
-
case
|
|
462
|
-
case
|
|
463
|
-
case
|
|
464
|
-
case
|
|
465
|
-
case
|
|
466
|
-
case
|
|
467
|
-
case
|
|
468
|
-
case
|
|
396
|
+
case OP_17.default.OP_NOP:
|
|
397
|
+
case OP_17.default.OP_NOP2:
|
|
398
|
+
case OP_17.default.OP_NOP3:
|
|
399
|
+
case OP_17.default.OP_NOP1:
|
|
400
|
+
case OP_17.default.OP_NOP4:
|
|
401
|
+
case OP_17.default.OP_NOP5:
|
|
402
|
+
case OP_17.default.OP_NOP6:
|
|
403
|
+
case OP_17.default.OP_NOP7:
|
|
404
|
+
case OP_17.default.OP_NOP8:
|
|
405
|
+
case OP_17.default.OP_NOP9:
|
|
406
|
+
case OP_17.default.OP_NOP10:
|
|
407
|
+
case OP_17.default.OP_NOP11:
|
|
408
|
+
case OP_17.default.OP_NOP12:
|
|
409
|
+
case OP_17.default.OP_NOP13:
|
|
410
|
+
case OP_17.default.OP_NOP14:
|
|
411
|
+
case OP_17.default.OP_NOP15:
|
|
412
|
+
case OP_17.default.OP_NOP16:
|
|
413
|
+
case OP_17.default.OP_NOP17:
|
|
414
|
+
case OP_17.default.OP_NOP18:
|
|
415
|
+
case OP_17.default.OP_NOP19:
|
|
416
|
+
case OP_17.default.OP_NOP20:
|
|
417
|
+
case OP_17.default.OP_NOP21:
|
|
418
|
+
case OP_17.default.OP_NOP22:
|
|
419
|
+
case OP_17.default.OP_NOP23:
|
|
420
|
+
case OP_17.default.OP_NOP24:
|
|
421
|
+
case OP_17.default.OP_NOP25:
|
|
422
|
+
case OP_17.default.OP_NOP26:
|
|
423
|
+
case OP_17.default.OP_NOP27:
|
|
424
|
+
case OP_17.default.OP_NOP28:
|
|
425
|
+
case OP_17.default.OP_NOP29:
|
|
426
|
+
case OP_17.default.OP_NOP30:
|
|
427
|
+
case OP_17.default.OP_NOP31:
|
|
428
|
+
case OP_17.default.OP_NOP32:
|
|
429
|
+
case OP_17.default.OP_NOP33:
|
|
430
|
+
case OP_17.default.OP_NOP34:
|
|
431
|
+
case OP_17.default.OP_NOP35:
|
|
432
|
+
case OP_17.default.OP_NOP36:
|
|
433
|
+
case OP_17.default.OP_NOP37:
|
|
434
|
+
case OP_17.default.OP_NOP38:
|
|
435
|
+
case OP_17.default.OP_NOP39:
|
|
436
|
+
case OP_17.default.OP_NOP40:
|
|
437
|
+
case OP_17.default.OP_NOP41:
|
|
438
|
+
case OP_17.default.OP_NOP42:
|
|
439
|
+
case OP_17.default.OP_NOP43:
|
|
440
|
+
case OP_17.default.OP_NOP44:
|
|
441
|
+
case OP_17.default.OP_NOP45:
|
|
442
|
+
case OP_17.default.OP_NOP46:
|
|
443
|
+
case OP_17.default.OP_NOP47:
|
|
444
|
+
case OP_17.default.OP_NOP48:
|
|
445
|
+
case OP_17.default.OP_NOP49:
|
|
446
|
+
case OP_17.default.OP_NOP50:
|
|
447
|
+
case OP_17.default.OP_NOP51:
|
|
448
|
+
case OP_17.default.OP_NOP52:
|
|
449
|
+
case OP_17.default.OP_NOP53:
|
|
450
|
+
case OP_17.default.OP_NOP54:
|
|
451
|
+
case OP_17.default.OP_NOP55:
|
|
452
|
+
case OP_17.default.OP_NOP56:
|
|
453
|
+
case OP_17.default.OP_NOP57:
|
|
454
|
+
case OP_17.default.OP_NOP58:
|
|
455
|
+
case OP_17.default.OP_NOP59:
|
|
456
|
+
case OP_17.default.OP_NOP60:
|
|
457
|
+
case OP_17.default.OP_NOP61:
|
|
458
|
+
case OP_17.default.OP_NOP62:
|
|
459
|
+
case OP_17.default.OP_NOP63:
|
|
460
|
+
case OP_17.default.OP_NOP64:
|
|
461
|
+
case OP_17.default.OP_NOP65:
|
|
462
|
+
case OP_17.default.OP_NOP66:
|
|
463
|
+
case OP_17.default.OP_NOP67:
|
|
464
|
+
case OP_17.default.OP_NOP68:
|
|
465
|
+
case OP_17.default.OP_NOP69:
|
|
466
|
+
case OP_17.default.OP_NOP70:
|
|
467
|
+
case OP_17.default.OP_NOP71:
|
|
468
|
+
case OP_17.default.OP_NOP72:
|
|
469
|
+
case OP_17.default.OP_NOP73:
|
|
470
|
+
case OP_17.default.OP_NOP77:
|
|
469
471
|
break;
|
|
470
|
-
case
|
|
471
|
-
case
|
|
472
|
+
case OP_17.default.OP_IF:
|
|
473
|
+
case OP_17.default.OP_NOTIF:
|
|
472
474
|
fValue = false;
|
|
473
475
|
if (isScriptExecuting) {
|
|
474
476
|
if (this.stack.length < 1) {
|
|
@@ -476,26 +478,27 @@ class Spend {
|
|
|
476
478
|
}
|
|
477
479
|
buf = this.stacktop(-1);
|
|
478
480
|
fValue = this.castToBool(buf);
|
|
479
|
-
if (currentOpcode ===
|
|
481
|
+
if (currentOpcode === OP_17.default.OP_NOTIF) {
|
|
480
482
|
fValue = !fValue;
|
|
481
483
|
}
|
|
482
484
|
this.stack.pop();
|
|
483
485
|
}
|
|
484
486
|
this.ifStack.push(fValue);
|
|
485
487
|
break;
|
|
486
|
-
case
|
|
488
|
+
case OP_17.default.OP_ELSE:
|
|
487
489
|
if (this.ifStack.length === 0) {
|
|
488
490
|
this.scriptEvaluationError('OP_ELSE requires a preceeding OP_IF.');
|
|
489
491
|
}
|
|
490
|
-
this.ifStack[this.ifStack.length - 1] =
|
|
492
|
+
this.ifStack[this.ifStack.length - 1] =
|
|
493
|
+
!this.ifStack[this.ifStack.length - 1];
|
|
491
494
|
break;
|
|
492
|
-
case
|
|
495
|
+
case OP_17.default.OP_ENDIF:
|
|
493
496
|
if (this.ifStack.length === 0) {
|
|
494
497
|
this.scriptEvaluationError('OP_ENDIF requires a preceeding OP_IF.');
|
|
495
498
|
}
|
|
496
499
|
this.ifStack.pop();
|
|
497
500
|
break;
|
|
498
|
-
case
|
|
501
|
+
case OP_17.default.OP_VERIFY:
|
|
499
502
|
if (this.stack.length < 1) {
|
|
500
503
|
this.scriptEvaluationError('OP_VERIFY requires at least one item to be on the stack.');
|
|
501
504
|
}
|
|
@@ -508,7 +511,7 @@ class Spend {
|
|
|
508
511
|
this.scriptEvaluationError('OP_VERIFY requires the top stack value to be truthy.');
|
|
509
512
|
}
|
|
510
513
|
break;
|
|
511
|
-
case
|
|
514
|
+
case OP_17.default.OP_RETURN:
|
|
512
515
|
if (this.context === 'UnlockingScript') {
|
|
513
516
|
this.programCounter = this.unlockingScript.chunks.length;
|
|
514
517
|
}
|
|
@@ -517,26 +520,26 @@ class Spend {
|
|
|
517
520
|
}
|
|
518
521
|
this.ifStack = [];
|
|
519
522
|
break;
|
|
520
|
-
case
|
|
523
|
+
case OP_17.default.OP_TOALTSTACK:
|
|
521
524
|
if (this.stack.length < 1) {
|
|
522
525
|
this.scriptEvaluationError('OP_TOALTSTACK requires at oeast one item to be on the stack.');
|
|
523
526
|
}
|
|
524
527
|
this.altStack.push(this.stack.pop());
|
|
525
528
|
break;
|
|
526
|
-
case
|
|
529
|
+
case OP_17.default.OP_FROMALTSTACK:
|
|
527
530
|
if (this.altStack.length < 1) {
|
|
528
531
|
this.scriptEvaluationError('OP_FROMALTSTACK requires at least one item to be on the stack.');
|
|
529
532
|
}
|
|
530
533
|
this.stack.push(this.altStack.pop());
|
|
531
534
|
break;
|
|
532
|
-
case
|
|
535
|
+
case OP_17.default.OP_2DROP:
|
|
533
536
|
if (this.stack.length < 2) {
|
|
534
537
|
this.scriptEvaluationError('OP_2DROP requires at least two items to be on the stack.');
|
|
535
538
|
}
|
|
536
539
|
this.stack.pop();
|
|
537
540
|
this.stack.pop();
|
|
538
541
|
break;
|
|
539
|
-
case
|
|
542
|
+
case OP_17.default.OP_2DUP:
|
|
540
543
|
if (this.stack.length < 2) {
|
|
541
544
|
this.scriptEvaluationError('OP_2DUP requires at least two items to be on the stack.');
|
|
542
545
|
}
|
|
@@ -545,7 +548,7 @@ class Spend {
|
|
|
545
548
|
this.stack.push([...buf1]);
|
|
546
549
|
this.stack.push([...buf2]);
|
|
547
550
|
break;
|
|
548
|
-
case
|
|
551
|
+
case OP_17.default.OP_3DUP:
|
|
549
552
|
if (this.stack.length < 3) {
|
|
550
553
|
this.scriptEvaluationError('OP_3DUP requires at least three items to be on the stack.');
|
|
551
554
|
}
|
|
@@ -556,7 +559,7 @@ class Spend {
|
|
|
556
559
|
this.stack.push([...buf2]);
|
|
557
560
|
this.stack.push([...buf3]);
|
|
558
561
|
break;
|
|
559
|
-
case
|
|
562
|
+
case OP_17.default.OP_2OVER:
|
|
560
563
|
if (this.stack.length < 4) {
|
|
561
564
|
this.scriptEvaluationError('OP_2OVER requires at least four items to be on the stack.');
|
|
562
565
|
}
|
|
@@ -565,7 +568,7 @@ class Spend {
|
|
|
565
568
|
this.stack.push([...buf1]);
|
|
566
569
|
this.stack.push([...buf2]);
|
|
567
570
|
break;
|
|
568
|
-
case
|
|
571
|
+
case OP_17.default.OP_2ROT:
|
|
569
572
|
if (this.stack.length < 6) {
|
|
570
573
|
this.scriptEvaluationError('OP_2ROT requires at least six items to be on the stack.');
|
|
571
574
|
}
|
|
@@ -573,7 +576,7 @@ class Spend {
|
|
|
573
576
|
this.stack.push(spliced[0]);
|
|
574
577
|
this.stack.push(spliced[1]);
|
|
575
578
|
break;
|
|
576
|
-
case
|
|
579
|
+
case OP_17.default.OP_2SWAP:
|
|
577
580
|
if (this.stack.length < 4) {
|
|
578
581
|
this.scriptEvaluationError('OP_2SWAP requires at least four items to be on the stack.');
|
|
579
582
|
}
|
|
@@ -581,7 +584,7 @@ class Spend {
|
|
|
581
584
|
this.stack.push(spliced[0]);
|
|
582
585
|
this.stack.push(spliced[1]);
|
|
583
586
|
break;
|
|
584
|
-
case
|
|
587
|
+
case OP_17.default.OP_IFDUP:
|
|
585
588
|
if (this.stack.length < 1) {
|
|
586
589
|
this.scriptEvaluationError('OP_IFDUP requires at least one item to be on the stack.');
|
|
587
590
|
}
|
|
@@ -591,53 +594,53 @@ class Spend {
|
|
|
591
594
|
this.stack.push([...buf]);
|
|
592
595
|
}
|
|
593
596
|
break;
|
|
594
|
-
case
|
|
595
|
-
buf = new
|
|
597
|
+
case OP_17.default.OP_DEPTH:
|
|
598
|
+
buf = new BigNumber_1.default(this.stack.length).toScriptNum();
|
|
596
599
|
this.stack.push(buf);
|
|
597
600
|
break;
|
|
598
|
-
case
|
|
601
|
+
case OP_17.default.OP_DROP:
|
|
599
602
|
if (this.stack.length < 1) {
|
|
600
603
|
this.scriptEvaluationError('OP_DROP requires at least one item to be on the stack.');
|
|
601
604
|
}
|
|
602
605
|
this.stack.pop();
|
|
603
606
|
break;
|
|
604
|
-
case
|
|
607
|
+
case OP_17.default.OP_DUP:
|
|
605
608
|
if (this.stack.length < 1) {
|
|
606
609
|
this.scriptEvaluationError('OP_DUP requires at least one item to be on the stack.');
|
|
607
610
|
}
|
|
608
611
|
this.stack.push([...this.stacktop(-1)]);
|
|
609
612
|
break;
|
|
610
|
-
case
|
|
613
|
+
case OP_17.default.OP_NIP:
|
|
611
614
|
if (this.stack.length < 2) {
|
|
612
615
|
this.scriptEvaluationError('OP_NIP requires at least two items to be on the stack.');
|
|
613
616
|
}
|
|
614
617
|
this.stack.splice(this.stack.length - 2, 1);
|
|
615
618
|
break;
|
|
616
|
-
case
|
|
619
|
+
case OP_17.default.OP_OVER:
|
|
617
620
|
if (this.stack.length < 2) {
|
|
618
621
|
this.scriptEvaluationError('OP_OVER requires at least two items to be on the stack.');
|
|
619
622
|
}
|
|
620
623
|
this.stack.push([...this.stacktop(-2)]);
|
|
621
624
|
break;
|
|
622
|
-
case
|
|
623
|
-
case
|
|
625
|
+
case OP_17.default.OP_PICK:
|
|
626
|
+
case OP_17.default.OP_ROLL:
|
|
624
627
|
if (this.stack.length < 2) {
|
|
625
|
-
this.scriptEvaluationError(`${
|
|
628
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least two items to be on the stack.`);
|
|
626
629
|
}
|
|
627
630
|
buf = this.stacktop(-1);
|
|
628
|
-
bn =
|
|
631
|
+
bn = BigNumber_1.default.fromScriptNum(buf, requireMinimalPush);
|
|
629
632
|
n = bn.toNumber();
|
|
630
633
|
this.stack.pop();
|
|
631
634
|
if (n < 0 || n >= this.stack.length) {
|
|
632
|
-
this.scriptEvaluationError(`${
|
|
635
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires the top stack element to be 0 or a positive number less than the current size of the stack.`);
|
|
633
636
|
}
|
|
634
637
|
buf = this.stacktop(-n - 1);
|
|
635
|
-
if (currentOpcode ===
|
|
638
|
+
if (currentOpcode === OP_17.default.OP_ROLL) {
|
|
636
639
|
this.stack.splice(this.stack.length - n - 1, 1);
|
|
637
640
|
}
|
|
638
641
|
this.stack.push([...buf]);
|
|
639
642
|
break;
|
|
640
|
-
case
|
|
643
|
+
case OP_17.default.OP_ROT:
|
|
641
644
|
if (this.stack.length < 3) {
|
|
642
645
|
this.scriptEvaluationError('OP_ROT requires at least three items to be on the stack.');
|
|
643
646
|
}
|
|
@@ -648,7 +651,7 @@ class Spend {
|
|
|
648
651
|
this.stack[this.stack.length - 2] = x3;
|
|
649
652
|
this.stack[this.stack.length - 1] = x1;
|
|
650
653
|
break;
|
|
651
|
-
case
|
|
654
|
+
case OP_17.default.OP_SWAP:
|
|
652
655
|
if (this.stack.length < 2) {
|
|
653
656
|
this.scriptEvaluationError('OP_SWAP requires at least two items to be on the stack.');
|
|
654
657
|
}
|
|
@@ -657,42 +660,42 @@ class Spend {
|
|
|
657
660
|
this.stack[this.stack.length - 2] = x2;
|
|
658
661
|
this.stack[this.stack.length - 1] = x1;
|
|
659
662
|
break;
|
|
660
|
-
case
|
|
663
|
+
case OP_17.default.OP_TUCK:
|
|
661
664
|
if (this.stack.length < 2) {
|
|
662
665
|
this.scriptEvaluationError('OP_TUCK requires at least two items to be on the stack.');
|
|
663
666
|
}
|
|
664
667
|
this.stack.splice(this.stack.length - 2, 0, [...this.stacktop(-1)]);
|
|
665
668
|
break;
|
|
666
|
-
case
|
|
669
|
+
case OP_17.default.OP_SIZE:
|
|
667
670
|
if (this.stack.length < 1) {
|
|
668
671
|
this.scriptEvaluationError('OP_SIZE requires at least one item to be on the stack.');
|
|
669
672
|
}
|
|
670
|
-
bn = new
|
|
673
|
+
bn = new BigNumber_1.default(this.stacktop(-1).length);
|
|
671
674
|
this.stack.push(bn.toScriptNum());
|
|
672
675
|
break;
|
|
673
|
-
case
|
|
674
|
-
case
|
|
675
|
-
case
|
|
676
|
+
case OP_17.default.OP_AND:
|
|
677
|
+
case OP_17.default.OP_OR:
|
|
678
|
+
case OP_17.default.OP_XOR:
|
|
676
679
|
if (this.stack.length < 2) {
|
|
677
|
-
this.scriptEvaluationError(`${
|
|
680
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least one item to be on the stack.`);
|
|
678
681
|
}
|
|
679
682
|
buf1 = this.stacktop(-2);
|
|
680
683
|
buf2 = this.stacktop(-1);
|
|
681
684
|
if (buf1.length !== buf2.length) {
|
|
682
|
-
this.scriptEvaluationError(`${
|
|
685
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires the top two stack items to be the same size.`);
|
|
683
686
|
}
|
|
684
687
|
switch (currentOpcode) {
|
|
685
|
-
case
|
|
688
|
+
case OP_17.default.OP_AND:
|
|
686
689
|
for (let i = 0; i < buf1.length; i++) {
|
|
687
690
|
buf1[i] &= buf2[i];
|
|
688
691
|
}
|
|
689
692
|
break;
|
|
690
|
-
case
|
|
693
|
+
case OP_17.default.OP_OR:
|
|
691
694
|
for (let i = 0; i < buf1.length; i++) {
|
|
692
695
|
buf1[i] |= buf2[i];
|
|
693
696
|
}
|
|
694
697
|
break;
|
|
695
|
-
case
|
|
698
|
+
case OP_17.default.OP_XOR:
|
|
696
699
|
for (let i = 0; i < buf1.length; i++) {
|
|
697
700
|
buf1[i] ^= buf2[i];
|
|
698
701
|
}
|
|
@@ -701,7 +704,7 @@ class Spend {
|
|
|
701
704
|
// And pop vch2.
|
|
702
705
|
this.stack.pop();
|
|
703
706
|
break;
|
|
704
|
-
case
|
|
707
|
+
case OP_17.default.OP_INVERT:
|
|
705
708
|
if (this.stack.length < 1) {
|
|
706
709
|
this.scriptEvaluationError('OP_INVERT requires at least one item to be on the stack.');
|
|
707
710
|
}
|
|
@@ -710,47 +713,47 @@ class Spend {
|
|
|
710
713
|
buf[i] = ~buf[i];
|
|
711
714
|
}
|
|
712
715
|
break;
|
|
713
|
-
case
|
|
714
|
-
case
|
|
716
|
+
case OP_17.default.OP_LSHIFT:
|
|
717
|
+
case OP_17.default.OP_RSHIFT:
|
|
715
718
|
if (this.stack.length < 2) {
|
|
716
|
-
this.scriptEvaluationError(`${
|
|
719
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least two items to be on the stack.`);
|
|
717
720
|
}
|
|
718
721
|
buf1 = this.stacktop(-2);
|
|
719
722
|
if (buf1.length === 0) {
|
|
720
723
|
this.stack.pop();
|
|
721
724
|
}
|
|
722
725
|
else {
|
|
723
|
-
bn1 = new
|
|
724
|
-
bn2 =
|
|
726
|
+
bn1 = new BigNumber_1.default(buf1);
|
|
727
|
+
bn2 = BigNumber_1.default.fromScriptNum(this.stacktop(-1), requireMinimalPush);
|
|
725
728
|
n = bn2.toNumber();
|
|
726
729
|
if (n < 0) {
|
|
727
|
-
this.scriptEvaluationError(`${
|
|
730
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires the top item on the stack not to be negative.`);
|
|
728
731
|
}
|
|
729
732
|
this.stack.pop();
|
|
730
733
|
this.stack.pop();
|
|
731
734
|
let shifted;
|
|
732
|
-
if (currentOpcode ===
|
|
735
|
+
if (currentOpcode === OP_17.default.OP_LSHIFT) {
|
|
733
736
|
shifted = bn1.ushln(n);
|
|
734
737
|
}
|
|
735
|
-
if (currentOpcode ===
|
|
738
|
+
if (currentOpcode === OP_17.default.OP_RSHIFT) {
|
|
736
739
|
shifted = bn1.ushrn(n);
|
|
737
740
|
}
|
|
738
741
|
const bufShifted = padDataToSize(shifted.toArray().slice(buf1.length * -1), buf1.length);
|
|
739
742
|
this.stack.push(bufShifted);
|
|
740
743
|
}
|
|
741
744
|
break;
|
|
742
|
-
case
|
|
743
|
-
case
|
|
745
|
+
case OP_17.default.OP_EQUAL:
|
|
746
|
+
case OP_17.default.OP_EQUALVERIFY:
|
|
744
747
|
if (this.stack.length < 2) {
|
|
745
|
-
this.scriptEvaluationError(`${
|
|
748
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least two items to be on the stack.`);
|
|
746
749
|
}
|
|
747
750
|
buf1 = this.stacktop(-2);
|
|
748
751
|
buf2 = this.stacktop(-1);
|
|
749
|
-
fEqual = (0,
|
|
752
|
+
fEqual = (0, utils_1.toHex)(buf1) === (0, utils_1.toHex)(buf2);
|
|
750
753
|
this.stack.pop();
|
|
751
754
|
this.stack.pop();
|
|
752
755
|
this.stack.push(fEqual ? [1] : []);
|
|
753
|
-
if (currentOpcode ===
|
|
756
|
+
if (currentOpcode === OP_17.default.OP_EQUALVERIFY) {
|
|
754
757
|
if (fEqual) {
|
|
755
758
|
this.stack.pop();
|
|
756
759
|
}
|
|
@@ -759,124 +762,124 @@ class Spend {
|
|
|
759
762
|
}
|
|
760
763
|
}
|
|
761
764
|
break;
|
|
762
|
-
case
|
|
763
|
-
case
|
|
764
|
-
case
|
|
765
|
-
case
|
|
766
|
-
case
|
|
767
|
-
case
|
|
765
|
+
case OP_17.default.OP_1ADD:
|
|
766
|
+
case OP_17.default.OP_1SUB:
|
|
767
|
+
case OP_17.default.OP_NEGATE:
|
|
768
|
+
case OP_17.default.OP_ABS:
|
|
769
|
+
case OP_17.default.OP_NOT:
|
|
770
|
+
case OP_17.default.OP_0NOTEQUAL:
|
|
768
771
|
if (this.stack.length < 1) {
|
|
769
|
-
this.scriptEvaluationError(`${
|
|
772
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least one items to be on the stack.`);
|
|
770
773
|
}
|
|
771
774
|
buf = this.stacktop(-1);
|
|
772
|
-
bn =
|
|
775
|
+
bn = BigNumber_1.default.fromScriptNum(buf, requireMinimalPush);
|
|
773
776
|
switch (currentOpcode) {
|
|
774
|
-
case
|
|
777
|
+
case OP_17.default.OP_1ADD:
|
|
775
778
|
bn = bn.addn(1);
|
|
776
779
|
break;
|
|
777
|
-
case
|
|
780
|
+
case OP_17.default.OP_1SUB:
|
|
778
781
|
bn = bn.subn(1);
|
|
779
782
|
break;
|
|
780
|
-
case
|
|
783
|
+
case OP_17.default.OP_NEGATE:
|
|
781
784
|
bn = bn.neg();
|
|
782
785
|
break;
|
|
783
|
-
case
|
|
786
|
+
case OP_17.default.OP_ABS:
|
|
784
787
|
if (bn.cmpn(0) < 0) {
|
|
785
788
|
bn = bn.neg();
|
|
786
789
|
}
|
|
787
790
|
break;
|
|
788
|
-
case
|
|
789
|
-
bn = new
|
|
791
|
+
case OP_17.default.OP_NOT:
|
|
792
|
+
bn = new BigNumber_1.default(bn.cmpn(0) === 0 ? 1 : 0 + 0);
|
|
790
793
|
break;
|
|
791
|
-
case
|
|
792
|
-
bn = new
|
|
794
|
+
case OP_17.default.OP_0NOTEQUAL:
|
|
795
|
+
bn = new BigNumber_1.default(bn.cmpn(0) !== 0 ? 1 : 0 + 0);
|
|
793
796
|
break;
|
|
794
797
|
}
|
|
795
798
|
this.stack.pop();
|
|
796
799
|
this.stack.push(bn.toScriptNum());
|
|
797
800
|
break;
|
|
798
|
-
case
|
|
799
|
-
case
|
|
800
|
-
case
|
|
801
|
-
case
|
|
802
|
-
case
|
|
803
|
-
case
|
|
804
|
-
case
|
|
805
|
-
case
|
|
806
|
-
case
|
|
807
|
-
case
|
|
808
|
-
case
|
|
809
|
-
case
|
|
810
|
-
case
|
|
811
|
-
case
|
|
812
|
-
case
|
|
813
|
-
case
|
|
801
|
+
case OP_17.default.OP_ADD:
|
|
802
|
+
case OP_17.default.OP_SUB:
|
|
803
|
+
case OP_17.default.OP_MUL:
|
|
804
|
+
case OP_17.default.OP_MOD:
|
|
805
|
+
case OP_17.default.OP_DIV:
|
|
806
|
+
case OP_17.default.OP_BOOLAND:
|
|
807
|
+
case OP_17.default.OP_BOOLOR:
|
|
808
|
+
case OP_17.default.OP_NUMEQUAL:
|
|
809
|
+
case OP_17.default.OP_NUMEQUALVERIFY:
|
|
810
|
+
case OP_17.default.OP_NUMNOTEQUAL:
|
|
811
|
+
case OP_17.default.OP_LESSTHAN:
|
|
812
|
+
case OP_17.default.OP_GREATERTHAN:
|
|
813
|
+
case OP_17.default.OP_LESSTHANOREQUAL:
|
|
814
|
+
case OP_17.default.OP_GREATERTHANOREQUAL:
|
|
815
|
+
case OP_17.default.OP_MIN:
|
|
816
|
+
case OP_17.default.OP_MAX:
|
|
814
817
|
if (this.stack.length < 2) {
|
|
815
|
-
this.scriptEvaluationError(`${
|
|
818
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least two items to be on the stack.`);
|
|
816
819
|
}
|
|
817
|
-
bn1 =
|
|
818
|
-
bn2 =
|
|
819
|
-
bn = new
|
|
820
|
+
bn1 = BigNumber_1.default.fromScriptNum(this.stacktop(-2), requireMinimalPush);
|
|
821
|
+
bn2 = BigNumber_1.default.fromScriptNum(this.stacktop(-1), requireMinimalPush);
|
|
822
|
+
bn = new BigNumber_1.default(0);
|
|
820
823
|
switch (currentOpcode) {
|
|
821
|
-
case
|
|
824
|
+
case OP_17.default.OP_ADD:
|
|
822
825
|
bn = bn1.add(bn2);
|
|
823
826
|
break;
|
|
824
|
-
case
|
|
827
|
+
case OP_17.default.OP_SUB:
|
|
825
828
|
bn = bn1.sub(bn2);
|
|
826
829
|
break;
|
|
827
|
-
case
|
|
830
|
+
case OP_17.default.OP_MUL:
|
|
828
831
|
bn = bn1.mul(bn2);
|
|
829
832
|
break;
|
|
830
|
-
case
|
|
833
|
+
case OP_17.default.OP_DIV:
|
|
831
834
|
if (bn2.cmpn(0) === 0) {
|
|
832
835
|
this.scriptEvaluationError('OP_DIV cannot divide by zero!');
|
|
833
836
|
}
|
|
834
837
|
bn = bn1.div(bn2);
|
|
835
838
|
break;
|
|
836
|
-
case
|
|
839
|
+
case OP_17.default.OP_MOD:
|
|
837
840
|
if (bn2.cmpn(0) === 0) {
|
|
838
841
|
this.scriptEvaluationError('OP_MOD cannot divide by zero!');
|
|
839
842
|
}
|
|
840
843
|
bn = bn1.mod(bn2);
|
|
841
844
|
break;
|
|
842
|
-
case
|
|
843
|
-
bn = new
|
|
845
|
+
case OP_17.default.OP_BOOLAND:
|
|
846
|
+
bn = new BigNumber_1.default(bn1.cmpn(0) !== 0 && bn2.cmpn(0) !== 0 ? 1 : 0 + 0);
|
|
844
847
|
break;
|
|
845
|
-
case
|
|
846
|
-
bn = new
|
|
848
|
+
case OP_17.default.OP_BOOLOR:
|
|
849
|
+
bn = new BigNumber_1.default(bn1.cmpn(0) !== 0 || bn2.cmpn(0) !== 0 ? 1 : 0 + 0);
|
|
847
850
|
break;
|
|
848
|
-
case
|
|
849
|
-
bn = new
|
|
851
|
+
case OP_17.default.OP_NUMEQUAL:
|
|
852
|
+
bn = new BigNumber_1.default(bn1.cmp(bn2) === 0 ? 1 : 0 + 0);
|
|
850
853
|
break;
|
|
851
|
-
case
|
|
852
|
-
bn = new
|
|
854
|
+
case OP_17.default.OP_NUMEQUALVERIFY:
|
|
855
|
+
bn = new BigNumber_1.default(bn1.cmp(bn2) === 0 ? 1 : 0 + 0);
|
|
853
856
|
break;
|
|
854
|
-
case
|
|
855
|
-
bn = new
|
|
857
|
+
case OP_17.default.OP_NUMNOTEQUAL:
|
|
858
|
+
bn = new BigNumber_1.default(bn1.cmp(bn2) !== 0 ? 1 : 0 + 0);
|
|
856
859
|
break;
|
|
857
|
-
case
|
|
858
|
-
bn = new
|
|
860
|
+
case OP_17.default.OP_LESSTHAN:
|
|
861
|
+
bn = new BigNumber_1.default(bn1.cmp(bn2) < 0 ? 1 : 0 + 0);
|
|
859
862
|
break;
|
|
860
|
-
case
|
|
861
|
-
bn = new
|
|
863
|
+
case OP_17.default.OP_GREATERTHAN:
|
|
864
|
+
bn = new BigNumber_1.default(bn1.cmp(bn2) > 0 ? 1 : 0 + 0);
|
|
862
865
|
break;
|
|
863
|
-
case
|
|
864
|
-
bn = new
|
|
866
|
+
case OP_17.default.OP_LESSTHANOREQUAL:
|
|
867
|
+
bn = new BigNumber_1.default(bn1.cmp(bn2) <= 0 ? 1 : 0 + 0);
|
|
865
868
|
break;
|
|
866
|
-
case
|
|
867
|
-
bn = new
|
|
869
|
+
case OP_17.default.OP_GREATERTHANOREQUAL:
|
|
870
|
+
bn = new BigNumber_1.default(bn1.cmp(bn2) >= 0 ? 1 : 0 + 0);
|
|
868
871
|
break;
|
|
869
|
-
case
|
|
870
|
-
bn =
|
|
872
|
+
case OP_17.default.OP_MIN:
|
|
873
|
+
bn = bn1.cmp(bn2) < 0 ? bn1 : bn2;
|
|
871
874
|
break;
|
|
872
|
-
case
|
|
873
|
-
bn =
|
|
875
|
+
case OP_17.default.OP_MAX:
|
|
876
|
+
bn = bn1.cmp(bn2) > 0 ? bn1 : bn2;
|
|
874
877
|
break;
|
|
875
878
|
}
|
|
876
879
|
this.stack.pop();
|
|
877
880
|
this.stack.pop();
|
|
878
881
|
this.stack.push(bn.toScriptNum());
|
|
879
|
-
if (currentOpcode ===
|
|
882
|
+
if (currentOpcode === OP_17.default.OP_NUMEQUALVERIFY) {
|
|
880
883
|
if (this.castToBool(this.stacktop(-1))) {
|
|
881
884
|
this.stack.pop();
|
|
882
885
|
}
|
|
@@ -885,73 +888,73 @@ class Spend {
|
|
|
885
888
|
}
|
|
886
889
|
}
|
|
887
890
|
break;
|
|
888
|
-
case
|
|
891
|
+
case OP_17.default.OP_WITHIN:
|
|
889
892
|
if (this.stack.length < 3) {
|
|
890
893
|
this.scriptEvaluationError('OP_WITHIN requires at least three items to be on the stack.');
|
|
891
894
|
}
|
|
892
|
-
bn1 =
|
|
893
|
-
bn2 =
|
|
894
|
-
bn3 =
|
|
895
|
-
fValue =
|
|
895
|
+
bn1 = BigNumber_1.default.fromScriptNum(this.stacktop(-3), requireMinimalPush);
|
|
896
|
+
bn2 = BigNumber_1.default.fromScriptNum(this.stacktop(-2), requireMinimalPush);
|
|
897
|
+
bn3 = BigNumber_1.default.fromScriptNum(this.stacktop(-1), requireMinimalPush);
|
|
898
|
+
fValue = bn2.cmp(bn1) <= 0 && bn1.cmp(bn3) < 0;
|
|
896
899
|
this.stack.pop();
|
|
897
900
|
this.stack.pop();
|
|
898
901
|
this.stack.pop();
|
|
899
902
|
this.stack.push(fValue ? [1] : []);
|
|
900
903
|
break;
|
|
901
|
-
case
|
|
902
|
-
case
|
|
903
|
-
case
|
|
904
|
-
case
|
|
905
|
-
case
|
|
904
|
+
case OP_17.default.OP_RIPEMD160:
|
|
905
|
+
case OP_17.default.OP_SHA1:
|
|
906
|
+
case OP_17.default.OP_SHA256:
|
|
907
|
+
case OP_17.default.OP_HASH160:
|
|
908
|
+
case OP_17.default.OP_HASH256:
|
|
906
909
|
if (this.stack.length < 1) {
|
|
907
|
-
this.scriptEvaluationError(`${
|
|
910
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least one item to be on the stack.`);
|
|
908
911
|
}
|
|
909
912
|
buf = this.stacktop(-1);
|
|
910
|
-
if (currentOpcode ===
|
|
913
|
+
if (currentOpcode === OP_17.default.OP_RIPEMD160) {
|
|
911
914
|
bufHash = Hash.ripemd160(buf);
|
|
912
915
|
}
|
|
913
|
-
else if (currentOpcode ===
|
|
916
|
+
else if (currentOpcode === OP_17.default.OP_SHA1) {
|
|
914
917
|
bufHash = Hash.sha1(buf);
|
|
915
918
|
}
|
|
916
|
-
else if (currentOpcode ===
|
|
919
|
+
else if (currentOpcode === OP_17.default.OP_SHA256) {
|
|
917
920
|
bufHash = Hash.sha256(buf);
|
|
918
921
|
}
|
|
919
|
-
else if (currentOpcode ===
|
|
922
|
+
else if (currentOpcode === OP_17.default.OP_HASH160) {
|
|
920
923
|
bufHash = Hash.hash160(buf);
|
|
921
924
|
}
|
|
922
|
-
else if (currentOpcode ===
|
|
925
|
+
else if (currentOpcode === OP_17.default.OP_HASH256) {
|
|
923
926
|
bufHash = Hash.hash256(buf);
|
|
924
927
|
}
|
|
925
928
|
this.stack.pop();
|
|
926
929
|
this.stack.push(bufHash);
|
|
927
930
|
break;
|
|
928
|
-
case
|
|
931
|
+
case OP_17.default.OP_CODESEPARATOR:
|
|
929
932
|
this.lastCodeSeparator = this.programCounter;
|
|
930
933
|
break;
|
|
931
|
-
case
|
|
932
|
-
case
|
|
934
|
+
case OP_17.default.OP_CHECKSIG:
|
|
935
|
+
case OP_17.default.OP_CHECKSIGVERIFY:
|
|
933
936
|
if (this.stack.length < 2) {
|
|
934
|
-
this.scriptEvaluationError(`${
|
|
937
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least two items to be on the stack.`);
|
|
935
938
|
}
|
|
936
939
|
bufSig = this.stacktop(-2);
|
|
937
940
|
bufPubkey = this.stacktop(-1);
|
|
938
941
|
if (!checkSignatureEncoding(bufSig) ||
|
|
939
942
|
!checkPublicKeyEncoding(bufPubkey)) {
|
|
940
|
-
this.scriptEvaluationError(`${
|
|
943
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires correct encoding for the public key and signature.`);
|
|
941
944
|
}
|
|
942
945
|
// Subset of script starting at the most recent codeseparator
|
|
943
946
|
// CScript scriptCode(pbegincodehash, pend);
|
|
944
947
|
if (this.context === 'UnlockingScript') {
|
|
945
|
-
subscript = new
|
|
948
|
+
subscript = new Script_1.default(this.unlockingScript.chunks.slice(this.lastCodeSeparator));
|
|
946
949
|
}
|
|
947
950
|
else {
|
|
948
|
-
subscript = new
|
|
951
|
+
subscript = new Script_1.default(this.lockingScript.chunks.slice(this.lastCodeSeparator));
|
|
949
952
|
}
|
|
950
953
|
// Drop the signature, since there's no way for a signature to sign itself
|
|
951
|
-
subscript.findAndDelete(new
|
|
954
|
+
subscript.findAndDelete(new Script_1.default().writeBin(bufSig));
|
|
952
955
|
try {
|
|
953
|
-
sig =
|
|
954
|
-
pubkey =
|
|
956
|
+
sig = TransactionSignature_1.default.fromChecksigFormat(bufSig);
|
|
957
|
+
pubkey = PublicKey_1.default.fromDER(bufPubkey);
|
|
955
958
|
fSuccess = verifySignature(sig, pubkey, subscript);
|
|
956
959
|
}
|
|
957
960
|
catch (e) {
|
|
@@ -959,13 +962,13 @@ class Spend {
|
|
|
959
962
|
fSuccess = false;
|
|
960
963
|
}
|
|
961
964
|
if (!fSuccess && bufSig.length > 0) {
|
|
962
|
-
this.scriptEvaluationError(`${
|
|
965
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} failed to verify the signature, and requires an empty signature when verification fails.`);
|
|
963
966
|
}
|
|
964
967
|
this.stack.pop();
|
|
965
968
|
this.stack.pop();
|
|
966
969
|
// stack.push_back(fSuccess ? vchTrue : vchFalse);
|
|
967
970
|
this.stack.push(fSuccess ? [1] : []);
|
|
968
|
-
if (currentOpcode ===
|
|
971
|
+
if (currentOpcode === OP_17.default.OP_CHECKSIGVERIFY) {
|
|
969
972
|
if (fSuccess) {
|
|
970
973
|
this.stack.pop();
|
|
971
974
|
}
|
|
@@ -974,16 +977,16 @@ class Spend {
|
|
|
974
977
|
}
|
|
975
978
|
}
|
|
976
979
|
break;
|
|
977
|
-
case
|
|
978
|
-
case
|
|
980
|
+
case OP_17.default.OP_CHECKMULTISIG:
|
|
981
|
+
case OP_17.default.OP_CHECKMULTISIGVERIFY:
|
|
979
982
|
i = 1;
|
|
980
983
|
if (this.stack.length < i) {
|
|
981
|
-
this.scriptEvaluationError(`${
|
|
984
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least 1 item to be on the stack.`);
|
|
982
985
|
}
|
|
983
|
-
nKeysCount =
|
|
986
|
+
nKeysCount = BigNumber_1.default.fromScriptNum(this.stacktop(-i), requireMinimalPush).toNumber();
|
|
984
987
|
// TODO: Keys and opcount are parameterized in client. No magic numbers!
|
|
985
988
|
if (nKeysCount < 0 || nKeysCount > maxMultisigKeyCount) {
|
|
986
|
-
this.scriptEvaluationError(`${
|
|
989
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires a key count between 0 and ${maxMultisigKeyCount}.`);
|
|
987
990
|
}
|
|
988
991
|
ikey = ++i;
|
|
989
992
|
i += nKeysCount;
|
|
@@ -993,28 +996,28 @@ class Spend {
|
|
|
993
996
|
// operation fails.
|
|
994
997
|
ikey2 = nKeysCount + 2;
|
|
995
998
|
if (this.stack.length < i) {
|
|
996
|
-
this.scriptEvaluationError(`${
|
|
999
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires the number of stack items not to be less than the number of keys used.`);
|
|
997
1000
|
}
|
|
998
|
-
nSigsCount =
|
|
1001
|
+
nSigsCount = BigNumber_1.default.fromScriptNum(this.stacktop(-i), requireMinimalPush).toNumber();
|
|
999
1002
|
if (nSigsCount < 0 || nSigsCount > nKeysCount) {
|
|
1000
|
-
this.scriptEvaluationError(`${
|
|
1003
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires the number of signatures to be no greater than the number of keys.`);
|
|
1001
1004
|
}
|
|
1002
1005
|
isig = ++i;
|
|
1003
1006
|
i += nSigsCount;
|
|
1004
1007
|
if (this.stack.length < i) {
|
|
1005
|
-
this.scriptEvaluationError(`${
|
|
1008
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires the number of stack items not to be less than the number of signatures provided.`);
|
|
1006
1009
|
}
|
|
1007
1010
|
// Subset of script starting at the most recent codeseparator
|
|
1008
1011
|
if (this.context === 'UnlockingScript') {
|
|
1009
|
-
subscript = new
|
|
1012
|
+
subscript = new Script_1.default(this.unlockingScript.chunks.slice(this.lastCodeSeparator));
|
|
1010
1013
|
}
|
|
1011
1014
|
else {
|
|
1012
|
-
subscript = new
|
|
1015
|
+
subscript = new Script_1.default(this.lockingScript.chunks.slice(this.lastCodeSeparator));
|
|
1013
1016
|
}
|
|
1014
1017
|
// Drop the signatures, since there's no way for a signature to sign itself
|
|
1015
1018
|
for (let k = 0; k < nSigsCount; k++) {
|
|
1016
1019
|
bufSig = this.stacktop(-isig - k);
|
|
1017
|
-
subscript.findAndDelete(new
|
|
1020
|
+
subscript.findAndDelete(new Script_1.default().writeBin(bufSig));
|
|
1018
1021
|
}
|
|
1019
1022
|
fSuccess = true;
|
|
1020
1023
|
while (fSuccess && nSigsCount > 0) {
|
|
@@ -1024,11 +1027,11 @@ class Spend {
|
|
|
1024
1027
|
bufPubkey = this.stacktop(-ikey);
|
|
1025
1028
|
if (!checkSignatureEncoding(bufSig) ||
|
|
1026
1029
|
!checkPublicKeyEncoding(bufPubkey)) {
|
|
1027
|
-
this.scriptEvaluationError(`${
|
|
1030
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires correct encoding for the public key and signature.`);
|
|
1028
1031
|
}
|
|
1029
1032
|
try {
|
|
1030
|
-
sig =
|
|
1031
|
-
pubkey =
|
|
1033
|
+
sig = TransactionSignature_1.default.fromChecksigFormat(bufSig);
|
|
1034
|
+
pubkey = PublicKey_1.default.fromString((0, utils_1.toHex)(bufPubkey));
|
|
1032
1035
|
fOk = verifySignature(sig, pubkey, subscript);
|
|
1033
1036
|
}
|
|
1034
1037
|
catch (e) {
|
|
@@ -1049,8 +1052,8 @@ class Spend {
|
|
|
1049
1052
|
}
|
|
1050
1053
|
// Clean up stack of actual arguments
|
|
1051
1054
|
while (i-- > 1) {
|
|
1052
|
-
if (!fSuccess && !ikey2 &&
|
|
1053
|
-
this.scriptEvaluationError(`${
|
|
1055
|
+
if (!fSuccess && !ikey2 && this.stacktop(-1).length > 0) {
|
|
1056
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} failed to verify a signature, and requires an empty signature when verification fails.`);
|
|
1054
1057
|
}
|
|
1055
1058
|
if (ikey2 > 0) {
|
|
1056
1059
|
ikey2--;
|
|
@@ -1064,14 +1067,15 @@ class Spend {
|
|
|
1064
1067
|
// so optionally verify it is exactly equal to zero prior
|
|
1065
1068
|
// to removing it from the stack.
|
|
1066
1069
|
if (this.stack.length < 1) {
|
|
1067
|
-
this.scriptEvaluationError(`${
|
|
1070
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires an extra item to be on the stack.`);
|
|
1068
1071
|
}
|
|
1069
|
-
if (this.stacktop(-1).length > 0) {
|
|
1070
|
-
|
|
1072
|
+
if (this.stacktop(-1).length > 0) {
|
|
1073
|
+
// NOTE: Is this necessary? We don't care about malleability.
|
|
1074
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires the extra stack item to be empty.`);
|
|
1071
1075
|
}
|
|
1072
1076
|
this.stack.pop();
|
|
1073
1077
|
this.stack.push(fSuccess ? [1] : []);
|
|
1074
|
-
if (currentOpcode ===
|
|
1078
|
+
if (currentOpcode === OP_17.default.OP_CHECKMULTISIGVERIFY) {
|
|
1075
1079
|
if (fSuccess) {
|
|
1076
1080
|
this.stack.pop();
|
|
1077
1081
|
}
|
|
@@ -1080,7 +1084,7 @@ class Spend {
|
|
|
1080
1084
|
}
|
|
1081
1085
|
}
|
|
1082
1086
|
break;
|
|
1083
|
-
case
|
|
1087
|
+
case OP_17.default.OP_CAT:
|
|
1084
1088
|
if (this.stack.length < 2) {
|
|
1085
1089
|
this.scriptEvaluationError('OP_CAT requires at least two items to be on the stack.');
|
|
1086
1090
|
}
|
|
@@ -1092,13 +1096,13 @@ class Spend {
|
|
|
1092
1096
|
this.stack[this.stack.length - 2] = [...buf1, ...buf2];
|
|
1093
1097
|
this.stack.pop();
|
|
1094
1098
|
break;
|
|
1095
|
-
case
|
|
1099
|
+
case OP_17.default.OP_SPLIT:
|
|
1096
1100
|
if (this.stack.length < 2) {
|
|
1097
1101
|
this.scriptEvaluationError('OP_SPLIT requires at least two items to be on the stack.');
|
|
1098
1102
|
}
|
|
1099
1103
|
buf1 = this.stacktop(-2);
|
|
1100
1104
|
// Make sure the split point is apropriate.
|
|
1101
|
-
n =
|
|
1105
|
+
n = BigNumber_1.default.fromScriptNum(this.stacktop(-1), requireMinimalPush).toNumber();
|
|
1102
1106
|
if (n < 0 || n > buf1.length) {
|
|
1103
1107
|
this.scriptEvaluationError('OP_SPLIT requires the first stack item to be a non-negative number less than or equal to the size of the second-from-top stack item.');
|
|
1104
1108
|
}
|
|
@@ -1110,11 +1114,11 @@ class Spend {
|
|
|
1110
1114
|
this.stack[this.stack.length - 2] = buf2.slice(0, n);
|
|
1111
1115
|
this.stack[this.stack.length - 1] = buf2.slice(n);
|
|
1112
1116
|
break;
|
|
1113
|
-
case
|
|
1117
|
+
case OP_17.default.OP_NUM2BIN:
|
|
1114
1118
|
if (this.stack.length < 2) {
|
|
1115
1119
|
this.scriptEvaluationError('OP_NUM2BIN requires at least two items to be on the stack.');
|
|
1116
1120
|
}
|
|
1117
|
-
size =
|
|
1121
|
+
size = BigNumber_1.default.fromScriptNum(this.stacktop(-1), requireMinimalPush).toNumber();
|
|
1118
1122
|
if (size > maxScriptElementSize) {
|
|
1119
1123
|
this.scriptEvaluationError(`It's not currently possible to push data larger than ${maxScriptElementSize} bytes.`);
|
|
1120
1124
|
}
|
|
@@ -1122,7 +1126,7 @@ class Spend {
|
|
|
1122
1126
|
rawnum = this.stacktop(-1);
|
|
1123
1127
|
// Try to see if we can fit that number in the number of
|
|
1124
1128
|
// byte requested.
|
|
1125
|
-
rawnum = (0,
|
|
1129
|
+
rawnum = (0, utils_1.minimallyEncode)(rawnum);
|
|
1126
1130
|
if (rawnum.length > size) {
|
|
1127
1131
|
this.scriptEvaluationError('OP_NUM2BIN requires that the size expressed in the top stack item is large enough to hold the value expressed in the second-from-top stack item.');
|
|
1128
1132
|
}
|
|
@@ -1149,12 +1153,12 @@ class Spend {
|
|
|
1149
1153
|
num[n] = signbit;
|
|
1150
1154
|
this.stack[this.stack.length - 1] = num;
|
|
1151
1155
|
break;
|
|
1152
|
-
case
|
|
1156
|
+
case OP_17.default.OP_BIN2NUM:
|
|
1153
1157
|
if (this.stack.length < 1) {
|
|
1154
1158
|
this.scriptEvaluationError('OP_BIN2NUM requires at least one item to be on the stack.');
|
|
1155
1159
|
}
|
|
1156
1160
|
buf1 = this.stacktop(-1);
|
|
1157
|
-
buf2 = (0,
|
|
1161
|
+
buf2 = (0, utils_1.minimallyEncode)(buf1);
|
|
1158
1162
|
this.stack[this.stack.length - 1] = buf2;
|
|
1159
1163
|
// The resulting number must be a valid number.
|
|
1160
1164
|
if (!isMinimallyEncoded(buf2)) {
|
|
@@ -1185,7 +1189,8 @@ class Spend {
|
|
|
1185
1189
|
}
|
|
1186
1190
|
while (true) {
|
|
1187
1191
|
this.step();
|
|
1188
|
-
if (this.context === 'LockingScript' &&
|
|
1192
|
+
if (this.context === 'LockingScript' &&
|
|
1193
|
+
this.programCounter >= this.lockingScript.chunks.length) {
|
|
1189
1194
|
break;
|
|
1190
1195
|
}
|
|
1191
1196
|
}
|