forked from KomodoPlatform/komodo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Consensus: MOVEONLY: Move CValidationState from main consensus/valida…
…tion
- Loading branch information
Showing
16 changed files
with
101 additions
and
81 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
// Copyright (c) 2009-2010 Satoshi Nakamoto | ||
// Copyright (c) 2009-2014 The Bitcoin Core developers | ||
// Distributed under the MIT software license, see the accompanying | ||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||
|
||
#ifndef BITCOIN_CONSENSUS_VALIDATION_H | ||
#define BITCOIN_CONSENSUS_VALIDATION_H | ||
|
||
#include <string> | ||
|
||
/** "reject" message codes */ | ||
static const unsigned char REJECT_MALFORMED = 0x01; | ||
static const unsigned char REJECT_INVALID = 0x10; | ||
static const unsigned char REJECT_OBSOLETE = 0x11; | ||
static const unsigned char REJECT_DUPLICATE = 0x12; | ||
static const unsigned char REJECT_NONSTANDARD = 0x40; | ||
static const unsigned char REJECT_DUST = 0x41; | ||
static const unsigned char REJECT_INSUFFICIENTFEE = 0x42; | ||
static const unsigned char REJECT_CHECKPOINT = 0x43; | ||
|
||
/** Capture information about block/transaction validation */ | ||
class CValidationState { | ||
private: | ||
enum mode_state { | ||
MODE_VALID, //! everything ok | ||
MODE_INVALID, //! network rule violation (DoS value may be set) | ||
MODE_ERROR, //! run-time error | ||
} mode; | ||
int nDoS; | ||
std::string strRejectReason; | ||
unsigned char chRejectCode; | ||
bool corruptionPossible; | ||
public: | ||
CValidationState() : mode(MODE_VALID), nDoS(0), chRejectCode(0), corruptionPossible(false) {} | ||
bool DoS(int level, bool ret = false, | ||
unsigned char chRejectCodeIn=0, std::string strRejectReasonIn="", | ||
bool corruptionIn=false) { | ||
chRejectCode = chRejectCodeIn; | ||
strRejectReason = strRejectReasonIn; | ||
corruptionPossible = corruptionIn; | ||
if (mode == MODE_ERROR) | ||
return ret; | ||
nDoS += level; | ||
mode = MODE_INVALID; | ||
return ret; | ||
} | ||
bool Invalid(bool ret = false, | ||
unsigned char _chRejectCode=0, std::string _strRejectReason="") { | ||
return DoS(0, ret, _chRejectCode, _strRejectReason); | ||
} | ||
bool Error(std::string strRejectReasonIn="") { | ||
if (mode == MODE_VALID) | ||
strRejectReason = strRejectReasonIn; | ||
mode = MODE_ERROR; | ||
return false; | ||
} | ||
bool IsValid() const { | ||
return mode == MODE_VALID; | ||
} | ||
bool IsInvalid() const { | ||
return mode == MODE_INVALID; | ||
} | ||
bool IsError() const { | ||
return mode == MODE_ERROR; | ||
} | ||
bool IsInvalid(int &nDoSOut) const { | ||
if (IsInvalid()) { | ||
nDoSOut = nDoS; | ||
return true; | ||
} | ||
return false; | ||
} | ||
bool CorruptionPossible() const { | ||
return corruptionPossible; | ||
} | ||
unsigned char GetRejectCode() const { return chRejectCode; } | ||
std::string GetRejectReason() const { return strRejectReason; } | ||
}; | ||
|
||
#endif // BITCOIN_CONSENSUS_VALIDATION_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters