![]() |
Bitcoin Core
24.99.0
P2P Digital Currency
|
Namespaces | |
DBKeys | |
feebumper | |
wallet_crypto_tests | |
WalletTool | |
Classes | |
struct | WalletDatabaseFileId |
class | BerkeleyEnvironment |
class | BerkeleyDatabase |
An instance of this class represents one database. More... | |
class | SafeDbt |
RAII class that automatically cleanses its data on destruction. More... | |
class | BerkeleyCursor |
class | BerkeleyBatch |
RAII class that provides access to a Berkeley database. More... | |
class | CCoinControl |
Coin Control Features. More... | |
struct | COutput |
A UTXO under consideration for use in funding a new transaction. More... | |
struct | CoinSelectionParams |
Parameters for one iteration of Coin Selection. More... | |
struct | CoinEligibilityFilter |
Parameters for filtering which OutputGroups we may use in coin selection. More... | |
struct | OutputGroup |
A group of UTXOs paid to the same output script. More... | |
struct | Groups |
struct | OutputGroupTypeMap |
Stores several 'Groups' whose were mapped by output type. More... | |
struct | SelectionResult |
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 | CMasterKey |
Private key encryption is done based on a CMasterKey, which holds a salt and random encryption key. More... | |
class | CCrypter |
Encryption/decryption context with key information. More... | |
class | DatabaseCursor |
class | DatabaseBatch |
RAII class that provides access to a WalletDatabase. More... | |
class | WalletDatabase |
An instance of this class represents one database. More... | |
class | DummyCursor |
class | DummyBatch |
RAII class that provides access to a DummyDatabase. More... | |
class | DummyDatabase |
A dummy WalletDatabase that does nothing and never fails. More... | |
struct | DatabaseOptions |
class | ExternalSignerScriptPubKeyMan |
class | WalletInit |
struct | CachableAmount |
Cachable amount subdivided into watchonly and spendable parts. More... | |
struct | COutputEntry |
struct | Balance |
class | DescribeWalletAddressVisitor |
struct | ImportData |
struct | tallyitem |
class | WalletStorage |
class | CKeyPool |
A key from a CWallet's keypool. More... | |
struct | WalletDestination |
class | ScriptPubKeyMan |
class | LegacyScriptPubKeyMan |
class | LegacySigningProvider |
Wraps a LegacyScriptPubKeyMan so that it can be returned in a new unique_ptr. More... | |
class | DescriptorScriptPubKeyMan |
struct | TxSize |
struct | CoinsResult |
COutputs available for spending, stored by OutputType. More... | |
struct | CoinFilterParams |
struct | SelectionFilter |
struct | PreSelectedInputs |
struct | CreatedTransactionResult |
class | SQLiteCursor |
class | SQLiteBatch |
RAII class that provides access to a WalletDatabase. More... | |
class | SQLiteDatabase |
An instance of this class represents one SQLite3 database. More... | |
class | GroupVerifier |
struct | InitWalletDirTestingSetup |
class | TestCrypter |
struct | WalletTestingSetup |
Testing setup and teardown for wallet. More... | |
class | ListCoinsTestingSetup |
class | FailCursor |
class | FailBatch |
RAII class that provides access to a FailDatabase. More... | |
class | FailDatabase |
A dummy WalletDatabase that does nothing, only fails if needed. More... | |
class | DummyDescriptor |
struct | TxStateConfirmed |
State of transaction confirmed in a block. More... | |
struct | TxStateInMempool |
State of transaction added to mempool. 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 | TxStateUnrecognized |
State of transaction loaded in an unrecognized state with unexpected hash or index values. More... | |
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 | WalletTxOrderComparator |
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... | |
class | WalletRescanReserver |
RAII object to check and reserve a wallet rescan. More... | |
struct | MigrationResult |
class | CWalletScanState |
class | CHDChain |
class | CKeyMetadata |
class | WalletBatch |
Access to the wallet database. More... | |
class | WalletDescriptor |
Descriptor with some wallet metadata. More... | |
struct | MigrationData |
struct containing information needed for migrating legacy wallets to descriptor wallets More... | |
Typedefs | |
using | isminefilter = std::underlying_type< isminetype >::type |
used for bitflags of isminetype More... | |
typedef std::map< CoinEligibilityFilter, OutputGroupTypeMap > | FilteredOutputGroups |
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< std::shared_ptr< COutput > > | CoinSet |
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... | |
Functions | |
std::shared_ptr< BerkeleyEnvironment > | GetBerkeleyEnv (const fs::path &env_directory, bool use_shared_memory) |
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< BerkeleyDatabase > | MakeBerkeleyDatabase (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< SelectionResult > | SelectCoinsBnB (std::vector< OutputGroup > &utxo_pool, const CAmount &selection_target, const CAmount &cost_of_change) |
std::optional< SelectionResult > | SelectCoinsSRD (const std::vector< OutputGroup > &utxo_pool, CAmount target_value, FastRandomContext &rng) |
Select coins by Single Random Draw. More... | |
static void | ApproximateBestSubset (FastRandomContext &insecure_rand, const std::vector< OutputGroup > &groups, const CAmount &nTotalLower, const CAmount &nTargetValue, std::vector< char > &vfBest, CAmount &nBest, int iterations=1000) |
Find a subset of the OutputGroups that is at least as large as, but as close as possible to, the target amount; solve subset sum. More... | |
std::optional< SelectionResult > | KnapsackSolver (std::vector< OutputGroup > &groups, const CAmount &nTargetValue, CAmount change_target, FastRandomContext &rng) |
CAmount | GetSelectionWaste (const std::set< std::shared_ptr< COutput >> &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... | |
CAmount | GenerateChangeTarget (const CAmount payment_value, const CAmount change_fee, FastRandomContext &rng) |
Choose a random change target for each transaction to make it harder to fingerprint the Core wallet based on the change output values of transactions it creates. More... | |
std::string | GetAlgorithmName (const SelectionAlgorithm algo) |
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::path > | ListDatabases (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 | ReadDatabaseArgs (const ArgsManager &args, DatabaseOptions &options) |
void | SplitWalletPath (const fs::path &wallet_path, fs::path &env_directory, std::string &database_filename) |
std::unique_ptr< WalletDatabase > | MakeDatabase (const fs::path &path, const DatabaseOptions &options, DatabaseStatus &status, bilingual_str &error) |
bool | DumpWallet (const ArgsManager &args, CWallet &wallet, bilingual_str &error) |
static void | WalletToolReleaseWallet (CWallet *wallet) |
bool | CreateFromDump (const ArgsManager &args, 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, bool require_mine, 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, CAmount old_fee, 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) |
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, const isminefilter &filter) |
CAmount | CachedTxGetAvailableCredit (const CWallet &wallet, const CWalletTx &wtx, 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 include_change) |
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, CAmount > | GetAddressBalances (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 () |
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) |
static void | EnsureBlockDataFromTime (const CWallet &wallet, int64_t timestamp) |
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 ¶ms, 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) |
static void | InterpretFeeEstimationInstructions (const UniValue &conf_target, const UniValue &estimate_mode, const UniValue &fee_rate, UniValue &options) |
static UniValue | FinishTransaction (const std::shared_ptr< CWallet > pwallet, const UniValue &options, const CMutableTransaction &rawTx) |
static void | PreventOutdatedOptions (const UniValue &options) |
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< RPCArg > | FundTxDoc (bool solving_data=true) |
void | FundTransaction (CWallet &wallet, CMutableTransaction &tx, CAmount &fee_out, int &change_position, const UniValue &options, CCoinControl &coinControl, bool override_min_fee) |
static void | SetOptionsInputWeights (const UniValue &inputs, UniValue &options) |
RPCHelpMan | fundrawtransaction () |
RPCHelpMan | signrawtransactionwithwallet () |
static std::vector< RPCArg > | OutputsDoc () |
static RPCHelpMan | bumpfee_helper (std::string method_name) |
RPCHelpMan | bumpfee () |
RPCHelpMan | psbtbumpfee () |
RPCHelpMan | send () |
RPCHelpMan | sendall () |
RPCHelpMan | walletprocesspsbt () |
RPCHelpMan | walletcreatefundedpsbt () |
static void | WalletTxToJSON (const CWallet &wallet, const CWalletTx &wtx, UniValue &entry) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
static UniValue | ListReceived (const CWallet &wallet, const UniValue ¶ms, 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) |
template<class Vec > | |
static void | ListTransactions (const CWallet &wallet, const CWalletTx &wtx, int nMinDepth, bool fLong, Vec &ret, const isminefilter &filter_ismine, const std::optional< std::string > &filter_label, bool include_change=false) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
List transactions based on the given criteria. More... | |
static std::vector< RPCResult > | TransactionDescriptionString () |
RPCHelpMan | listtransactions () |
RPCHelpMan | listsinceblock () |
RPCHelpMan | gettransaction () |
RPCHelpMan | abandontransaction () |
RPCHelpMan | rescanblockchain () |
RPCHelpMan | abortrescan () |
int64_t | ParseISO8601DateTime (const std::string &str) |
bool | GetAvoidReuseFlag (const CWallet &wallet, const UniValue ¶m) |
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< CWallet > | GetWalletForJSONRPCRequest (const JSONRPCRequest &request) |
Figures out what wallet, if any, to use for a JSONRPCRequest. More... | |
void | EnsureWalletIsUnlocked (const CWallet &wallet) |
WalletContext & | EnsureWalletContext (const std::any &context) |
LegacyScriptPubKeyMan & | EnsureLegacyScriptPubKeyMan (CWallet &wallet, bool also_create) |
const LegacyScriptPubKeyMan & | EnsureConstLegacyScriptPubKeyMan (const CWallet &wallet) |
std::string | LabelFromValue (const UniValue &value) |
void | PushParentDescriptors (const CWallet &wallet, const CScript &script_pubkey, UniValue &entry) |
Fetch parent descriptors of this scriptPubKey. More... | |
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 () |
RPCHelpMan | simulaterawtransaction () |
static RPCHelpMan | migratewallet () |
Span< const CRPCCommand > | GetWalletRPCCommands () |
static bool | KeyFilter (const std::string &type) |
bool | RecoverDatabaseFile (const ArgsManager &args, 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) |
static void | DeriveExtKey (CExtKey &key_in, unsigned int index, CExtKey &key_out) |
Try to derive an extended key, throw if it fails. More... | |
std::vector< CKeyID > | GetAffectedKeys (const CScript &spk, const SigningProvider &provider) |
int | CalculateMaximumSignedInputSize (const CTxOut &txout, const COutPoint outpoint, const SigningProvider *provider, bool can_grind_r, const CCoinControl *coin_control) |
int | CalculateMaximumSignedInputSize (const CTxOut &txout, const CWallet *pwallet, const CCoinControl *coin_control) |
Get the marginal bytes if spending the specified output from this transaction. More... | |
TxSize | CalculateMaximumSignedTxSize (const CTransaction &tx, const CWallet *wallet, const std::vector< CTxOut > &txouts, const CCoinControl *coin_control=nullptr) |
Calculate the size of the transaction using CoinControl to determine whether to expect signature grinding when calculating the size of the input spend. More... | |
TxSize | CalculateMaximumSignedTxSize (const CTransaction &tx, const CWallet *wallet, const CCoinControl *coin_control) |
static OutputType | GetOutputType (TxoutType type, bool is_from_p2sh) |
util::Result< PreSelectedInputs > | FetchSelectedInputs (const CWallet &wallet, const CCoinControl &coin_control, const CoinSelectionParams &coin_selection_params) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
Fetch and validate coin control selected inputs. More... | |
CoinsResult | AvailableCoins (const CWallet &wallet, const CCoinControl *coinControl=nullptr, std::optional< CFeeRate > feerate=std::nullopt, const CoinFilterParams ¶ms={}) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
Populate the CoinsResult struct with vectors of available COutputs, organized by OutputType. More... | |
CoinsResult | AvailableCoinsListUnspent (const CWallet &wallet, const CCoinControl *coinControl=nullptr, CoinFilterParams params={}) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
Wrapper function for AvailableCoins which skips the feerate and CoinFilterParams::only_spendable parameters. More... | |
CAmount | GetAvailableBalance (const CWallet &wallet, const CCoinControl *coinControl) |
const CTxOut & | FindNonChangeParentOutput (const CWallet &wallet, const COutPoint &outpoint) 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... | |
FilteredOutputGroups | GroupOutputs (const CWallet &wallet, const CoinsResult &coins, const CoinSelectionParams &coin_sel_params, const std::vector< SelectionFilter > &filters, std::vector< OutputGroup > &ret_discarded_groups) |
FilteredOutputGroups | GroupOutputs (const CWallet &wallet, const CoinsResult &coins, const CoinSelectionParams &coin_sel_params, const std::vector< SelectionFilter > &filters) |
Group coins by the provided filters. More... | |
static bool | HasErrorMsg (const util::Result< SelectionResult > &res) |
util::Result< SelectionResult > | AttemptSelection (const CAmount &nTargetValue, OutputGroupTypeMap &groups, const CoinSelectionParams &coin_selection_params, bool allow_mixed_output_types) |
Attempt to find a valid input set that preserves privacy by not mixing OutputTypes. More... | |
util::Result< SelectionResult > | ChooseSelectionResult (const CAmount &nTargetValue, Groups &groups, const CoinSelectionParams &coin_selection_params) |
Attempt to find a valid input set that meets the provided eligibility filter and target. More... | |
util::Result< SelectionResult > | SelectCoins (const CWallet &wallet, CoinsResult &available_coins, const PreSelectedInputs &pre_set_inputs, const CAmount &nTargetValue, const CCoinControl &coin_control, const CoinSelectionParams &coin_selection_params) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
Select all coins from coin_control, and if coin_control 'm_allow_other_inputs=true', call 'AutomaticCoinSelection' to select a set of coins such that nTargetValue - pre_set_inputs.total_amount is met. More... | |
util::Result< SelectionResult > | AutomaticCoinSelection (const CWallet &wallet, CoinsResult &available_coins, const CAmount &nTargetValue, const CoinSelectionParams &coin_selection_params) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
Select a set of coins such that nTargetValue is met; 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] available_coins The struct of coins, organized by OutputType, available for selection prior to filtering 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 void | DiscourageFeeSniping (CMutableTransaction &tx, FastRandomContext &rng_fast, interfaces::Chain &chain, const uint256 &block_hash, int block_height) |
Set 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 util::Result< CreatedTransactionResult > | CreateTransactionInternal (CWallet &wallet, const std::vector< CRecipient > &vecSend, int change_pos, const CCoinControl &coin_control, bool sign) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
util::Result< CreatedTransactionResult > | CreateTransaction (CWallet &wallet, const std::vector< CRecipient > &vecSend, int change_pos, const CCoinControl &coin_control, 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 void | ErrorLogCallback (void *arg, int code, const char *msg) |
static bool | BindBlobToStatement (sqlite3_stmt *stmt, int index, Span< const std::byte > blob, const std::string &description) |
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< SQLiteDatabase > | MakeSQLiteDatabase (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< COutput > &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 (CoinsResult &available_coins, CWallet &wallet, const CAmount &nValue, CFeeRate feerate=CFeeRate(0), 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< COutput > &utxo_pool) |
std::vector< OutputGroup > & | GroupCoins (const std::vector< COutput > &available_coins) |
std::vector< OutputGroup > & | KnapsackGroupOutputs (const CoinsResult &available_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) | |
BOOST_AUTO_TEST_CASE (effective_value_test) | |
static util::Result< SelectionResult > | select_coins (const CAmount &target, const CoinSelectionParams &cs_params, const CCoinControl &cc, std::function< CoinsResult(CWallet &)> coin_setup, interfaces::Chain *chain) |
static bool | has_coin (const CoinSet &set, CAmount amount) |
BOOST_AUTO_TEST_CASE (check_max_weight) | |
BOOST_AUTO_TEST_CASE (SelectCoins_effective_value_test) | |
BOOST_FIXTURE_TEST_CASE (wallet_coinsresult_test, BasicTestingSetup) | |
static std::shared_ptr< BerkeleyEnvironment > | GetWalletEnv (const fs::path &path, fs::path &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) | |
static void | AddCoin (const CAmount &value, int n_input, int n_input_bytes, int locktime, std::vector< COutput > &coins, CFeeRate fee_rate) |
static void | GroupCoins (FuzzedDataProvider &fuzzed_data_provider, const std::vector< COutput > &coins, const CoinSelectionParams &coin_params, bool positive_only, std::vector< OutputGroup > &output_groups) |
FUZZ_TARGET (coinselection) | |
static std::shared_ptr< CWallet > | NewWallet (const node::NodeContext &m_node) |
static void | addCoin (CoinsResult &coins, CWallet &wallet, const CTxDestination &dest, const CAmount &nValue, bool is_from_me, CFeeRate fee_rate=CFeeRate(0), int depth=6) |
CoinSelectionParams | makeSelectionParams (FastRandomContext &rand, bool avoid_partial_spends) |
BOOST_AUTO_TEST_CASE (outputs_grouping_tests) | |
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) | |
wallet::ScriptPubKeyMan * | CreateDescriptor (CWallet &keystore, const std::string &desc_str, const bool success) |
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 (util_ParseISO8601DateTime) | |
BOOST_AUTO_TEST_CASE (CanProvide) | |
BOOST_FIXTURE_TEST_CASE (SubtractFee, TestChain100Setup) | |
static void | TestFillInputToWeight (int64_t additional_weight, std::vector< int64_t > expected_stack_sizes) |
BOOST_FIXTURE_TEST_CASE (FillInputToWeightTest, BasicTestingSetup) | |
BOOST_FIXTURE_TEST_CASE (wallet_duplicated_preset_inputs_test, TestChain100Setup) | |
std::unique_ptr< CWallet > | CreateSyncedWallet (interfaces::Chain &chain, CChain &cchain, const CKey &key) |
std::unique_ptr< WalletDatabase > | DuplicateMockDatabase (WalletDatabase &database, DatabaseOptions &options) |
std::string | getnewaddress (CWallet &w) |
Returns a new encoded destination from the wallet (hardcoded to BECH32) More... | |
CTxDestination | getNewDestination (CWallet &w, OutputType output_type) |
Returns a new destination, of an specific type, from the wallet. More... | |
BOOST_AUTO_TEST_CASE (passphrase) | |
BOOST_AUTO_TEST_CASE (encrypt) | |
BOOST_AUTO_TEST_CASE (decrypt) | |
static std::shared_ptr< CWallet > | TestLoadWallet (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) | |
void | TestCoinsResult (ListCoinsTest &context, OutputType out_type, CAmount amount, std::map< OutputType, size_t > &expected_coins_sizes) |
BOOST_FIXTURE_TEST_CASE (BasicOutputTypesTest, ListCoinsTest) | |
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_FIXTURE_TEST_CASE (wallet_sync_tx_invalid_state_test, TestingSetup) | |
Checks a wallet invalid state where the inputs (prev-txs) of a new arriving transaction are not marked dirty, while the transaction that spends them exist inside the in-memory wallet tx map (not stored on db due a db write failure). More... | |
BOOST_AUTO_TEST_CASE (roundtrip) | |
BOOST_AUTO_TEST_CASE (walletdb_readkeyvalue) | |
BOOST_FIXTURE_TEST_CASE (wallet_load_unknown_descriptor, TestingSetup) | |
bool | HasAnyRecordOfType (WalletDatabase &db, const std::string &key) |
BOOST_FIXTURE_TEST_CASE (wallet_load_verif_crypted_key_checksum, TestingSetup) | |
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< CWallet > | GetDefaultWallet (WalletContext &context, size_t &count) |
std::shared_ptr< CWallet > | GetWallet (WalletContext &context, const std::string &name) |
std::unique_ptr< interfaces::Handler > | HandleLoadWallet (WalletContext &context, LoadWalletFn load_wallet) |
void | NotifyWalletLoaded (WalletContext &context, const std::shared_ptr< CWallet > &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< 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::shared_ptr< CWallet > | 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) |
bool | DummySignInput (const SigningProvider &provider, CTxIn &tx_in, const CTxOut &txout, bool can_grind_r, const CCoinControl *coin_control) |
bool | FillInputToWeight (CTxIn &txin, int64_t target_weight) |
void | MaybeResendWalletTxs (WalletContext &context) |
Called periodically by the schedule thread. More... | |
std::unique_ptr< WalletDatabase > | MakeWalletDatabase (const std::string &name, const DatabaseOptions &options, DatabaseStatus &status, bilingual_str &error_string) |
bool | DoMigration (CWallet &wallet, WalletContext &context, bilingual_str &error, MigrationResult &res) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
util::Result< MigrationResult > | MigrateLegacyToDescriptor (const std::string &wallet_name, const SecureString &passphrase, WalletContext &context) |
Do all steps to migrate a legacy wallet to a descriptor wallet. More... | |
static bool | ReadKeyValue (CWallet *pwallet, DataStream &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, DataStream &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< WalletDatabase > | CreateDummyWalletDatabase () |
Return object for accessing dummy database with no read/write capabilities. More... | |
std::unique_ptr< WalletDatabase > | CreateMockWalletDatabase (DatabaseOptions &options) |
Return object for accessing temporary in-memory database. More... | |
std::unique_ptr< WalletDatabase > | CreateMockWalletDatabase () |
fs::path | GetWalletDir () |
Get the path of the wallet directory. More... | |
bool | IsFeatureSupported (int wallet_version, int feature_version) |
WalletFeature | GetClosestWalletFeature (int version) |
Variables | |
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 | CHANGE_LOWER {50000} |
lower bound for randomly-chosen target change amount More... | |
static constexpr CAmount | CHANGE_UPPER {1000000} |
upper bound for randomly-chosen target change amount 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< OutputType > | LEGACY_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 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 |
static int | nextLockTime = 0 |
const std::map< uint64_t, std::string > | WALLET_FLAG_CAVEATS |
static GlobalMutex | g_loading_wallet_mutex |
static GlobalMutex | 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 replacement txs More... | |
static const bool | DEFAULT_SPEND_ZEROCONF_CHANGE = true |
Default for -spendzeroconfchange. More... | |
static const bool | DEFAULT_WALLET_REJECT_LONG_CHAINS {true} |
Default for -walletrejectlongchains. More... | |
static const unsigned int | DEFAULT_TX_CONFIRM_TARGET = 6 |
-txconfirmtarget default More... | |
static const bool | DEFAULT_WALLET_RBF = true |
-walletrbf default More... | |
static const bool | DEFAULT_WALLETBROADCAST = true |
static const bool | DEFAULT_DISABLE_WALLET = false |
static const bool | DEFAULT_WALLETCROSSCHAIN = 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 |
static const bool | DEFAULT_FLUSHWALLET = true |
Overview of wallet database classes: More... | |
typedef std::vector<unsigned char, secure_allocator<unsigned char> > wallet::CKeyingMaterial |
typedef std::set<std::shared_ptr<COutput> > wallet::CoinSet |
Definition at line 32 of file coinselector_tests.cpp.
typedef std::map<CoinEligibilityFilter, OutputGroupTypeMap> wallet::FilteredOutputGroups |
Definition at line 275 of file coinselection.h.
typedef std::underlying_type< isminetype >::type wallet::isminefilter |
using wallet::KeyFilterFn = typedef std::function<bool(const std::string&)> |
Callback for filtering key types to deserialize in ReadKeyValue.
Definition at line 303 of file walletdb.h.
typedef std::pair<std::vector<unsigned char>, std::vector<unsigned char> > wallet::KeyValPair |
Definition at line 19 of file salvage.cpp.
using wallet::LoadWalletFn = typedef std::function<void(std::unique_ptr<interfaces::Wallet> wallet)> |
typedef std::map<std::string, std::string> wallet::mapValue_t |
Definition at line 111 of file transaction.h.
using wallet::SyncTxState = typedef std::variant<TxStateConfirmed, TxStateInMempool, TxStateInactive> |
Subset of states transaction sync logic is implemented to handle.
Definition at line 69 of file transaction.h.
using wallet::TxState = typedef std::variant<TxStateConfirmed, TxStateInMempool, TxStateConflicted, TxStateInactive, TxStateUnrecognized> |
All possible CWalletTx states.
Definition at line 66 of file transaction.h.
typedef std::vector<unsigned char> wallet::valtype |
Definition at line 45 of file scriptpubkeyman.cpp.
|
strong |
|
strong |
|
strong |
Error statuses for the wallet database.
Enumerator | |
---|---|
LOAD_OK | |
CORRUPT | |
NONCRITICAL_ERROR | |
TOO_NEW | |
EXTERNAL_SIGNER_SUPPORT_REQUIRED | |
LOAD_FAIL | |
NEED_REWRITE | |
NEED_RESCAN | |
UNKNOWN_DESCRIPTOR | |
UNEXPECTED_LEGACY_ENTRY |
Definition at line 45 of file walletdb.h.
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 |
|
strong |
Enumerator | |
---|---|
TOP | Top-level scriptPubKey. |
P2SH | P2SH redeemScript. |
WITNESS_V0 | P2WSH witnessScript. |
Definition at line 845 of file backup.cpp.
|
strong |
Enumerator | |
---|---|
BNB | |
KNAPSACK | |
SRD | |
MANUAL |
Definition at line 313 of file coinselection.h.
(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.
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.
RPCHelpMan wallet::abandontransaction | ( | ) |
Definition at line 801 of file transactions.cpp.
RPCHelpMan wallet::abortrescan | ( | ) |
Definition at line 932 of file transactions.cpp.
|
static |
|
static |
|
static |
Definition at line 39 of file coinselector_tests.cpp.
|
static |
Definition at line 28 of file group_outputs_tests.cpp.
|
static |
Definition at line 17 of file coinselection.cpp.
Definition at line 80 of file wallet_tests.cpp.
RPCHelpMan wallet::addmultisigaddress | ( | ) |
Definition at line 214 of file addresses.cpp.
|
static |
Definition at line 379 of file wallet_tests.cpp.
bool wallet::AddWallet | ( | WalletContext & | context, |
const std::shared_ptr< CWallet > & | wallet | ||
) |
Definition at line 112 of file wallet.cpp.
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 62 of file wallet.cpp.
bool wallet::AllInputsMine | ( | const CWallet & | wallet, |
const CTransaction & | tx, | ||
const isminefilter & | filter | ||
) |
Returns whether all of the inputs match the filter.
Definition at line 22 of file receive.cpp.
|
static |
Find a subset of the OutputGroups that is at least as large as, but as close as possible to, the target amount; solve subset sum.
param@[in] groups OutputGroups to choose from, sorted by value in descending order. param@[in] nTotalLower Total (effective) value of the UTXOs in groups. param@[in] nTargetValue Subset sum target, not including change. param@[out] vfBest Boolean vector representing the subset chosen that is closest to nTargetValue, with indices corresponding to groups. If the ith entry is true, that means the ith group in groups was selected. param@[out] nBest Total amount of subset chosen that is closest to nTargetValue. param@[in] iterations Maximum number of tries.
Definition at line 207 of file coinselection.cpp.
util::Result< SelectionResult > wallet::AttemptSelection | ( | const CAmount & | nTargetValue, |
OutputGroupTypeMap & | groups, | ||
const CoinSelectionParams & | coin_selection_params, | ||
bool | allow_mixed_output_types | ||
) |
Attempt to find a valid input set that preserves privacy by not mixing OutputTypes.
ChooseSelectionResult()
will be called on each OutputType individually and the best the solution (according to the waste metric) will be chosen. If a valid input cannot be found from any single OutputType, fallback to running ChooseSelectionResult()
over all available coins.
param@[in] nTargetValue The target value param@[in] groups The grouped outputs mapped by coin eligibility filters param@[in] coin_selection_params Parameters for the coin selection param@[in] allow_mixed_output_types Relax restriction that SelectionResults must be of the same OutputType returns If successful, a SelectionResult containing the input set If failed, returns (1) an empty error message if the target was not reached (general "Insufficient funds") or (2) an specific error message if there was something particularly wrong (e.g. a selection result that surpassed the tx max weight size).
Definition at line 537 of file spend.cpp.
util::Result< SelectionResult > wallet::AutomaticCoinSelection | ( | const CWallet & | wallet, |
CoinsResult & | available_coins, | ||
const CAmount & | nTargetValue, | ||
const CoinSelectionParams & | coin_selection_params | ||
) |
Select a set of coins such that nTargetValue is met; 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] available_coins The struct of coins, organized by OutputType, available for selection prior to filtering 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, returns (1) an empty error message if the target was not reached (general "Insufficient funds") or (2) an specific error message if there was something particularly wrong (e.g. a selection result that surpassed the tx max weight size).
Definition at line 651 of file spend.cpp.
CoinsResult wallet::AvailableCoins | ( | const CWallet & | wallet, |
const CCoinControl * | coinControl, | ||
std::optional< CFeeRate > | feerate, | ||
const CoinFilterParams & | params | ||
) |
Populate the CoinsResult struct with vectors of available COutputs, organized by OutputType.
Definition at line 204 of file spend.cpp.
CoinsResult wallet::AvailableCoinsListUnspent | ( | const CWallet & | wallet, |
const CCoinControl * | coinControl = nullptr , |
||
CoinFilterParams | params = {} |
||
) |
Wrapper function for AvailableCoins which skips the feerate
and CoinFilterParams::only_spendable
parameters.
Use this function to list all available coins (e.g. listunspent RPC) while not intending to fund a transaction.
Definition at line 353 of file spend.cpp.
RPCHelpMan wallet::backupwallet | ( | ) |
Definition at line 1856 of file backup.cpp.
bool wallet::BerkeleyDatabaseSanityCheck | ( | ) |
std::string wallet::BerkeleyDatabaseVersion | ( | ) |
|
static |
Definition at line 37 of file sqlite.cpp.
wallet::BOOST_AUTO_TEST_CASE | ( | ApproximateBestSubset | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | bnb_search_test | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | CanProvide | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | check_max_weight | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | ComputeTimeSmart | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | decrypt | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | effective_value_test | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | encrypt | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | getwalletenv_directory | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | getwalletenv_file | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | getwalletenv_g_dbenvs_free_instance | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | getwalletenv_g_dbenvs_multiple | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | ismine_standard | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | knapsack_solver_test | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | LoadReceiveRequests | ) |
Definition at line 430 of file wallet_tests.cpp.
wallet::BOOST_AUTO_TEST_CASE | ( | outputs_grouping_tests | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | parse_hd_keypath | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | passphrase | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | psbt_updater_test | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | roundtrip | ) |
Definition at line 14 of file wallet_transaction_tests.cpp.
wallet::BOOST_AUTO_TEST_CASE | ( | SelectCoins_effective_value_test | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | SelectCoins_test | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | util_ParseISO8601DateTime | ) |
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.
wallet::BOOST_AUTO_TEST_CASE | ( | walletinit_verify_walletdir_custom | ) |
Definition at line 26 of file init_tests.cpp.
wallet::BOOST_AUTO_TEST_CASE | ( | walletinit_verify_walletdir_default | ) |
Definition at line 16 of file init_tests.cpp.
wallet::BOOST_AUTO_TEST_CASE | ( | walletinit_verify_walletdir_does_not_exist | ) |
Definition at line 36 of file init_tests.cpp.
wallet::BOOST_AUTO_TEST_CASE | ( | walletinit_verify_walletdir_is_not_directory | ) |
Definition at line 46 of file init_tests.cpp.
wallet::BOOST_AUTO_TEST_CASE | ( | walletinit_verify_walletdir_is_not_relative | ) |
Definition at line 56 of file init_tests.cpp.
wallet::BOOST_AUTO_TEST_CASE | ( | walletinit_verify_walletdir_no_trailing | ) |
Definition at line 66 of file init_tests.cpp.
wallet::BOOST_AUTO_TEST_CASE | ( | walletinit_verify_walletdir_no_trailing2 | ) |
Definition at line 76 of file init_tests.cpp.
wallet::BOOST_AUTO_TEST_CASE | ( | waste_test | ) |
wallet::BOOST_AUTO_TEST_CASE | ( | WatchOnlyPubKeys | ) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | BasicOutputTypesTest | , |
ListCoinsTest | |||
) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | coin_mark_dirty_immature_credit | , |
TestChain100Setup | |||
) |
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 767 of file wallet_tests.cpp.
wallet::BOOST_FIXTURE_TEST_CASE | ( | CreateWalletWithoutChain | , |
BasicTestingSetup | |||
) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | dummy_input_size_test | , |
TestChain100Setup | |||
) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | FillInputToWeightTest | , |
BasicTestingSetup | |||
) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | importmulti_rescan | , |
TestChain100Setup | |||
) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | importwallet_rescan | , |
TestChain100Setup | |||
) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | ListCoinsTest | , |
ListCoinsTestingSetup | |||
) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | scan_for_wallet_transactions | , |
TestChain100Setup | |||
) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | SubtractFee | , |
TestChain100Setup | |||
) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | wallet_coinsresult_test | , |
BasicTestingSetup | |||
) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | wallet_descriptor_test | , |
BasicTestingSetup | |||
) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | wallet_disableprivkeys | , |
TestChain100Setup | |||
) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | wallet_duplicated_preset_inputs_test | , |
TestChain100Setup | |||
) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | wallet_load_unknown_descriptor | , |
TestingSetup | |||
) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | wallet_load_verif_crypted_key_checksum | , |
TestingSetup | |||
) |
wallet::BOOST_FIXTURE_TEST_CASE | ( | wallet_sync_tx_invalid_state_test | , |
TestingSetup | |||
) |
Checks a wallet invalid state where the inputs (prev-txs) of a new arriving transaction are not marked dirty, while the transaction that spends them exist inside the in-memory wallet tx map (not stored on db due a db write failure).
Definition at line 962 of file wallet_tests.cpp.
wallet::BOOST_FIXTURE_TEST_CASE | ( | ZapSelectTx | , |
TestChain100Setup | |||
) |
RPCHelpMan wallet::bumpfee | ( | ) |
|
static |
void wallet::CachedTxGetAmounts | ( | const CWallet & | wallet, |
const CWalletTx & | wtx, | ||
std::list< COutputEntry > & | listReceived, | ||
std::list< COutputEntry > & | listSent, | ||
CAmount & | nFee, | ||
const isminefilter & | filter, | ||
bool | include_change | ||
) |
Definition at line 194 of file receive.cpp.
CAmount wallet::CachedTxGetAvailableCredit | ( | const CWallet & | wallet, |
const CWalletTx & | wtx, | ||
const isminefilter & | filter | ||
) |
Definition at line 159 of file receive.cpp.
CAmount wallet::CachedTxGetCredit | ( | const CWallet & | wallet, |
const CWalletTx & | wtx, | ||
const isminefilter & | filter | ||
) |
Definition at line 109 of file receive.cpp.
CAmount wallet::CachedTxGetDebit | ( | const CWallet & | wallet, |
const CWalletTx & | wtx, | ||
const isminefilter & | filter | ||
) |
filter decides which addresses will count towards the debit
Definition at line 126 of file receive.cpp.
CAmount wallet::CachedTxGetImmatureCredit | ( | const CWallet & | wallet, |
const CWalletTx & | wtx, | ||
const isminefilter & | filter | ||
) |
Definition at line 148 of file receive.cpp.
bool wallet::CachedTxIsFromMe | ( | const CWallet & | wallet, |
const CWalletTx & | wtx, | ||
const isminefilter & | filter | ||
) |
Definition at line 251 of file receive.cpp.
bool wallet::CachedTxIsTrusted | ( | const CWallet & | wallet, |
const CWalletTx & | wtx, | ||
std::set< uint256 > & | trusted_parents | ||
) |
Definition at line 256 of file receive.cpp.
int wallet::CalculateMaximumSignedInputSize | ( | const CTxOut & | txout, |
const COutPoint | outpoint, | ||
const SigningProvider * | provider, | ||
bool | can_grind_r, | ||
const CCoinControl * | coin_control | ||
) |
int wallet::CalculateMaximumSignedInputSize | ( | const CTxOut & | txout, |
const CWallet * | pwallet, | ||
const CCoinControl * | coin_control | ||
) |
Get the marginal bytes if spending the specified output from this transaction.
Use CoinControl to determine whether to expect signature grinding when calculating the size of the input spend.
Definition at line 43 of file spend.cpp.
TxSize wallet::CalculateMaximumSignedTxSize | ( | const CTransaction & | tx, |
const CWallet * | wallet, | ||
const CCoinControl * | coin_control | ||
) |
TxSize wallet::CalculateMaximumSignedTxSize | ( | const CTransaction & | tx, |
const CWallet * | wallet, | ||
const std::vector< CTxOut > & | txouts, | ||
const CCoinControl * | coin_control | ||
) |
|
static |
Definition at line 687 of file wallet_tests.cpp.
|
static |
Check if the user provided a valid feeRate.
Definition at line 66 of file feebumper.cpp.
util::Result< SelectionResult > wallet::ChooseSelectionResult | ( | const CAmount & | nTargetValue, |
Groups & | groups, | ||
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] nTargetValue The target value param@[in] groups The struct containing the outputs grouped by script and divided by (1) positive only outputs and (2) all outputs (positive + negative). param@[in] coin_selection_params Parameters for the coin selection returns If successful, a SelectionResult containing the input set If failed, returns (1) an empty error message if the target was not reached (general "Insufficient funds") or (2) an specific error message if there was something particularly wrong (e.g. a selection result that surpassed the tx max weight size).
Definition at line 564 of file spend.cpp.
wallet::ScriptPubKeyMan* wallet::CreateDescriptor | ( | CWallet & | keystore, |
const std::string & | desc_str, | ||
const bool | success | ||
) |
Definition at line 20 of file ismine_tests.cpp.
std::unique_ptr< WalletDatabase > wallet::CreateDummyWalletDatabase | ( | ) |
Return object for accessing dummy database with no read/write capabilities.
Definition at line 1236 of file walletdb.cpp.
bool wallet::CreateFromDump | ( | const ArgsManager & | args, |
const std::string & | name, | ||
const fs::path & | wallet_path, | ||
bilingual_str & | error, | ||
std::vector< bilingual_str > & | warnings | ||
) |
std::unique_ptr< WalletDatabase > wallet::CreateMockWalletDatabase | ( | ) |
std::unique_ptr< WalletDatabase > wallet::CreateMockWalletDatabase | ( | DatabaseOptions & | options | ) |
Return object for accessing temporary in-memory database.
Definition at line 1242 of file walletdb.cpp.
std::unique_ptr< CWallet > wallet::CreateSyncedWallet | ( | interfaces::Chain & | chain, |
CChain & | cchain, | ||
const CKey & | key | ||
) |
util::Result< CreatedTransactionResult > wallet::CreateTransaction | ( | CWallet & | wallet, |
const std::vector< CRecipient > & | vecSend, | ||
int | change_pos, | ||
const CCoinControl & | coin_control, | ||
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.
Definition at line 1136 of file spend.cpp.
|
static |
|
static |
Definition at line 317 of file wallet.cpp.
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 340 of file wallet.cpp.
|
static |
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.
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.
Try to derive an extended key, throw if it fails.
Definition at line 1089 of file scriptpubkeyman.cpp.
|
static |
Definition at line 478 of file addresses.cpp.
|
static |
bool wallet::DoMigration | ( | CWallet & | wallet, |
WalletContext & | context, | ||
bilingual_str & | error, | ||
MigrationResult & | res | ||
) |
Definition at line 4090 of file wallet.cpp.
RPCHelpMan wallet::dumpprivkey | ( | ) |
Definition at line 641 of file backup.cpp.
RPCHelpMan wallet::dumpwallet | ( | ) |
Definition at line 687 of file backup.cpp.
bool wallet::DumpWallet | ( | const ArgsManager & | args, |
CWallet & | wallet, | ||
bilingual_str & | error | ||
) |
std::unique_ptr< WalletDatabase > wallet::DuplicateMockDatabase | ( | WalletDatabase & | database, |
DatabaseOptions & | options | ||
) |
|
static |
Definition at line 37 of file backup.cpp.
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.
RPCHelpMan wallet::encryptwallet | ( | ) |
Definition at line 216 of file encrypt.cpp.
|
static |
Definition at line 97 of file backup.cpp.
const LegacyScriptPubKeyMan & wallet::EnsureConstLegacyScriptPubKeyMan | ( | const CWallet & | wallet | ) |
LegacyScriptPubKeyMan & wallet::EnsureLegacyScriptPubKeyMan | ( | CWallet & | wallet, |
bool | also_create | ||
) |
WalletContext & wallet::EnsureWalletContext | ( | const std::any & | context | ) |
void wallet::EnsureWalletIsUnlocked | ( | const CWallet & | wallet | ) |
|
static |
Check if this selection is equal to another one.
Equal means same inputs (i.e same value and prevout)
Definition at line 110 of file coinselector_tests.cpp.
|
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 92 of file coinselector_tests.cpp.
|
static |
Definition at line 26 of file sqlite.cpp.
|
static |
Definition at line 117 of file feebumper.cpp.
Definition at line 869 of file scriptpubkeyman.cpp.
util::Result< PreSelectedInputs > wallet::FetchSelectedInputs | ( | const CWallet & | wallet, |
const CCoinControl & | coin_control, | ||
const CoinSelectionParams & | coin_selection_params | ||
) |
|
static |
void wallet::FlushWallets | ( | WalletContext & | context | ) |
RPCHelpMan wallet::fundrawtransaction | ( | ) |
void wallet::FundTransaction | ( | CWallet & | wallet, |
CMutableTransaction & | tx, | ||
CAmount & | fee_out, | ||
int & | change_position, | ||
const UniValue & | options, | ||
CCoinControl & | coinControl, | ||
bool | override_min_fee | ||
) |
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 1184 of file spend.cpp.
|
static |
wallet::FUZZ_TARGET | ( | coinselection | ) |
CAmount wallet::GenerateChangeTarget | ( | const CAmount | payment_value, |
const CAmount | change_fee, | ||
FastRandomContext & | rng | ||
) |
Choose a random change target for each transaction to make it harder to fingerprint the Core wallet based on the change output values of transactions it creates.
Change target covers at least change fees and adds a random value on top of it. The random value is between 50ksat and min(2 * payment_value, 1milsat) When payment_value <= 25ksat, the value is just 50ksat.
Making change amounts similar to the payment value may help disguise which output(s) are payments are which ones are change. Using double the payment value may increase the number of inputs needed (and thus be more expensive in fees), but breaks analysis techniques which assume the coins selected are just sufficient to cover the payment amount ("unnecessary input" heuristic).
[in] | payment_value | Average payment value of the transaction output(s). |
[in] | change_fee | Fee for creating a change output. |
Definition at line 418 of file coinselection.cpp.
std::map< CTxDestination, CAmount > wallet::GetAddressBalances | ( | const CWallet & | wallet | ) |
Definition at line 322 of file receive.cpp.
RPCHelpMan wallet::getaddressesbylabel | ( | ) |
Definition at line 634 of file addresses.cpp.
std::set< std::set< CTxDestination > > wallet::GetAddressGroupings | ( | const CWallet & | wallet | ) |
Definition at line 360 of file receive.cpp.
RPCHelpMan wallet::getaddressinfo | ( | ) |
Definition at line 490 of file addresses.cpp.
std::vector< CKeyID > wallet::GetAffectedKeys | ( | const CScript & | spk, |
const SigningProvider & | provider | ||
) |
Definition at line 1504 of file scriptpubkeyman.cpp.
std::string wallet::GetAlgorithmName | ( | const SelectionAlgorithm | algo | ) |
Definition at line 521 of file coinselection.cpp.
CAmount wallet::GetAvailableBalance | ( | const CWallet & | wallet, |
const CCoinControl * | coinControl | ||
) |
RPCHelpMan wallet::getbalance | ( | ) |
Definition at line 293 of file receive.cpp.
RPCHelpMan wallet::getbalances | ( | ) |
std::shared_ptr< BerkeleyEnvironment > wallet::GetBerkeleyEnv | ( | const fs::path & | env_directory, |
bool | use_shared_memory | ||
) |
Get BerkeleyEnvironment given a directory path.
[in] | env_directory | Path to environment directory |
Definition at line 65 of file bdb.cpp.
|
static |
Definition at line 99 of file receive.cpp.
WalletFeature wallet::GetClosestWalletFeature | ( | int | version | ) |
std::shared_ptr< CWallet > wallet::GetDefaultWallet | ( | WalletContext & | context, |
size_t & | count | ||
) |
|
static |
Definition at line 1232 of file backup.cpp.
CAmount wallet::GetMinimumFee | ( | const CWallet & | wallet, |
unsigned int | nTxBytes, | ||
const CCoinControl & | coin_control, | ||
FeeCalculation * | feeCalc | ||
) |
CFeeRate wallet::GetMinimumFeeRate | ( | const CWallet & | wallet, |
const CCoinControl & | coin_control, | ||
FeeCalculation * | feeCalc | ||
) |
RPCHelpMan wallet::getnewaddress | ( | ) |
Definition at line 17 of file addresses.cpp.
std::string wallet::getnewaddress | ( | CWallet & | w | ) |
CTxDestination wallet::getNewDestination | ( | CWallet & | w, |
OutputType | output_type | ||
) |
|
static |
Definition at line 529 of file scriptpubkeyman.cpp.
|
static |
RPCHelpMan wallet::getrawchangeaddress | ( | ) |
Definition at line 69 of file addresses.cpp.
RPCHelpMan wallet::getreceivedbyaddress | ( | ) |
RPCHelpMan wallet::getreceivedbylabel | ( | ) |
CAmount wallet::GetSelectionWaste | ( | const std::set< std::shared_ptr< COutput >> & | 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.
[in] | inputs | The selected inputs |
[in] | change_cost | The 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] | target | The amount targeted by the coin selection algorithm. |
[in] | use_effective_value | Whether to use the input's effective value (when true) or the real value (when false). |
Definition at line 390 of file coinselection.cpp.
RPCHelpMan wallet::gettransaction | ( | ) |
Definition at line 687 of file transactions.cpp.
RPCHelpMan wallet::getunconfirmedbalance | ( | ) |
std::shared_ptr< CWallet > wallet::GetWallet | ( | WalletContext & | context, |
const std::string & | name | ||
) |
|
static |
Definition at line 63 of file backup.cpp.
fs::path wallet::GetWalletDir | ( | ) |
Get the path of the wallet directory.
Definition at line 11 of file walletutil.cpp.
|
static |
Definition at line 18 of file db_tests.cpp.
std::shared_ptr< CWallet > wallet::GetWalletForJSONRPCRequest | ( | const JSONRPCRequest & | request | ) |
Figures out what wallet, if any, to use for a JSONRPCRequest.
[in] | request | JSONRPCRequest that wishes to access a wallet |
Definition at line 72 of file util.cpp.
|
static |
Definition at line 31 of file wallet.cpp.
bool wallet::GetWalletNameFromJSONRPCRequest | ( | const JSONRPCRequest & | request, |
std::string & | wallet_name | ||
) |
Span< const CRPCCommand > wallet::GetWalletRPCCommands | ( | ) |
Definition at line 855 of file wallet.cpp.
std::vector< std::shared_ptr< CWallet > > wallet::GetWallets | ( | WalletContext & | context | ) |
|
inline |
|
static |
FilteredOutputGroups wallet::GroupOutputs | ( | const CWallet & | wallet, |
const CoinsResult & | coins, | ||
const CoinSelectionParams & | params, | ||
const std::vector< SelectionFilter > & | filters | ||
) |
FilteredOutputGroups wallet::GroupOutputs | ( | const CWallet & | wallet, |
const CoinsResult & | coins, | ||
const CoinSelectionParams & | coin_sel_params, | ||
const std::vector< SelectionFilter > & | filters, | ||
std::vector< OutputGroup > & | ret_discarded_groups | ||
) |
|
static |
|
static |
std::unique_ptr< interfaces::Handler > wallet::HandleLoadWallet | ( | WalletContext & | context, |
LoadWalletFn | load_wallet | ||
) |
Definition at line 172 of file wallet.cpp.
void wallet::HandleWalletError | ( | const std::shared_ptr< CWallet > | wallet, |
DatabaseStatus & | status, | ||
bilingual_str & | error | ||
) |
bool wallet::HasAnyRecordOfType | ( | WalletDatabase & | db, |
const std::string & | key | ||
) |
Definition at line 54 of file walletload_tests.cpp.
|
static |
bool wallet::HaveKey | ( | const SigningProvider & | wallet, |
const CKey & | key | ||
) |
Checks if a CKey is in the given CWallet compressed or otherwise.
Definition at line 24 of file wallet.cpp.
|
static |
Definition at line 17 of file psbt_wallet_tests.cpp.
RPCHelpMan wallet::importaddress | ( | ) |
Definition at line 215 of file backup.cpp.
RPCHelpMan wallet::importdescriptors | ( | ) |
Definition at line 1586 of file backup.cpp.
RPCHelpMan wallet::importmulti | ( | ) |
Definition at line 1246 of file backup.cpp.
RPCHelpMan wallet::importprivkey | ( | ) |
Definition at line 113 of file backup.cpp.
RPCHelpMan wallet::importprunedfunds | ( | ) |
Definition at line 317 of file backup.cpp.
RPCHelpMan wallet::importpubkey | ( | ) |
Definition at line 411 of file backup.cpp.
RPCHelpMan wallet::importwallet | ( | ) |
Definition at line 494 of file backup.cpp.
isminetype wallet::InputIsMine | ( | const CWallet & | wallet, |
const CTxIn & | txin | ||
) |
Definition at line 12 of file receive.cpp.
bool wallet::IsBDBFile | ( | const fs::path & | path | ) |
|
static |
bool wallet::IsFeatureSupported | ( | int | wallet_version, |
int | feature_version | ||
) |
bool wallet::IsSQLiteFile | ( | const fs::path & | path | ) |
|
static |
Definition at line 21 of file salvage.cpp.
RPCHelpMan wallet::keypoolrefill | ( | ) |
Definition at line 310 of file addresses.cpp.
|
inline |
Definition at line 142 of file coinselector_tests.cpp.
std::optional< SelectionResult > wallet::KnapsackSolver | ( | std::vector< OutputGroup > & | groups, |
const CAmount & | nTargetValue, | ||
CAmount | change_target, | ||
FastRandomContext & | rng | ||
) |
Definition at line 255 of file coinselection.cpp.
std::string wallet::LabelFromValue | ( | const UniValue & | value | ) |
RPCHelpMan wallet::listaddressgroupings | ( | ) |
Definition at line 154 of file addresses.cpp.
std::map< CTxDestination, std::vector< COutput > > wallet::ListCoins | ( | const CWallet & | wallet | ) |
RPCHelpMan wallet::listdescriptors | ( | ) |
Definition at line 1743 of file backup.cpp.
RPCHelpMan wallet::listlabels | ( | ) |
Definition at line 694 of file addresses.cpp.
RPCHelpMan wallet::listlockunspent | ( | ) |
|
static |
Definition at line 70 of file transactions.cpp.
RPCHelpMan wallet::listreceivedbyaddress | ( | ) |
Definition at line 201 of file transactions.cpp.
RPCHelpMan wallet::listreceivedbylabel | ( | ) |
Definition at line 254 of file transactions.cpp.
RPCHelpMan wallet::listsinceblock | ( | ) |
Definition at line 541 of file transactions.cpp.
RPCHelpMan wallet::listtransactions | ( | ) |
Definition at line 431 of file transactions.cpp.
|
static |
List transactions based on the given criteria.
wallet | The wallet. |
wtx | The wallet transaction. |
nMinDepth | The minimum confirmation depth. |
fLong | Whether to include the JSON version of the transaction. |
ret | The vector into which the result is stored. |
filter_ismine | The "is mine" filter flags. |
filter_label | Optional label string to filter incoming transactions. |
Definition at line 318 of file transactions.cpp.
RPCHelpMan wallet::listunspent | ( | ) |
|
static |
Definition at line 128 of file wallet.cpp.
|
static |
Definition at line 165 of file wallet.cpp.
|
static |
Definition at line 196 of file wallet.cpp.
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 327 of file wallet.cpp.
bool wallet::LoadWallets | ( | WalletContext & | context | ) |
RPCHelpMan wallet::lockunspent | ( | ) |
Definition at line 119 of file coinselector_tests.cpp.
std::unique_ptr< BerkeleyDatabase > wallet::MakeBerkeleyDatabase | ( | const fs::path & | path, |
const DatabaseOptions & | options, | ||
DatabaseStatus & | status, | ||
bilingual_str & | error | ||
) |
std::unique_ptr< WalletDatabase > wallet::MakeDatabase | ( | const fs::path & | path, |
const DatabaseOptions & | options, | ||
DatabaseStatus & | status, | ||
bilingual_str & | error | ||
) |
Definition at line 1156 of file walletdb.cpp.
CoinSelectionParams wallet::makeSelectionParams | ( | FastRandomContext & | rand, |
bool | avoid_partial_spends | ||
) |
std::unique_ptr< SQLiteDatabase > wallet::MakeSQLiteDatabase | ( | const fs::path & | path, |
const DatabaseOptions & | options, | ||
DatabaseStatus & | status, | ||
bilingual_str & | error | ||
) |
Definition at line 551 of file sqlite.cpp.
std::unique_ptr< WalletDatabase > wallet::MakeWalletDatabase | ( | const std::string & | name, |
const DatabaseOptions & | options, | ||
DatabaseStatus & | status, | ||
bilingual_str & | error_string | ||
) |
Definition at line 2886 of file wallet.cpp.
bool wallet::malformed_descriptor | ( | std::ios_base::failure | e | ) |
void wallet::MaybeCompactWalletDB | ( | WalletContext & | context | ) |
Compacts BDB state so that wallet.dat is self-contained (if there are changes)
Definition at line 1058 of file walletdb.cpp.
|
static |
Definition at line 299 of file transactions.cpp.
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 2101 of file wallet.cpp.
util::Result< MigrationResult > wallet::MigrateLegacyToDescriptor | ( | const std::string & | wallet_name, |
const SecureString & | passphrase, | ||
WalletContext & | context | ||
) |
Do all steps to migrate a legacy wallet to a descriptor wallet.
Definition at line 4183 of file wallet.cpp.
|
static |
Definition at line 715 of file wallet.cpp.
RPCHelpMan wallet::newkeypool | ( | ) |
Definition at line 354 of file addresses.cpp.
|
static |
Definition at line 18 of file group_outputs_tests.cpp.
void wallet::NotifyWalletLoaded | ( | WalletContext & | context, |
const std::shared_ptr< CWallet > & | wallet | ||
) |
Definition at line 179 of file wallet.cpp.
Definition at line 78 of file receive.cpp.
CAmount wallet::OutputGetCredit | ( | const CWallet & | wallet, |
const CTxOut & | txout, | ||
const isminefilter & | filter | ||
) |
Definition at line 31 of file receive.cpp.
Definition at line 73 of file receive.cpp.
|
static |
int64_t wallet::ParseISO8601DateTime | ( | const std::string & | str | ) |
|
static |
|
static |
Definition at line 481 of file wallet_tests.cpp.
|
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 23 of file feebumper.cpp.
|
static |
|
static |
Definition at line 1446 of file backup.cpp.
|
static |
Definition at line 1156 of file backup.cpp.
|
static |
Definition at line 1067 of file backup.cpp.
|
static |
Definition at line 920 of file backup.cpp.
RPCHelpMan wallet::psbtbumpfee | ( | ) |
void wallet::ReadDatabaseArgs | ( | const ArgsManager & | args, |
DatabaseOptions & | options | ||
) |
|
static |
Definition at line 324 of file walletdb.cpp.
bool wallet::ReadKeyValue | ( | CWallet * | pwallet, |
DataStream & | 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 762 of file walletdb.cpp.
|
static |
Definition at line 53 of file sqlite.cpp.
bool wallet::RecoverDatabaseFile | ( | const ArgsManager & | args, |
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.
|
static |
Definition at line 854 of file backup.cpp.
|
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 103 of file wallet.cpp.
|
static |
RPCHelpMan wallet::removeprunedfunds | ( | ) |
Definition at line 373 of file backup.cpp.
bool wallet::RemoveWallet | ( | WalletContext & | context, |
const std::shared_ptr< CWallet > & | wallet, | ||
std::optional< bool > | load_on_start | ||
) |
Definition at line 144 of file wallet.cpp.
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 124 of file wallet.cpp.
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 73 of file wallet.cpp.
RPCHelpMan wallet::rescanblockchain | ( | ) |
Definition at line 842 of file transactions.cpp.
|
static |
Definition at line 87 of file backup.cpp.
RPCHelpMan wallet::restorewallet | ( | ) |
Definition at line 1890 of file backup.cpp.
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 445 of file wallet.cpp.
Definition at line 51 of file receive.cpp.
|
static |
Definition at line 924 of file coinselector_tests.cpp.
util::Result< SelectionResult > wallet::SelectCoins | ( | const CWallet & | wallet, |
CoinsResult & | available_coins, | ||
const PreSelectedInputs & | pre_set_inputs, | ||
const CAmount & | nTargetValue, | ||
const CCoinControl & | coin_control, | ||
const CoinSelectionParams & | coin_selection_params | ||
) |
Select all coins from coin_control, and if coin_control 'm_allow_other_inputs=true', call 'AutomaticCoinSelection' to select a set of coins such that nTargetValue - pre_set_inputs.total_amount is met.
Definition at line 606 of file spend.cpp.
std::optional< SelectionResult > wallet::SelectCoinsBnB | ( | std::vector< OutputGroup > & | utxo_pool, |
const CAmount & | selection_target, | ||
const CAmount & | cost_of_change | ||
) |
Definition at line 66 of file coinselection.cpp.
std::optional< SelectionResult > wallet::SelectCoinsSRD | ( | const std::vector< OutputGroup > & | utxo_pool, |
CAmount | target_value, | ||
FastRandomContext & | rng | ||
) |
Select coins by Single Random Draw.
OutputGroups are selected randomly from the eligible outputs until the target is satisfied
[in] | utxo_pool | The positive effective value OutputGroups eligible for selection |
[in] | target_value | The target value to select for |
Definition at line 168 of file coinselection.cpp.
RPCHelpMan wallet::send | ( | ) |
RPCHelpMan wallet::sendall | ( | ) |
RPCHelpMan wallet::sendmany | ( | ) |
UniValue wallet::SendMoney | ( | CWallet & | wallet, |
const CCoinControl & | coin_control, | ||
std::vector< CRecipient > & | recipients, | ||
mapValue_t | map_value, | ||
bool | verbose | ||
) |
RPCHelpMan wallet::sendtoaddress | ( | ) |
|
static |
Update coin control with fee estimation based on the given parameters.
[in] | wallet | Wallet reference |
[in,out] | cc | Coin control to be updated |
[in] | conf_target | UniValue integer; confirmation target in blocks, values between 1 and 1008 are valid per policy/fees.h; |
[in] | estimate_mode | UniValue string; fee estimation mode, valid values are "unset", "economical" or "conservative"; |
[in] | fee_rate | UniValue real; fee rate in sat/vB; if present, both conf_target and estimate_mode must either be null, or "unset" |
[in] | override_min_fee | bool; whether to set fOverrideFeeRate to true to disable minimum fee rate checks and instead verify only that fee_rate is greater than 0 |
a | JSONRPCError if conf_target, estimate_mode, or fee_rate contain invalid values or are in conflict |
Definition at line 188 of file spend.cpp.
|
static |
Definition at line 473 of file wallet.cpp.
RPCHelpMan wallet::setlabel | ( | ) |
Definition at line 116 of file addresses.cpp.
|
static |
RPCHelpMan wallet::settxfee | ( | ) |
|
static |
RPCHelpMan wallet::signmessage | ( | ) |
Definition at line 14 of file signmessage.cpp.
RPCHelpMan wallet::signrawtransactionwithwallet | ( | ) |
RPCHelpMan wallet::simulaterawtransaction | ( | ) |
Definition at line 606 of file wallet.cpp.
void wallet::SplitWalletPath | ( | const fs::path & | wallet_path, |
fs::path & | env_directory, | ||
std::string & | database_filename | ||
) |
std::string wallet::SQLiteDatabaseVersion | ( | ) |
void wallet::StartWallets | ( | WalletContext & | context, |
CScheduler & | scheduler | ||
) |
void wallet::StopWallets | ( | WalletContext & | context | ) |
void wallet::TestCoinsResult | ( | ListCoinsTest & | context, |
OutputType | out_type, | ||
CAmount | amount, | ||
std::map< OutputType, size_t > & | expected_coins_sizes | ||
) |
Definition at line 625 of file wallet_tests.cpp.
|
static |
Definition at line 64 of file spend_tests.cpp.
|
static |
Definition at line 46 of file wallet_tests.cpp.
|
static |
Definition at line 66 of file wallet_tests.cpp.
|
static |
Definition at line 59 of file wallet_tests.cpp.
|
static |
Definition at line 449 of file wallet_tests.cpp.
|
static |
CAmount wallet::TxGetChange | ( | const CWallet & | wallet, |
const CTransaction & | tx | ||
) |
Definition at line 86 of file receive.cpp.
CAmount wallet::TxGetCredit | ( | const CWallet & | wallet, |
const CTransaction & | tx, | ||
const isminefilter & | filter | ||
) |
Definition at line 39 of file receive.cpp.
|
inlinestatic |
Try to interpret deserialized TxStateUnrecognized data as a recognized state.
Definition at line 72 of file transaction.h.
Get TxState serialized block hash. Inverse of TxStateInterpretSerialized.
Definition at line 87 of file transaction.h.
|
inlinestatic |
Get TxState serialized block index. Inverse of TxStateInterpretSerialized.
Definition at line 99 of file transaction.h.
|
static |
Definition at line 415 of file wallet.cpp.
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 211 of file wallet.cpp.
void wallet::UnloadWallets | ( | WalletContext & | context | ) |
|
static |
Definition at line 85 of file wallet.cpp.
|
static |
Definition at line 544 of file wallet.cpp.
bool wallet::VerifyWallets | ( | WalletContext & | context | ) |
RPCHelpMan wallet::walletcreatefundedpsbt | ( | ) |
RPCHelpMan wallet::walletdisplayaddress | ( | ) |
Definition at line 744 of file addresses.cpp.
RPCHelpMan wallet::walletlock | ( | ) |
Definition at line 174 of file encrypt.cpp.
RPCHelpMan wallet::walletpassphrase | ( | ) |
Definition at line 11 of file encrypt.cpp.
RPCHelpMan wallet::walletpassphrasechange | ( | ) |
Definition at line 115 of file encrypt.cpp.
RPCHelpMan wallet::walletprocesspsbt | ( | ) |
|
static |
|
static |
Definition at line 17 of file transactions.cpp.
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.
|
staticconstexpr |
lower bound for randomly-chosen target change amount
Definition at line 21 of file coinselection.h.
|
staticconstexpr |
upper bound for randomly-chosen target change amount
Definition at line 23 of file coinselection.h.
|
static |
Definition at line 18 of file salvage.cpp.
|
constexpr |
|
staticconstexpr |
Default for -avoidpartialspends.
Definition at line 26 of file coincontrol.h.
|
static |
|
static |
|
static |
|
static |
Overview of wallet database classes:
The following classes are implementation specific:
Definition at line 42 of file walletdb.h.
|
static |
Default for -keypool.
Definition at line 51 of file scriptpubkeyman.h.
|
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].
const int wallet::DEFAULT_MAX_DEPTH = 9999999 |
Definition at line 23 of file coincontrol.h.
const int wallet::DEFAULT_MIN_DEPTH = 0 |
Definition at line 22 of file coincontrol.h.
|
constexpr |
|
static |
|
static |
|
static |
|
static |
|
static |
struct { ... } wallet::descending |
|
staticconstexpr |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 187 of file wallet.cpp.
|
static |
Definition at line 189 of file wallet.cpp.
|
static |
Definition at line 188 of file wallet.cpp.
|
static |
Definition at line 16 of file salvage.cpp.
const std::string wallet::HELP_REQUIRING_PASSPHRASE {"\nRequires wallet passphrase to be set with walletpassphrase call if wallet is encrypted.\n"} |
|
constexpr |
|
staticconstexpr |
|
static |
OutputTypes supported by the LegacyScriptPubKeyMan.
Definition at line 262 of file scriptpubkeyman.h.
|
staticconstexpr |
|
static |
Definition at line 37 of file coinselector_tests.cpp.
|
static |
Definition at line 16 of file group_outputs_tests.cpp.
|
staticconstexpr |
|
static |
Definition at line 85 of file backup.cpp.
|
static |
Definition at line 64 of file coinselection.cpp.
|
static |
const std::map< uint64_t, std::string > wallet::WALLET_FLAG_CAVEATS |
Definition at line 54 of file wallet.cpp.
|
static |
|
static |
|
staticconstexpr |
Definition at line 24 of file sqlite.cpp.