|
WalletDatabase & | GetDatabase () const override |
|
bool | SelectCoins (const std::vector< COutput > &vAvailableCoins, const CAmount &nTargetValue, std::set< CInputCoin > &setCoinsRet, CAmount &nValueRet, const CCoinControl &coin_control, CoinSelectionParams &coin_selection_params, bool &bnb_used) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| 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...
|
|
const std::string & | GetName () const |
| Get a name for this wallet for logging/debugging purposes. More...
|
|
| CWallet (interfaces::Chain *chain, const std::string &name, std::unique_ptr< WalletDatabase > database) |
| Construct wallet with specified name and database implementation. More...
|
|
| ~CWallet () |
|
bool | IsCrypted () const |
|
bool | IsLocked () const override |
|
bool | Lock () |
|
bool | HaveChain () const |
| Interface to assert chain access. More...
|
|
std::map< uint256, CWalletTx > mapWallet | GUARDED_BY (cs_wallet) |
|
int64_t nOrderPosNext | GUARDED_BY (cs_wallet)=0 |
|
std::map< CTxDestination, CAddressBookData > m_address_book | GUARDED_BY (cs_wallet) |
|
const CAddressBookData * | FindAddressBookEntry (const CTxDestination &, bool allow_change=false) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
std::set< COutPoint > setLockedCoins | GUARDED_BY (cs_wallet) |
|
interfaces::Chain & | chain () const |
| Interface for accessing chain state. More...
|
|
const CWalletTx * | GetWalletTx (const uint256 &hash) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
bool | IsTrusted (const CWalletTx &wtx, std::set< uint256 > &trusted_parents) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
bool | CanSupportFeature (enum WalletFeature wf) const override EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| check whether we support 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 EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| populate vCoins with vector of available COutputs. More...
|
|
std::map< CTxDestination, std::vector< COutput > > | ListCoins () const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| Return list of available coins and locked coins grouped by non-change output address. More...
|
|
const CTxOut & | FindNonChangeParentOutput (const CTransaction &tx, int output) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| Find non-change parent output. More...
|
|
bool | SelectCoinsMinConf (const CAmount &nTargetValue, const CoinEligibilityFilter &eligibility_filter, std::vector< OutputGroup > groups, std::set< CInputCoin > &setCoinsRet, CAmount &nValueRet, const CoinSelectionParams &coin_selection_params, bool &bnb_used) 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 EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| Outpoint is spent if any non-conflicted transaction spends it: More...
|
|
bool | IsSpentKey (const uint256 &hash, unsigned int n) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
void | SetSpentKeyState (WalletBatch &batch, const uint256 &hash, unsigned int n, bool used, std::set< CTxDestination > &tx_destinations) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
std::vector< OutputGroup > | GroupOutputs (const std::vector< COutput > &outputs, bool single_coin, const size_t max_ancestors) const |
|
bool | IsLockedCoin (uint256 hash, unsigned int n) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
void | LockCoin (const COutPoint &output) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
void | UnlockCoin (const COutPoint &output) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
void | UnlockAllCoins () EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
void | ListLockedCoins (std::vector< COutPoint > &vOutpts) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
void | AbortRescan () |
|
bool | IsAbortingRescan () const |
|
bool | IsScanning () const |
|
int64_t | ScanningDuration () const |
|
double | ScanningProgress () const |
|
void | UpgradeKeyMetadata () EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| Upgrade stored CKeyMetadata objects to store key origin info as KeyOriginInfo. More...
|
|
bool | LoadMinVersion (int nVersion) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
bool | AddDestData (WalletBatch &batch, const CTxDestination &dest, const std::string &key, const std::string &value) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| Adds a destination data tuple to the store, and saves it to disk When adding new fields, take care to consider how DelAddressBook should handle it! More...
|
|
bool | EraseDestData (WalletBatch &batch, const CTxDestination &dest, const std::string &key) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| Erases a destination data tuple in the store and on disk. More...
|
|
void | LoadDestData (const CTxDestination &dest, const std::string &key, const std::string &value) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| 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 EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| 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 EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| Get all destination values matching a prefix. More...
|
|
int64_t nRelockTime | GUARDED_BY (cs_wallet) |
| 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...
|
|
bool | Unlock (const SecureString &strWalletPassphrase, bool accept_no_keys=false) |
|
bool | ChangeWalletPassphrase (const SecureString &strOldWalletPassphrase, const SecureString &strNewWalletPassphrase) |
|
bool | EncryptWallet (const SecureString &strWalletPassphrase) |
|
void | GetKeyBirthTimes (std::map< CKeyID, int64_t > &mapKeyBirth) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
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) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| Increment the next transaction order id. More...
|
|
DBErrors | ReorderTransactions () |
|
void | MarkDirty () |
|
CWalletTx * | AddToWallet (CTransactionRef tx, const CWalletTx::Confirmation &confirm, const UpdateWalletTxFn &update_wtx=nullptr, bool fFlushOnClose=true) |
|
bool | LoadToWallet (const uint256 &hash, const UpdateWalletTxFn &fill_wtx) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
void | transactionAddedToMempool (const CTransactionRef &tx, uint64_t mempool_sequence) override |
|
void | blockConnected (const CBlock &block, int height) override |
|
void | blockDisconnected (const CBlock &block, int height) override |
|
void | updatedBlockTip () override |
|
int64_t | RescanFromTime (int64_t startTime, const WalletRescanReserver &reserver, bool update) |
| Scan active chain for relevant transactions after importing keys. More...
|
|
ScanResult | ScanForWalletTransactions (const uint256 &start_block, int start_height, Optional< int > max_height, const WalletRescanReserver &reserver, bool fUpdate) |
| Scan the block chain (starting in start_block) for transactions from or to us. More...
|
|
void | transactionRemovedFromMempool (const CTransactionRef &tx, MemPoolRemovalReason reason, uint64_t mempool_sequence) override |
|
void | ReacceptWalletTransactions () EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
void | ResendWalletTransactions () |
|
Balance | GetBalance (int min_depth=0, bool avoid_reuse=true) const |
|
CAmount | GetAvailableBalance (const CCoinControl *coinControl=nullptr) const |
|
OutputType | TransactionChangeType (const Optional< OutputType > &change_type, const std::vector< CRecipient > &vecSend) const |
|
bool | FundTransaction (CMutableTransaction &tx, CAmount &nFeeRet, int &nChangePosInOut, bilingual_str &error, bool lockUnspents, const std::set< int > &setSubtractFeeFromOutputs, CCoinControl) |
| Insert additional inputs into the transaction by calling CreateTransaction();. More...
|
|
bool | SignTransaction (CMutableTransaction &tx) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
bool | SignTransaction (CMutableTransaction &tx, const std::map< COutPoint, Coin > &coins, int sighash, std::map< int, std::string > &input_errors) const |
|
SigningResult | SignMessage (const std::string &message, const PKHash &pkhash, std::string &str_sig) const |
|
TransactionError | FillPSBT (PartiallySignedTransaction &psbtx, bool &complete, int sighash_type=1, bool sign=true, bool bip32derivs=true, size_t *n_signed=nullptr) const |
| Fills out a PSBT with information from the wallet. More...
|
|
bool | CreateTransaction (const std::vector< CRecipient > &vecSend, CTransactionRef &tx, CAmount &nFeeRet, int &nChangePosInOut, bilingual_str &error, const CCoinControl &coin_control, FeeCalculation &fee_calc_out, bool sign=true) |
| Create a new transaction paying the recipients with a set of coins selected by SelectCoins(); Also create the change output, when needed. More...
|
|
void | CommitTransaction (CTransactionRef tx, mapValue_t mapValue, std::vector< std::pair< std::string, std::string >> orderForm) |
| Submit the transaction to the node's mempool and then relay to peers. More...
|
|
bool | DummySignTx (CMutableTransaction &txNew, const std::set< CTxOut > &txouts, bool use_max_sig=false) const |
|
bool | DummySignTx (CMutableTransaction &txNew, const std::vector< CTxOut > &txouts, bool use_max_sig=false) const |
|
bool | DummySignInput (CTxIn &tx_in, const CTxOut &txout, bool use_max_sig=false) const |
|
bool | ImportScripts (const std::set< CScript > scripts, int64_t timestamp) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
bool | ImportPrivKeys (const std::map< CKeyID, CKey > &privkey_map, const int64_t timestamp) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
bool | ImportPubKeys (const std::vector< CKeyID > &ordered_pubkeys, const std::map< CKeyID, CPubKey > &pubkey_map, const std::map< CKeyID, std::pair< CPubKey, KeyOriginInfo >> &key_origins, const bool add_keypool, const bool internal, const int64_t timestamp) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
bool | ImportScriptPubKeys (const std::string &label, const std::set< CScript > &script_pub_keys, const bool have_solving_data, const bool apply_label, const int64_t timestamp) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
size_t | KeypoolCountExternalKeys () const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
bool | TopUpKeyPool (unsigned int kpSize=0) |
|
int64_t | GetOldestKeyPoolTime () const |
|
std::set< std::set< CTxDestination > > | GetAddressGroupings () const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
std::map< CTxDestination, CAmount > | GetAddressBalances () const |
|
std::set< CTxDestination > | GetLabelAddresses (const std::string &label) const |
|
void | MarkDestinationsDirty (const std::set< CTxDestination > &destinations) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| Marks all outputs in each one of the destinations dirty, so their cache is reset and does not return outdated information. More...
|
|
bool | GetNewDestination (const OutputType type, const std::string label, CTxDestination &dest, std::string &error) |
|
bool | GetNewChangeDestination (const OutputType type, CTxDestination &dest, std::string &error) |
|
isminetype | IsMine (const CTxDestination &dest) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
isminetype | IsMine (const CScript &script) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
isminetype | IsMine (const CTxIn &txin) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
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 EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
CAmount | GetCredit (const CTxOut &txout, const isminefilter &filter) const |
|
bool | IsChange (const CTxOut &txout) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
bool | IsChange (const CScript &script) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
CAmount | GetChange (const CTxOut &txout) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
bool | IsMine (const CTransaction &tx) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
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 | chainStateFlushed (const CBlockLocator &loc) override |
|
DBErrors | LoadWallet (bool &fFirstRunRet) |
|
DBErrors | ZapSelectTx (std::vector< uint256 > &vHashIn, std::vector< uint256 > &vHashOut) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
bool | SetAddressBook (const CTxDestination &address, const std::string &strName, const std::string &purpose) |
|
bool | DelAddressBook (const CTxDestination &address) |
|
unsigned int | GetKeyPoolSize () const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
void | SetMinVersion (enum WalletFeature, WalletBatch *batch_in=nullptr) override |
| signify that a particular wallet feature is now used. More...
|
|
int | GetVersion () const |
| get the current wallet format (the oldest client version guaranteed to understand this wallet) More...
|
|
std::set< uint256 > | GetConflicts (const uint256 &txid) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| Get wallet transactions that conflict with given transaction (spend same outputs) More...
|
|
bool | HasWalletSpend (const uint256 &txid) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| Check if a given transaction has any of its outputs spent by another transaction in the wallet. More...
|
|
void | Flush () |
| Flush wallet (bitdb flush) More...
|
|
void | Close () |
| Close wallet database. 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 () |
| 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) const |
|
bool | IsHDEnabled () const |
|
bool | CanGetAddresses (bool internal=false) const |
|
void BlockUntilSyncedToCurrentChain() const EXCLUSIVE_LOCKS_REQUIRED(! void | SetWalletFlag (uint64_t flags) |
| 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...
|
|
void | UnsetWalletFlag (uint64_t flag) |
| Unsets a single wallet flag. More...
|
|
bool | IsWalletFlagSet (uint64_t flag) const override |
| check if a certain wallet flag is set More...
|
|
bool | AddWalletFlags (uint64_t flags) |
| overwrite all flags by the given uint64_t returns false if unknown, non-tolerable flags are present More...
|
|
bool | LoadWalletFlags (uint64_t flags) |
| Loads the flags into the wallet. More...
|
|
bool | IsLegacy () const |
| Determine if we are a legacy wallet. More...
|
|
const std::string | GetDisplayName () const override |
| Returns a bracketed wallet name for displaying in logs, will return [default wallet] if the wallet has no name. More...
|
|
template<typename... Params> |
void | WalletLogPrintf (std::string fmt, Params... parameters) const |
| Prepends the wallet name in logging output to ease debugging in multi-wallet use cases. More...
|
|
bool | UpgradeWallet (int version, bilingual_str &error) |
| Upgrade the wallet. More...
|
|
std::set< ScriptPubKeyMan * > | GetActiveScriptPubKeyMans () const |
| Returns all unique ScriptPubKeyMans in m_internal_spk_managers and m_external_spk_managers. More...
|
|
std::set< ScriptPubKeyMan * > | GetAllScriptPubKeyMans () const |
| Returns all unique ScriptPubKeyMans. More...
|
|
ScriptPubKeyMan * | GetScriptPubKeyMan (const OutputType &type, bool internal) const |
| Get the ScriptPubKeyMan for the given OutputType and internal/external chain. More...
|
|
ScriptPubKeyMan * | GetScriptPubKeyMan (const CScript &script) const |
| Get the ScriptPubKeyMan for a script. More...
|
|
ScriptPubKeyMan * | GetScriptPubKeyMan (const uint256 &id) const |
| Get the ScriptPubKeyMan by id. More...
|
|
std::set< ScriptPubKeyMan * > | GetScriptPubKeyMans (const CScript &script, SignatureData &sigdata) const |
| Get all of the ScriptPubKeyMans for a script given additional information in sigdata (populated by e.g. a psbt) More...
|
|
std::unique_ptr< SigningProvider > | GetSolvingProvider (const CScript &script) const |
| Get the SigningProvider for a script. More...
|
|
std::unique_ptr< SigningProvider > | GetSolvingProvider (const CScript &script, SignatureData &sigdata) const |
|
LegacyScriptPubKeyMan * | GetLegacyScriptPubKeyMan () const |
| Get the LegacyScriptPubKeyMan which is used for all types, internal, and external. More...
|
|
LegacyScriptPubKeyMan * | GetOrCreateLegacyScriptPubKeyMan () |
|
void | SetupLegacyScriptPubKeyMan () |
| Make a LegacyScriptPubKeyMan and set it for all types, internal, and external. More...
|
|
const CKeyingMaterial & | GetEncryptionKey () const override |
|
bool | HasEncryptionKeys () const override |
|
int | GetLastBlockHeight () const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| Get last block processed height. More...
|
|
uint256 | GetLastBlockHash () const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
|
void | SetLastBlockProcessed (int block_height, uint256 block_hash) EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| Set last block processed height, currently only use in unit test. More...
|
|
void | ConnectScriptPubKeyManNotifiers () |
| Connect the signals from ScriptPubKeyMans to the signals in CWallet. More...
|
|
void | LoadDescriptorScriptPubKeyMan (uint256 id, WalletDescriptor &desc) |
| Instantiate a descriptor ScriptPubKeyMan from the WalletDescriptor and load it. More...
|
|
void | AddActiveScriptPubKeyMan (uint256 id, OutputType type, bool internal) |
| Adds the active ScriptPubKeyMan for the specified type and internal. More...
|
|
void | LoadActiveScriptPubKeyMan (uint256 id, OutputType type, bool internal) |
| Loads an active ScriptPubKeyMan for the specified type and internal. More...
|
|
void | SetupDescriptorScriptPubKeyMans () EXCLUSIVE_LOCKS_REQUIRED(cs_wallet) |
| Create new DescriptorScriptPubKeyMans and add them to the wallet. More...
|
|
DescriptorScriptPubKeyMan * | GetDescriptorScriptPubKeyMan (const WalletDescriptor &desc) const |
| Return the DescriptorScriptPubKeyMan for a WalletDescriptor if it is already in the wallet. More...
|
|
ScriptPubKeyMan * | AddWalletDescriptor (WalletDescriptor &desc, const FlatSigningProvider &signing_provider, const std::string &label, bool internal) |
| Add a descriptor to the wallet, return a ScriptPubKeyMan & associated output type. More...
|
|
virtual | ~WalletStorage ()=default |
|
virtual | ~Notifications () |
|