Names of the individual SCRIPT_VERIFY_* verification flags (forward declaration).

Synopsis

Declared in <script/interpreter.h>

enum class script_verify_flag_name : uint8_t;

Members

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

Name

Description

operator|

Bitwise OR of two flag names.

operator~

Bitwise complement of a single flag name.

Created with MrDocs