diff --git a/src/chainparams.cpp b/src/chainparams.cpp --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -137,7 +137,7 @@ consensus.gravitonHeight = 609135; // May 15, 2020 12:00:00 UTC protocol upgrade - consensus.phononActivationTime = 1589544000; + consensus.phononHeight = 635258; // Nov 15, 2020 12:00:00 UTC protocol upgrade consensus.axionActivationTime = 1605441600; @@ -341,7 +341,7 @@ consensus.gravitonHeight = 1341711; // May 15, 2020 12:00:00 UTC protocol upgrade - consensus.phononActivationTime = 1589544000; + consensus.phononHeight = 1378460; // Nov 15, 2020 12:00:00 UTC protocol upgrade consensus.axionActivationTime = 1605441600; @@ -494,7 +494,7 @@ consensus.gravitonHeight = 0; // May 15, 2020 12:00:00 UTC protocol upgrade - consensus.phononActivationTime = 1589544000; + consensus.phononHeight = 0; // Nov 15, 2020 12:00:00 UTC protocol upgrade consensus.axionActivationTime = 1605441600; diff --git a/src/consensus/activation.cpp b/src/consensus/activation.cpp --- a/src/consensus/activation.cpp +++ b/src/consensus/activation.cpp @@ -62,13 +62,17 @@ return IsGravitonEnabled(params, pindexPrev->nHeight); } +static bool IsPhononEnabled(const Consensus::Params ¶ms, int32_t nHeight) { + return nHeight >= params.phononHeight; +} + bool IsPhononEnabled(const Consensus::Params ¶ms, const CBlockIndex *pindexPrev) { if (pindexPrev == nullptr) { return false; } - return pindexPrev->GetMedianTimePast() >= params.phononActivationTime; + return IsPhononEnabled(params, pindexPrev->nHeight); } bool IsAxionEnabled(const Consensus::Params ¶ms, diff --git a/src/consensus/params.h b/src/consensus/params.h --- a/src/consensus/params.h +++ b/src/consensus/params.h @@ -78,8 +78,8 @@ int magneticAnomalyHeight; /** Block height at which the graviton activation becomes active */ int gravitonHeight; - /** Unix time used for MTP activation of 15 May 2020 12:00:00 UTC upgrade */ - int phononActivationTime; + /** Block height at which the phonon activation becomes active */ + int phononHeight; /** Unix time used for MTP activation of 15 Nov 2020 12:00:00 UTC upgrade */ int axionActivationTime; /** Unix time used for MTP activation of 15 May 2021 12:00:00 UTC upgrade */ diff --git a/src/test/activation_tests.cpp b/src/test/activation_tests.cpp --- a/src/test/activation_tests.cpp +++ b/src/test/activation_tests.cpp @@ -42,26 +42,19 @@ } BOOST_AUTO_TEST_CASE(isphononenabled) { - const Consensus::Params ¶ms = Params().GetConsensus(); - const auto activation = params.phononActivationTime; - SetMockTime(activation - 1000000); - - BOOST_CHECK(!IsPhononEnabled(params, nullptr)); + const Consensus::Params &consensus = Params().GetConsensus(); + BOOST_CHECK(!IsPhononEnabled(consensus, nullptr)); - std::array blocks; + std::array blocks; + blocks[0].nHeight = consensus.phononHeight - 2; for (size_t i = 1; i < blocks.size(); ++i) { blocks[i].pprev = &blocks[i - 1]; + blocks[i].nHeight = blocks[i - 1].nHeight + 1; } - BOOST_CHECK(!IsPhononEnabled(params, &blocks.back())); - - SetMTP(blocks, activation - 1); - BOOST_CHECK(!IsPhononEnabled(params, &blocks.back())); - - SetMTP(blocks, activation); - BOOST_CHECK(IsPhononEnabled(params, &blocks.back())); - - SetMTP(blocks, activation + 1); - BOOST_CHECK(IsPhononEnabled(params, &blocks.back())); + BOOST_CHECK(!IsPhononEnabled(consensus, &blocks[0])); + BOOST_CHECK(!IsPhononEnabled(consensus, &blocks[1])); + BOOST_CHECK(IsPhononEnabled(consensus, &blocks[2])); + BOOST_CHECK(IsPhononEnabled(consensus, &blocks[3])); } BOOST_AUTO_TEST_CASE(isaxionenabled) {