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