Add field fMinerTestModeForFoundersRewardScript to chainparams

This commit is contained in:
Simon 2016-09-30 18:31:51 -07:00
parent 02acbfc262
commit 2d6e97ecc5
3 changed files with 18 additions and 0 deletions

View File

@ -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());

View File

@ -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() {}

View File

@ -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;