Skip to content

Commit e9d5a59

Browse files
committed
[validation] Remove REJECT code from CValidationState
We no longer send BIP 61 REJECT messages, so there's no need to set a REJECT code in the CValidationState object.
1 parent 0053e16 commit e9d5a59

File tree

5 files changed

+72
-96
lines changed

5 files changed

+72
-96
lines changed

src/consensus/tx_check.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,24 @@ bool CheckTransaction(const CTransaction& tx, CValidationState &state, bool fChe
1111
{
1212
// Basic checks that don't depend on any context
1313
if (tx.vin.empty())
14-
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, REJECT_INVALID, "bad-txns-vin-empty");
14+
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, "bad-txns-vin-empty");
1515
if (tx.vout.empty())
16-
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, REJECT_INVALID, "bad-txns-vout-empty");
16+
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, "bad-txns-vout-empty");
1717
// Size limits (this doesn't take the witness into account, as that hasn't been checked for malleability)
1818
if (::GetSerializeSize(tx, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS) * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT)
19-
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, REJECT_INVALID, "bad-txns-oversize");
19+
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, "bad-txns-oversize");
2020

2121
// Check for negative or overflow output values (see CVE-2010-5139)
2222
CAmount nValueOut = 0;
2323
for (const auto& txout : tx.vout)
2424
{
2525
if (txout.nValue < 0)
26-
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, REJECT_INVALID, "bad-txns-vout-negative");
26+
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, "bad-txns-vout-negative");
2727
if (txout.nValue > MAX_MONEY)
28-
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, REJECT_INVALID, "bad-txns-vout-toolarge");
28+
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, "bad-txns-vout-toolarge");
2929
nValueOut += txout.nValue;
3030
if (!MoneyRange(nValueOut))
31-
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, REJECT_INVALID, "bad-txns-txouttotal-toolarge");
31+
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, "bad-txns-txouttotal-toolarge");
3232
}
3333

3434
// Check for duplicate inputs - note that this check is slow so we skip it in CheckBlock
@@ -37,20 +37,20 @@ bool CheckTransaction(const CTransaction& tx, CValidationState &state, bool fChe
3737
for (const auto& txin : tx.vin)
3838
{
3939
if (!vInOutPoints.insert(txin.prevout).second)
40-
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, REJECT_INVALID, "bad-txns-inputs-duplicate");
40+
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, "bad-txns-inputs-duplicate");
4141
}
4242
}
4343

4444
if (tx.IsCoinBase())
4545
{
4646
if (tx.vin[0].scriptSig.size() < 2 || tx.vin[0].scriptSig.size() > 100)
47-
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, REJECT_INVALID, "bad-cb-length");
47+
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, "bad-cb-length");
4848
}
4949
else
5050
{
5151
for (const auto& txin : tx.vin)
5252
if (txin.prevout.IsNull())
53-
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, REJECT_INVALID, "bad-txns-prevout-null");
53+
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, "bad-txns-prevout-null");
5454
}
5555

5656
return true;

src/consensus/tx_verify.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ bool Consensus::CheckTxInputs(const CTransaction& tx, CValidationState& state, c
160160
{
161161
// are the actual inputs available?
162162
if (!inputs.HaveInputs(tx)) {
163-
return state.Invalid(ValidationInvalidReason::TX_MISSING_INPUTS, false, REJECT_INVALID, "bad-txns-inputs-missingorspent",
163+
return state.Invalid(ValidationInvalidReason::TX_MISSING_INPUTS, false, "bad-txns-inputs-missingorspent",
164164
strprintf("%s: inputs missing/spent", __func__));
165165
}
166166

@@ -172,27 +172,27 @@ bool Consensus::CheckTxInputs(const CTransaction& tx, CValidationState& state, c
172172

173173
// If prev is coinbase, check that it's matured
174174
if (coin.IsCoinBase() && nSpendHeight - coin.nHeight < COINBASE_MATURITY) {
175-
return state.Invalid(ValidationInvalidReason::TX_PREMATURE_SPEND, false, REJECT_INVALID, "bad-txns-premature-spend-of-coinbase",
175+
return state.Invalid(ValidationInvalidReason::TX_PREMATURE_SPEND, false, "bad-txns-premature-spend-of-coinbase",
176176
strprintf("tried to spend coinbase at depth %d", nSpendHeight - coin.nHeight));
177177
}
178178

179179
// Check for negative or overflow input values
180180
nValueIn += coin.out.nValue;
181181
if (!MoneyRange(coin.out.nValue) || !MoneyRange(nValueIn)) {
182-
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, REJECT_INVALID, "bad-txns-inputvalues-outofrange");
182+
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, "bad-txns-inputvalues-outofrange");
183183
}
184184
}
185185

186186
const CAmount value_out = tx.GetValueOut();
187187
if (nValueIn < value_out) {
188-
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, REJECT_INVALID, "bad-txns-in-belowout",
188+
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, "bad-txns-in-belowout",
189189
strprintf("value in (%s) < value out (%s)", FormatMoney(nValueIn), FormatMoney(value_out)));
190190
}
191191

192192
// Tally transaction fees
193193
const CAmount txfee_aux = nValueIn - value_out;
194194
if (!MoneyRange(txfee_aux)) {
195-
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, REJECT_INVALID, "bad-txns-fee-outofrange");
195+
return state.Invalid(ValidationInvalidReason::CONSENSUS, false, "bad-txns-fee-outofrange");
196196
}
197197

198198
txfee = txfee_aux;

src/consensus/validation.h

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,8 @@
1212
#include <primitives/transaction.h>
1313
#include <primitives/block.h>
1414

15-
/** "reject" message codes */
16-
static const unsigned char REJECT_MALFORMED = 0x01;
17-
static const unsigned char REJECT_INVALID = 0x10;
18-
static const unsigned char REJECT_OBSOLETE = 0x11;
19-
static const unsigned char REJECT_DUPLICATE = 0x12;
20-
static const unsigned char REJECT_NONSTANDARD = 0x40;
21-
// static const unsigned char REJECT_DUST = 0x41; // part of BIP 61
22-
static const unsigned char REJECT_INSUFFICIENTFEE = 0x42;
23-
static const unsigned char REJECT_CHECKPOINT = 0x43;
24-
2515
/** A "reason" why something was invalid, suitable for determining whether the
2616
* provider of the object should be banned/ignored/disconnected/etc.
27-
* These are much more granular than the rejection codes, which may be more
28-
* useful for some other use-cases.
2917
*/
3018
enum class ValidationInvalidReason {
3119
// txn and blocks:
@@ -104,15 +92,13 @@ class CValidationState {
10492
} mode;
10593
ValidationInvalidReason m_reason;
10694
std::string strRejectReason;
107-
unsigned int chRejectCode;
10895
std::string strDebugMessage;
10996
public:
110-
CValidationState() : mode(MODE_VALID), m_reason(ValidationInvalidReason::NONE), chRejectCode(0) {}
97+
CValidationState() : mode(MODE_VALID), m_reason(ValidationInvalidReason::NONE) {}
11198
bool Invalid(ValidationInvalidReason reasonIn, bool ret = false,
112-
unsigned int chRejectCodeIn=0, const std::string &strRejectReasonIn="",
99+
const std::string &strRejectReasonIn="",
113100
const std::string &strDebugMessageIn="") {
114101
m_reason = reasonIn;
115-
chRejectCode = chRejectCodeIn;
116102
strRejectReason = strRejectReasonIn;
117103
strDebugMessage = strDebugMessageIn;
118104
if (mode == MODE_ERROR)
@@ -136,7 +122,6 @@ class CValidationState {
136122
return mode == MODE_ERROR;
137123
}
138124
ValidationInvalidReason GetReason() const { return m_reason; }
139-
unsigned int GetRejectCode() const { return chRejectCode; }
140125
std::string GetRejectReason() const { return strRejectReason; }
141126
std::string GetDebugMessage() const { return strDebugMessage; }
142127
};

0 commit comments

Comments
 (0)