Bitcoin Core  22.99.0
P2P Digital Currency
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
wallet Namespace Reference

Namespaces

 DBKeys
 
 feebumper
 
 wallet_crypto_tests
 
 WalletTool
 

Classes

struct  Balance
 
class  BerkeleyBatch
 RAII class that provides access to a Berkeley database. More...
 
class  BerkeleyDatabase
 An instance of this class represents one database. More...
 
class  BerkeleyEnvironment
 
struct  CachableAmount
 Cachable amount subdivided into watchonly and spendable parts. More...
 
class  CAddressBookData
 Address book data. More...
 
class  CCoinControl
 Coin Control Features. More...
 
class  CCrypter
 Encryption/decryption context with key information. More...
 
class  CHDChain
 
class  CInputCoin
 A UTXO under consideration for use in funding a new transaction. More...
 
class  CKeyMetadata
 
class  CKeyPool
 A key from a CWallet's keypool. More...
 
class  CMasterKey
 Private key encryption is done based on a CMasterKey, which holds a salt and random encryption key. More...
 
class  CMerkleTx
 Legacy class used for deserializing vtxPrev for backwards compatibility. More...
 
struct  CoinEligibilityFilter
 Parameters for filtering which OutputGroups we may use in coin selection. More...
 
struct  CoinSelectionParams
 Parameters for one iteration of Coin Selection. More...
 
class  COutput
 
struct  COutputEntry
 
struct  CRecipient
 
class  CWallet
 A CWallet maintains a set of transactions and balances, and provides the ability to create new transactions. More...
 
class  CWalletScanState
 
class  CWalletTx
 A transaction with a bunch of additional info that only the owner cares about. More...
 
class  DatabaseBatch
 RAII class that provides access to a WalletDatabase. More...
 
struct  DatabaseOptions
 
class  DescribeWalletAddressVisitor
 
class  DescriptorScriptPubKeyMan
 
class  DummyBatch
 RAII class that provides access to a DummyDatabase. More...
 
class  DummyDatabase
 A dummy WalletDatabase that does nothing and never fails. More...
 
class  ExternalSignerScriptPubKeyMan
 
struct  ImportData
 
struct  InitWalletDirTestingSetup
 
class  LegacyScriptPubKeyMan
 
class  LegacySigningProvider
 Wraps a LegacyScriptPubKeyMan so that it can be returned in a new unique_ptr. More...
 
class  ListCoinsTestingSetup
 
struct  OutputGroup
 A group of UTXOs paid to the same output script. More...
 
class  ReserveDestination
 A wrapper to reserve an address from a wallet. More...
 
class  ScriptPubKeyMan
 
struct  SelectionResult
 
class  SQLiteBatch
 RAII class that provides access to a WalletDatabase. More...
 
class  SQLiteDatabase
 An instance of this class represents one SQLite3 database. More...
 
struct  tallyitem
 
class  TestCrypter
 
struct  TxSize
 
struct  TxStateConfirmed
 State of transaction confirmed in a block. More...
 
struct  TxStateConflicted
 State of rejected transaction that conflicts with a confirmed block. More...
 
struct  TxStateInactive
 State of transaction not confirmed or conflicting with a known block and not in the mempool. More...
 
struct  TxStateInMempool
 State of transaction added to mempool. More...
 
struct  TxStateUnrecognized
 State of transaction loaded in an unrecognized state with unexpected hash or index values. More...
 
class  WalletBatch
 Access to the wallet database. More...
 
struct  WalletContext
 WalletContext struct containing references to state shared between CWallet instances, like the reference to the chain interface, and the list of opened wallets. More...
 
class  WalletDatabase
 An instance of this class represents one database. More...
 
struct  WalletDatabaseFileId
 
class  WalletDescriptor
 Descriptor with some wallet metadata. More...
 
struct  WalletDestination
 
class  WalletInit
 
class  WalletRescanReserver
 RAII object to check and reserve a wallet rescan. More...
 
class  WalletStorage
 
struct  WalletTestingSetup
 Testing setup and teardown for wallet. More...
 

Typedefs

using isminefilter = std::underlying_type< isminetype >::type
 used for bitflags of isminetype More...
 
using LoadWalletFn = std::function< void(std::unique_ptr< interfaces::Wallet > wallet)>
 
typedef std::vector< unsigned char, secure_allocator< unsigned char > > CKeyingMaterial
 
typedef std::pair< std::vector< unsigned char >, std::vector< unsigned char > > KeyValPair
 
typedef std::vector< unsigned char > valtype
 
typedef std::set< CInputCoinCoinSet
 
using TxState = std::variant< TxStateConfirmed, TxStateInMempool, TxStateConflicted, TxStateInactive, TxStateUnrecognized >
 All possible CWalletTx states. More...
 
using SyncTxState = std::variant< TxStateConfirmed, TxStateInMempool, TxStateInactive >
 Subset of states transaction sync logic is implemented to handle. More...
 
typedef std::map< std::string, std::string > mapValue_t
 
using KeyFilterFn = std::function< bool(const std::string &)>
 Callback for filtering key types to deserialize in ReadKeyValue. More...
 

Enumerations

enum  DatabaseFormat { DatabaseFormat::BERKELEY, DatabaseFormat::SQLITE }
 
enum  DatabaseStatus {
  DatabaseStatus::SUCCESS, DatabaseStatus::FAILED_BAD_PATH, DatabaseStatus::FAILED_BAD_FORMAT, DatabaseStatus::FAILED_ALREADY_LOADED,
  DatabaseStatus::FAILED_ALREADY_EXISTS, DatabaseStatus::FAILED_NOT_FOUND, DatabaseStatus::FAILED_CREATE, DatabaseStatus::FAILED_LOAD,
  DatabaseStatus::FAILED_VERIFY, DatabaseStatus::FAILED_ENCRYPT, DatabaseStatus::FAILED_INVALID_BACKUP_FILE
}
 
enum  isminetype : unsigned int {
  ISMINE_NO = 0, ISMINE_WATCH_ONLY = 1 << 0, ISMINE_SPENDABLE = 1 << 1, ISMINE_USED = 1 << 2,
  ISMINE_ALL = ISMINE_WATCH_ONLY | ISMINE_SPENDABLE, ISMINE_ALL_USED = ISMINE_ALL | ISMINE_USED, ISMINE_ENUM_ELEMENTS
}
 IsMine() return codes, which depend on ScriptPubKeyMan implementation. More...
 
enum  ScriptContext { ScriptContext::TOP, ScriptContext::P2SH, ScriptContext::WITNESS_V0 }
 
enum  DBErrors {
  DBErrors::LOAD_OK, DBErrors::CORRUPT, DBErrors::NONCRITICAL_ERROR, DBErrors::TOO_NEW,
  DBErrors::LOAD_FAIL, DBErrors::NEED_REWRITE, DBErrors::NEED_RESCAN
}
 Error statuses for the wallet database. More...
 
enum  WalletFeature {
  FEATURE_BASE = 10500, FEATURE_WALLETCRYPT = 40000, FEATURE_COMPRPUBKEY = 60000, FEATURE_HD = 130000,
  FEATURE_HD_SPLIT = 139900, FEATURE_NO_DEFAULT_KEY = 159900, FEATURE_PRE_SPLIT_KEYPOOL = 169900, FEATURE_LATEST = FEATURE_PRE_SPLIT_KEYPOOL
}
 (client) version numbers for particular wallet features More...
 
enum  WalletFlags : uint64_t {
  WALLET_FLAG_AVOID_REUSE = (1ULL << 0), WALLET_FLAG_KEY_ORIGIN_METADATA = (1ULL << 1), WALLET_FLAG_LAST_HARDENED_XPUB_CACHED = (1ULL << 2), WALLET_FLAG_DISABLE_PRIVATE_KEYS = (1ULL << 32),
  WALLET_FLAG_BLANK_WALLET = (1ULL << 33), WALLET_FLAG_DESCRIPTORS = (1ULL << 34), WALLET_FLAG_EXTERNAL_SIGNER = (1ULL << 35)
}
 

Functions

std::shared_ptr< BerkeleyEnvironmentGetBerkeleyEnv (const fs::path &env_directory)
 Get BerkeleyEnvironment given a directory path. More...
 
bool BerkeleyDatabaseSanityCheck ()
 Perform sanity check of runtime BDB version versus linked BDB version. More...
 
std::string BerkeleyDatabaseVersion ()
 
std::unique_ptr< BerkeleyDatabaseMakeBerkeleyDatabase (const fs::path &path, const DatabaseOptions &options, DatabaseStatus &status, bilingual_str &error)
 Return object giving access to Berkeley database at specified path. More...
 
std::optional< SelectionResultSelectCoinsBnB (std::vector< OutputGroup > &utxo_pool, const CAmount &selection_target, const CAmount &cost_of_change)
 
std::optional< SelectionResultSelectCoinsSRD (const std::vector< OutputGroup > &utxo_pool, CAmount target_value)
 Select coins by Single Random Draw. More...
 
static void ApproximateBestSubset (const std::vector< OutputGroup > &groups, const CAmount &nTotalLower, const CAmount &nTargetValue, std::vector< char > &vfBest, CAmount &nBest, int iterations=1000)
 
std::optional< SelectionResultKnapsackSolver (std::vector< OutputGroup > &groups, const CAmount &nTargetValue)
 
CAmount GetSelectionWaste (const std::set< CInputCoin > &inputs, CAmount change_cost, CAmount target, bool use_effective_value=true)
 Compute the waste for this result given the cost of change and the opportunity cost of spending these inputs now vs in the future. More...
 
bool EncryptSecret (const CKeyingMaterial &vMasterKey, const CKeyingMaterial &vchPlaintext, const uint256 &nIV, std::vector< unsigned char > &vchCiphertext)
 
bool DecryptSecret (const CKeyingMaterial &vMasterKey, const std::vector< unsigned char > &vchCiphertext, const uint256 &nIV, CKeyingMaterial &vchPlaintext)
 
bool DecryptKey (const CKeyingMaterial &vMasterKey, const std::vector< unsigned char > &vchCryptedSecret, const CPubKey &vchPubKey, CKey &key)
 
std::vector< fs::pathListDatabases (const fs::path &path)
 Recursively list database paths in directory. More...
 
fs::path BDBDataFile (const fs::path &wallet_path)
 
fs::path SQLiteDataFile (const fs::path &path)
 
bool IsBDBFile (const fs::path &path)
 
bool IsSQLiteFile (const fs::path &path)
 
void SplitWalletPath (const fs::path &wallet_path, fs::path &env_directory, std::string &database_filename)
 
std::unique_ptr< WalletDatabaseMakeDatabase (const fs::path &path, const DatabaseOptions &options, DatabaseStatus &status, bilingual_str &error)
 
bool DumpWallet (CWallet &wallet, bilingual_str &error)
 
static void WalletToolReleaseWallet (CWallet *wallet)
 
bool CreateFromDump (const std::string &name, const fs::path &wallet_path, bilingual_str &error, std::vector< bilingual_str > &warnings)
 
static feebumper::Result PreconditionChecks (const CWallet &wallet, const CWalletTx &wtx, std::vector< bilingual_str > &errors) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet)
 Check whether transaction has descendant in wallet or mempool, or has been mined, or conflicts with a mined transaction. More...
 
static feebumper::Result CheckFeeRate (const CWallet &wallet, const CWalletTx &wtx, const CFeeRate &newFeerate, const int64_t maxTxSize, std::vector< bilingual_str > &errors)
 Check if the user provided a valid feeRate. More...
 
static CFeeRate EstimateFeeRate (const CWallet &wallet, const CWalletTx &wtx, const CAmount old_fee, const CCoinControl &coin_control)
 
CAmount GetRequiredFee (const CWallet &wallet, unsigned int nTxBytes)
 Return the minimum required absolute fee for this size based on the required fee rate. More...
 
CAmount GetMinimumFee (const CWallet &wallet, unsigned int nTxBytes, const CCoinControl &coin_control, FeeCalculation *feeCalc)
 Estimate the minimum fee considering user set parameters and the required fee. More...
 
CFeeRate GetRequiredFeeRate (const CWallet &wallet)
 Return the minimum required feerate taking into account the minimum relay feerate and user set minimum transaction feerate. More...
 
CFeeRate GetMinimumFeeRate (const CWallet &wallet, const CCoinControl &coin_control, FeeCalculation *feeCalc)
 Estimate the minimum fee rate considering user set parameters and the required fee. More...
 
CFeeRate GetDiscardRate (const CWallet &wallet)
 Return the maximum feerate for discarding change. More...
 
bool VerifyWallets (WalletContext &context)
 Responsible for reading and validating the -wallet arguments and verifying the wallet database. More...
 
bool LoadWallets (WalletContext &context)
 Load wallet databases. More...
 
void StartWallets (WalletContext &context, CScheduler &scheduler)
 Complete startup of wallets. More...
 
void FlushWallets (WalletContext &context)
 Flush all wallets in preparation for shutdown. More...
 
void StopWallets (WalletContext &context)
 Stop all wallets. Wallets will be flushed first. More...
 
void UnloadWallets (WalletContext &context)
 Close all wallets. More...
 
isminetype InputIsMine (const CWallet &wallet, const CTxIn &txin)
 
bool AllInputsMine (const CWallet &wallet, const CTransaction &tx, const isminefilter &filter)
 Returns whether all of the inputs match the filter. More...
 
CAmount OutputGetCredit (const CWallet &wallet, const CTxOut &txout, const isminefilter &filter)
 
CAmount TxGetCredit (const CWallet &wallet, const CTransaction &tx, const isminefilter &filter)
 
bool ScriptIsChange (const CWallet &wallet, const CScript &script)
 
bool OutputIsChange (const CWallet &wallet, const CTxOut &txout)
 
CAmount OutputGetChange (const CWallet &wallet, const CTxOut &txout)
 
CAmount TxGetChange (const CWallet &wallet, const CTransaction &tx)
 
static CAmount GetCachableAmount (const CWallet &wallet, const CWalletTx &wtx, CWalletTx::AmountType type, const isminefilter &filter, bool recalculate=false)
 
CAmount CachedTxGetCredit (const CWallet &wallet, const CWalletTx &wtx, const isminefilter &filter)
 
CAmount CachedTxGetDebit (const CWallet &wallet, const CWalletTx &wtx, const isminefilter &filter)
 filter decides which addresses will count towards the debit More...
 
CAmount CachedTxGetChange (const CWallet &wallet, const CWalletTx &wtx)
 
CAmount CachedTxGetImmatureCredit (const CWallet &wallet, const CWalletTx &wtx, bool fUseCache)
 
CAmount CachedTxGetImmatureWatchOnlyCredit (const CWallet &wallet, const CWalletTx &wtx, const bool fUseCache)
 
CAmount CachedTxGetAvailableCredit (const CWallet &wallet, const CWalletTx &wtx, bool fUseCache, const isminefilter &filter)
 
void CachedTxGetAmounts (const CWallet &wallet, const CWalletTx &wtx, std::list< COutputEntry > &listReceived, std::list< COutputEntry > &listSent, CAmount &nFee, const isminefilter &filter)
 
bool CachedTxIsFromMe (const CWallet &wallet, const CWalletTx &wtx, const isminefilter &filter)
 
bool CachedTxIsTrusted (const CWallet &wallet, const CWalletTx &wtx, std::set< uint256 > &trusted_parents)
 
bool CachedTxIsTrusted (const CWallet &wallet, const CWalletTx &wtx)
 
Balance GetBalance (const CWallet &wallet, const int min_depth, bool avoid_reuse)
 
std::map< CTxDestination, CAmountGetAddressBalances (const CWallet &wallet)
 
std::set< std::set< CTxDestination > > GetAddressGroupings (const CWallet &wallet)
 
RPCHelpMan getnewaddress ()
 
RPCHelpMan getrawchangeaddress ()
 
RPCHelpMan setlabel ()
 
RPCHelpMan listaddressgroupings ()
 
RPCHelpMan addmultisigaddress ()
 
RPCHelpMan keypoolrefill ()
 
RPCHelpMan newkeypool ()
 
static UniValue DescribeWalletAddress (const CWallet &wallet, const CTxDestination &dest)
 
RPCHelpMan getaddressinfo ()
 
static UniValue AddressBookDataToJSON (const CAddressBookData &data, const bool verbose)
 Convert CAddressBookData to JSON record. More...
 
RPCHelpMan getaddressesbylabel ()
 
RPCHelpMan listlabels ()
 
RPCHelpMan walletdisplayaddress ()
 
static std::string EncodeDumpString (const std::string &str)
 
static std::string DecodeDumpString (const std::string &str)
 
static bool GetWalletAddressesForKey (const LegacyScriptPubKeyMan *spk_man, const CWallet &wallet, const CKeyID &keyid, std::string &strAddr, std::string &strLabel) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet)
 
static void RescanWallet (CWallet &wallet, const WalletRescanReserver &reserver, int64_t time_begin=TIMESTAMP_MIN, bool update=true)
 
RPCHelpMan importprivkey ()
 
RPCHelpMan importaddress ()
 
RPCHelpMan importprunedfunds ()
 
RPCHelpMan removeprunedfunds ()
 
RPCHelpMan importpubkey ()
 
RPCHelpMan importwallet ()
 
RPCHelpMan dumpprivkey ()
 
RPCHelpMan dumpwallet ()
 
static std::string RecurseImportData (const CScript &script, ImportData &import_data, const ScriptContext script_ctx)
 
static UniValue ProcessImportLegacy (ImportData &import_data, std::map< CKeyID, CPubKey > &pubkey_map, std::map< CKeyID, CKey > &privkey_map, std::set< CScript > &script_pub_keys, bool &have_solving_data, const UniValue &data, std::vector< CKeyID > &ordered_pubkeys)
 
static UniValue ProcessImportDescriptor (ImportData &import_data, std::map< CKeyID, CPubKey > &pubkey_map, std::map< CKeyID, CKey > &privkey_map, std::set< CScript > &script_pub_keys, bool &have_solving_data, const UniValue &data, std::vector< CKeyID > &ordered_pubkeys)
 
static UniValue ProcessImport (CWallet &wallet, const UniValue &data, const int64_t timestamp) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet)
 
static int64_t GetImportTimestamp (const UniValue &data, int64_t now)
 
RPCHelpMan importmulti ()
 
static UniValue ProcessDescriptorImport (CWallet &wallet, const UniValue &data, const int64_t timestamp) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet)
 
RPCHelpMan importdescriptors ()
 
RPCHelpMan listdescriptors ()
 
RPCHelpMan backupwallet ()
 
RPCHelpMan restorewallet ()
 
static CAmount GetReceived (const CWallet &wallet, const UniValue &params, bool by_label) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet)
 
RPCHelpMan getreceivedbyaddress ()
 
RPCHelpMan getreceivedbylabel ()
 
RPCHelpMan getbalance ()
 
RPCHelpMan getunconfirmedbalance ()
 
RPCHelpMan lockunspent ()
 
RPCHelpMan listlockunspent ()
 
RPCHelpMan getbalances ()
 
RPCHelpMan listunspent ()
 
RPCHelpMan walletpassphrase ()
 
RPCHelpMan walletpassphrasechange ()
 
RPCHelpMan walletlock ()
 
RPCHelpMan encryptwallet ()
 
RPCHelpMan signmessage ()
 
static void ParseRecipients (const UniValue &address_amounts, const UniValue &subtract_fee_outputs, std::vector< CRecipient > &recipients)
 
UniValue SendMoney (CWallet &wallet, const CCoinControl &coin_control, std::vector< CRecipient > &recipients, mapValue_t map_value, bool verbose)
 
static void SetFeeEstimateMode (const CWallet &wallet, CCoinControl &cc, const UniValue &conf_target, const UniValue &estimate_mode, const UniValue &fee_rate, bool override_min_fee)
 Update coin control with fee estimation based on the given parameters. More...
 
RPCHelpMan sendtoaddress ()
 
RPCHelpMan sendmany ()
 
RPCHelpMan settxfee ()
 
static std::vector< RPCArgFundTxDoc ()
 
void FundTransaction (CWallet &wallet, CMutableTransaction &tx, CAmount &fee_out, int &change_position, const UniValue &options, CCoinControl &coinControl, bool override_min_fee)
 
RPCHelpMan fundrawtransaction ()
 
RPCHelpMan signrawtransactionwithwallet ()
 
static RPCHelpMan bumpfee_helper (std::string method_name)
 
RPCHelpMan bumpfee ()
 
RPCHelpMan psbtbumpfee ()
 
RPCHelpMan send ()
 
RPCHelpMan walletprocesspsbt ()
 
RPCHelpMan walletcreatefundedpsbt ()
 
static void WalletTxToJSON (const CWallet &wallet, const CWalletTx &wtx, UniValue &entry)
 
static UniValue ListReceived (const CWallet &wallet, const UniValue &params, const bool by_label, const bool include_immature_coinbase) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet)
 
RPCHelpMan listreceivedbyaddress ()
 
RPCHelpMan listreceivedbylabel ()
 
static void MaybePushAddress (UniValue &entry, const CTxDestination &dest)
 
static void ListTransactions (const CWallet &wallet, const CWalletTx &wtx, int nMinDepth, bool fLong, UniValue &ret, const isminefilter &filter_ismine, const std::string *filter_label) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet)
 List transactions based on the given criteria. More...
 
static const std::vector< RPCResultTransactionDescriptionString ()
 
RPCHelpMan listtransactions ()
 
RPCHelpMan listsinceblock ()
 
RPCHelpMan gettransaction ()
 
RPCHelpMan abandontransaction ()
 
RPCHelpMan rescanblockchain ()
 
RPCHelpMan abortrescan ()
 
bool GetAvoidReuseFlag (const CWallet &wallet, const UniValue &param)
 
bool ParseIncludeWatchonly (const UniValue &include_watchonly, const CWallet &wallet)
 Used by RPC commands that have an include_watchonly parameter. More...
 
bool GetWalletNameFromJSONRPCRequest (const JSONRPCRequest &request, std::string &wallet_name)
 
std::shared_ptr< CWalletGetWalletForJSONRPCRequest (const JSONRPCRequest &request)
 Figures out what wallet, if any, to use for a JSONRPCRequest. More...
 
void EnsureWalletIsUnlocked (const CWallet &wallet)
 
WalletContextEnsureWalletContext (const std::any &context)
 
LegacyScriptPubKeyManEnsureLegacyScriptPubKeyMan (CWallet &wallet, bool also_create)
 
const LegacyScriptPubKeyManEnsureConstLegacyScriptPubKeyMan (const CWallet &wallet)
 
std::string LabelFromValue (const UniValue &value)
 
void HandleWalletError (const std::shared_ptr< CWallet > wallet, DatabaseStatus &status, bilingual_str &error)
 
bool HaveKey (const SigningProvider &wallet, const CKey &key)
 Checks if a CKey is in the given CWallet compressed or otherwise. More...
 
static RPCHelpMan getwalletinfo ()
 
static RPCHelpMan listwalletdir ()
 
static RPCHelpMan listwallets ()
 
static RPCHelpMan loadwallet ()
 
static RPCHelpMan setwalletflag ()
 
static RPCHelpMan createwallet ()
 
static RPCHelpMan unloadwallet ()
 
static RPCHelpMan sethdseed ()
 
static RPCHelpMan upgradewallet ()
 
Span< const CRPCCommandGetWalletRPCCommands ()
 
static bool KeyFilter (const std::string &type)
 
bool RecoverDatabaseFile (const fs::path &file_path, bilingual_str &error, std::vector< bilingual_str > &warnings)
 
static int64_t GetOldestKeyTimeInPool (const std::set< int64_t > &setKeyPool, WalletBatch &batch)
 
static bool ExtractPubKey (const CScript &dest, CPubKey &pubKeyOut)
 
std::vector< CKeyIDGetAffectedKeys (const CScript &spk, const SigningProvider &provider)
 
int GetTxSpendSize (const CWallet &wallet, const CWalletTx &wtx, unsigned int out, bool use_max_sig=false)
 Get the marginal bytes if spending the specified output from this transaction. More...
 
int CalculateMaximumSignedInputSize (const CTxOut &txout, const SigningProvider *provider, bool use_max_sig)
 
int CalculateMaximumSignedInputSize (const CTxOut &txout, const CWallet *wallet, bool use_max_sig)
 
TxSize CalculateMaximumSignedTxSize (const CTransaction &tx, const CWallet *wallet, const std::vector< CTxOut > &txouts, const CCoinControl *coin_control=nullptr)
 Calculate the size of the transaction assuming all signatures are max size Use DummySignatureCreator, which inserts 71 byte signatures everywhere. More...
 
TxSize CalculateMaximumSignedTxSize (const CTransaction &tx, const CWallet *wallet, const CCoinControl *coin_control)
 
void AvailableCoins (const CWallet &wallet, std::vector< COutput > &vCoins, const CCoinControl *coinControl=nullptr, const CAmount &nMinimumAmount=1, const CAmount &nMaximumAmount=MAX_MONEY, const CAmount &nMinimumSumAmount=MAX_MONEY, const uint64_t nMaximumCount=0) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet)
 populate vCoins with vector of available COutputs. More...
 
CAmount GetAvailableBalance (const CWallet &wallet, const CCoinControl *coinControl)
 
const CTxOutFindNonChangeParentOutput (const CWallet &wallet, const CTransaction &tx, int output) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet)
 Find non-change parent output. More...
 
std::map< CTxDestination, std::vector< COutput > > ListCoins (const CWallet &wallet) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet)
 Return list of available coins and locked coins grouped by non-change output address. More...
 
std::vector< OutputGroupGroupOutputs (const CWallet &wallet, const std::vector< COutput > &outputs, const CoinSelectionParams &coin_sel_params, const CoinEligibilityFilter &filter, bool positive_only)
 
std::optional< SelectionResultAttemptSelection (const CWallet &wallet, const CAmount &nTargetValue, const CoinEligibilityFilter &eligibility_filter, std::vector< COutput > coins, const CoinSelectionParams &coin_selection_params)
 Attempt to find a valid input set that meets the provided eligibility filter and target. More...
 
std::optional< SelectionResultSelectCoins (const CWallet &wallet, const std::vector< COutput > &vAvailableCoins, const CAmount &nTargetValue, const CCoinControl &coin_control, const CoinSelectionParams &coin_selection_params) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet)
 Select a set of coins such that nTargetValue is met and at least all coins from coin_control are selected; never select unconfirmed coins if they are not ours param@[in] wallet The wallet which provides data necessary to spend the selected coins param@[in] vAvailableCoins The vector of coins available to be spent param@[in] nTargetValue The target value param@[in] coin_selection_params Parameters for this coin selection such as feerates, whether to avoid partial spends, and whether to subtract the fee from the outputs. More...
 
static bool IsCurrentForAntiFeeSniping (interfaces::Chain &chain, const uint256 &block_hash)
 
static uint32_t GetLocktimeForNewTransaction (interfaces::Chain &chain, const uint256 &block_hash, int block_height)
 Return a height-based locktime for new transactions (uses the height of the current chain tip unless we are not synced with the current chain. More...
 
static bool CreateTransactionInternal (CWallet &wallet, const std::vector< CRecipient > &vecSend, CTransactionRef &tx, CAmount &nFeeRet, int &nChangePosInOut, bilingual_str &error, const CCoinControl &coin_control, FeeCalculation &fee_calc_out, bool sign) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet)
 
bool CreateTransaction (CWallet &wallet, 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...
 
bool FundTransaction (CWallet &wallet, 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...
 
static int g_sqlite_count GUARDED_BY (g_sqlite_mutex)=0
 
static void ErrorLogCallback (void *arg, int code, const char *msg)
 
static std::optional< int > ReadPragmaInteger (sqlite3 *db, const std::string &key, const std::string &description, bilingual_str &error)
 
static void SetPragma (sqlite3 *db, const std::string &key, const std::string &value, const std::string &err_msg)
 
std::unique_ptr< SQLiteDatabaseMakeSQLiteDatabase (const fs::path &path, const DatabaseOptions &options, DatabaseStatus &status, bilingual_str &error)
 
std::string SQLiteDatabaseVersion ()
 
static void add_coin (const CAmount &nValue, int nInput, std::vector< CInputCoin > &set)
 
static void add_coin (const CAmount &nValue, int nInput, SelectionResult &result)
 
static void add_coin (const CAmount &nValue, int nInput, CoinSet &set, CAmount fee=0, CAmount long_term_fee=0)
 
static void add_coin (std::vector< COutput > &coins, CWallet &wallet, const CAmount &nValue, int nAge=6 *24, bool fIsFromMe=false, int nInput=0, bool spendable=false)
 
static bool EquivalentResult (const SelectionResult &a, const SelectionResult &b)
 Check if SelectionResult a is equivalent to SelectionResult b. More...
 
static bool EqualResult (const SelectionResult &a, const SelectionResult &b)
 Check if this selection is equal to another one. More...
 
static CAmount make_hard_case (int utxos, std::vector< CInputCoin > &utxo_pool)
 
std::vector< OutputGroup > & GroupCoins (const std::vector< CInputCoin > &coins)
 
std::vector< OutputGroup > & GroupCoins (const std::vector< COutput > &coins)
 
std::vector< OutputGroup > & KnapsackGroupOutputs (const std::vector< COutput > &coins, CWallet &wallet, const CoinEligibilityFilter &filter)
 
 BOOST_AUTO_TEST_CASE (bnb_search_test)
 
 BOOST_AUTO_TEST_CASE (knapsack_solver_test)
 
 BOOST_AUTO_TEST_CASE (ApproximateBestSubset)
 
 BOOST_AUTO_TEST_CASE (SelectCoins_test)
 
 BOOST_AUTO_TEST_CASE (waste_test)
 
static std::shared_ptr< BerkeleyEnvironmentGetWalletEnv (const fs::path &path, std::string &database_filename)
 
 BOOST_AUTO_TEST_CASE (getwalletenv_file)
 
 BOOST_AUTO_TEST_CASE (getwalletenv_directory)
 
 BOOST_AUTO_TEST_CASE (getwalletenv_g_dbenvs_multiple)
 
 BOOST_AUTO_TEST_CASE (getwalletenv_g_dbenvs_free_instance)
 
 BOOST_AUTO_TEST_CASE (walletinit_verify_walletdir_default)
 
 BOOST_AUTO_TEST_CASE (walletinit_verify_walletdir_custom)
 
 BOOST_AUTO_TEST_CASE (walletinit_verify_walletdir_does_not_exist)
 
 BOOST_AUTO_TEST_CASE (walletinit_verify_walletdir_is_not_directory)
 
 BOOST_AUTO_TEST_CASE (walletinit_verify_walletdir_is_not_relative)
 
 BOOST_AUTO_TEST_CASE (walletinit_verify_walletdir_no_trailing)
 
 BOOST_AUTO_TEST_CASE (walletinit_verify_walletdir_no_trailing2)
 
 BOOST_AUTO_TEST_CASE (ismine_standard)
 
static void import_descriptor (CWallet &wallet, const std::string &descriptor) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet)
 
 BOOST_AUTO_TEST_CASE (psbt_updater_test)
 
 BOOST_AUTO_TEST_CASE (parse_hd_keypath)
 
 BOOST_AUTO_TEST_CASE (CanProvide)
 
 BOOST_FIXTURE_TEST_CASE (SubtractFee, TestChain100Setup)
 
std::unique_ptr< CWalletCreateSyncedWallet (interfaces::Chain &chain, CChain &cchain, ArgsManager &args, const CKey &key)
 
 BOOST_AUTO_TEST_CASE (passphrase)
 
 BOOST_AUTO_TEST_CASE (encrypt)
 
 BOOST_AUTO_TEST_CASE (decrypt)
 
static const std::shared_ptr< CWalletTestLoadWallet (WalletContext &context)
 
static void TestUnloadWallet (std::shared_ptr< CWallet > &&wallet)
 
static CMutableTransaction TestSimpleSpend (const CTransaction &from, uint32_t index, const CKey &key, const CScript &pubkey)
 
static void AddKey (CWallet &wallet, const CKey &key)
 
 BOOST_FIXTURE_TEST_CASE (scan_for_wallet_transactions, TestChain100Setup)
 
 BOOST_FIXTURE_TEST_CASE (importmulti_rescan, TestChain100Setup)
 
 BOOST_FIXTURE_TEST_CASE (importwallet_rescan, TestChain100Setup)
 
 BOOST_FIXTURE_TEST_CASE (coin_mark_dirty_immature_credit, TestChain100Setup)
 
static int64_t AddTx (ChainstateManager &chainman, CWallet &wallet, uint32_t lockTime, int64_t mockTime, int64_t blockTime)
 
 BOOST_AUTO_TEST_CASE (ComputeTimeSmart)
 
 BOOST_AUTO_TEST_CASE (LoadReceiveRequests)
 
static void TestWatchOnlyPubKey (LegacyScriptPubKeyMan *spk_man, const CPubKey &add_pubkey)
 
static void PollutePubKey (CPubKey &pubkey)
 
 BOOST_AUTO_TEST_CASE (WatchOnlyPubKeys)
 
 BOOST_FIXTURE_TEST_CASE (ListCoinsTest, ListCoinsTestingSetup)
 
 BOOST_FIXTURE_TEST_CASE (wallet_disableprivkeys, TestChain100Setup)
 
static size_t CalculateNestedKeyhashInputSize (bool use_max_sig)
 
 BOOST_FIXTURE_TEST_CASE (dummy_input_size_test, TestChain100Setup)
 
bool malformed_descriptor (std::ios_base::failure e)
 
 BOOST_FIXTURE_TEST_CASE (wallet_descriptor_test, BasicTestingSetup)
 
 BOOST_FIXTURE_TEST_CASE (CreateWallet, TestChain100Setup)
 Test CWallet::Create() and its behavior handling potential race conditions if it's called the same time an incoming transaction shows up in the mempool or a new block. More...
 
 BOOST_FIXTURE_TEST_CASE (CreateWalletWithoutChain, BasicTestingSetup)
 
 BOOST_FIXTURE_TEST_CASE (ZapSelectTx, TestChain100Setup)
 
 BOOST_AUTO_TEST_CASE (roundtrip)
 
 BOOST_AUTO_TEST_CASE (walletdb_readkeyvalue)
 
static TxState TxStateInterpretSerialized (TxStateUnrecognized data)
 Try to interpret deserialized TxStateUnrecognized data as a recognized state. More...
 
static uint256 TxStateSerializedBlockHash (const TxState &state)
 Get TxState serialized block hash. Inverse of TxStateInterpretSerialized. More...
 
static int TxStateSerializedIndex (const TxState &state)
 Get TxState serialized block index. Inverse of TxStateInterpretSerialized. More...
 
bool AddWalletSetting (interfaces::Chain &chain, const std::string &wallet_name)
 Add wallet name to persistent configuration so it will be loaded on startup. More...
 
bool RemoveWalletSetting (interfaces::Chain &chain, const std::string &wallet_name)
 Remove wallet name from persistent configuration so it will not be loaded on startup. More...
 
static void UpdateWalletSetting (interfaces::Chain &chain, const std::string &wallet_name, std::optional< bool > load_on_startup, std::vector< bilingual_str > &warnings)
 
static void RefreshMempoolStatus (CWalletTx &tx, interfaces::Chain &chain)
 Refresh mempool status so the wallet is in an internally consistent state and immediately knows the transaction's status: Whether it can be considered trusted and is eligible to be abandoned ... More...
 
bool AddWallet (WalletContext &context, const std::shared_ptr< CWallet > &wallet)
 
bool RemoveWallet (WalletContext &context, const std::shared_ptr< CWallet > &wallet, std::optional< bool > load_on_start, std::vector< bilingual_str > &warnings)
 
bool RemoveWallet (WalletContext &context, const std::shared_ptr< CWallet > &wallet, std::optional< bool > load_on_start)
 
std::vector< std::shared_ptr< CWallet > > GetWallets (WalletContext &context)
 
std::shared_ptr< CWalletGetWallet (WalletContext &context, const std::string &name)
 
std::unique_ptr< interfaces::HandlerHandleLoadWallet (WalletContext &context, LoadWalletFn load_wallet)
 
static std::set< std::string > g_loading_wallet_set GUARDED_BY (g_loading_wallet_mutex)
 
static std::set< std::string > g_unloading_wallet_set GUARDED_BY (g_wallet_release_mutex)
 
static void ReleaseWallet (CWallet *wallet)
 
void UnloadWallet (std::shared_ptr< CWallet > &&wallet)
 Explicitly unload and delete the wallet. More...
 
std::shared_ptr< CWalletLoadWallet (WalletContext &context, const std::string &name, std::optional< bool > load_on_start, const DatabaseOptions &options, DatabaseStatus &status, bilingual_str &error, std::vector< bilingual_str > &warnings)
 
std::shared_ptr< CWalletCreateWallet (WalletContext &context, const std::string &name, std::optional< bool > load_on_start, DatabaseOptions &options, DatabaseStatus &status, bilingual_str &error, std::vector< bilingual_str > &warnings)
 
std::shared_ptr< CWalletRestoreWallet (WalletContext &context, const fs::path &backup_file, const std::string &wallet_name, std::optional< bool > load_on_start, DatabaseStatus &status, bilingual_str &error, std::vector< bilingual_str > &warnings)
 
bool DummySignInput (const SigningProvider &provider, CTxIn &tx_in, const CTxOut &txout, bool use_max_sig)
 
void MaybeResendWalletTxs (WalletContext &context)
 Called periodically by the schedule thread. More...
 
std::unique_ptr< WalletDatabaseMakeWalletDatabase (const std::string &name, const DatabaseOptions &options, DatabaseStatus &status, bilingual_str &error_string)
 
static bool ReadKeyValue (CWallet *pwallet, CDataStream &ssKey, CDataStream &ssValue, CWalletScanState &wss, std::string &strType, std::string &strErr, const KeyFilterFn &filter_fn=nullptr) EXCLUSIVE_LOCKS_REQUIRED(pwallet -> cs_wallet)
 
bool ReadKeyValue (CWallet *pwallet, CDataStream &ssKey, CDataStream &ssValue, std::string &strType, std::string &strErr, const KeyFilterFn &filter_fn=nullptr)
 Unserialize a given Key-Value pair and load it into the wallet. More...
 
void MaybeCompactWalletDB (WalletContext &context)
 Compacts BDB state so that wallet.dat is self-contained (if there are changes) More...
 
std::unique_ptr< WalletDatabaseCreateDummyWalletDatabase ()
 Return object for accessing dummy database with no read/write capabilities. More...
 
std::unique_ptr< WalletDatabaseCreateMockWalletDatabase ()
 Return object for accessing temporary in-memory database. More...
 
fs::path GetWalletDir ()
 Get the path of the wallet directory. More...
 
bool IsFeatureSupported (int wallet_version, int feature_version)
 
WalletFeature GetClosestWalletFeature (int version)
 

Variables

static const unsigned int DEFAULT_WALLET_DBLOGSIZE = 100
 
static const bool DEFAULT_WALLET_PRIVDB = true
 
const int DEFAULT_MIN_DEPTH = 0
 
const int DEFAULT_MAX_DEPTH = 9999999
 
static constexpr bool DEFAULT_AVOIDPARTIALSPENDS = false
 Default for -avoidpartialspends. More...
 
struct {
descending
 
static const size_t TOTAL_TRIES = 100000
 
static constexpr CAmount MIN_CHANGE {COIN / 100}
 target minimum change amount More...
 
static const CAmount MIN_FINAL_CHANGE = MIN_CHANGE/2
 final minimum change amount after paying for fees More...
 
const unsigned int WALLET_CRYPTO_KEY_SIZE = 32
 
const unsigned int WALLET_CRYPTO_SALT_SIZE = 8
 
const unsigned int WALLET_CRYPTO_IV_SIZE = 16
 
static const std::string DUMP_MAGIC = "BITCOIN_CORE_WALLET_DUMP"
 
uint32_t DUMP_VERSION = 1
 
static const int64_t TIMESTAMP_MIN = 0
 
static const std::string WALLET_ENDPOINT_BASE = "/wallet/"
 
const std::string HELP_REQUIRING_PASSPHRASE {"\nRequires wallet passphrase to be set with walletpassphrase call if wallet is encrypted.\n"}
 
static const char * HEADER_END = "HEADER=END"
 
static const char * DATA_END = "DATA=END"
 
const uint32_t BIP32_HARDENED_KEY_LIMIT = 0x80000000
 Value for the first BIP 32 hardened derivation. Can be used as a bit mask and as a value. See BIP 32 for more details. More...
 
static const unsigned int DEFAULT_KEYPOOL_SIZE = 1000
 Default for -keypool. More...
 
static const std::unordered_set< OutputTypeLEGACY_OUTPUT_TYPES
 OutputTypes supported by the LegacyScriptPubKeyMan. More...
 
static constexpr size_t OUTPUT_GROUP_MAX_ENTRIES {100}
 
static constexpr int32_t WALLET_SCHEMA_VERSION = 0
 
static Mutex g_sqlite_mutex
 
static const CoinEligibilityFilter filter_standard (1, 6, 0)
 
static const CoinEligibilityFilter filter_confirmed (1, 1, 0)
 
static const CoinEligibilityFilter filter_standard_extra (6, 6, 0)
 
static int nextLockTime = 0
 
const std::map< uint64_t, std::string > WALLET_FLAG_CAVEATS
 
static Mutex g_loading_wallet_mutex
 
static Mutex g_wallet_release_mutex
 
static std::condition_variable g_wallet_release_cv
 
constexpr CAmount DEFAULT_PAY_TX_FEE = 0
 -paytxfee default More...
 
static const CAmount DEFAULT_FALLBACK_FEE = 0
 -fallbackfee default More...
 
static const CAmount DEFAULT_DISCARD_FEE = 10000
 -discardfee default More...
 
static const CAmount DEFAULT_TRANSACTION_MINFEE = 1000
 -mintxfee default More...
 
static const CAmount DEFAULT_CONSOLIDATE_FEERATE {10000}
 -consolidatefeerate default More...
 
static const CAmount DEFAULT_MAX_AVOIDPARTIALSPEND_FEE = 0
 maximum fee increase allowed to do partial spend avoidance, even for nodes with this feature disabled by default More...
 
constexpr CAmount HIGH_APS_FEE {COIN / 10000}
 discourage APS fee higher than this amount More...
 
static const CAmount WALLET_INCREMENTAL_RELAY_FEE = 5000
 minimum recommended increment for BIP 125 replacement txs More...
 
static const bool DEFAULT_SPEND_ZEROCONF_CHANGE = true
 Default for -spendzeroconfchange. More...
 
static const bool DEFAULT_WALLET_REJECT_LONG_CHAINS = false
 Default for -walletrejectlongchains. More...
 
static const unsigned int DEFAULT_TX_CONFIRM_TARGET = 6
 -txconfirmtarget default More...
 
static const bool DEFAULT_WALLET_RBF = false
 -walletrbf default More...
 
static const bool DEFAULT_WALLETBROADCAST = true
 
static const bool DEFAULT_DISABLE_WALLET = false
 
constexpr CAmount DEFAULT_TRANSACTION_MAXFEE {COIN / 10}
 -maxtxfee default More...
 
constexpr CAmount HIGH_TX_FEE_PER_KB {COIN / 100}
 Discourage users to set fees higher than this amount (in satoshis) per kB. More...
 
constexpr CAmount HIGH_MAX_TX_FEE {100 * HIGH_TX_FEE_PER_KB}
 -maxtxfee will warn if called with a higher fee than this amount (in satoshis) More...
 
static constexpr size_t DUMMY_NESTED_P2WPKH_INPUT_SIZE = 91
 Pre-calculated constants for input size estimation in virtual size More...
 
constexpr OutputType DEFAULT_ADDRESS_TYPE {OutputType::BECH32}
 Default for -addresstype. More...
 
static constexpr uint64_t KNOWN_WALLET_FLAGS
 
static constexpr uint64_t MUTABLE_WALLET_FLAGS
 
static const std::map< std::string, WalletFlagsWALLET_FLAG_MAP
 
static const bool DEFAULT_FLUSHWALLET = true
 Overview of wallet database classes: More...
 

Typedef Documentation

◆ CKeyingMaterial

typedef std::vector<unsigned char, secure_allocator<unsigned char> > wallet::CKeyingMaterial

Definition at line 62 of file crypter.h.

◆ CoinSet

typedef std::set<CInputCoin> wallet::CoinSet

Definition at line 31 of file coinselector_tests.cpp.

◆ isminefilter

typedef std::underlying_type< isminetype >::type wallet::isminefilter

used for bitflags of isminetype

Definition at line 40 of file wallet.h.

◆ KeyFilterFn

using wallet::KeyFilterFn = typedef std::function<bool(const std::string&)>

Callback for filtering key types to deserialize in ReadKeyValue.

Definition at line 292 of file walletdb.h.

◆ KeyValPair

typedef std::pair<std::vector<unsigned char>, std::vector<unsigned char> > wallet::KeyValPair

Definition at line 19 of file salvage.cpp.

◆ LoadWalletFn

using wallet::LoadWalletFn = typedef std::function<void(std::unique_ptr<interfaces::Wallet> wallet)>

Definition at line 23 of file context.h.

◆ mapValue_t

typedef std::map<std::string, std::string> wallet::mapValue_t

Definition at line 111 of file transaction.h.

◆ SyncTxState

Subset of states transaction sync logic is implemented to handle.

Definition at line 69 of file transaction.h.

◆ TxState

All possible CWalletTx states.

Definition at line 66 of file transaction.h.

◆ valtype

typedef std::vector<unsigned char> wallet::valtype

Definition at line 46 of file scriptpubkeyman.cpp.

Enumeration Type Documentation

◆ DatabaseFormat

Enumerator
BERKELEY 
SQLITE 

Definition at line 199 of file db.h.

◆ DatabaseStatus

Enumerator
SUCCESS 
FAILED_BAD_PATH 
FAILED_BAD_FORMAT 
FAILED_ALREADY_LOADED 
FAILED_ALREADY_EXISTS 
FAILED_NOT_FOUND 
FAILED_CREATE 
FAILED_LOAD 
FAILED_VERIFY 
FAILED_ENCRYPT 
FAILED_INVALID_BACKUP_FILE 

Definition at line 213 of file db.h.

◆ DBErrors

enum wallet::DBErrors
strong

Error statuses for the wallet database.

Enumerator
LOAD_OK 
CORRUPT 
NONCRITICAL_ERROR 
TOO_NEW 
LOAD_FAIL 
NEED_REWRITE 
NEED_RESCAN 

Definition at line 45 of file walletdb.h.

◆ isminetype

enum wallet::isminetype : unsigned int

IsMine() return codes, which depend on ScriptPubKeyMan implementation.

Not every ScriptPubKeyMan covers all types, please refer to https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.21.0.md#ismine-semantics for better understanding.

For LegacyScriptPubKeyMan, ISMINE_NO: the scriptPubKey is not in the wallet; ISMINE_WATCH_ONLY: the scriptPubKey has been imported into the wallet; ISMINE_SPENDABLE: the scriptPubKey corresponds to an address owned by the wallet user (can spend with the private key); ISMINE_USED: the scriptPubKey corresponds to a used address owned by the wallet user; ISMINE_ALL: all ISMINE flags except for USED; ISMINE_ALL_USED: all ISMINE flags including USED; ISMINE_ENUM_ELEMENTS: the number of isminetype enum elements.

For DescriptorScriptPubKeyMan and future ScriptPubKeyMan, ISMINE_NO: the scriptPubKey is not in the wallet; ISMINE_SPENDABLE: the scriptPubKey matches a scriptPubKey in the wallet. ISMINE_USED: the scriptPubKey corresponds to a used address owned by the wallet user.

Enumerator
ISMINE_NO 
ISMINE_WATCH_ONLY 
ISMINE_SPENDABLE 
ISMINE_USED 
ISMINE_ALL 
ISMINE_ALL_USED 
ISMINE_ENUM_ELEMENTS 

Definition at line 41 of file ismine.h.

◆ ScriptContext

enum wallet::ScriptContext
strong
Enumerator
TOP 

Top-level scriptPubKey.

P2SH 

P2SH redeemScript.

WITNESS_V0 

P2WSH witnessScript.

Definition at line 841 of file backup.cpp.

◆ WalletFeature

(client) version numbers for particular wallet features

Enumerator
FEATURE_BASE 
FEATURE_WALLETCRYPT 
FEATURE_COMPRPUBKEY 
FEATURE_HD 
FEATURE_HD_SPLIT 
FEATURE_NO_DEFAULT_KEY 
FEATURE_PRE_SPLIT_KEYPOOL 
FEATURE_LATEST 

Definition at line 15 of file walletutil.h.

◆ WalletFlags

enum wallet::WalletFlags : uint64_t
Enumerator
WALLET_FLAG_AVOID_REUSE 
WALLET_FLAG_KEY_ORIGIN_METADATA 
WALLET_FLAG_LAST_HARDENED_XPUB_CACHED 
WALLET_FLAG_DISABLE_PRIVATE_KEYS 
WALLET_FLAG_BLANK_WALLET 

Flag set when a wallet contains no HD seed and no private keys, scripts, addresses, and other watch only things, and is therefore "blank.".

The only function this flag serves is to distinguish a blank wallet from a newly created wallet when the wallet database is loaded, to avoid initialization that should only happen on first run.

This flag is also a mandatory flag to prevent previous versions of bitcoin from opening the wallet, thinking it was newly created, and then improperly reinitializing it.

WALLET_FLAG_DESCRIPTORS 

Indicate that this wallet supports DescriptorScriptPubKeyMan.

WALLET_FLAG_EXTERNAL_SIGNER 

Indicates that the wallet needs an external signer.

Definition at line 36 of file walletutil.h.

Function Documentation

◆ abandontransaction()

RPCHelpMan wallet::abandontransaction ( )

Definition at line 810 of file transactions.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ abortrescan()

RPCHelpMan wallet::abortrescan ( )

Definition at line 936 of file transactions.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_coin() [1/4]

static void wallet::add_coin ( const CAmount nValue,
int  nInput,
CoinSet set,
CAmount  fee = 0,
CAmount  long_term_fee = 0 
)
static

Definition at line 59 of file coinselector_tests.cpp.

Here is the call graph for this function:

◆ add_coin() [2/4]

static void wallet::add_coin ( const CAmount nValue,
int  nInput,
SelectionResult result 
)
static

Definition at line 47 of file coinselector_tests.cpp.

Here is the call graph for this function:

◆ add_coin() [3/4]

static void wallet::add_coin ( const CAmount nValue,
int  nInput,
std::vector< CInputCoin > &  set 
)
static

Definition at line 38 of file coinselector_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_coin() [4/4]

static void wallet::add_coin ( std::vector< COutput > &  coins,
CWallet wallet,
const CAmount nValue,
int  nAge = 6*24,
bool  fIsFromMe = false,
int  nInput = 0,
bool  spendable = false 
)
static

Definition at line 72 of file coinselector_tests.cpp.

Here is the call graph for this function:

◆ AddKey()

static void wallet::AddKey ( CWallet wallet,
const CKey key 
)
static

Definition at line 84 of file wallet_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addmultisigaddress()

RPCHelpMan wallet::addmultisigaddress ( )

Definition at line 218 of file addresses.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddressBookDataToJSON()

static UniValue wallet::AddressBookDataToJSON ( const CAddressBookData data,
const bool  verbose 
)
static

Convert CAddressBookData to JSON record.


Definition at line 641 of file addresses.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddTx()

static int64_t wallet::AddTx ( ChainstateManager chainman,
CWallet wallet,
uint32_t  lockTime,
int64_t  mockTime,
int64_t  blockTime 
)
static

Definition at line 356 of file wallet_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddWallet()

bool wallet::AddWallet ( WalletContext context,
const std::shared_ptr< CWallet > &  wallet 
)

Definition at line 110 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddWalletSetting()

bool wallet::AddWalletSetting ( interfaces::Chain chain,
const std::string &  wallet_name 
)

Add wallet name to persistent configuration so it will be loaded on startup.

Definition at line 60 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AllInputsMine()

bool wallet::AllInputsMine ( const CWallet wallet,
const CTransaction tx,
const isminefilter filter 
)

Returns whether all of the inputs match the filter.

Definition at line 25 of file receive.cpp.

Here is the caller graph for this function:

◆ ApproximateBestSubset()

static void wallet::ApproximateBestSubset ( const std::vector< OutputGroup > &  groups,
const CAmount nTotalLower,
const CAmount nTargetValue,
std::vector< char > &  vfBest,
CAmount nBest,
int  iterations = 1000 
)
static

Definition at line 192 of file coinselection.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AttemptSelection()

std::optional< SelectionResult > wallet::AttemptSelection ( const CWallet wallet,
const CAmount nTargetValue,
const CoinEligibilityFilter eligibility_filter,
std::vector< COutput coins,
const CoinSelectionParams coin_selection_params 
)

Attempt to find a valid input set that meets the provided eligibility filter and target.

Multiple coin selection algorithms will be run and the input set that produces the least waste (according to the waste metric) will be chosen.

param@[in] wallet The wallet which provides solving data for the coins param@[in] nTargetValue The target value param@[in] eligilibity_filter A filter containing rules for which coins are allowed to be included in this selection param@[in] coins The vector of coins available for selection prior to filtering param@[in] coin_selection_params Parameters for the coin selection returns If successful, a SelectionResult containing the input set If failed, a nullopt

Definition at line 377 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AvailableCoins()

void wallet::AvailableCoins ( const CWallet wallet,
std::vector< COutput > &  vCoins,
const CCoinControl coinControl,
const CAmount nMinimumAmount,
const CAmount nMaximumAmount,
const CAmount nMinimumSumAmount,
const uint64_t  nMaximumCount 
)

populate vCoins with vector of available COutputs.

Definition at line 89 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ backupwallet()

RPCHelpMan wallet::backupwallet ( )

Definition at line 1819 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ BDBDataFile()

fs::path wallet::BDBDataFile ( const fs::path wallet_path)

Definition at line 59 of file db.cpp.

Here is the caller graph for this function:

◆ BerkeleyDatabaseSanityCheck()

bool wallet::BerkeleyDatabaseSanityCheck ( )

Perform sanity check of runtime BDB version versus linked BDB version.

Definition at line 727 of file bdb.cpp.

Here is the caller graph for this function:

◆ BerkeleyDatabaseVersion()

std::string wallet::BerkeleyDatabaseVersion ( )

Definition at line 744 of file bdb.cpp.

Here is the caller graph for this function:

◆ BOOST_AUTO_TEST_CASE() [1/28]

wallet::BOOST_AUTO_TEST_CASE ( ApproximateBestSubset  )

Definition at line 661 of file coinselector_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [2/28]

wallet::BOOST_AUTO_TEST_CASE ( bnb_search_test  )

Definition at line 177 of file coinselector_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [3/28]

wallet::BOOST_AUTO_TEST_CASE ( CanProvide  )

Definition at line 18 of file scriptpubkeyman_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [4/28]

wallet::BOOST_AUTO_TEST_CASE ( ComputeTimeSmart  )

Definition at line 384 of file wallet_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [5/28]

wallet::BOOST_AUTO_TEST_CASE ( decrypt  )

Definition at line 106 of file wallet_crypto_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [6/28]

wallet::BOOST_AUTO_TEST_CASE ( encrypt  )

Definition at line 91 of file wallet_crypto_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [7/28]

wallet::BOOST_AUTO_TEST_CASE ( getwalletenv_directory  )

Definition at line 38 of file db_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [8/28]

wallet::BOOST_AUTO_TEST_CASE ( getwalletenv_file  )

Definition at line 24 of file db_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [9/28]

wallet::BOOST_AUTO_TEST_CASE ( getwalletenv_g_dbenvs_free_instance  )

Definition at line 63 of file db_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [10/28]

wallet::BOOST_AUTO_TEST_CASE ( getwalletenv_g_dbenvs_multiple  )

Definition at line 49 of file db_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [11/28]

wallet::BOOST_AUTO_TEST_CASE ( ismine_standard  )

Definition at line 19 of file ismine_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [12/28]

wallet::BOOST_AUTO_TEST_CASE ( knapsack_solver_test  )

Definition at line 352 of file coinselector_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [13/28]

wallet::BOOST_AUTO_TEST_CASE ( LoadReceiveRequests  )

Definition at line 407 of file wallet_tests.cpp.

◆ BOOST_AUTO_TEST_CASE() [14/28]

wallet::BOOST_AUTO_TEST_CASE ( parse_hd_keypath  )

Definition at line 74 of file psbt_wallet_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [15/28]

wallet::BOOST_AUTO_TEST_CASE ( passphrase  )

Definition at line 75 of file wallet_crypto_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [16/28]

wallet::BOOST_AUTO_TEST_CASE ( psbt_updater_test  )

Definition at line 29 of file psbt_wallet_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [17/28]

wallet::BOOST_AUTO_TEST_CASE ( roundtrip  )

Definition at line 14 of file wallet_transaction_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [18/28]

wallet::BOOST_AUTO_TEST_CASE ( SelectCoins_test  )

Definition at line 683 of file coinselector_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [19/28]

wallet::BOOST_AUTO_TEST_CASE ( walletdb_readkeyvalue  )

When ReadKeyValue() reads from either a "key" or "wkey" it first reads the CDataStream steam into a CPrivKey or CWalletKey respectively and then reads a hash of the pubkey and privkey into a uint256. Wallets from 0.8 or before do not store the pubkey/privkey hash, trying to read the hash from old wallets throws an exception, for backwards compatibility this read is wrapped in a try block to silently fail. The test here makes sure the type of exception thrown from CDataStream::read() matches the type we expect, otherwise we need to update the "key"/"wkey" exception type caught.

Definition at line 15 of file walletdb_tests.cpp.

◆ BOOST_AUTO_TEST_CASE() [20/28]

wallet::BOOST_AUTO_TEST_CASE ( walletinit_verify_walletdir_custom  )

Definition at line 26 of file init_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [21/28]

wallet::BOOST_AUTO_TEST_CASE ( walletinit_verify_walletdir_default  )

Definition at line 16 of file init_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [22/28]

wallet::BOOST_AUTO_TEST_CASE ( walletinit_verify_walletdir_does_not_exist  )

Definition at line 36 of file init_tests.cpp.

◆ BOOST_AUTO_TEST_CASE() [23/28]

wallet::BOOST_AUTO_TEST_CASE ( walletinit_verify_walletdir_is_not_directory  )

Definition at line 46 of file init_tests.cpp.

◆ BOOST_AUTO_TEST_CASE() [24/28]

wallet::BOOST_AUTO_TEST_CASE ( walletinit_verify_walletdir_is_not_relative  )

Definition at line 56 of file init_tests.cpp.

◆ BOOST_AUTO_TEST_CASE() [25/28]

wallet::BOOST_AUTO_TEST_CASE ( walletinit_verify_walletdir_no_trailing  )

Definition at line 66 of file init_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [26/28]

wallet::BOOST_AUTO_TEST_CASE ( walletinit_verify_walletdir_no_trailing2  )

Definition at line 76 of file init_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [27/28]

wallet::BOOST_AUTO_TEST_CASE ( waste_test  )

Definition at line 728 of file coinselector_tests.cpp.

Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [28/28]

wallet::BOOST_AUTO_TEST_CASE ( WatchOnlyPubKeys  )

Definition at line 468 of file wallet_tests.cpp.

Here is the call graph for this function:

◆ BOOST_FIXTURE_TEST_CASE() [1/12]

wallet::BOOST_FIXTURE_TEST_CASE ( coin_mark_dirty_immature_credit  ,
TestChain100Setup   
)

Definition at line 334 of file wallet_tests.cpp.

Here is the call graph for this function:

◆ BOOST_FIXTURE_TEST_CASE() [2/12]

wallet::BOOST_FIXTURE_TEST_CASE ( CreateWallet  ,
TestChain100Setup   
)

Test CWallet::Create() and its behavior handling potential race conditions if it's called the same time an incoming transaction shows up in the mempool or a new block.

It isn't possible to verify there aren't race condition in every case, so this test just checks two specific cases and ensures that timing of notifications in these cases doesn't prevent the wallet from detecting transactions.

In the first case, block and mempool transactions are created before the wallet is loaded, but notifications about these transactions are delayed until after it is loaded. The notifications are superfluous in this case, so the test verifies the transactions are detected before they arrive.

In the second case, block and mempool transactions are created after the wallet rescan and notifications are immediately synced, to verify the wallet must already have a handler in place for them, and there's no gap after rescanning where new transactions in new blocks could be lost.

Definition at line 712 of file wallet_tests.cpp.

Here is the call graph for this function:

◆ BOOST_FIXTURE_TEST_CASE() [3/12]

wallet::BOOST_FIXTURE_TEST_CASE ( CreateWalletWithoutChain  ,
BasicTestingSetup   
)

Definition at line 807 of file wallet_tests.cpp.

Here is the call graph for this function:

◆ BOOST_FIXTURE_TEST_CASE() [4/12]

wallet::BOOST_FIXTURE_TEST_CASE ( dummy_input_size_test  ,
TestChain100Setup   
)

Definition at line 667 of file wallet_tests.cpp.

Here is the call graph for this function:

◆ BOOST_FIXTURE_TEST_CASE() [5/12]

wallet::BOOST_FIXTURE_TEST_CASE ( importmulti_rescan  ,
TestChain100Setup   
)

Definition at line 196 of file wallet_tests.cpp.

Here is the call graph for this function:

◆ BOOST_FIXTURE_TEST_CASE() [6/12]

wallet::BOOST_FIXTURE_TEST_CASE ( importwallet_rescan  ,
TestChain100Setup   
)

Definition at line 260 of file wallet_tests.cpp.

Here is the call graph for this function:

◆ BOOST_FIXTURE_TEST_CASE() [7/12]

wallet::BOOST_FIXTURE_TEST_CASE ( ListCoinsTest  ,
ListCoinsTestingSetup   
)

Definition at line 545 of file wallet_tests.cpp.

Here is the call graph for this function:

◆ BOOST_FIXTURE_TEST_CASE() [8/12]

wallet::BOOST_FIXTURE_TEST_CASE ( scan_for_wallet_transactions  ,
TestChain100Setup   
)

Definition at line 95 of file wallet_tests.cpp.

Here is the call graph for this function:

◆ BOOST_FIXTURE_TEST_CASE() [9/12]

wallet::BOOST_FIXTURE_TEST_CASE ( SubtractFee  ,
TestChain100Setup   
)

Definition at line 18 of file spend_tests.cpp.

Here is the call graph for this function:

◆ BOOST_FIXTURE_TEST_CASE() [10/12]

wallet::BOOST_FIXTURE_TEST_CASE ( wallet_descriptor_test  ,
BasicTestingSetup   
)

Definition at line 679 of file wallet_tests.cpp.

Here is the call graph for this function:

◆ BOOST_FIXTURE_TEST_CASE() [11/12]

wallet::BOOST_FIXTURE_TEST_CASE ( wallet_disableprivkeys  ,
TestChain100Setup   
)

Definition at line 606 of file wallet_tests.cpp.

Here is the call graph for this function:

◆ BOOST_FIXTURE_TEST_CASE() [12/12]

wallet::BOOST_FIXTURE_TEST_CASE ( ZapSelectTx  ,
TestChain100Setup   
)

Definition at line 816 of file wallet_tests.cpp.

Here is the call graph for this function:

◆ bumpfee()

RPCHelpMan wallet::bumpfee ( )

Definition at line 961 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bumpfee_helper()

static RPCHelpMan wallet::bumpfee_helper ( std::string  method_name)
static

Definition at line 787 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CachedTxGetAmounts()

void wallet::CachedTxGetAmounts ( const CWallet wallet,
const CWalletTx wtx,
std::list< COutputEntry > &  listReceived,
std::list< COutputEntry > &  listSent,
CAmount nFee,
const isminefilter filter 
)

Definition at line 217 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CachedTxGetAvailableCredit()

CAmount wallet::CachedTxGetAvailableCredit ( const CWallet wallet,
const CWalletTx wtx,
bool  fUseCache,
const isminefilter filter 
)

Definition at line 183 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CachedTxGetChange()

CAmount wallet::CachedTxGetChange ( const CWallet wallet,
const CWalletTx wtx 
)

Definition at line 156 of file receive.cpp.

Here is the call graph for this function:

◆ CachedTxGetCredit()

CAmount wallet::CachedTxGetCredit ( const CWallet wallet,
const CWalletTx wtx,
const isminefilter filter 
)

Definition at line 124 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CachedTxGetDebit()

CAmount wallet::CachedTxGetDebit ( const CWallet wallet,
const CWalletTx wtx,
const isminefilter filter 
)

filter decides which addresses will count towards the debit

Definition at line 141 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CachedTxGetImmatureCredit()

CAmount wallet::CachedTxGetImmatureCredit ( const CWallet wallet,
const CWalletTx wtx,
bool  fUseCache 
)

Definition at line 165 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CachedTxGetImmatureWatchOnlyCredit()

CAmount wallet::CachedTxGetImmatureWatchOnlyCredit ( const CWallet wallet,
const CWalletTx wtx,
const bool  fUseCache 
)

Definition at line 174 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CachedTxIsFromMe()

bool wallet::CachedTxIsFromMe ( const CWallet wallet,
const CWalletTx wtx,
const isminefilter filter 
)

Definition at line 274 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CachedTxIsTrusted() [1/2]

bool wallet::CachedTxIsTrusted ( const CWallet wallet,
const CWalletTx wtx 
)

Definition at line 311 of file receive.cpp.

Here is the call graph for this function:

◆ CachedTxIsTrusted() [2/2]

bool wallet::CachedTxIsTrusted ( const CWallet wallet,
const CWalletTx wtx,
std::set< uint256 > &  trusted_parents 
)

Definition at line 279 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CalculateMaximumSignedInputSize() [1/2]

int wallet::CalculateMaximumSignedInputSize ( const CTxOut txout,
const CWallet wallet,
bool  use_max_sig 
)

Definition at line 47 of file spend.cpp.

Here is the call graph for this function:

◆ CalculateMaximumSignedInputSize() [2/2]

int wallet::CalculateMaximumSignedInputSize ( const CTxOut txout,
const SigningProvider provider,
bool  use_max_sig 
)

Definition at line 37 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CalculateMaximumSignedTxSize() [1/2]

TxSize wallet::CalculateMaximumSignedTxSize ( const CTransaction tx,
const CWallet wallet,
const CCoinControl coin_control 
)

Definition at line 66 of file spend.cpp.

Here is the call graph for this function:

◆ CalculateMaximumSignedTxSize() [2/2]

TxSize wallet::CalculateMaximumSignedTxSize ( const CTransaction tx,
const CWallet wallet,
const std::vector< CTxOut > &  txouts,
const CCoinControl coin_control = nullptr 
)

Calculate the size of the transaction assuming all signatures are max size Use DummySignatureCreator, which inserts 71 byte signatures everywhere.

NOTE: this requires that all inputs must be in mapWallet (eg the tx should be AllInputsMine).

Definition at line 54 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CalculateNestedKeyhashInputSize()

static size_t wallet::CalculateNestedKeyhashInputSize ( bool  use_max_sig)
static

Definition at line 632 of file wallet_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CheckFeeRate()

static feebumper::Result wallet::CheckFeeRate ( const CWallet wallet,
const CWalletTx wtx,
const CFeeRate newFeerate,
const int64_t  maxTxSize,
std::vector< bilingual_str > &  errors 
)
static

Check if the user provided a valid feeRate.

Definition at line 64 of file feebumper.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateDummyWalletDatabase()

std::unique_ptr< WalletDatabase > wallet::CreateDummyWalletDatabase ( )

Return object for accessing dummy database with no read/write capabilities.

Definition at line 1184 of file walletdb.cpp.

Here is the caller graph for this function:

◆ CreateFromDump()

bool wallet::CreateFromDump ( const std::string &  name,
const fs::path wallet_path,
bilingual_str error,
std::vector< bilingual_str > &  warnings 
)

Definition at line 109 of file dump.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateMockWalletDatabase()

std::unique_ptr< WalletDatabase > wallet::CreateMockWalletDatabase ( )

Return object for accessing temporary in-memory database.

Definition at line 1190 of file walletdb.cpp.

Here is the caller graph for this function:

◆ CreateSyncedWallet()

std::unique_ptr< CWallet > wallet::CreateSyncedWallet ( interfaces::Chain chain,
CChain cchain,
ArgsManager args,
const CKey key 
)

Definition at line 19 of file util.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateTransaction()

bool wallet::CreateTransaction ( CWallet wallet,
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.

Note
passing nChangePosInOut as -1 will result in setting a random position

Definition at line 933 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateTransactionInternal()

static bool wallet::CreateTransactionInternal ( CWallet wallet,
const std::vector< CRecipient > &  vecSend,
CTransactionRef tx,
CAmount nFeeRet,
int &  nChangePosInOut,
bilingual_str error,
const CCoinControl coin_control,
FeeCalculation fee_calc_out,
bool  sign 
)
static

Definition at line 633 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createwallet()

static RPCHelpMan wallet::createwallet ( )
static

Definition at line 305 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateWallet()

std::shared_ptr< CWallet > wallet::CreateWallet ( WalletContext context,
const std::string &  name,
std::optional< bool >  load_on_start,
DatabaseOptions options,
DatabaseStatus status,
bilingual_str error,
std::vector< bilingual_str > &  warnings 
)

Definition at line 263 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DecodeDumpString()

static std::string wallet::DecodeDumpString ( const std::string &  str)
static

Definition at line 47 of file backup.cpp.

Here is the caller graph for this function:

◆ DecryptKey()

bool wallet::DecryptKey ( const CKeyingMaterial vMasterKey,
const std::vector< unsigned char > &  vchCryptedSecret,
const CPubKey vchPubKey,
CKey key 
)

Definition at line 128 of file crypter.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DecryptSecret()

bool wallet::DecryptSecret ( const CKeyingMaterial vMasterKey,
const std::vector< unsigned char > &  vchCiphertext,
const uint256 nIV,
CKeyingMaterial vchPlaintext 
)

Definition at line 118 of file crypter.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DescribeWalletAddress()

static UniValue wallet::DescribeWalletAddress ( const CWallet wallet,
const CTxDestination dest 
)
static

Definition at line 484 of file addresses.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dumpprivkey()

RPCHelpMan wallet::dumpprivkey ( )

Definition at line 638 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dumpwallet()

RPCHelpMan wallet::dumpwallet ( )

Definition at line 684 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DumpWallet()

bool wallet::DumpWallet ( CWallet wallet,
bilingual_str error 
)

Definition at line 14 of file dump.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EncodeDumpString()

static std::string wallet::EncodeDumpString ( const std::string &  str)
static

Definition at line 35 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EncryptSecret()

bool wallet::EncryptSecret ( const CKeyingMaterial vMasterKey,
const CKeyingMaterial vchPlaintext,
const uint256 nIV,
std::vector< unsigned char > &  vchCiphertext 
)

Definition at line 108 of file crypter.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ encryptwallet()

RPCHelpMan wallet::encryptwallet ( )

Definition at line 193 of file encrypt.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EnsureConstLegacyScriptPubKeyMan()

const LegacyScriptPubKeyMan & wallet::EnsureConstLegacyScriptPubKeyMan ( const CWallet wallet)

Definition at line 109 of file util.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EnsureLegacyScriptPubKeyMan()

LegacyScriptPubKeyMan & wallet::EnsureLegacyScriptPubKeyMan ( CWallet wallet,
bool  also_create 
)

Definition at line 97 of file util.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EnsureWalletContext()

WalletContext & wallet::EnsureWalletContext ( const std::any &  context)

Definition at line 87 of file util.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EnsureWalletIsUnlocked()

void wallet::EnsureWalletIsUnlocked ( const CWallet wallet)

Definition at line 80 of file util.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EqualResult()

static bool wallet::EqualResult ( const SelectionResult a,
const SelectionResult b 
)
static

Check if this selection is equal to another one.

Equal means same inputs (i.e same value and prevout)

Definition at line 125 of file coinselector_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EquivalentResult()

static bool wallet::EquivalentResult ( const SelectionResult a,
const SelectionResult b 
)
static

Check if SelectionResult a is equivalent to SelectionResult b.

Equivalent means same input values, but maybe different inputs (i.e. same value, different prevout)

Definition at line 107 of file coinselector_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ErrorLogCallback()

static void wallet::ErrorLogCallback ( void *  arg,
int  code,
const char *  msg 
)
static

Definition at line 29 of file sqlite.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EstimateFeeRate()

static CFeeRate wallet::EstimateFeeRate ( const CWallet wallet,
const CWalletTx wtx,
const CAmount  old_fee,
const CCoinControl coin_control 
)
static

Definition at line 117 of file feebumper.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractPubKey()

static bool wallet::ExtractPubKey ( const CScript dest,
CPubKey pubKeyOut 
)
static

Definition at line 867 of file scriptpubkeyman.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FindNonChangeParentOutput()

const CTxOut & wallet::FindNonChangeParentOutput ( const CWallet wallet,
const CTransaction tx,
int  output 
)

Find non-change parent output.

Definition at line 232 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FlushWallets()

void wallet::FlushWallets ( WalletContext context)

Flush all wallets in preparation for shutdown.

Definition at line 148 of file load.cpp.

Here is the call graph for this function:

◆ fundrawtransaction()

RPCHelpMan wallet::fundrawtransaction ( )

Definition at line 588 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FundTransaction() [1/2]

void wallet::FundTransaction ( CWallet wallet,
CMutableTransaction tx,
CAmount fee_out,
int &  change_position,
const UniValue options,
CCoinControl coinControl,
bool  override_min_fee 
)

Definition at line 389 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FundTransaction() [2/2]

bool wallet::FundTransaction ( CWallet wallet,
CMutableTransaction tx,
CAmount nFeeRet,
int &  nChangePosInOut,
bilingual_str error,
bool  lockUnspents,
const std::set< int > &  setSubtractFeeFromOutputs,
CCoinControl  coinControl 
)

Insert additional inputs into the transaction by calling CreateTransaction();.

Definition at line 981 of file spend.cpp.

Here is the call graph for this function:

◆ FundTxDoc()

static std::vector<RPCArg> wallet::FundTxDoc ( )
static

Definition at line 362 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetAddressBalances()

std::map< CTxDestination, CAmount > wallet::GetAddressBalances ( const CWallet wallet)

Definition at line 347 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getaddressesbylabel()

RPCHelpMan wallet::getaddressesbylabel ( )

Definition at line 651 of file addresses.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetAddressGroupings()

std::set< std::set< CTxDestination > > wallet::GetAddressGroupings ( const CWallet wallet)

Definition at line 385 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getaddressinfo()

RPCHelpMan wallet::getaddressinfo ( )

Definition at line 496 of file addresses.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetAffectedKeys()

std::vector< CKeyID > wallet::GetAffectedKeys ( const CScript spk,
const SigningProvider provider 
)

Definition at line 1468 of file scriptpubkeyman.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetAvailableBalance()

CAmount wallet::GetAvailableBalance ( const CWallet wallet,
const CCoinControl coinControl 
)

Definition at line 217 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetAvoidReuseFlag()

bool wallet::GetAvoidReuseFlag ( const CWallet wallet,
const UniValue param 
)

Definition at line 19 of file util.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getbalance()

RPCHelpMan wallet::getbalance ( )

Definition at line 162 of file coins.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetBalance()

Balance wallet::GetBalance ( const CWallet wallet,
const int  min_depth,
bool  avoid_reuse 
)

Definition at line 318 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getbalances()

RPCHelpMan wallet::getbalances ( )

Definition at line 433 of file coins.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetBerkeleyEnv()

std::shared_ptr< BerkeleyEnvironment > wallet::GetBerkeleyEnv ( const fs::path env_directory)

Get BerkeleyEnvironment given a directory path.

Parameters
[in]env_directoryPath to environment directory
Returns
A shared pointer to the BerkeleyEnvironment object for the wallet directory, never empty because ~BerkeleyEnvironment erases the weak pointer from the g_dbenvs map.
Postcondition
A new BerkeleyEnvironment weak pointer is inserted into g_dbenvs if the directory path key was not already in the map.

Definition at line 62 of file bdb.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetCachableAmount()

static CAmount wallet::GetCachableAmount ( const CWallet wallet,
const CWalletTx wtx,
CWalletTx::AmountType  type,
const isminefilter filter,
bool  recalculate = false 
)
static

Definition at line 114 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetClosestWalletFeature()

WalletFeature wallet::GetClosestWalletFeature ( int  version)

Definition at line 38 of file walletutil.cpp.

Here is the caller graph for this function:

◆ GetDiscardRate()

CFeeRate wallet::GetDiscardRate ( const CWallet wallet)

Return the maximum feerate for discarding change.

Definition at line 84 of file fees.cpp.

Here is the caller graph for this function:

◆ GetImportTimestamp()

static int64_t wallet::GetImportTimestamp ( const UniValue data,
int64_t  now 
)
static

Definition at line 1230 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetLocktimeForNewTransaction()

static uint32_t wallet::GetLocktimeForNewTransaction ( interfaces::Chain chain,
const uint256 block_hash,
int  block_height 
)
static

Return a height-based locktime for new transactions (uses the height of the current chain tip unless we are not synced with the current chain.

Definition at line 591 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetMinimumFee()

CAmount wallet::GetMinimumFee ( const CWallet wallet,
unsigned int  nTxBytes,
const CCoinControl coin_control,
FeeCalculation feeCalc 
)

Estimate the minimum fee considering user set parameters and the required fee.

Definition at line 19 of file fees.cpp.

Here is the call graph for this function:

◆ GetMinimumFeeRate()

CFeeRate wallet::GetMinimumFeeRate ( const CWallet wallet,
const CCoinControl coin_control,
FeeCalculation feeCalc 
)

Estimate the minimum fee rate considering user set parameters and the required fee.

Definition at line 29 of file fees.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getnewaddress()

RPCHelpMan wallet::getnewaddress ( )

Definition at line 17 of file addresses.cpp.

Here is the call graph for this function:

◆ GetOldestKeyTimeInPool()

static int64_t wallet::GetOldestKeyTimeInPool ( const std::set< int64_t > &  setKeyPool,
WalletBatch batch 
)
static

Definition at line 527 of file scriptpubkeyman.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getrawchangeaddress()

RPCHelpMan wallet::getrawchangeaddress ( )

Definition at line 72 of file addresses.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetReceived()

static CAmount wallet::GetReceived ( const CWallet wallet,
const UniValue params,
bool  by_label 
)
static

Definition at line 19 of file coins.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getreceivedbyaddress()

RPCHelpMan wallet::getreceivedbyaddress ( )

Definition at line 80 of file coins.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getreceivedbylabel()

RPCHelpMan wallet::getreceivedbylabel ( )

Definition at line 121 of file coins.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetRequiredFee()

CAmount wallet::GetRequiredFee ( const CWallet wallet,
unsigned int  nTxBytes 
)

Return the minimum required absolute fee for this size based on the required fee rate.

Definition at line 13 of file fees.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetRequiredFeeRate()

CFeeRate wallet::GetRequiredFeeRate ( const CWallet wallet)

Return the minimum required feerate taking into account the minimum relay feerate and user set minimum transaction feerate.

Definition at line 24 of file fees.cpp.

Here is the caller graph for this function:

◆ GetSelectionWaste()

CAmount wallet::GetSelectionWaste ( const std::set< CInputCoin > &  inputs,
CAmount  change_cost,
CAmount  target,
bool  use_effective_value = true 
)

Compute the waste for this result given the cost of change and the opportunity cost of spending these inputs now vs in the future.

If change exists, waste = change_cost + inputs * (effective_feerate - long_term_feerate) If no change, waste = excess + inputs * (effective_feerate - long_term_feerate) where excess = selected_effective_value - target change_cost = effective_feerate * change_output_size + long_term_feerate * change_spend_size

Note this function is separate from SelectionResult for the tests.

Parameters
[in]inputsThe selected inputs
[in]change_costThe cost of creating change and spending it in the future. Only used if there is change, in which case it must be positive. Must be 0 if there is no change.
[in]targetThe amount targeted by the coin selection algorithm.
[in]use_effective_valueWhether to use the input's effective value (when true) or the real value (when false).
Returns
The waste

Definition at line 360 of file coinselection.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gettransaction()

RPCHelpMan wallet::gettransaction ( )

Definition at line 699 of file transactions.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetTxSpendSize()

int wallet::GetTxSpendSize ( const CWallet wallet,
const CWalletTx wtx,
unsigned int  out,
bool  use_max_sig 
)

Get the marginal bytes if spending the specified output from this transaction.

Definition at line 27 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getunconfirmedbalance()

RPCHelpMan wallet::getunconfirmedbalance ( )

Definition at line 217 of file coins.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetWallet()

std::shared_ptr< CWallet > wallet::GetWallet ( WalletContext context,
const std::string &  name 
)

Definition at line 154 of file wallet.cpp.

Here is the caller graph for this function:

◆ GetWalletAddressesForKey()

static bool wallet::GetWalletAddressesForKey ( const LegacyScriptPubKeyMan spk_man,
const CWallet wallet,
const CKeyID keyid,
std::string &  strAddr,
std::string &  strLabel 
)
static

Definition at line 61 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetWalletDir()

fs::path wallet::GetWalletDir ( )

Get the path of the wallet directory.

Definition at line 11 of file walletutil.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetWalletEnv()

static std::shared_ptr<BerkeleyEnvironment> wallet::GetWalletEnv ( const fs::path path,
std::string &  database_filename 
)
static

Definition at line 17 of file db_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetWalletForJSONRPCRequest()

std::shared_ptr< CWallet > wallet::GetWalletForJSONRPCRequest ( const JSONRPCRequest request)

Figures out what wallet, if any, to use for a JSONRPCRequest.

Parameters
[in]requestJSONRPCRequest that wishes to access a wallet
Returns
nullptr if no wallet should be used, or a pointer to the CWallet

Definition at line 55 of file util.cpp.

Here is the call graph for this function:

◆ getwalletinfo()

static RPCHelpMan wallet::getwalletinfo ( )
static

Definition at line 30 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetWalletNameFromJSONRPCRequest()

bool wallet::GetWalletNameFromJSONRPCRequest ( const JSONRPCRequest request,
std::string &  wallet_name 
)

Definition at line 45 of file util.cpp.

Here is the caller graph for this function:

◆ GetWalletRPCCommands()

Span< const CRPCCommand > wallet::GetWalletRPCCommands ( )

Definition at line 657 of file wallet.cpp.

◆ GetWallets()

std::vector< std::shared_ptr< CWallet > > wallet::GetWallets ( WalletContext context)

Definition at line 148 of file wallet.cpp.

Here is the caller graph for this function:

◆ GroupCoins() [1/2]

std::vector<OutputGroup>& wallet::GroupCoins ( const std::vector< CInputCoin > &  coins)
inline

Definition at line 143 of file coinselector_tests.cpp.

Here is the caller graph for this function:

◆ GroupCoins() [2/2]

std::vector<OutputGroup>& wallet::GroupCoins ( const std::vector< COutput > &  coins)
inline

Definition at line 154 of file coinselector_tests.cpp.

◆ GroupOutputs()

std::vector< OutputGroup > wallet::GroupOutputs ( const CWallet wallet,
const std::vector< COutput > &  outputs,
const CoinSelectionParams coin_sel_params,
const CoinEligibilityFilter filter,
bool  positive_only 
)

Definition at line 291 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GUARDED_BY() [1/3]

static std::set<std::string> g_loading_wallet_set wallet::GUARDED_BY ( g_loading_wallet_mutex  )
static

◆ GUARDED_BY() [2/3]

static int g_sqlite_count wallet::GUARDED_BY ( g_sqlite_mutex  )
staticpure virtual

◆ GUARDED_BY() [3/3]

static std::set<std::string> g_unloading_wallet_set wallet::GUARDED_BY ( g_wallet_release_mutex  )
static

◆ HandleLoadWallet()

std::unique_ptr< interfaces::Handler > wallet::HandleLoadWallet ( WalletContext context,
LoadWalletFn  load_wallet 
)

Definition at line 163 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HandleWalletError()

void wallet::HandleWalletError ( const std::shared_ptr< CWallet wallet,
DatabaseStatus status,
bilingual_str error 
)

Definition at line 126 of file util.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HaveKey()

bool wallet::HaveKey ( const SigningProvider wallet,
const CKey key 
)

Checks if a CKey is in the given CWallet compressed or otherwise.

Definition at line 23 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ import_descriptor()

static void wallet::import_descriptor ( CWallet wallet,
const std::string &  descriptor 
)
static

Definition at line 17 of file psbt_wallet_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ importaddress()

RPCHelpMan wallet::importaddress ( )

Definition at line 197 of file backup.cpp.

Here is the call graph for this function:

◆ importdescriptors()

RPCHelpMan wallet::importdescriptors ( )

Definition at line 1576 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ importmulti()

RPCHelpMan wallet::importmulti ( )

Definition at line 1244 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ importprivkey()

RPCHelpMan wallet::importprivkey ( )

Definition at line 95 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ importprunedfunds()

RPCHelpMan wallet::importprunedfunds ( )

Definition at line 301 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ importpubkey()

RPCHelpMan wallet::importpubkey ( )

Definition at line 395 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ importwallet()

RPCHelpMan wallet::importwallet ( )

Definition at line 481 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InputIsMine()

isminetype wallet::InputIsMine ( const CWallet wallet,
const CTxIn txin 
)

Definition at line 12 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsBDBFile()

bool wallet::IsBDBFile ( const fs::path path)

Definition at line 78 of file db.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsCurrentForAntiFeeSniping()

static bool wallet::IsCurrentForAntiFeeSniping ( interfaces::Chain chain,
const uint256 block_hash 
)
static

Definition at line 573 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsFeatureSupported()

bool wallet::IsFeatureSupported ( int  wallet_version,
int  feature_version 
)

Definition at line 33 of file walletutil.cpp.

Here is the caller graph for this function:

◆ IsSQLiteFile()

bool wallet::IsSQLiteFile ( const fs::path path)

Definition at line 103 of file db.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ KeyFilter()

static bool wallet::KeyFilter ( const std::string &  type)
static

Definition at line 21 of file salvage.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ keypoolrefill()

RPCHelpMan wallet::keypoolrefill ( )

Definition at line 316 of file addresses.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ KnapsackGroupOutputs()

std::vector<OutputGroup>& wallet::KnapsackGroupOutputs ( const std::vector< COutput > &  coins,
CWallet wallet,
const CoinEligibilityFilter filter 
)
inline

Definition at line 165 of file coinselector_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ KnapsackSolver()

std::optional< SelectionResult > wallet::KnapsackSolver ( std::vector< OutputGroup > &  groups,
const CAmount nTargetValue 
)

Definition at line 238 of file coinselection.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LabelFromValue()

std::string wallet::LabelFromValue ( const UniValue value)

Definition at line 118 of file util.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ listaddressgroupings()

RPCHelpMan wallet::listaddressgroupings ( )

Definition at line 158 of file addresses.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ListCoins()

std::map< CTxDestination, std::vector< COutput > > wallet::ListCoins ( const CWallet wallet)

Return list of available coins and locked coins grouped by non-change output address.

Definition at line 250 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ListDatabases()

std::vector< fs::path > wallet::ListDatabases ( const fs::path wallet_dir)

Recursively list database paths in directory.

Definition at line 14 of file db.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ listdescriptors()

RPCHelpMan wallet::listdescriptors ( )

Definition at line 1733 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ listlabels()

RPCHelpMan wallet::listlabels ( )

Definition at line 709 of file addresses.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ listlockunspent()

RPCHelpMan wallet::listlockunspent ( )

Definition at line 380 of file coins.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ListReceived()

static UniValue wallet::ListReceived ( const CWallet wallet,
const UniValue params,
const bool  by_label,
const bool  include_immature_coinbase 
)
static

Definition at line 70 of file transactions.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ listreceivedbyaddress()

RPCHelpMan wallet::listreceivedbyaddress ( )

Definition at line 228 of file transactions.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ listreceivedbylabel()

RPCHelpMan wallet::listreceivedbylabel ( )

Definition at line 281 of file transactions.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ listsinceblock()

RPCHelpMan wallet::listsinceblock ( )

Definition at line 560 of file transactions.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ listtransactions()

RPCHelpMan wallet::listtransactions ( )

Definition at line 449 of file transactions.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ListTransactions()

static void wallet::ListTransactions ( const CWallet wallet,
const CWalletTx wtx,
int  nMinDepth,
bool  fLong,
UniValue ret,
const isminefilter filter_ismine,
const std::string *  filter_label 
)
static

List transactions based on the given criteria.

Parameters
walletThe wallet.
wtxThe wallet transaction.
nMinDepthThe minimum confirmation depth.
fLongWhether to include the JSON version of the transaction.
retThe UniValue into which the result is stored.
filter_ismineThe "is mine" filter flags.
filter_labelOptional label string to filter incoming transactions.

Definition at line 344 of file transactions.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ listunspent()

RPCHelpMan wallet::listunspent ( )

Definition at line 500 of file coins.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ listwalletdir()

static RPCHelpMan wallet::listwalletdir ( )
static

Definition at line 125 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ listwallets()

static RPCHelpMan wallet::listwallets ( )
static

Definition at line 162 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ loadwallet()

static RPCHelpMan wallet::loadwallet ( )
static

Definition at line 193 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LoadWallet()

std::shared_ptr< CWallet > wallet::LoadWallet ( WalletContext context,
const std::string &  name,
std::optional< bool >  load_on_start,
const DatabaseOptions options,
DatabaseStatus status,
bilingual_str error,
std::vector< bilingual_str > &  warnings 
)

Definition at line 250 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LoadWallets()

bool wallet::LoadWallets ( WalletContext context)

Load wallet databases.

Definition at line 99 of file load.cpp.

Here is the call graph for this function:

◆ lockunspent()

RPCHelpMan wallet::lockunspent ( )

Definition at line 240 of file coins.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_hard_case()

static CAmount wallet::make_hard_case ( int  utxos,
std::vector< CInputCoin > &  utxo_pool 
)
static

Definition at line 131 of file coinselector_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MakeBerkeleyDatabase()

std::unique_ptr< BerkeleyDatabase > wallet::MakeBerkeleyDatabase ( const fs::path path,
const DatabaseOptions options,
DatabaseStatus status,
bilingual_str error 
)

Return object giving access to Berkeley database at specified path.

Definition at line 826 of file bdb.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MakeDatabase()

std::unique_ptr< WalletDatabase > wallet::MakeDatabase ( const fs::path path,
const DatabaseOptions options,
DatabaseStatus status,
bilingual_str error 
)

Definition at line 1104 of file walletdb.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MakeSQLiteDatabase()

std::unique_ptr< SQLiteDatabase > wallet::MakeSQLiteDatabase ( const fs::path path,
const DatabaseOptions options,
DatabaseStatus status,
bilingual_str error 
)

Definition at line 560 of file sqlite.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MakeWalletDatabase()

std::unique_ptr< WalletDatabase > wallet::MakeWalletDatabase ( const std::string &  name,
const DatabaseOptions options,
DatabaseStatus status,
bilingual_str error_string 
)

Definition at line 2595 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ malformed_descriptor()

bool wallet::malformed_descriptor ( std::ios_base::failure  e)

Definition at line 673 of file wallet_tests.cpp.

Here is the caller graph for this function:

◆ MaybeCompactWalletDB()

void wallet::MaybeCompactWalletDB ( WalletContext context)

Compacts BDB state so that wallet.dat is self-contained (if there are changes)

Definition at line 1041 of file walletdb.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MaybePushAddress()

static void wallet::MaybePushAddress ( UniValue entry,
const CTxDestination dest 
)
static

Definition at line 326 of file transactions.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MaybeResendWalletTxs()

void wallet::MaybeResendWalletTxs ( WalletContext context)

Called periodically by the schedule thread.

Prompts individual wallets to resend their transactions. Actual rebroadcast schedule is managed by the wallets themselves.

Definition at line 1854 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ newkeypool()

RPCHelpMan wallet::newkeypool ( )

Definition at line 360 of file addresses.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OutputGetChange()

CAmount wallet::OutputGetChange ( const CWallet wallet,
const CTxOut txout 
)

Definition at line 93 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OutputGetCredit()

CAmount wallet::OutputGetCredit ( const CWallet wallet,
const CTxOut txout,
const isminefilter filter 
)

Definition at line 46 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OutputIsChange()

bool wallet::OutputIsChange ( const CWallet wallet,
const CTxOut txout 
)

Definition at line 88 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ParseIncludeWatchonly()

bool wallet::ParseIncludeWatchonly ( const UniValue include_watchonly,
const CWallet wallet 
)

Used by RPC commands that have an include_watchonly parameter.

We default to true for watchonly wallets if include_watchonly isn't explicitly set.

Definition at line 34 of file util.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ParseRecipients()

static void wallet::ParseRecipients ( const UniValue address_amounts,
const UniValue subtract_fee_outputs,
std::vector< CRecipient > &  recipients 
)
static

Definition at line 23 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PollutePubKey()

static void wallet::PollutePubKey ( CPubKey pubkey)
static

Definition at line 458 of file wallet_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PreconditionChecks()

static feebumper::Result wallet::PreconditionChecks ( const CWallet wallet,
const CWalletTx wtx,
std::vector< bilingual_str > &  errors 
)
static

Check whether transaction has descendant in wallet or mempool, or has been mined, or conflicts with a mined transaction.

Return a feebumper::Result.

Definition at line 22 of file feebumper.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ProcessDescriptorImport()

static UniValue wallet::ProcessDescriptorImport ( CWallet wallet,
const UniValue data,
const int64_t  timestamp 
)
static

Definition at line 1436 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ProcessImport()

static UniValue wallet::ProcessImport ( CWallet wallet,
const UniValue data,
const int64_t  timestamp 
)
static

Definition at line 1154 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ProcessImportDescriptor()

static UniValue wallet::ProcessImportDescriptor ( ImportData import_data,
std::map< CKeyID, CPubKey > &  pubkey_map,
std::map< CKeyID, CKey > &  privkey_map,
std::set< CScript > &  script_pub_keys,
bool &  have_solving_data,
const UniValue data,
std::vector< CKeyID > &  ordered_pubkeys 
)
static

Definition at line 1065 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ProcessImportLegacy()

static UniValue wallet::ProcessImportLegacy ( ImportData import_data,
std::map< CKeyID, CPubKey > &  pubkey_map,
std::map< CKeyID, CKey > &  privkey_map,
std::set< CScript > &  script_pub_keys,
bool &  have_solving_data,
const UniValue data,
std::vector< CKeyID > &  ordered_pubkeys 
)
static

Definition at line 918 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ psbtbumpfee()

RPCHelpMan wallet::psbtbumpfee ( )

Definition at line 962 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReadKeyValue() [1/2]

static bool wallet::ReadKeyValue ( CWallet pwallet,
CDataStream ssKey,
CDataStream ssValue,
CWalletScanState wss,
std::string &  strType,
std::string &  strErr,
const KeyFilterFn filter_fn = nullptr 
) -> cs_wallet)
static

Definition at line 322 of file walletdb.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReadKeyValue() [2/2]

bool wallet::ReadKeyValue ( CWallet pwallet,
CDataStream ssKey,
CDataStream ssValue,
std::string &  strType,
std::string &  strErr,
const KeyFilterFn filter_fn 
)

Unserialize a given Key-Value pair and load it into the wallet.

Definition at line 749 of file walletdb.cpp.

Here is the call graph for this function:

◆ ReadPragmaInteger()

static std::optional<int> wallet::ReadPragmaInteger ( sqlite3 *  db,
const std::string &  key,
const std::string &  description,
bilingual_str error 
)
static

Definition at line 40 of file sqlite.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecoverDatabaseFile()

bool wallet::RecoverDatabaseFile ( const fs::path file_path,
bilingual_str error,
std::vector< bilingual_str > &  warnings 
)

Salvage data from a file. The DB_AGGRESSIVE flag is being used (see berkeley DB->verify() method documentation). key/value pairs are appended to salvagedData which are then written out to a new wallet file. NOTE: reads the entire database into memory, so cannot be used for huge databases.

Definition at line 26 of file salvage.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecurseImportData()

static std::string wallet::RecurseImportData ( const CScript script,
ImportData import_data,
const ScriptContext  script_ctx 
)
static

Definition at line 850 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RefreshMempoolStatus()

static void wallet::RefreshMempoolStatus ( CWalletTx tx,
interfaces::Chain chain 
)
static

Refresh mempool status so the wallet is in an internally consistent state and immediately knows the transaction's status: Whether it can be considered trusted and is eligible to be abandoned ...

Definition at line 101 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReleaseWallet()

static void wallet::ReleaseWallet ( CWallet wallet)
static

Definition at line 177 of file wallet.cpp.

Here is the caller graph for this function:

◆ removeprunedfunds()

RPCHelpMan wallet::removeprunedfunds ( )

Definition at line 357 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RemoveWallet() [1/2]

bool wallet::RemoveWallet ( WalletContext context,
const std::shared_ptr< CWallet > &  wallet,
std::optional< bool >  load_on_start 
)

Definition at line 142 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RemoveWallet() [2/2]

bool wallet::RemoveWallet ( WalletContext context,
const std::shared_ptr< CWallet > &  wallet,
std::optional< bool >  load_on_start,
std::vector< bilingual_str > &  warnings 
)

Definition at line 122 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RemoveWalletSetting()

bool wallet::RemoveWalletSetting ( interfaces::Chain chain,
const std::string &  wallet_name 
)

Remove wallet name from persistent configuration so it will not be loaded on startup.

Definition at line 71 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rescanblockchain()

RPCHelpMan wallet::rescanblockchain ( )

Definition at line 851 of file transactions.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RescanWallet()

static void wallet::RescanWallet ( CWallet wallet,
const WalletRescanReserver reserver,
int64_t  time_begin = TIMESTAMP_MIN,
bool  update = true 
)
static

Definition at line 85 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ restorewallet()

RPCHelpMan wallet::restorewallet ( )

Definition at line 1853 of file backup.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RestoreWallet()

std::shared_ptr< CWallet > wallet::RestoreWallet ( WalletContext context,
const fs::path backup_file,
const std::string &  wallet_name,
std::optional< bool >  load_on_start,
DatabaseStatus status,
bilingual_str error,
std::vector< bilingual_str > &  warnings 
)

Definition at line 361 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ScriptIsChange()

bool wallet::ScriptIsChange ( const CWallet wallet,
const CScript script 
)

Definition at line 66 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SelectCoins()

std::optional< SelectionResult > wallet::SelectCoins ( const CWallet wallet,
const std::vector< COutput > &  vAvailableCoins,
const CAmount nTargetValue,
const CCoinControl coin_control,
const CoinSelectionParams coin_selection_params 
)

Select a set of coins such that nTargetValue is met and at least all coins from coin_control are selected; never select unconfirmed coins if they are not ours param@[in] wallet The wallet which provides data necessary to spend the selected coins param@[in] vAvailableCoins The vector of coins available to be spent param@[in] nTargetValue The target value param@[in] coin_selection_params Parameters for this coin selection such as feerates, whether to avoid partial spends, and whether to subtract the fee from the outputs.

returns If successful, a SelectionResult containing the selected coins If failed, a nullopt.

Definition at line 418 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SelectCoinsBnB()

std::optional< SelectionResult > wallet::SelectCoinsBnB ( std::vector< OutputGroup > &  utxo_pool,
const CAmount selection_target,
const CAmount cost_of_change 
)

Definition at line 65 of file coinselection.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SelectCoinsSRD()

std::optional< SelectionResult > wallet::SelectCoinsSRD ( const std::vector< OutputGroup > &  utxo_pool,
CAmount  target_value 
)

Select coins by Single Random Draw.

OutputGroups are selected randomly from the eligible outputs until the target is satisfied

Parameters
[in]utxo_poolThe positive effective value OutputGroups eligible for selection
[in]target_valueThe target value to select for
Returns
If successful, a SelectionResult, otherwise, std::nullopt

Definition at line 170 of file coinselection.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ send()

RPCHelpMan wallet::send ( )

Definition at line 964 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendmany()

RPCHelpMan wallet::sendmany ( )

Definition at line 226 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SendMoney()

UniValue wallet::SendMoney ( CWallet wallet,
const CCoinControl coin_control,
std::vector< CRecipient > &  recipients,
mapValue_t  map_value,
bool  verbose 
)

Definition at line 53 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendtoaddress()

RPCHelpMan wallet::sendtoaddress ( )

Definition at line 124 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetFeeEstimateMode()

static void wallet::SetFeeEstimateMode ( const CWallet wallet,
CCoinControl cc,
const UniValue conf_target,
const UniValue estimate_mode,
const UniValue fee_rate,
bool  override_min_fee 
)
static

Update coin control with fee estimation based on the given parameters.

Parameters
[in]walletWallet reference
[in,out]ccCoin control to be updated
[in]conf_targetUniValue integer; confirmation target in blocks, values between 1 and 1008 are valid per policy/fees.h;
[in]estimate_modeUniValue string; fee estimation mode, valid values are "unset", "economical" or "conservative";
[in]fee_rateUniValue real; fee rate in sat/vB; if present, both conf_target and estimate_mode must either be null, or "unset"
[in]override_min_feebool; whether to set fOverrideFeeRate to true to disable minimum fee rate checks and instead verify only that fee_rate is greater than 0
Exceptions
aJSONRPCError if conf_target, estimate_mode, or fee_rate contain invalid values or are in conflict

Definition at line 100 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sethdseed()

static RPCHelpMan wallet::sethdseed ( )
static

Definition at line 451 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setlabel()

RPCHelpMan wallet::setlabel ( )

Definition at line 120 of file addresses.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetPragma()

static void wallet::SetPragma ( sqlite3 *  db,
const std::string &  key,
const std::string &  value,
const std::string &  err_msg 
)
static

Definition at line 61 of file sqlite.cpp.

Here is the caller graph for this function:

◆ settxfee()

RPCHelpMan wallet::settxfee ( )

Definition at line 319 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setwalletflag()

static RPCHelpMan wallet::setwalletflag ( )
static

Definition at line 238 of file wallet.cpp.

Here is the caller graph for this function:

◆ signmessage()

RPCHelpMan wallet::signmessage ( )

Definition at line 14 of file signmessage.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ signrawtransactionwithwallet()

RPCHelpMan wallet::signrawtransactionwithwallet ( )

Definition at line 690 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SplitWalletPath()

void wallet::SplitWalletPath ( const fs::path wallet_path,
fs::path env_directory,
std::string &  database_filename 
)

◆ SQLiteDatabaseVersion()

std::string wallet::SQLiteDatabaseVersion ( )

Definition at line 578 of file sqlite.cpp.

Here is the caller graph for this function:

◆ SQLiteDataFile()

fs::path wallet::SQLiteDataFile ( const fs::path path)

Definition at line 73 of file db.cpp.

Here is the caller graph for this function:

◆ StartWallets()

void wallet::StartWallets ( WalletContext context,
CScheduler scheduler 
)

Complete startup of wallets.

Definition at line 135 of file load.cpp.

Here is the call graph for this function:

◆ StopWallets()

void wallet::StopWallets ( WalletContext context)

Stop all wallets. Wallets will be flushed first.

Definition at line 155 of file load.cpp.

Here is the call graph for this function:

◆ TestLoadWallet()

static const std::shared_ptr<CWallet> wallet::TestLoadWallet ( WalletContext context)
static

Definition at line 48 of file wallet_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TestSimpleSpend()

static CMutableTransaction wallet::TestSimpleSpend ( const CTransaction from,
uint32_t  index,
const CKey key,
const CScript pubkey 
)
static

Definition at line 70 of file wallet_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TestUnloadWallet()

static void wallet::TestUnloadWallet ( std::shared_ptr< CWallet > &&  wallet)
static

Definition at line 63 of file wallet_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TestWatchOnlyPubKey()

static void wallet::TestWatchOnlyPubKey ( LegacyScriptPubKeyMan spk_man,
const CPubKey add_pubkey 
)
static

Definition at line 426 of file wallet_tests.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TransactionDescriptionString()

static const std::vector<RPCResult> wallet::TransactionDescriptionString ( )
static

Definition at line 422 of file transactions.cpp.

Here is the caller graph for this function:

◆ TxGetChange()

CAmount wallet::TxGetChange ( const CWallet wallet,
const CTransaction tx 
)

Definition at line 101 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TxGetCredit()

CAmount wallet::TxGetCredit ( const CWallet wallet,
const CTransaction tx,
const isminefilter filter 
)

Definition at line 54 of file receive.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TxStateInterpretSerialized()

static TxState wallet::TxStateInterpretSerialized ( TxStateUnrecognized  data)
inlinestatic

Try to interpret deserialized TxStateUnrecognized data as a recognized state.

Definition at line 72 of file transaction.h.

Here is the caller graph for this function:

◆ TxStateSerializedBlockHash()

static uint256 wallet::TxStateSerializedBlockHash ( const TxState state)
inlinestatic

Get TxState serialized block hash. Inverse of TxStateInterpretSerialized.

Definition at line 87 of file transaction.h.

Here is the caller graph for this function:

◆ TxStateSerializedIndex()

static int wallet::TxStateSerializedIndex ( const TxState state)
inlinestatic

Get TxState serialized block index. Inverse of TxStateInterpretSerialized.

Definition at line 99 of file transaction.h.

Here is the caller graph for this function:

◆ unloadwallet()

static RPCHelpMan wallet::unloadwallet ( )
static

Definition at line 400 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UnloadWallet()

void wallet::UnloadWallet ( std::shared_ptr< CWallet > &&  wallet)

Explicitly unload and delete the wallet.

Blocks the current thread after signaling the unload intent so that all wallet pointer owners release the wallet. Note that, when blocking is not required, the wallet is implicitly unloaded by the shared pointer deleter.

Definition at line 194 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UnloadWallets()

void wallet::UnloadWallets ( WalletContext context)

Close all wallets.

Definition at line 162 of file load.cpp.

Here is the call graph for this function:

◆ UpdateWalletSetting()

static void wallet::UpdateWalletSetting ( interfaces::Chain chain,
const std::string &  wallet_name,
std::optional< bool >  load_on_startup,
std::vector< bilingual_str > &  warnings 
)
static

Definition at line 83 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ upgradewallet()

static RPCHelpMan wallet::upgradewallet ( )
static

Definition at line 522 of file wallet.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ VerifyWallets()

bool wallet::VerifyWallets ( WalletContext context)

Responsible for reading and validating the -wallet arguments and verifying the wallet database.

Definition at line 23 of file load.cpp.

Here is the call graph for this function:

◆ walletcreatefundedpsbt()

RPCHelpMan wallet::walletcreatefundedpsbt ( )

Definition at line 1238 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ walletdisplayaddress()

RPCHelpMan wallet::walletdisplayaddress ( )

Definition at line 765 of file addresses.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ walletlock()

RPCHelpMan wallet::walletlock ( )

Definition at line 155 of file encrypt.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ walletpassphrase()

RPCHelpMan wallet::walletpassphrase ( )

Definition at line 11 of file encrypt.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ walletpassphrasechange()

RPCHelpMan wallet::walletpassphrasechange ( )

Definition at line 107 of file encrypt.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ walletprocesspsbt()

RPCHelpMan wallet::walletprocesspsbt ( )

Definition at line 1162 of file spend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ WalletToolReleaseWallet()

static void wallet::WalletToolReleaseWallet ( CWallet wallet)
static

Definition at line 102 of file dump.cpp.

Here is the caller graph for this function:

◆ WalletTxToJSON()

static void wallet::WalletTxToJSON ( const CWallet wallet,
const CWalletTx wtx,
UniValue entry 
)
static

Definition at line 17 of file transactions.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ BIP32_HARDENED_KEY_LIMIT

const uint32_t wallet::BIP32_HARDENED_KEY_LIMIT = 0x80000000

Value for the first BIP 32 hardened derivation. Can be used as a bit mask and as a value. See BIP 32 for more details.

Definition at line 22 of file scriptpubkeyman.cpp.

◆ DATA_END

const char* wallet::DATA_END = "DATA=END"
static

Definition at line 18 of file salvage.cpp.

◆ DEFAULT_ADDRESS_TYPE

constexpr OutputType wallet::DEFAULT_ADDRESS_TYPE {OutputType::BECH32}
constexpr

Default for -addresstype.

Definition at line 120 of file wallet.h.

◆ DEFAULT_AVOIDPARTIALSPENDS

constexpr bool wallet::DEFAULT_AVOIDPARTIALSPENDS = false
staticconstexpr

Default for -avoidpartialspends.

Definition at line 26 of file coincontrol.h.

◆ DEFAULT_CONSOLIDATE_FEERATE

const CAmount wallet::DEFAULT_CONSOLIDATE_FEERATE {10000}
static

-consolidatefeerate default

Definition at line 82 of file wallet.h.

◆ DEFAULT_DISABLE_WALLET

const bool wallet::DEFAULT_DISABLE_WALLET = false
static

Definition at line 104 of file wallet.h.

◆ DEFAULT_DISCARD_FEE

const CAmount wallet::DEFAULT_DISCARD_FEE = 10000
static

-discardfee default

Definition at line 78 of file wallet.h.

◆ DEFAULT_FALLBACK_FEE

const CAmount wallet::DEFAULT_FALLBACK_FEE = 0
static

-fallbackfee default

Definition at line 76 of file wallet.h.

◆ DEFAULT_FLUSHWALLET

const bool wallet::DEFAULT_FLUSHWALLET = true
static

Overview of wallet database classes:

  • WalletBatch is an abstract modifier object for the wallet database, and encapsulates a database batch update as well as methods to act on the database. It should be agnostic to the database implementation.

The following classes are implementation specific:

Definition at line 42 of file walletdb.h.

◆ DEFAULT_KEYPOOL_SIZE

const unsigned int wallet::DEFAULT_KEYPOOL_SIZE = 1000
static

Default for -keypool.

Definition at line 50 of file scriptpubkeyman.h.

◆ DEFAULT_MAX_AVOIDPARTIALSPEND_FEE

const CAmount wallet::DEFAULT_MAX_AVOIDPARTIALSPEND_FEE = 0
static

maximum fee increase allowed to do partial spend avoidance, even for nodes with this feature disabled by default

A value of -1 disables this feature completely. A value of 0 (current default) means to attempt to do partial spend avoidance, and use its results if the fees remain unchanged A value > 0 means to do partial spend avoidance if the fee difference against a regular coin selection instance is in the range [0..value].

Definition at line 90 of file wallet.h.

◆ DEFAULT_MAX_DEPTH

const int wallet::DEFAULT_MAX_DEPTH = 9999999

Definition at line 23 of file coincontrol.h.

◆ DEFAULT_MIN_DEPTH

const int wallet::DEFAULT_MIN_DEPTH = 0

Definition at line 22 of file coincontrol.h.

◆ DEFAULT_PAY_TX_FEE

constexpr CAmount wallet::DEFAULT_PAY_TX_FEE = 0
constexpr

-paytxfee default

Definition at line 74 of file wallet.h.

◆ DEFAULT_SPEND_ZEROCONF_CHANGE

const bool wallet::DEFAULT_SPEND_ZEROCONF_CHANGE = true
static

Default for -spendzeroconfchange.

Definition at line 96 of file wallet.h.

◆ DEFAULT_TRANSACTION_MAXFEE

constexpr CAmount wallet::DEFAULT_TRANSACTION_MAXFEE {COIN / 10}
constexpr

-maxtxfee default

Definition at line 106 of file wallet.h.

◆ DEFAULT_TRANSACTION_MINFEE

const CAmount wallet::DEFAULT_TRANSACTION_MINFEE = 1000
static

-mintxfee default

Definition at line 80 of file wallet.h.

◆ DEFAULT_TX_CONFIRM_TARGET

const unsigned int wallet::DEFAULT_TX_CONFIRM_TARGET = 6
static

-txconfirmtarget default

Definition at line 100 of file wallet.h.

◆ DEFAULT_WALLET_DBLOGSIZE

const unsigned int wallet::DEFAULT_WALLET_DBLOGSIZE = 100
static

Definition at line 35 of file bdb.h.

◆ DEFAULT_WALLET_PRIVDB

const bool wallet::DEFAULT_WALLET_PRIVDB = true
static

Definition at line 36 of file bdb.h.

◆ DEFAULT_WALLET_RBF

const bool wallet::DEFAULT_WALLET_RBF = false
static

-walletrbf default

Definition at line 102 of file wallet.h.

◆ DEFAULT_WALLET_REJECT_LONG_CHAINS

const bool wallet::DEFAULT_WALLET_REJECT_LONG_CHAINS = false
static

Default for -walletrejectlongchains.

Definition at line 98 of file wallet.h.

◆ DEFAULT_WALLETBROADCAST

const bool wallet::DEFAULT_WALLETBROADCAST = true
static

Definition at line 103 of file wallet.h.

◆ descending

struct { ... } wallet::descending

◆ DUMMY_NESTED_P2WPKH_INPUT_SIZE

constexpr size_t wallet::DUMMY_NESTED_P2WPKH_INPUT_SIZE = 91
staticconstexpr

Pre-calculated constants for input size estimation in virtual size

Definition at line 112 of file wallet.h.

◆ DUMP_MAGIC

const std::string wallet::DUMP_MAGIC = "BITCOIN_CORE_WALLET_DUMP"
static

Definition at line 11 of file dump.cpp.

◆ DUMP_VERSION

uint32_t wallet::DUMP_VERSION = 1

Definition at line 12 of file dump.cpp.

◆ filter_confirmed

const CoinEligibilityFilter wallet::filter_confirmed(1, 1, 0)
static

◆ filter_standard

const CoinEligibilityFilter wallet::filter_standard(1, 6, 0)
static

◆ filter_standard_extra

const CoinEligibilityFilter wallet::filter_standard_extra(6, 6, 0)
static

◆ g_loading_wallet_mutex

Mutex wallet::g_loading_wallet_mutex
static

Definition at line 170 of file wallet.cpp.

◆ g_sqlite_mutex

Mutex wallet::g_sqlite_mutex
static

Definition at line 26 of file sqlite.cpp.

◆ g_wallet_release_cv

std::condition_variable wallet::g_wallet_release_cv
static

Definition at line 172 of file wallet.cpp.

◆ g_wallet_release_mutex

Mutex wallet::g_wallet_release_mutex
static

Definition at line 171 of file wallet.cpp.

◆ HEADER_END

const char* wallet::HEADER_END = "HEADER=END"
static

Definition at line 16 of file salvage.cpp.

◆ HELP_REQUIRING_PASSPHRASE

const std::string wallet::HELP_REQUIRING_PASSPHRASE {"\nRequires wallet passphrase to be set with walletpassphrase call if wallet is encrypted.\n"}

Definition at line 17 of file util.cpp.

◆ HIGH_APS_FEE

constexpr CAmount wallet::HIGH_APS_FEE {COIN / 10000}
constexpr

discourage APS fee higher than this amount

Definition at line 92 of file wallet.h.

◆ HIGH_MAX_TX_FEE

constexpr CAmount wallet::HIGH_MAX_TX_FEE {100 * HIGH_TX_FEE_PER_KB}
constexpr

-maxtxfee will warn if called with a higher fee than this amount (in satoshis)

Definition at line 110 of file wallet.h.

◆ HIGH_TX_FEE_PER_KB

constexpr CAmount wallet::HIGH_TX_FEE_PER_KB {COIN / 100}
constexpr

Discourage users to set fees higher than this amount (in satoshis) per kB.

Definition at line 108 of file wallet.h.

◆ KNOWN_WALLET_FLAGS

constexpr uint64_t wallet::KNOWN_WALLET_FLAGS
staticconstexpr

◆ LEGACY_OUTPUT_TYPES

const std::unordered_set<OutputType> wallet::LEGACY_OUTPUT_TYPES
static
Initial value:

OutputTypes supported by the LegacyScriptPubKeyMan.

Definition at line 258 of file scriptpubkeyman.h.

◆ MIN_CHANGE

constexpr CAmount wallet::MIN_CHANGE {COIN / 100}
staticconstexpr

target minimum change amount

Definition at line 17 of file coinselection.h.

◆ MIN_FINAL_CHANGE

const CAmount wallet::MIN_FINAL_CHANGE = MIN_CHANGE/2
static

final minimum change amount after paying for fees

Definition at line 19 of file coinselection.h.

◆ MUTABLE_WALLET_FLAGS

constexpr uint64_t wallet::MUTABLE_WALLET_FLAGS
staticconstexpr
Initial value:

Definition at line 131 of file wallet.h.

◆ nextLockTime

int wallet::nextLockTime = 0
static

Definition at line 36 of file coinselector_tests.cpp.

◆ OUTPUT_GROUP_MAX_ENTRIES

constexpr size_t wallet::OUTPUT_GROUP_MAX_ENTRIES {100}
staticconstexpr

Definition at line 25 of file spend.cpp.

◆ TIMESTAMP_MIN

const int64_t wallet::TIMESTAMP_MIN = 0
static

Definition at line 83 of file backup.cpp.

◆ TOTAL_TRIES

const size_t wallet::TOTAL_TRIES = 100000
static

Definition at line 63 of file coinselection.cpp.

◆ WALLET_CRYPTO_IV_SIZE

const unsigned int wallet::WALLET_CRYPTO_IV_SIZE = 16

Definition at line 16 of file crypter.h.

◆ WALLET_CRYPTO_KEY_SIZE

const unsigned int wallet::WALLET_CRYPTO_KEY_SIZE = 32

Definition at line 14 of file crypter.h.

◆ WALLET_CRYPTO_SALT_SIZE

const unsigned int wallet::WALLET_CRYPTO_SALT_SIZE = 8

Definition at line 15 of file crypter.h.

◆ WALLET_ENDPOINT_BASE

const std::string wallet::WALLET_ENDPOINT_BASE = "/wallet/"
static

Definition at line 16 of file util.cpp.

◆ WALLET_FLAG_CAVEATS

const std::map< uint64_t, std::string > wallet::WALLET_FLAG_CAVEATS
Initial value:
{
"You need to rescan the blockchain in order to correctly mark used "
"destinations in the past. Until this is done, some destinations may "
"be considered unused, even if the opposite is the case."
},
}

Definition at line 52 of file wallet.cpp.

◆ WALLET_FLAG_MAP

const std::map<std::string,WalletFlags> wallet::WALLET_FLAG_MAP
static
Initial value:
{
{"avoid_reuse", WALLET_FLAG_AVOID_REUSE},
{"key_origin_metadata", WALLET_FLAG_KEY_ORIGIN_METADATA},
{"last_hardened_xpub_cached", WALLET_FLAG_LAST_HARDENED_XPUB_CACHED},
{"disable_private_keys", WALLET_FLAG_DISABLE_PRIVATE_KEYS},
{"descriptor_wallet", WALLET_FLAG_DESCRIPTORS},
{"external_signer", WALLET_FLAG_EXTERNAL_SIGNER}
}

Definition at line 134 of file wallet.h.

◆ WALLET_INCREMENTAL_RELAY_FEE

const CAmount wallet::WALLET_INCREMENTAL_RELAY_FEE = 5000
static

minimum recommended increment for BIP 125 replacement txs

Definition at line 94 of file wallet.h.

◆ WALLET_SCHEMA_VERSION

constexpr int32_t wallet::WALLET_SCHEMA_VERSION = 0
staticconstexpr

Definition at line 24 of file sqlite.cpp.

OutputType::LEGACY
@ LEGACY
wallet::WALLET_FLAG_DESCRIPTORS
@ WALLET_FLAG_DESCRIPTORS
Indicate that this wallet supports DescriptorScriptPubKeyMan.
Definition: walletutil.h:66
wallet::WALLET_FLAG_EXTERNAL_SIGNER
@ WALLET_FLAG_EXTERNAL_SIGNER
Indicates that the wallet needs an external signer.
Definition: walletutil.h:69
wallet::WALLET_FLAG_BLANK_WALLET
@ WALLET_FLAG_BLANK_WALLET
Flag set when a wallet contains no HD seed and no private keys, scripts, addresses,...
Definition: walletutil.h:63
wallet::WALLET_FLAG_DISABLE_PRIVATE_KEYS
@ WALLET_FLAG_DISABLE_PRIVATE_KEYS
Definition: walletutil.h:51
wallet::WALLET_FLAG_AVOID_REUSE
@ WALLET_FLAG_AVOID_REUSE
Definition: walletutil.h:42
wallet::WALLET_FLAG_LAST_HARDENED_XPUB_CACHED
@ WALLET_FLAG_LAST_HARDENED_XPUB_CACHED
Definition: walletutil.h:48
wallet::WALLET_FLAG_KEY_ORIGIN_METADATA
@ WALLET_FLAG_KEY_ORIGIN_METADATA
Definition: walletutil.h:45
OutputType::P2SH_SEGWIT
@ P2SH_SEGWIT
OutputType::BECH32
@ BECH32