7 #ifndef BITCOIN_SCRIPT_INTERPRETER_H
8 #define BITCOIN_SCRIPT_INTERPRETER_H
37 virtual bool CheckSig(
const std::vector<uint8_t> &vchSigIn,
38 const std::vector<uint8_t> &vchPubKey,
67 const T *txToIn,
unsigned int nInIn,
const Amount &amountIn,
72 bool CheckSig(
const std::vector<uint8_t> &vchSigIn,
73 const std::vector<uint8_t> &vchPubKey,
75 uint32_t
flags)
const final override;
88 static inline bool EvalScript(std::vector<std::vector<uint8_t>> &stack,
virtual bool VerifySignature(const std::vector< uint8_t > &vchSig, const CPubKey &vchPubKey, const uint256 &sighash) const
virtual bool CheckLockTime(const CScriptNum &nLockTime) const
virtual bool CheckSequence(const CScriptNum &nSequence) const
virtual bool CheckSig(const std::vector< uint8_t > &vchSigIn, const std::vector< uint8_t > &vchPubKey, const CScript &scriptCode, uint32_t flags) const
virtual ~BaseSignatureChecker()
An encapsulated public key.
Serialized script, used inside transaction inputs and outputs.
The basic transaction that is broadcasted on the network and contained in blocks.
bool CheckSig(const std::vector< uint8_t > &vchSigIn, const std::vector< uint8_t > &vchPubKey, const CScript &scriptCode, uint32_t flags) const final override
const PrecomputedTransactionData * txdata
bool CheckSequence(const CScriptNum &nSequence) const final override
GenericTransactionSignatureChecker(const T *txToIn, unsigned int nInIn, const Amount &amountIn)
GenericTransactionSignatureChecker(const T *txToIn, unsigned int nInIn, const Amount &amountIn, const PrecomputedTransactionData &txdataIn)
bool CheckLockTime(const CScriptNum &nLockTime) const final override
Signature hash type wrapper class.
bool EvalScript(std::vector< std::vector< uint8_t >> &stack, const CScript &script, uint32_t flags, const BaseSignatureChecker &checker, ScriptExecutionMetrics &metrics, ScriptError *error=nullptr)
bool VerifyScript(const CScript &scriptSig, const CScript &scriptPubKey, uint32_t flags, const BaseSignatureChecker &checker, ScriptExecutionMetrics &metricsOut, ScriptError *serror=nullptr)
Execute an unlocking and locking script together.
int FindAndDelete(CScript &script, const CScript &b)
uint256 SignatureHash(const CScript &scriptCode, const T &txTo, unsigned int nIn, SigHashType sigHashType, const Amount amount, const PrecomputedTransactionData *cache=nullptr, uint32_t flags=SCRIPT_ENABLE_SIGHASH_FORKID)
@ SCRIPT_ENABLE_SIGHASH_FORKID
Precompute sighash midstate to avoid quadratic hashing.
Struct for holding cumulative results from executing a script or a sequence of scripts.
bool error(const char *fmt, const Args &...args)