diff --git a/src/pocketdb/consensus/social/Blocking.hpp b/src/pocketdb/consensus/social/Blocking.hpp index b1d1330de..c5adf2a3d 100644 --- a/src/pocketdb/consensus/social/Blocking.hpp +++ b/src/pocketdb/consensus/social/Blocking.hpp @@ -182,6 +182,32 @@ namespace PocketConsensus } }; + class BlockingConsensus_checkpoint_pip_101 : public BlockingConsensus_checkpoint_multiple_blocking + { + public: + BlockingConsensus_checkpoint_pip_101(int height) : BlockingConsensus_checkpoint_multiple_blocking(height) {} + protected: + vector GetAddressesForCheckRegistration(const BlockingRef& ptx) override + { + vector addresses; + + addresses.emplace_back(*ptx->GetAddress()); + + if (!IsEmpty(ptx->GetAddressTo())) + addresses.emplace_back(*ptx->GetAddressTo()); + + if (!IsEmpty(ptx->GetAddressesTo())) + { + UniValue addrs(UniValue::VARR); + addrs.read(*ptx->GetAddressesTo()); + for (size_t i = 0; i < addrs.size(); ++i) + addresses.emplace_back(addrs[i].get_str()); + } + + return addresses; + } + }; + /******************************************************************************************************************* * Factory for select actual rules version *******************************************************************************************************************/ @@ -190,7 +216,8 @@ namespace PocketConsensus protected: const vector> m_rules = { { 0, 0, -1, [](int height) { return make_shared(height); }}, - { 1873500, 1114500, 0, [](int height) { return make_shared(height); }}, + { 1873500, 1114500, -1, [](int height) { return make_shared(height); }}, + { 2360000, 1950500, 0, [](int height) { return make_shared(height); }}, }; public: shared_ptr Instance(int height)