diff --git a/src/test/minerfund_tests.cpp b/src/test/minerfund_tests.cpp --- a/src/test/minerfund_tests.cpp +++ b/src/test/minerfund_tests.cpp @@ -6,8 +6,10 @@ #include #include +#include #include // For DecodeDestination +#include #include #include @@ -18,7 +20,7 @@ CheckWhitelist(const Consensus::Params &consensusParams, const CBlockIndex *pindexPrev, const std::unordered_set - expectedWhitelist) { + &expectedWhitelist) { auto whitelist = GetMinerFundWhitelist(consensusParams, pindexPrev); BOOST_CHECK_EQUAL(whitelist.size(), expectedWhitelist.size()); for (const auto &expectedDest : expectedWhitelist) { @@ -30,7 +32,15 @@ const CChainParams &chainparams = Params(); const Consensus::Params &consensusParams = chainparams.GetConsensus(); - CBlockIndex block; + std::array blocks; + for (size_t i = 1; i < blocks.size(); ++i) { + blocks[i].pprev = &blocks[i - 1]; + } + CBlockIndex &block = blocks.back(); + + const auto activation = gArgs.GetIntArg( + "-wellingtonactivationtime", consensusParams.wellingtonActivationTime); + SetMTP(blocks, activation - 100000); // Consensus whitelist has not activated yet block.nHeight = consensusParams.axionHeight - 1; @@ -53,6 +63,15 @@ "ecash:prfhcnyqnl5cgrnmlfmms675w93ld7mvvqd0y8lz07", chainparams)}; block.nHeight = consensusParams.gluonHeight; CheckWhitelist(consensusParams, &block, expectedMinerFund); + + // Test address does not change around Wellington activation + SetMTP(blocks, activation - 1); + BOOST_CHECK(!IsWellingtonEnabled(consensusParams, &blocks.back())); + CheckWhitelist(consensusParams, &block, expectedMinerFund); + + SetMTP(blocks, activation); + BOOST_CHECK(IsWellingtonEnabled(consensusParams, &blocks.back())); + CheckWhitelist(consensusParams, &block, expectedMinerFund); } BOOST_AUTO_TEST_SUITE_END()