Fabcoin Core  0.16.2
P2P Digital Currency
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
CWallet Class Reference

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:
[legend]
Collaboration diagram for CWallet:
[legend]

Public Types

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

Public Member Functions

CWalletDBWrapperGetDBHandle ()
 Get database handle used by this wallet. More...
 
std::string GetName () const
 Get a name for this wallet for logging/debugging purposes. More...
 
void LoadKeyPool (int64_t nIndex, const CKeyPool &keypool)
 
 CWallet ()
 
 CWallet (std::unique_ptr< CWalletDBWrapper > dbw_in)
 
 ~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) 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 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 AbortRescan ()
 
bool IsAbortingRescan ()
 
bool IsScanning ()
 
CPubKey GenerateNewKey (CWalletDB &walletdb, bool internal=false)
 keystore implementation Generate a new key More...
 
bool AddKeyPubKey (const CKey &key, const CPubKey &pubkey) override
 Adds a key to the store, and saves it to disk. More...
 
bool AddKeyPubKeyWithDB (CWalletDB &walletdb, 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 CTxDestination &pubKey, const CKeyMetadata &metadata)
 Load metadata (used by LoadWallet) More...
 
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/fabcoin/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 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...
 
bool LoadToken (const CTokenInfo &token)
 
bool LoadTokenTx (const CTokenTx &tokenTx)
 
bool LoadContractData (const std::string &address, const std::string &key, const std::string &value)
 Adds a contract data tuple to the store, without saving it to disk. More...
 
int64_t IncOrderPosNext (CWalletDB *pwalletdb=nullptr)
 Increment the next transaction order id. More...
 
DBErrors ReorderTransactions ()
 
bool AccountMove (std::string strFrom, std::string strTo, CAmount nAmount, std::string strComment="")
 
bool GetAccountPubkey (CPubKey &pubKey, 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) 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) 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, bool update)
 Scan active chain for relevant transactions after importing keys. More...
 
CBlockIndexScanForWalletTransactions (CBlockIndex *pindexStart, bool fUpdate=false)
 Scan the block chain (starting in pindexStart) for transactions from or to us. 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
 
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, CAmount nGasFee=0, bool hasSender=false)
 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...
 
void ListAccountCreditDebit (const std::string &strAccount, std::list< CAccountingEntry > &entries)
 
bool AddAccountingEntry (const CAccountingEntry &)
 
bool AddAccountingEntry (const CAccountingEntry &, CWalletDB *pwalletdb)
 
template<typename ContainerType >
bool DummySignTx (CMutableTransaction &txNew, const ContainerType &coins) const
 
bool NewKeyPool ()
 Mark old keypool keys as used, and generate all new keys. More...
 
size_t KeypoolCountExternalKeys ()
 
bool TopUpKeyPool (unsigned int kpSize=0)
 
void ReserveKeyFromKeyPool (int64_t &nIndex, CKeyPool &keypool, bool fRequestedInternal)
 
void KeepKey (int64_t nIndex)
 
void ReturnKey (int64_t nIndex, bool fInternal, const CPubKey &pubkey)
 
bool GetKeyFromPool (CPubKey &key, bool internal=false)
 
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)
 
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
 
bool SetContractBook (const std::string &strAddress, const std::string &strName, const std::string &strAbi)
 
bool DelContractBook (const std::string &strAddress)
 
void Inventory (const uint256 &hash) override
 Notifies listeners about an inventory item being seen on the network. More...
 
void GetScriptForMining (std::shared_ptr< CReserveScript > &script)
 
void ResetRequestCount (const uint256 &hash)
 
unsigned int GetKeyPoolSize ()
 
bool SetDefaultKey (const CPubKey &vchPubKey)
 
bool SetMinVersion (enum WalletFeature, CWalletDB *pwalletdbIn=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...
 
bool HasWalletSpend (const uint256 &txid) const
 Check if a given transaction has any of its outputs spent by another transaction in the wallet. 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)
 
bool MarkReplaced (const uint256 &originalHash, const uint256 &newHash)
 Mark a transaction as replaced by another transaction (e.g., BIP 125). More...
 
void postInitProcess (CScheduler &scheduler)
 Wallet post-init setup Gives the wallet a chance to register repetitive tasks and complete post-init tasks. More...
 
bool BackupWallet (const std::string &strDest)
 
bool SetHDChain (const CHDChain &chain, bool memonly)
 
const CHDChainGetHDChain () const
 
bool IsHDEnabled () const
 
CPubKey GenerateNewHDMasterKey ()
 
bool SetHDMasterKey (const CPubKey &key)
 
bool AddTokenEntry (const CTokenInfo &token, bool fFlushOnClose=true)
 
bool AddTokenTxEntry (const CTokenTx &tokenTx, bool fFlushOnClose=true)
 
bool GetTokenTxDetails (const CTokenTx &wtx, uint256 &credit, uint256 &debit, std::string &tokenSymbol, uint8_t &decimals) const
 
bool IsTokenTxMine (const CTokenTx &wtx) const
 
bool RemoveTokenEntry (const uint256 &tokenHash, bool fFlushOnClose=true)
 
- Public Member Functions inherited from CCryptoKeyStore
 CCryptoKeyStore ()
 
bool IsCrypted () const
 
bool IsLocked () const
 
bool Lock ()
 
bool HaveKey (const CKeyID &address) const override
 Check whether a key corresponding to a given address is present in the store. More...
 
bool GetKey (const CKeyID &address, CKey &keyOut) const override
 
bool GetPubKey (const CKeyID &address, CPubKey &vchPubKeyOut) const override
 
void GetKeys (std::set< CKeyID > &setAddress) const override
 
- Public Member Functions inherited from CBasicKeyStore
virtual bool HaveCScript (const CScriptID &hash) const override
 
virtual bool GetCScript (const CScriptID &hash, CScript &redeemScriptOut) const override
 
virtual bool HaveWatchOnly (const CScript &dest) const override
 
virtual bool HaveWatchOnly () const override
 
- Public Member Functions inherited from CKeyStore
virtual ~CKeyStore ()
 
virtual bool AddKey (const CKey &key)
 

Static Public Member Functions

static CAmount GetMinimumFee (unsigned int nTxBytes, const CCoinControl &coin_control, const CTxMemPool &pool, const CBlockPolicyEstimator &estimator, FeeCalculation *feeCalc)
 Estimate the minimum fee considering user set parameters and the required fee. More...
 
static CAmount GetRequiredFee (unsigned int nTxBytes)
 Return the minimum required fee taking into account the floating relay fee and user set minimum transaction fee. More...
 
static bool Verify ()
 Responsible for reading and validating the -wallet arguments and verifying the wallet database. More...
 
static std::string GetWalletHelpString (bool showDebug)
 
static CWalletCreateWalletFromFile (const std::string walletFile)
 
static bool InitLoadWallet ()
 
static bool ParameterInteraction ()
 

Public Attributes

CCriticalSection cs_wallet
 
std::map< CTxDestination, CKeyMetadatamapKeyMetadata
 
MasterKeyMap mapMasterKeys
 
unsigned int nMasterKeyMaxID
 
std::map< uint256, CWalletTxmapWallet
 
std::list< CAccountingEntrylaccentries
 
TxItems wtxOrdered
 
int64_t nOrderPosNext
 
uint64_t nAccountingEntryNumber
 
std::map< uint256, int > mapRequestCount
 
std::map< CTxDestination, CAddressBookDatamapAddressBook
 
std::map< std::string, CContractBookDatamapContractBook
 
CPubKey vchDefaultKey
 
std::set< COutPointsetLockedCoins
 
std::map< uint256, CTokenInfomapToken
 
std::map< uint256, CTokenTxmapTokenTx
 
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(CWallet *wallet, const uint256 &hashTx, ChangeType status)> NotifyTokenTransactionChanged
 Wallet token 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(CWallet *wallet, const uint256 &hashToken, ChangeType status)> NotifyTokenChanged
 Wallet transaction added, removed or updated. More...
 
boost::signals2::signal< void(CWallet *wallet, const std::string &address, const std::string &label, const std::string &abi, ChangeType status)> NotifyContractBookChanged
 Contract book entry changed. 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 liu) 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 (CWalletDB &walletdb, CKeyMetadata &metadata, CKey &secret, bool internal=false)
 
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...
 

Private Attributes

std::atomic< bool > fAbortRescan
 
std::atomic< bool > fScanningWallet
 
CWalletDBpwalletdbEncryption
 
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
 
TxSpends mapTxSpends
 
CHDChain hdChain
 
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::unique_ptr< CWalletDBWrapperdbw
 

Static Private Attributes

static std::atomic< bool > fFlushScheduled
 

Additional Inherited Members

- Protected Member Functions inherited from CCryptoKeyStore
bool SetCrypted ()
 
bool EncryptKeys (CKeyingMaterial &vMasterKeyIn)
 will encrypt previously unencrypted keys More...
 
bool Unlock (const CKeyingMaterial &vMasterKeyIn)
 
- Protected Member Functions inherited from CValidationInterface
virtual void UpdatedBlockTip (const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload)
 Notifies listeners of updated block chain tip. More...
 
virtual void SyncTransaction (const CTransaction &tx, const CBlockIndex *pindex, int posInBlock)
 
virtual void UpdatedTransaction (const uint256 &hash)
 
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 CBasicKeyStore
KeyMap mapKeys
 
WatchKeyMap mapWatchKeys
 
ScriptMap mapScripts
 
WatchOnlySet setWatchOnly
 
- 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 672 of file wallet.h.

Member Typedef Documentation

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

Definition at line 775 of file wallet.h.

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

Definition at line 819 of file wallet.h.

Definition at line 818 of file wallet.h.

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 703 of file wallet.h.

Constructor & Destructor Documentation

CWallet::CWallet ( )
inline

Definition at line 780 of file wallet.h.

CWallet::CWallet ( std::unique_ptr< CWalletDBWrapper dbw_in)
inline

Definition at line 786 of file wallet.h.

CWallet::~CWallet ( )
inline

Definition at line 791 of file wallet.h.

Member Function Documentation

void CWallet::AbortRescan ( )
inline

Definition at line 877 of file wallet.h.

Here is the caller graph for this function:

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 3912 of file wallet.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool CWallet::AddTokenEntry ( const CTokenInfo token,
bool  fFlushOnClose = true 
)

Definition at line 4372 of file wallet.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool CWallet::AddTokenTxEntry ( const CTokenTx tokenTx,
bool  fFlushOnClose = true 
)

Definition at line 4421 of file wallet.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 4351 of file wallet.cpp.

Here is the caller graph for this function:

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 841 of file wallet.h.

Here is the caller graph for this function:

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://fabcointalk.org/?topic=54527, or https://github.com/blockchaingate/fabcoin/pull/1393.

Definition at line 3868 of file wallet.cpp.

Here is the call graph for this function:

CWallet * CWallet::CreateWalletFromFile ( const std::string  walletFile)
static

Definition at line 4005 of file wallet.cpp.

Here is the call graph for this function:

bool CWallet::DelContractBook ( const std::string &  strAddress)

Definition at line 4663 of file wallet.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename ContainerType >
bool CWallet::DummySignTx ( CMutableTransaction txNew,
const ContainerType &  coins 
) const

Definition at line 1274 of file wallet.h.

Here is the call graph for this function:

Here is the caller graph for this function:

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

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

Definition at line 3921 of file wallet.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 1017 of file wallet.h.

Here is the call graph for this function:

Here is the caller graph for this function:

bool CWallet::GetBroadcastTransactions ( ) const
inline

Inquire whether this wallet broadcasts transactions.

Definition at line 1145 of file wallet.h.

Here is the caller graph for this function:

CWalletDBWrapper& CWallet::GetDBHandle ( )
inline

Get database handle used by this wallet.

Ideally this function would not be necessary.

Definition at line 753 of file wallet.h.

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 3934 of file wallet.cpp.

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

Get all destination values matching a prefix.

Definition at line 3950 of file wallet.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

const CHDChain& CWallet::GetHDChain ( ) const
inline

Definition at line 1178 of file wallet.h.

Here is the caller graph for this function:

void CWallet::GetKeyBirthTimes ( std::map< CTxDestination, int64_t > &  mapKeyBirth) const

Definition at line 3793 of file wallet.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned int CWallet::GetKeyPoolSize ( )
inline

Definition at line 1075 of file wallet.h.

Here is the caller graph for this function:

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

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

Definition at line 760 of file wallet.h.

Here is the caller graph for this function:

bool CWallet::GetTokenTxDetails ( const CTokenTx wtx,
uint256 credit,
uint256 debit,
std::string &  tokenSymbol,
uint8_t &  decimals 
) const

Definition at line 4555 of file wallet.cpp.

Here is the caller graph for this function:

int CWallet::GetVersion ( )
inline

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

Definition at line 1090 of file wallet.h.

Here is the caller graph for this function:

std::string CWallet::GetWalletHelpString ( bool  showDebug)
static

Definition at line 3964 of file wallet.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool CWallet::InitLoadWallet ( )
static

Definition at line 4198 of file wallet.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void CWallet::Inventory ( const uint256 hash)
inlineoverridevirtual

Notifies listeners about an inventory item being seen on the network.

Reimplemented from CValidationInterface.

Definition at line 1058 of file wallet.h.

bool CWallet::IsAbortingRescan ( )
inline

Definition at line 878 of file wallet.h.

Here is the caller graph for this function:

bool CWallet::IsScanning ( )
inline

Definition at line 879 of file wallet.h.

Here is the caller graph for this function:

bool CWallet::IsTokenTxMine ( const CTokenTx wtx) const

Definition at line 4586 of file wallet.cpp.

bool CWallet::LoadContractData ( const std::string &  address,
const std::string &  key,
const std::string &  value 
)

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

Definition at line 4678 of file wallet.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

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 3928 of file wallet.cpp.

Here is the caller graph for this function:

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 890 of file wallet.h.

Here is the call graph for this function:

Here is the caller graph for this function:

bool CWallet::LoadMinVersion ( int  nVersion)
inline

Definition at line 894 of file wallet.h.

Here is the call graph for this function:

Here is the caller graph for this function:

bool CWallet::LoadToken ( const CTokenInfo token)

Definition at line 4356 of file wallet.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool CWallet::LoadTokenTx ( const CTokenTx tokenTx)

Definition at line 4364 of file wallet.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool CWallet::ParameterInteraction ( )
static

Definition at line 4230 of file wallet.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void CWallet::postInitProcess ( CScheduler scheduler)

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

Definition at line 4218 of file wallet.cpp.

Here is the call graph for this function:

bool CWallet::RemoveTokenEntry ( const uint256 tokenHash,
bool  fFlushOnClose = true 
)

Definition at line 4607 of file wallet.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void CWallet::ResetRequestCount ( const uint256 hash)
inlinevirtual

Reimplemented from CValidationInterface.

Definition at line 1069 of file wallet.h.

void CWallet::SetBroadcastTransactions ( bool  broadcast)
inline

Set whether this wallet broadcasts transactions.

Definition at line 1147 of file wallet.h.

Here is the caller graph for this function:

bool CWallet::SetContractBook ( const std::string &  strAddress,
const std::string &  strName,
const std::string &  strAbi 
)

Definition at line 4644 of file wallet.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void CWallet::SetNull ( )
inline

Definition at line 797 of file wallet.h.

Member Data Documentation

CCriticalSection CWallet::cs_wallet
mutable

Definition at line 748 of file wallet.h.

std::unique_ptr<CWalletDBWrapper> CWallet::dbw
private

Definition at line 741 of file wallet.h.

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

Definition at line 676 of file wallet.h.

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 992 of file wallet.h.

bool CWallet::fBroadcastTransactions
private

Definition at line 696 of file wallet.h.

std::atomic< bool > CWallet::fFlushScheduled
staticprivate

Definition at line 675 of file wallet.h.

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

Definition at line 677 of file wallet.h.

CHDChain CWallet::hdChain
private

Definition at line 718 of file wallet.h.

std::list<CAccountingEntry> CWallet::laccentries

Definition at line 816 of file wallet.h.

CFeeRate CWallet::m_discard_rate = CFeeRate(DEFAULT_DISCARD_FEE)
static

Definition at line 993 of file wallet.h.

int64_t CWallet::m_max_keypool_index
private

Definition at line 725 of file wallet.h.

std::map<CKeyID, int64_t> CWallet::m_pool_key_to_index
private

Definition at line 726 of file wallet.h.

std::map<CTxDestination, CAddressBookData> CWallet::mapAddressBook

Definition at line 826 of file wallet.h.

std::map<std::string, CContractBookData> CWallet::mapContractBook

Definition at line 828 of file wallet.h.

std::map<CTxDestination, CKeyMetadata> CWallet::mapKeyMetadata

Definition at line 773 of file wallet.h.

MasterKeyMap CWallet::mapMasterKeys

Definition at line 776 of file wallet.h.

std::map<uint256, int> CWallet::mapRequestCount

Definition at line 824 of file wallet.h.

std::map<uint256, CTokenInfo> CWallet::mapToken

Definition at line 834 of file wallet.h.

std::map<uint256, CTokenTx> CWallet::mapTokenTx

Definition at line 836 of file wallet.h.

TxSpends CWallet::mapTxSpends
private

Definition at line 704 of file wallet.h.

std::map<uint256, CWalletTx> CWallet::mapWallet

Definition at line 815 of file wallet.h.

CFeeRate CWallet::minTxFee = CFeeRate(DEFAULT_TRANSACTION_MINFEE)
static

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

Definition at line 991 of file wallet.h.

uint64_t CWallet::nAccountingEntryNumber

Definition at line 823 of file wallet.h.

int64_t CWallet::nLastResend
private

Definition at line 695 of file wallet.h.

unsigned int CWallet::nMasterKeyMaxID

Definition at line 777 of file wallet.h.

int64_t CWallet::nNextResend
private

Definition at line 694 of file wallet.h.

int64_t CWallet::nOrderPosNext

Definition at line 822 of file wallet.h.

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

Address book entry changed.

Note
called with lock cs_wallet held.

Definition at line 1113 of file wallet.h.

boost::signals2::signal<void (CWallet *wallet, const std::string &address, const std::string &label, const std::string &abi, ChangeType status)> CWallet::NotifyContractBookChanged

Contract book entry changed.

Definition at line 1142 of file wallet.h.

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

Wallet transaction added, removed or updated.

Definition at line 1137 of file wallet.h.

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

Wallet token transaction added, removed or updated.

Note
called with lock cs_wallet held.

Definition at line 1127 of file wallet.h.

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

Wallet transaction added, removed or updated.

Note
called with lock cs_wallet held.

Definition at line 1120 of file wallet.h.

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

Watch-only address added.

Definition at line 1133 of file wallet.h.

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 922 of file wallet.h.

int64_t CWallet::nTimeFirstKey
private

Definition at line 728 of file wallet.h.

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 692 of file wallet.h.

int CWallet::nWalletVersion
private

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

Definition at line 689 of file wallet.h.

CWalletDB* CWallet::pwalletdbEncryption
private

Definition at line 686 of file wallet.h.

std::set<int64_t> CWallet::setExternalKeyPool
private

Definition at line 724 of file wallet.h.

std::set<int64_t> CWallet::setInternalKeyPool
private

Definition at line 723 of file wallet.h.

std::set<COutPoint> CWallet::setLockedCoins

Definition at line 832 of file wallet.h.

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

Show progress e.g.

for rescan

Definition at line 1130 of file wallet.h.

CPubKey CWallet::vchDefaultKey

Definition at line 830 of file wallet.h.

TxItems CWallet::wtxOrdered

Definition at line 820 of file wallet.h.


The documentation for this class was generated from the following files: