aboutsummaryrefslogtreecommitdiff
path: root/src/chainparams.h
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2014-10-02 09:47:53 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2014-10-02 09:47:54 +0200
commitad51e14583fbf6d53d5a2b22a0a0dbe4a51a9a7d (patch)
tree5371fd7c8eaaf0260db119f4d334bf8aab256087 /src/chainparams.h
parent3b390723c16d13271ee2675aff013fdd95d39c18 (diff)
parent470590277782cce2fe73275c74523aef59a51eab (diff)
downloadbitcoin-ad51e14583fbf6d53d5a2b22a0a0dbe4a51a9a7d.tar.xz
Merge pull request #4845
4705902 Avoid introducing a virtual into CChainParams (Wladimir J. van der Laan) 5e2e7fc Suggested corrections on comments, variable names. Also new test case testing the PoW skip in UNITTEST. (SergioDemianLerner) a25fd6b Switch testing framework from MAIN to new UNITTEST network (SergioDemianLerner)
Diffstat (limited to 'src/chainparams.h')
-rw-r--r--src/chainparams.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/chainparams.h b/src/chainparams.h
index e5dfc87c6d..50441a89f3 100644
--- a/src/chainparams.h
+++ b/src/chainparams.h
@@ -61,6 +61,8 @@ public:
bool DefaultCheckMemPool() const { return fDefaultCheckMemPool; }
/* Allow mining of a min-difficulty block */
bool AllowMinDifficultyBlocks() const { return fAllowMinDifficultyBlocks; }
+ /* Skip proof-of-work check: allow mining of any difficulty block */
+ bool SkipProofOfWorkCheck() const { return fSkipProofOfWorkCheck; }
/* Make standard checks */
bool RequireStandard() const { return fRequireStandard; }
int64_t TargetTimespan() const { return nTargetTimespan; }
@@ -103,8 +105,27 @@ protected:
bool fAllowMinDifficultyBlocks;
bool fRequireStandard;
bool fMineBlocksOnDemand;
+ bool fSkipProofOfWorkCheck;
};
+/** Modifiable parameters interface is used by test cases to adapt the parameters in order
+*** to test specific features more easily. Test cases should always restore the previous
+*** values after finalization.
+**/
+
+class CModifiableParams {
+public:
+ // Published setters to allow changing values in unit test cases
+ virtual void setSubsidyHalvingInterval(int anSubsidyHalvingInterval) =0;
+ virtual void setEnforceBlockUpgradeMajority(int anEnforceBlockUpgradeMajority)=0;
+ virtual void setRejectBlockOutdatedMajority(int anRejectBlockOutdatedMajority)=0;
+ virtual void setToCheckBlockUpgradeMajority(int anToCheckBlockUpgradeMajority)=0;
+ virtual void setDefaultCheckMemPool(bool aDefaultCheckMemPool)=0;
+ virtual void setAllowMinDifficultyBlocks(bool aAllowMinDifficultyBlocks)=0;
+ virtual void setSkipProofOfWorkCheck(bool aSkipProofOfWorkCheck)=0;
+};
+
+
/**
* Return the currently selected parameters. This won't change after app startup
* outside of the unit tests.
@@ -114,6 +135,9 @@ const CChainParams &Params();
/** Return parameters for the given network. */
CChainParams &Params(CBaseChainParams::Network network);
+/** Get modifyable network parameters (UNITTEST only) */
+CModifiableParams *ModifiableParams();
+
/** Sets the params returned by Params() to those for the given network. */
void SelectParams(CBaseChainParams::Network network);