17 std::vector<std::vector<uint8_t>> stack;
29 std::vector<std::vector<uint8_t>>
stackCopy = stack;
40 if (stack.empty() ||
CastToBool(stack.back()) ==
false) {
49 if (!
txin.scriptSig.IsPushOnly()) {
74 if (stack.empty() ||
CastToBool(stack.back()) ==
false) {
82 if (stack.size() != 1) {
110 trace.errorMsg =
"Invalidly encoded opcode";
129 }
catch (std::exception &
ex) {
Serialized script, used inside transaction inputs and outputs.
bool IsPayToScriptHash() const
An input of a transaction.
IguanaTrace RunScript(ScriptInterpreter &interpreter, bool isPushOnly) const
IguanaResult Run() const
Run the interpreter, stepping through the scripts and return the trace.
MutableTransactionSignatureChecker sigChecker
bool CastToBool(const valtype &vch)
T GetRand(T nMax=std::numeric_limits< T >::max()) noexcept
Generate a uniform random integer of type T in the range [0..nMax) nMax defaults to std::numeric_limi...
@ SCRIPT_VERIFY_SIGPUSHONLY
@ SCRIPT_VERIFY_CLEANSTACK
@ SCRIPT_DISALLOW_SEGWIT_RECOVERY
@ SCRIPT_VERIFY_INPUT_SIGCHECKS
IguanaTrace traceScriptSig
IguanaTrace traceScriptPubKey
ScriptExecutionMetrics metrics
std::optional< IguanaTrace > traceRedeemScript
std::vector< std::vector< uint8_t > > stack
std::vector< std::vector< uint8_t > > altstack