![]() |
Bitcoin ABC
0.22.13
P2P Digital Currency
|
#include <amount.h>
#include <interfaces/chain.h>
#include <interfaces/handler.h>
#include <outputtype.h>
#include <primitives/blockhash.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/translation.h>
#include <util/ui_change_type.h>
#include <validationinterface.h>
#include <wallet/coinselection.h>
#include <wallet/crypter.h>
#include <wallet/rpcwallet.h>
#include <wallet/scriptpubkeyman.h>
#include <wallet/walletdb.h>
#include <wallet/walletutil.h>
#include <algorithm>
#include <atomic>
#include <cstdint>
#include <map>
#include <memory>
#include <set>
#include <stdexcept>
#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 |
struct | COutputEntry |
class | CMerkleTx |
Legacy class used for deserializing vtxPrev for backwards compatibility. More... | |
class | CWalletTx |
A transaction with a bunch of additional info that only the owner cares about. More... | |
struct | CWalletTx::Confirmation |
Confirmation includes tx status and a triplet of {block height/block hash/tx index in block} at which tx has been confirmed. More... | |
class | COutput |
struct | CoinSelectionParams |
class | CWallet |
A CWallet maintains a set of transactions and balances, and provides the ability to create new transactions. More... | |
struct | CWallet::ScanResult |
struct | CWallet::Balance |
class | WalletRescanReserver |
RAII object to check and reserve a wallet rescan. More... | |
Typedefs | |
using | LoadWalletFn = std::function< void(std::unique_ptr< interfaces::Wallet > wallet)> |
typedef std::map< std::string, std::string > | mapValue_t |
Enumerations | |
enum | WalletCreationStatus { WalletCreationStatus::SUCCESS, WalletCreationStatus::CREATION_FAILED, WalletCreationStatus::ENCRYPTION_FAILED } |
Functions | |
void | UnloadWallet (std::shared_ptr< CWallet > &&wallet) |
Explicitly unload and delete the wallet. More... | |
bool | AddWallet (const std::shared_ptr< CWallet > &wallet) |
bool | RemoveWallet (const std::shared_ptr< CWallet > &wallet) |
bool | HasWallets () |
std::vector< std::shared_ptr< CWallet > > | GetWallets () |
std::shared_ptr< CWallet > | GetWallet (const std::string &name) |
std::shared_ptr< CWallet > | LoadWallet (const CChainParams &chainParams, interfaces::Chain &chain, const WalletLocation &location, bilingual_str &error, std::vector< bilingual_str > &warnings) |
std::unique_ptr< interfaces::Handler > | HandleLoadWallet (LoadWalletFn load_wallet) |
WalletCreationStatus | CreateWallet (const CChainParams ¶ms, interfaces::Chain &chain, const SecureString &passphrase, uint64_t wallet_creation_flags, const std::string &name, bilingual_str &error, std::vector< bilingual_str > &warnings, std::shared_ptr< CWallet > &result) |
static const Amount | WALLET_INCREMENTAL_RELAY_FEE (5000 *SATOSHI) |
minimum recommended increment for BIP 125 replacement txs More... | |
static void | ReadOrderPos (int64_t &nOrderPos, mapValue_t &mapValue) |
static void | WriteOrderPos (const int64_t &nOrderPos, mapValue_t &mapValue) |
int | CalculateMaximumSignedInputSize (const CTxOut &txout, const CWallet *pwallet, bool use_max_sig=false) |
void | MaybeResendWalletTxs () |
Called periodically by the schedule thread. More... | |
int64_t | CalculateMaximumSignedTxSize (const CTransaction &tx, const CWallet *wallet, bool use_max_sig=false) EXCLUSIVE_LOCKS_REQUIRED(wallet -> cs_wallet) |
int64_t | CalculateMaximumSignedTxSize (const CTransaction &tx, const CWallet *wallet, const std::vector< CTxOut > &txouts, bool use_max_sig=false) |
Variables | |
constexpr Amount | DEFAULT_PAY_TX_FEE = Amount::zero() |
-paytxfee default More... | |
static const Amount | DEFAULT_FALLBACK_FEE = Amount::zero() |
-fallbackfee default More... | |
static const Amount | DEFAULT_TRANSACTION_MINFEE_PER_KB = 1000 * SATOSHI |
-mintxfee default More... | |
static const Amount | DEFAULT_MAX_AVOIDPARTIALSPEND_FEE = Amount::zero() |
maximum fee increase allowed to do partial spend avoidance, even for nodes with this feature disabled by default More... | |
constexpr Amount | HIGH_APS_FEE {COIN / 10000} |
discourage APS fee higher than this amount 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 bool | DEFAULT_WALLETBROADCAST = true |
static const bool | DEFAULT_DISABLE_WALLET = false |
constexpr Amount | DEFAULT_TRANSACTION_MAXFEE {COIN / 10} |
-maxtxfee default More... | |
constexpr Amount | HIGH_TX_FEE_PER_KB {COIN / 100} |
Discourage users to set fees higher than this amount (in satoshis) per kB. More... | |
constexpr Amount | 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_P2PKH_INPUT_SIZE = 148 |
Pre-calculated constants for input size estimation. More... | |
constexpr OutputType | DEFAULT_ADDRESS_TYPE {OutputType::LEGACY} |
Default for -addresstype. More... | |
constexpr OutputType | DEFAULT_CHANGE_TYPE {OutputType::CHANGE_AUTO} |
Default for -changetype. More... | |
static constexpr uint64_t | KNOWN_WALLET_FLAGS |
static constexpr uint64_t | MUTABLE_WALLET_FLAGS = WALLET_FLAG_AVOID_REUSE |
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)> |
typedef std::map<std::string, std::string> mapValue_t |
|
strong |
bool AddWallet | ( | const std::shared_ptr< CWallet > & | wallet | ) |
WalletCreationStatus CreateWallet | ( | const CChainParams & | params, |
interfaces::Chain & | chain, | ||
const SecureString & | passphrase, | ||
uint64_t | wallet_creation_flags, | ||
const std::string & | name, | ||
bilingual_str & | error, | ||
std::vector< bilingual_str > & | warnings, | ||
std::shared_ptr< CWallet > & | result | ||
) |
Definition at line 65 of file dummywallet.cpp.
std::shared_ptr<CWallet> GetWallet | ( | const std::string & | name | ) |
std::vector<std::shared_ptr<CWallet> > GetWallets | ( | ) |
std::unique_ptr<interfaces::Handler> HandleLoadWallet | ( | LoadWalletFn | load_wallet | ) |
bool HasWallets | ( | ) |
std::shared_ptr<CWallet> LoadWallet | ( | const CChainParams & | chainParams, |
interfaces::Chain & | chain, | ||
const WalletLocation & | location, | ||
bilingual_str & | error, | ||
std::vector< bilingual_str > & | warnings | ||
) |
Definition at line 154 of file wallet.cpp.
void MaybeResendWalletTxs | ( | ) |
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 2241 of file wallet.cpp.
|
inlinestatic |
bool RemoveWallet | ( | const std::shared_ptr< CWallet > & | wallet | ) |
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 129 of file wallet.cpp.
|
static |
minimum recommended increment for BIP 125 replacement txs
|
inlinestatic |
constexpr OutputType DEFAULT_ADDRESS_TYPE {OutputType::LEGACY} |
constexpr OutputType DEFAULT_CHANGE_TYPE {OutputType::CHANGE_AUTO} |
|
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 Amount DEFAULT_PAY_TX_FEE = Amount::zero() |
|
static |
|
static |
|
static |
constexpr Amount HIGH_MAX_TX_FEE {100 * HIGH_TX_FEE_PER_KB} |
|
static |
|
static |
const std::map<uint64_t, std::string> WALLET_FLAG_CAVEATS |
Definition at line 39 of file wallet.cpp.
|
static |