@bsv/sdk 1.3.12 → 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 +18 -16
- package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +7 -7
- 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 +27 -14
- 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 +25 -16
- package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js +14 -7
- 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 +33 -16
- 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 +2 -2
- package/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts +2 -2
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts +2 -2
- 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 +3 -3
- 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 +55 -51
- 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 +129 -129
- 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 +16 -6
- package/src/auth/certificates/MasterCertificate.ts +96 -43
- package/src/auth/certificates/VerifiableCertificate.ts +29 -9
- 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 +47 -31
- 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 +53 -17
- 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
|
@@ -1,11 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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");
|
|
9
47
|
// These constants control the current behavior of the interpreter.
|
|
10
48
|
// In the future, all of them will go away.
|
|
11
49
|
const maxScriptElementSize = 1024 * 1024 * 1024;
|
|
@@ -32,7 +70,7 @@ const requireCleanStack = true;
|
|
|
32
70
|
* @property {UnlockingScript} unlockingScript - The unlocking script that unlocks the UTXO for spending.
|
|
33
71
|
* @property {number} inputSequence - The sequence number of this input.
|
|
34
72
|
*/
|
|
35
|
-
|
|
73
|
+
class Spend {
|
|
36
74
|
sourceTXID;
|
|
37
75
|
sourceOutputIndex;
|
|
38
76
|
sourceSatoshis;
|
|
@@ -119,11 +157,11 @@ export default class Spend {
|
|
|
119
157
|
operation = this.lockingScript.chunks[this.programCounter];
|
|
120
158
|
}
|
|
121
159
|
const isOpcodeDisabled = (op) => {
|
|
122
|
-
return op ===
|
|
123
|
-
op ===
|
|
124
|
-
op ===
|
|
125
|
-
op ===
|
|
126
|
-
op ===
|
|
160
|
+
return (op === OP_17.default.OP_2MUL ||
|
|
161
|
+
op === OP_17.default.OP_2DIV ||
|
|
162
|
+
op === OP_17.default.OP_VERIF ||
|
|
163
|
+
op === OP_17.default.OP_VERNOTIF ||
|
|
164
|
+
op === OP_17.default.OP_VER);
|
|
127
165
|
};
|
|
128
166
|
const isChunkMinimal = (chunk) => {
|
|
129
167
|
const data = chunk.data;
|
|
@@ -133,15 +171,15 @@ export default class Spend {
|
|
|
133
171
|
}
|
|
134
172
|
if (data.length === 0) {
|
|
135
173
|
// Could have used OP_0.
|
|
136
|
-
return op ===
|
|
174
|
+
return op === OP_17.default.OP_0;
|
|
137
175
|
}
|
|
138
176
|
else if (data.length === 1 && data[0] >= 1 && data[0] <= 16) {
|
|
139
177
|
// Could have used OP_1 .. OP_16.
|
|
140
|
-
return op ===
|
|
178
|
+
return op === OP_17.default.OP_1 + (data[0] - 1);
|
|
141
179
|
}
|
|
142
180
|
else if (data.length === 1 && data[0] === 0x81) {
|
|
143
181
|
// Could have used OP_1NEGATE.
|
|
144
|
-
return op ===
|
|
182
|
+
return op === OP_17.default.OP_1NEGATE;
|
|
145
183
|
}
|
|
146
184
|
else if (data.length <= 75) {
|
|
147
185
|
// Could have used a direct push (opCode indicating number of bytes pushed + those bytes).
|
|
@@ -149,15 +187,15 @@ export default class Spend {
|
|
|
149
187
|
}
|
|
150
188
|
else if (data.length <= 255) {
|
|
151
189
|
// Could have used OP_PUSHDATA.
|
|
152
|
-
return op ===
|
|
190
|
+
return op === OP_17.default.OP_PUSHDATA1;
|
|
153
191
|
}
|
|
154
192
|
else if (data.length <= 65535) {
|
|
155
193
|
// Could have used OP_PUSHDATA2.
|
|
156
|
-
return op ===
|
|
194
|
+
return op === OP_17.default.OP_PUSHDATA2;
|
|
157
195
|
}
|
|
158
196
|
return true;
|
|
159
197
|
};
|
|
160
|
-
// Following example from sCrypt now using Number.MAX_SAFE_INTEGER (bsv/lib/transaction/input/input
|
|
198
|
+
// Following example from sCrypt now using Number.MAX_SAFE_INTEGER (bsv/lib/transaction/input/input).
|
|
161
199
|
const isMinimallyEncoded = (buf, maxNumSize = Number.MAX_SAFE_INTEGER) => {
|
|
162
200
|
if (buf.length > maxNumSize) {
|
|
163
201
|
return false;
|
|
@@ -273,11 +311,11 @@ export default class Spend {
|
|
|
273
311
|
if (!isChecksigFormat(buf)) {
|
|
274
312
|
this.scriptEvaluationError('The signature format is invalid.');
|
|
275
313
|
}
|
|
276
|
-
const sig =
|
|
314
|
+
const sig = TransactionSignature_1.default.fromChecksigFormat(buf);
|
|
277
315
|
if (requireLowSSignatures && !sig.hasLowS()) {
|
|
278
316
|
this.scriptEvaluationError('The signature must have a low S value.');
|
|
279
317
|
}
|
|
280
|
-
if ((sig.scope &
|
|
318
|
+
if ((sig.scope & TransactionSignature_1.default.SIGHASH_FORKID) === 0) {
|
|
281
319
|
this.scriptEvaluationError('The signature must use SIGHASH_FORKID.');
|
|
282
320
|
return false;
|
|
283
321
|
}
|
|
@@ -292,7 +330,7 @@ export default class Spend {
|
|
|
292
330
|
this.scriptEvaluationError('The non-compressed public key must be 65 bytes.');
|
|
293
331
|
}
|
|
294
332
|
}
|
|
295
|
-
else if (
|
|
333
|
+
else if (buf[0] === 0x02 || buf[0] === 0x03) {
|
|
296
334
|
if (buf.length !== 33) {
|
|
297
335
|
this.scriptEvaluationError('The compressed public key must be 33 bytes.');
|
|
298
336
|
}
|
|
@@ -303,7 +341,7 @@ export default class Spend {
|
|
|
303
341
|
return true;
|
|
304
342
|
};
|
|
305
343
|
const verifySignature = (sig, pubkey, subscript) => {
|
|
306
|
-
const preimage =
|
|
344
|
+
const preimage = TransactionSignature_1.default.format({
|
|
307
345
|
sourceTXID: this.sourceTXID,
|
|
308
346
|
sourceOutputIndex: this.sourceOutputIndex,
|
|
309
347
|
sourceSatoshis: this.sourceSatoshis,
|
|
@@ -316,8 +354,8 @@ export default class Spend {
|
|
|
316
354
|
lockTime: this.lockTime,
|
|
317
355
|
scope: sig.scope
|
|
318
356
|
});
|
|
319
|
-
const hash = new
|
|
320
|
-
return verify(hash, sig, pubkey);
|
|
357
|
+
const hash = new BigNumber_1.default(Hash.hash256(preimage));
|
|
358
|
+
return (0, ECDSA_1.verify)(hash, sig, pubkey);
|
|
321
359
|
};
|
|
322
360
|
const isScriptExecuting = !this.ifStack.includes(false);
|
|
323
361
|
let buf, buf1, buf2, buf3, spliced, n, size, rawnum, num, signbit, x1, x2, x3, bn, bn1, bn2, bn3, bufSig, bufPubkey, subscript, bufHash;
|
|
@@ -335,8 +373,9 @@ export default class Spend {
|
|
|
335
373
|
if (isScriptExecuting && isOpcodeDisabled(currentOpcode)) {
|
|
336
374
|
this.scriptEvaluationError('This opcode is currently disabled.');
|
|
337
375
|
}
|
|
338
|
-
if (isScriptExecuting &&
|
|
339
|
-
currentOpcode
|
|
376
|
+
if (isScriptExecuting &&
|
|
377
|
+
currentOpcode >= 0 &&
|
|
378
|
+
currentOpcode <= OP_17.default.OP_PUSHDATA4) {
|
|
340
379
|
if (requireMinimalPush && !isChunkMinimal(operation)) {
|
|
341
380
|
this.scriptEvaluationError('This data is not minimally-encoded.');
|
|
342
381
|
}
|
|
@@ -347,107 +386,108 @@ export default class Spend {
|
|
|
347
386
|
this.stack.push(operation.data);
|
|
348
387
|
}
|
|
349
388
|
}
|
|
350
|
-
else if (isScriptExecuting ||
|
|
389
|
+
else if (isScriptExecuting ||
|
|
390
|
+
(OP_17.default.OP_IF <= currentOpcode && currentOpcode <= OP_17.default.OP_ENDIF)) {
|
|
351
391
|
switch (currentOpcode) {
|
|
352
|
-
case
|
|
353
|
-
case
|
|
354
|
-
case
|
|
355
|
-
case
|
|
356
|
-
case
|
|
357
|
-
case
|
|
358
|
-
case
|
|
359
|
-
case
|
|
360
|
-
case
|
|
361
|
-
case
|
|
362
|
-
case
|
|
363
|
-
case
|
|
364
|
-
case
|
|
365
|
-
case
|
|
366
|
-
case
|
|
367
|
-
case
|
|
368
|
-
case
|
|
369
|
-
n = currentOpcode - (
|
|
370
|
-
buf = new
|
|
392
|
+
case OP_17.default.OP_1NEGATE:
|
|
393
|
+
case OP_17.default.OP_1:
|
|
394
|
+
case OP_17.default.OP_2:
|
|
395
|
+
case OP_17.default.OP_3:
|
|
396
|
+
case OP_17.default.OP_4:
|
|
397
|
+
case OP_17.default.OP_5:
|
|
398
|
+
case OP_17.default.OP_6:
|
|
399
|
+
case OP_17.default.OP_7:
|
|
400
|
+
case OP_17.default.OP_8:
|
|
401
|
+
case OP_17.default.OP_9:
|
|
402
|
+
case OP_17.default.OP_10:
|
|
403
|
+
case OP_17.default.OP_11:
|
|
404
|
+
case OP_17.default.OP_12:
|
|
405
|
+
case OP_17.default.OP_13:
|
|
406
|
+
case OP_17.default.OP_14:
|
|
407
|
+
case OP_17.default.OP_15:
|
|
408
|
+
case OP_17.default.OP_16:
|
|
409
|
+
n = currentOpcode - (OP_17.default.OP_1 - 1);
|
|
410
|
+
buf = new BigNumber_1.default(n).toScriptNum();
|
|
371
411
|
this.stack.push(buf);
|
|
372
412
|
break;
|
|
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
|
-
case
|
|
391
|
-
case
|
|
392
|
-
case
|
|
393
|
-
case
|
|
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
|
|
413
|
+
case OP_17.default.OP_NOP:
|
|
414
|
+
case OP_17.default.OP_NOP2:
|
|
415
|
+
case OP_17.default.OP_NOP3:
|
|
416
|
+
case OP_17.default.OP_NOP1:
|
|
417
|
+
case OP_17.default.OP_NOP4:
|
|
418
|
+
case OP_17.default.OP_NOP5:
|
|
419
|
+
case OP_17.default.OP_NOP6:
|
|
420
|
+
case OP_17.default.OP_NOP7:
|
|
421
|
+
case OP_17.default.OP_NOP8:
|
|
422
|
+
case OP_17.default.OP_NOP9:
|
|
423
|
+
case OP_17.default.OP_NOP10:
|
|
424
|
+
case OP_17.default.OP_NOP11:
|
|
425
|
+
case OP_17.default.OP_NOP12:
|
|
426
|
+
case OP_17.default.OP_NOP13:
|
|
427
|
+
case OP_17.default.OP_NOP14:
|
|
428
|
+
case OP_17.default.OP_NOP15:
|
|
429
|
+
case OP_17.default.OP_NOP16:
|
|
430
|
+
case OP_17.default.OP_NOP17:
|
|
431
|
+
case OP_17.default.OP_NOP18:
|
|
432
|
+
case OP_17.default.OP_NOP19:
|
|
433
|
+
case OP_17.default.OP_NOP20:
|
|
434
|
+
case OP_17.default.OP_NOP21:
|
|
435
|
+
case OP_17.default.OP_NOP22:
|
|
436
|
+
case OP_17.default.OP_NOP23:
|
|
437
|
+
case OP_17.default.OP_NOP24:
|
|
438
|
+
case OP_17.default.OP_NOP25:
|
|
439
|
+
case OP_17.default.OP_NOP26:
|
|
440
|
+
case OP_17.default.OP_NOP27:
|
|
441
|
+
case OP_17.default.OP_NOP28:
|
|
442
|
+
case OP_17.default.OP_NOP29:
|
|
443
|
+
case OP_17.default.OP_NOP30:
|
|
444
|
+
case OP_17.default.OP_NOP31:
|
|
445
|
+
case OP_17.default.OP_NOP32:
|
|
446
|
+
case OP_17.default.OP_NOP33:
|
|
447
|
+
case OP_17.default.OP_NOP34:
|
|
448
|
+
case OP_17.default.OP_NOP35:
|
|
449
|
+
case OP_17.default.OP_NOP36:
|
|
450
|
+
case OP_17.default.OP_NOP37:
|
|
451
|
+
case OP_17.default.OP_NOP38:
|
|
452
|
+
case OP_17.default.OP_NOP39:
|
|
453
|
+
case OP_17.default.OP_NOP40:
|
|
454
|
+
case OP_17.default.OP_NOP41:
|
|
455
|
+
case OP_17.default.OP_NOP42:
|
|
456
|
+
case OP_17.default.OP_NOP43:
|
|
457
|
+
case OP_17.default.OP_NOP44:
|
|
458
|
+
case OP_17.default.OP_NOP45:
|
|
459
|
+
case OP_17.default.OP_NOP46:
|
|
460
|
+
case OP_17.default.OP_NOP47:
|
|
461
|
+
case OP_17.default.OP_NOP48:
|
|
462
|
+
case OP_17.default.OP_NOP49:
|
|
463
|
+
case OP_17.default.OP_NOP50:
|
|
464
|
+
case OP_17.default.OP_NOP51:
|
|
465
|
+
case OP_17.default.OP_NOP52:
|
|
466
|
+
case OP_17.default.OP_NOP53:
|
|
467
|
+
case OP_17.default.OP_NOP54:
|
|
468
|
+
case OP_17.default.OP_NOP55:
|
|
469
|
+
case OP_17.default.OP_NOP56:
|
|
470
|
+
case OP_17.default.OP_NOP57:
|
|
471
|
+
case OP_17.default.OP_NOP58:
|
|
472
|
+
case OP_17.default.OP_NOP59:
|
|
473
|
+
case OP_17.default.OP_NOP60:
|
|
474
|
+
case OP_17.default.OP_NOP61:
|
|
475
|
+
case OP_17.default.OP_NOP62:
|
|
476
|
+
case OP_17.default.OP_NOP63:
|
|
477
|
+
case OP_17.default.OP_NOP64:
|
|
478
|
+
case OP_17.default.OP_NOP65:
|
|
479
|
+
case OP_17.default.OP_NOP66:
|
|
480
|
+
case OP_17.default.OP_NOP67:
|
|
481
|
+
case OP_17.default.OP_NOP68:
|
|
482
|
+
case OP_17.default.OP_NOP69:
|
|
483
|
+
case OP_17.default.OP_NOP70:
|
|
484
|
+
case OP_17.default.OP_NOP71:
|
|
485
|
+
case OP_17.default.OP_NOP72:
|
|
486
|
+
case OP_17.default.OP_NOP73:
|
|
487
|
+
case OP_17.default.OP_NOP77:
|
|
448
488
|
break;
|
|
449
|
-
case
|
|
450
|
-
case
|
|
489
|
+
case OP_17.default.OP_IF:
|
|
490
|
+
case OP_17.default.OP_NOTIF:
|
|
451
491
|
fValue = false;
|
|
452
492
|
if (isScriptExecuting) {
|
|
453
493
|
if (this.stack.length < 1) {
|
|
@@ -455,26 +495,27 @@ export default class Spend {
|
|
|
455
495
|
}
|
|
456
496
|
buf = this.stacktop(-1);
|
|
457
497
|
fValue = this.castToBool(buf);
|
|
458
|
-
if (currentOpcode ===
|
|
498
|
+
if (currentOpcode === OP_17.default.OP_NOTIF) {
|
|
459
499
|
fValue = !fValue;
|
|
460
500
|
}
|
|
461
501
|
this.stack.pop();
|
|
462
502
|
}
|
|
463
503
|
this.ifStack.push(fValue);
|
|
464
504
|
break;
|
|
465
|
-
case
|
|
505
|
+
case OP_17.default.OP_ELSE:
|
|
466
506
|
if (this.ifStack.length === 0) {
|
|
467
507
|
this.scriptEvaluationError('OP_ELSE requires a preceeding OP_IF.');
|
|
468
508
|
}
|
|
469
|
-
this.ifStack[this.ifStack.length - 1] =
|
|
509
|
+
this.ifStack[this.ifStack.length - 1] =
|
|
510
|
+
!this.ifStack[this.ifStack.length - 1];
|
|
470
511
|
break;
|
|
471
|
-
case
|
|
512
|
+
case OP_17.default.OP_ENDIF:
|
|
472
513
|
if (this.ifStack.length === 0) {
|
|
473
514
|
this.scriptEvaluationError('OP_ENDIF requires a preceeding OP_IF.');
|
|
474
515
|
}
|
|
475
516
|
this.ifStack.pop();
|
|
476
517
|
break;
|
|
477
|
-
case
|
|
518
|
+
case OP_17.default.OP_VERIFY:
|
|
478
519
|
if (this.stack.length < 1) {
|
|
479
520
|
this.scriptEvaluationError('OP_VERIFY requires at least one item to be on the stack.');
|
|
480
521
|
}
|
|
@@ -487,7 +528,7 @@ export default class Spend {
|
|
|
487
528
|
this.scriptEvaluationError('OP_VERIFY requires the top stack value to be truthy.');
|
|
488
529
|
}
|
|
489
530
|
break;
|
|
490
|
-
case
|
|
531
|
+
case OP_17.default.OP_RETURN:
|
|
491
532
|
if (this.context === 'UnlockingScript') {
|
|
492
533
|
this.programCounter = this.unlockingScript.chunks.length;
|
|
493
534
|
}
|
|
@@ -496,26 +537,26 @@ export default class Spend {
|
|
|
496
537
|
}
|
|
497
538
|
this.ifStack = [];
|
|
498
539
|
break;
|
|
499
|
-
case
|
|
540
|
+
case OP_17.default.OP_TOALTSTACK:
|
|
500
541
|
if (this.stack.length < 1) {
|
|
501
542
|
this.scriptEvaluationError('OP_TOALTSTACK requires at oeast one item to be on the stack.');
|
|
502
543
|
}
|
|
503
544
|
this.altStack.push(this.stack.pop());
|
|
504
545
|
break;
|
|
505
|
-
case
|
|
546
|
+
case OP_17.default.OP_FROMALTSTACK:
|
|
506
547
|
if (this.altStack.length < 1) {
|
|
507
548
|
this.scriptEvaluationError('OP_FROMALTSTACK requires at least one item to be on the stack.');
|
|
508
549
|
}
|
|
509
550
|
this.stack.push(this.altStack.pop());
|
|
510
551
|
break;
|
|
511
|
-
case
|
|
552
|
+
case OP_17.default.OP_2DROP:
|
|
512
553
|
if (this.stack.length < 2) {
|
|
513
554
|
this.scriptEvaluationError('OP_2DROP requires at least two items to be on the stack.');
|
|
514
555
|
}
|
|
515
556
|
this.stack.pop();
|
|
516
557
|
this.stack.pop();
|
|
517
558
|
break;
|
|
518
|
-
case
|
|
559
|
+
case OP_17.default.OP_2DUP:
|
|
519
560
|
if (this.stack.length < 2) {
|
|
520
561
|
this.scriptEvaluationError('OP_2DUP requires at least two items to be on the stack.');
|
|
521
562
|
}
|
|
@@ -524,7 +565,7 @@ export default class Spend {
|
|
|
524
565
|
this.stack.push([...buf1]);
|
|
525
566
|
this.stack.push([...buf2]);
|
|
526
567
|
break;
|
|
527
|
-
case
|
|
568
|
+
case OP_17.default.OP_3DUP:
|
|
528
569
|
if (this.stack.length < 3) {
|
|
529
570
|
this.scriptEvaluationError('OP_3DUP requires at least three items to be on the stack.');
|
|
530
571
|
}
|
|
@@ -535,7 +576,7 @@ export default class Spend {
|
|
|
535
576
|
this.stack.push([...buf2]);
|
|
536
577
|
this.stack.push([...buf3]);
|
|
537
578
|
break;
|
|
538
|
-
case
|
|
579
|
+
case OP_17.default.OP_2OVER:
|
|
539
580
|
if (this.stack.length < 4) {
|
|
540
581
|
this.scriptEvaluationError('OP_2OVER requires at least four items to be on the stack.');
|
|
541
582
|
}
|
|
@@ -544,7 +585,7 @@ export default class Spend {
|
|
|
544
585
|
this.stack.push([...buf1]);
|
|
545
586
|
this.stack.push([...buf2]);
|
|
546
587
|
break;
|
|
547
|
-
case
|
|
588
|
+
case OP_17.default.OP_2ROT:
|
|
548
589
|
if (this.stack.length < 6) {
|
|
549
590
|
this.scriptEvaluationError('OP_2ROT requires at least six items to be on the stack.');
|
|
550
591
|
}
|
|
@@ -552,7 +593,7 @@ export default class Spend {
|
|
|
552
593
|
this.stack.push(spliced[0]);
|
|
553
594
|
this.stack.push(spliced[1]);
|
|
554
595
|
break;
|
|
555
|
-
case
|
|
596
|
+
case OP_17.default.OP_2SWAP:
|
|
556
597
|
if (this.stack.length < 4) {
|
|
557
598
|
this.scriptEvaluationError('OP_2SWAP requires at least four items to be on the stack.');
|
|
558
599
|
}
|
|
@@ -560,7 +601,7 @@ export default class Spend {
|
|
|
560
601
|
this.stack.push(spliced[0]);
|
|
561
602
|
this.stack.push(spliced[1]);
|
|
562
603
|
break;
|
|
563
|
-
case
|
|
604
|
+
case OP_17.default.OP_IFDUP:
|
|
564
605
|
if (this.stack.length < 1) {
|
|
565
606
|
this.scriptEvaluationError('OP_IFDUP requires at least one item to be on the stack.');
|
|
566
607
|
}
|
|
@@ -570,53 +611,53 @@ export default class Spend {
|
|
|
570
611
|
this.stack.push([...buf]);
|
|
571
612
|
}
|
|
572
613
|
break;
|
|
573
|
-
case
|
|
574
|
-
buf = new
|
|
614
|
+
case OP_17.default.OP_DEPTH:
|
|
615
|
+
buf = new BigNumber_1.default(this.stack.length).toScriptNum();
|
|
575
616
|
this.stack.push(buf);
|
|
576
617
|
break;
|
|
577
|
-
case
|
|
618
|
+
case OP_17.default.OP_DROP:
|
|
578
619
|
if (this.stack.length < 1) {
|
|
579
620
|
this.scriptEvaluationError('OP_DROP requires at least one item to be on the stack.');
|
|
580
621
|
}
|
|
581
622
|
this.stack.pop();
|
|
582
623
|
break;
|
|
583
|
-
case
|
|
624
|
+
case OP_17.default.OP_DUP:
|
|
584
625
|
if (this.stack.length < 1) {
|
|
585
626
|
this.scriptEvaluationError('OP_DUP requires at least one item to be on the stack.');
|
|
586
627
|
}
|
|
587
628
|
this.stack.push([...this.stacktop(-1)]);
|
|
588
629
|
break;
|
|
589
|
-
case
|
|
630
|
+
case OP_17.default.OP_NIP:
|
|
590
631
|
if (this.stack.length < 2) {
|
|
591
632
|
this.scriptEvaluationError('OP_NIP requires at least two items to be on the stack.');
|
|
592
633
|
}
|
|
593
634
|
this.stack.splice(this.stack.length - 2, 1);
|
|
594
635
|
break;
|
|
595
|
-
case
|
|
636
|
+
case OP_17.default.OP_OVER:
|
|
596
637
|
if (this.stack.length < 2) {
|
|
597
638
|
this.scriptEvaluationError('OP_OVER requires at least two items to be on the stack.');
|
|
598
639
|
}
|
|
599
640
|
this.stack.push([...this.stacktop(-2)]);
|
|
600
641
|
break;
|
|
601
|
-
case
|
|
602
|
-
case
|
|
642
|
+
case OP_17.default.OP_PICK:
|
|
643
|
+
case OP_17.default.OP_ROLL:
|
|
603
644
|
if (this.stack.length < 2) {
|
|
604
|
-
this.scriptEvaluationError(`${
|
|
645
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least two items to be on the stack.`);
|
|
605
646
|
}
|
|
606
647
|
buf = this.stacktop(-1);
|
|
607
|
-
bn =
|
|
648
|
+
bn = BigNumber_1.default.fromScriptNum(buf, requireMinimalPush);
|
|
608
649
|
n = bn.toNumber();
|
|
609
650
|
this.stack.pop();
|
|
610
651
|
if (n < 0 || n >= this.stack.length) {
|
|
611
|
-
this.scriptEvaluationError(`${
|
|
652
|
+
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.`);
|
|
612
653
|
}
|
|
613
654
|
buf = this.stacktop(-n - 1);
|
|
614
|
-
if (currentOpcode ===
|
|
655
|
+
if (currentOpcode === OP_17.default.OP_ROLL) {
|
|
615
656
|
this.stack.splice(this.stack.length - n - 1, 1);
|
|
616
657
|
}
|
|
617
658
|
this.stack.push([...buf]);
|
|
618
659
|
break;
|
|
619
|
-
case
|
|
660
|
+
case OP_17.default.OP_ROT:
|
|
620
661
|
if (this.stack.length < 3) {
|
|
621
662
|
this.scriptEvaluationError('OP_ROT requires at least three items to be on the stack.');
|
|
622
663
|
}
|
|
@@ -627,7 +668,7 @@ export default class Spend {
|
|
|
627
668
|
this.stack[this.stack.length - 2] = x3;
|
|
628
669
|
this.stack[this.stack.length - 1] = x1;
|
|
629
670
|
break;
|
|
630
|
-
case
|
|
671
|
+
case OP_17.default.OP_SWAP:
|
|
631
672
|
if (this.stack.length < 2) {
|
|
632
673
|
this.scriptEvaluationError('OP_SWAP requires at least two items to be on the stack.');
|
|
633
674
|
}
|
|
@@ -636,42 +677,42 @@ export default class Spend {
|
|
|
636
677
|
this.stack[this.stack.length - 2] = x2;
|
|
637
678
|
this.stack[this.stack.length - 1] = x1;
|
|
638
679
|
break;
|
|
639
|
-
case
|
|
680
|
+
case OP_17.default.OP_TUCK:
|
|
640
681
|
if (this.stack.length < 2) {
|
|
641
682
|
this.scriptEvaluationError('OP_TUCK requires at least two items to be on the stack.');
|
|
642
683
|
}
|
|
643
684
|
this.stack.splice(this.stack.length - 2, 0, [...this.stacktop(-1)]);
|
|
644
685
|
break;
|
|
645
|
-
case
|
|
686
|
+
case OP_17.default.OP_SIZE:
|
|
646
687
|
if (this.stack.length < 1) {
|
|
647
688
|
this.scriptEvaluationError('OP_SIZE requires at least one item to be on the stack.');
|
|
648
689
|
}
|
|
649
|
-
bn = new
|
|
690
|
+
bn = new BigNumber_1.default(this.stacktop(-1).length);
|
|
650
691
|
this.stack.push(bn.toScriptNum());
|
|
651
692
|
break;
|
|
652
|
-
case
|
|
653
|
-
case
|
|
654
|
-
case
|
|
693
|
+
case OP_17.default.OP_AND:
|
|
694
|
+
case OP_17.default.OP_OR:
|
|
695
|
+
case OP_17.default.OP_XOR:
|
|
655
696
|
if (this.stack.length < 2) {
|
|
656
|
-
this.scriptEvaluationError(`${
|
|
697
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least one item to be on the stack.`);
|
|
657
698
|
}
|
|
658
699
|
buf1 = this.stacktop(-2);
|
|
659
700
|
buf2 = this.stacktop(-1);
|
|
660
701
|
if (buf1.length !== buf2.length) {
|
|
661
|
-
this.scriptEvaluationError(`${
|
|
702
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires the top two stack items to be the same size.`);
|
|
662
703
|
}
|
|
663
704
|
switch (currentOpcode) {
|
|
664
|
-
case
|
|
705
|
+
case OP_17.default.OP_AND:
|
|
665
706
|
for (let i = 0; i < buf1.length; i++) {
|
|
666
707
|
buf1[i] &= buf2[i];
|
|
667
708
|
}
|
|
668
709
|
break;
|
|
669
|
-
case
|
|
710
|
+
case OP_17.default.OP_OR:
|
|
670
711
|
for (let i = 0; i < buf1.length; i++) {
|
|
671
712
|
buf1[i] |= buf2[i];
|
|
672
713
|
}
|
|
673
714
|
break;
|
|
674
|
-
case
|
|
715
|
+
case OP_17.default.OP_XOR:
|
|
675
716
|
for (let i = 0; i < buf1.length; i++) {
|
|
676
717
|
buf1[i] ^= buf2[i];
|
|
677
718
|
}
|
|
@@ -680,7 +721,7 @@ export default class Spend {
|
|
|
680
721
|
// And pop vch2.
|
|
681
722
|
this.stack.pop();
|
|
682
723
|
break;
|
|
683
|
-
case
|
|
724
|
+
case OP_17.default.OP_INVERT:
|
|
684
725
|
if (this.stack.length < 1) {
|
|
685
726
|
this.scriptEvaluationError('OP_INVERT requires at least one item to be on the stack.');
|
|
686
727
|
}
|
|
@@ -689,47 +730,47 @@ export default class Spend {
|
|
|
689
730
|
buf[i] = ~buf[i];
|
|
690
731
|
}
|
|
691
732
|
break;
|
|
692
|
-
case
|
|
693
|
-
case
|
|
733
|
+
case OP_17.default.OP_LSHIFT:
|
|
734
|
+
case OP_17.default.OP_RSHIFT:
|
|
694
735
|
if (this.stack.length < 2) {
|
|
695
|
-
this.scriptEvaluationError(`${
|
|
736
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least two items to be on the stack.`);
|
|
696
737
|
}
|
|
697
738
|
buf1 = this.stacktop(-2);
|
|
698
739
|
if (buf1.length === 0) {
|
|
699
740
|
this.stack.pop();
|
|
700
741
|
}
|
|
701
742
|
else {
|
|
702
|
-
bn1 = new
|
|
703
|
-
bn2 =
|
|
743
|
+
bn1 = new BigNumber_1.default(buf1);
|
|
744
|
+
bn2 = BigNumber_1.default.fromScriptNum(this.stacktop(-1), requireMinimalPush);
|
|
704
745
|
n = bn2.toNumber();
|
|
705
746
|
if (n < 0) {
|
|
706
|
-
this.scriptEvaluationError(`${
|
|
747
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires the top item on the stack not to be negative.`);
|
|
707
748
|
}
|
|
708
749
|
this.stack.pop();
|
|
709
750
|
this.stack.pop();
|
|
710
751
|
let shifted;
|
|
711
|
-
if (currentOpcode ===
|
|
752
|
+
if (currentOpcode === OP_17.default.OP_LSHIFT) {
|
|
712
753
|
shifted = bn1.ushln(n);
|
|
713
754
|
}
|
|
714
|
-
if (currentOpcode ===
|
|
755
|
+
if (currentOpcode === OP_17.default.OP_RSHIFT) {
|
|
715
756
|
shifted = bn1.ushrn(n);
|
|
716
757
|
}
|
|
717
758
|
const bufShifted = padDataToSize(shifted.toArray().slice(buf1.length * -1), buf1.length);
|
|
718
759
|
this.stack.push(bufShifted);
|
|
719
760
|
}
|
|
720
761
|
break;
|
|
721
|
-
case
|
|
722
|
-
case
|
|
762
|
+
case OP_17.default.OP_EQUAL:
|
|
763
|
+
case OP_17.default.OP_EQUALVERIFY:
|
|
723
764
|
if (this.stack.length < 2) {
|
|
724
|
-
this.scriptEvaluationError(`${
|
|
765
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least two items to be on the stack.`);
|
|
725
766
|
}
|
|
726
767
|
buf1 = this.stacktop(-2);
|
|
727
768
|
buf2 = this.stacktop(-1);
|
|
728
|
-
fEqual = toHex(buf1) === toHex(buf2);
|
|
769
|
+
fEqual = (0, utils_1.toHex)(buf1) === (0, utils_1.toHex)(buf2);
|
|
729
770
|
this.stack.pop();
|
|
730
771
|
this.stack.pop();
|
|
731
772
|
this.stack.push(fEqual ? [1] : []);
|
|
732
|
-
if (currentOpcode ===
|
|
773
|
+
if (currentOpcode === OP_17.default.OP_EQUALVERIFY) {
|
|
733
774
|
if (fEqual) {
|
|
734
775
|
this.stack.pop();
|
|
735
776
|
}
|
|
@@ -738,124 +779,124 @@ export default class Spend {
|
|
|
738
779
|
}
|
|
739
780
|
}
|
|
740
781
|
break;
|
|
741
|
-
case
|
|
742
|
-
case
|
|
743
|
-
case
|
|
744
|
-
case
|
|
745
|
-
case
|
|
746
|
-
case
|
|
782
|
+
case OP_17.default.OP_1ADD:
|
|
783
|
+
case OP_17.default.OP_1SUB:
|
|
784
|
+
case OP_17.default.OP_NEGATE:
|
|
785
|
+
case OP_17.default.OP_ABS:
|
|
786
|
+
case OP_17.default.OP_NOT:
|
|
787
|
+
case OP_17.default.OP_0NOTEQUAL:
|
|
747
788
|
if (this.stack.length < 1) {
|
|
748
|
-
this.scriptEvaluationError(`${
|
|
789
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least one items to be on the stack.`);
|
|
749
790
|
}
|
|
750
791
|
buf = this.stacktop(-1);
|
|
751
|
-
bn =
|
|
792
|
+
bn = BigNumber_1.default.fromScriptNum(buf, requireMinimalPush);
|
|
752
793
|
switch (currentOpcode) {
|
|
753
|
-
case
|
|
794
|
+
case OP_17.default.OP_1ADD:
|
|
754
795
|
bn = bn.addn(1);
|
|
755
796
|
break;
|
|
756
|
-
case
|
|
797
|
+
case OP_17.default.OP_1SUB:
|
|
757
798
|
bn = bn.subn(1);
|
|
758
799
|
break;
|
|
759
|
-
case
|
|
800
|
+
case OP_17.default.OP_NEGATE:
|
|
760
801
|
bn = bn.neg();
|
|
761
802
|
break;
|
|
762
|
-
case
|
|
803
|
+
case OP_17.default.OP_ABS:
|
|
763
804
|
if (bn.cmpn(0) < 0) {
|
|
764
805
|
bn = bn.neg();
|
|
765
806
|
}
|
|
766
807
|
break;
|
|
767
|
-
case
|
|
768
|
-
bn = new
|
|
808
|
+
case OP_17.default.OP_NOT:
|
|
809
|
+
bn = new BigNumber_1.default(bn.cmpn(0) === 0 ? 1 : 0 + 0);
|
|
769
810
|
break;
|
|
770
|
-
case
|
|
771
|
-
bn = new
|
|
811
|
+
case OP_17.default.OP_0NOTEQUAL:
|
|
812
|
+
bn = new BigNumber_1.default(bn.cmpn(0) !== 0 ? 1 : 0 + 0);
|
|
772
813
|
break;
|
|
773
814
|
}
|
|
774
815
|
this.stack.pop();
|
|
775
816
|
this.stack.push(bn.toScriptNum());
|
|
776
817
|
break;
|
|
777
|
-
case
|
|
778
|
-
case
|
|
779
|
-
case
|
|
780
|
-
case
|
|
781
|
-
case
|
|
782
|
-
case
|
|
783
|
-
case
|
|
784
|
-
case
|
|
785
|
-
case
|
|
786
|
-
case
|
|
787
|
-
case
|
|
788
|
-
case
|
|
789
|
-
case
|
|
790
|
-
case
|
|
791
|
-
case
|
|
792
|
-
case
|
|
818
|
+
case OP_17.default.OP_ADD:
|
|
819
|
+
case OP_17.default.OP_SUB:
|
|
820
|
+
case OP_17.default.OP_MUL:
|
|
821
|
+
case OP_17.default.OP_MOD:
|
|
822
|
+
case OP_17.default.OP_DIV:
|
|
823
|
+
case OP_17.default.OP_BOOLAND:
|
|
824
|
+
case OP_17.default.OP_BOOLOR:
|
|
825
|
+
case OP_17.default.OP_NUMEQUAL:
|
|
826
|
+
case OP_17.default.OP_NUMEQUALVERIFY:
|
|
827
|
+
case OP_17.default.OP_NUMNOTEQUAL:
|
|
828
|
+
case OP_17.default.OP_LESSTHAN:
|
|
829
|
+
case OP_17.default.OP_GREATERTHAN:
|
|
830
|
+
case OP_17.default.OP_LESSTHANOREQUAL:
|
|
831
|
+
case OP_17.default.OP_GREATERTHANOREQUAL:
|
|
832
|
+
case OP_17.default.OP_MIN:
|
|
833
|
+
case OP_17.default.OP_MAX:
|
|
793
834
|
if (this.stack.length < 2) {
|
|
794
|
-
this.scriptEvaluationError(`${
|
|
835
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least two items to be on the stack.`);
|
|
795
836
|
}
|
|
796
|
-
bn1 =
|
|
797
|
-
bn2 =
|
|
798
|
-
bn = new
|
|
837
|
+
bn1 = BigNumber_1.default.fromScriptNum(this.stacktop(-2), requireMinimalPush);
|
|
838
|
+
bn2 = BigNumber_1.default.fromScriptNum(this.stacktop(-1), requireMinimalPush);
|
|
839
|
+
bn = new BigNumber_1.default(0);
|
|
799
840
|
switch (currentOpcode) {
|
|
800
|
-
case
|
|
841
|
+
case OP_17.default.OP_ADD:
|
|
801
842
|
bn = bn1.add(bn2);
|
|
802
843
|
break;
|
|
803
|
-
case
|
|
844
|
+
case OP_17.default.OP_SUB:
|
|
804
845
|
bn = bn1.sub(bn2);
|
|
805
846
|
break;
|
|
806
|
-
case
|
|
847
|
+
case OP_17.default.OP_MUL:
|
|
807
848
|
bn = bn1.mul(bn2);
|
|
808
849
|
break;
|
|
809
|
-
case
|
|
850
|
+
case OP_17.default.OP_DIV:
|
|
810
851
|
if (bn2.cmpn(0) === 0) {
|
|
811
852
|
this.scriptEvaluationError('OP_DIV cannot divide by zero!');
|
|
812
853
|
}
|
|
813
854
|
bn = bn1.div(bn2);
|
|
814
855
|
break;
|
|
815
|
-
case
|
|
856
|
+
case OP_17.default.OP_MOD:
|
|
816
857
|
if (bn2.cmpn(0) === 0) {
|
|
817
858
|
this.scriptEvaluationError('OP_MOD cannot divide by zero!');
|
|
818
859
|
}
|
|
819
860
|
bn = bn1.mod(bn2);
|
|
820
861
|
break;
|
|
821
|
-
case
|
|
822
|
-
bn = new
|
|
862
|
+
case OP_17.default.OP_BOOLAND:
|
|
863
|
+
bn = new BigNumber_1.default(bn1.cmpn(0) !== 0 && bn2.cmpn(0) !== 0 ? 1 : 0 + 0);
|
|
823
864
|
break;
|
|
824
|
-
case
|
|
825
|
-
bn = new
|
|
865
|
+
case OP_17.default.OP_BOOLOR:
|
|
866
|
+
bn = new BigNumber_1.default(bn1.cmpn(0) !== 0 || bn2.cmpn(0) !== 0 ? 1 : 0 + 0);
|
|
826
867
|
break;
|
|
827
|
-
case
|
|
828
|
-
bn = new
|
|
868
|
+
case OP_17.default.OP_NUMEQUAL:
|
|
869
|
+
bn = new BigNumber_1.default(bn1.cmp(bn2) === 0 ? 1 : 0 + 0);
|
|
829
870
|
break;
|
|
830
|
-
case
|
|
831
|
-
bn = new
|
|
871
|
+
case OP_17.default.OP_NUMEQUALVERIFY:
|
|
872
|
+
bn = new BigNumber_1.default(bn1.cmp(bn2) === 0 ? 1 : 0 + 0);
|
|
832
873
|
break;
|
|
833
|
-
case
|
|
834
|
-
bn = new
|
|
874
|
+
case OP_17.default.OP_NUMNOTEQUAL:
|
|
875
|
+
bn = new BigNumber_1.default(bn1.cmp(bn2) !== 0 ? 1 : 0 + 0);
|
|
835
876
|
break;
|
|
836
|
-
case
|
|
837
|
-
bn = new
|
|
877
|
+
case OP_17.default.OP_LESSTHAN:
|
|
878
|
+
bn = new BigNumber_1.default(bn1.cmp(bn2) < 0 ? 1 : 0 + 0);
|
|
838
879
|
break;
|
|
839
|
-
case
|
|
840
|
-
bn = new
|
|
880
|
+
case OP_17.default.OP_GREATERTHAN:
|
|
881
|
+
bn = new BigNumber_1.default(bn1.cmp(bn2) > 0 ? 1 : 0 + 0);
|
|
841
882
|
break;
|
|
842
|
-
case
|
|
843
|
-
bn = new
|
|
883
|
+
case OP_17.default.OP_LESSTHANOREQUAL:
|
|
884
|
+
bn = new BigNumber_1.default(bn1.cmp(bn2) <= 0 ? 1 : 0 + 0);
|
|
844
885
|
break;
|
|
845
|
-
case
|
|
846
|
-
bn = new
|
|
886
|
+
case OP_17.default.OP_GREATERTHANOREQUAL:
|
|
887
|
+
bn = new BigNumber_1.default(bn1.cmp(bn2) >= 0 ? 1 : 0 + 0);
|
|
847
888
|
break;
|
|
848
|
-
case
|
|
849
|
-
bn =
|
|
889
|
+
case OP_17.default.OP_MIN:
|
|
890
|
+
bn = bn1.cmp(bn2) < 0 ? bn1 : bn2;
|
|
850
891
|
break;
|
|
851
|
-
case
|
|
852
|
-
bn =
|
|
892
|
+
case OP_17.default.OP_MAX:
|
|
893
|
+
bn = bn1.cmp(bn2) > 0 ? bn1 : bn2;
|
|
853
894
|
break;
|
|
854
895
|
}
|
|
855
896
|
this.stack.pop();
|
|
856
897
|
this.stack.pop();
|
|
857
898
|
this.stack.push(bn.toScriptNum());
|
|
858
|
-
if (currentOpcode ===
|
|
899
|
+
if (currentOpcode === OP_17.default.OP_NUMEQUALVERIFY) {
|
|
859
900
|
if (this.castToBool(this.stacktop(-1))) {
|
|
860
901
|
this.stack.pop();
|
|
861
902
|
}
|
|
@@ -864,73 +905,73 @@ export default class Spend {
|
|
|
864
905
|
}
|
|
865
906
|
}
|
|
866
907
|
break;
|
|
867
|
-
case
|
|
908
|
+
case OP_17.default.OP_WITHIN:
|
|
868
909
|
if (this.stack.length < 3) {
|
|
869
910
|
this.scriptEvaluationError('OP_WITHIN requires at least three items to be on the stack.');
|
|
870
911
|
}
|
|
871
|
-
bn1 =
|
|
872
|
-
bn2 =
|
|
873
|
-
bn3 =
|
|
874
|
-
fValue =
|
|
912
|
+
bn1 = BigNumber_1.default.fromScriptNum(this.stacktop(-3), requireMinimalPush);
|
|
913
|
+
bn2 = BigNumber_1.default.fromScriptNum(this.stacktop(-2), requireMinimalPush);
|
|
914
|
+
bn3 = BigNumber_1.default.fromScriptNum(this.stacktop(-1), requireMinimalPush);
|
|
915
|
+
fValue = bn2.cmp(bn1) <= 0 && bn1.cmp(bn3) < 0;
|
|
875
916
|
this.stack.pop();
|
|
876
917
|
this.stack.pop();
|
|
877
918
|
this.stack.pop();
|
|
878
919
|
this.stack.push(fValue ? [1] : []);
|
|
879
920
|
break;
|
|
880
|
-
case
|
|
881
|
-
case
|
|
882
|
-
case
|
|
883
|
-
case
|
|
884
|
-
case
|
|
921
|
+
case OP_17.default.OP_RIPEMD160:
|
|
922
|
+
case OP_17.default.OP_SHA1:
|
|
923
|
+
case OP_17.default.OP_SHA256:
|
|
924
|
+
case OP_17.default.OP_HASH160:
|
|
925
|
+
case OP_17.default.OP_HASH256:
|
|
885
926
|
if (this.stack.length < 1) {
|
|
886
|
-
this.scriptEvaluationError(`${
|
|
927
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least one item to be on the stack.`);
|
|
887
928
|
}
|
|
888
929
|
buf = this.stacktop(-1);
|
|
889
|
-
if (currentOpcode ===
|
|
930
|
+
if (currentOpcode === OP_17.default.OP_RIPEMD160) {
|
|
890
931
|
bufHash = Hash.ripemd160(buf);
|
|
891
932
|
}
|
|
892
|
-
else if (currentOpcode ===
|
|
933
|
+
else if (currentOpcode === OP_17.default.OP_SHA1) {
|
|
893
934
|
bufHash = Hash.sha1(buf);
|
|
894
935
|
}
|
|
895
|
-
else if (currentOpcode ===
|
|
936
|
+
else if (currentOpcode === OP_17.default.OP_SHA256) {
|
|
896
937
|
bufHash = Hash.sha256(buf);
|
|
897
938
|
}
|
|
898
|
-
else if (currentOpcode ===
|
|
939
|
+
else if (currentOpcode === OP_17.default.OP_HASH160) {
|
|
899
940
|
bufHash = Hash.hash160(buf);
|
|
900
941
|
}
|
|
901
|
-
else if (currentOpcode ===
|
|
942
|
+
else if (currentOpcode === OP_17.default.OP_HASH256) {
|
|
902
943
|
bufHash = Hash.hash256(buf);
|
|
903
944
|
}
|
|
904
945
|
this.stack.pop();
|
|
905
946
|
this.stack.push(bufHash);
|
|
906
947
|
break;
|
|
907
|
-
case
|
|
948
|
+
case OP_17.default.OP_CODESEPARATOR:
|
|
908
949
|
this.lastCodeSeparator = this.programCounter;
|
|
909
950
|
break;
|
|
910
|
-
case
|
|
911
|
-
case
|
|
951
|
+
case OP_17.default.OP_CHECKSIG:
|
|
952
|
+
case OP_17.default.OP_CHECKSIGVERIFY:
|
|
912
953
|
if (this.stack.length < 2) {
|
|
913
|
-
this.scriptEvaluationError(`${
|
|
954
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least two items to be on the stack.`);
|
|
914
955
|
}
|
|
915
956
|
bufSig = this.stacktop(-2);
|
|
916
957
|
bufPubkey = this.stacktop(-1);
|
|
917
958
|
if (!checkSignatureEncoding(bufSig) ||
|
|
918
959
|
!checkPublicKeyEncoding(bufPubkey)) {
|
|
919
|
-
this.scriptEvaluationError(`${
|
|
960
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires correct encoding for the public key and signature.`);
|
|
920
961
|
}
|
|
921
962
|
// Subset of script starting at the most recent codeseparator
|
|
922
963
|
// CScript scriptCode(pbegincodehash, pend);
|
|
923
964
|
if (this.context === 'UnlockingScript') {
|
|
924
|
-
subscript = new
|
|
965
|
+
subscript = new Script_1.default(this.unlockingScript.chunks.slice(this.lastCodeSeparator));
|
|
925
966
|
}
|
|
926
967
|
else {
|
|
927
|
-
subscript = new
|
|
968
|
+
subscript = new Script_1.default(this.lockingScript.chunks.slice(this.lastCodeSeparator));
|
|
928
969
|
}
|
|
929
970
|
// Drop the signature, since there's no way for a signature to sign itself
|
|
930
|
-
subscript.findAndDelete(new
|
|
971
|
+
subscript.findAndDelete(new Script_1.default().writeBin(bufSig));
|
|
931
972
|
try {
|
|
932
|
-
sig =
|
|
933
|
-
pubkey =
|
|
973
|
+
sig = TransactionSignature_1.default.fromChecksigFormat(bufSig);
|
|
974
|
+
pubkey = PublicKey_1.default.fromDER(bufPubkey);
|
|
934
975
|
fSuccess = verifySignature(sig, pubkey, subscript);
|
|
935
976
|
}
|
|
936
977
|
catch (e) {
|
|
@@ -938,13 +979,13 @@ export default class Spend {
|
|
|
938
979
|
fSuccess = false;
|
|
939
980
|
}
|
|
940
981
|
if (!fSuccess && bufSig.length > 0) {
|
|
941
|
-
this.scriptEvaluationError(`${
|
|
982
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} failed to verify the signature, and requires an empty signature when verification fails.`);
|
|
942
983
|
}
|
|
943
984
|
this.stack.pop();
|
|
944
985
|
this.stack.pop();
|
|
945
986
|
// stack.push_back(fSuccess ? vchTrue : vchFalse);
|
|
946
987
|
this.stack.push(fSuccess ? [1] : []);
|
|
947
|
-
if (currentOpcode ===
|
|
988
|
+
if (currentOpcode === OP_17.default.OP_CHECKSIGVERIFY) {
|
|
948
989
|
if (fSuccess) {
|
|
949
990
|
this.stack.pop();
|
|
950
991
|
}
|
|
@@ -953,16 +994,16 @@ export default class Spend {
|
|
|
953
994
|
}
|
|
954
995
|
}
|
|
955
996
|
break;
|
|
956
|
-
case
|
|
957
|
-
case
|
|
997
|
+
case OP_17.default.OP_CHECKMULTISIG:
|
|
998
|
+
case OP_17.default.OP_CHECKMULTISIGVERIFY:
|
|
958
999
|
i = 1;
|
|
959
1000
|
if (this.stack.length < i) {
|
|
960
|
-
this.scriptEvaluationError(`${
|
|
1001
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires at least 1 item to be on the stack.`);
|
|
961
1002
|
}
|
|
962
|
-
nKeysCount =
|
|
1003
|
+
nKeysCount = BigNumber_1.default.fromScriptNum(this.stacktop(-i), requireMinimalPush).toNumber();
|
|
963
1004
|
// TODO: Keys and opcount are parameterized in client. No magic numbers!
|
|
964
1005
|
if (nKeysCount < 0 || nKeysCount > maxMultisigKeyCount) {
|
|
965
|
-
this.scriptEvaluationError(`${
|
|
1006
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires a key count between 0 and ${maxMultisigKeyCount}.`);
|
|
966
1007
|
}
|
|
967
1008
|
ikey = ++i;
|
|
968
1009
|
i += nKeysCount;
|
|
@@ -972,28 +1013,28 @@ export default class Spend {
|
|
|
972
1013
|
// operation fails.
|
|
973
1014
|
ikey2 = nKeysCount + 2;
|
|
974
1015
|
if (this.stack.length < i) {
|
|
975
|
-
this.scriptEvaluationError(`${
|
|
1016
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires the number of stack items not to be less than the number of keys used.`);
|
|
976
1017
|
}
|
|
977
|
-
nSigsCount =
|
|
1018
|
+
nSigsCount = BigNumber_1.default.fromScriptNum(this.stacktop(-i), requireMinimalPush).toNumber();
|
|
978
1019
|
if (nSigsCount < 0 || nSigsCount > nKeysCount) {
|
|
979
|
-
this.scriptEvaluationError(`${
|
|
1020
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires the number of signatures to be no greater than the number of keys.`);
|
|
980
1021
|
}
|
|
981
1022
|
isig = ++i;
|
|
982
1023
|
i += nSigsCount;
|
|
983
1024
|
if (this.stack.length < i) {
|
|
984
|
-
this.scriptEvaluationError(`${
|
|
1025
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires the number of stack items not to be less than the number of signatures provided.`);
|
|
985
1026
|
}
|
|
986
1027
|
// Subset of script starting at the most recent codeseparator
|
|
987
1028
|
if (this.context === 'UnlockingScript') {
|
|
988
|
-
subscript = new
|
|
1029
|
+
subscript = new Script_1.default(this.unlockingScript.chunks.slice(this.lastCodeSeparator));
|
|
989
1030
|
}
|
|
990
1031
|
else {
|
|
991
|
-
subscript = new
|
|
1032
|
+
subscript = new Script_1.default(this.lockingScript.chunks.slice(this.lastCodeSeparator));
|
|
992
1033
|
}
|
|
993
1034
|
// Drop the signatures, since there's no way for a signature to sign itself
|
|
994
1035
|
for (let k = 0; k < nSigsCount; k++) {
|
|
995
1036
|
bufSig = this.stacktop(-isig - k);
|
|
996
|
-
subscript.findAndDelete(new
|
|
1037
|
+
subscript.findAndDelete(new Script_1.default().writeBin(bufSig));
|
|
997
1038
|
}
|
|
998
1039
|
fSuccess = true;
|
|
999
1040
|
while (fSuccess && nSigsCount > 0) {
|
|
@@ -1003,11 +1044,11 @@ export default class Spend {
|
|
|
1003
1044
|
bufPubkey = this.stacktop(-ikey);
|
|
1004
1045
|
if (!checkSignatureEncoding(bufSig) ||
|
|
1005
1046
|
!checkPublicKeyEncoding(bufPubkey)) {
|
|
1006
|
-
this.scriptEvaluationError(`${
|
|
1047
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires correct encoding for the public key and signature.`);
|
|
1007
1048
|
}
|
|
1008
1049
|
try {
|
|
1009
|
-
sig =
|
|
1010
|
-
pubkey =
|
|
1050
|
+
sig = TransactionSignature_1.default.fromChecksigFormat(bufSig);
|
|
1051
|
+
pubkey = PublicKey_1.default.fromString((0, utils_1.toHex)(bufPubkey));
|
|
1011
1052
|
fOk = verifySignature(sig, pubkey, subscript);
|
|
1012
1053
|
}
|
|
1013
1054
|
catch (e) {
|
|
@@ -1028,8 +1069,8 @@ export default class Spend {
|
|
|
1028
1069
|
}
|
|
1029
1070
|
// Clean up stack of actual arguments
|
|
1030
1071
|
while (i-- > 1) {
|
|
1031
|
-
if (!fSuccess && !ikey2 &&
|
|
1032
|
-
this.scriptEvaluationError(`${
|
|
1072
|
+
if (!fSuccess && !ikey2 && this.stacktop(-1).length > 0) {
|
|
1073
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} failed to verify a signature, and requires an empty signature when verification fails.`);
|
|
1033
1074
|
}
|
|
1034
1075
|
if (ikey2 > 0) {
|
|
1035
1076
|
ikey2--;
|
|
@@ -1043,14 +1084,15 @@ export default class Spend {
|
|
|
1043
1084
|
// so optionally verify it is exactly equal to zero prior
|
|
1044
1085
|
// to removing it from the stack.
|
|
1045
1086
|
if (this.stack.length < 1) {
|
|
1046
|
-
this.scriptEvaluationError(`${
|
|
1087
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires an extra item to be on the stack.`);
|
|
1047
1088
|
}
|
|
1048
|
-
if (this.stacktop(-1).length > 0) {
|
|
1049
|
-
|
|
1089
|
+
if (this.stacktop(-1).length > 0) {
|
|
1090
|
+
// NOTE: Is this necessary? We don't care about malleability.
|
|
1091
|
+
this.scriptEvaluationError(`${OP_17.default[currentOpcode]} requires the extra stack item to be empty.`);
|
|
1050
1092
|
}
|
|
1051
1093
|
this.stack.pop();
|
|
1052
1094
|
this.stack.push(fSuccess ? [1] : []);
|
|
1053
|
-
if (currentOpcode ===
|
|
1095
|
+
if (currentOpcode === OP_17.default.OP_CHECKMULTISIGVERIFY) {
|
|
1054
1096
|
if (fSuccess) {
|
|
1055
1097
|
this.stack.pop();
|
|
1056
1098
|
}
|
|
@@ -1059,7 +1101,7 @@ export default class Spend {
|
|
|
1059
1101
|
}
|
|
1060
1102
|
}
|
|
1061
1103
|
break;
|
|
1062
|
-
case
|
|
1104
|
+
case OP_17.default.OP_CAT:
|
|
1063
1105
|
if (this.stack.length < 2) {
|
|
1064
1106
|
this.scriptEvaluationError('OP_CAT requires at least two items to be on the stack.');
|
|
1065
1107
|
}
|
|
@@ -1071,13 +1113,13 @@ export default class Spend {
|
|
|
1071
1113
|
this.stack[this.stack.length - 2] = [...buf1, ...buf2];
|
|
1072
1114
|
this.stack.pop();
|
|
1073
1115
|
break;
|
|
1074
|
-
case
|
|
1116
|
+
case OP_17.default.OP_SPLIT:
|
|
1075
1117
|
if (this.stack.length < 2) {
|
|
1076
1118
|
this.scriptEvaluationError('OP_SPLIT requires at least two items to be on the stack.');
|
|
1077
1119
|
}
|
|
1078
1120
|
buf1 = this.stacktop(-2);
|
|
1079
1121
|
// Make sure the split point is apropriate.
|
|
1080
|
-
n =
|
|
1122
|
+
n = BigNumber_1.default.fromScriptNum(this.stacktop(-1), requireMinimalPush).toNumber();
|
|
1081
1123
|
if (n < 0 || n > buf1.length) {
|
|
1082
1124
|
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.');
|
|
1083
1125
|
}
|
|
@@ -1089,11 +1131,11 @@ export default class Spend {
|
|
|
1089
1131
|
this.stack[this.stack.length - 2] = buf2.slice(0, n);
|
|
1090
1132
|
this.stack[this.stack.length - 1] = buf2.slice(n);
|
|
1091
1133
|
break;
|
|
1092
|
-
case
|
|
1134
|
+
case OP_17.default.OP_NUM2BIN:
|
|
1093
1135
|
if (this.stack.length < 2) {
|
|
1094
1136
|
this.scriptEvaluationError('OP_NUM2BIN requires at least two items to be on the stack.');
|
|
1095
1137
|
}
|
|
1096
|
-
size =
|
|
1138
|
+
size = BigNumber_1.default.fromScriptNum(this.stacktop(-1), requireMinimalPush).toNumber();
|
|
1097
1139
|
if (size > maxScriptElementSize) {
|
|
1098
1140
|
this.scriptEvaluationError(`It's not currently possible to push data larger than ${maxScriptElementSize} bytes.`);
|
|
1099
1141
|
}
|
|
@@ -1101,7 +1143,7 @@ export default class Spend {
|
|
|
1101
1143
|
rawnum = this.stacktop(-1);
|
|
1102
1144
|
// Try to see if we can fit that number in the number of
|
|
1103
1145
|
// byte requested.
|
|
1104
|
-
rawnum = minimallyEncode(rawnum);
|
|
1146
|
+
rawnum = (0, utils_1.minimallyEncode)(rawnum);
|
|
1105
1147
|
if (rawnum.length > size) {
|
|
1106
1148
|
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.');
|
|
1107
1149
|
}
|
|
@@ -1128,12 +1170,12 @@ export default class Spend {
|
|
|
1128
1170
|
num[n] = signbit;
|
|
1129
1171
|
this.stack[this.stack.length - 1] = num;
|
|
1130
1172
|
break;
|
|
1131
|
-
case
|
|
1173
|
+
case OP_17.default.OP_BIN2NUM:
|
|
1132
1174
|
if (this.stack.length < 1) {
|
|
1133
1175
|
this.scriptEvaluationError('OP_BIN2NUM requires at least one item to be on the stack.');
|
|
1134
1176
|
}
|
|
1135
1177
|
buf1 = this.stacktop(-1);
|
|
1136
|
-
buf2 = minimallyEncode(buf1);
|
|
1178
|
+
buf2 = (0, utils_1.minimallyEncode)(buf1);
|
|
1137
1179
|
this.stack[this.stack.length - 1] = buf2;
|
|
1138
1180
|
// The resulting number must be a valid number.
|
|
1139
1181
|
if (!isMinimallyEncoded(buf2)) {
|
|
@@ -1164,7 +1206,8 @@ export default class Spend {
|
|
|
1164
1206
|
}
|
|
1165
1207
|
while (true) {
|
|
1166
1208
|
this.step();
|
|
1167
|
-
if (this.context === 'LockingScript' &&
|
|
1209
|
+
if (this.context === 'LockingScript' &&
|
|
1210
|
+
this.programCounter >= this.lockingScript.chunks.length) {
|
|
1168
1211
|
break;
|
|
1169
1212
|
}
|
|
1170
1213
|
}
|
|
@@ -1200,4 +1243,5 @@ export default class Spend {
|
|
|
1200
1243
|
throw new Error(`Script evaluation error: ${str}\n\nSource TXID: ${this.sourceTXID}\nSource output index: ${this.sourceOutputIndex}\nContext: ${this.context}\nProgram counter: ${this.programCounter}\nStack size: ${this.stack.length}\nAlt stack size: ${this.altStack.length}`);
|
|
1201
1244
|
}
|
|
1202
1245
|
}
|
|
1246
|
+
exports.default = Spend;
|
|
1203
1247
|
//# sourceMappingURL=Spend.js.map
|