Dash Core Source Documentation (0.16.0.1)

Find detailed information regarding the Dash Core source code.

deterministicmns.h File Reference
#include <arith_uint256.h>
#include <bls/bls.h>
#include <dbwrapper.h>
#include <evo/evodb.h>
#include <evo/providertx.h>
#include <evo/simplifiedmns.h>
#include <saltedhasher.h>
#include <sync.h>
#include <immer/map.hpp>
#include <immer/map_transient.hpp>
#include <unordered_map>
+ Include dependency graph for deterministicmns.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  CDeterministicMNState
 
class  CDeterministicMNStateDiff
 
class  CDeterministicMN
 
class  CDeterministicMNList
 
class  CDeterministicMNListDiff
 
class  CDeterministicMNListDiff_OldFormat
 
class  CDeterministicMNManager
 

Namespaces

 llmq
 

Macros

#define DMN_STATE_DIFF_ALL_FIELDS
 
#define DMN_STATE_DIFF_LINE(f)   if (a.f != b.f) { state.f = b.f; fields |= Field_##f; }
 
#define DMN_STATE_DIFF_LINE(f)   if (fields & Field_##f) READWRITE(state.f);
 
#define DMN_STATE_DIFF_LINE(f)   if (fields & Field_##f) target.f = state.f;
 

Typedefs

typedef std::shared_ptr< CDeterministicMNStateCDeterministicMNStatePtr
 
typedef std::shared_ptr< const CDeterministicMNStateCDeterministicMNStateCPtr
 
typedef std::shared_ptr< const CDeterministicMNCDeterministicMNCPtr
 

Functions

template<typename Stream , typename K , typename T , typename Hash , typename Equal >
void SerializeImmerMap (Stream &os, const immer::map< K, T, Hash, Equal > &m)
 
template<typename Stream , typename K , typename T , typename Hash , typename Equal >
void UnserializeImmerMap (Stream &is, immer::map< K, T, Hash, Equal > &m)
 
template<typename Stream , typename K , typename T , typename Hash , typename Equal >
void SerReadWrite (Stream &s, const immer::map< K, T, Hash, Equal > &m, CSerActionSerialize ser_action)
 
template<typename Stream , typename K , typename T , typename Hash , typename Equal >
void SerReadWrite (Stream &s, immer::map< K, T, Hash, Equal > &obj, CSerActionUnserialize ser_action)
 

Variables

std::unique_ptr< CDeterministicMNManagerdeterministicMNManager
 

Macro Definition Documentation

◆ DMN_STATE_DIFF_ALL_FIELDS

#define DMN_STATE_DIFF_ALL_FIELDS
Value:
DMN_STATE_DIFF_LINE(nRegisteredHeight) \
DMN_STATE_DIFF_LINE(nLastPaidHeight) \
DMN_STATE_DIFF_LINE(nPoSePenalty) \
DMN_STATE_DIFF_LINE(nPoSeRevivedHeight) \
DMN_STATE_DIFF_LINE(nPoSeBanHeight) \
DMN_STATE_DIFF_LINE(nRevocationReason) \
DMN_STATE_DIFF_LINE(confirmedHash) \
DMN_STATE_DIFF_LINE(confirmedHashWithProRegTxHash) \
DMN_STATE_DIFF_LINE(keyIDOwner) \
DMN_STATE_DIFF_LINE(pubKeyOperator) \
DMN_STATE_DIFF_LINE(keyIDVoting) \
DMN_STATE_DIFF_LINE(addr) \
DMN_STATE_DIFF_LINE(scriptPayout) \
DMN_STATE_DIFF_LINE(scriptOperatorPayout)
#define DMN_STATE_DIFF_LINE(f)

Definition at line 140 of file deterministicmns.h.

Referenced by CDeterministicMNStateDiff::ApplyToState(), CDeterministicMNStateDiff::CDeterministicMNStateDiff(), and CDeterministicMNStateDiff::SerializationOp().

◆ DMN_STATE_DIFF_LINE [1/3]

#define DMN_STATE_DIFF_LINE (   f)    if (a.f != b.f) { state.f = b.f; fields |= Field_##f; }

◆ DMN_STATE_DIFF_LINE [2/3]

#define DMN_STATE_DIFF_LINE (   f)    if (fields & Field_##f) READWRITE(state.f);

◆ DMN_STATE_DIFF_LINE [3/3]

#define DMN_STATE_DIFF_LINE (   f)    if (fields & Field_##f) target.f = state.f;

Typedef Documentation

◆ CDeterministicMNCPtr

typedef std::shared_ptr<const CDeterministicMN> CDeterministicMNCPtr

Definition at line 249 of file deterministicmns.h.

◆ CDeterministicMNStateCPtr

typedef std::shared_ptr<const CDeterministicMNState> CDeterministicMNStateCPtr

Definition at line 118 of file deterministicmns.h.

◆ CDeterministicMNStatePtr

Definition at line 117 of file deterministicmns.h.

Function Documentation

◆ SerializeImmerMap()

template<typename Stream , typename K , typename T , typename Hash , typename Equal >
void SerializeImmerMap ( Stream &  os,
const immer::map< K, T, Hash, Equal > &  m 
)

◆ SerReadWrite() [1/2]

template<typename Stream , typename K , typename T , typename Hash , typename Equal >
void SerReadWrite ( Stream &  s,
const immer::map< K, T, Hash, Equal > &  m,
CSerActionSerialize  ser_action 
)
inline

Definition at line 276 of file deterministicmns.h.

References SerializeImmerMap().

◆ SerReadWrite() [2/2]

template<typename Stream , typename K , typename T , typename Hash , typename Equal >
void SerReadWrite ( Stream &  s,
immer::map< K, T, Hash, Equal > &  obj,
CSerActionUnserialize  ser_action 
)
inline

Definition at line 282 of file deterministicmns.h.

References UnserializeImmerMap().

◆ UnserializeImmerMap()

template<typename Stream , typename K , typename T , typename Hash , typename Equal >
void UnserializeImmerMap ( Stream &  is,
immer::map< K, T, Hash, Equal > &  m 
)

Variable Documentation

◆ deterministicMNManager

std::unique_ptr<CDeterministicMNManager> deterministicMNManager

Definition at line 24 of file deterministicmns.cpp.

Referenced by llmq::CLLMQUtils::AddQuorumProbeConnections(), CWallet::AddToWallet(), CTxMemPool::addUnchecked(), AppInitMain(), CWallet::AutoLockMasternodeCollaterals(), BuildSimplifiedMNListDiff(), CalcCbTxMerkleRootMNList(), CheckProRegTx(), CheckProUpRegTx(), CheckProUpRevTx(), CheckProUpServTx(), CGovernanceObject::ClearMasternodeVotes(), CPrivateSendClientSession::DoAutomaticDenominating(), CPrivateSendClientManager::DoAutomaticDenominating(), llmq::CLLMQUtils::EnsureQuorumConnections(), CTxMemPool::existsProviderTxConflict(), llmq::CLLMQUtils::GetAllQuorumMembers(), CMasternodePayments::GetBlockTxOuts(), CGovernanceManager::GetCurrentVotes(), GetNextMasternodeForPayment(), CPrivateSendClientManager::GetRandomNotUsedMasternode(), GetRequiredPaymentsStrings(), gobject_submit(), gobject_vote_conf(), CActiveMasternodeManager::Init(), llmq::CDKGSessionHandler::InitNewQuorum(), CConnman::IsMasternodeQuorumNode(), CMasternodePayments::IsTransactionValid(), CGovernanceVote::IsValid(), CGovernanceObject::IsValidLocally(), CPrivateSendClientSession::JoinExistingQueue(), CWallet::ListProTxCoins(), masternode_count(), masternode_status(), masternodelist(), PrepareShutdown(), CMNAuth::ProcessMessage(), CPrivateSendServer::ProcessMessage(), CPrivateSendClientManager::ProcessMessage(), ProcessMessage(), ProcessSpecialTxsInBlock(), CGovernanceObject::ProcessVote(), protx_info(), protx_list(), quorum_memberof(), ClientModel::refreshMasternodeList(), CGovernanceVote::Relay(), CGovernanceManager::RemoveInvalidVotes(), CTxMemPool::removeProTxSpentCollateralConflicts(), CGovernanceManager::RequestGovernanceObjectVotes(), CPrivateSendClientSession::StartNewQueue(), CDSNotificationInterface::SynchronousUpdatedBlockTip(), ThreadImport(), CConnman::ThreadOpenConnections(), CConnman::ThreadOpenMasternodeConnections(), UndoSpecialTxsInBlock(), CActiveMasternodeManager::UpdatedBlockTip(), llmq::CDKGSessionManager::UpdatedBlockTip(), CGovernanceManager::UpdatedBlockTip(), CGovernanceObject::UpdateSentinelVariables(), voteraw(), and VoteWithMasternodes().

Released under the MIT license