#include <script/script_error.h>
#include <span.h>
#include <primitives/transaction.h>
#include <vector>
#include <stdint.h>
Go to the source code of this file.
|
| enum | {
SIGHASH_ALL = 1,
SIGHASH_NONE = 2,
SIGHASH_SINGLE = 3,
SIGHASH_ANYONECANPAY = 0x80,
SIGHASH_DEFAULT = 0,
SIGHASH_OUTPUT_MASK = 3,
SIGHASH_INPUT_MASK = 0x80
} |
| | Signature hash types/flags. More...
|
| |
| enum | {
SCRIPT_VERIFY_NONE = 0,
SCRIPT_VERIFY_P2SH = (1U << 0),
SCRIPT_VERIFY_STRICTENC = (1U << 1),
SCRIPT_VERIFY_DERSIG = (1U << 2),
SCRIPT_VERIFY_LOW_S = (1U << 3),
SCRIPT_VERIFY_NULLDUMMY = (1U << 4),
SCRIPT_VERIFY_SIGPUSHONLY = (1U << 5),
SCRIPT_VERIFY_MINIMALDATA = (1U << 6),
SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS = (1U << 7),
SCRIPT_VERIFY_CLEANSTACK = (1U << 8),
SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY = (1U << 9),
SCRIPT_VERIFY_CHECKSEQUENCEVERIFY = (1U << 10),
SCRIPT_VERIFY_WITNESS = (1U << 11),
SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_WITNESS_PROGRAM = (1U << 12),
SCRIPT_VERIFY_MINIMALIF = (1U << 13),
SCRIPT_VERIFY_NULLFAIL = (1U << 14),
SCRIPT_VERIFY_WITNESS_PUBKEYTYPE = (1U << 15),
SCRIPT_VERIFY_CONST_SCRIPTCODE = (1U << 16),
SCRIPT_VERIFY_TAPROOT = (1U << 17),
SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_TAPROOT_VERSION = (1U << 18),
SCRIPT_VERIFY_DISCOURAGE_OP_SUCCESS = (1U << 19),
SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_PUBKEYTYPE = (1U << 20)
} |
| | Script verification flags. More...
|
| |
| enum | SigVersion { SigVersion::BASE = 0,
SigVersion::WITNESS_V0 = 1,
SigVersion::TAPROOT = 2,
SigVersion::TAPSCRIPT = 3
} |
| |
|
| bool | CheckSignatureEncoding (const std::vector< unsigned char > &vchSig, unsigned int flags, ScriptError *serror) |
| |
| template<class T > |
| uint256 | SignatureHash (const CScript &scriptCode, const T &txTo, unsigned int nIn, int nHashType, const CAmount &amount, SigVersion sigversion, const PrecomputedTransactionData *cache=nullptr) |
| |
| bool | EvalScript (std::vector< std::vector< unsigned char > > &stack, const CScript &script, unsigned int flags, const BaseSignatureChecker &checker, SigVersion sigversion, ScriptExecutionData &execdata, ScriptError *error=nullptr) |
| |
| bool | EvalScript (std::vector< std::vector< unsigned char > > &stack, const CScript &script, unsigned int flags, const BaseSignatureChecker &checker, SigVersion sigversion, ScriptError *error=nullptr) |
| |
| bool | VerifyScript (const CScript &scriptSig, const CScript &scriptPubKey, const CScriptWitness *witness, unsigned int flags, const BaseSignatureChecker &checker, ScriptError *serror=nullptr) |
| |
| size_t | CountWitnessSigOps (const CScript &scriptSig, const CScript &scriptPubKey, const CScriptWitness *witness, unsigned int flags) |
| |
| int | FindAndDelete (CScript &script, const CScript &b) |
| |
Signature hash types/flags.
| Enumerator |
|---|
| SIGHASH_ALL |
|
| SIGHASH_NONE |
|
| SIGHASH_SINGLE |
|
| SIGHASH_ANYONECANPAY |
|
| SIGHASH_DEFAULT |
Taproot only; implied when sighash byte is missing, and equivalent to SIGHASH_ALL.
|
| SIGHASH_OUTPUT_MASK |
|
| SIGHASH_INPUT_MASK |
|
Definition at line 24 of file interpreter.h.
Script verification flags.
All flags are intended to be soft forks: the set of acceptable scripts under flags (A | B) is a subset of the acceptable scripts under flag (A).
| Enumerator |
|---|
| SCRIPT_VERIFY_NONE |
|
| SCRIPT_VERIFY_P2SH |
|
| SCRIPT_VERIFY_STRICTENC |
|
| SCRIPT_VERIFY_DERSIG |
|
| SCRIPT_VERIFY_LOW_S |
|
| SCRIPT_VERIFY_NULLDUMMY |
|
| SCRIPT_VERIFY_SIGPUSHONLY |
|
| SCRIPT_VERIFY_MINIMALDATA |
|
| SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS |
|
| SCRIPT_VERIFY_CLEANSTACK |
|
| SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY |
|
| SCRIPT_VERIFY_CHECKSEQUENCEVERIFY |
|
| SCRIPT_VERIFY_WITNESS |
|
| SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_WITNESS_PROGRAM |
|
| SCRIPT_VERIFY_MINIMALIF |
|
| SCRIPT_VERIFY_NULLFAIL |
|
| SCRIPT_VERIFY_WITNESS_PUBKEYTYPE |
|
| SCRIPT_VERIFY_CONST_SCRIPTCODE |
|
| SCRIPT_VERIFY_TAPROOT |
|
| SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_TAPROOT_VERSION |
|
| SCRIPT_VERIFY_DISCOURAGE_OP_SUCCESS |
|
| SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_PUBKEYTYPE |
|
Definition at line 41 of file interpreter.h.
| Enumerator |
|---|
| BASE |
Bare scripts and BIP16 P2SH-wrapped redeemscripts.
|
| WITNESS_V0 |
Witness v0 (P2WPKH and P2WSH); see BIP 141.
|
| TAPROOT |
Witness v1 with 32-byte program, not BIP16 P2SH-wrapped, key path spending; see BIP 341.
|
| TAPSCRIPT |
Witness v1 with 32-byte program, not BIP16 P2SH-wrapped, script path spending, leaf version 0xc0; see BIP 342.
|
Definition at line 176 of file interpreter.h.
| bool CheckSignatureEncoding |
( |
const std::vector< unsigned char > & |
vchSig, |
|
|
unsigned int |
flags, |
|
|
ScriptError * |
serror |
|
) |
| |
| constexpr size_t TAPROOT_CONTROL_BASE_SIZE = 33 |
|
static |
| constexpr size_t TAPROOT_CONTROL_MAX_NODE_COUNT = 128 |
|
static |
| constexpr size_t TAPROOT_CONTROL_NODE_SIZE = 32 |
|
static |
| constexpr uint8_t TAPROOT_LEAF_MASK = 0xfe |
|
static |
| constexpr uint8_t TAPROOT_LEAF_TAPSCRIPT = 0xc0 |
|
static |
| constexpr size_t WITNESS_V0_KEYHASH_SIZE = 20 |
|
static |
| constexpr size_t WITNESS_V0_SCRIPTHASH_SIZE = 32 |
|
static |
| constexpr size_t WITNESS_V1_TAPROOT_SIZE = 32 |
|
static |