Browse Source

Disable enforced coinbase protection in miner_tests.

pull/4/head
Sean Bowe 8 years ago
parent
commit
d212ba320b
  1. 5
      src/main.cpp
  2. 3
      src/main.h
  3. 2
      src/test/miner_tests.cpp

5
src/main.cpp

@ -62,6 +62,7 @@ bool fPruneMode = false;
bool fIsBareMultisigStd = true;
bool fCheckBlockIndex = false;
bool fCheckpointsEnabled = true;
bool fCoinbaseEnforcedProtectionEnabled = true;
size_t nCoinCacheUsage = 5000 * 300;
uint64_t nPruneTarget = 0;
bool fAlerts = DEFAULT_ALERTS;
@ -1631,7 +1632,9 @@ bool NonContextualCheckInputs(const CTransaction& tx, CValidationState &state, c
if (coins->IsCoinBase()) {
// Ensure that coinbases cannot be spent to transparent outputs
// Disabled on regtest
if (consensusParams.fCoinbaseMustBeProtected && !tx.vout.empty()) {
if (fCoinbaseEnforcedProtectionEnabled &&
consensusParams.fCoinbaseMustBeProtected &&
!tx.vout.empty()) {
return state.Invalid(
error("CheckInputs(): tried to spend coinbase with transparent outputs"),
REJECT_INVALID, "bad-txns-coinbase-spend-has-transparent-outputs");

3
src/main.h

@ -116,6 +116,9 @@ extern bool fTxIndex;
extern bool fIsBareMultisigStd;
extern bool fCheckBlockIndex;
extern bool fCheckpointsEnabled;
// TODO: remove this flag by structuring our code such that
// it is unneeded for testing
extern bool fCoinbaseEnforcedProtectionEnabled;
extern size_t nCoinCacheUsage;
extern CFeeRate minRelayTxFee;
extern bool fAlerts;

2
src/test/miner_tests.cpp

@ -147,6 +147,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
LOCK(cs_main);
fCheckpointsEnabled = false;
fCoinbaseEnforcedProtectionEnabled = false;
// We can't make transactions until we have inputs
// Therefore, load 100 blocks :)
@ -417,6 +418,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
delete tx;
fCheckpointsEnabled = true;
fCoinbaseEnforcedProtectionEnabled = true;
}
BOOST_AUTO_TEST_SUITE_END()

Loading…
Cancel
Save