@bsv/sdk 1.0.26 → 1.0.29
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/package.json +1 -1
- package/dist/cjs/mod.js +0 -25
- package/dist/cjs/mod.js.map +0 -1
- package/dist/cjs/package.json +0 -49
- package/dist/cjs/src/compat/BSM.js +0 -77
- package/dist/cjs/src/compat/BSM.js.map +0 -1
- package/dist/cjs/src/compat/ECIES.js +0 -512
- package/dist/cjs/src/compat/ECIES.js.map +0 -1
- package/dist/cjs/src/compat/HD.js +0 -344
- package/dist/cjs/src/compat/HD.js.map +0 -1
- package/dist/cjs/src/compat/Mnemonic.js +0 -298
- package/dist/cjs/src/compat/Mnemonic.js.map +0 -1
- package/dist/cjs/src/compat/bip-39-wordlist-en.js +0 -2057
- package/dist/cjs/src/compat/bip-39-wordlist-en.js.map +0 -1
- package/dist/cjs/src/compat/index.js +0 -37
- package/dist/cjs/src/compat/index.js.map +0 -1
- package/dist/cjs/src/messages/EncryptedMessage.js +0 -69
- package/dist/cjs/src/messages/EncryptedMessage.js.map +0 -1
- package/dist/cjs/src/messages/SignedMessage.js +0 -85
- package/dist/cjs/src/messages/SignedMessage.js.map +0 -1
- package/dist/cjs/src/messages/index.js +0 -29
- package/dist/cjs/src/messages/index.js.map +0 -1
- package/dist/cjs/src/primitives/AESGCM.js +0 -384
- package/dist/cjs/src/primitives/AESGCM.js.map +0 -1
- package/dist/cjs/src/primitives/BasePoint.js +0 -19
- package/dist/cjs/src/primitives/BasePoint.js.map +0 -1
- package/dist/cjs/src/primitives/BigNumber.js +0 -4272
- package/dist/cjs/src/primitives/BigNumber.js.map +0 -1
- package/dist/cjs/src/primitives/Curve.js +0 -1126
- package/dist/cjs/src/primitives/Curve.js.map +0 -1
- package/dist/cjs/src/primitives/DRBG.js +0 -99
- package/dist/cjs/src/primitives/DRBG.js.map +0 -1
- package/dist/cjs/src/primitives/ECDSA.js +0 -169
- package/dist/cjs/src/primitives/ECDSA.js.map +0 -1
- package/dist/cjs/src/primitives/Hash.js +0 -1387
- package/dist/cjs/src/primitives/Hash.js.map +0 -1
- package/dist/cjs/src/primitives/JacobianPoint.js +0 -400
- package/dist/cjs/src/primitives/JacobianPoint.js.map +0 -1
- package/dist/cjs/src/primitives/K256.js +0 -111
- package/dist/cjs/src/primitives/K256.js.map +0 -1
- package/dist/cjs/src/primitives/Mersenne.js +0 -118
- package/dist/cjs/src/primitives/Mersenne.js.map +0 -1
- package/dist/cjs/src/primitives/MontgomoryMethod.js +0 -150
- package/dist/cjs/src/primitives/MontgomoryMethod.js.map +0 -1
- package/dist/cjs/src/primitives/Point.js +0 -819
- package/dist/cjs/src/primitives/Point.js.map +0 -1
- package/dist/cjs/src/primitives/PrivateKey.js +0 -246
- package/dist/cjs/src/primitives/PrivateKey.js.map +0 -1
- package/dist/cjs/src/primitives/PublicKey.js +0 -168
- package/dist/cjs/src/primitives/PublicKey.js.map +0 -1
- package/dist/cjs/src/primitives/Random.js +0 -57
- package/dist/cjs/src/primitives/Random.js.map +0 -1
- package/dist/cjs/src/primitives/ReductionContext.js +0 -490
- package/dist/cjs/src/primitives/ReductionContext.js.map +0 -1
- package/dist/cjs/src/primitives/Signature.js +0 -357
- package/dist/cjs/src/primitives/Signature.js.map +0 -1
- package/dist/cjs/src/primitives/SymmetricKey.js +0 -82
- package/dist/cjs/src/primitives/SymmetricKey.js.map +0 -1
- package/dist/cjs/src/primitives/TransactionSignature.js +0 -172
- package/dist/cjs/src/primitives/TransactionSignature.js.map +0 -1
- package/dist/cjs/src/primitives/index.js +0 -51
- package/dist/cjs/src/primitives/index.js.map +0 -1
- package/dist/cjs/src/primitives/utils.js +0 -624
- package/dist/cjs/src/primitives/utils.js.map +0 -1
- package/dist/cjs/src/script/LockingScript.js +0 -35
- package/dist/cjs/src/script/LockingScript.js.map +0 -1
- package/dist/cjs/src/script/OP.js +0 -207
- package/dist/cjs/src/script/OP.js.map +0 -1
- package/dist/cjs/src/script/Script.js +0 -435
- package/dist/cjs/src/script/Script.js.map +0 -1
- package/dist/cjs/src/script/ScriptChunk.js +0 -3
- package/dist/cjs/src/script/ScriptChunk.js.map +0 -1
- package/dist/cjs/src/script/ScriptTemplate.js +0 -3
- package/dist/cjs/src/script/ScriptTemplate.js.map +0 -1
- package/dist/cjs/src/script/Spend.js +0 -1252
- package/dist/cjs/src/script/Spend.js.map +0 -1
- package/dist/cjs/src/script/UnlockingScript.js +0 -35
- package/dist/cjs/src/script/UnlockingScript.js.map +0 -1
- package/dist/cjs/src/script/index.js +0 -32
- package/dist/cjs/src/script/index.js.map +0 -1
- package/dist/cjs/src/script/templates/P2PKH.js +0 -120
- package/dist/cjs/src/script/templates/P2PKH.js.map +0 -1
- package/dist/cjs/src/script/templates/RPuzzle.js +0 -125
- package/dist/cjs/src/script/templates/RPuzzle.js.map +0 -1
- package/dist/cjs/src/script/templates/index.js +0 -11
- package/dist/cjs/src/script/templates/index.js.map +0 -1
- package/dist/cjs/src/transaction/Broadcaster.js +0 -3
- package/dist/cjs/src/transaction/Broadcaster.js.map +0 -1
- package/dist/cjs/src/transaction/ChainTracker.js +0 -3
- package/dist/cjs/src/transaction/ChainTracker.js.map +0 -1
- package/dist/cjs/src/transaction/FeeModel.js +0 -3
- package/dist/cjs/src/transaction/FeeModel.js.map +0 -1
- package/dist/cjs/src/transaction/MerklePath.js +0 -239
- package/dist/cjs/src/transaction/MerklePath.js.map +0 -1
- package/dist/cjs/src/transaction/Transaction.js +0 -616
- package/dist/cjs/src/transaction/Transaction.js.map +0 -1
- package/dist/cjs/src/transaction/TransactionInput.js +0 -3
- package/dist/cjs/src/transaction/TransactionInput.js.map +0 -1
- package/dist/cjs/src/transaction/TransactionOutput.js +0 -3
- package/dist/cjs/src/transaction/TransactionOutput.js.map +0 -1
- package/dist/cjs/src/transaction/broadcasters/ARC.js +0 -112
- package/dist/cjs/src/transaction/broadcasters/ARC.js.map +0 -1
- package/dist/cjs/src/transaction/broadcasters/index.js +0 -9
- package/dist/cjs/src/transaction/broadcasters/index.js.map +0 -1
- package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js +0 -69
- package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +0 -1
- package/dist/cjs/src/transaction/fee-models/index.js +0 -9
- package/dist/cjs/src/transaction/fee-models/index.js.map +0 -1
- package/dist/cjs/src/transaction/index.js +0 -11
- package/dist/cjs/src/transaction/index.js.map +0 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +0 -1
- package/dist/esm/mod.js +0 -9
- package/dist/esm/mod.js.map +0 -1
- package/dist/esm/src/compat/BSM.js +0 -45
- package/dist/esm/src/compat/BSM.js.map +0 -1
- package/dist/esm/src/compat/ECIES.js +0 -483
- package/dist/esm/src/compat/ECIES.js.map +0 -1
- package/dist/esm/src/compat/HD.js +0 -322
- package/dist/esm/src/compat/HD.js.map +0 -1
- package/dist/esm/src/compat/Mnemonic.js +0 -272
- package/dist/esm/src/compat/Mnemonic.js.map +0 -1
- package/dist/esm/src/compat/bip-39-wordlist-en.js +0 -2054
- package/dist/esm/src/compat/bip-39-wordlist-en.js.map +0 -1
- package/dist/esm/src/compat/index.js +0 -5
- package/dist/esm/src/compat/index.js.map +0 -1
- package/dist/esm/src/messages/EncryptedMessage.js +0 -61
- package/dist/esm/src/messages/EncryptedMessage.js.map +0 -1
- package/dist/esm/src/messages/SignedMessage.js +0 -77
- package/dist/esm/src/messages/SignedMessage.js.map +0 -1
- package/dist/esm/src/messages/index.js +0 -3
- package/dist/esm/src/messages/index.js.map +0 -1
- package/dist/esm/src/primitives/AESGCM.js +0 -371
- package/dist/esm/src/primitives/AESGCM.js.map +0 -1
- package/dist/esm/src/primitives/BasePoint.js +0 -16
- package/dist/esm/src/primitives/BasePoint.js.map +0 -1
- package/dist/esm/src/primitives/BigNumber.js +0 -4307
- package/dist/esm/src/primitives/BigNumber.js.map +0 -1
- package/dist/esm/src/primitives/Curve.js +0 -1141
- package/dist/esm/src/primitives/Curve.js.map +0 -1
- package/dist/esm/src/primitives/DRBG.js +0 -98
- package/dist/esm/src/primitives/DRBG.js.map +0 -1
- package/dist/esm/src/primitives/ECDSA.js +0 -161
- package/dist/esm/src/primitives/ECDSA.js.map +0 -1
- package/dist/esm/src/primitives/Hash.js +0 -1391
- package/dist/esm/src/primitives/Hash.js.map +0 -1
- package/dist/esm/src/primitives/JacobianPoint.js +0 -398
- package/dist/esm/src/primitives/JacobianPoint.js.map +0 -1
- package/dist/esm/src/primitives/K256.js +0 -105
- package/dist/esm/src/primitives/K256.js.map +0 -1
- package/dist/esm/src/primitives/Mersenne.js +0 -117
- package/dist/esm/src/primitives/Mersenne.js.map +0 -1
- package/dist/esm/src/primitives/MontgomoryMethod.js +0 -149
- package/dist/esm/src/primitives/MontgomoryMethod.js.map +0 -1
- package/dist/esm/src/primitives/Point.js +0 -816
- package/dist/esm/src/primitives/Point.js.map +0 -1
- package/dist/esm/src/primitives/PrivateKey.js +0 -240
- package/dist/esm/src/primitives/PrivateKey.js.map +0 -1
- package/dist/esm/src/primitives/PublicKey.js +0 -162
- package/dist/esm/src/primitives/PublicKey.js.map +0 -1
- package/dist/esm/src/primitives/Random.js +0 -56
- package/dist/esm/src/primitives/Random.js.map +0 -1
- package/dist/esm/src/primitives/ReductionContext.js +0 -486
- package/dist/esm/src/primitives/ReductionContext.js.map +0 -1
- package/dist/esm/src/primitives/Signature.js +0 -360
- package/dist/esm/src/primitives/Signature.js.map +0 -1
- package/dist/esm/src/primitives/SymmetricKey.js +0 -76
- package/dist/esm/src/primitives/SymmetricKey.js.map +0 -1
- package/dist/esm/src/primitives/TransactionSignature.js +0 -144
- package/dist/esm/src/primitives/TransactionSignature.js.map +0 -1
- package/dist/esm/src/primitives/index.js +0 -13
- package/dist/esm/src/primitives/index.js.map +0 -1
- package/dist/esm/src/primitives/utils.js +0 -609
- package/dist/esm/src/primitives/utils.js.map +0 -1
- package/dist/esm/src/script/LockingScript.js +0 -29
- package/dist/esm/src/script/LockingScript.js.map +0 -1
- package/dist/esm/src/script/OP.js +0 -205
- package/dist/esm/src/script/OP.js.map +0 -1
- package/dist/esm/src/script/Script.js +0 -430
- package/dist/esm/src/script/Script.js.map +0 -1
- package/dist/esm/src/script/ScriptChunk.js +0 -2
- package/dist/esm/src/script/ScriptChunk.js.map +0 -1
- package/dist/esm/src/script/ScriptTemplate.js +0 -2
- package/dist/esm/src/script/ScriptTemplate.js.map +0 -1
- package/dist/esm/src/script/Spend.js +0 -1240
- package/dist/esm/src/script/Spend.js.map +0 -1
- package/dist/esm/src/script/UnlockingScript.js +0 -29
- package/dist/esm/src/script/UnlockingScript.js.map +0 -1
- package/dist/esm/src/script/index.js +0 -7
- package/dist/esm/src/script/index.js.map +0 -1
- package/dist/esm/src/script/templates/P2PKH.js +0 -113
- package/dist/esm/src/script/templates/P2PKH.js.map +0 -1
- package/dist/esm/src/script/templates/RPuzzle.js +0 -119
- package/dist/esm/src/script/templates/RPuzzle.js.map +0 -1
- package/dist/esm/src/script/templates/index.js +0 -3
- package/dist/esm/src/script/templates/index.js.map +0 -1
- package/dist/esm/src/transaction/Broadcaster.js +0 -2
- package/dist/esm/src/transaction/Broadcaster.js.map +0 -1
- package/dist/esm/src/transaction/ChainTracker.js +0 -2
- package/dist/esm/src/transaction/ChainTracker.js.map +0 -1
- package/dist/esm/src/transaction/FeeModel.js +0 -2
- package/dist/esm/src/transaction/FeeModel.js.map +0 -1
- package/dist/esm/src/transaction/MerklePath.js +0 -237
- package/dist/esm/src/transaction/MerklePath.js.map +0 -1
- package/dist/esm/src/transaction/Transaction.js +0 -617
- package/dist/esm/src/transaction/Transaction.js.map +0 -1
- package/dist/esm/src/transaction/TransactionInput.js +0 -2
- package/dist/esm/src/transaction/TransactionInput.js.map +0 -1
- package/dist/esm/src/transaction/TransactionOutput.js +0 -2
- package/dist/esm/src/transaction/TransactionOutput.js.map +0 -1
- package/dist/esm/src/transaction/broadcasters/ARC.js +0 -111
- package/dist/esm/src/transaction/broadcasters/ARC.js.map +0 -1
- package/dist/esm/src/transaction/broadcasters/index.js +0 -2
- package/dist/esm/src/transaction/broadcasters/index.js.map +0 -1
- package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js +0 -71
- package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +0 -1
- package/dist/esm/src/transaction/fee-models/index.js +0 -2
- package/dist/esm/src/transaction/fee-models/index.js.map +0 -1
- package/dist/esm/src/transaction/index.js +0 -3
- package/dist/esm/src/transaction/index.js.map +0 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +0 -1
- package/dist/types/mod.d.ts +0 -9
- package/dist/types/mod.d.ts.map +0 -1
- package/dist/types/src/compat/BSM.d.ts +0 -28
- package/dist/types/src/compat/BSM.d.ts.map +0 -1
- package/dist/types/src/compat/ECIES.d.ts +0 -62
- package/dist/types/src/compat/ECIES.d.ts.map +0 -1
- package/dist/types/src/compat/HD.d.ts +0 -131
- package/dist/types/src/compat/HD.d.ts.map +0 -1
- package/dist/types/src/compat/Mnemonic.d.ts +0 -132
- package/dist/types/src/compat/Mnemonic.d.ts.map +0 -1
- package/dist/types/src/compat/bip-39-wordlist-en.d.ts +0 -5
- package/dist/types/src/compat/bip-39-wordlist-en.d.ts.map +0 -1
- package/dist/types/src/compat/index.d.ts +0 -5
- package/dist/types/src/compat/index.d.ts.map +0 -1
- package/dist/types/src/messages/EncryptedMessage.d.ts +0 -20
- package/dist/types/src/messages/EncryptedMessage.d.ts.map +0 -1
- package/dist/types/src/messages/SignedMessage.d.ts +0 -21
- package/dist/types/src/messages/SignedMessage.d.ts.map +0 -1
- package/dist/types/src/messages/index.d.ts +0 -3
- package/dist/types/src/messages/index.d.ts.map +0 -1
- package/dist/types/src/primitives/AESGCM.d.ts +0 -14
- package/dist/types/src/primitives/AESGCM.d.ts.map +0 -1
- package/dist/types/src/primitives/BasePoint.d.ts +0 -22
- package/dist/types/src/primitives/BasePoint.d.ts.map +0 -1
- package/dist/types/src/primitives/BigNumber.d.ts +0 -1895
- package/dist/types/src/primitives/BigNumber.d.ts.map +0 -1
- package/dist/types/src/primitives/Curve.d.ts +0 -55
- package/dist/types/src/primitives/Curve.d.ts.map +0 -1
- package/dist/types/src/primitives/DRBG.d.ts +0 -54
- package/dist/types/src/primitives/DRBG.d.ts.map +0 -1
- package/dist/types/src/primitives/ECDSA.d.ts +0 -39
- package/dist/types/src/primitives/ECDSA.d.ts.map +0 -1
- package/dist/types/src/primitives/Hash.d.ts +0 -450
- package/dist/types/src/primitives/Hash.d.ts.map +0 -1
- package/dist/types/src/primitives/JacobianPoint.d.ts +0 -164
- package/dist/types/src/primitives/JacobianPoint.d.ts.map +0 -1
- package/dist/types/src/primitives/K256.d.ts +0 -53
- package/dist/types/src/primitives/K256.d.ts.map +0 -1
- package/dist/types/src/primitives/Mersenne.d.ts +0 -72
- package/dist/types/src/primitives/Mersenne.d.ts.map +0 -1
- package/dist/types/src/primitives/MontgomoryMethod.d.ts +0 -96
- package/dist/types/src/primitives/MontgomoryMethod.d.ts.map +0 -1
- package/dist/types/src/primitives/Point.d.ts +0 -303
- package/dist/types/src/primitives/Point.d.ts.map +0 -1
- package/dist/types/src/primitives/PrivateKey.d.ts +0 -174
- package/dist/types/src/primitives/PrivateKey.d.ts.map +0 -1
- package/dist/types/src/primitives/PublicKey.d.ts +0 -120
- package/dist/types/src/primitives/PublicKey.d.ts.map +0 -1
- package/dist/types/src/primitives/Random.d.ts +0 -14
- package/dist/types/src/primitives/Random.d.ts.map +0 -1
- package/dist/types/src/primitives/ReductionContext.d.ts +0 -308
- package/dist/types/src/primitives/ReductionContext.d.ts.map +0 -1
- package/dist/types/src/primitives/Signature.d.ts +0 -162
- package/dist/types/src/primitives/Signature.d.ts.map +0 -1
- package/dist/types/src/primitives/SymmetricKey.d.ts +0 -55
- package/dist/types/src/primitives/SymmetricKey.d.ts.map +0 -1
- package/dist/types/src/primitives/TransactionSignature.d.ts +0 -36
- package/dist/types/src/primitives/TransactionSignature.d.ts.map +0 -1
- package/dist/types/src/primitives/index.d.ts +0 -13
- package/dist/types/src/primitives/index.d.ts.map +0 -1
- package/dist/types/src/primitives/utils.d.ts +0 -124
- package/dist/types/src/primitives/utils.d.ts.map +0 -1
- package/dist/types/src/script/LockingScript.d.ts +0 -25
- package/dist/types/src/script/LockingScript.d.ts.map +0 -1
- package/dist/types/src/script/OP.d.ts +0 -193
- package/dist/types/src/script/OP.d.ts.map +0 -1
- package/dist/types/src/script/Script.d.ts +0 -148
- package/dist/types/src/script/Script.d.ts.map +0 -1
- package/dist/types/src/script/ScriptChunk.d.ts +0 -8
- package/dist/types/src/script/ScriptChunk.d.ts.map +0 -1
- package/dist/types/src/script/ScriptTemplate.d.ts +0 -33
- package/dist/types/src/script/ScriptTemplate.d.ts.map +0 -1
- package/dist/types/src/script/Spend.d.ts +0 -103
- package/dist/types/src/script/Spend.d.ts.map +0 -1
- package/dist/types/src/script/UnlockingScript.d.ts +0 -25
- package/dist/types/src/script/UnlockingScript.d.ts.map +0 -1
- package/dist/types/src/script/index.d.ts +0 -8
- package/dist/types/src/script/index.d.ts.map +0 -1
- package/dist/types/src/script/templates/P2PKH.d.ts +0 -40
- package/dist/types/src/script/templates/P2PKH.d.ts.map +0 -1
- package/dist/types/src/script/templates/RPuzzle.d.ts +0 -47
- package/dist/types/src/script/templates/RPuzzle.d.ts.map +0 -1
- package/dist/types/src/script/templates/index.d.ts +0 -3
- package/dist/types/src/script/templates/index.d.ts.map +0 -1
- package/dist/types/src/transaction/Broadcaster.d.ts +0 -39
- package/dist/types/src/transaction/Broadcaster.d.ts.map +0 -1
- package/dist/types/src/transaction/ChainTracker.d.ts +0 -23
- package/dist/types/src/transaction/ChainTracker.d.ts.map +0 -1
- package/dist/types/src/transaction/FeeModel.d.ts +0 -12
- package/dist/types/src/transaction/FeeModel.d.ts.map +0 -1
- package/dist/types/src/transaction/MerklePath.d.ts +0 -91
- package/dist/types/src/transaction/MerklePath.d.ts.map +0 -1
- package/dist/types/src/transaction/Transaction.d.ts +0 -215
- package/dist/types/src/transaction/Transaction.d.ts.map +0 -1
- package/dist/types/src/transaction/TransactionInput.d.ts +0 -63
- package/dist/types/src/transaction/TransactionInput.d.ts.map +0 -1
- package/dist/types/src/transaction/TransactionOutput.d.ts +0 -36
- package/dist/types/src/transaction/TransactionOutput.d.ts.map +0 -1
- package/dist/types/src/transaction/broadcasters/ARC.d.ts +0 -28
- package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +0 -1
- package/dist/types/src/transaction/broadcasters/index.d.ts +0 -2
- package/dist/types/src/transaction/broadcasters/index.d.ts.map +0 -1
- package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts +0 -26
- package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +0 -1
- package/dist/types/src/transaction/fee-models/index.d.ts +0 -2
- package/dist/types/src/transaction/fee-models/index.d.ts.map +0 -1
- package/dist/types/src/transaction/index.d.ts +0 -7
- package/dist/types/src/transaction/index.d.ts.map +0 -1
- package/dist/types/tsconfig.types.tsbuildinfo +0 -1
|
@@ -1,609 +0,0 @@
|
|
|
1
|
-
import BigNumber from './BigNumber.js';
|
|
2
|
-
import { hash256 } from './Hash.js';
|
|
3
|
-
/**
|
|
4
|
-
* Prepends a '0' to an odd character length word to ensure it has an even number of characters.
|
|
5
|
-
* @param {string} word - The input word.
|
|
6
|
-
* @returns {string} - The word with a leading '0' if it's an odd character length; otherwise, the original word.
|
|
7
|
-
*/
|
|
8
|
-
export const zero2 = (word) => {
|
|
9
|
-
if (word.length % 2 === 1) {
|
|
10
|
-
return '0' + word;
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
return word;
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* Converts an array of numbers to a hexadecimal string representation.
|
|
18
|
-
* @param {number[]} msg - The input array of numbers.
|
|
19
|
-
* @returns {string} - The hexadecimal string representation of the input array.
|
|
20
|
-
*/
|
|
21
|
-
export const toHex = (msg) => {
|
|
22
|
-
let res = '';
|
|
23
|
-
for (let i = 0; i < msg.length; i++) {
|
|
24
|
-
res += zero2(msg[i].toString(16));
|
|
25
|
-
}
|
|
26
|
-
return res;
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Converts various message formats into an array of numbers.
|
|
30
|
-
* Supports arrays, hexadecimal strings, base64 strings, and UTF-8 strings.
|
|
31
|
-
*
|
|
32
|
-
* @param {any} msg - The input message (array or string).
|
|
33
|
-
* @param {('hex' | 'utf8')} enc - Specifies the string encoding, if applicable.
|
|
34
|
-
* @returns {any[]} - Array representation of the input.
|
|
35
|
-
*/
|
|
36
|
-
export const toArray = (msg, enc) => {
|
|
37
|
-
// Return a copy if already an array
|
|
38
|
-
if (Array.isArray(msg)) {
|
|
39
|
-
return msg.slice();
|
|
40
|
-
}
|
|
41
|
-
// Return empty array for falsy values
|
|
42
|
-
if (!msg) {
|
|
43
|
-
return [];
|
|
44
|
-
}
|
|
45
|
-
const res = [];
|
|
46
|
-
// Convert non-string messages to numbers
|
|
47
|
-
if (typeof msg !== 'string') {
|
|
48
|
-
for (let i = 0; i < msg.length; i++) {
|
|
49
|
-
res[i] = msg[i] | 0;
|
|
50
|
-
}
|
|
51
|
-
return res;
|
|
52
|
-
}
|
|
53
|
-
// Handle hexadecimal encoding
|
|
54
|
-
if (enc === 'hex') {
|
|
55
|
-
msg = msg.replace(/[^a-z0-9]+/ig, '');
|
|
56
|
-
if (msg.length % 2 !== 0) {
|
|
57
|
-
msg = '0' + msg;
|
|
58
|
-
}
|
|
59
|
-
for (let i = 0; i < msg.length; i += 2) {
|
|
60
|
-
res.push(parseInt(msg[i] + msg[i + 1], 16));
|
|
61
|
-
}
|
|
62
|
-
// Handle base64
|
|
63
|
-
}
|
|
64
|
-
else if (enc === 'base64') {
|
|
65
|
-
const base64Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
66
|
-
const result = [];
|
|
67
|
-
let currentBit = 0;
|
|
68
|
-
let currentByte = 0;
|
|
69
|
-
for (const char of msg.replace(/=+$/, '')) {
|
|
70
|
-
currentBit = (currentBit << 6) | base64Chars.indexOf(char);
|
|
71
|
-
currentByte += 6;
|
|
72
|
-
if (currentByte >= 8) {
|
|
73
|
-
currentByte -= 8;
|
|
74
|
-
result.push((currentBit >> currentByte) & 0xFF);
|
|
75
|
-
currentBit &= (1 << currentByte) - 1;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return result;
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
// Handle UTF-8 encoding
|
|
82
|
-
for (let i = 0; i < msg.length; i++) {
|
|
83
|
-
const c = msg.charCodeAt(i);
|
|
84
|
-
const hi = c >> 8;
|
|
85
|
-
const lo = c & 0xff;
|
|
86
|
-
if (hi) {
|
|
87
|
-
res.push(hi, lo);
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
res.push(lo);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return res;
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
* Converts an array of numbers to a UTF-8 encoded string.
|
|
98
|
-
* @param {number[]} arr - The input array of numbers.
|
|
99
|
-
* @returns {string} - The UTF-8 encoded string.
|
|
100
|
-
*/
|
|
101
|
-
export const toUTF8 = (arr) => {
|
|
102
|
-
let result = '';
|
|
103
|
-
for (let i = 0; i < arr.length; i++) {
|
|
104
|
-
const byte = arr[i];
|
|
105
|
-
// 1-byte sequence (0xxxxxxx)
|
|
106
|
-
if (byte <= 0x7F) {
|
|
107
|
-
result += String.fromCharCode(byte);
|
|
108
|
-
}
|
|
109
|
-
// 2-byte sequence (110xxxxx 10xxxxxx)
|
|
110
|
-
else if (byte >= 0xC0 && byte <= 0xDF) {
|
|
111
|
-
const byte2 = arr[++i];
|
|
112
|
-
const codePoint = ((byte & 0x1F) << 6) | (byte2 & 0x3F);
|
|
113
|
-
result += String.fromCharCode(codePoint);
|
|
114
|
-
}
|
|
115
|
-
// 3-byte sequence (1110xxxx 10xxxxxx 10xxxxxx)
|
|
116
|
-
else if (byte >= 0xE0 && byte <= 0xEF) {
|
|
117
|
-
const byte2 = arr[++i];
|
|
118
|
-
const byte3 = arr[++i];
|
|
119
|
-
const codePoint = ((byte & 0x0F) << 12) | ((byte2 & 0x3F) << 6) | (byte3 & 0x3F);
|
|
120
|
-
result += String.fromCharCode(codePoint);
|
|
121
|
-
}
|
|
122
|
-
// 4-byte sequence (11110xxx 10xxxxxx 10xxxxxx 10xxxxxx)
|
|
123
|
-
else if (byte >= 0xF0 && byte <= 0xF7) {
|
|
124
|
-
const byte2 = arr[++i];
|
|
125
|
-
const byte3 = arr[++i];
|
|
126
|
-
const byte4 = arr[++i];
|
|
127
|
-
const codePoint = ((byte & 0x07) << 18) | ((byte2 & 0x3F) << 12) | ((byte3 & 0x3F) << 6) | (byte4 & 0x3F);
|
|
128
|
-
// Convert to UTF-16 surrogate pair
|
|
129
|
-
const surrogate1 = 0xD800 + ((codePoint - 0x10000) >> 10);
|
|
130
|
-
const surrogate2 = 0xDC00 + ((codePoint - 0x10000) & 0x3FF);
|
|
131
|
-
result += String.fromCharCode(surrogate1, surrogate2);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
return result;
|
|
135
|
-
};
|
|
136
|
-
/**
|
|
137
|
-
* Encodes an array of numbers into a specified encoding ('hex' or 'utf8'). If no encoding is provided, returns the original array.
|
|
138
|
-
* @param {number[]} arr - The input array of numbers.
|
|
139
|
-
* @param {('hex' | 'utf8')} enc - The desired encoding.
|
|
140
|
-
* @returns {string | number[]} - The encoded message as a string (for 'hex' and 'utf8') or the original array.
|
|
141
|
-
*/
|
|
142
|
-
export const encode = (arr, enc) => {
|
|
143
|
-
switch (enc) {
|
|
144
|
-
case 'hex':
|
|
145
|
-
return toHex(arr);
|
|
146
|
-
case 'utf8':
|
|
147
|
-
return toUTF8(arr);
|
|
148
|
-
// If no encoding is provided, return the original array
|
|
149
|
-
default:
|
|
150
|
-
return arr;
|
|
151
|
-
}
|
|
152
|
-
};
|
|
153
|
-
/**
|
|
154
|
-
* Converts an array of bytes (each between 0 and 255) into a base64 encoded string.
|
|
155
|
-
*
|
|
156
|
-
* @param {number[]} byteArray - An array of numbers where each number is a byte (0-255).
|
|
157
|
-
* @returns {string} The base64 encoded string.
|
|
158
|
-
*
|
|
159
|
-
* @example
|
|
160
|
-
* const bytes = [72, 101, 108, 108, 111]; // Represents the string "Hello"
|
|
161
|
-
* console.log(toBase64(bytes)); // Outputs: SGVsbG8=
|
|
162
|
-
*/
|
|
163
|
-
export function toBase64(byteArray) {
|
|
164
|
-
const base64Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
165
|
-
let result = '';
|
|
166
|
-
let i;
|
|
167
|
-
for (i = 0; i < byteArray.length; i += 3) {
|
|
168
|
-
const byte1 = byteArray[i];
|
|
169
|
-
const byte2 = i + 1 < byteArray.length ? byteArray[i + 1] : 0;
|
|
170
|
-
const byte3 = i + 2 < byteArray.length ? byteArray[i + 2] : 0;
|
|
171
|
-
const encoded1 = byte1 >> 2;
|
|
172
|
-
const encoded2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);
|
|
173
|
-
const encoded3 = ((byte2 & 0x0F) << 2) | (byte3 >> 6);
|
|
174
|
-
const encoded4 = byte3 & 0x3F;
|
|
175
|
-
result += base64Chars.charAt(encoded1) + base64Chars.charAt(encoded2);
|
|
176
|
-
result += i + 1 < byteArray.length ? base64Chars.charAt(encoded3) : '=';
|
|
177
|
-
result += i + 2 < byteArray.length ? base64Chars.charAt(encoded4) : '=';
|
|
178
|
-
}
|
|
179
|
-
return result;
|
|
180
|
-
}
|
|
181
|
-
const base58chars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
182
|
-
/**
|
|
183
|
-
* Converts a string from base58 to a binary array
|
|
184
|
-
* @param str - The string representation
|
|
185
|
-
* @returns The binary representation
|
|
186
|
-
*/
|
|
187
|
-
export const fromBase58 = (str) => {
|
|
188
|
-
if (!str || typeof str !== 'string') {
|
|
189
|
-
throw new Error(`Expected base58 string but got “${str}”`);
|
|
190
|
-
}
|
|
191
|
-
if (str.match(/[IOl0]/gmu)) {
|
|
192
|
-
throw new Error(`Invalid base58 character “${str.match(/[IOl0]/gmu)}”`);
|
|
193
|
-
}
|
|
194
|
-
const lz = str.match(/^1+/gmu);
|
|
195
|
-
const psz = lz ? lz[0].length : 0;
|
|
196
|
-
const size = ((str.length - psz) * (Math.log(58) / Math.log(256)) + 1) >>> 0;
|
|
197
|
-
const uint8 = new Uint8Array([
|
|
198
|
-
...new Uint8Array(psz),
|
|
199
|
-
...str
|
|
200
|
-
.match(/.{1}/gmu)
|
|
201
|
-
.map((i) => base58chars.indexOf(i))
|
|
202
|
-
.reduce((acc, i) => {
|
|
203
|
-
acc = acc.map((j) => {
|
|
204
|
-
const x = j * 58 + i;
|
|
205
|
-
i = x >> 8;
|
|
206
|
-
return x;
|
|
207
|
-
});
|
|
208
|
-
return acc;
|
|
209
|
-
}, new Uint8Array(size))
|
|
210
|
-
.reverse()
|
|
211
|
-
.filter(((lastValue) => (value) =>
|
|
212
|
-
// @ts-expect-error
|
|
213
|
-
(lastValue = lastValue || value))(false))
|
|
214
|
-
]);
|
|
215
|
-
return [...uint8];
|
|
216
|
-
};
|
|
217
|
-
/**
|
|
218
|
-
* Converts a binary array into a base58 string
|
|
219
|
-
* @param bin - The binary array to convert to base58
|
|
220
|
-
* @returns The base58 string representation
|
|
221
|
-
*/
|
|
222
|
-
export const toBase58 = (bin) => {
|
|
223
|
-
const base58Map = Array(256).fill(-1);
|
|
224
|
-
for (let i = 0; i < base58chars.length; ++i) {
|
|
225
|
-
base58Map[base58chars.charCodeAt(i)] = i;
|
|
226
|
-
}
|
|
227
|
-
const result = [];
|
|
228
|
-
for (const byte of bin) {
|
|
229
|
-
let carry = byte;
|
|
230
|
-
for (let j = 0; j < result.length; ++j) {
|
|
231
|
-
const x = (base58Map[result[j]] << 8) + carry;
|
|
232
|
-
result[j] = base58chars.charCodeAt(x % 58);
|
|
233
|
-
carry = (x / 58) | 0;
|
|
234
|
-
}
|
|
235
|
-
while (carry) {
|
|
236
|
-
result.push(base58chars.charCodeAt(carry % 58));
|
|
237
|
-
carry = (carry / 58) | 0;
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
for (const byte of bin) {
|
|
241
|
-
if (byte)
|
|
242
|
-
break;
|
|
243
|
-
else
|
|
244
|
-
result.push('1'.charCodeAt(0));
|
|
245
|
-
}
|
|
246
|
-
result.reverse();
|
|
247
|
-
return String.fromCharCode(...result);
|
|
248
|
-
};
|
|
249
|
-
/**
|
|
250
|
-
* Converts a binary array into a base58check string with a checksum
|
|
251
|
-
* @param bin - The binary array to convert to base58check
|
|
252
|
-
* @returns The base58check string representation
|
|
253
|
-
*/
|
|
254
|
-
export const toBase58Check = (bin, prefix = [0]) => {
|
|
255
|
-
let hash = hash256([...prefix, ...bin]);
|
|
256
|
-
hash = [...prefix, ...bin, ...hash.slice(0, 4)];
|
|
257
|
-
return toBase58(hash);
|
|
258
|
-
};
|
|
259
|
-
/**
|
|
260
|
-
* Converts a base58check string into a binary array after validating the checksum
|
|
261
|
-
* @param str - The base58check string to convert to binary
|
|
262
|
-
* @param enc - If hex, the return values will be hex strings, arrays of numbers otherwise
|
|
263
|
-
* @param prefixLength - The length of the prefix. Optional, defaults to 1.
|
|
264
|
-
* @returns The binary array representation
|
|
265
|
-
*/
|
|
266
|
-
export const fromBase58Check = (str, enc, prefixLength = 1) => {
|
|
267
|
-
const bin = fromBase58(str);
|
|
268
|
-
let prefix = bin.slice(0, prefixLength);
|
|
269
|
-
let data = bin.slice(prefixLength, -4);
|
|
270
|
-
let hash = [...prefix, ...data];
|
|
271
|
-
hash = hash256(hash);
|
|
272
|
-
bin.slice(-4).forEach((check, index) => {
|
|
273
|
-
if (check !== hash[index]) {
|
|
274
|
-
throw new Error('Invalid checksum');
|
|
275
|
-
}
|
|
276
|
-
});
|
|
277
|
-
if (enc === 'hex') {
|
|
278
|
-
prefix = toHex(prefix);
|
|
279
|
-
data = toHex(data);
|
|
280
|
-
}
|
|
281
|
-
return { prefix, data };
|
|
282
|
-
};
|
|
283
|
-
export class Writer {
|
|
284
|
-
bufs;
|
|
285
|
-
constructor(bufs) {
|
|
286
|
-
this.bufs = bufs || [];
|
|
287
|
-
}
|
|
288
|
-
getLength() {
|
|
289
|
-
let len = 0;
|
|
290
|
-
for (const buf of this.bufs) {
|
|
291
|
-
len = len + buf.length;
|
|
292
|
-
}
|
|
293
|
-
return len;
|
|
294
|
-
}
|
|
295
|
-
toArray() {
|
|
296
|
-
let ret = [];
|
|
297
|
-
for (const x of this.bufs) {
|
|
298
|
-
if (x.length < 65536) {
|
|
299
|
-
ret.push(...x);
|
|
300
|
-
}
|
|
301
|
-
else {
|
|
302
|
-
ret = ret.concat(x);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
return ret;
|
|
306
|
-
}
|
|
307
|
-
write(buf) {
|
|
308
|
-
this.bufs.push(buf);
|
|
309
|
-
return this;
|
|
310
|
-
}
|
|
311
|
-
writeReverse(buf) {
|
|
312
|
-
const buf2 = new Array(buf.length);
|
|
313
|
-
for (let i = 0; i < buf2.length; i++) {
|
|
314
|
-
buf2[i] = buf[buf.length - 1 - i];
|
|
315
|
-
}
|
|
316
|
-
this.bufs.push(buf2);
|
|
317
|
-
return this;
|
|
318
|
-
}
|
|
319
|
-
writeUInt8(n) {
|
|
320
|
-
const buf = new Array(1);
|
|
321
|
-
buf[0] = n;
|
|
322
|
-
this.write(buf);
|
|
323
|
-
return this;
|
|
324
|
-
}
|
|
325
|
-
writeInt8(n) {
|
|
326
|
-
const buf = new Array(1);
|
|
327
|
-
buf[0] = n & 0xFF;
|
|
328
|
-
this.write(buf);
|
|
329
|
-
return this;
|
|
330
|
-
}
|
|
331
|
-
writeUInt16BE(n) {
|
|
332
|
-
this.bufs.push([
|
|
333
|
-
(n >> 8) & 0xFF,
|
|
334
|
-
n & 0xFF // low byte is just the last 8 bits
|
|
335
|
-
]);
|
|
336
|
-
return this;
|
|
337
|
-
}
|
|
338
|
-
writeInt16BE(n) {
|
|
339
|
-
return this.writeUInt16BE(n & 0xFFFF); // Mask with 0xFFFF to get the lower 16 bits
|
|
340
|
-
}
|
|
341
|
-
writeUInt16LE(n) {
|
|
342
|
-
this.bufs.push([
|
|
343
|
-
n & 0xFF,
|
|
344
|
-
(n >> 8) & 0xFF // shift right 8 bits to get the high byte
|
|
345
|
-
]);
|
|
346
|
-
return this;
|
|
347
|
-
}
|
|
348
|
-
writeInt16LE(n) {
|
|
349
|
-
return this.writeUInt16LE(n & 0xFFFF); // Mask with 0xFFFF to get the lower 16 bits
|
|
350
|
-
}
|
|
351
|
-
writeUInt32BE(n) {
|
|
352
|
-
this.bufs.push([
|
|
353
|
-
(n >> 24) & 0xFF,
|
|
354
|
-
(n >> 16) & 0xFF,
|
|
355
|
-
(n >> 8) & 0xFF,
|
|
356
|
-
n & 0xFF // lowest byte
|
|
357
|
-
]);
|
|
358
|
-
return this;
|
|
359
|
-
}
|
|
360
|
-
writeInt32BE(n) {
|
|
361
|
-
return this.writeUInt32BE(n >>> 0); // Using unsigned right shift to handle negative numbers
|
|
362
|
-
}
|
|
363
|
-
writeUInt32LE(n) {
|
|
364
|
-
this.bufs.push([
|
|
365
|
-
n & 0xFF,
|
|
366
|
-
(n >> 8) & 0xFF,
|
|
367
|
-
(n >> 16) & 0xFF,
|
|
368
|
-
(n >> 24) & 0xFF // highest byte
|
|
369
|
-
]);
|
|
370
|
-
return this;
|
|
371
|
-
}
|
|
372
|
-
writeInt32LE(n) {
|
|
373
|
-
return this.writeUInt32LE(n >>> 0); // Using unsigned right shift to handle negative numbers
|
|
374
|
-
}
|
|
375
|
-
writeUInt64BEBn(bn) {
|
|
376
|
-
const buf = bn.toArray('be', 8);
|
|
377
|
-
this.write(buf);
|
|
378
|
-
return this;
|
|
379
|
-
}
|
|
380
|
-
writeUInt64LEBn(bn) {
|
|
381
|
-
const buf = bn.toArray('be', 8);
|
|
382
|
-
this.writeReverse(buf);
|
|
383
|
-
return this;
|
|
384
|
-
}
|
|
385
|
-
writeUInt64LE(n) {
|
|
386
|
-
const buf = new BigNumber(n).toArray('be', 8);
|
|
387
|
-
this.writeReverse(buf);
|
|
388
|
-
return this;
|
|
389
|
-
}
|
|
390
|
-
writeVarIntNum(n) {
|
|
391
|
-
const buf = Writer.varIntNum(n);
|
|
392
|
-
this.write(buf);
|
|
393
|
-
return this;
|
|
394
|
-
}
|
|
395
|
-
writeVarIntBn(bn) {
|
|
396
|
-
const buf = Writer.varIntBn(bn);
|
|
397
|
-
this.write(buf);
|
|
398
|
-
return this;
|
|
399
|
-
}
|
|
400
|
-
static varIntNum(n) {
|
|
401
|
-
let buf;
|
|
402
|
-
if (n < 253) {
|
|
403
|
-
buf = [n]; // 1 byte
|
|
404
|
-
}
|
|
405
|
-
else if (n < 0x10000) {
|
|
406
|
-
// 253 followed by the number in little-endian format
|
|
407
|
-
buf = [
|
|
408
|
-
253,
|
|
409
|
-
n & 0xFF,
|
|
410
|
-
(n >> 8) & 0xFF // high byte
|
|
411
|
-
];
|
|
412
|
-
}
|
|
413
|
-
else if (n < 0x100000000) {
|
|
414
|
-
// 254 followed by the number in little-endian format
|
|
415
|
-
buf = [
|
|
416
|
-
254,
|
|
417
|
-
n & 0xFF,
|
|
418
|
-
(n >> 8) & 0xFF,
|
|
419
|
-
(n >> 16) & 0xFF,
|
|
420
|
-
(n >> 24) & 0xFF
|
|
421
|
-
];
|
|
422
|
-
}
|
|
423
|
-
else {
|
|
424
|
-
// 255 followed by the number in little-endian format
|
|
425
|
-
// Since JavaScript bitwise operations work on 32 bits, we need to handle 64-bit numbers in two parts
|
|
426
|
-
const low = n & 0xFFFFFFFF;
|
|
427
|
-
const high = Math.floor(n / 0x100000000) & 0xFFFFFFFF;
|
|
428
|
-
buf = [
|
|
429
|
-
255,
|
|
430
|
-
low & 0xFF,
|
|
431
|
-
(low >> 8) & 0xFF,
|
|
432
|
-
(low >> 16) & 0xFF,
|
|
433
|
-
(low >> 24) & 0xFF,
|
|
434
|
-
high & 0xFF,
|
|
435
|
-
(high >> 8) & 0xFF,
|
|
436
|
-
(high >> 16) & 0xFF,
|
|
437
|
-
(high >> 24) & 0xFF
|
|
438
|
-
];
|
|
439
|
-
}
|
|
440
|
-
return buf;
|
|
441
|
-
}
|
|
442
|
-
static varIntBn(bn) {
|
|
443
|
-
let buf;
|
|
444
|
-
if (bn.ltn(253)) {
|
|
445
|
-
const n = bn.toNumber();
|
|
446
|
-
// No need for bitwise operation as the value is within a byte's range
|
|
447
|
-
buf = [n];
|
|
448
|
-
}
|
|
449
|
-
else if (bn.ltn(0x10000)) {
|
|
450
|
-
const n = bn.toNumber();
|
|
451
|
-
// Value fits in a uint16
|
|
452
|
-
buf = [253, n & 0xFF, (n >> 8) & 0xFF];
|
|
453
|
-
}
|
|
454
|
-
else if (bn.lt(new BigNumber(0x100000000))) {
|
|
455
|
-
const n = bn.toNumber();
|
|
456
|
-
// Value fits in a uint32
|
|
457
|
-
buf = [254, n & 0xFF, (n >> 8) & 0xFF, (n >> 16) & 0xFF, (n >> 24) & 0xFF];
|
|
458
|
-
}
|
|
459
|
-
else {
|
|
460
|
-
const bw = new Writer();
|
|
461
|
-
bw.writeUInt8(255);
|
|
462
|
-
bw.writeUInt64LEBn(bn);
|
|
463
|
-
buf = bw.toArray();
|
|
464
|
-
}
|
|
465
|
-
return buf;
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
export class Reader {
|
|
469
|
-
bin;
|
|
470
|
-
pos;
|
|
471
|
-
constructor(bin = [], pos = 0) {
|
|
472
|
-
this.bin = bin;
|
|
473
|
-
this.pos = pos;
|
|
474
|
-
}
|
|
475
|
-
eof() {
|
|
476
|
-
return this.pos >= this.bin.length;
|
|
477
|
-
}
|
|
478
|
-
read(len = this.bin.length) {
|
|
479
|
-
const bin = this.bin.slice(this.pos, this.pos + len);
|
|
480
|
-
this.pos = this.pos + len;
|
|
481
|
-
return bin;
|
|
482
|
-
}
|
|
483
|
-
readReverse(len = this.bin.length) {
|
|
484
|
-
const bin = this.bin.slice(this.pos, this.pos + len);
|
|
485
|
-
this.pos = this.pos + len;
|
|
486
|
-
const buf2 = new Array(bin.length);
|
|
487
|
-
for (let i = 0; i < buf2.length; i++) {
|
|
488
|
-
buf2[i] = bin[bin.length - 1 - i];
|
|
489
|
-
}
|
|
490
|
-
return buf2;
|
|
491
|
-
}
|
|
492
|
-
readUInt8() {
|
|
493
|
-
const val = this.bin[this.pos];
|
|
494
|
-
this.pos += 1;
|
|
495
|
-
return val;
|
|
496
|
-
}
|
|
497
|
-
readInt8() {
|
|
498
|
-
const val = this.bin[this.pos];
|
|
499
|
-
this.pos += 1;
|
|
500
|
-
// If the sign bit is set, convert to negative value
|
|
501
|
-
return (val & 0x80) !== 0 ? val - 0x100 : val;
|
|
502
|
-
}
|
|
503
|
-
readUInt16BE() {
|
|
504
|
-
const val = (this.bin[this.pos] << 8) | this.bin[this.pos + 1];
|
|
505
|
-
this.pos += 2;
|
|
506
|
-
return val;
|
|
507
|
-
}
|
|
508
|
-
readInt16BE() {
|
|
509
|
-
const val = this.readUInt16BE();
|
|
510
|
-
// If the sign bit is set, convert to negative value
|
|
511
|
-
return (val & 0x8000) !== 0 ? val - 0x10000 : val;
|
|
512
|
-
}
|
|
513
|
-
readUInt16LE() {
|
|
514
|
-
const val = this.bin[this.pos] | (this.bin[this.pos + 1] << 8);
|
|
515
|
-
this.pos += 2;
|
|
516
|
-
return val;
|
|
517
|
-
}
|
|
518
|
-
readInt16LE() {
|
|
519
|
-
const val = this.readUInt16LE();
|
|
520
|
-
// If the sign bit is set, convert to negative value
|
|
521
|
-
const x = (val & 0x8000) !== 0 ? val - 0x10000 : val;
|
|
522
|
-
return x;
|
|
523
|
-
}
|
|
524
|
-
readUInt32BE() {
|
|
525
|
-
const val = (this.bin[this.pos] * 0x1000000) + // Shift the first byte by 24 bits
|
|
526
|
-
((this.bin[this.pos + 1] << 16) | // Shift the second byte by 16 bits
|
|
527
|
-
(this.bin[this.pos + 2] << 8) | // Shift the third byte by 8 bits
|
|
528
|
-
this.bin[this.pos + 3]); // The fourth byte
|
|
529
|
-
this.pos += 4;
|
|
530
|
-
return val;
|
|
531
|
-
}
|
|
532
|
-
readInt32BE() {
|
|
533
|
-
const val = this.readUInt32BE();
|
|
534
|
-
// If the sign bit is set, convert to negative value
|
|
535
|
-
return (val & 0x80000000) !== 0 ? val - 0x100000000 : val;
|
|
536
|
-
}
|
|
537
|
-
readUInt32LE() {
|
|
538
|
-
const val = (this.bin[this.pos] |
|
|
539
|
-
(this.bin[this.pos + 1] << 8) |
|
|
540
|
-
(this.bin[this.pos + 2] << 16) |
|
|
541
|
-
(this.bin[this.pos + 3] << 24)) >>> 0;
|
|
542
|
-
this.pos += 4;
|
|
543
|
-
return val;
|
|
544
|
-
}
|
|
545
|
-
readInt32LE() {
|
|
546
|
-
const val = this.readUInt32LE();
|
|
547
|
-
// Explicitly check if the sign bit is set and then convert to a negative value
|
|
548
|
-
return (val & 0x80000000) !== 0 ? val - 0x100000000 : val;
|
|
549
|
-
}
|
|
550
|
-
readUInt64BEBn() {
|
|
551
|
-
const bin = this.bin.slice(this.pos, this.pos + 8);
|
|
552
|
-
const bn = new BigNumber(bin);
|
|
553
|
-
this.pos = this.pos + 8;
|
|
554
|
-
return bn;
|
|
555
|
-
}
|
|
556
|
-
readUInt64LEBn() {
|
|
557
|
-
const bin = this.readReverse(8);
|
|
558
|
-
const bn = new BigNumber(bin);
|
|
559
|
-
return bn;
|
|
560
|
-
}
|
|
561
|
-
readVarIntNum() {
|
|
562
|
-
const first = this.readUInt8();
|
|
563
|
-
let bn;
|
|
564
|
-
let n;
|
|
565
|
-
switch (first) {
|
|
566
|
-
case 0xfd:
|
|
567
|
-
return this.readUInt16LE();
|
|
568
|
-
case 0xfe:
|
|
569
|
-
return this.readUInt32LE();
|
|
570
|
-
case 0xff:
|
|
571
|
-
bn = this.readUInt64LEBn();
|
|
572
|
-
if (bn.lte(new BigNumber(2).pow(new BigNumber(53)))) {
|
|
573
|
-
return bn.toNumber();
|
|
574
|
-
}
|
|
575
|
-
else {
|
|
576
|
-
throw new Error('number too large to retain precision - use readVarIntBn');
|
|
577
|
-
}
|
|
578
|
-
default:
|
|
579
|
-
return first;
|
|
580
|
-
}
|
|
581
|
-
}
|
|
582
|
-
readVarInt() {
|
|
583
|
-
const first = this.bin[this.pos];
|
|
584
|
-
switch (first) {
|
|
585
|
-
case 0xfd:
|
|
586
|
-
return this.read(1 + 2);
|
|
587
|
-
case 0xfe:
|
|
588
|
-
return this.read(1 + 4);
|
|
589
|
-
case 0xff:
|
|
590
|
-
return this.read(1 + 8);
|
|
591
|
-
default:
|
|
592
|
-
return this.read(1);
|
|
593
|
-
}
|
|
594
|
-
}
|
|
595
|
-
readVarIntBn() {
|
|
596
|
-
const first = this.readUInt8();
|
|
597
|
-
switch (first) {
|
|
598
|
-
case 0xfd:
|
|
599
|
-
return new BigNumber(this.readUInt16LE());
|
|
600
|
-
case 0xfe:
|
|
601
|
-
return new BigNumber(this.readUInt32LE());
|
|
602
|
-
case 0xff:
|
|
603
|
-
return this.readUInt64LEBn();
|
|
604
|
-
default:
|
|
605
|
-
return new BigNumber(first);
|
|
606
|
-
}
|
|
607
|
-
}
|
|
608
|
-
}
|
|
609
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/primitives/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
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() {
|
|
18
|
-
return true;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* @method isUnlockingScript
|
|
22
|
-
* Determines if the script is an unlocking script.
|
|
23
|
-
* @returns {boolean} Always returns false for a LockingScript instance.
|
|
24
|
-
*/
|
|
25
|
-
isUnlockingScript() {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=LockingScript.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LockingScript.js","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;QACb,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,OAAO,KAAK,CAAA;IACd,CAAC;CACF"}
|