Bitcoin Core
0.21.1
P2P Digital Currency
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
src
script
script_error.cpp
Go to the documentation of this file.
1
// Copyright (c) 2009-2010 Satoshi Nakamoto
2
// Copyright (c) 2009-2020 The Bitcoin Core developers
3
// Distributed under the MIT software license, see the accompanying
4
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
6
#include <
script/script_error.h
>
7
8
#include <string>
9
10
std::string
ScriptErrorString
(
const
ScriptError
serror)
11
{
12
switch
(serror)
13
{
14
case
SCRIPT_ERR_OK
:
15
return
"No error"
;
16
case
SCRIPT_ERR_EVAL_FALSE
:
17
return
"Script evaluated without error but finished with a false/empty top stack element"
;
18
case
SCRIPT_ERR_VERIFY
:
19
return
"Script failed an OP_VERIFY operation"
;
20
case
SCRIPT_ERR_EQUALVERIFY
:
21
return
"Script failed an OP_EQUALVERIFY operation"
;
22
case
SCRIPT_ERR_CHECKMULTISIGVERIFY
:
23
return
"Script failed an OP_CHECKMULTISIGVERIFY operation"
;
24
case
SCRIPT_ERR_CHECKSIGVERIFY
:
25
return
"Script failed an OP_CHECKSIGVERIFY operation"
;
26
case
SCRIPT_ERR_NUMEQUALVERIFY
:
27
return
"Script failed an OP_NUMEQUALVERIFY operation"
;
28
case
SCRIPT_ERR_SCRIPT_SIZE
:
29
return
"Script is too big"
;
30
case
SCRIPT_ERR_PUSH_SIZE
:
31
return
"Push value size limit exceeded"
;
32
case
SCRIPT_ERR_OP_COUNT
:
33
return
"Operation limit exceeded"
;
34
case
SCRIPT_ERR_STACK_SIZE
:
35
return
"Stack size limit exceeded"
;
36
case
SCRIPT_ERR_SIG_COUNT
:
37
return
"Signature count negative or greater than pubkey count"
;
38
case
SCRIPT_ERR_PUBKEY_COUNT
:
39
return
"Pubkey count negative or limit exceeded"
;
40
case
SCRIPT_ERR_BAD_OPCODE
:
41
return
"Opcode missing or not understood"
;
42
case
SCRIPT_ERR_DISABLED_OPCODE
:
43
return
"Attempted to use a disabled opcode"
;
44
case
SCRIPT_ERR_INVALID_STACK_OPERATION
:
45
return
"Operation not valid with the current stack size"
;
46
case
SCRIPT_ERR_INVALID_ALTSTACK_OPERATION
:
47
return
"Operation not valid with the current altstack size"
;
48
case
SCRIPT_ERR_OP_RETURN
:
49
return
"OP_RETURN was encountered"
;
50
case
SCRIPT_ERR_UNBALANCED_CONDITIONAL
:
51
return
"Invalid OP_IF construction"
;
52
case
SCRIPT_ERR_NEGATIVE_LOCKTIME
:
53
return
"Negative locktime"
;
54
case
SCRIPT_ERR_UNSATISFIED_LOCKTIME
:
55
return
"Locktime requirement not satisfied"
;
56
case
SCRIPT_ERR_SIG_HASHTYPE
:
57
return
"Signature hash type missing or not understood"
;
58
case
SCRIPT_ERR_SIG_DER
:
59
return
"Non-canonical DER signature"
;
60
case
SCRIPT_ERR_MINIMALDATA
:
61
return
"Data push larger than necessary"
;
62
case
SCRIPT_ERR_SIG_PUSHONLY
:
63
return
"Only push operators allowed in signatures"
;
64
case
SCRIPT_ERR_SIG_HIGH_S
:
65
return
"Non-canonical signature: S value is unnecessarily high"
;
66
case
SCRIPT_ERR_SIG_NULLDUMMY
:
67
return
"Dummy CHECKMULTISIG argument must be zero"
;
68
case
SCRIPT_ERR_MINIMALIF
:
69
return
"OP_IF/NOTIF argument must be minimal"
;
70
case
SCRIPT_ERR_SIG_NULLFAIL
:
71
return
"Signature must be zero for failed CHECK(MULTI)SIG operation"
;
72
case
SCRIPT_ERR_DISCOURAGE_UPGRADABLE_NOPS
:
73
return
"NOPx reserved for soft-fork upgrades"
;
74
case
SCRIPT_ERR_DISCOURAGE_UPGRADABLE_WITNESS_PROGRAM
:
75
return
"Witness version reserved for soft-fork upgrades"
;
76
case
SCRIPT_ERR_DISCOURAGE_UPGRADABLE_TAPROOT_VERSION
:
77
return
"Taproot version reserved for soft-fork upgrades"
;
78
case
SCRIPT_ERR_DISCOURAGE_OP_SUCCESS
:
79
return
"OP_SUCCESSx reserved for soft-fork upgrades"
;
80
case
SCRIPT_ERR_DISCOURAGE_UPGRADABLE_PUBKEYTYPE
:
81
return
"Public key version reserved for soft-fork upgrades"
;
82
case
SCRIPT_ERR_PUBKEYTYPE
:
83
return
"Public key is neither compressed or uncompressed"
;
84
case
SCRIPT_ERR_CLEANSTACK
:
85
return
"Stack size must be exactly one after execution"
;
86
case
SCRIPT_ERR_WITNESS_PROGRAM_WRONG_LENGTH
:
87
return
"Witness program has incorrect length"
;
88
case
SCRIPT_ERR_WITNESS_PROGRAM_WITNESS_EMPTY
:
89
return
"Witness program was passed an empty witness"
;
90
case
SCRIPT_ERR_WITNESS_PROGRAM_MISMATCH
:
91
return
"Witness program hash mismatch"
;
92
case
SCRIPT_ERR_WITNESS_MALLEATED
:
93
return
"Witness requires empty scriptSig"
;
94
case
SCRIPT_ERR_WITNESS_MALLEATED_P2SH
:
95
return
"Witness requires only-redeemscript scriptSig"
;
96
case
SCRIPT_ERR_WITNESS_UNEXPECTED
:
97
return
"Witness provided for non-witness script"
;
98
case
SCRIPT_ERR_WITNESS_PUBKEYTYPE
:
99
return
"Using non-compressed keys in segwit"
;
100
case
SCRIPT_ERR_SCHNORR_SIG_SIZE
:
101
return
"Invalid Schnorr signature size"
;
102
case
SCRIPT_ERR_SCHNORR_SIG_HASHTYPE
:
103
return
"Invalid Schnorr signature hash type"
;
104
case
SCRIPT_ERR_SCHNORR_SIG
:
105
return
"Invalid Schnorr signature"
;
106
case
SCRIPT_ERR_TAPROOT_WRONG_CONTROL_SIZE
:
107
return
"Invalid Taproot control block size"
;
108
case
SCRIPT_ERR_TAPSCRIPT_VALIDATION_WEIGHT
:
109
return
"Too much signature validation relative to witness weight"
;
110
case
SCRIPT_ERR_TAPSCRIPT_CHECKMULTISIG
:
111
return
"OP_CHECKMULTISIG(VERIFY) is not available in tapscript"
;
112
case
SCRIPT_ERR_TAPSCRIPT_MINIMALIF
:
113
return
"OP_IF/NOTIF argument must be minimal in tapscript"
;
114
case
SCRIPT_ERR_OP_CODESEPARATOR
:
115
return
"Using OP_CODESEPARATOR in non-witness script"
;
116
case
SCRIPT_ERR_SIG_FINDANDDELETE
:
117
return
"Signature is found in scriptCode"
;
118
case
SCRIPT_ERR_UNKNOWN_ERROR
:
119
case
SCRIPT_ERR_ERROR_COUNT
:
120
default
:
break
;
121
}
122
return
"unknown error"
;
123
}
SCRIPT_ERR_STACK_SIZE
Definition:
script_error.h:22
SCRIPT_ERR_SIG_PUSHONLY
Definition:
script_error.h:48
SCRIPT_ERR_SCHNORR_SIG_HASHTYPE
Definition:
script_error.h:74
SCRIPT_ERR_WITNESS_PROGRAM_WRONG_LENGTH
Definition:
script_error.h:64
SCRIPT_ERR_CLEANSTACK
Definition:
script_error.h:52
SCRIPT_ERR_VERIFY
Definition:
script_error.h:27
SCRIPT_ERR_INVALID_STACK_OPERATION
Definition:
script_error.h:36
ScriptError
enum ScriptError_t ScriptError
SCRIPT_ERR_DISCOURAGE_UPGRADABLE_NOPS
Definition:
script_error.h:57
SCRIPT_ERR_DISCOURAGE_UPGRADABLE_TAPROOT_VERSION
Definition:
script_error.h:59
SCRIPT_ERR_UNKNOWN_ERROR
Definition:
script_error.h:14
SCRIPT_ERR_SIG_NULLFAIL
Definition:
script_error.h:54
SCRIPT_ERR_SIG_COUNT
Definition:
script_error.h:23
SCRIPT_ERR_SIG_HIGH_S
Definition:
script_error.h:49
SCRIPT_ERR_NUMEQUALVERIFY
Definition:
script_error.h:31
SCRIPT_ERR_OP_CODESEPARATOR
Definition:
script_error.h:82
SCRIPT_ERR_DISCOURAGE_OP_SUCCESS
Definition:
script_error.h:60
SCRIPT_ERR_TAPROOT_WRONG_CONTROL_SIZE
Definition:
script_error.h:76
SCRIPT_ERR_UNSATISFIED_LOCKTIME
Definition:
script_error.h:42
SCRIPT_ERR_TAPSCRIPT_MINIMALIF
Definition:
script_error.h:79
SCRIPT_ERR_SCRIPT_SIZE
Definition:
script_error.h:19
SCRIPT_ERR_DISABLED_OPCODE
Definition:
script_error.h:35
SCRIPT_ERR_DISCOURAGE_UPGRADABLE_WITNESS_PROGRAM
Definition:
script_error.h:58
SCRIPT_ERR_ERROR_COUNT
Definition:
script_error.h:85
SCRIPT_ERR_WITNESS_MALLEATED
Definition:
script_error.h:67
SCRIPT_ERR_SIG_HASHTYPE
Definition:
script_error.h:45
SCRIPT_ERR_OP_COUNT
Definition:
script_error.h:21
SCRIPT_ERR_DISCOURAGE_UPGRADABLE_PUBKEYTYPE
Definition:
script_error.h:61
SCRIPT_ERR_OK
Definition:
script_error.h:13
SCRIPT_ERR_TAPSCRIPT_CHECKMULTISIG
Definition:
script_error.h:78
SCRIPT_ERR_WITNESS_PROGRAM_MISMATCH
Definition:
script_error.h:66
SCRIPT_ERR_CHECKSIGVERIFY
Definition:
script_error.h:30
SCRIPT_ERR_TAPSCRIPT_VALIDATION_WEIGHT
Definition:
script_error.h:77
SCRIPT_ERR_WITNESS_PUBKEYTYPE
Definition:
script_error.h:70
ScriptErrorString
std::string ScriptErrorString(const ScriptError serror)
Definition:
script_error.cpp:10
SCRIPT_ERR_PUBKEY_COUNT
Definition:
script_error.h:24
SCRIPT_ERR_EVAL_FALSE
Definition:
script_error.h:15
SCRIPT_ERR_PUBKEYTYPE
Definition:
script_error.h:51
SCRIPT_ERR_BAD_OPCODE
Definition:
script_error.h:34
SCRIPT_ERR_MINIMALDATA
Definition:
script_error.h:47
SCRIPT_ERR_WITNESS_MALLEATED_P2SH
Definition:
script_error.h:68
script_error.h
SCRIPT_ERR_EQUALVERIFY
Definition:
script_error.h:28
SCRIPT_ERR_OP_RETURN
Definition:
script_error.h:16
SCRIPT_ERR_SIG_FINDANDDELETE
Definition:
script_error.h:83
SCRIPT_ERR_INVALID_ALTSTACK_OPERATION
Definition:
script_error.h:37
SCRIPT_ERR_NEGATIVE_LOCKTIME
Definition:
script_error.h:41
SCRIPT_ERR_SCHNORR_SIG_SIZE
Definition:
script_error.h:73
SCRIPT_ERR_CHECKMULTISIGVERIFY
Definition:
script_error.h:29
SCRIPT_ERR_SIG_DER
Definition:
script_error.h:46
SCRIPT_ERR_PUSH_SIZE
Definition:
script_error.h:20
SCRIPT_ERR_WITNESS_PROGRAM_WITNESS_EMPTY
Definition:
script_error.h:65
SCRIPT_ERR_WITNESS_UNEXPECTED
Definition:
script_error.h:69
SCRIPT_ERR_SCHNORR_SIG
Definition:
script_error.h:75
SCRIPT_ERR_SIG_NULLDUMMY
Definition:
script_error.h:50
SCRIPT_ERR_MINIMALIF
Definition:
script_error.h:53
SCRIPT_ERR_UNBALANCED_CONDITIONAL
Definition:
script_error.h:38
Generated on Fri Apr 30 2021 13:53:44 for Bitcoin Core by
1.8.8