@@ -56,7 +56,8 @@ struct PreviousQuorumQuarters {
5656};
5757
5858// Forward declarations
59- static std::vector<CDeterministicMNCPtr> ComputeQuorumMembers (Consensus::LLMQType llmqType, CDeterministicMNManager& dmnman,
59+ static std::vector<CDeterministicMNCPtr> ComputeQuorumMembers (Consensus::LLMQType llmqType,
60+ const CDeterministicMNList& mn_list,
6061 const CBlockIndex* pQuorumBaseBlockIndex);
6162static std::vector<std::vector<CDeterministicMNCPtr>> ComputeQuorumMembersByQuarterRotation (
6263 const Consensus::LLMQParams& llmqParams, CDeterministicMNManager& dmnman, CQuorumSnapshotManager& qsnapman,
@@ -271,15 +272,19 @@ std::vector<CDeterministicMNCPtr> GetAllQuorumMembers(Consensus::LLMQType llmqTy
271272 std::move (q[i]));
272273 }
273274 } else {
274- quorumMembers = ComputeQuorumMembers (llmqType, dmnman, pQuorumBaseBlockIndex);
275+ const CBlockIndex* pWorkBlockIndex = IsV20Active (pQuorumBaseBlockIndex)
276+ ? pQuorumBaseBlockIndex->GetAncestor (pQuorumBaseBlockIndex->nHeight - 8 )
277+ : pQuorumBaseBlockIndex.get ();
278+ CDeterministicMNList mn_list = dmnman.GetListForBlock (pWorkBlockIndex);
279+ quorumMembers = ComputeQuorumMembers (llmqType, mn_list, pQuorumBaseBlockIndex);
275280 }
276281
277282 LOCK (cs_members);
278283 mapQuorumMembers[llmqType].insert (pQuorumBaseBlockIndex->GetBlockHash (), quorumMembers);
279284 return quorumMembers;
280285}
281286
282- std::vector<CDeterministicMNCPtr> ComputeQuorumMembers (Consensus::LLMQType llmqType, CDeterministicMNManager& dmnman ,
287+ std::vector<CDeterministicMNCPtr> ComputeQuorumMembers (Consensus::LLMQType llmqType, const CDeterministicMNList& mn_list ,
283288 const CBlockIndex* pQuorumBaseBlockIndex)
284289{
285290 bool EvoOnly = (Params ().GetConsensus ().llmqTypePlatform == llmqType) && IsV19Active (pQuorumBaseBlockIndex);
@@ -290,12 +295,8 @@ std::vector<CDeterministicMNCPtr> ComputeQuorumMembers(Consensus::LLMQType llmqT
290295 return {};
291296 }
292297
293- const CBlockIndex* pWorkBlockIndex = IsV20Active (pQuorumBaseBlockIndex) ?
294- pQuorumBaseBlockIndex->GetAncestor (pQuorumBaseBlockIndex->nHeight - 8 ) :
295- pQuorumBaseBlockIndex;
296298 const auto modifier = GetHashModifier (llmq_params_opt.value (), pQuorumBaseBlockIndex);
297- auto allMns = dmnman.GetListForBlock (pWorkBlockIndex);
298- return CalculateQuorum (allMns, modifier, llmq_params_opt->size , EvoOnly);
299+ return CalculateQuorum (mn_list, modifier, llmq_params_opt->size , EvoOnly);
299300}
300301
301302std::vector<std::vector<CDeterministicMNCPtr>> ComputeQuorumMembersByQuarterRotation (
0 commit comments