From 9325db91aece915d7e891b6f50d765f19421d903 Mon Sep 17 00:00:00 2001 From: Kittywhiskers Van Gogh <63189531+kwvg@users.noreply.github.com> Date: Thu, 25 Sep 2025 04:18:07 +0000 Subject: [PATCH 1/4] refactor: consolidate `CDeterministicMNCPtr` definitions --- src/Makefile.am | 1 + src/coinjoin/client.h | 6 ++---- src/evo/deterministicmns.h | 9 +++++---- src/evo/types.h | 14 ++++++++++++++ src/llmq/dkgsession.h | 4 ++-- src/llmq/quorums.h | 12 ++++++------ src/llmq/signing_shares.h | 4 ++-- src/llmq/utils.h | 7 ++++--- src/qt/masternodelist.h | 5 ++--- 9 files changed, 38 insertions(+), 24 deletions(-) create mode 100644 src/evo/types.h diff --git a/src/Makefile.am b/src/Makefile.am index 13854fdeb428..1a3b77a8c311 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -204,6 +204,7 @@ BITCOIN_CORE_H = \ evo/specialtx.h \ evo/specialtx_filter.h \ evo/specialtxman.h \ + evo/types.h \ dsnotificationinterface.h \ governance/governance.h \ governance/classes.h \ diff --git a/src/coinjoin/client.h b/src/coinjoin/client.h index 7d403e33bd36..79dccfc938dd 100644 --- a/src/coinjoin/client.h +++ b/src/coinjoin/client.h @@ -5,8 +5,9 @@ #ifndef BITCOIN_COINJOIN_CLIENT_H #define BITCOIN_COINJOIN_CLIENT_H -#include #include +#include +#include #include #include @@ -21,7 +22,6 @@ class CCoinJoinClientManager; class CCoinJoinClientQueueManager; class CConnman; -class CDeterministicMN; class CDeterministicMNManager; class ChainstateManager; class CMasternodeMetaMan; @@ -33,8 +33,6 @@ class PeerManager; class UniValue; -using CDeterministicMNCPtr = std::shared_ptr; - class CPendingDsaRequest { private: diff --git a/src/evo/deterministicmns.h b/src/evo/deterministicmns.h index 40261a89e347..d9f6dc2fc082 100644 --- a/src/evo/deterministicmns.h +++ b/src/evo/deterministicmns.h @@ -7,17 +7,19 @@ #include +#include +#include +#include + #include #include #include #include -#include -#include -#include #include #include #include +#include #include #include @@ -85,7 +87,6 @@ class CDeterministicMN [[nodiscard]] std::string ToString() const; [[nodiscard]] UniValue ToJson() const; }; -using CDeterministicMNCPtr = std::shared_ptr; class CDeterministicMNListDiff; diff --git a/src/evo/types.h b/src/evo/types.h new file mode 100644 index 000000000000..1bc7a47715bf --- /dev/null +++ b/src/evo/types.h @@ -0,0 +1,14 @@ +// Copyright (c) 2025 The Dash Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_EVO_TYPES_H +#define BITCOIN_EVO_TYPES_H + +#include + +class CDeterministicMN; + +using CDeterministicMNCPtr = std::shared_ptr; + +#endif // BITCOIN_EVO_TYPES_H diff --git a/src/llmq/dkgsession.h b/src/llmq/dkgsession.h index fa56e337f487..33b11d811a14 100644 --- a/src/llmq/dkgsession.h +++ b/src/llmq/dkgsession.h @@ -11,6 +11,8 @@ #include #include #include +#include + #include #include #include @@ -26,8 +28,6 @@ class CMasternodeMetaMan; class CSporkManager; class PeerManager; -using CDeterministicMNCPtr = std::shared_ptr; - namespace llmq { diff --git a/src/llmq/quorums.h b/src/llmq/quorums.h index 12354925a2a9..2273eb22abb9 100644 --- a/src/llmq/quorums.h +++ b/src/llmq/quorums.h @@ -5,18 +5,20 @@ #ifndef BITCOIN_LLMQ_QUORUMS_H #define BITCOIN_LLMQ_QUORUMS_H -#include - #include #include #include -#include +#include +#include +#include + #include #include #include -#include #include +#include + #include #include #include @@ -35,8 +37,6 @@ class CMasternodeSync; class CNode; class CSporkManager; -using CDeterministicMNCPtr = std::shared_ptr; - namespace llmq { enum class VerifyRecSigStatus diff --git a/src/llmq/signing_shares.h b/src/llmq/signing_shares.h index 5a0990180551..b47a41c16a1d 100644 --- a/src/llmq/signing_shares.h +++ b/src/llmq/signing_shares.h @@ -8,6 +8,8 @@ #include #include +#include + #include #include #include @@ -31,8 +33,6 @@ class CDeterministicMN; class CSporkManager; class PeerManager; -using CDeterministicMNCPtr = std::shared_ptr; - namespace llmq { class CSigningManager; diff --git a/src/llmq/utils.h b/src/llmq/utils.h index fd205ccbb635..88ce5d4ee704 100644 --- a/src/llmq/utils.h +++ b/src/llmq/utils.h @@ -6,12 +6,15 @@ #define BITCOIN_LLMQ_UTILS_H #include -#include +#include #include + #include #include #include +#include + #include #include #include @@ -25,8 +28,6 @@ class CDeterministicMNManager; class CMasternodeMetaMan; class CSporkManager; -using CDeterministicMNCPtr = std::shared_ptr; - namespace llmq { class CQuorumSnapshotManager; diff --git a/src/qt/masternodelist.h b/src/qt/masternodelist.h index 34a5c9719381..e6e30bbb8b85 100644 --- a/src/qt/masternodelist.h +++ b/src/qt/masternodelist.h @@ -9,6 +9,8 @@ #include #include +#include + #include #include #include @@ -21,9 +23,6 @@ namespace Ui class MasternodeList; } -class CDeterministicMN; -using CDeterministicMNCPtr = std::shared_ptr; - class ClientModel; class WalletModel; From 44edad9625a7aaa7b14769ce58a675afd01c6adc Mon Sep 17 00:00:00 2001 From: Kittywhiskers Van Gogh <63189531+kwvg@users.noreply.github.com> Date: Thu, 25 Sep 2025 04:22:41 +0000 Subject: [PATCH 2/4] refactor: consolidate `llmq::CQuorum{,C}Ptr` definitions --- src/Makefile.am | 1 + src/llmq/quorums.h | 5 +---- src/llmq/signing.h | 12 ++++++------ src/llmq/types.h | 17 +++++++++++++++++ src/llmq/utils.cpp | 16 ++++++---------- 5 files changed, 31 insertions(+), 20 deletions(-) create mode 100644 src/llmq/types.h diff --git a/src/Makefile.am b/src/Makefile.am index 1a3b77a8c311..ff1d67f26022 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -260,6 +260,7 @@ BITCOIN_CORE_H = \ llmq/signing.h \ llmq/signing_shares.h \ llmq/snapshot.h \ + llmq/types.h \ llmq/utils.h \ logging.h \ logging/timer.h \ diff --git a/src/llmq/quorums.h b/src/llmq/quorums.h index 2273eb22abb9..3f38f0cb2570 100644 --- a/src/llmq/quorums.h +++ b/src/llmq/quorums.h @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -170,10 +171,6 @@ class CQuorumDataRequest * the public key shares of individual members, which are needed to verify signature shares of these members. */ -class CQuorum; -using CQuorumPtr = std::shared_ptr; -using CQuorumCPtr = std::shared_ptr; - class CFinalCommitment; using CFinalCommitmentPtr = std::unique_ptr; diff --git a/src/llmq/signing.h b/src/llmq/signing.h index 5268dcc7a0fb..b835079d5b19 100644 --- a/src/llmq/signing.h +++ b/src/llmq/signing.h @@ -6,17 +6,20 @@ #define BITCOIN_LLMQ_SIGNING_H #include -#include #include #include +#include +#include + #include #include #include #include #include -#include #include +#include + #include #include @@ -29,10 +32,7 @@ class CInv; class PeerManager; class UniValue; -namespace llmq -{ -class CQuorum; -using CQuorumCPtr = std::shared_ptr; +namespace llmq { class CQuorumManager; class CSigSharesManager; diff --git a/src/llmq/types.h b/src/llmq/types.h new file mode 100644 index 000000000000..2d9523fae0ba --- /dev/null +++ b/src/llmq/types.h @@ -0,0 +1,17 @@ +// Copyright (c) 2025 The Dash Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_LLMQ_TYPES_H +#define BITCOIN_LLMQ_TYPES_H + +#include + +namespace llmq { +class CQuorum; + +using CQuorumPtr = std::shared_ptr; +using CQuorumCPtr = std::shared_ptr; +} // namespace llmq + +#endif // BITCOIN_LLMQ_TYPES_H diff --git a/src/llmq/utils.cpp b/src/llmq/utils.cpp index c515cfe9ed0b..09d2d4fddc7b 100644 --- a/src/llmq/utils.cpp +++ b/src/llmq/utils.cpp @@ -4,18 +4,19 @@ #include +#include +#include #include #include +#include +#include +#include +#include -#include #include #include -#include -#include #include #include -#include -#include #include #include @@ -23,11 +24,6 @@ #include class CBLSSignature; -namespace llmq { -class CQuorum; -using CQuorumPtr = std::shared_ptr; -using CQuorumCPtr = std::shared_ptr; -} // namespace llmq /** * Forward declarations From 1010fea2e2c5699c935ade44efda4cff9bd7c6e8 Mon Sep 17 00:00:00 2001 From: Kittywhiskers Van Gogh <63189531+kwvg@users.noreply.github.com> Date: Tue, 9 Sep 2025 17:24:08 +0000 Subject: [PATCH 3/4] refactor: consolidate `llmq::CFinalCommitmentPtr` definitions --- src/llmq/commitment.h | 3 ++- src/llmq/quorums.h | 4 ---- src/llmq/types.h | 2 ++ 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/llmq/commitment.h b/src/llmq/commitment.h index c1e78c6e3459..46d663d55105 100644 --- a/src/llmq/commitment.h +++ b/src/llmq/commitment.h @@ -7,6 +7,8 @@ #include #include +#include + #include #include #include @@ -156,7 +158,6 @@ class CFinalCommitment return HexStr(vBytes); } }; -using CFinalCommitmentPtr = std::unique_ptr; class CFinalCommitmentTxPayload { diff --git a/src/llmq/quorums.h b/src/llmq/quorums.h index 3f38f0cb2570..33acc6f3bbeb 100644 --- a/src/llmq/quorums.h +++ b/src/llmq/quorums.h @@ -171,10 +171,6 @@ class CQuorumDataRequest * the public key shares of individual members, which are needed to verify signature shares of these members. */ -class CFinalCommitment; -using CFinalCommitmentPtr = std::unique_ptr; - - class CQuorum { friend class CQuorumManager; diff --git a/src/llmq/types.h b/src/llmq/types.h index 2d9523fae0ba..f55b8c6bf8e0 100644 --- a/src/llmq/types.h +++ b/src/llmq/types.h @@ -8,8 +8,10 @@ #include namespace llmq { +class CFinalCommitment; class CQuorum; +using CFinalCommitmentPtr = std::unique_ptr; using CQuorumPtr = std::shared_ptr; using CQuorumCPtr = std::shared_ptr; } // namespace llmq From e7d35e6db2d35dd7621ad3978271ce097a2bc457 Mon Sep 17 00:00:00 2001 From: Kittywhiskers Van Gogh <63189531+kwvg@users.noreply.github.com> Date: Thu, 25 Sep 2025 04:21:12 +0000 Subject: [PATCH 4/4] refactor: drop `CDeterministicMNListPtr` --- src/governance/governance.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/governance/governance.h b/src/governance/governance.h index ca77d19acafe..2657c94602c0 100644 --- a/src/governance/governance.h +++ b/src/governance/governance.h @@ -24,6 +24,7 @@ class CFlatDB; class CInv; class PeerManager; +class CDeterministicMNList; class CDeterministicMNManager; class CGovernanceManager; class CGovernanceObject; @@ -36,9 +37,6 @@ class CSporkManager; static constexpr int RATE_BUFFER_SIZE = 5; static constexpr bool DEFAULT_GOVERNANCE_ENABLE{true}; -class CDeterministicMNList; -using CDeterministicMNListPtr = std::shared_ptr; - class CRateCheckBuffer { private: @@ -177,7 +175,7 @@ class GovernanceStore vote_cmm_t cmmapOrphanVotes; txout_m_t mapLastMasternodeObject; // used to check for changed voting keys - CDeterministicMNListPtr lastMNListForVotingKeys; + std::shared_ptr lastMNListForVotingKeys; public: GovernanceStore();