![]() |
Bitcoin Core 22.99.0
P2P Digital Currency
|
#include <consensus/amount.h>
#include <interfaces/chain.h>
#include <interfaces/handler.h>
#include <outputtype.h>
#include <policy/feerate.h>
#include <psbt.h>
#include <tinyformat.h>
#include <util/message.h>
#include <util/strencodings.h>
#include <util/string.h>
#include <util/system.h>
#include <util/ui_change_type.h>
#include <validationinterface.h>
#include <wallet/coinselection.h>
#include <wallet/crypter.h>
#include <wallet/scriptpubkeyman.h>
#include <wallet/transaction.h>
#include <wallet/walletdb.h>
#include <wallet/walletutil.h>
#include <algorithm>
#include <atomic>
#include <map>
#include <memory>
#include <optional>
#include <set>
#include <stdexcept>
#include <stdint.h>
#include <string>
#include <utility>
#include <vector>
#include <boost/signals2/signal.hpp>
Go to the source code of this file.
Classes | |
class | ReserveDestination |
A wrapper to reserve an address from a wallet. More... | |
class | CAddressBookData |
Address book data. More... | |
struct | CRecipient |
class | CWallet |
A CWallet maintains a set of transactions and balances, and provides the ability to create new transactions. More... | |
struct | CWallet::ScanResult |
class | WalletRescanReserver |
RAII object to check and reserve a wallet rescan. More... | |
Typedefs | |
using | LoadWalletFn = std::function< void(std::unique_ptr< interfaces::Wallet > wallet)> |
Functions | |
void | UnloadWallet (std::shared_ptr< CWallet > &&wallet) |
Explicitly unload and delete the wallet. 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< CWallet > | GetWallet (WalletContext &context, const std::string &name) |
std::shared_ptr< CWallet > | 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) |
std::shared_ptr< CWallet > | 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) |
std::unique_ptr< interfaces::Handler > | HandleLoadWallet (WalletContext &context, LoadWalletFn load_wallet) |
std::unique_ptr< WalletDatabase > | MakeWalletDatabase (const std::string &name, const DatabaseOptions &options, DatabaseStatus &status, bilingual_str &error) |
void | MaybeResendWalletTxs (WalletContext &context) |
Called periodically by the schedule thread. 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... | |
bool | DummySignInput (const SigningProvider &provider, CTxIn &tx_in, const CTxOut &txout, bool use_max_sig) |
Variables | |
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, WalletFlags > | WALLET_FLAG_MAP |
const std::map< uint64_t, std::string > | WALLET_FLAG_CAVEATS |
using LoadWalletFn = std::function<void(std::unique_ptr<interfaces::Wallet> wallet)> |
bool AddWallet | ( | WalletContext & | context, |
const std::shared_ptr< CWallet > & | wallet | ||
) |
Definition at line 105 of file wallet.cpp.
bool 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 59 of file wallet.cpp.
std::shared_ptr< CWallet > 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 258 of file wallet.cpp.
std::shared_ptr< CWallet > GetWallet | ( | WalletContext & | context, |
const std::string & | name | ||
) |
std::vector< std::shared_ptr< CWallet > > GetWallets | ( | WalletContext & | context | ) |
std::unique_ptr< interfaces::Handler > HandleLoadWallet | ( | WalletContext & | context, |
LoadWalletFn | load_wallet | ||
) |
Definition at line 158 of file wallet.cpp.
std::shared_ptr< CWallet > 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 245 of file wallet.cpp.
std::unique_ptr< WalletDatabase > MakeWalletDatabase | ( | const std::string & | name, |
const DatabaseOptions & | options, | ||
DatabaseStatus & | status, | ||
bilingual_str & | error | ||
) |
Definition at line 2510 of file wallet.cpp.
void 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 1809 of file wallet.cpp.
bool RemoveWallet | ( | WalletContext & | context, |
const std::shared_ptr< CWallet > & | wallet, | ||
std::optional< bool > | load_on_start | ||
) |
bool RemoveWallet | ( | WalletContext & | context, |
const std::shared_ptr< CWallet > & | wallet, | ||
std::optional< bool > | load_on_start, | ||
std::vector< bilingual_str > & | warnings | ||
) |
Definition at line 117 of file wallet.cpp.
bool 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 70 of file wallet.cpp.
void 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 clients release the wallet. Note that, when blocking is not required, the wallet is implicitly unloaded by the shared pointer deleter.
Definition at line 189 of file wallet.cpp.
|
constexpr |
|
static |
|
static |
|
static |
|
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].
|
constexpr |
|
static |
|
static |
|
static |
|
static |
|
static |
|
staticconstexpr |
|
constexpr |
|
staticconstexpr |
|
staticconstexpr |
|
extern |
Definition at line 51 of file wallet.cpp.
|
static |