Dash Core Source Documentation (0.16.0.1)

Find detailed information regarding the Dash Core source code.

A CWallet is an extension of a keystore, which also maintains a set of transactions and balances, and provides the ability to create new transactions. More...

#include <wallet.h>

+ Inheritance diagram for CWallet:
+ Collaboration diagram for CWallet:

Public Types

typedef std::map< unsigned int, CMasterKeyMasterKeyMap
 
typedef std::pair< CWalletTx *, CAccountingEntry * > TxPair
 
typedef std::multimap< int64_t, TxPairTxItems
 

Public Member Functions

WalletDatabaseGetDBHandle ()
 Get database handle used by this wallet. More...
 
const std::string & GetName () const
 Get a name for this wallet for logging/debugging purposes. More...
 
void LoadKeyPool (int64_t nIndex, const CKeyPool &keypool)
 
 CWallet (std::string name, std::unique_ptr< WalletDatabase > database)
 Construct wallet with specified name and database implementation. More...
 
 ~CWallet ()
 
void SetNull ()
 
const CWalletTxGetWalletTx (const uint256 &hash) const
 
bool CanSupportFeature (enum WalletFeature wf) const
 check whether we are allowed to upgrade (or already support) to the named feature More...
 
void AvailableCoins (std::vector< COutput > &vCoins, bool fOnlySafe=true, const CCoinControl *coinControl=nullptr, const CAmount &nMinimumAmount=1, const CAmount &nMaximumAmount=MAX_MONEY, const CAmount &nMinimumSumAmount=MAX_MONEY, const uint64_t nMaximumCount=0, const int nMinDepth=0, const int nMaxDepth=9999999) const
 populate vCoins with vector of available COutputs. More...
 
std::map< CTxDestination, std::vector< COutput > > ListCoins () const
 Return list of available coins and locked coins grouped by non-change output address. More...
 
const CTxOutFindNonChangeParentOutput (const CTransaction &tx, int output) const
 Find non-change parent output. More...
 
bool SelectCoinsMinConf (const CAmount &nTargetValue, int nConfMine, int nConfTheirs, uint64_t nMaxAncestors, std::vector< COutput > vCoins, std::set< CInputCoin > &setCoinsRet, CAmount &nValueRet, CoinType nCoinType=CoinType::ALL_COINS) const
 Shuffle and select coins until nTargetValue is reached while avoiding small change; This method is stochastic for some inputs and upon completion the coin set and corresponding actual target value is assembled. More...
 
bool SelectPSInOutPairsByDenominations (int nDenom, CAmount nValueMax, std::vector< std::pair< CTxDSIn, CTxOut > > &vecPSInOutPairsRet)
 
bool GetCollateralTxDSIn (CTxDSIn &txdsinRet, CAmount &nValueRet) const
 
bool SelectDenominatedAmounts (CAmount nValueMax, std::set< CAmount > &setAmountsRet) const
 
bool SelectCoinsGroupedByAddresses (std::vector< CompactTallyItem > &vecTallyRet, bool fSkipDenominated=true, bool fAnonymizable=true, bool fSkipUnconfirmed=true, int nMaxOupointsPerAddress=-1) const
 
bool GetMasternodeOutpointAndKeys (COutPoint &outpointRet, CPubKey &pubKeyRet, CKey &keyRet, const std::string &strTxHash="", const std::string &strOutputIndex="")
 Get 1000DASH output and keys which can be used for the Masternode. More...
 
bool GetOutpointAndKeysFromOutput (const COutput &out, COutPoint &outpointRet, CPubKey &pubKeyRet, CKey &keyRet)
 Extract txin information and keys from output. More...
 
bool HasCollateralInputs (bool fOnlyConfirmed=true) const
 
int CountInputsWithAmount (CAmount nInputAmount) const
 
int GetRealOutpointPrivateSendRounds (const COutPoint &outpoint, int nRounds=0) const
 
int GetCappedOutpointPrivateSendRounds (const COutPoint &outpoint) const
 
bool IsDenominated (const COutPoint &outpoint) const
 
bool IsFullyMixed (const COutPoint &outpoint) const
 
bool IsSpent (const uint256 &hash, unsigned int n) const
 Outpoint is spent if any non-conflicted transaction spends it: More...
 
bool IsLockedCoin (uint256 hash, unsigned int n) const
 
void LockCoin (const COutPoint &output)
 
void UnlockCoin (const COutPoint &output)
 
void UnlockAllCoins ()
 
void ListLockedCoins (std::vector< COutPoint > &vOutpts) const
 
void ListProTxCoins (std::vector< COutPoint > &vOutpts)
 
void AbortRescan ()
 
bool IsAbortingRescan ()
 
bool IsScanning ()
 
CPubKey GenerateNewKey (WalletBatch &batch, uint32_t nAccountIndex, bool fInternal)
 keystore implementation Generate a new key More...
 
bool HaveKey (const CKeyID &address) const override
 HaveKey implementation that also checks the mapHdPubKeys. More...
 
bool GetPubKey (const CKeyID &address, CPubKey &vchPubKeyOut) const override
 GetPubKey implementation that also checks the mapHdPubKeys. More...
 
bool GetKey (const CKeyID &address, CKey &keyOut) const override
 GetKey implementation that can derive a HD private key on the fly. More...
 
bool AddHDPubKey (WalletBatch &batch, const CExtPubKey &extPubKey, bool fInternal)
 Adds a HDPubKey into the wallet(database) More...
 
bool LoadHDPubKey (const CHDPubKey &hdPubKey)
 loads a HDPubKey into the wallets memory More...
 
bool AddKeyPubKey (const CKey &key, const CPubKey &pubkey) override
 Adds a key to the store, and saves it to disk. More...
 
bool AddKeyPubKeyWithDB (WalletBatch &batch, const CKey &key, const CPubKey &pubkey)
 
bool LoadKey (const CKey &key, const CPubKey &pubkey)
 Adds a key to the store, without saving it to disk (used by LoadWallet) More...
 
bool LoadKeyMetadata (const CKeyID &keyID, const CKeyMetadata &metadata)
 Load metadata (used by LoadWallet) More...
 
bool LoadScriptMetadata (const CScriptID &script_id, const CKeyMetadata &metadata)
 
bool LoadMinVersion (int nVersion)
 
void UpdateTimeFirstKey (int64_t nCreateTime)
 Update wallet first key creation time. More...
 
bool AddCryptedKey (const CPubKey &vchPubKey, const std::vector< unsigned char > &vchCryptedSecret) override
 Adds an encrypted key to the store, and saves it to disk. More...
 
bool LoadCryptedKey (const CPubKey &vchPubKey, const std::vector< unsigned char > &vchCryptedSecret)
 Adds an encrypted key to the store, without saving it to disk (used by LoadWallet) More...
 
bool AddCScript (const CScript &redeemScript) override
 Support for BIP 0013 : see https://github.com/bitcoin/bips/blob/master/bip-0013.mediawiki. More...
 
bool LoadCScript (const CScript &redeemScript)
 
bool AddDestData (const CTxDestination &dest, const std::string &key, const std::string &value)
 Adds a destination data tuple to the store, and saves it to disk. More...
 
bool EraseDestData (const CTxDestination &dest, const std::string &key)
 Erases a destination data tuple in the store and on disk. More...
 
bool LoadDestData (const CTxDestination &dest, const std::string &key, const std::string &value)
 Adds a destination data tuple to the store, without saving it to disk. More...
 
bool GetDestData (const CTxDestination &dest, const std::string &key, std::string *value) const
 Look up a destination data tuple in the store, return true if found false otherwise. More...
 
std::vector< std::string > GetDestValues (const std::string &prefix) const
 Get all destination values matching a prefix. More...
 
bool AddWatchOnly (const CScript &dest, int64_t nCreateTime)
 Adds a watch-only address to the store, and saves it to disk. More...
 
bool RemoveWatchOnly (const CScript &dest) override
 
bool LoadWatchOnly (const CScript &dest)
 Adds a watch-only address to the store, without saving it to disk (used by LoadWallet) More...
 
bool Unlock (const SecureString &strWalletPassphrase, bool fForMixingOnly=false)
 
bool ChangeWalletPassphrase (const SecureString &strOldWalletPassphrase, const SecureString &strNewWalletPassphrase)
 
bool EncryptWallet (const SecureString &strWalletPassphrase)
 
void GetKeyBirthTimes (std::map< CTxDestination, int64_t > &mapKeyBirth) const
 
unsigned int ComputeTimeSmart (const CWalletTx &wtx) const
 Compute smart timestamp for a transaction being added to the wallet. More...
 
int64_t IncOrderPosNext (WalletBatch *batch=nullptr)
 Increment the next transaction order id. More...
 
DBErrors ReorderTransactions ()
 
bool AccountMove (std::string strFrom, std::string strTo, CAmount nAmount, std::string strComment="")
 
bool GetAccountDestination (CTxDestination &dest, std::string strAccount, bool bForceNew=false)
 
void MarkDirty ()
 
bool AddToWallet (const CWalletTx &wtxIn, bool fFlushOnClose=true)
 
bool LoadToWallet (const CWalletTx &wtxIn)
 
void TransactionAddedToMempool (const CTransactionRef &tx, int64_t nAcceptTime) override
 Notifies listeners of a transaction having been added to mempool. More...
 
void BlockConnected (const std::shared_ptr< const CBlock > &pblock, const CBlockIndex *pindex, const std::vector< CTransactionRef > &vtxConflicted) override
 Notifies listeners of a block being connected. More...
 
void BlockDisconnected (const std::shared_ptr< const CBlock > &pblock, const CBlockIndex *pindexDisconnected) override
 Notifies listeners of a block being disconnected. More...
 
bool AddToWalletIfInvolvingMe (const CTransactionRef &tx, const CBlockIndex *pIndex, int posInBlock, bool fUpdate)
 Add a transaction to the wallet, or update it. More...
 
int64_t RescanFromTime (int64_t startTime, const WalletRescanReserver &reserver, bool update)
 Scan active chain for relevant transactions after importing keys. More...
 
CBlockIndexScanForWalletTransactions (CBlockIndex *pindexStart, CBlockIndex *pindexStop, const WalletRescanReserver &reserver, bool fUpdate=false)
 Scan the block chain (starting in pindexStart) for transactions from or to us. More...
 
void TransactionRemovedFromMempool (const CTransactionRef &ptx) override
 Notifies listeners of a transaction leaving mempool. More...
 
void ReacceptWalletTransactions ()
 
void ResendWalletTransactions (int64_t nBestBlockTime, CConnman *connman) override
 Tells listeners to broadcast their data. More...
 
std::vector< uint256ResendWalletTransactionsBefore (int64_t nTime, CConnman *connman)
 
CAmount GetBalance () const
 
CAmount GetUnconfirmedBalance () const
 
CAmount GetImmatureBalance () const
 
CAmount GetWatchOnlyBalance () const
 
CAmount GetUnconfirmedWatchOnlyBalance () const
 
CAmount GetImmatureWatchOnlyBalance () const
 
CAmount GetLegacyBalance (const isminefilter &filter, int minDepth, const std::string *account, const bool fAddLocked) const
 
CAmount GetAnonymizableBalance (bool fSkipDenominated=false, bool fSkipUnconfirmed=true) const
 
CAmount GetAnonymizedBalance (const CCoinControl *coinControl=nullptr) const
 
float GetAverageAnonymizedRounds () const
 
CAmount GetNormalizedAnonymizedBalance () const
 
CAmount GetDenominatedBalance (bool unconfirmed=false) const
 
bool GetBudgetSystemCollateralTX (CWalletTx &tx, uint256 hash, CAmount amount, const COutPoint &outpoint=COutPoint())
 
CAmount GetAvailableBalance (const CCoinControl *coinControl=nullptr) const
 
bool FundTransaction (CMutableTransaction &tx, CAmount &nFeeRet, int &nChangePosInOut, std::string &strFailReason, bool lockUnspents, const std::set< int > &setSubtractFeeFromOutputs, CCoinControl)
 Insert additional inputs into the transaction by calling CreateTransaction();. More...
 
bool SignTransaction (CMutableTransaction &tx)
 
bool CreateTransaction (const std::vector< CRecipient > &vecSend, CWalletTx &wtxNew, CReserveKey &reservekey, CAmount &nFeeRet, int &nChangePosInOut, std::string &strFailReason, const CCoinControl &coin_control, bool sign=true, int nExtraPayloadSize=0)
 Create a new transaction paying the recipients with a set of coins selected by SelectCoins(); Also create the change output, when needed. More...
 
bool CommitTransaction (CWalletTx &wtxNew, CReserveKey &reservekey, CConnman *connman, CValidationState &state)
 Call after CreateTransaction unless you want to abort. More...
 
bool CreateCollateralTransaction (CMutableTransaction &txCollateral, std::string &strReason)
 
void ListAccountCreditDebit (const std::string &strAccount, std::list< CAccountingEntry > &entries)
 
bool AddAccountingEntry (const CAccountingEntry &)
 
bool AddAccountingEntry (const CAccountingEntry &, WalletBatch *batch)
 
bool NewKeyPool ()
 Mark old keypool keys as used, and generate all new keys. More...
 
size_t KeypoolCountExternalKeys ()
 
size_t KeypoolCountInternalKeys ()
 
bool TopUpKeyPool (unsigned int kpSize=0)
 
void ReserveKeyFromKeyPool (int64_t &nIndex, CKeyPool &keypool, bool fInternal)
 
void KeepKey (int64_t nIndex)
 
void ReturnKey (int64_t nIndex, bool fInternal, const CPubKey &pubkey)
 
bool GetKeyFromPool (CPubKey &key, bool fInternal)
 
int64_t GetOldestKeyPoolTime ()
 
void MarkReserveKeysAsUsed (int64_t keypool_id)
 Marks all keys in the keypool up to and including reserve_key as used. More...
 
const std::map< CKeyID, int64_t > & GetAllReserveKeys () const
 
std::set< std::set< CTxDestination > > GetAddressGroupings ()
 
std::map< CTxDestination, CAmountGetAddressBalances ()
 
std::set< CTxDestinationGetAccountAddresses (const std::string &strAccount) const
 
isminetype IsMine (const CTxIn &txin) const
 
CAmount GetDebit (const CTxIn &txin, const isminefilter &filter) const
 Returns amount of debit if the input matches the filter, otherwise returns 0. More...
 
isminetype IsMine (const CTxOut &txout) const
 
CAmount GetCredit (const CTxOut &txout, const isminefilter &filter) const
 
bool IsChange (const CTxOut &txout) const
 
CAmount GetChange (const CTxOut &txout) const
 
bool IsMine (const CTransaction &tx) const
 
bool IsFromMe (const CTransaction &tx) const
 should probably be renamed to IsRelevantToMe More...
 
CAmount GetDebit (const CTransaction &tx, const isminefilter &filter) const
 
bool IsAllFromMe (const CTransaction &tx, const isminefilter &filter) const
 Returns whether all of the inputs match the filter. More...
 
CAmount GetCredit (const CTransaction &tx, const isminefilter &filter) const
 
CAmount GetChange (const CTransaction &tx) const
 
void SetBestChain (const CBlockLocator &loc) override
 Notifies listeners of the new active block chain on-disk. More...
 
DBErrors LoadWallet (bool &fFirstRunRet)
 
void AutoLockMasternodeCollaterals ()
 
DBErrors ZapWalletTx (std::vector< CWalletTx > &vWtx)
 
DBErrors ZapSelectTx (std::vector< uint256 > &vHashIn, std::vector< uint256 > &vHashOut)
 
bool SetAddressBook (const CTxDestination &address, const std::string &strName, const std::string &purpose)
 
bool DelAddressBook (const CTxDestination &address)
 
const std::string & GetAccountName (const CScript &scriptPubKey) const
 
void GetScriptForMining (std::shared_ptr< CReserveScript > &script)
 
unsigned int GetKeyPoolSize ()
 
bool SetMinVersion (enum WalletFeature, WalletBatch *batch_in=nullptr, bool fExplicit=false)
 signify that a particular wallet feature is now used. this may change nWalletVersion and nWalletMaxVersion if those are lower More...
 
bool SetMaxVersion (int nVersion)
 change which version we're allowed to upgrade to (note that this does not immediately imply upgrading to that format) More...
 
int GetVersion ()
 get the current wallet format (the oldest client version guaranteed to understand this wallet) More...
 
std::set< uint256GetConflicts (const uint256 &txid) const
 Get wallet transactions that conflict with given transaction (spend same outputs) More...
 
void Flush (bool shutdown=false)
 Flush wallet (bitdb flush) More...
 
bool GetBroadcastTransactions () const
 Inquire whether this wallet broadcasts transactions. More...
 
void SetBroadcastTransactions (bool broadcast)
 Set whether this wallet broadcasts transactions. More...
 
bool TransactionCanBeAbandoned (const uint256 &hashTx) const
 Return whether transaction can be abandoned. More...
 
bool AbandonTransaction (const uint256 &hashTx)
 
void postInitProcess ()
 Wallet post-init setup Gives the wallet a chance to register repetitive tasks and complete post-init tasks. More...
 
bool AutoBackupWallet (const fs::path &wallet_path, std::string &strBackupWarningRet, std::string &strBackupErrorRet)
 
bool BackupWallet (const std::string &strDest)
 
bool IsHDEnabled () const
 HD Wallet Functions. More...
 
void GenerateNewHDChain ()
 
bool SetHDChain (WalletBatch &batch, const CHDChain &chain, bool memonly)
 
bool SetCryptedHDChain (WalletBatch &batch, const CHDChain &chain, bool memonly)
 
bool SetHDChainSingle (const CHDChain &chain, bool memonly)
 Set the HD chain model (chain child index counters) using temporary wallet db object which causes db flush every time these methods are used. More...
 
bool SetCryptedHDChainSingle (const CHDChain &chain, bool memonly)
 
bool GetDecryptedHDChain (CHDChain &hdChainRet)
 
void NotifyTransactionLock (const CTransaction &tx, const llmq::CInstantSendLock &islock) override
 
void NotifyChainLock (const CBlockIndex *pindexChainLock, const llmq::CChainLockSig &clsig) override
 
void BlockUntilSyncedToCurrentChain ()
 Blocks until the wallet state is up-to-date to /at least/ the current chain at the time this function is entered Obviously holding cs_main/cs_wallet when going into this call may cause deadlock. More...
 
- Public Member Functions inherited from CCryptoKeyStore
 CCryptoKeyStore ()
 
bool IsCrypted () const
 
bool IsLocked (bool fForMixing=false) const
 
bool Lock (bool fForMixing=false)
 
std::set< CKeyIDGetKeys () const override
 
virtual bool GetHDChain (CHDChain &hdChainRet) const override
 
- Public Member Functions inherited from CBasicKeyStore
bool HaveCScript (const CScriptID &hash) const override
 
std::set< CScriptIDGetCScripts () const override
 
bool GetCScript (const CScriptID &hash, CScript &redeemScriptOut) const override
 
bool HaveWatchOnly (const CScript &dest) const override
 
bool HaveWatchOnly () const override
 
- Public Member Functions inherited from CKeyStore
virtual ~CKeyStore ()
 
virtual bool AddKey (const CKey &key)
 

Static Public Member Functions

static bool Verify (std::string wallet_file, bool salvage_wallet, std::string &error_string, std::string &warning_string)
 Verify wallet naming and perform salvage on the wallet if required. More...
 
static CWalletCreateWalletFromFile (const std::string &name, const fs::path &path)
 
static bool InitAutoBackup ()
 

Public Attributes

CCriticalSection cs_wallet
 
std::map< CKeyID, CKeyMetadatamapKeyMetadata
 
std::map< CScriptID, CKeyMetadatam_script_metadata
 
MasterKeyMap mapMasterKeys
 
unsigned int nMasterKeyMaxID
 
std::map< uint256, CWalletTxmapWallet
 
std::list< CAccountingEntrylaccentries
 
TxItems wtxOrdered
 
int64_t nOrderPosNext
 
uint64_t nAccountingEntryNumber
 
std::map< CTxDestination, CAddressBookDatamapAddressBook
 
std::set< COutPointsetLockedCoins
 
int64_t nKeysLeftSinceAutoBackup
 
std::map< CKeyID, CHDPubKeymapHdPubKeys
 
int64_t nRelockTime
 Holds a timestamp at which point the wallet is scheduled (externally) to be relocked. Caller must arrange for actual relocking to occur via Lock(). More...
 
boost::signals2::signal< void(CWallet *wallet, const CTxDestination &address, const std::string &label, bool isMine, const std::string &purpose, ChangeType status)> NotifyAddressBookChanged
 Address book entry changed. More...
 
boost::signals2::signal< void(CWallet *wallet, const uint256 &hashTx, ChangeType status)> NotifyTransactionChanged
 Wallet transaction added, removed or updated. More...
 
boost::signals2::signal< void(const std::string &title, int nProgress)> ShowProgress
 Show progress e.g. More...
 
boost::signals2::signal< void(bool fHaveWatchOnly)> NotifyWatchonlyChanged
 Watch-only address added. More...
 
boost::signals2::signal< void()> NotifyISLockReceived
 IS-lock received. More...
 
boost::signals2::signal< void(int height)> NotifyChainLockReceived
 ChainLock received. More...
 
- Public Attributes inherited from CCryptoKeyStore
boost::signals2::signal< void(CCryptoKeyStore *wallet)> NotifyStatusChanged
 Wallet status (encrypted, locked) changed. More...
 

Static Public Attributes

static CFeeRate minTxFee = CFeeRate(DEFAULT_TRANSACTION_MINFEE)
 Fees smaller than this (in duffs) are considered zero fee (for transaction creation) Override with -mintxfee. More...
 
static CFeeRate fallbackFee = CFeeRate(DEFAULT_FALLBACK_FEE)
 If fee estimation does not have enough data to provide estimates, use this fee instead. More...
 
static CFeeRate m_discard_rate = CFeeRate(DEFAULT_DISCARD_FEE)
 

Private Types

typedef std::multimap< COutPoint, uint256TxSpends
 Used to keep track of spent outpoints, and detect and report conflicts (double-spends or mutated transactions where the mutant gets mined). More...
 

Private Member Functions

bool SelectCoins (const std::vector< COutput > &vAvailableCoins, const CAmount &nTargetValue, std::set< CInputCoin > &setCoinsRet, CAmount &nValueRet, const CCoinControl *coinControl=nullptr) const
 Select a set of coins such that nValueRet >= nTargetValue and at least all coins from coinControl are selected; Never select unconfirmed coins if they are not ours. More...
 
void AddToSpends (const COutPoint &outpoint, const uint256 &wtxid)
 
void AddToSpends (const uint256 &wtxid)
 
void MarkConflicted (const uint256 &hashBlock, const uint256 &hashTx)
 
void SyncMetaData (std::pair< TxSpends::iterator, TxSpends::iterator >)
 
void SyncTransaction (const CTransactionRef &tx, const CBlockIndex *pindex=nullptr, int posInBlock=0)
 
void DeriveNewChildKey (WalletBatch &batch, const CKeyMetadata &metadata, CKey &secretRet, uint32_t nAccountIndex, bool fInternal)
 
bool AddWatchOnly (const CScript &dest) override
 Private version of AddWatchOnly method which does not accept a timestamp, and which will reset the wallet's nTimeFirstKey value to 1 if the watch key did not previously have a timestamp associated with it. More...
 
std::unordered_set< const CWalletTx *, WalletTxHasherGetSpendableTXs () const
 
void InitPrivateSendSalt ()
 Fetches PrivateSend salt from database or generates and saves a new one if no salt was found in the db. More...
 

Private Attributes

std::atomic< bool > fAbortRescan
 
std::atomic< bool > fScanningWallet
 
std::mutex mutexScanning
 
WalletBatchencrypted_batch
 
int nWalletVersion
 the current wallet version: clients below this version are not able to load the wallet More...
 
int nWalletMaxVersion
 the maximum wallet format version: memory-only variable that specifies to what version this wallet may be upgraded More...
 
int64_t nNextResend
 
int64_t nLastResend
 
bool fBroadcastTransactions
 
bool fAnonymizableTallyCached
 
std::vector< CompactTallyItemvecAnonymizableTallyCached
 
bool fAnonymizableTallyCachedNonDenom
 
std::vector< CompactTallyItemvecAnonymizableTallyCachedNonDenom
 
TxSpends mapTxSpends
 
std::set< COutPointsetWalletUTXO
 
std::map< COutPoint, int > mapOutpointRoundsCache
 
std::set< int64_t > setInternalKeyPool
 
std::set< int64_t > setExternalKeyPool
 
int64_t m_max_keypool_index
 
std::map< CKeyID, int64_t > m_pool_key_to_index
 
int64_t nTimeFirstKey
 
std::string m_name
 Wallet filename from wallet=<path> command line or config option. More...
 
std::unique_ptr< WalletDatabasedatabase
 Internal database handle. More...
 
uint256 hashPrevBestCoinbase
 
const CBlockIndexm_last_block_processed
 The following is used to keep track of how far behind the wallet is from the chain sync, and to allow clients to block on us being caught up. More...
 
uint256 nPrivateSendSalt
 Pulled from wallet DB ("ps_salt") and used when mixing a random number of rounds. More...
 

Friends

class WalletRescanReserver
 

Additional Inherited Members

- Protected Member Functions inherited from CCryptoKeyStore
bool SetCrypted ()
 
bool EncryptKeys (CKeyingMaterial &vMasterKeyIn)
 will encrypt previously unencrypted keys More...
 
bool EncryptHDChain (const CKeyingMaterial &vMasterKeyIn)
 
bool DecryptHDChain (CHDChain &hdChainRet) const
 
bool SetHDChain (const CHDChain &chain)
 
bool SetCryptedHDChain (const CHDChain &chain)
 
bool Unlock (const CKeyingMaterial &vMasterKeyIn, bool fForMixingOnly=false)
 
- Protected Member Functions inherited from CValidationInterface
virtual void AcceptedBlockHeader (const CBlockIndex *pindexNew)
 
virtual void NotifyHeaderTip (const CBlockIndex *pindexNew, bool fInitialDownload)
 
virtual void UpdatedBlockTip (const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload)
 Notifies listeners of updated block chain tip. More...
 
virtual void SynchronousUpdatedBlockTip (const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload)
 Same as UpdatedBlockTip, but called from the caller's thread. More...
 
virtual void NotifyGovernanceVote (const CGovernanceVote &vote)
 
virtual void NotifyGovernanceObject (const CGovernanceObject &object)
 
virtual void NotifyInstantSendDoubleSpendAttempt (const CTransaction &currentTx, const CTransaction &previousTx)
 
virtual void NotifyMasternodeListChanged (bool undo, const CDeterministicMNList &oldMNList, const CDeterministicMNListDiff &diff)
 
virtual void BlockChecked (const CBlock &, const CValidationState &)
 Notifies listeners of a block validation result. More...
 
virtual void NewPoWValidBlock (const CBlockIndex *pindex, const std::shared_ptr< const CBlock > &block)
 Notifies listeners that a block which builds directly on our current tip has been received and connected to the headers tree, though not validated yet. More...
 
friend void ::RegisterValidationInterface (CValidationInterface *)
 
friend void ::UnregisterValidationInterface (CValidationInterface *)
 
friend void ::UnregisterAllValidationInterfaces ()
 
- Protected Attributes inherited from CCryptoKeyStore
CryptedKeyMap mapCryptedKeys
 
- Protected Attributes inherited from CBasicKeyStore
KeyMap mapKeys
 
WatchKeyMap mapWatchKeys
 
ScriptMap mapScripts
 
WatchOnlySet setWatchOnly
 
CHDChain hdChain
 
- Protected Attributes inherited from CKeyStore
CCriticalSection cs_KeyStore
 

Detailed Description

A CWallet is an extension of a keystore, which also maintains a set of transactions and balances, and provides the ability to create new transactions.

Definition at line 715 of file wallet.h.

Member Typedef Documentation

◆ MasterKeyMap

typedef std::map<unsigned int, CMasterKey> CWallet::MasterKeyMap

Definition at line 858 of file wallet.h.

◆ TxItems

typedef std::multimap<int64_t, TxPair > CWallet::TxItems

Definition at line 900 of file wallet.h.

◆ TxPair

Definition at line 899 of file wallet.h.

◆ TxSpends

typedef std::multimap<COutPoint, uint256> CWallet::TxSpends
private

Used to keep track of spent outpoints, and detect and report conflicts (double-spends or mutated transactions where the mutant gets mined).

Definition at line 753 of file wallet.h.

Constructor & Destructor Documentation

◆ CWallet()

CWallet::CWallet ( std::string  name,
std::unique_ptr< WalletDatabase database 
)
inline

Construct wallet with specified name and database implementation.

Definition at line 863 of file wallet.h.

References SetNull().

◆ ~CWallet()

CWallet::~CWallet ( )
inline

Definition at line 868 of file wallet.h.

References encrypted_batch.

Member Function Documentation

◆ AbortRescan()

void CWallet::AbortRescan ( )
inline

Definition at line 977 of file wallet.h.

References fAbortRescan.

Referenced by abortrescan().

◆ AddDestData()

bool CWallet::AddDestData ( const CTxDestination dest,
const std::string &  key,
const std::string &  value 
)

Adds a destination data tuple to the store, and saves it to disk.

Definition at line 4972 of file wallet.cpp.

References EncodeDestination(), mapAddressBook, and WalletBatch::WriteDestData().

Referenced by WalletModel::saveReceiveRequest().

◆ AutoBackupWallet()

bool CWallet::AutoBackupWallet ( const fs::path &  wallet_path,
std::string &  strBackupWarningRet,
std::string &  strBackupErrorRet 
)

◆ BackupWallet()

bool CWallet::BackupWallet ( const std::string &  strDest)

Definition at line 5320 of file wallet.cpp.

References database.

Referenced by AutoBackupWallet(), WalletModel::backupWallet(), and backupwallet().

◆ CanSupportFeature()

bool CWallet::CanSupportFeature ( enum WalletFeature  wf) const
inline

check whether we are allowed to upgrade (or already support) to the named feature

Definition at line 917 of file wallet.h.

References AssertLockHeld(), cs_wallet, and nWalletMaxVersion.

Referenced by GenerateNewKey().

◆ ComputeTimeSmart()

unsigned int CWallet::ComputeTimeSmart ( const CWalletTx wtx) const

Compute smart timestamp for a transaction being added to the wallet.

Logic:

  • If sending a transaction, assign its timestamp to the current time.
  • If receiving a transaction outside a block, assign its timestamp to the current time.
  • If receiving a block with a future timestamp, assign all its (not already known) transactions' timestamps to the current time.
  • If receiving a block with a past timestamp, before the most recent known transaction (that we care about), assign all its (not already known) transactions' timestamps to the same timestamp as that most-recent-known transaction.
  • If receiving a block with a past timestamp, but after the most recent known transaction, assign all its (not already known) transactions' timestamps to the block time.

For more information see CWalletTx::nTimeSmart, https://bitcointalk.org/?topic=54527, or https://github.com/bitcoin/bitcoin/pull/1393.

Definition at line 4928 of file wallet.cpp.

References CMerkleTx::GetHash(), CMerkleTx::hashBlock, CMerkleTx::hashUnset(), LogPrintf, mapBlockIndex, CAccountingEntry::nTime, CWalletTx::nTimeReceived, CWalletTx::nTimeSmart, base_blob< BITS >::ToString(), and wtxOrdered.

Referenced by AddToWallet().

◆ CreateWalletFromFile()

◆ EraseDestData()

bool CWallet::EraseDestData ( const CTxDestination dest,
const std::string &  key 
)

Erases a destination data tuple in the store and on disk.

Definition at line 4981 of file wallet.cpp.

References EncodeDestination(), WalletBatch::EraseDestData(), and mapAddressBook.

Referenced by WalletModel::saveReceiveRequest().

◆ GetAllReserveKeys()

const std::map<CKeyID, int64_t>& CWallet::GetAllReserveKeys ( ) const
inline

Definition at line 1122 of file wallet.h.

References m_pool_key_to_index.

Referenced by dumpwallet().

◆ GetBroadcastTransactions()

bool CWallet::GetBroadcastTransactions ( ) const
inline

Inquire whether this wallet broadcasts transactions.

Definition at line 1212 of file wallet.h.

References fBroadcastTransactions.

Referenced by CWalletTx::RelayWalletTransaction(), resendwallettransactions(), sendmany(), and SendMoney().

◆ GetDBHandle()

WalletDatabase& CWallet::GetDBHandle ( )
inline

Get database handle used by this wallet.

Ideally this function would not be necessary.

Definition at line 841 of file wallet.h.

References database.

Referenced by CTransactionBuilder::CTransactionBuilder().

◆ GetDestData()

bool CWallet::GetDestData ( const CTxDestination dest,
const std::string &  key,
std::string *  value 
) const

Look up a destination data tuple in the store, return true if found false otherwise.

Definition at line 4994 of file wallet.cpp.

References mapAddressBook.

◆ GetDestValues()

std::vector< std::string > CWallet::GetDestValues ( const std::string &  prefix) const

Get all destination values matching a prefix.

Definition at line 5010 of file wallet.cpp.

References cs_wallet, LOCK, mapAddressBook, and prefix.

Referenced by WalletModel::loadReceiveRequests().

◆ GetKeyBirthTimes()

◆ GetKeyPoolSize()

unsigned int CWallet::GetKeyPoolSize ( )
inline

Definition at line 1162 of file wallet.h.

References AssertLockHeld(), cs_wallet, setExternalKeyPool, and setInternalKeyPool.

Referenced by keypoolrefill().

◆ GetName()

const std::string& CWallet::GetName ( ) const
inline

Get a name for this wallet for logging/debugging purposes.

Definition at line 848 of file wallet.h.

References m_name.

Referenced by getwalletinfo(), loadwallet(), and walletpassphrase().

◆ GetVersion()

int CWallet::GetVersion ( )
inline

get the current wallet format (the oldest client version guaranteed to understand this wallet)

Definition at line 1175 of file wallet.h.

References cs_wallet, LOCK, and nWalletVersion.

Referenced by CreateWalletFromFile(), and getwalletinfo().

◆ InitAutoBackup()

bool CWallet::InitAutoBackup ( )
static

◆ IsAbortingRescan()

bool CWallet::IsAbortingRescan ( )
inline

Definition at line 978 of file wallet.h.

References fAbortRescan.

Referenced by abortrescan(), and rescanblockchain().

◆ IsScanning()

bool CWallet::IsScanning ( )
inline

Definition at line 979 of file wallet.h.

References fScanningWallet.

Referenced by abortrescan().

◆ LoadDestData()

bool CWallet::LoadDestData ( const CTxDestination dest,
const std::string &  key,
const std::string &  value 
)

Adds a destination data tuple to the store, without saving it to disk.

Definition at line 4988 of file wallet.cpp.

References mapAddressBook.

Referenced by ReadKeyValue().

◆ LoadKey()

bool CWallet::LoadKey ( const CKey key,
const CPubKey pubkey 
)
inline

Adds a key to the store, without saving it to disk (used by LoadWallet)

Definition at line 1000 of file wallet.h.

References CCryptoKeyStore::AddKeyPubKey().

Referenced by ReadKeyValue().

◆ LoadMinVersion()

bool CWallet::LoadMinVersion ( int  nVersion)
inline

Definition at line 1005 of file wallet.h.

References AssertLockHeld(), cs_wallet, nWalletMaxVersion, and nWalletVersion.

Referenced by WalletBatch::LoadWallet().

◆ NotifyChainLock()

void CWallet::NotifyChainLock ( const CBlockIndex pindexChainLock,
const llmq::CChainLockSig clsig 
)
overridevirtual

Reimplemented from CValidationInterface.

Definition at line 5468 of file wallet.cpp.

References CBlockIndex::nHeight, and NotifyChainLockReceived.

◆ NotifyTransactionLock()

void CWallet::NotifyTransactionLock ( const CTransaction tx,
const llmq::CInstantSendLock islock 
)
overridevirtual

◆ postInitProcess()

void CWallet::postInitProcess ( )

Wallet post-init setup Gives the wallet a chance to register repetitive tasks and complete post-init tasks.

Definition at line 5302 of file wallet.cpp.

References ReacceptWalletTransactions().

Referenced by loadwallet().

◆ SetBroadcastTransactions()

void CWallet::SetBroadcastTransactions ( bool  broadcast)
inline

Set whether this wallet broadcasts transactions.

Definition at line 1214 of file wallet.h.

References fBroadcastTransactions.

◆ SetNull()

◆ SignTransaction()

bool CWallet::SignTransaction ( CMutableTransaction tx)

◆ Verify()

bool CWallet::Verify ( std::string  wallet_file,
bool  salvage_wallet,
std::string &  error_string,
std::string &  warning_string 
)
static

Friends And Related Function Documentation

◆ WalletRescanReserver

friend class WalletRescanReserver
friend

Definition at line 721 of file wallet.h.

Member Data Documentation

◆ cs_wallet

CCriticalSection CWallet::cs_wallet
mutable

Definition at line 836 of file wallet.h.

Referenced by WalletModel::abandonTransaction(), AbandonTransaction(), abandontransaction(), AddCryptedKey(), AddHDPubKey(), AddKey(), AddKeyPubKeyWithDB(), addmultisigaddress(), AddressTableModel::addRow(), AddToWallet(), AddToWalletIfInvolvingMe(), AddTx(), AutoBackupWallet(), AutoLockMasternodeCollaterals(), AvailableCoins(), backupwallet(), BlockConnected(), BlockDisconnected(), BlockUntilSyncedToCurrentChain(), BOOST_AUTO_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), CanSupportFeature(), WalletModel::changePassphrase(), ChangeWalletPassphrase(), CoinSelection(), CommitTransaction(), CountInputsWithAmount(), CreateCollateralTransaction(), CreateTransaction(), CTransactionBuilder::CTransactionBuilder(), DelAddressBook(), TransactionTablePriv::describe(), dumphdinfo(), dumpprivkey(), dumpwallet(), EncryptWallet(), encryptwallet(), FundTransaction(), GenerateNewKey(), getaccount(), getaccountaddress(), GetAccountAddresses(), GetAddressBalances(), getaddressesbyaccount(), GetAddressGroupings(), GetAnonymizedBalance(), GetAvailableBalance(), GetAverageAnonymizedRounds(), getbalance(), GetBalance(), GetCappedOutpointPrivateSendRounds(), GetCollateralTxDSIn(), GetConflicts(), GetDebit(), GetDecryptedHDChain(), GetDenominatedBalance(), GetDestValues(), GetImmatureBalance(), GetImmatureWatchOnlyBalance(), GetKey(), GetKeyBirthTimes(), GetKeyFromPool(), GetKeyPoolSize(), GetLegacyBalance(), getnewaddress(), GetNormalizedAnonymizedBalance(), GetOldestKeyPoolTime(), WalletModel::getOutputs(), GetPubKey(), getrawchangeaddress(), GetRealOutpointPrivateSendRounds(), getreceivedbyaccount(), getreceivedbyaddress(), GetSpendableTXs(), gettransaction(), TransactionTablePriv::getTxHex(), getunconfirmedbalance(), GetUnconfirmedBalance(), GetUnconfirmedWatchOnlyBalance(), GetVersion(), getwalletinfo(), GetWalletTx(), GetWatchOnlyBalance(), HaveKey(), importaddress(), importelectrumwallet(), importmulti(), importprivkey(), importprunedfunds(), importpubkey(), importwallet(), IncOrderPosNext(), TransactionTablePriv::index(), IsAllFromMe(), IsChange(), IsDenominated(), WalletModel::isLockedCoin(), IsLockedCoin(), IsMine(), WalletModel::isSpent(), KeypoolCountExternalKeys(), KeypoolCountInternalKeys(), keypoolrefill(), AddressTableModel::labelForDestination(), listaccounts(), listaddressbalances(), listaddressgroupings(), ListCoins(), WalletModel::listLockedCoins(), ListLockedCoins(), listlockunspent(), WalletModel::listProTxCoins(), ListProTxCoins(), listreceivedbyaccount(), listreceivedbyaddress(), listsinceblock(), listtransactions(), listunspent(), LoadHDPubKey(), LoadKeyMetadata(), LoadKeyPool(), LoadMinVersion(), LoadScriptMetadata(), WalletBatch::LoadWallet(), LoadWallet(), WalletModel::lockCoin(), LockCoin(), lockunspent(), LockWallet(), MarkConflicted(), MarkDirty(), MarkReserveKeysAsUsed(), movecmd(), NewKeyPool(), NotifyTransactionLock(), WalletModel::pollBalanceChanged(), WalletModel::prepareTransaction(), protx_list(), ReacceptWalletTransactions(), WalletBatch::RecoverKeysOnlyFilter(), AddressTablePriv::refreshAddressTable(), TransactionTablePriv::refreshWallet(), removeprunedfunds(), AddressTableModel::removeRows(), RemoveWatchOnly(), ReorderTransactions(), resendwallettransactions(), ResendWalletTransactionsBefore(), ReserveKeyFromKeyPool(), ReturnKey(), WalletModel::saveReceiveRequest(), ScanForWalletTransactions(), SelectCoinsGroupedByAddresses(), WalletModel::sendCoins(), sendfrom(), sendmany(), sendtoaddress(), setaccount(), SetAddressBook(), SetCryptedHDChain(), AddressTableModel::setData(), SetHDChain(), SetMaxVersion(), SetMinVersion(), settxfee(), signmessage(), signrawtransaction(), TransactionDesc::toHTML(), TopUpKeyPool(), TransactionAddedToMempool(), TransactionCanBeAbandoned(), TransactionRemovedFromMempool(), Unlock(), UnlockAllCoins(), WalletModel::unlockCoin(), UnlockCoin(), TransactionRecord::updateStatus(), UpdateTimeFirstKey(), TransactionTablePriv::updateWallet(), validateaddress(), walletlock(), walletpassphrase(), walletpassphrasechange(), ZapSelectTx(), and ZapWalletTx().

◆ database

◆ encrypted_batch

WalletBatch* CWallet::encrypted_batch
private

◆ fAbortRescan

std::atomic<bool> CWallet::fAbortRescan
private

Definition at line 718 of file wallet.h.

Referenced by AbortRescan(), IsAbortingRescan(), ScanForWalletTransactions(), and SetNull().

◆ fallbackFee

CFeeRate CWallet::fallbackFee = CFeeRate(DEFAULT_FALLBACK_FEE)
static

If fee estimation does not have enough data to provide estimates, use this fee instead.

Has no effect if not using fee estimation Override with -fallbackfee

Definition at line 1106 of file wallet.h.

Referenced by GetMinimumFee(), and WalletInit::ParameterInteraction().

◆ fAnonymizableTallyCached

bool CWallet::fAnonymizableTallyCached
mutableprivate

◆ fAnonymizableTallyCachedNonDenom

bool CWallet::fAnonymizableTallyCachedNonDenom
mutableprivate

◆ fBroadcastTransactions

bool CWallet::fBroadcastTransactions
private

◆ fScanningWallet

std::atomic<bool> CWallet::fScanningWallet
private

◆ hashPrevBestCoinbase

uint256 CWallet::hashPrevBestCoinbase
private

Definition at line 803 of file wallet.h.

Referenced by BlockConnected().

◆ laccentries

std::list<CAccountingEntry> CWallet::laccentries

Definition at line 897 of file wallet.h.

Referenced by AddAccountingEntry(), listaccounts(), and WalletBatch::LoadWallet().

◆ m_discard_rate

CFeeRate CWallet::m_discard_rate = CFeeRate(DEFAULT_DISCARD_FEE)
static

Definition at line 1107 of file wallet.h.

Referenced by GetDiscardRate(), and WalletInit::ParameterInteraction().

◆ m_last_block_processed

const CBlockIndex* CWallet::m_last_block_processed
private

The following is used to keep track of how far behind the wallet is from the chain sync, and to allow clients to block on us being caught up.

Note that this is not how far we've processed, we may need some rescan to have seen all transactions in the chain, but is only used to track live BlockConnected callbacks.

Protected by cs_main (see BlockUntilSyncedToCurrentChain)

Definition at line 818 of file wallet.h.

Referenced by BlockConnected(), and BlockUntilSyncedToCurrentChain().

◆ m_max_keypool_index

int64_t CWallet::m_max_keypool_index
private

Definition at line 775 of file wallet.h.

Referenced by LoadKeyPool(), SetNull(), and TopUpKeyPool().

◆ m_name

std::string CWallet::m_name
private

Wallet filename from wallet=<path> command line or config option.

Used in debug logs and to send RPCs to the right wallet instance when more than one wallet is loaded.

Definition at line 796 of file wallet.h.

Referenced by AutoBackupWallet(), and GetName().

◆ m_pool_key_to_index

◆ m_script_metadata

std::map<CScriptID, CKeyMetadata> CWallet::m_script_metadata

Definition at line 856 of file wallet.h.

Referenced by AddWatchOnly(), dumpwallet(), importwallet(), LoadScriptMetadata(), and validateaddress().

◆ mapAddressBook

◆ mapHdPubKeys

std::map<CKeyID, CHDPubKey> CWallet::mapHdPubKeys

◆ mapKeyMetadata

◆ mapMasterKeys

MasterKeyMap CWallet::mapMasterKeys

Definition at line 859 of file wallet.h.

Referenced by ChangeWalletPassphrase(), EncryptWallet(), ReadKeyValue(), and Unlock().

◆ mapOutpointRoundsCache

std::map<COutPoint, int> CWallet::mapOutpointRoundsCache
mutableprivate

Definition at line 759 of file wallet.h.

Referenced by GetRealOutpointPrivateSendRounds().

◆ mapTxSpends

TxSpends CWallet::mapTxSpends
private

◆ mapWallet

◆ minTxFee

CFeeRate CWallet::minTxFee = CFeeRate(DEFAULT_TRANSACTION_MINFEE)
static

Fees smaller than this (in duffs) are considered zero fee (for transaction creation) Override with -mintxfee.

Definition at line 1105 of file wallet.h.

Referenced by GetRequiredFee(), and WalletInit::ParameterInteraction().

◆ mutexScanning

std::mutex CWallet::mutexScanning
private

◆ nAccountingEntryNumber

uint64_t CWallet::nAccountingEntryNumber

Definition at line 904 of file wallet.h.

Referenced by AddAccountingEntry(), ReadKeyValue(), and SetNull().

◆ nKeysLeftSinceAutoBackup

◆ nLastResend

int64_t CWallet::nLastResend
private

Definition at line 740 of file wallet.h.

Referenced by ResendWalletTransactions(), and SetNull().

◆ nMasterKeyMaxID

unsigned int CWallet::nMasterKeyMaxID

Definition at line 860 of file wallet.h.

Referenced by EncryptWallet(), ReadKeyValue(), and SetNull().

◆ nNextResend

int64_t CWallet::nNextResend
private

Definition at line 739 of file wallet.h.

Referenced by ResendWalletTransactions(), and SetNull().

◆ nOrderPosNext

int64_t CWallet::nOrderPosNext

Definition at line 903 of file wallet.h.

Referenced by IncOrderPosNext(), ReadKeyValue(), ReorderTransactions(), and SetNull().

◆ NotifyAddressBookChanged

boost::signals2::signal<void (CWallet *wallet, const CTxDestination &address, const std::string &label, bool isMine, const std::string &purpose, ChangeType status)> CWallet::NotifyAddressBookChanged

◆ NotifyChainLockReceived

boost::signals2::signal<void (int height)> CWallet::NotifyChainLockReceived

ChainLock received.

Definition at line 1209 of file wallet.h.

Referenced by NotifyChainLock(), WalletModel::subscribeToCoreSignals(), and WalletModel::unsubscribeFromCoreSignals().

◆ NotifyISLockReceived

boost::signals2::signal<void ()> CWallet::NotifyISLockReceived

◆ NotifyTransactionChanged

boost::signals2::signal<void (CWallet *wallet, const uint256 &hashTx, ChangeType status)> CWallet::NotifyTransactionChanged

◆ NotifyWatchonlyChanged

boost::signals2::signal<void (bool fHaveWatchOnly)> CWallet::NotifyWatchonlyChanged

Watch-only address added.

Definition at line 1203 of file wallet.h.

Referenced by AddWatchOnly(), RemoveWatchOnly(), WalletModel::subscribeToCoreSignals(), and WalletModel::unsubscribeFromCoreSignals().

◆ nPrivateSendSalt

uint256 CWallet::nPrivateSendSalt
private

Pulled from wallet DB ("ps_salt") and used when mixing a random number of rounds.

This salt is needed to prevent an attacker from learning how many extra times the input was mixed based only on information in the blockchain.

Definition at line 824 of file wallet.h.

Referenced by InitPrivateSendSalt(), and IsFullyMixed().

◆ nRelockTime

int64_t CWallet::nRelockTime

Holds a timestamp at which point the wallet is scheduled (externally) to be relocked. Caller must arrange for actual relocking to occur via Lock().

Definition at line 1034 of file wallet.h.

Referenced by getwalletinfo(), LockWallet(), SetNull(), walletlock(), and walletpassphrase().

◆ nTimeFirstKey

int64_t CWallet::nTimeFirstKey
private

Definition at line 778 of file wallet.h.

Referenced by SetNull(), and UpdateTimeFirstKey().

◆ nWalletMaxVersion

int CWallet::nWalletMaxVersion
private

the maximum wallet format version: memory-only variable that specifies to what version this wallet may be upgraded

Definition at line 737 of file wallet.h.

Referenced by CanSupportFeature(), LoadMinVersion(), SetMaxVersion(), SetMinVersion(), and SetNull().

◆ nWalletVersion

int CWallet::nWalletVersion
private

the current wallet version: clients below this version are not able to load the wallet

Definition at line 734 of file wallet.h.

Referenced by GetVersion(), LoadMinVersion(), SetMaxVersion(), SetMinVersion(), and SetNull().

◆ setExternalKeyPool

◆ setInternalKeyPool

◆ setLockedCoins

std::set<COutPoint> CWallet::setLockedCoins

Definition at line 908 of file wallet.h.

Referenced by IsLockedCoin(), ListLockedCoins(), LockCoin(), UnlockAllCoins(), and UnlockCoin().

◆ setWalletUTXO

◆ ShowProgress

boost::signals2::signal<void (const std::string &title, int nProgress)> CWallet::ShowProgress

◆ vecAnonymizableTallyCached

std::vector<CompactTallyItem> CWallet::vecAnonymizableTallyCached
mutableprivate

Definition at line 744 of file wallet.h.

Referenced by SelectCoinsGroupedByAddresses(), and SetNull().

◆ vecAnonymizableTallyCachedNonDenom

std::vector<CompactTallyItem> CWallet::vecAnonymizableTallyCachedNonDenom
mutableprivate

Definition at line 746 of file wallet.h.

Referenced by SelectCoinsGroupedByAddresses(), and SetNull().

◆ wtxOrdered


The documentation for this class was generated from the following files:
Released under the MIT license