Names of the individual SCRIPT_VERIFY_* verification flags (forward declaration).
Declared in <script/interpreter.h>
enum class script_verify_flag_name : uint8_t;
| Name | Description |
|---|---|
SCRIPT_VERIFY_P2SH | Evaluate P2SH subscripts (BIP16). |
SCRIPT_VERIFY_STRICTENC | Passing a non-strict-DER signature or one with undefined hashtype to a checksig operation causes script failure. Evaluating a pubkey that is not (0x04 + 64 bytes) or (0x02 or 0x03 + 32 bytes) by checksig causes script failure. (not used or intended as a consensus rule). |
SCRIPT_VERIFY_DERSIG | Passing a non-strict-DER signature to a checksig operation causes script failure (BIP62 rule 1) |
SCRIPT_VERIFY_LOW_S | Passing a non-strict-DER signature or one with S > order/2 to a checksig operation causes script failure (BIP62 rule 5). |
SCRIPT_VERIFY_NULLDUMMY | verify dummy stack item consumed by CHECKMULTISIG is of zero-length (BIP62 rule 7). |
SCRIPT_VERIFY_SIGPUSHONLY | Using a non-push operator in the scriptSig causes script failure (BIP62 rule 2). |
SCRIPT_VERIFY_MINIMALDATA | Require minimal encodings for all push operations (OP_0... OP_16, OP_1NEGATE where possible, direct pushes up to 75 bytes, OP_PUSHDATA up to 255 bytes, OP_PUSHDATA2 for anything larger). Evaluating any other push causes the script to fail (BIP62 rule 3). In addition, whenever a stack element is interpreted as a number, it must be of minimal length (BIP62 rule 4). |
SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS | Discourage use of NOPs reserved for upgrades (NOP1-10) |
SCRIPT_VERIFY_CLEANSTACK | Require that only a single stack element remains after evaluation. This changes the success criterion from "At least one stack element must remain, and when interpreted as a boolean, it must be true" to "Exactly one stack element must remain, and when interpreted as a boolean, it must be true". (BIP62 rule 6) Note: CLEANSTACK should never be used without P2SH or WITNESS. Note: WITNESS_V0 and TAPSCRIPT script execution have behavior similar to CLEANSTACK as part of their consensus rules. It is automatic there and does not need this flag. |
SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY | Verify CHECKLOCKTIMEVERIFY |
SCRIPT_VERIFY_CHECKSEQUENCEVERIFY | support CHECKSEQUENCEVERIFY opcode |
SCRIPT_VERIFY_WITNESS | Support segregated witness |
SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_WITNESS_PROGRAM | Making v1-v16 witness program non-standard |
SCRIPT_VERIFY_MINIMALIF | Segwit script only: Require the argument of OP_IF/NOTIF to be exactly 0x01 or empty vector |
SCRIPT_VERIFY_NULLFAIL | Signature(s) must be empty vector if a CHECK(MULTI)SIG operation failed |
SCRIPT_VERIFY_WITNESS_PUBKEYTYPE | Public keys in segregated witness scripts must be compressed |
SCRIPT_VERIFY_CONST_SCRIPTCODE | Making OP_CODESEPARATOR and FindAndDelete fail any non-segwit scripts |
SCRIPT_VERIFY_TAPROOT | Taproot/Tapscript validation (BIPs 341 & 342) |
SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_TAPROOT_VERSION | Making unknown Taproot leaf versions non-standard |
SCRIPT_VERIFY_DISCOURAGE_OP_SUCCESS | Making unknown OP_SUCCESS non-standard |
SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_PUBKEYTYPE | Making unknown public key versions (in BIP 342 scripts) non-standard |
SCRIPT_VERIFY_END_MARKER | Constants to point to the highest flag in use. Add new flags above this line. |