Skip to content

Commit da29ecb

Browse files
committed
Consensus: MOVEONLY: Move CValidationState from main consensus/validation
1 parent 27afcd8 commit da29ecb

16 files changed

+101
-81
lines changed

src/Makefile.am

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ BITCOIN_CORE_H = \
9292
compressor.h \
9393
consensus/consensus.h \
9494
consensus/params.h \
95+
consensus/validation.h \
9596
core_io.h \
9697
eccryptoverify.h \
9798
ecwrapper.h \

src/consensus/validation.h

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
// Copyright (c) 2009-2010 Satoshi Nakamoto
2+
// Copyright (c) 2009-2014 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_CONSENSUS_VALIDATION_H
7+
#define BITCOIN_CONSENSUS_VALIDATION_H
8+
9+
#include <string>
10+
11+
/** "reject" message codes */
12+
static const unsigned char REJECT_MALFORMED = 0x01;
13+
static const unsigned char REJECT_INVALID = 0x10;
14+
static const unsigned char REJECT_OBSOLETE = 0x11;
15+
static const unsigned char REJECT_DUPLICATE = 0x12;
16+
static const unsigned char REJECT_NONSTANDARD = 0x40;
17+
static const unsigned char REJECT_DUST = 0x41;
18+
static const unsigned char REJECT_INSUFFICIENTFEE = 0x42;
19+
static const unsigned char REJECT_CHECKPOINT = 0x43;
20+
21+
/** Capture information about block/transaction validation */
22+
class CValidationState {
23+
private:
24+
enum mode_state {
25+
MODE_VALID, //! everything ok
26+
MODE_INVALID, //! network rule violation (DoS value may be set)
27+
MODE_ERROR, //! run-time error
28+
} mode;
29+
int nDoS;
30+
std::string strRejectReason;
31+
unsigned char chRejectCode;
32+
bool corruptionPossible;
33+
public:
34+
CValidationState() : mode(MODE_VALID), nDoS(0), chRejectCode(0), corruptionPossible(false) {}
35+
bool DoS(int level, bool ret = false,
36+
unsigned char chRejectCodeIn=0, std::string strRejectReasonIn="",
37+
bool corruptionIn=false) {
38+
chRejectCode = chRejectCodeIn;
39+
strRejectReason = strRejectReasonIn;
40+
corruptionPossible = corruptionIn;
41+
if (mode == MODE_ERROR)
42+
return ret;
43+
nDoS += level;
44+
mode = MODE_INVALID;
45+
return ret;
46+
}
47+
bool Invalid(bool ret = false,
48+
unsigned char _chRejectCode=0, std::string _strRejectReason="") {
49+
return DoS(0, ret, _chRejectCode, _strRejectReason);
50+
}
51+
bool Error(std::string strRejectReasonIn="") {
52+
if (mode == MODE_VALID)
53+
strRejectReason = strRejectReasonIn;
54+
mode = MODE_ERROR;
55+
return false;
56+
}
57+
bool IsValid() const {
58+
return mode == MODE_VALID;
59+
}
60+
bool IsInvalid() const {
61+
return mode == MODE_INVALID;
62+
}
63+
bool IsError() const {
64+
return mode == MODE_ERROR;
65+
}
66+
bool IsInvalid(int &nDoSOut) const {
67+
if (IsInvalid()) {
68+
nDoSOut = nDoS;
69+
return true;
70+
}
71+
return false;
72+
}
73+
bool CorruptionPossible() const {
74+
return corruptionPossible;
75+
}
76+
unsigned char GetRejectCode() const { return chRejectCode; }
77+
std::string GetRejectReason() const { return strRejectReason; }
78+
};
79+
80+
#endif // BITCOIN_CONSENSUS_VALIDATION_H

src/init.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "amount.h"
1414
#include "checkpoints.h"
1515
#include "compat/sanity.h"
16+
#include "consensus/validation.h"
1617
#include "key.h"
1718
#include "main.h"
1819
#include "miner.h"

src/main.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include "chainparams.h"
1212
#include "checkpoints.h"
1313
#include "checkqueue.h"
14+
#include "consensus/validation.h"
1415
#include "init.h"
1516
#include "merkleblock.h"
1617
#include "net.h"

src/main.h

Lines changed: 0 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -89,16 +89,6 @@ static const unsigned int DATABASE_FLUSH_INTERVAL = 24 * 60 * 60;
8989
/** Maximum length of reject messages. */
9090
static const unsigned int MAX_REJECT_MESSAGE_LENGTH = 111;
9191

92-
/** "reject" message codes */
93-
static const unsigned char REJECT_MALFORMED = 0x01;
94-
static const unsigned char REJECT_INVALID = 0x10;
95-
static const unsigned char REJECT_OBSOLETE = 0x11;
96-
static const unsigned char REJECT_DUPLICATE = 0x12;
97-
static const unsigned char REJECT_NONSTANDARD = 0x40;
98-
static const unsigned char REJECT_DUST = 0x41;
99-
static const unsigned char REJECT_INSUFFICIENTFEE = 0x42;
100-
static const unsigned char REJECT_CHECKPOINT = 0x43;
101-
10292
struct BlockHasher
10393
{
10494
size_t operator()(const uint256& hash) const { return hash.GetCheapHash(); }
@@ -457,65 +447,6 @@ class CBlockFileInfo
457447
}
458448
};
459449

460-
/** Capture information about block/transaction validation */
461-
class CValidationState {
462-
private:
463-
enum mode_state {
464-
MODE_VALID, //! everything ok
465-
MODE_INVALID, //! network rule violation (DoS value may be set)
466-
MODE_ERROR, //! run-time error
467-
} mode;
468-
int nDoS;
469-
std::string strRejectReason;
470-
unsigned char chRejectCode;
471-
bool corruptionPossible;
472-
public:
473-
CValidationState() : mode(MODE_VALID), nDoS(0), chRejectCode(0), corruptionPossible(false) {}
474-
bool DoS(int level, bool ret = false,
475-
unsigned char chRejectCodeIn=0, std::string strRejectReasonIn="",
476-
bool corruptionIn=false) {
477-
chRejectCode = chRejectCodeIn;
478-
strRejectReason = strRejectReasonIn;
479-
corruptionPossible = corruptionIn;
480-
if (mode == MODE_ERROR)
481-
return ret;
482-
nDoS += level;
483-
mode = MODE_INVALID;
484-
return ret;
485-
}
486-
bool Invalid(bool ret = false,
487-
unsigned char _chRejectCode=0, std::string _strRejectReason="") {
488-
return DoS(0, ret, _chRejectCode, _strRejectReason);
489-
}
490-
bool Error(std::string strRejectReasonIn="") {
491-
if (mode == MODE_VALID)
492-
strRejectReason = strRejectReasonIn;
493-
mode = MODE_ERROR;
494-
return false;
495-
}
496-
bool IsValid() const {
497-
return mode == MODE_VALID;
498-
}
499-
bool IsInvalid() const {
500-
return mode == MODE_INVALID;
501-
}
502-
bool IsError() const {
503-
return mode == MODE_ERROR;
504-
}
505-
bool IsInvalid(int &nDoSOut) const {
506-
if (IsInvalid()) {
507-
nDoSOut = nDoS;
508-
return true;
509-
}
510-
return false;
511-
}
512-
bool CorruptionPossible() const {
513-
return corruptionPossible;
514-
}
515-
unsigned char GetRejectCode() const { return chRejectCode; }
516-
std::string GetRejectReason() const { return strRejectReason; }
517-
};
518-
519450
/** RAII wrapper for VerifyDB: Verify consistency of the block and coin databases */
520451
class CVerifyDB {
521452
public:

src/miner.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "amount.h"
99
#include "chainparams.h"
1010
#include "consensus/consensus.h"
11+
#include "consensus/validation.h"
1112
#include "hash.h"
1213
#include "main.h"
1314
#include "net.h"

src/rpcblockchain.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
55

66
#include "checkpoints.h"
7+
#include "consensus/validation.h"
78
#include "main.h"
9+
#include "primitives/transaction.h"
810
#include "rpcserver.h"
911
#include "sync.h"
1012
#include "util.h"

src/rpcmining.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "amount.h"
77
#include "chainparams.h"
88
#include "consensus/consensus.h"
9+
#include "consensus/validation.h"
910
#include "core_io.h"
1011
#include "init.h"
1112
#include "main.h"

src/rpcrawtransaction.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@
44
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
55

66
#include "base58.h"
7-
#include "primitives/transaction.h"
7+
#include "consensus/validation.h"
88
#include "core_io.h"
99
#include "init.h"
1010
#include "keystore.h"
1111
#include "main.h"
1212
#include "merkleblock.h"
1313
#include "net.h"
14+
#include "primitives/transaction.h"
1415
#include "rpcserver.h"
1516
#include "script/script.h"
1617
#include "script/script_error.h"

src/test/checkblock_tests.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,11 @@
22
// Distributed under the MIT software license, see the accompanying
33
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
44

5-
//
6-
// Unit tests for block.CheckBlock()
7-
//
8-
9-
10-
115
#include "clientversion.h"
6+
#include "consensus/validation.h"
127
#include "main.h"
13-
#include "utiltime.h"
148
#include "test/test_bitcoin.h"
9+
#include "utiltime.h"
1510

1611
#include <cstdio>
1712

0 commit comments

Comments
 (0)