[#script_verify_flag_name] = script_verify_flag_name :mrdocs: Names of the individual SCRIPT_VERIFY_* verification flags (forward declaration). == Synopsis Declared in `<script/interpreter.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- enum class script_verify_flag_name : uint8_t; ---- == Members [cols="1,4"] |=== | 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. |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:operator_bitor-08.adoc[`operator|`] | Bitwise OR of two flag names. | xref:operator_bitnot.adoc[`operator~`] | Bitwise complement of a single flag name. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#