Changeset View
Changeset View
Standalone View
Standalone View
src/script/script.h
Show First 20 Lines • Show All 186 Lines • ▼ Show 20 Lines | enum opcodetype { | ||||
// multi-byte opcodes | // multi-byte opcodes | ||||
OP_PREFIX_BEGIN = 0xf0, | OP_PREFIX_BEGIN = 0xf0, | ||||
OP_PREFIX_END = 0xf7, | OP_PREFIX_END = 0xf7, | ||||
OP_INVALIDOPCODE = 0xff, | OP_INVALIDOPCODE = 0xff, | ||||
}; | }; | ||||
// Maximum value that an opcode can be | |||||
static const unsigned int MAX_OPCODE = FIRST_UNDEFINED_OP_VALUE - 1; | |||||
const char *GetOpName(opcodetype opcode); | const char *GetOpName(opcodetype opcode); | ||||
/** | /** | ||||
* Check whether the given stack element data would be minimally pushed using | * Check whether the given stack element data would be minimally pushed using | ||||
* the given opcode. | * the given opcode. | ||||
*/ | */ | ||||
bool CheckMinimalPush(const std::vector<uint8_t> &data, opcodetype opcode); | bool CheckMinimalPush(const std::vector<uint8_t> &data, opcodetype opcode); | ||||
▲ Show 20 Lines • Show All 358 Lines • ▼ Show 20 Lines | public: | ||||
/** | /** | ||||
* Called by IsStandardTx and P2SH/BIP62 VerifyScript (which makes it | * Called by IsStandardTx and P2SH/BIP62 VerifyScript (which makes it | ||||
* consensus-critical). | * consensus-critical). | ||||
*/ | */ | ||||
bool IsPushOnly(const_iterator pc) const; | bool IsPushOnly(const_iterator pc) const; | ||||
bool IsPushOnly() const; | bool IsPushOnly() const; | ||||
/** Check if the script contains valid OP_CODES */ | |||||
bool HasValidOps() const; | |||||
/** | /** | ||||
* Returns whether the script is guaranteed to fail at execution, regardless | * Returns whether the script is guaranteed to fail at execution, regardless | ||||
* of the initial stack. This allows outputs to be pruned instantly when | * of the initial stack. This allows outputs to be pruned instantly when | ||||
* entering the UTXO set. | * entering the UTXO set. | ||||
*/ | */ | ||||
bool IsUnspendable() const { | bool IsUnspendable() const { | ||||
return (size() > 0 && *begin() == OP_RETURN) || | return (size() > 0 && *begin() == OP_RETURN) || | ||||
(size() > MAX_SCRIPT_SIZE); | (size() > MAX_SCRIPT_SIZE); | ||||
Show All 18 Lines |