Bitcoin Core 31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
walletdb.cpp File Reference
#include <bitcoin-build-config.h>
#include <wallet/walletdb.h>
#include <common/system.h>
#include <key_io.h>
#include <primitives/transaction_identifier.h>
#include <protocol.h>
#include <script/script.h>
#include <serialize.h>
#include <sync.h>
#include <util/bip32.h>
#include <util/check.h>
#include <util/fs.h>
#include <util/time.h>
#include <util/translation.h>
#include <wallet/migrate.h>
#include <wallet/sqlite.h>
#include <wallet/wallet.h>
#include <atomic>
#include <optional>
#include <string>
Include dependency graph for walletdb.cpp:

Go to the source code of this file.

Classes

struct  wallet::LoadResult

Namespaces

namespace  wallet
namespace  wallet::DBKeys

Typedefs

using wallet::LoadFunc = std::function<DBErrors(CWallet* pwallet, DataStream& key, DataStream& value, std::string& err)>

Functions

void wallet::LogDBInfo ()
bool wallet::LoadKey (CWallet *pwallet, DataStream &ssKey, DataStream &ssValue, std::string &strErr)
bool wallet::LoadCryptedKey (CWallet *pwallet, DataStream &ssKey, DataStream &ssValue, std::string &strErr)
bool wallet::LoadEncryptionKey (CWallet *pwallet, DataStream &ssKey, DataStream &ssValue, std::string &strErr)
bool wallet::LoadHDChain (CWallet *pwallet, DataStream &ssValue, std::string &strErr)
static DBErrors wallet::LoadWalletFlags (CWallet *pwallet, DatabaseBatch &batch) EXCLUSIVE_LOCKS_REQUIRED(pwallet -> cs_wallet)
static LoadResult wallet::LoadRecords (CWallet *pwallet, DatabaseBatch &batch, const std::string &key, DataStream &prefix, LoadFunc load_func)
static LoadResult wallet::LoadRecords (CWallet *pwallet, DatabaseBatch &batch, const std::string &key, LoadFunc load_func)
bool wallet::HasLegacyRecords (CWallet &wallet)
 Returns true if there are any DBKeys::LEGACY_TYPES record in the wallet db.
bool wallet::HasLegacyRecords (CWallet &wallet, DatabaseBatch &batch)
static DBErrors wallet::LoadLegacyWalletRecords (CWallet *pwallet, DatabaseBatch &batch, int last_client) EXCLUSIVE_LOCKS_REQUIRED(pwallet -> cs_wallet)
template<typename... Args>
static DataStream wallet::PrefixStream (const Args &... args)
static DBErrors wallet::LoadDescriptorWalletRecords (CWallet *pwallet, DatabaseBatch &batch, int last_client) EXCLUSIVE_LOCKS_REQUIRED(pwallet -> cs_wallet)
static DBErrors wallet::LoadAddressBookRecords (CWallet *pwallet, DatabaseBatch &batch) EXCLUSIVE_LOCKS_REQUIRED(pwallet -> cs_wallet)
static DBErrors wallet::LoadTxRecords (CWallet *pwallet, DatabaseBatch &batch, bool &any_unordered) EXCLUSIVE_LOCKS_REQUIRED(pwallet -> cs_wallet)
static DBErrors wallet::LoadActiveSPKMs (CWallet *pwallet, DatabaseBatch &batch) EXCLUSIVE_LOCKS_REQUIRED(pwallet -> cs_wallet)
static DBErrors wallet::LoadDecryptionKeys (CWallet *pwallet, DatabaseBatch &batch) EXCLUSIVE_LOCKS_REQUIRED(pwallet -> cs_wallet)
static bool wallet::RunWithinTxn (WalletBatch &batch, std::string_view process_desc, const std::function< bool(WalletBatch &)> &func)
bool wallet::RunWithinTxn (WalletDatabase &database, std::string_view process_desc, const std::function< bool(WalletBatch &)> &func)
 Executes the provided function 'func' within a database transaction context.
std::unique_ptr< WalletDatabasewallet::MakeDatabase (const fs::path &path, const DatabaseOptions &options, DatabaseStatus &status, bilingual_str &error)

Variables

const std::string wallet::DBKeys::ACENTRY {"acentry"}
const std::string wallet::DBKeys::ACTIVEEXTERNALSPK {"activeexternalspk"}
const std::string wallet::DBKeys::ACTIVEINTERNALSPK {"activeinternalspk"}
const std::string wallet::DBKeys::BESTBLOCK_NOMERKLE {"bestblock_nomerkle"}
const std::string wallet::DBKeys::BESTBLOCK {"bestblock"}
const std::string wallet::DBKeys::CRYPTED_KEY {"ckey"}
const std::string wallet::DBKeys::CSCRIPT {"cscript"}
const std::string wallet::DBKeys::DEFAULTKEY {"defaultkey"}
const std::string wallet::DBKeys::DESTDATA {"destdata"}
const std::string wallet::DBKeys::FLAGS {"flags"}
const std::string wallet::DBKeys::HDCHAIN {"hdchain"}
const std::string wallet::DBKeys::KEYMETA {"keymeta"}
const std::string wallet::DBKeys::KEY {"key"}
const std::string wallet::DBKeys::LOCKED_UTXO {"lockedutxo"}
const std::string wallet::DBKeys::MASTER_KEY {"mkey"}
const std::string wallet::DBKeys::MINVERSION {"minversion"}
const std::string wallet::DBKeys::NAME {"name"}
const std::string wallet::DBKeys::OLD_KEY {"wkey"}
const std::string wallet::DBKeys::ORDERPOSNEXT {"orderposnext"}
const std::string wallet::DBKeys::POOL {"pool"}
const std::string wallet::DBKeys::PURPOSE {"purpose"}
const std::string wallet::DBKeys::SETTINGS {"settings"}
const std::string wallet::DBKeys::TX {"tx"}
const std::string wallet::DBKeys::VERSION {"version"}
const std::string wallet::DBKeys::WALLETDESCRIPTOR {"walletdescriptor"}
const std::string wallet::DBKeys::WALLETDESCRIPTORCACHE {"walletdescriptorcache"}
const std::string wallet::DBKeys::WALLETDESCRIPTORLHCACHE {"walletdescriptorlhcache"}
const std::string wallet::DBKeys::WALLETDESCRIPTORCKEY {"walletdescriptorckey"}
const std::string wallet::DBKeys::WALLETDESCRIPTORKEY {"walletdescriptorkey"}
const std::string wallet::DBKeys::WATCHMETA {"watchmeta"}
const std::string wallet::DBKeys::WATCHS {"watchs"}
const std::unordered_set< std::string > wallet::DBKeys::LEGACY_TYPES {CRYPTED_KEY, CSCRIPT, DEFAULTKEY, HDCHAIN, KEYMETA, KEY, OLD_KEY, POOL, WATCHMETA, WATCHS}