@bsv/sdk 1.0.29 → 1.0.32
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 +25 -0
- package/dist/cjs/mod.js.map +1 -0
- package/dist/cjs/package.json +49 -0
- package/dist/cjs/src/compat/BSM.js +77 -0
- package/dist/cjs/src/compat/BSM.js.map +1 -0
- package/dist/cjs/src/compat/ECIES.js +512 -0
- package/dist/cjs/src/compat/ECIES.js.map +1 -0
- package/dist/cjs/src/compat/HD.js +344 -0
- package/dist/cjs/src/compat/HD.js.map +1 -0
- package/dist/cjs/src/compat/Mnemonic.js +298 -0
- package/dist/cjs/src/compat/Mnemonic.js.map +1 -0
- package/dist/cjs/src/compat/bip-39-wordlist-en.js +2057 -0
- package/dist/cjs/src/compat/bip-39-wordlist-en.js.map +1 -0
- package/dist/cjs/src/compat/index.js +37 -0
- package/dist/cjs/src/compat/index.js.map +1 -0
- package/dist/cjs/src/messages/EncryptedMessage.js +69 -0
- package/dist/cjs/src/messages/EncryptedMessage.js.map +1 -0
- package/dist/cjs/src/messages/SignedMessage.js +85 -0
- package/dist/cjs/src/messages/SignedMessage.js.map +1 -0
- package/dist/cjs/src/messages/index.js +29 -0
- package/dist/cjs/src/messages/index.js.map +1 -0
- package/dist/cjs/src/primitives/AESGCM.js +384 -0
- package/dist/cjs/src/primitives/AESGCM.js.map +1 -0
- package/dist/cjs/src/primitives/BasePoint.js +19 -0
- package/dist/cjs/src/primitives/BasePoint.js.map +1 -0
- package/dist/cjs/src/primitives/BigNumber.js +4272 -0
- package/dist/cjs/src/primitives/BigNumber.js.map +1 -0
- package/dist/cjs/src/primitives/Curve.js +1126 -0
- package/dist/cjs/src/primitives/Curve.js.map +1 -0
- package/dist/cjs/src/primitives/DRBG.js +99 -0
- package/dist/cjs/src/primitives/DRBG.js.map +1 -0
- package/dist/cjs/src/primitives/ECDSA.js +169 -0
- package/dist/cjs/src/primitives/ECDSA.js.map +1 -0
- package/dist/cjs/src/primitives/Hash.js +1387 -0
- package/dist/cjs/src/primitives/Hash.js.map +1 -0
- package/dist/cjs/src/primitives/JacobianPoint.js +400 -0
- package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -0
- package/dist/cjs/src/primitives/K256.js +111 -0
- package/dist/cjs/src/primitives/K256.js.map +1 -0
- package/dist/cjs/src/primitives/Mersenne.js +118 -0
- package/dist/cjs/src/primitives/Mersenne.js.map +1 -0
- package/dist/cjs/src/primitives/MontgomoryMethod.js +150 -0
- package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -0
- package/dist/cjs/src/primitives/Point.js +819 -0
- package/dist/cjs/src/primitives/Point.js.map +1 -0
- package/dist/cjs/src/primitives/PrivateKey.js +246 -0
- package/dist/cjs/src/primitives/PrivateKey.js.map +1 -0
- package/dist/cjs/src/primitives/PublicKey.js +168 -0
- package/dist/cjs/src/primitives/PublicKey.js.map +1 -0
- package/dist/cjs/src/primitives/Random.js +57 -0
- package/dist/cjs/src/primitives/Random.js.map +1 -0
- package/dist/cjs/src/primitives/ReductionContext.js +490 -0
- package/dist/cjs/src/primitives/ReductionContext.js.map +1 -0
- package/dist/cjs/src/primitives/Signature.js +357 -0
- package/dist/cjs/src/primitives/Signature.js.map +1 -0
- package/dist/cjs/src/primitives/SymmetricKey.js +82 -0
- package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -0
- package/dist/cjs/src/primitives/TransactionSignature.js +172 -0
- package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -0
- package/dist/cjs/src/primitives/index.js +51 -0
- package/dist/cjs/src/primitives/index.js.map +1 -0
- package/dist/cjs/src/primitives/utils.js +624 -0
- package/dist/cjs/src/primitives/utils.js.map +1 -0
- package/dist/cjs/src/script/LockingScript.js +35 -0
- package/dist/cjs/src/script/LockingScript.js.map +1 -0
- package/dist/cjs/src/script/OP.js +207 -0
- package/dist/cjs/src/script/OP.js.map +1 -0
- package/dist/cjs/src/script/Script.js +435 -0
- package/dist/cjs/src/script/Script.js.map +1 -0
- package/dist/cjs/src/script/ScriptChunk.js +3 -0
- package/dist/cjs/src/script/ScriptChunk.js.map +1 -0
- package/dist/cjs/src/script/ScriptTemplate.js +3 -0
- package/dist/cjs/src/script/ScriptTemplate.js.map +1 -0
- package/dist/cjs/src/script/Spend.js +1252 -0
- package/dist/cjs/src/script/Spend.js.map +1 -0
- package/dist/cjs/src/script/UnlockingScript.js +35 -0
- package/dist/cjs/src/script/UnlockingScript.js.map +1 -0
- package/dist/cjs/src/script/index.js +32 -0
- package/dist/cjs/src/script/index.js.map +1 -0
- package/dist/cjs/src/script/templates/P2PKH.js +120 -0
- package/dist/cjs/src/script/templates/P2PKH.js.map +1 -0
- package/dist/cjs/src/script/templates/RPuzzle.js +125 -0
- package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -0
- package/dist/cjs/src/script/templates/index.js +11 -0
- package/dist/cjs/src/script/templates/index.js.map +1 -0
- package/dist/cjs/src/transaction/Broadcaster.js +3 -0
- package/dist/cjs/src/transaction/Broadcaster.js.map +1 -0
- package/dist/cjs/src/transaction/ChainTracker.js +3 -0
- package/dist/cjs/src/transaction/ChainTracker.js.map +1 -0
- package/dist/cjs/src/transaction/FeeModel.js +3 -0
- package/dist/cjs/src/transaction/FeeModel.js.map +1 -0
- package/dist/cjs/src/transaction/MerklePath.js +239 -0
- package/dist/cjs/src/transaction/MerklePath.js.map +1 -0
- package/dist/cjs/src/transaction/Transaction.js +616 -0
- package/dist/cjs/src/transaction/Transaction.js.map +1 -0
- package/dist/cjs/src/transaction/TransactionInput.js +3 -0
- package/dist/cjs/src/transaction/TransactionInput.js.map +1 -0
- package/dist/cjs/src/transaction/TransactionOutput.js +3 -0
- package/dist/cjs/src/transaction/TransactionOutput.js.map +1 -0
- package/dist/cjs/src/transaction/broadcasters/ARC.js +112 -0
- package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -0
- package/dist/cjs/src/transaction/broadcasters/index.js +9 -0
- package/dist/cjs/src/transaction/broadcasters/index.js.map +1 -0
- package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js +69 -0
- package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -0
- package/dist/cjs/src/transaction/fee-models/index.js +9 -0
- package/dist/cjs/src/transaction/fee-models/index.js.map +1 -0
- package/dist/cjs/src/transaction/index.js +11 -0
- package/dist/cjs/src/transaction/index.js.map +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/esm/mod.js +9 -0
- package/dist/esm/mod.js.map +1 -0
- package/dist/esm/src/compat/BSM.js +45 -0
- package/dist/esm/src/compat/BSM.js.map +1 -0
- package/dist/esm/src/compat/ECIES.js +483 -0
- package/dist/esm/src/compat/ECIES.js.map +1 -0
- package/dist/esm/src/compat/HD.js +322 -0
- package/dist/esm/src/compat/HD.js.map +1 -0
- package/dist/esm/src/compat/Mnemonic.js +272 -0
- package/dist/esm/src/compat/Mnemonic.js.map +1 -0
- package/dist/esm/src/compat/bip-39-wordlist-en.js +2054 -0
- package/dist/esm/src/compat/bip-39-wordlist-en.js.map +1 -0
- package/dist/esm/src/compat/index.js +5 -0
- package/dist/esm/src/compat/index.js.map +1 -0
- package/dist/esm/src/messages/EncryptedMessage.js +61 -0
- package/dist/esm/src/messages/EncryptedMessage.js.map +1 -0
- package/dist/esm/src/messages/SignedMessage.js +77 -0
- package/dist/esm/src/messages/SignedMessage.js.map +1 -0
- package/dist/esm/src/messages/index.js +3 -0
- package/dist/esm/src/messages/index.js.map +1 -0
- package/dist/esm/src/primitives/AESGCM.js +371 -0
- package/dist/esm/src/primitives/AESGCM.js.map +1 -0
- package/dist/esm/src/primitives/BasePoint.js +16 -0
- package/dist/esm/src/primitives/BasePoint.js.map +1 -0
- package/dist/esm/src/primitives/BigNumber.js +4307 -0
- package/dist/esm/src/primitives/BigNumber.js.map +1 -0
- package/dist/esm/src/primitives/Curve.js +1141 -0
- package/dist/esm/src/primitives/Curve.js.map +1 -0
- package/dist/esm/src/primitives/DRBG.js +98 -0
- package/dist/esm/src/primitives/DRBG.js.map +1 -0
- package/dist/esm/src/primitives/ECDSA.js +161 -0
- package/dist/esm/src/primitives/ECDSA.js.map +1 -0
- package/dist/esm/src/primitives/Hash.js +1391 -0
- package/dist/esm/src/primitives/Hash.js.map +1 -0
- package/dist/esm/src/primitives/JacobianPoint.js +398 -0
- package/dist/esm/src/primitives/JacobianPoint.js.map +1 -0
- package/dist/esm/src/primitives/K256.js +105 -0
- package/dist/esm/src/primitives/K256.js.map +1 -0
- package/dist/esm/src/primitives/Mersenne.js +117 -0
- package/dist/esm/src/primitives/Mersenne.js.map +1 -0
- package/dist/esm/src/primitives/MontgomoryMethod.js +149 -0
- package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -0
- package/dist/esm/src/primitives/Point.js +816 -0
- package/dist/esm/src/primitives/Point.js.map +1 -0
- package/dist/esm/src/primitives/PrivateKey.js +240 -0
- package/dist/esm/src/primitives/PrivateKey.js.map +1 -0
- package/dist/esm/src/primitives/PublicKey.js +162 -0
- package/dist/esm/src/primitives/PublicKey.js.map +1 -0
- package/dist/esm/src/primitives/Random.js +56 -0
- package/dist/esm/src/primitives/Random.js.map +1 -0
- package/dist/esm/src/primitives/ReductionContext.js +486 -0
- package/dist/esm/src/primitives/ReductionContext.js.map +1 -0
- package/dist/esm/src/primitives/Signature.js +360 -0
- package/dist/esm/src/primitives/Signature.js.map +1 -0
- package/dist/esm/src/primitives/SymmetricKey.js +76 -0
- package/dist/esm/src/primitives/SymmetricKey.js.map +1 -0
- package/dist/esm/src/primitives/TransactionSignature.js +144 -0
- package/dist/esm/src/primitives/TransactionSignature.js.map +1 -0
- package/dist/esm/src/primitives/index.js +13 -0
- package/dist/esm/src/primitives/index.js.map +1 -0
- package/dist/esm/src/primitives/utils.js +609 -0
- package/dist/esm/src/primitives/utils.js.map +1 -0
- package/dist/esm/src/script/LockingScript.js +29 -0
- package/dist/esm/src/script/LockingScript.js.map +1 -0
- package/dist/esm/src/script/OP.js +205 -0
- package/dist/esm/src/script/OP.js.map +1 -0
- package/dist/esm/src/script/Script.js +430 -0
- package/dist/esm/src/script/Script.js.map +1 -0
- package/dist/esm/src/script/ScriptChunk.js +2 -0
- package/dist/esm/src/script/ScriptChunk.js.map +1 -0
- package/dist/esm/src/script/ScriptTemplate.js +2 -0
- package/dist/esm/src/script/ScriptTemplate.js.map +1 -0
- package/dist/esm/src/script/Spend.js +1240 -0
- package/dist/esm/src/script/Spend.js.map +1 -0
- package/dist/esm/src/script/UnlockingScript.js +29 -0
- package/dist/esm/src/script/UnlockingScript.js.map +1 -0
- package/dist/esm/src/script/index.js +7 -0
- package/dist/esm/src/script/index.js.map +1 -0
- package/dist/esm/src/script/templates/P2PKH.js +113 -0
- package/dist/esm/src/script/templates/P2PKH.js.map +1 -0
- package/dist/esm/src/script/templates/RPuzzle.js +119 -0
- package/dist/esm/src/script/templates/RPuzzle.js.map +1 -0
- package/dist/esm/src/script/templates/index.js +3 -0
- package/dist/esm/src/script/templates/index.js.map +1 -0
- package/dist/esm/src/transaction/Broadcaster.js +2 -0
- package/dist/esm/src/transaction/Broadcaster.js.map +1 -0
- package/dist/esm/src/transaction/ChainTracker.js +2 -0
- package/dist/esm/src/transaction/ChainTracker.js.map +1 -0
- package/dist/esm/src/transaction/FeeModel.js +2 -0
- package/dist/esm/src/transaction/FeeModel.js.map +1 -0
- package/dist/esm/src/transaction/MerklePath.js +237 -0
- package/dist/esm/src/transaction/MerklePath.js.map +1 -0
- package/dist/esm/src/transaction/Transaction.js +617 -0
- package/dist/esm/src/transaction/Transaction.js.map +1 -0
- package/dist/esm/src/transaction/TransactionInput.js +2 -0
- package/dist/esm/src/transaction/TransactionInput.js.map +1 -0
- package/dist/esm/src/transaction/TransactionOutput.js +2 -0
- package/dist/esm/src/transaction/TransactionOutput.js.map +1 -0
- package/dist/esm/src/transaction/broadcasters/ARC.js +111 -0
- package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -0
- package/dist/esm/src/transaction/broadcasters/index.js +2 -0
- package/dist/esm/src/transaction/broadcasters/index.js.map +1 -0
- package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js +71 -0
- package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -0
- package/dist/esm/src/transaction/fee-models/index.js +2 -0
- package/dist/esm/src/transaction/fee-models/index.js.map +1 -0
- package/dist/esm/src/transaction/index.js +3 -0
- package/dist/esm/src/transaction/index.js.map +1 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
- package/dist/types/mod.d.ts +9 -0
- package/dist/types/mod.d.ts.map +1 -0
- package/dist/types/src/compat/BSM.d.ts +28 -0
- package/dist/types/src/compat/BSM.d.ts.map +1 -0
- package/dist/types/src/compat/ECIES.d.ts +62 -0
- package/dist/types/src/compat/ECIES.d.ts.map +1 -0
- package/dist/types/src/compat/HD.d.ts +131 -0
- package/dist/types/src/compat/HD.d.ts.map +1 -0
- package/dist/types/src/compat/Mnemonic.d.ts +132 -0
- package/dist/types/src/compat/Mnemonic.d.ts.map +1 -0
- package/dist/types/src/compat/bip-39-wordlist-en.d.ts +5 -0
- package/dist/types/src/compat/bip-39-wordlist-en.d.ts.map +1 -0
- package/dist/types/src/compat/index.d.ts +5 -0
- package/dist/types/src/compat/index.d.ts.map +1 -0
- package/dist/types/src/messages/EncryptedMessage.d.ts +20 -0
- package/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -0
- package/dist/types/src/messages/SignedMessage.d.ts +21 -0
- package/dist/types/src/messages/SignedMessage.d.ts.map +1 -0
- package/dist/types/src/messages/index.d.ts +3 -0
- package/dist/types/src/messages/index.d.ts.map +1 -0
- package/dist/types/src/primitives/AESGCM.d.ts +14 -0
- package/dist/types/src/primitives/AESGCM.d.ts.map +1 -0
- package/dist/types/src/primitives/BasePoint.d.ts +22 -0
- package/dist/types/src/primitives/BasePoint.d.ts.map +1 -0
- package/dist/types/src/primitives/BigNumber.d.ts +1895 -0
- package/dist/types/src/primitives/BigNumber.d.ts.map +1 -0
- package/dist/types/src/primitives/Curve.d.ts +55 -0
- package/dist/types/src/primitives/Curve.d.ts.map +1 -0
- package/dist/types/src/primitives/DRBG.d.ts +54 -0
- package/dist/types/src/primitives/DRBG.d.ts.map +1 -0
- package/dist/types/src/primitives/ECDSA.d.ts +39 -0
- package/dist/types/src/primitives/ECDSA.d.ts.map +1 -0
- package/dist/types/src/primitives/Hash.d.ts +450 -0
- package/dist/types/src/primitives/Hash.d.ts.map +1 -0
- package/dist/types/src/primitives/JacobianPoint.d.ts +164 -0
- package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -0
- package/dist/types/src/primitives/K256.d.ts +53 -0
- package/dist/types/src/primitives/K256.d.ts.map +1 -0
- package/dist/types/src/primitives/Mersenne.d.ts +72 -0
- package/dist/types/src/primitives/Mersenne.d.ts.map +1 -0
- package/dist/types/src/primitives/MontgomoryMethod.d.ts +96 -0
- package/dist/types/src/primitives/MontgomoryMethod.d.ts.map +1 -0
- package/dist/types/src/primitives/Point.d.ts +303 -0
- package/dist/types/src/primitives/Point.d.ts.map +1 -0
- package/dist/types/src/primitives/PrivateKey.d.ts +174 -0
- package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -0
- package/dist/types/src/primitives/PublicKey.d.ts +120 -0
- package/dist/types/src/primitives/PublicKey.d.ts.map +1 -0
- package/dist/types/src/primitives/Random.d.ts +14 -0
- package/dist/types/src/primitives/Random.d.ts.map +1 -0
- package/dist/types/src/primitives/ReductionContext.d.ts +308 -0
- package/dist/types/src/primitives/ReductionContext.d.ts.map +1 -0
- package/dist/types/src/primitives/Signature.d.ts +162 -0
- package/dist/types/src/primitives/Signature.d.ts.map +1 -0
- package/dist/types/src/primitives/SymmetricKey.d.ts +55 -0
- package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -0
- package/dist/types/src/primitives/TransactionSignature.d.ts +36 -0
- package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -0
- package/dist/types/src/primitives/index.d.ts +13 -0
- package/dist/types/src/primitives/index.d.ts.map +1 -0
- package/dist/types/src/primitives/utils.d.ts +124 -0
- package/dist/types/src/primitives/utils.d.ts.map +1 -0
- package/dist/types/src/script/LockingScript.d.ts +25 -0
- package/dist/types/src/script/LockingScript.d.ts.map +1 -0
- package/dist/types/src/script/OP.d.ts +193 -0
- package/dist/types/src/script/OP.d.ts.map +1 -0
- package/dist/types/src/script/Script.d.ts +148 -0
- package/dist/types/src/script/Script.d.ts.map +1 -0
- package/dist/types/src/script/ScriptChunk.d.ts +8 -0
- package/dist/types/src/script/ScriptChunk.d.ts.map +1 -0
- package/dist/types/src/script/ScriptTemplate.d.ts +33 -0
- package/dist/types/src/script/ScriptTemplate.d.ts.map +1 -0
- package/dist/types/src/script/Spend.d.ts +103 -0
- package/dist/types/src/script/Spend.d.ts.map +1 -0
- package/dist/types/src/script/UnlockingScript.d.ts +25 -0
- package/dist/types/src/script/UnlockingScript.d.ts.map +1 -0
- package/dist/types/src/script/index.d.ts +8 -0
- package/dist/types/src/script/index.d.ts.map +1 -0
- package/dist/types/src/script/templates/P2PKH.d.ts +40 -0
- package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -0
- package/dist/types/src/script/templates/RPuzzle.d.ts +47 -0
- package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -0
- package/dist/types/src/script/templates/index.d.ts +3 -0
- package/dist/types/src/script/templates/index.d.ts.map +1 -0
- package/dist/types/src/transaction/Broadcaster.d.ts +39 -0
- package/dist/types/src/transaction/Broadcaster.d.ts.map +1 -0
- package/dist/types/src/transaction/ChainTracker.d.ts +23 -0
- package/dist/types/src/transaction/ChainTracker.d.ts.map +1 -0
- package/dist/types/src/transaction/FeeModel.d.ts +12 -0
- package/dist/types/src/transaction/FeeModel.d.ts.map +1 -0
- package/dist/types/src/transaction/MerklePath.d.ts +91 -0
- package/dist/types/src/transaction/MerklePath.d.ts.map +1 -0
- package/dist/types/src/transaction/Transaction.d.ts +215 -0
- package/dist/types/src/transaction/Transaction.d.ts.map +1 -0
- package/dist/types/src/transaction/TransactionInput.d.ts +63 -0
- package/dist/types/src/transaction/TransactionInput.d.ts.map +1 -0
- package/dist/types/src/transaction/TransactionOutput.d.ts +36 -0
- package/dist/types/src/transaction/TransactionOutput.d.ts.map +1 -0
- package/dist/types/src/transaction/broadcasters/ARC.d.ts +28 -0
- package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -0
- package/dist/types/src/transaction/broadcasters/index.d.ts +2 -0
- package/dist/types/src/transaction/broadcasters/index.d.ts.map +1 -0
- package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts +26 -0
- package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -0
- package/dist/types/src/transaction/fee-models/index.d.ts +2 -0
- package/dist/types/src/transaction/fee-models/index.d.ts.map +1 -0
- package/dist/types/src/transaction/index.d.ts +7 -0
- package/dist/types/src/transaction/index.d.ts.map +1 -0
- package/dist/types/tsconfig.types.tsbuildinfo +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import BigNumber from './BigNumber.js';
|
|
2
|
+
/**
|
|
3
|
+
* Prepends a '0' to an odd character length word to ensure it has an even number of characters.
|
|
4
|
+
* @param {string} word - The input word.
|
|
5
|
+
* @returns {string} - The word with a leading '0' if it's an odd character length; otherwise, the original word.
|
|
6
|
+
*/
|
|
7
|
+
export declare const zero2: (word: string) => string;
|
|
8
|
+
/**
|
|
9
|
+
* Converts an array of numbers to a hexadecimal string representation.
|
|
10
|
+
* @param {number[]} msg - The input array of numbers.
|
|
11
|
+
* @returns {string} - The hexadecimal string representation of the input array.
|
|
12
|
+
*/
|
|
13
|
+
export declare const toHex: (msg: number[]) => string;
|
|
14
|
+
/**
|
|
15
|
+
* Converts various message formats into an array of numbers.
|
|
16
|
+
* Supports arrays, hexadecimal strings, base64 strings, and UTF-8 strings.
|
|
17
|
+
*
|
|
18
|
+
* @param {any} msg - The input message (array or string).
|
|
19
|
+
* @param {('hex' | 'utf8')} enc - Specifies the string encoding, if applicable.
|
|
20
|
+
* @returns {any[]} - Array representation of the input.
|
|
21
|
+
*/
|
|
22
|
+
export declare const toArray: (msg: any, enc?: 'hex' | 'utf8' | 'base64') => any[];
|
|
23
|
+
/**
|
|
24
|
+
* Converts an array of numbers to a UTF-8 encoded string.
|
|
25
|
+
* @param {number[]} arr - The input array of numbers.
|
|
26
|
+
* @returns {string} - The UTF-8 encoded string.
|
|
27
|
+
*/
|
|
28
|
+
export declare const toUTF8: (arr: number[]) => string;
|
|
29
|
+
/**
|
|
30
|
+
* Encodes an array of numbers into a specified encoding ('hex' or 'utf8'). If no encoding is provided, returns the original array.
|
|
31
|
+
* @param {number[]} arr - The input array of numbers.
|
|
32
|
+
* @param {('hex' | 'utf8')} enc - The desired encoding.
|
|
33
|
+
* @returns {string | number[]} - The encoded message as a string (for 'hex' and 'utf8') or the original array.
|
|
34
|
+
*/
|
|
35
|
+
export declare const encode: (arr: number[], enc?: 'hex' | 'utf8') => string | number[];
|
|
36
|
+
/**
|
|
37
|
+
* Converts an array of bytes (each between 0 and 255) into a base64 encoded string.
|
|
38
|
+
*
|
|
39
|
+
* @param {number[]} byteArray - An array of numbers where each number is a byte (0-255).
|
|
40
|
+
* @returns {string} The base64 encoded string.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* const bytes = [72, 101, 108, 108, 111]; // Represents the string "Hello"
|
|
44
|
+
* console.log(toBase64(bytes)); // Outputs: SGVsbG8=
|
|
45
|
+
*/
|
|
46
|
+
export declare function toBase64(byteArray: number[]): string;
|
|
47
|
+
/**
|
|
48
|
+
* Converts a string from base58 to a binary array
|
|
49
|
+
* @param str - The string representation
|
|
50
|
+
* @returns The binary representation
|
|
51
|
+
*/
|
|
52
|
+
export declare const fromBase58: (str: string) => number[];
|
|
53
|
+
/**
|
|
54
|
+
* Converts a binary array into a base58 string
|
|
55
|
+
* @param bin - The binary array to convert to base58
|
|
56
|
+
* @returns The base58 string representation
|
|
57
|
+
*/
|
|
58
|
+
export declare const toBase58: (bin: number[]) => string;
|
|
59
|
+
/**
|
|
60
|
+
* Converts a binary array into a base58check string with a checksum
|
|
61
|
+
* @param bin - The binary array to convert to base58check
|
|
62
|
+
* @returns The base58check string representation
|
|
63
|
+
*/
|
|
64
|
+
export declare const toBase58Check: (bin: number[], prefix?: number[]) => string;
|
|
65
|
+
/**
|
|
66
|
+
* Converts a base58check string into a binary array after validating the checksum
|
|
67
|
+
* @param str - The base58check string to convert to binary
|
|
68
|
+
* @param enc - If hex, the return values will be hex strings, arrays of numbers otherwise
|
|
69
|
+
* @param prefixLength - The length of the prefix. Optional, defaults to 1.
|
|
70
|
+
* @returns The binary array representation
|
|
71
|
+
*/
|
|
72
|
+
export declare const fromBase58Check: (str: string, enc?: 'hex', prefixLength?: number) => {
|
|
73
|
+
prefix: string | number[];
|
|
74
|
+
data: string | number[];
|
|
75
|
+
};
|
|
76
|
+
export declare class Writer {
|
|
77
|
+
bufs: number[][];
|
|
78
|
+
constructor(bufs?: number[][]);
|
|
79
|
+
getLength(): number;
|
|
80
|
+
toArray(): number[];
|
|
81
|
+
write(buf: number[]): Writer;
|
|
82
|
+
writeReverse(buf: number[]): Writer;
|
|
83
|
+
writeUInt8(n: number): Writer;
|
|
84
|
+
writeInt8(n: number): Writer;
|
|
85
|
+
writeUInt16BE(n: number): Writer;
|
|
86
|
+
writeInt16BE(n: number): Writer;
|
|
87
|
+
writeUInt16LE(n: number): Writer;
|
|
88
|
+
writeInt16LE(n: number): Writer;
|
|
89
|
+
writeUInt32BE(n: number): Writer;
|
|
90
|
+
writeInt32BE(n: number): Writer;
|
|
91
|
+
writeUInt32LE(n: number): Writer;
|
|
92
|
+
writeInt32LE(n: number): Writer;
|
|
93
|
+
writeUInt64BEBn(bn: BigNumber): Writer;
|
|
94
|
+
writeUInt64LEBn(bn: BigNumber): Writer;
|
|
95
|
+
writeUInt64LE(n: number): Writer;
|
|
96
|
+
writeVarIntNum(n: number): Writer;
|
|
97
|
+
writeVarIntBn(bn: BigNumber): Writer;
|
|
98
|
+
static varIntNum(n: number): number[];
|
|
99
|
+
static varIntBn(bn: BigNumber): number[];
|
|
100
|
+
}
|
|
101
|
+
export declare class Reader {
|
|
102
|
+
bin: number[];
|
|
103
|
+
pos: number;
|
|
104
|
+
constructor(bin?: number[], pos?: number);
|
|
105
|
+
eof(): boolean;
|
|
106
|
+
read(len?: number): number[];
|
|
107
|
+
readReverse(len?: number): number[];
|
|
108
|
+
readUInt8(): number;
|
|
109
|
+
readInt8(): number;
|
|
110
|
+
readUInt16BE(): number;
|
|
111
|
+
readInt16BE(): number;
|
|
112
|
+
readUInt16LE(): number;
|
|
113
|
+
readInt16LE(): number;
|
|
114
|
+
readUInt32BE(): number;
|
|
115
|
+
readInt32BE(): number;
|
|
116
|
+
readUInt32LE(): number;
|
|
117
|
+
readInt32LE(): number;
|
|
118
|
+
readUInt64BEBn(): BigNumber;
|
|
119
|
+
readUInt64LEBn(): BigNumber;
|
|
120
|
+
readVarIntNum(): number;
|
|
121
|
+
readVarInt(): number[];
|
|
122
|
+
readVarIntBn(): BigNumber;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/primitives/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import Script from './Script.js';
|
|
2
|
+
/**
|
|
3
|
+
* The LockingScript class represents a locking script in a Bitcoin SV transaction.
|
|
4
|
+
* It extends the Script class and is used specifically for output scripts that lock funds.
|
|
5
|
+
*
|
|
6
|
+
* Inherits all properties and methods from the Script class.
|
|
7
|
+
*
|
|
8
|
+
* @extends {Script}
|
|
9
|
+
* @see {@link Script} for more information on Script.
|
|
10
|
+
*/
|
|
11
|
+
export default class LockingScript extends Script {
|
|
12
|
+
/**
|
|
13
|
+
* @method isLockingScript
|
|
14
|
+
* Determines if the script is a locking script.
|
|
15
|
+
* @returns {boolean} Always returns true for a LockingScript instance.
|
|
16
|
+
*/
|
|
17
|
+
isLockingScript(): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* @method isUnlockingScript
|
|
20
|
+
* Determines if the script is an unlocking script.
|
|
21
|
+
* @returns {boolean} Always returns false for a LockingScript instance.
|
|
22
|
+
*/
|
|
23
|
+
isUnlockingScript(): boolean;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=LockingScript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LockingScript.d.ts","sourceRoot":"","sources":["../../../../src/script/LockingScript.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAEhC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,MAAM;IAC/C;;;;OAIG;IACH,eAAe,IAAK,OAAO;IAI3B;;;;OAIG;IACH,iBAAiB,IAAK,OAAO;CAG9B"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An object mapping opcode names (such as OP_DUP) to their corresponding numbers (such as 0x76), and vice versa.
|
|
3
|
+
*/
|
|
4
|
+
declare const OP: {
|
|
5
|
+
OP_FALSE: number;
|
|
6
|
+
OP_0: number;
|
|
7
|
+
OP_PUSHDATA1: number;
|
|
8
|
+
OP_PUSHDATA2: number;
|
|
9
|
+
OP_PUSHDATA4: number;
|
|
10
|
+
OP_1NEGATE: number;
|
|
11
|
+
OP_RESERVED: number;
|
|
12
|
+
OP_TRUE: number;
|
|
13
|
+
OP_1: number;
|
|
14
|
+
OP_2: number;
|
|
15
|
+
OP_3: number;
|
|
16
|
+
OP_4: number;
|
|
17
|
+
OP_5: number;
|
|
18
|
+
OP_6: number;
|
|
19
|
+
OP_7: number;
|
|
20
|
+
OP_8: number;
|
|
21
|
+
OP_9: number;
|
|
22
|
+
OP_10: number;
|
|
23
|
+
OP_11: number;
|
|
24
|
+
OP_12: number;
|
|
25
|
+
OP_13: number;
|
|
26
|
+
OP_14: number;
|
|
27
|
+
OP_15: number;
|
|
28
|
+
OP_16: number;
|
|
29
|
+
OP_NOP: number;
|
|
30
|
+
OP_VER: number;
|
|
31
|
+
OP_IF: number;
|
|
32
|
+
OP_NOTIF: number;
|
|
33
|
+
OP_VERIF: number;
|
|
34
|
+
OP_VERNOTIF: number;
|
|
35
|
+
OP_ELSE: number;
|
|
36
|
+
OP_ENDIF: number;
|
|
37
|
+
OP_VERIFY: number;
|
|
38
|
+
OP_RETURN: number;
|
|
39
|
+
OP_TOALTSTACK: number;
|
|
40
|
+
OP_FROMALTSTACK: number;
|
|
41
|
+
OP_2DROP: number;
|
|
42
|
+
OP_2DUP: number;
|
|
43
|
+
OP_3DUP: number;
|
|
44
|
+
OP_2OVER: number;
|
|
45
|
+
OP_2ROT: number;
|
|
46
|
+
OP_2SWAP: number;
|
|
47
|
+
OP_IFDUP: number;
|
|
48
|
+
OP_DEPTH: number;
|
|
49
|
+
OP_DROP: number;
|
|
50
|
+
OP_DUP: number;
|
|
51
|
+
OP_NIP: number;
|
|
52
|
+
OP_OVER: number;
|
|
53
|
+
OP_PICK: number;
|
|
54
|
+
OP_ROLL: number;
|
|
55
|
+
OP_ROT: number;
|
|
56
|
+
OP_SWAP: number;
|
|
57
|
+
OP_TUCK: number;
|
|
58
|
+
OP_CAT: number;
|
|
59
|
+
OP_SUBSTR: number;
|
|
60
|
+
OP_SPLIT: number;
|
|
61
|
+
OP_LEFT: number;
|
|
62
|
+
OP_NUM2BIN: number;
|
|
63
|
+
OP_RIGHT: number;
|
|
64
|
+
OP_BIN2NUM: number;
|
|
65
|
+
OP_SIZE: number;
|
|
66
|
+
OP_INVERT: number;
|
|
67
|
+
OP_AND: number;
|
|
68
|
+
OP_OR: number;
|
|
69
|
+
OP_XOR: number;
|
|
70
|
+
OP_EQUAL: number;
|
|
71
|
+
OP_EQUALVERIFY: number;
|
|
72
|
+
OP_RESERVED1: number;
|
|
73
|
+
OP_RESERVED2: number;
|
|
74
|
+
OP_1ADD: number;
|
|
75
|
+
OP_1SUB: number;
|
|
76
|
+
OP_2MUL: number;
|
|
77
|
+
OP_2DIV: number;
|
|
78
|
+
OP_NEGATE: number;
|
|
79
|
+
OP_ABS: number;
|
|
80
|
+
OP_NOT: number;
|
|
81
|
+
OP_0NOTEQUAL: number;
|
|
82
|
+
OP_ADD: number;
|
|
83
|
+
OP_SUB: number;
|
|
84
|
+
OP_MUL: number;
|
|
85
|
+
OP_DIV: number;
|
|
86
|
+
OP_MOD: number;
|
|
87
|
+
OP_LSHIFT: number;
|
|
88
|
+
OP_RSHIFT: number;
|
|
89
|
+
OP_BOOLAND: number;
|
|
90
|
+
OP_BOOLOR: number;
|
|
91
|
+
OP_NUMEQUAL: number;
|
|
92
|
+
OP_NUMEQUALVERIFY: number;
|
|
93
|
+
OP_NUMNOTEQUAL: number;
|
|
94
|
+
OP_LESSTHAN: number;
|
|
95
|
+
OP_GREATERTHAN: number;
|
|
96
|
+
OP_LESSTHANOREQUAL: number;
|
|
97
|
+
OP_GREATERTHANOREQUAL: number;
|
|
98
|
+
OP_MIN: number;
|
|
99
|
+
OP_MAX: number;
|
|
100
|
+
OP_WITHIN: number;
|
|
101
|
+
OP_RIPEMD160: number;
|
|
102
|
+
OP_SHA1: number;
|
|
103
|
+
OP_SHA256: number;
|
|
104
|
+
OP_HASH160: number;
|
|
105
|
+
OP_HASH256: number;
|
|
106
|
+
OP_CODESEPARATOR: number;
|
|
107
|
+
OP_CHECKSIG: number;
|
|
108
|
+
OP_CHECKSIGVERIFY: number;
|
|
109
|
+
OP_CHECKMULTISIG: number;
|
|
110
|
+
OP_CHECKMULTISIGVERIFY: number;
|
|
111
|
+
OP_NOP1: number;
|
|
112
|
+
OP_NOP2: number;
|
|
113
|
+
OP_NOP3: number;
|
|
114
|
+
OP_NOP4: number;
|
|
115
|
+
OP_NOP5: number;
|
|
116
|
+
OP_NOP6: number;
|
|
117
|
+
OP_NOP7: number;
|
|
118
|
+
OP_NOP8: number;
|
|
119
|
+
OP_NOP9: number;
|
|
120
|
+
OP_NOP10: number;
|
|
121
|
+
OP_NOP11: number;
|
|
122
|
+
OP_NOP12: number;
|
|
123
|
+
OP_NOP13: number;
|
|
124
|
+
OP_NOP14: number;
|
|
125
|
+
OP_NOP15: number;
|
|
126
|
+
OP_NOP16: number;
|
|
127
|
+
OP_NOP17: number;
|
|
128
|
+
OP_NOP18: number;
|
|
129
|
+
OP_NOP19: number;
|
|
130
|
+
OP_NOP20: number;
|
|
131
|
+
OP_NOP21: number;
|
|
132
|
+
OP_NOP22: number;
|
|
133
|
+
OP_NOP23: number;
|
|
134
|
+
OP_NOP24: number;
|
|
135
|
+
OP_NOP25: number;
|
|
136
|
+
OP_NOP26: number;
|
|
137
|
+
OP_NOP27: number;
|
|
138
|
+
OP_NOP28: number;
|
|
139
|
+
OP_NOP29: number;
|
|
140
|
+
OP_NOP30: number;
|
|
141
|
+
OP_NOP31: number;
|
|
142
|
+
OP_NOP32: number;
|
|
143
|
+
OP_NOP33: number;
|
|
144
|
+
OP_NOP34: number;
|
|
145
|
+
OP_NOP35: number;
|
|
146
|
+
OP_NOP36: number;
|
|
147
|
+
OP_NOP37: number;
|
|
148
|
+
OP_NOP38: number;
|
|
149
|
+
OP_NOP39: number;
|
|
150
|
+
OP_NOP40: number;
|
|
151
|
+
OP_NOP41: number;
|
|
152
|
+
OP_NOP42: number;
|
|
153
|
+
OP_NOP43: number;
|
|
154
|
+
OP_NOP44: number;
|
|
155
|
+
OP_NOP45: number;
|
|
156
|
+
OP_NOP46: number;
|
|
157
|
+
OP_NOP47: number;
|
|
158
|
+
OP_NOP48: number;
|
|
159
|
+
OP_NOP49: number;
|
|
160
|
+
OP_NOP50: number;
|
|
161
|
+
OP_NOP51: number;
|
|
162
|
+
OP_NOP52: number;
|
|
163
|
+
OP_NOP53: number;
|
|
164
|
+
OP_NOP54: number;
|
|
165
|
+
OP_NOP55: number;
|
|
166
|
+
OP_NOP56: number;
|
|
167
|
+
OP_NOP57: number;
|
|
168
|
+
OP_NOP58: number;
|
|
169
|
+
OP_NOP59: number;
|
|
170
|
+
OP_NOP60: number;
|
|
171
|
+
OP_NOP61: number;
|
|
172
|
+
OP_NOP62: number;
|
|
173
|
+
OP_NOP63: number;
|
|
174
|
+
OP_NOP64: number;
|
|
175
|
+
OP_NOP65: number;
|
|
176
|
+
OP_NOP66: number;
|
|
177
|
+
OP_NOP67: number;
|
|
178
|
+
OP_NOP68: number;
|
|
179
|
+
OP_NOP69: number;
|
|
180
|
+
OP_NOP70: number;
|
|
181
|
+
OP_NOP71: number;
|
|
182
|
+
OP_NOP72: number;
|
|
183
|
+
OP_NOP73: number;
|
|
184
|
+
OP_NOP77: number;
|
|
185
|
+
OP_SMALLDATA: number;
|
|
186
|
+
OP_SMALLINTEGER: number;
|
|
187
|
+
OP_PUBKEYS: number;
|
|
188
|
+
OP_PUBKEYHASH: number;
|
|
189
|
+
OP_PUBKEY: number;
|
|
190
|
+
OP_INVALIDOPCODE: number;
|
|
191
|
+
};
|
|
192
|
+
export default OP;
|
|
193
|
+
//# sourceMappingURL=OP.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OP.d.ts","sourceRoot":"","sources":["../../../../src/script/OP.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,QAAA,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgNP,CAAA;AAMD,eAAe,EAAE,CAAA"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import ScriptChunk from './ScriptChunk.js';
|
|
2
|
+
import BigNumber from '../primitives/BigNumber.js';
|
|
3
|
+
/**
|
|
4
|
+
* The Script class represents a script in a Bitcoin SV transaction,
|
|
5
|
+
* encapsulating the functionality to construct, parse, and serialize
|
|
6
|
+
* scripts used in both locking (output) and unlocking (input) scripts.
|
|
7
|
+
*
|
|
8
|
+
* @property {ScriptChunk[]} chunks - An array of script chunks that make up the script.
|
|
9
|
+
*/
|
|
10
|
+
export default class Script {
|
|
11
|
+
chunks: ScriptChunk[];
|
|
12
|
+
/**
|
|
13
|
+
* @method fromASM
|
|
14
|
+
* Static method to construct a Script instance from an ASM (Assembly) formatted string.
|
|
15
|
+
* @param asm - The script in ASM string format.
|
|
16
|
+
* @returns A new Script instance.
|
|
17
|
+
* @example
|
|
18
|
+
* const script = Script.fromASM("OP_DUP OP_HASH160 abcd... OP_EQUALVERIFY OP_CHECKSIG")
|
|
19
|
+
*/
|
|
20
|
+
static fromASM(asm: string): Script;
|
|
21
|
+
/**
|
|
22
|
+
* @method fromHex
|
|
23
|
+
* Static method to construct a Script instance from a hexadecimal string.
|
|
24
|
+
* @param hex - The script in hexadecimal format.
|
|
25
|
+
* @returns A new Script instance.
|
|
26
|
+
* @example
|
|
27
|
+
* const script = Script.fromHex("76a9...");
|
|
28
|
+
*/
|
|
29
|
+
static fromHex(hex: string): Script;
|
|
30
|
+
/**
|
|
31
|
+
* @method fromBinary
|
|
32
|
+
* Static method to construct a Script instance from a binary array.
|
|
33
|
+
* @param bin - The script in binary array format.
|
|
34
|
+
* @returns A new Script instance.
|
|
35
|
+
* @example
|
|
36
|
+
* const script = Script.fromBinary([0x76, 0xa9, ...])
|
|
37
|
+
*/
|
|
38
|
+
static fromBinary(bin: number[]): Script;
|
|
39
|
+
/**
|
|
40
|
+
* @constructor
|
|
41
|
+
* Constructs a new Script object.
|
|
42
|
+
* @param chunks=[] - An array of script chunks to directly initialize the script.
|
|
43
|
+
*/
|
|
44
|
+
constructor(chunks?: ScriptChunk[]);
|
|
45
|
+
/**
|
|
46
|
+
* @method toASM
|
|
47
|
+
* Serializes the script to an ASM formatted string.
|
|
48
|
+
* @returns The script in ASM string format.
|
|
49
|
+
*/
|
|
50
|
+
toASM(): string;
|
|
51
|
+
/**
|
|
52
|
+
* @method toHex
|
|
53
|
+
* Serializes the script to a hexadecimal string.
|
|
54
|
+
* @returns The script in hexadecimal format.
|
|
55
|
+
*/
|
|
56
|
+
toHex(): string;
|
|
57
|
+
/**
|
|
58
|
+
* @method toBinary
|
|
59
|
+
* Serializes the script to a binary array.
|
|
60
|
+
* @returns The script in binary array format.
|
|
61
|
+
*/
|
|
62
|
+
toBinary(): number[];
|
|
63
|
+
/**
|
|
64
|
+
* @method writeScript
|
|
65
|
+
* Appends another script to this script.
|
|
66
|
+
* @param script - The script to append.
|
|
67
|
+
* @returns This script instance for chaining.
|
|
68
|
+
*/
|
|
69
|
+
writeScript(script: Script): Script;
|
|
70
|
+
/**
|
|
71
|
+
* @method writeOpCode
|
|
72
|
+
* Appends an opcode to the script.
|
|
73
|
+
* @param op - The opcode to append.
|
|
74
|
+
* @returns This script instance for chaining.
|
|
75
|
+
*/
|
|
76
|
+
writeOpCode(op: number): Script;
|
|
77
|
+
/**
|
|
78
|
+
* @method setChunkOpCode
|
|
79
|
+
* Sets the opcode of a specific chunk in the script.
|
|
80
|
+
* @param i - The index of the chunk.
|
|
81
|
+
* @param op - The opcode to set.
|
|
82
|
+
* @returns This script instance for chaining.
|
|
83
|
+
*/
|
|
84
|
+
setChunkOpCode(i: number, op: number): Script;
|
|
85
|
+
/**
|
|
86
|
+
* @method writeBn
|
|
87
|
+
* Appends a BigNumber to the script as an opcode.
|
|
88
|
+
* @param bn - The BigNumber to append.
|
|
89
|
+
* @returns This script instance for chaining.
|
|
90
|
+
*/
|
|
91
|
+
writeBn(bn: BigNumber): Script;
|
|
92
|
+
/**
|
|
93
|
+
* @method writeBin
|
|
94
|
+
* Appends binary data to the script, determining the appropriate opcode based on length.
|
|
95
|
+
* @param bin - The binary data to append.
|
|
96
|
+
* @returns This script instance for chaining.
|
|
97
|
+
* @throws {Error} Throws an error if the data is too large to be pushed.
|
|
98
|
+
*/
|
|
99
|
+
writeBin(bin: number[]): Script;
|
|
100
|
+
/**
|
|
101
|
+
* @method writeNumber
|
|
102
|
+
* Appends a number to the script.
|
|
103
|
+
* @param num - The number to append.
|
|
104
|
+
* @returns This script instance for chaining.
|
|
105
|
+
*/
|
|
106
|
+
writeNumber(num: number): Script;
|
|
107
|
+
/**
|
|
108
|
+
* @method removeCodeseparators
|
|
109
|
+
* Removes all OP_CODESEPARATOR opcodes from the script.
|
|
110
|
+
* @returns This script instance for chaining.
|
|
111
|
+
*/
|
|
112
|
+
removeCodeseparators(): Script;
|
|
113
|
+
/**
|
|
114
|
+
* Deletes the given item wherever it appears in the current script.
|
|
115
|
+
*
|
|
116
|
+
* @param script - The script containing the item to delete from the current script.
|
|
117
|
+
*
|
|
118
|
+
* @returns This script instance for chaining.
|
|
119
|
+
*/
|
|
120
|
+
findAndDelete(script: Script): Script;
|
|
121
|
+
/**
|
|
122
|
+
* @method isPushOnly
|
|
123
|
+
* Checks if the script contains only push data operations.
|
|
124
|
+
* @returns True if the script is push-only, otherwise false.
|
|
125
|
+
*/
|
|
126
|
+
isPushOnly(): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* @method isLockingScript
|
|
129
|
+
* Determines if the script is a locking script.
|
|
130
|
+
* @returns True if the script is a locking script, otherwise false.
|
|
131
|
+
*/
|
|
132
|
+
isLockingScript(): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* @method isUnlockingScript
|
|
135
|
+
* Determines if the script is an unlocking script.
|
|
136
|
+
* @returns True if the script is an unlocking script, otherwise false.
|
|
137
|
+
*/
|
|
138
|
+
isUnlockingScript(): boolean;
|
|
139
|
+
/**
|
|
140
|
+
* @private
|
|
141
|
+
* @method _chunkToString
|
|
142
|
+
* Converts a script chunk to its string representation.
|
|
143
|
+
* @param chunk - The script chunk.
|
|
144
|
+
* @returns The string representation of the chunk.
|
|
145
|
+
*/
|
|
146
|
+
private _chunkToString;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=Script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Script.d.ts","sourceRoot":"","sources":["../../../../src/script/Script.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAA;AAG1C,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAElD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,MAAM,EAAE,WAAW,EAAE,CAAA;IAErB;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAuEnC;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAOnC;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM;IA2DxC;;;;OAIG;gBACS,MAAM,GAAE,WAAW,EAAO;IAItC;;;;OAIG;IACH,KAAK,IAAI,MAAM;IAUf;;;;OAIG;IACH,KAAK,IAAI,MAAM;IAIf;;;;OAIG;IACH,QAAQ,IAAI,MAAM,EAAE;IA0BpB;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKnC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAK/B;;;;;;OAMG;IACH,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAK7C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM;IAqB9B;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM;IAsB/B;;;;;OAKG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAKhC;;;;OAIG;IACH,oBAAoB,IAAI,MAAM;IAW9B;;;;;;OAMG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAYrC;;;;OAIG;IACH,UAAU,IAAI,OAAO;IAWrB;;;;OAIG;IACH,eAAe,IAAI,OAAO;IAI1B;;;;OAIG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;CAWvB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A representation of a chunk of a script, which includes an opcode. For push operations, the associated data to push onto the stack is also included.
|
|
3
|
+
*/
|
|
4
|
+
export default interface ScriptChunk {
|
|
5
|
+
op: number;
|
|
6
|
+
data?: number[];
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=ScriptChunk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScriptChunk.d.ts","sourceRoot":"","sources":["../../../../src/script/ScriptChunk.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,WAAW;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import LockingScript from './LockingScript.js';
|
|
2
|
+
import UnlockingScript from './UnlockingScript.js';
|
|
3
|
+
import Transaction from '../transaction/Transaction.js';
|
|
4
|
+
/**
|
|
5
|
+
* @interface
|
|
6
|
+
*
|
|
7
|
+
* This interface defines the structure for script templates used in Bitcoin transactions.
|
|
8
|
+
* It provides methods for creating locking scripts, unlocking scripts, and estimating the length of unlocking scripts.
|
|
9
|
+
*/
|
|
10
|
+
export default interface ScriptTemplate {
|
|
11
|
+
/**
|
|
12
|
+
* Creates a locking script with the given parameters.
|
|
13
|
+
*
|
|
14
|
+
* @param {...any} params - The parameters required to create the locking script.
|
|
15
|
+
* @returns {LockingScript} - An instance of LockingScript, or a Promise for one.
|
|
16
|
+
*/
|
|
17
|
+
lock: (...params: any) => LockingScript | Promise<LockingScript>;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a function that generates an unlocking script along with its signature and length estimation.
|
|
20
|
+
*
|
|
21
|
+
* This method returns an object containing two functions:
|
|
22
|
+
* 1. `sign` - A function that, when called with a transaction and an input index, returns an UnlockingScript instance.
|
|
23
|
+
* 2. `estimateLength` - A function that returns the estimated length of the unlocking script in bytes.
|
|
24
|
+
*
|
|
25
|
+
* @param {...any} params - The parameters required to create the unlocking script.
|
|
26
|
+
* @returns {Object} - An object containing the `sign` and `estimateLength` functions.
|
|
27
|
+
*/
|
|
28
|
+
unlock: (...params: any) => {
|
|
29
|
+
sign: (tx: Transaction, inputIndex: number) => Promise<UnlockingScript>;
|
|
30
|
+
estimateLength: (tx: Transaction, inputIndex: number) => Promise<number>;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=ScriptTemplate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScriptTemplate.d.ts","sourceRoot":"","sources":["../../../../src/script/ScriptTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAC9C,OAAO,eAAe,MAAM,sBAAsB,CAAA;AAClD,OAAO,WAAW,MAAM,+BAA+B,CAAA;AAEvD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,WAAW,cAAc;IACrC;;;;;OAKG;IACH,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,KAAK,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IAEhE;;;;;;;;;OASG;IACH,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,KACvB;QACE,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAC1C,OAAO,CAAC,eAAe,CAAC,CAAA;QACxB,cAAc,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;KACzE,CAAA;CACF"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import LockingScript from './LockingScript.js';
|
|
2
|
+
import UnlockingScript from './UnlockingScript.js';
|
|
3
|
+
import TransactionInput from '../transaction/TransactionInput.js';
|
|
4
|
+
import TransactionOutput from '../transaction/TransactionOutput.js';
|
|
5
|
+
/**
|
|
6
|
+
* The Spend class represents a spend action within a Bitcoin SV transaction.
|
|
7
|
+
* It encapsulates all the necessary data required for spending a UTXO (Unspent Transaction Output)
|
|
8
|
+
* and includes details about the source transaction, output, and the spending transaction itself.
|
|
9
|
+
*
|
|
10
|
+
* @property {string} sourceTXID - The transaction ID of the source UTXO.
|
|
11
|
+
* @property {number} sourceOutputIndex - The index of the output in the source transaction.
|
|
12
|
+
* @property {BigNumber} sourceSatoshis - The amount of satoshis in the source UTXO.
|
|
13
|
+
* @property {LockingScript} lockingScript - The locking script associated with the UTXO.
|
|
14
|
+
* @property {number} transactionVersion - The version of the current transaction.
|
|
15
|
+
* @property {Array<{ sourceTXID: string, sourceOutputIndex: number, sequence: number }>} otherInputs -
|
|
16
|
+
* An array of other inputs in the transaction, each with a txid, outputIndex, and sequence number.
|
|
17
|
+
* @property {Array<{ satoshis: BigNumber, lockingScript: LockingScript }>} outputs -
|
|
18
|
+
* An array of outputs of the current transaction, including the satoshi value and locking script for each.
|
|
19
|
+
* @property {number} inputIndex - The index of this input in the current transaction.
|
|
20
|
+
* @property {UnlockingScript} unlockingScript - The unlocking script that unlocks the UTXO for spending.
|
|
21
|
+
* @property {number} inputSequence - The sequence number of this input.
|
|
22
|
+
*/
|
|
23
|
+
export default class Spend {
|
|
24
|
+
sourceTXID: string;
|
|
25
|
+
sourceOutputIndex: number;
|
|
26
|
+
sourceSatoshis: number;
|
|
27
|
+
lockingScript: LockingScript;
|
|
28
|
+
transactionVersion: number;
|
|
29
|
+
otherInputs: TransactionInput[];
|
|
30
|
+
outputs: TransactionOutput[];
|
|
31
|
+
inputIndex: number;
|
|
32
|
+
unlockingScript: UnlockingScript;
|
|
33
|
+
inputSequence: number;
|
|
34
|
+
lockTime: number;
|
|
35
|
+
context: 'UnlockingScript' | 'LockingScript';
|
|
36
|
+
programCounter: number;
|
|
37
|
+
lastCodeSeparator: number | null;
|
|
38
|
+
stack: number[][];
|
|
39
|
+
altStack: number[][];
|
|
40
|
+
ifStack: boolean[];
|
|
41
|
+
/**
|
|
42
|
+
* @constructor
|
|
43
|
+
* Constructs the Spend object with necessary transaction details.
|
|
44
|
+
* @param {string} params.sourceTXID - The transaction ID of the source UTXO.
|
|
45
|
+
* @param {number} params.sourceOutputIndex - The index of the output in the source transaction.
|
|
46
|
+
* @param {BigNumber} params.sourceSatoshis - The amount of satoshis in the source UTXO.
|
|
47
|
+
* @param {LockingScript} params.lockingScript - The locking script associated with the UTXO.
|
|
48
|
+
* @param {number} params.transactionVersion - The version of the current transaction.
|
|
49
|
+
* @param {Array<{ sourceTXID: string, sourceOutputIndex: number, sequence: number }>} params.otherInputs -
|
|
50
|
+
* An array of other inputs in the transaction.
|
|
51
|
+
* @param {Array<{ satoshis: BigNumber, lockingScript: LockingScript }>} params.outputs -
|
|
52
|
+
* The outputs of the current transaction.
|
|
53
|
+
* @param {number} params.inputIndex - The index of this input in the current transaction.
|
|
54
|
+
* @param {UnlockingScript} params.unlockingScript - The unlocking script for this spend.
|
|
55
|
+
* @param {number} params.inputSequence - The sequence number of this input.
|
|
56
|
+
* @param {number} params.lockTime - The lock time of the transaction.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* const spend = new Spend({
|
|
60
|
+
* sourceTXID: "abcd1234", // sourceTXID
|
|
61
|
+
* sourceOutputIndex: 0, // sourceOutputIndex
|
|
62
|
+
* sourceSatoshis: new BigNumber(1000), // sourceSatoshis
|
|
63
|
+
* lockingScript: LockingScript.fromASM("OP_DUP OP_HASH160 abcd1234... OP_EQUALVERIFY OP_CHECKSIG"),
|
|
64
|
+
* transactionVersion: 1, // transactionVersion
|
|
65
|
+
* otherInputs: [{ sourceTXID: "abcd1234", sourceOutputIndex: 1, sequence: 0xffffffff }], // otherInputs
|
|
66
|
+
* outputs: [{ satoshis: new BigNumber(500), lockingScript: LockingScript.fromASM("OP_DUP...") }], // outputs
|
|
67
|
+
* inputIndex: 0, // inputIndex
|
|
68
|
+
* unlockingScript: UnlockingScript.fromASM("3045... 02ab..."),
|
|
69
|
+
* inputSequence: 0xffffffff // inputSequence
|
|
70
|
+
* });
|
|
71
|
+
*/
|
|
72
|
+
constructor(params: {
|
|
73
|
+
sourceTXID: string;
|
|
74
|
+
sourceOutputIndex: number;
|
|
75
|
+
sourceSatoshis: number;
|
|
76
|
+
lockingScript: LockingScript;
|
|
77
|
+
transactionVersion: number;
|
|
78
|
+
otherInputs: TransactionInput[];
|
|
79
|
+
outputs: TransactionOutput[];
|
|
80
|
+
unlockingScript: UnlockingScript;
|
|
81
|
+
inputSequence: number;
|
|
82
|
+
inputIndex: number;
|
|
83
|
+
lockTime: number;
|
|
84
|
+
});
|
|
85
|
+
reset(): void;
|
|
86
|
+
step(): void;
|
|
87
|
+
/**
|
|
88
|
+
* @method validate
|
|
89
|
+
* Validates the spend action by interpreting the locking and unlocking scripts.
|
|
90
|
+
* @returns {boolean} Returns true if the scripts are valid and the spend is legitimate, otherwise false.
|
|
91
|
+
* @example
|
|
92
|
+
* if (spend.validate()) {
|
|
93
|
+
* console.log("Spend is valid!");
|
|
94
|
+
* } else {
|
|
95
|
+
* console.log("Invalid spend!");
|
|
96
|
+
* }
|
|
97
|
+
*/
|
|
98
|
+
validate(): boolean;
|
|
99
|
+
private stacktop;
|
|
100
|
+
private castToBool;
|
|
101
|
+
private scriptEvaluationError;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=Spend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spend.d.ts","sourceRoot":"","sources":["../../../../src/script/Spend.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAC9C,OAAO,eAAe,MAAM,sBAAsB,CAAA;AAUlD,OAAO,gBAAgB,MAAM,oCAAoC,CAAA;AACjE,OAAO,iBAAiB,MAAM,qCAAqC,CAAA;AAWnE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,aAAa,CAAA;IAC5B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAAA;IAC5C,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAA;IACpB,OAAO,EAAE,OAAO,EAAE,CAAA;IAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;gBACU,MAAM,EAAE;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,iBAAiB,EAAE,MAAM,CAAA;QACzB,cAAc,EAAE,MAAM,CAAA;QACtB,aAAa,EAAE,aAAa,CAAA;QAC5B,kBAAkB,EAAE,MAAM,CAAA;QAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAA;QAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAA;QAC5B,eAAe,EAAE,eAAe,CAAA;QAChC,aAAa,EAAE,MAAM,CAAA;QACrB,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,MAAM,CAAA;KACjB;IAeD,KAAK,IAAK,IAAI;IASd,IAAI,IAAK,IAAI;IA2qCb;;;;;;;;;;OAUG;IACH,QAAQ,IAAK,OAAO;IAwBpB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,qBAAqB;CAG9B"}
|