@@ -293,9 +293,10 @@ using PeerRef = std::shared_ptr<Peer>;
293
293
class PeerManagerImpl final : public PeerManager
294
294
{
295
295
public:
296
- PeerManagerImpl (const CChainParams& chainparams, CConnman& connman, CAddrMan& addrman,
297
- BanMan* banman, CScheduler &scheduler, ChainstateManager& chainman,
298
- CTxMemPool& pool, CGovernanceManager& govman, CSporkManager& sporkman,
296
+ PeerManagerImpl (const CChainParams& chainparams, CConnman& connman, CAddrMan& addrman, BanMan* banman,
297
+ CScheduler &scheduler, ChainstateManager& chainman, CTxMemPool& pool,
298
+ CMasternodeMetaMan& mn_metaman, CMasternodeSync& mn_sync,
299
+ CGovernanceManager& govman, CSporkManager& sporkman,
299
300
const std::unique_ptr<CDeterministicMNManager>& dmnman,
300
301
const std::unique_ptr<CJContext>& cj_ctx,
301
302
const std::unique_ptr<LLMQContext>& llmq_ctx,
@@ -418,6 +419,8 @@ class PeerManagerImpl final : public PeerManager
418
419
const std::unique_ptr<CDeterministicMNManager>& m_dmnman;
419
420
const std::unique_ptr<CJContext>& m_cj_ctx;
420
421
const std::unique_ptr<LLMQContext>& m_llmq_ctx;
422
+ CMasternodeMetaMan& m_mn_metaman;
423
+ CMasternodeSync& m_mn_sync;
421
424
CGovernanceManager& m_govman;
422
425
CSporkManager& m_sporkman;
423
426
@@ -1730,18 +1733,22 @@ bool PeerManagerImpl::BlockRequestAllowed(const CBlockIndex* pindex)
1730
1733
1731
1734
std::unique_ptr<PeerManager> PeerManager::make (const CChainParams& chainparams, CConnman& connman, CAddrMan& addrman, BanMan* banman,
1732
1735
CScheduler &scheduler, ChainstateManager& chainman, CTxMemPool& pool,
1736
+ CMasternodeMetaMan& mn_metaman, CMasternodeSync& mn_sync,
1733
1737
CGovernanceManager& govman, CSporkManager& sporkman,
1734
1738
const std::unique_ptr<CDeterministicMNManager>& dmnman,
1735
1739
const std::unique_ptr<CJContext>& cj_ctx,
1736
1740
const std::unique_ptr<LLMQContext>& llmq_ctx, bool ignore_incoming_txs)
1737
1741
{
1738
- return std::make_unique<PeerManagerImpl>(chainparams, connman, addrman, banman, scheduler, chainman, pool, govman, sporkman, dmnman, cj_ctx, llmq_ctx, ignore_incoming_txs);
1742
+ return std::make_unique<PeerManagerImpl>(chainparams, connman, addrman, banman, scheduler, chainman, pool, mn_metaman, mn_sync, govman, sporkman, dmnman, cj_ctx, llmq_ctx, ignore_incoming_txs);
1739
1743
}
1740
1744
1741
1745
PeerManagerImpl::PeerManagerImpl (const CChainParams& chainparams, CConnman& connman, CAddrMan& addrman, BanMan* banman,
1742
1746
CScheduler &scheduler, ChainstateManager& chainman, CTxMemPool& pool,
1743
- CGovernanceManager& govman, CSporkManager& sporkman, const std::unique_ptr<CDeterministicMNManager>& dmnman,
1744
- const std::unique_ptr<CJContext>& cj_ctx, const std::unique_ptr<LLMQContext>& llmq_ctx,
1747
+ CMasternodeMetaMan& mn_metaman, CMasternodeSync& mn_sync,
1748
+ CGovernanceManager& govman, CSporkManager& sporkman,
1749
+ const std::unique_ptr<CDeterministicMNManager>& dmnman,
1750
+ const std::unique_ptr<CJContext>& cj_ctx,
1751
+ const std::unique_ptr<LLMQContext>& llmq_ctx,
1745
1752
bool ignore_incoming_txs)
1746
1753
: m_chainparams(chainparams),
1747
1754
m_connman(connman),
@@ -1752,6 +1759,8 @@ PeerManagerImpl::PeerManagerImpl(const CChainParams& chainparams, CConnman& conn
1752
1759
m_dmnman(dmnman),
1753
1760
m_cj_ctx(cj_ctx),
1754
1761
m_llmq_ctx(llmq_ctx),
1762
+ m_mn_metaman(mn_metaman),
1763
+ m_mn_sync(mn_sync),
1755
1764
m_govman(govman),
1756
1765
m_sporkman(sporkman),
1757
1766
m_ignore_incoming_txs(ignore_incoming_txs)
@@ -2950,9 +2959,9 @@ void PeerManagerImpl::ProcessGetCFCheckPt(CNode& peer, CDataStream& vRecv)
2950
2959
}
2951
2960
2952
2961
std::pair<bool /* ret*/ , bool /* do_return*/ > static ValidateDSTX (CDeterministicMNManager& dmnman, CDSTXManager& dstxman, ChainstateManager& chainman,
2953
- CTxMemPool& mempool, CCoinJoinBroadcastTx& dstx, uint256 hashTx)
2962
+ CMasternodeMetaMan& mn_metaman, CTxMemPool& mempool, CCoinJoinBroadcastTx& dstx, uint256 hashTx)
2954
2963
{
2955
- assert (::mmetaman != nullptr );
2964
+ assert (mn_metaman. IsValid () );
2956
2965
2957
2966
if (!dstx.IsValidStructure ()) {
2958
2967
LogPrint (BCLog::COINJOIN, " DSTX -- Invalid DSTX structure: %s\n " , hashTx.ToString ());
@@ -2996,7 +3005,7 @@ std::pair<bool /*ret*/, bool /*do_return*/> static ValidateDSTX(CDeterministicMN
2996
3005
return {false , true };
2997
3006
}
2998
3007
2999
- if (!mmetaman-> GetMetaInfo (dmn->proTxHash )->IsValidForMixingTxes ()) {
3008
+ if (!mn_metaman. GetMetaInfo (dmn->proTxHash )->IsValidForMixingTxes ()) {
3000
3009
LogPrint (BCLog::COINJOIN, " DSTX -- Masternode %s is sending too many transactions %s\n " , dstx.masternodeOutpoint .ToStringShort (), hashTx.ToString ());
3001
3010
return {true , true };
3002
3011
// TODO: Not an error? Could it be that someone is relaying old DSTXes
@@ -3010,7 +3019,7 @@ std::pair<bool /*ret*/, bool /*do_return*/> static ValidateDSTX(CDeterministicMN
3010
3019
3011
3020
LogPrint (BCLog::COINJOIN, " DSTX -- Got Masternode transaction %s\n " , hashTx.ToString ());
3012
3021
mempool.PrioritiseTransaction (hashTx, 0.1 *COIN);
3013
- mmetaman-> DisallowMixing (dmn->proTxHash );
3022
+ mn_metaman. DisallowMixing (dmn->proTxHash );
3014
3023
3015
3024
return {true , false };
3016
3025
}
@@ -3822,7 +3831,7 @@ void PeerManagerImpl::ProcessMessage(
3822
3831
if (nInvType == MSG_DSTX) {
3823
3832
// Validate DSTX and return bRet if we need to return from here
3824
3833
uint256 hashTx = tx.GetHash ();
3825
- const auto & [bRet, bDoReturn] = ValidateDSTX (*m_dmnman, *(m_cj_ctx->dstxman ), m_chainman, m_mempool, dstx, hashTx);
3834
+ const auto & [bRet, bDoReturn] = ValidateDSTX (*m_dmnman, *(m_cj_ctx->dstxman ), m_chainman, m_mn_metaman, m_mempool, dstx, hashTx);
3826
3835
if (bDoReturn) {
3827
3836
return ;
3828
3837
}
@@ -4614,7 +4623,7 @@ void PeerManagerImpl::ProcessMessage(
4614
4623
#endif // ENABLE_WALLET
4615
4624
ProcessPeerMsgRet (m_cj_ctx->server ->ProcessMessage (pfrom, msg_type, vRecv), pfrom);
4616
4625
ProcessPeerMsgRet (m_sporkman.ProcessMessage (pfrom, m_connman, msg_type, vRecv), pfrom);
4617
- ::masternodeSync-> ProcessMessage (pfrom, msg_type, vRecv);
4626
+ m_mn_sync. ProcessMessage (pfrom, msg_type, vRecv);
4618
4627
ProcessPeerMsgRet (m_govman.ProcessMessage (pfrom, m_connman, msg_type, vRecv), pfrom);
4619
4628
ProcessPeerMsgRet (CMNAuth::ProcessMessage (pfrom, m_connman, m_dmnman->GetListAtChainTip (), msg_type, vRecv), pfrom);
4620
4629
ProcessPeerMsgRet (m_llmq_ctx->quorum_block_processor ->ProcessMessage (pfrom, msg_type, vRecv), pfrom);
0 commit comments