From 2d6e97ecc5b750e83375218cb90eb5b772fa0663 Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 30 Sep 2016 18:31:51 -0700 Subject: [PATCH] Add field fMinerTestModeForFoundersRewardScript to chainparams --- src/chainparams.cpp | 8 ++++++++ src/chainparams.h | 2 ++ src/test/miner_tests.cpp | 8 ++++++++ 3 files changed, 18 insertions(+) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 2237f2f25..1dc41c02c 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -354,6 +354,14 @@ std::string CChainParams::GetFoundersRewardAddressAtHeight(int nHeight) const { CScript CChainParams::GetFoundersRewardScriptAtHeight(int nHeight) const { assert(nHeight > 0 && nHeight <= consensus.GetLastFoundersRewardBlockHeight()); + // #1398 START + // We can remove this code when miner_tests no longer expect this script + if (fMinerTestModeForFoundersRewardScript) { + auto rewardScript = ParseHex("a9146708e6670db0b950dac68031025cc5b63213a49187"); + return CScript(rewardScript.begin(), rewardScript.end()); + } + // #1398 END + CBitcoinAddress address(GetFoundersRewardAddressAtHeight(nHeight).c_str()); assert(address.IsValid()); assert(address.IsScript()); diff --git a/src/chainparams.h b/src/chainparams.h index 2fc92053f..ac9d099ed 100644 --- a/src/chainparams.h +++ b/src/chainparams.h @@ -81,6 +81,8 @@ public: std::string GetFoundersRewardAddressAtHeight(int height) const; CScript GetFoundersRewardScriptAtHeight(int height) const; std::string GetFoundersRewardAddressAtIndex(int i) const; + /** #1398 to return a fixed founders reward script for miner_tests */ + bool fMinerTestModeForFoundersRewardScript = false; protected: CChainParams() {} diff --git a/src/test/miner_tests.cpp b/src/test/miner_tests.cpp index a93a13fdd..7b145c833 100644 --- a/src/test/miner_tests.cpp +++ b/src/test/miner_tests.cpp @@ -137,6 +137,14 @@ struct { // NOTE: These tests rely on CreateNewBlock doing its own self-validation! BOOST_AUTO_TEST_CASE(CreateNewBlock_validity) { + // #1398 START + // Current test data expects to receive a reward script for the address + // 2N2e2FRfP9D1dRN1oRWkH7pbFM69eGNAuQ4 even though the test is run on mainnet + // and not testnet, and there are many founders reward addresses not just one. + // When test data is re-generated, we will no longer need to do this. + Params(CBaseChainParams::MAIN).fMinerTestModeForFoundersRewardScript = true; + // #1398 END + CScript scriptPubKey = CScript() << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f") << OP_CHECKSIG; CBlockTemplate *pblocktemplate; CMutableTransaction tx,tx2;