Skip to content

Commit 208b1c0

Browse files
committed
refactor: drop usage of chainstate globals in masternode logic
1 parent 303c6bb commit 208b1c0

14 files changed

+61
-50
lines changed

src/evo/mnauth.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ void CMNAuth::PushMNAUTH(CNode& peer, CConnman& connman, const CActiveMasternode
6161
}
6262

6363
PeerMsgRet CMNAuth::ProcessMessage(CNode& peer, CConnman& connman, CMasternodeMetaMan& mn_metaman, const CActiveMasternodeManager* const mn_activeman,
64-
const CMasternodeSync& mn_sync, const CDeterministicMNList& tip_mn_list, std::string_view msg_type, CDataStream& vRecv)
64+
const CChain& active_chain, const CMasternodeSync& mn_sync, const CDeterministicMNList& tip_mn_list,
65+
std::string_view msg_type, CDataStream& vRecv)
6566
{
6667
assert(mn_metaman.IsValid());
6768

@@ -105,7 +106,7 @@ PeerMsgRet CMNAuth::ProcessMessage(CNode& peer, CConnman& connman, CMasternodeMe
105106
if (Params().NetworkIDString() != CBaseChainParams::MAIN && gArgs.IsArgSet("-pushversion")) {
106107
nOurNodeVersion = gArgs.GetArg("-pushversion", PROTOCOL_VERSION);
107108
}
108-
const CBlockIndex* tip = ::ChainActive().Tip();
109+
const CBlockIndex* tip = active_chain.Tip();
109110
const bool is_basic_scheme_active{DeploymentActiveAfter(tip, Params().GetConsensus(), Consensus::DEPLOYMENT_V19)};
110111
ConstCBLSPublicKeyVersionWrapper pubKey(dmn->pdmnState->pubKeyOperator.Get(), !is_basic_scheme_active);
111112
// See comment in PushMNAUTH (fInbound is negated here as we're on the other side of the connection)

src/evo/mnauth.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
class CActiveMasternodeManager;
1313
class CBlockIndex;
14+
class CChain;
1415
class CConnman;
1516
class CDataStream;
1617
class CDeterministicMN;
@@ -59,7 +60,8 @@ class CMNAuth
5960
* attempting to call this function regardless of sync state
6061
*/
6162
static PeerMsgRet ProcessMessage(CNode& peer, CConnman& connman, CMasternodeMetaMan& mn_metaman, const CActiveMasternodeManager* const mn_activeman,
62-
const CMasternodeSync& mn_sync, const CDeterministicMNList& tip_mn_list, std::string_view msg_type, CDataStream& vRecv);
63+
const CChain& active_chain, const CMasternodeSync& mn_sync, const CDeterministicMNList& tip_mn_list,
64+
std::string_view msg_type, CDataStream& vRecv);
6365
static void NotifyMasternodeListChanged(bool undo, const CDeterministicMNList& oldMNList, const CDeterministicMNListDiff& diff, CConnman& connman);
6466
};
6567

src/evo/mnhftx.cpp

+11-10
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ bool MNHFTx::Verify(const llmq::CQuorumManager& qman, const uint256& quorumHash,
101101
return true;
102102
}
103103

104-
bool CheckMNHFTx(const llmq::CQuorumManager& qman, const CTransaction& tx, const CBlockIndex* pindexPrev, TxValidationState& state)
104+
bool CheckMNHFTx(const ChainstateManager& chainman, const llmq::CQuorumManager& qman, const CTransaction& tx, const CBlockIndex* pindexPrev, TxValidationState& state)
105105
{
106106
if (!tx.IsSpecialTxVersion() || tx.nType != TRANSACTION_MNHF_SIGNAL) {
107107
return state.Invalid(TxValidationResult::TX_CONSENSUS, "bad-mnhf-type");
@@ -116,7 +116,7 @@ bool CheckMNHFTx(const llmq::CQuorumManager& qman, const CTransaction& tx, const
116116
return state.Invalid(TxValidationResult::TX_CONSENSUS, "bad-mnhf-version");
117117
}
118118

119-
const CBlockIndex* pindexQuorum = WITH_LOCK(::cs_main, return g_chainman.m_blockman.LookupBlockIndex(mnhfTx.signal.quorumHash));
119+
const CBlockIndex* pindexQuorum = WITH_LOCK(::cs_main, return chainman.m_blockman.LookupBlockIndex(mnhfTx.signal.quorumHash));
120120
if (!pindexQuorum) {
121121
return state.Invalid(TxValidationResult::TX_CONSENSUS, "bad-mnhf-quorum-hash");
122122
}
@@ -160,7 +160,7 @@ std::optional<uint8_t> extractEHFSignal(const CTransaction& tx)
160160
return opt_mnhfTx->signal.versionBit;
161161
}
162162

163-
static bool extractSignals(const llmq::CQuorumManager& qman, const CBlock& block, const CBlockIndex* const pindex, std::vector<uint8_t>& new_signals, BlockValidationState& state)
163+
static bool extractSignals(const ChainstateManager& chainman, const llmq::CQuorumManager& qman, const CBlock& block, const CBlockIndex* const pindex, std::vector<uint8_t>& new_signals, BlockValidationState& state)
164164
{
165165
// we skip the coinbase
166166
for (size_t i = 1; i < block.vtx.size(); ++i) {
@@ -172,7 +172,7 @@ static bool extractSignals(const llmq::CQuorumManager& qman, const CBlock& block
172172
}
173173

174174
TxValidationState tx_state;
175-
if (!CheckMNHFTx(qman, tx, pindex, tx_state)) {
175+
if (!CheckMNHFTx(chainman, qman, tx, pindex, tx_state)) {
176176
return state.Invalid(BlockValidationResult::BLOCK_CONSENSUS, tx_state.GetRejectReason(), tx_state.GetDebugMessage());
177177
}
178178

@@ -192,11 +192,11 @@ static bool extractSignals(const llmq::CQuorumManager& qman, const CBlock& block
192192

193193
std::optional<CMNHFManager::Signals> CMNHFManager::ProcessBlock(const CBlock& block, const CBlockIndex* const pindex, bool fJustCheck, BlockValidationState& state)
194194
{
195-
assert(m_qman);
195+
assert(m_chainman && m_qman);
196196

197197
try {
198198
std::vector<uint8_t> new_signals;
199-
if (!extractSignals(*m_qman, block, pindex, new_signals, state)) {
199+
if (!extractSignals(*m_chainman, *m_qman, block, pindex, new_signals, state)) {
200200
// state is set inside extractSignals
201201
return std::nullopt;
202202
}
@@ -246,11 +246,11 @@ std::optional<CMNHFManager::Signals> CMNHFManager::ProcessBlock(const CBlock& bl
246246

247247
bool CMNHFManager::UndoBlock(const CBlock& block, const CBlockIndex* const pindex)
248248
{
249-
assert(m_qman);
249+
assert(m_chainman && m_qman);
250250

251251
std::vector<uint8_t> excluded_signals;
252252
BlockValidationState state;
253-
if (!extractSignals(*m_qman, block, pindex, excluded_signals, state)) {
253+
if (!extractSignals(*m_chainman, *m_qman, block, pindex, excluded_signals, state)) {
254254
LogPrintf("CMNHFManager::%s: failed to extract signals\n", __func__);
255255
return false;
256256
}
@@ -354,10 +354,11 @@ void CMNHFManager::AddSignal(const CBlockIndex* const pindex, int bit)
354354
AddToCache(signals, pindex);
355355
}
356356

357-
void CMNHFManager::ConnectManagers(gsl::not_null<llmq::CQuorumManager*> qman)
357+
void CMNHFManager::ConnectManagers(gsl::not_null<ChainstateManager*> chainman, gsl::not_null<llmq::CQuorumManager*> qman)
358358
{
359359
// Do not allow double-initialization
360-
assert(m_qman == nullptr);
360+
assert(m_chainman == nullptr && m_qman == nullptr);
361+
m_chainman = chainman;
361362
m_qman = qman;
362363
}
363364

src/evo/mnhftx.h

+5-3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class BlockValidationState;
2222
class CBlock;
2323
class CBlockIndex;
2424
class CEvoDB;
25+
class ChainstateManager;
2526
class TxValidationState;
2627
namespace llmq {
2728
class CQuorumManager;
@@ -100,6 +101,7 @@ class CMNHFManager : public AbstractEHFManager
100101
{
101102
private:
102103
CEvoDB& m_evoDb;
104+
ChainstateManager* m_chainman{nullptr};
103105
llmq::CQuorumManager* m_qman{nullptr};
104106

105107
static constexpr size_t MNHFCacheSize = 1000;
@@ -147,14 +149,14 @@ class CMNHFManager : public AbstractEHFManager
147149
* Separated from constructor to allow LLMQContext to use CMNHFManager in read-only capacity.
148150
* Required to mutate state.
149151
*/
150-
void ConnectManagers(gsl::not_null<llmq::CQuorumManager*> qman);
152+
void ConnectManagers(gsl::not_null<ChainstateManager*> chainman, gsl::not_null<llmq::CQuorumManager*> qman);
151153

152154
/**
153155
* Reset llmq::CQuorumManager pointer.
154156
*
155157
* @pre Must be called before LLMQContext (containing llmq::CQuorumManager) is destroyed.
156158
*/
157-
void DisconnectManagers() { m_qman = nullptr; };
159+
void DisconnectManagers() { m_chainman = nullptr; m_qman = nullptr; };
158160

159161
private:
160162
void AddToCache(const Signals& signals, const CBlockIndex* const pindex);
@@ -175,6 +177,6 @@ class CMNHFManager : public AbstractEHFManager
175177
};
176178

177179
std::optional<uint8_t> extractEHFSignal(const CTransaction& tx);
178-
bool CheckMNHFTx(const llmq::CQuorumManager& qman, const CTransaction& tx, const CBlockIndex* pindexPrev, TxValidationState& state);
180+
bool CheckMNHFTx(const ChainstateManager& chainman, const llmq::CQuorumManager& qman, const CTransaction& tx, const CBlockIndex* pindexPrev, TxValidationState& state);
179181

180182
#endif // BITCOIN_EVO_MNHFTX_H

src/evo/simplifiedmns.cpp

+8-8
Original file line numberDiff line numberDiff line change
@@ -316,29 +316,29 @@ CSimplifiedMNListDiff BuildSimplifiedDiff(const CDeterministicMNList& from, cons
316316
return diffRet;
317317
}
318318

319-
bool BuildSimplifiedMNListDiff(const uint256& baseBlockHash, const uint256& blockHash, CSimplifiedMNListDiff& mnListDiffRet,
320-
CDeterministicMNManager& dmnman, const llmq::CQuorumBlockProcessor& quorum_block_processor, const llmq::CQuorumManager& qman,
321-
std::string& errorRet, bool extended)
319+
bool BuildSimplifiedMNListDiff(CDeterministicMNManager& dmnman, const ChainstateManager& chainman, const llmq::CQuorumBlockProcessor& qblockman,
320+
const llmq::CQuorumManager& qman, const uint256& baseBlockHash, const uint256& blockHash,
321+
CSimplifiedMNListDiff& mnListDiffRet, std::string& errorRet, bool extended)
322322
{
323323
AssertLockHeld(cs_main);
324324
mnListDiffRet = CSimplifiedMNListDiff();
325325

326-
const CBlockIndex* baseBlockIndex = ::ChainActive().Genesis();
326+
const CBlockIndex* baseBlockIndex = chainman.ActiveChain().Genesis();
327327
if (!baseBlockHash.IsNull()) {
328-
baseBlockIndex = g_chainman.m_blockman.LookupBlockIndex(baseBlockHash);
328+
baseBlockIndex = chainman.m_blockman.LookupBlockIndex(baseBlockHash);
329329
if (!baseBlockIndex) {
330330
errorRet = strprintf("block %s not found", baseBlockHash.ToString());
331331
return false;
332332
}
333333
}
334334

335-
const CBlockIndex* blockIndex = g_chainman.m_blockman.LookupBlockIndex(blockHash);
335+
const CBlockIndex* blockIndex = chainman.m_blockman.LookupBlockIndex(blockHash);
336336
if (!blockIndex) {
337337
errorRet = strprintf("block %s not found", blockHash.ToString());
338338
return false;
339339
}
340340

341-
if (!::ChainActive().Contains(baseBlockIndex) || !::ChainActive().Contains(blockIndex)) {
341+
if (!chainman.ActiveChain().Contains(baseBlockIndex) || !chainman.ActiveChain().Contains(blockIndex)) {
342342
errorRet = strprintf("block %s and %s are not in the same chain", baseBlockHash.ToString(), blockHash.ToString());
343343
return false;
344344
}
@@ -356,7 +356,7 @@ bool BuildSimplifiedMNListDiff(const uint256& baseBlockHash, const uint256& bloc
356356
// null block hash was provided to get the diff from the genesis block.
357357
mnListDiffRet.baseBlockHash = baseBlockHash;
358358

359-
if (!mnListDiffRet.BuildQuorumsDiff(baseBlockIndex, blockIndex, quorum_block_processor)) {
359+
if (!mnListDiffRet.BuildQuorumsDiff(baseBlockIndex, blockIndex, qblockman)) {
360360
errorRet = strprintf("failed to build quorums diff");
361361
return false;
362362
}

src/evo/simplifiedmns.h

+4-3
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class UniValue;
1616
class CBlockIndex;
1717
class CDeterministicMNList;
1818
class CDeterministicMN;
19+
class ChainstateManager;
1920

2021
namespace llmq {
2122
class CFinalCommitment;
@@ -170,8 +171,8 @@ class CSimplifiedMNListDiff
170171
[[nodiscard]] UniValue ToJson(bool extended = false) const;
171172
};
172173

173-
bool BuildSimplifiedMNListDiff(const uint256& baseBlockHash, const uint256& blockHash, CSimplifiedMNListDiff& mnListDiffRet,
174-
CDeterministicMNManager& dmnman, const llmq::CQuorumBlockProcessor& quorum_block_processor, const llmq::CQuorumManager& qman,
175-
std::string& errorRet, bool extended = false);
174+
bool BuildSimplifiedMNListDiff(CDeterministicMNManager& dmnman, const ChainstateManager& chainman, const llmq::CQuorumBlockProcessor& qblockman,
175+
const llmq::CQuorumManager& qman, const uint256& baseBlockHash, const uint256& blockHash,
176+
CSimplifiedMNListDiff& mnListDiffRet, std::string& errorRet, bool extended = false);
176177

177178
#endif // BITCOIN_EVO_SIMPLIFIEDMNS_H

src/evo/specialtxman.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ static bool CheckSpecialTxInner(CDeterministicMNManager& dmnman, const Chainstat
5151
if (!DeploymentActiveAfter(pindexPrev, consensusParams, Consensus::DEPLOYMENT_V20)) {
5252
return state.Invalid(TxValidationResult::TX_CONSENSUS, "mnhf-before-v20");
5353
}
54-
return CheckMNHFTx(qman, tx, pindexPrev, state);
54+
return CheckMNHFTx(chainman, qman, tx, pindexPrev, state);
5555
case TRANSACTION_ASSET_LOCK:
5656
if (!DeploymentActiveAfter(pindexPrev, consensusParams, Consensus::DEPLOYMENT_V20)) {
5757
return state.Invalid(TxValidationResult::TX_CONSENSUS, "assetlocks-before-v20");

src/init.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2016,7 +2016,7 @@ bool AppInitMain(const CoreContext& context, NodeContext& node, interfaces::Bloc
20162016
node.llmq_ctx = std::make_unique<LLMQContext>(chainman.ActiveChainstate(), *node.connman, *node.dmnman, *node.evodb, *node.mn_metaman, *node.mnhf_manager, *node.sporkman,
20172017
*node.mempool, node.mn_activeman.get(), *node.mn_sync, node.peerman, /* unit_tests = */ false, /* wipe = */ fReset || fReindexChainState);
20182018
// Enable CMNHFManager::{Process, Undo}Block
2019-
node.mnhf_manager->ConnectManagers(node.llmq_ctx->qman.get());
2019+
node.mnhf_manager->ConnectManagers(node.chainman, node.llmq_ctx->qman.get());
20202020
// Have to start it early to let VerifyDB check ChainLock signatures in coinbase
20212021
node.llmq_ctx->Start();
20222022

src/llmq/snapshot.cpp

+12-12
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,9 @@ UniValue CQuorumRotationInfo::ToJson() const
8585
return obj;
8686
}
8787

88-
bool BuildQuorumRotationInfo(const CGetQuorumRotationInfo& request, CQuorumRotationInfo& response,
89-
CDeterministicMNManager& dmnman, const ChainstateManager& chainman, const CQuorumManager& qman,
90-
const CQuorumBlockProcessor& quorum_block_processor, std::string& errorRet)
88+
bool BuildQuorumRotationInfo(CDeterministicMNManager& dmnman, const ChainstateManager& chainman, const CQuorumManager& qman,
89+
const CQuorumBlockProcessor& qblockman, const CGetQuorumRotationInfo& request,
90+
CQuorumRotationInfo& response, std::string& errorRet)
9191
{
9292
AssertLockHeld(cs_main);
9393

@@ -123,7 +123,7 @@ bool BuildQuorumRotationInfo(const CGetQuorumRotationInfo& request, CQuorumRotat
123123
return false;
124124
}
125125
//Build MN list Diff always with highest baseblock
126-
if (!BuildSimplifiedMNListDiff(baseBlockIndexes.back()->GetBlockHash(), tipBlockIndex->GetBlockHash(), response.mnListDiffTip, dmnman, quorum_block_processor, qman, errorRet)) {
126+
if (!BuildSimplifiedMNListDiff(dmnman, chainman, qblockman, qman, baseBlockIndexes.back()->GetBlockHash(), tipBlockIndex->GetBlockHash(), response.mnListDiffTip, errorRet)) {
127127
return false;
128128
}
129129

@@ -156,7 +156,7 @@ bool BuildQuorumRotationInfo(const CGetQuorumRotationInfo& request, CQuorumRotat
156156
}
157157

158158
//Build MN list Diff always with highest baseblock
159-
if (!BuildSimplifiedMNListDiff(GetLastBaseBlockHash(baseBlockIndexes, pWorkBlockIndex), pWorkBlockIndex->GetBlockHash(), response.mnListDiffH, dmnman, quorum_block_processor, qman, errorRet)) {
159+
if (!BuildSimplifiedMNListDiff(dmnman, chainman, qblockman, qman, GetLastBaseBlockHash(baseBlockIndexes, pWorkBlockIndex), pWorkBlockIndex->GetBlockHash(), response.mnListDiffH, errorRet)) {
160160
return false;
161161
}
162162

@@ -202,7 +202,7 @@ bool BuildQuorumRotationInfo(const CGetQuorumRotationInfo& request, CQuorumRotat
202202
const CBlockIndex* pWorkBlockHMinus4CIndex = pBlockHMinus4CIndex->GetAncestor(pBlockHMinus4CIndex->nHeight - workDiff);
203203
//Checked later if extraShare is on
204204

205-
if (!BuildSimplifiedMNListDiff(GetLastBaseBlockHash(baseBlockIndexes, pWorkBlockHMinusCIndex), pWorkBlockHMinusCIndex->GetBlockHash(), response.mnListDiffAtHMinusC, dmnman, quorum_block_processor, qman, errorRet)) {
205+
if (!BuildSimplifiedMNListDiff(dmnman, chainman, qblockman, qman, GetLastBaseBlockHash(baseBlockIndexes, pWorkBlockHMinusCIndex), pWorkBlockHMinusCIndex->GetBlockHash(), response.mnListDiffAtHMinusC, errorRet)) {
206206
return false;
207207
}
208208

@@ -214,7 +214,7 @@ bool BuildQuorumRotationInfo(const CGetQuorumRotationInfo& request, CQuorumRotat
214214
response.quorumSnapshotAtHMinusC = std::move(snapshotHMinusC.value());
215215
}
216216

217-
if (!BuildSimplifiedMNListDiff(GetLastBaseBlockHash(baseBlockIndexes, pWorkBlockHMinus2CIndex), pWorkBlockHMinus2CIndex->GetBlockHash(), response.mnListDiffAtHMinus2C, dmnman, quorum_block_processor, qman, errorRet)) {
217+
if (!BuildSimplifiedMNListDiff(dmnman, chainman, qblockman, qman, GetLastBaseBlockHash(baseBlockIndexes, pWorkBlockHMinus2CIndex), pWorkBlockHMinus2CIndex->GetBlockHash(), response.mnListDiffAtHMinus2C, errorRet)) {
218218
return false;
219219
}
220220

@@ -226,7 +226,7 @@ bool BuildQuorumRotationInfo(const CGetQuorumRotationInfo& request, CQuorumRotat
226226
response.quorumSnapshotAtHMinus2C = std::move(snapshotHMinus2C.value());
227227
}
228228

229-
if (!BuildSimplifiedMNListDiff(GetLastBaseBlockHash(baseBlockIndexes, pWorkBlockHMinus3CIndex), pWorkBlockHMinus3CIndex->GetBlockHash(), response.mnListDiffAtHMinus3C, dmnman, quorum_block_processor, qman, errorRet)) {
229+
if (!BuildSimplifiedMNListDiff(dmnman, chainman, qblockman, qman, GetLastBaseBlockHash(baseBlockIndexes, pWorkBlockHMinus3CIndex), pWorkBlockHMinus3CIndex->GetBlockHash(), response.mnListDiffAtHMinus3C, errorRet)) {
230230
return false;
231231
}
232232

@@ -255,7 +255,7 @@ bool BuildQuorumRotationInfo(const CGetQuorumRotationInfo& request, CQuorumRotat
255255
}
256256

257257
CSimplifiedMNListDiff mn4c;
258-
if (!BuildSimplifiedMNListDiff(GetLastBaseBlockHash(baseBlockIndexes, pWorkBlockHMinus4CIndex), pWorkBlockHMinus4CIndex->GetBlockHash(), mn4c, dmnman, quorum_block_processor, qman, errorRet)) {
258+
if (!BuildSimplifiedMNListDiff(dmnman, chainman, qblockman, qman, GetLastBaseBlockHash(baseBlockIndexes, pWorkBlockHMinus4CIndex), pWorkBlockHMinus4CIndex->GetBlockHash(), mn4c, errorRet)) {
259259
return false;
260260
}
261261

@@ -268,11 +268,11 @@ bool BuildQuorumRotationInfo(const CGetQuorumRotationInfo& request, CQuorumRotat
268268

269269
std::set<int> snapshotHeightsNeeded;
270270

271-
std::vector<std::pair<int, const CBlockIndex*>> qdata = quorum_block_processor.GetLastMinedCommitmentsPerQuorumIndexUntilBlock(llmqType, blockIndex, 0);
271+
std::vector<std::pair<int, const CBlockIndex*>> qdata = qblockman.GetLastMinedCommitmentsPerQuorumIndexUntilBlock(llmqType, blockIndex, 0);
272272

273273
for (const auto& obj : qdata) {
274274
uint256 minedBlockHash;
275-
llmq::CFinalCommitmentPtr qc = quorum_block_processor.GetMinedCommitment(llmqType, obj.second->GetBlockHash(), minedBlockHash);
275+
llmq::CFinalCommitmentPtr qc = qblockman.GetMinedCommitment(llmqType, obj.second->GetBlockHash(), minedBlockHash);
276276
if (qc == nullptr) {
277277
return false;
278278
}
@@ -311,7 +311,7 @@ bool BuildQuorumRotationInfo(const CGetQuorumRotationInfo& request, CQuorumRotat
311311
}
312312

313313
CSimplifiedMNListDiff mnhneeded;
314-
if (!BuildSimplifiedMNListDiff(GetLastBaseBlockHash(baseBlockIndexes, pNeededWorkBlockIndex), pNeededWorkBlockIndex->GetBlockHash(), mnhneeded, dmnman, quorum_block_processor, qman, errorRet)) {
314+
if (!BuildSimplifiedMNListDiff(dmnman, chainman, qblockman, qman, GetLastBaseBlockHash(baseBlockIndexes, pNeededWorkBlockIndex), pNeededWorkBlockIndex->GetBlockHash(), mnhneeded, errorRet)) {
315315
return false;
316316
}
317317

src/llmq/snapshot.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -207,9 +207,9 @@ class CQuorumRotationInfo
207207
[[nodiscard]] UniValue ToJson() const;
208208
};
209209

210-
bool BuildQuorumRotationInfo(const CGetQuorumRotationInfo& request, CQuorumRotationInfo& response,
211-
CDeterministicMNManager& dmnman, const ChainstateManager& chainman, const CQuorumManager& qman,
212-
const CQuorumBlockProcessor& quorumBlockProcessor, std::string& errorRet);
210+
bool BuildQuorumRotationInfo(CDeterministicMNManager& dmnman, const ChainstateManager& chainman, const CQuorumManager& qman,
211+
const CQuorumBlockProcessor& qblockman, const CGetQuorumRotationInfo& request,
212+
CQuorumRotationInfo& response, std::string& errorRet);
213213
uint256 GetLastBaseBlockHash(Span<const CBlockIndex*> baseBlockIndexes, const CBlockIndex* blockIndex);
214214

215215
class CQuorumSnapshotManager

0 commit comments

Comments
 (0)