Skip to content
Open
17 changes: 8 additions & 9 deletions src/active/context.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,13 @@
#include <validation.h>

ActiveContext::ActiveContext(CBLSWorker& bls_worker, ChainstateManager& chainman, CConnman& connman,
CDeterministicMNManager& dmnman, CGovernanceManager& govman,
CMasternodeMetaMan& mn_metaman, CMNHFManager& mnhfman, CSporkManager& sporkman,
CTxMemPool& mempool, llmq::CChainLocksHandler& clhandler, llmq::CInstantSendManager& isman,
llmq::CQuorumBlockProcessor& qblockman, llmq::CQuorumManager& qman,
llmq::CQuorumSnapshotManager& qsnapman, llmq::CSigningManager& sigman,
PeerManager& peerman, const CMasternodeSync& mn_sync, const CBLSSecretKey& operator_sk,
const llmq::QvvecSyncModeMap& sync_map, const util::DbWrapperParams& db_params,
bool quorums_recovery, bool quorums_watch) :
CDeterministicMNManager& dmnman, CGovernanceManager& govman, CMasternodeMetaMan& mn_metaman,
CSporkManager& sporkman, CTxMemPool& mempool, llmq::CChainLocksHandler& clhandler,
llmq::CInstantSendManager& isman, llmq::CQuorumBlockProcessor& qblockman,
llmq::CQuorumManager& qman, llmq::CQuorumSnapshotManager& qsnapman,
llmq::CSigningManager& sigman, PeerManager& peerman, const CMasternodeSync& mn_sync,
const CBLSSecretKey& operator_sk, const llmq::QvvecSyncModeMap& sync_map,
const util::DbWrapperParams& db_params, bool quorums_recovery, bool quorums_watch) :
m_clhandler{clhandler},
m_isman{isman},
m_qman{qman},
Expand All @@ -41,7 +40,7 @@ ActiveContext::ActiveContext(CBLSWorker& bls_worker, ChainstateManager& chainman
shareman{std::make_unique<llmq::CSigSharesManager>(connman, chainman.ActiveChainstate(), sigman, peerman, *nodeman,
qman, sporkman)},
gov_signer{std::make_unique<GovernanceSigner>(connman, dmnman, govman, *nodeman, chainman, mn_sync)},
ehf_sighandler{std::make_unique<llmq::CEHFSignalsHandler>(chainman, mnhfman, sigman, *shareman, qman)},
ehf_sighandler{std::make_unique<llmq::CEHFSignalsHandler>(chainman, sigman, *shareman, qman)},
qman_handler{std::make_unique<llmq::QuorumParticipant>(bls_worker, connman, dmnman, qman, qsnapman, *nodeman, chainman,
mn_sync, sporkman, sync_map, quorums_recovery, quorums_watch)},
cl_signer{std::make_unique<chainlock::ChainLockSigner>(chainman.ActiveChainstate(), clhandler, sigman, *shareman,
Expand Down
13 changes: 6 additions & 7 deletions src/active/context.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,12 @@ struct ActiveContext final : public CValidationInterface {
ActiveContext& operator=(const ActiveContext&) = delete;
explicit ActiveContext(CBLSWorker& bls_worker, ChainstateManager& chainman, CConnman& connman,
CDeterministicMNManager& dmnman, CGovernanceManager& govman, CMasternodeMetaMan& mn_metaman,
CMNHFManager& mnhfman, CSporkManager& sporkman, CTxMemPool& mempool,
llmq::CChainLocksHandler& clhandler, llmq::CInstantSendManager& isman,
llmq::CQuorumBlockProcessor& qblockman, llmq::CQuorumManager& qman,
llmq::CQuorumSnapshotManager& qsnapman, llmq::CSigningManager& sigman, PeerManager& peerman,
const CMasternodeSync& mn_sync, const CBLSSecretKey& operator_sk,
const llmq::QvvecSyncModeMap& sync_map, const util::DbWrapperParams& db_params,
bool quorums_recovery, bool quorums_watch);
CSporkManager& sporkman, CTxMemPool& mempool, llmq::CChainLocksHandler& clhandler,
llmq::CInstantSendManager& isman, llmq::CQuorumBlockProcessor& qblockman,
llmq::CQuorumManager& qman, llmq::CQuorumSnapshotManager& qsnapman,
llmq::CSigningManager& sigman, PeerManager& peerman, const CMasternodeSync& mn_sync,
const CBLSSecretKey& operator_sk, const llmq::QvvecSyncModeMap& sync_map,
const util::DbWrapperParams& db_params, bool quorums_recovery, bool quorums_watch);
~ActiveContext();

void Interrupt();
Expand Down
24 changes: 16 additions & 8 deletions src/evo/chainhelper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,26 @@
#include <chainparams.h>

#include <chainlock/chainlock.h>
#include <evo/creditpool.h>
#include <evo/mnhftx.h>
#include <evo/specialtxman.h>
#include <instantsend/instantsend.h>
#include <instantsend/lock.h>
#include <masternode/payments.h>

CChainstateHelper::CChainstateHelper(CCreditPoolManager& cpoolman, CDeterministicMNManager& dmnman,
CMNHFManager& mnhfman, CGovernanceManager& govman, llmq::CInstantSendManager& isman,
llmq::CQuorumBlockProcessor& qblockman, llmq::CQuorumSnapshotManager& qsnapman,
const ChainstateManager& chainman, const Consensus::Params& consensus_params,
const CMasternodeSync& mn_sync, const CSporkManager& sporkman,
const llmq::CChainLocksHandler& clhandler, const llmq::CQuorumManager& qman) :
CChainstateHelper::CChainstateHelper(CEvoDB& evodb, CDeterministicMNManager& dmnman, CGovernanceManager& govman,
llmq::CInstantSendManager& isman, llmq::CQuorumBlockProcessor& qblockman,
llmq::CQuorumSnapshotManager& qsnapman, const ChainstateManager& chainman,
const Consensus::Params& consensus_params, const CMasternodeSync& mn_sync,
const CSporkManager& sporkman, const llmq::CChainLocksHandler& clhandler,
const llmq::CQuorumManager& qman) :
isman{isman},
clhandler{clhandler},
ehf_manager{std::make_unique<CMNHFManager>(evodb, chainman, qman)},
credit_pool_manager{std::make_unique<CCreditPoolManager>(evodb, chainman)},
mn_payments{std::make_unique<CMNPaymentsProcessor>(dmnman, govman, chainman, consensus_params, mn_sync, sporkman)},
special_tx{std::make_unique<CSpecialTxProcessor>(cpoolman, dmnman, mnhfman, qblockman, qsnapman, chainman,
consensus_params, clhandler, qman)}
special_tx{std::make_unique<CSpecialTxProcessor>(*credit_pool_manager, dmnman, *ehf_manager, qblockman, qsnapman,
chainman, consensus_params, clhandler, qman)}
{}

CChainstateHelper::~CChainstateHelper() = default;
Expand Down Expand Up @@ -61,3 +65,7 @@ bool CChainstateHelper::RemoveConflictingISLockByTx(const CTransaction& tx)

bool CChainstateHelper::ShouldInstantSendRejectConflicts() const { return isman.RejectConflictingBlocks(); }

std::unordered_map<uint8_t, int> CChainstateHelper::GetSignalsStage(const CBlockIndex* const pindexPrev)
{
return ehf_manager->GetSignalsStage(pindexPrev);
}
19 changes: 13 additions & 6 deletions src/evo/chainhelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@

#include <memory>
#include <optional>
#include <unordered_map>

class CBlockIndex;
class CCreditPoolManager;
class CDeterministicMNManager;
class CEvoDB;
class ChainstateManager;
class CMNHFManager;
class CMNPaymentsProcessor;
Expand Down Expand Up @@ -39,12 +42,12 @@ class CChainstateHelper
CChainstateHelper() = delete;
CChainstateHelper(const CChainstateHelper&) = delete;
CChainstateHelper& operator=(const CChainstateHelper&) = delete;
explicit CChainstateHelper(CCreditPoolManager& cpoolman, CDeterministicMNManager& dmnman, CMNHFManager& mnhfman,
CGovernanceManager& govman, llmq::CInstantSendManager& isman,
llmq::CQuorumBlockProcessor& qblockman, llmq::CQuorumSnapshotManager& qsnapman,
const ChainstateManager& chainman, const Consensus::Params& consensus_params,
const CMasternodeSync& mn_sync, const CSporkManager& sporkman,
const llmq::CChainLocksHandler& clhandler, const llmq::CQuorumManager& qman);
explicit CChainstateHelper(CEvoDB& evodb, CDeterministicMNManager& dmnman, CGovernanceManager& govman,
llmq::CInstantSendManager& isman, llmq::CQuorumBlockProcessor& qblockman,
llmq::CQuorumSnapshotManager& qsnapman, const ChainstateManager& chainman,
const Consensus::Params& consensus_params, const CMasternodeSync& mn_sync,
const CSporkManager& sporkman, const llmq::CChainLocksHandler& clhandler,
const llmq::CQuorumManager& qman);
~CChainstateHelper();

/** Passthrough functions to CChainLocksHandler */
Expand All @@ -58,7 +61,11 @@ class CChainstateHelper
bool RemoveConflictingISLockByTx(const CTransaction& tx);
bool ShouldInstantSendRejectConflicts() const;

std::unordered_map<uint8_t, int> GetSignalsStage(const CBlockIndex* const pindexPrev);

public:
const std::unique_ptr<CMNHFManager> ehf_manager;
const std::unique_ptr<CCreditPoolManager> credit_pool_manager;
const std::unique_ptr<CMNPaymentsProcessor> mn_payments;
const std::unique_ptr<CSpecialTxProcessor> special_tx;
};
Expand Down
Loading
Loading