Bitcoin ABC
0.22.13
P2P Digital Currency
src
script
script_error.h
Go to the documentation of this file.
1
// Copyright (c) 2009-2010 Satoshi Nakamoto
2
// Copyright (c) 2009-2016 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
#ifndef BITCOIN_SCRIPT_SCRIPT_ERROR_H
7
#define BITCOIN_SCRIPT_SCRIPT_ERROR_H
8
9
enum class
ScriptError
{
10
OK
= 0,
11
UNKNOWN
,
12
EVAL_FALSE
,
13
OP_RETURN
,
14
15
/* Max sizes */
16
SCRIPT_SIZE
,
17
PUSH_SIZE
,
18
OP_COUNT
,
19
STACK_SIZE
,
20
SIG_COUNT
,
21
PUBKEY_COUNT
,
22
INPUT_SIGCHECKS
,
23
24
/* Operands checks */
25
INVALID_OPERAND_SIZE
,
26
INVALID_NUMBER_RANGE
,
27
IMPOSSIBLE_ENCODING
,
28
INVALID_SPLIT_RANGE
,
29
INVALID_BIT_COUNT
,
30
31
/* Failed verify operations */
32
VERIFY
,
33
EQUALVERIFY
,
34
CHECKMULTISIGVERIFY
,
35
CHECKSIGVERIFY
,
36
CHECKDATASIGVERIFY
,
37
NUMEQUALVERIFY
,
38
39
/* Logical/Format/Canonical errors */
40
BAD_OPCODE
,
41
DISABLED_OPCODE
,
42
INVALID_STACK_OPERATION
,
43
INVALID_ALTSTACK_OPERATION
,
44
UNBALANCED_CONDITIONAL
,
45
46
/* Divisor errors */
47
DIV_BY_ZERO
,
48
MOD_BY_ZERO
,
49
50
/* Bitfield errors */
51
INVALID_BITFIELD_SIZE
,
52
INVALID_BIT_RANGE
,
53
54
/* CHECKLOCKTIMEVERIFY and CHECKSEQUENCEVERIFY */
55
NEGATIVE_LOCKTIME
,
56
UNSATISFIED_LOCKTIME
,
57
58
/* Malleability */
59
SIG_HASHTYPE
,
60
SIG_DER
,
61
MINIMALDATA
,
62
SIG_PUSHONLY
,
63
SIG_HIGH_S
,
64
PUBKEYTYPE
,
65
CLEANSTACK
,
66
MINIMALIF
,
67
SIG_NULLFAIL
,
68
69
/* Schnorr */
70
SIG_BADLENGTH
,
71
SIG_NONSCHNORR
,
72
73
/* softfork safeness */
74
DISCOURAGE_UPGRADABLE_NOPS
,
75
76
/* anti replay */
77
ILLEGAL_FORKID
,
78
MUST_USE_FORKID
,
79
80
/* Auxiliary errors (unused by interpreter) */
81
SIGCHECKS_LIMIT_EXCEEDED
,
82
83
ERROR_COUNT
,
84
};
85
86
#define SCRIPT_ERR_LAST ScriptError::ERROR_COUNT
87
88
const
char
*
ScriptErrorString
(
const
ScriptError
error
);
89
90
namespace
{
91
92
inline
bool
set_success(
ScriptError
*ret) {
93
if
(ret) {
94
*ret =
ScriptError::OK
;
95
}
96
return
true
;
97
}
98
99
inline
bool
set_error(
ScriptError
*ret,
const
ScriptError
serror) {
100
if
(ret) {
101
*ret = serror;
102
}
103
return
false
;
104
}
105
106
}
// namespace
107
108
#endif // BITCOIN_SCRIPT_SCRIPT_ERROR_H
ScriptError::UNKNOWN
ScriptError::DISABLED_OPCODE
ScriptError::UNBALANCED_CONDITIONAL
ScriptError::INVALID_OPERAND_SIZE
ScriptError::EQUALVERIFY
ScriptError::INPUT_SIGCHECKS
ScriptError::IMPOSSIBLE_ENCODING
ScriptError::DIV_BY_ZERO
ScriptError::NUMEQUALVERIFY
ScriptErrorString
const char * ScriptErrorString(const ScriptError error)
Definition:
script_error.cpp:8
ScriptError::SCRIPT_SIZE
ScriptError::EVAL_FALSE
ScriptError
ScriptError
Definition:
script_error.h:9
ScriptError::SIG_DER
ScriptError::INVALID_BIT_COUNT
ScriptError::MINIMALIF
ScriptError::MOD_BY_ZERO
ScriptError::OP_COUNT
ScriptError::INVALID_ALTSTACK_OPERATION
ScriptError::INVALID_BIT_RANGE
ScriptError::INVALID_BITFIELD_SIZE
ScriptError::INVALID_NUMBER_RANGE
ScriptError::CHECKDATASIGVERIFY
ScriptError::CHECKMULTISIGVERIFY
ScriptError::INVALID_STACK_OPERATION
ScriptError::ERROR_COUNT
ScriptError::INVALID_SPLIT_RANGE
ScriptError::PUBKEY_COUNT
ScriptError::MUST_USE_FORKID
ScriptError::UNSATISFIED_LOCKTIME
ScriptError::SIG_HASHTYPE
ScriptError::NEGATIVE_LOCKTIME
ScriptError::CLEANSTACK
ScriptError::OP_RETURN
ScriptError::STACK_SIZE
ScriptError::SIG_PUSHONLY
ScriptError::DISCOURAGE_UPGRADABLE_NOPS
ScriptError::SIG_NULLFAIL
ScriptError::CHECKSIGVERIFY
ScriptError::SIG_NONSCHNORR
ScriptError::SIG_BADLENGTH
ScriptError::BAD_OPCODE
ScriptError::OK
ScriptError::MINIMALDATA
ScriptError::VERIFY
ScriptError::PUBKEYTYPE
ScriptError::PUSH_SIZE
error
bool error(const char *fmt, const Args &... args)
Definition:
system.h:47
ScriptError::SIG_HIGH_S
ScriptError::SIG_COUNT
ScriptError::SIGCHECKS_LIMIT_EXCEEDED
ScriptError::ILLEGAL_FORKID
Generated on Tue Jan 26 2021 19:53:14 for Bitcoin ABC by
1.8.13