@@ -77,7 +77,7 @@ static std::vector<std::vector<CDeterministicMNCPtr>> GetQuorumQuarterMembersByS
7777 const Consensus::LLMQParams& llmqParams, CDeterministicMNManager& dmnman,
7878 const CBlockIndex* pCycleQuorumBaseBlockIndex, const llmq::CQuorumSnapshot& snapshot, int nHeight);
7979static std::pair<std::vector<CDeterministicMNCPtr>, std::vector<CDeterministicMNCPtr>> GetMNUsageBySnapshot (
80- const Consensus::LLMQParams& llmqParams, CDeterministicMNManager& dmnman ,
80+ const Consensus::LLMQParams& llmqParams, const CDeterministicMNList& mn_list ,
8181 const CBlockIndex* pCycleQuorumBaseBlockIndex, const llmq::CQuorumSnapshot& snapshot, int nHeight);
8282
8383static void BuildQuorumSnapshot (const Consensus::LLMQParams& llmqParams, const CDeterministicMNList& allMns,
@@ -617,7 +617,12 @@ std::vector<std::vector<CDeterministicMNCPtr>> GetQuorumQuarterMembersBySnapshot
617617 std::vector<CDeterministicMNCPtr> sortedCombinedMns;
618618 {
619619 const auto modifier = GetHashModifier (llmqParams, pCycleQuorumBaseBlockIndex);
620- auto [MnsUsedAtH, MnsNotUsedAtH] = GetMNUsageBySnapshot (llmqParams, dmnman, pCycleQuorumBaseBlockIndex,
620+
621+ const CBlockIndex* pWorkBlockIndex = pCycleQuorumBaseBlockIndex->GetAncestor (
622+ pCycleQuorumBaseBlockIndex->nHeight - 8 );
623+ auto mn_list = dmnman.GetListForBlock (pWorkBlockIndex);
624+
625+ auto [MnsUsedAtH, MnsNotUsedAtH] = GetMNUsageBySnapshot (llmqParams, mn_list, pCycleQuorumBaseBlockIndex,
621626 snapshot, nHeight);
622627 // the list begins with all the unused MNs
623628 sortedCombinedMns = CalculateQuorum (std::move (MnsNotUsedAtH), modifier);
@@ -700,7 +705,7 @@ std::vector<std::vector<CDeterministicMNCPtr>> GetQuorumQuarterMembersBySnapshot
700705}
701706
702707static std::pair<std::vector<CDeterministicMNCPtr>, std::vector<CDeterministicMNCPtr>> GetMNUsageBySnapshot (
703- const Consensus::LLMQParams& llmqParams, CDeterministicMNManager& dmnman ,
708+ const Consensus::LLMQParams& llmqParams, const CDeterministicMNList& mn_list ,
704709 const CBlockIndex* pCycleQuorumBaseBlockIndex, const llmq::CQuorumSnapshot& snapshot, int nHeight)
705710{
706711 if (!llmqParams.useRotation || pCycleQuorumBaseBlockIndex->nHeight % llmqParams.dkgInterval != 0 ) {
@@ -711,11 +716,8 @@ static std::pair<std::vector<CDeterministicMNCPtr>, std::vector<CDeterministicMN
711716 std::vector<CDeterministicMNCPtr> usedMNs;
712717 std::vector<CDeterministicMNCPtr> nonUsedMNs;
713718
714- const CBlockIndex* pWorkBlockIndex = pCycleQuorumBaseBlockIndex->GetAncestor (pCycleQuorumBaseBlockIndex->nHeight - 8 );
715719 const auto modifier = GetHashModifier (llmqParams, pCycleQuorumBaseBlockIndex);
716-
717- auto allMns = dmnman.GetListForBlock (pWorkBlockIndex);
718- auto sortedAllMns = CalculateQuorum (allMns, modifier);
720+ auto sortedAllMns = CalculateQuorum (mn_list, modifier);
719721
720722 size_t i{0 };
721723 for (const auto & dmn : sortedAllMns) {
0 commit comments