Bitcoin Core
21.99.0
P2P Digital Currency
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 Jan 15 2021 20:03:30 for Bitcoin Core by
1.8.13