mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-03 01:33:20 +02:00
Merge #19457: wallet: Cleanup wallettool salvage and walletdb extraneous declarations
0e279fe489walletdb: Remove unused static functions from walletdb.h (Andrew Chow)9f536d4fe9wallettool: Have RecoverDatabaseFile return errors and warnings (Andrew Chow)06e263a4e3Call RecoverDatabaseFile directly from wallettool (Andrew Chow) Pull request description: Followup to #19324 addressing some comments. Removes the `SalvageWallet` function in wallettool and instead directly calls `RecoverDatabaseFile` as suggested in https://github.com/bitcoin/bitcoin/pull/19324#discussion_r450379596 Removes the `LogPrintf`s and `tfm::format`s in `RecoverDatabaseFile` as noted in https://github.com/bitcoin/bitcoin/pull/19324#discussion_r448027237 Removes the declarations of `VerifyEnvironment` and `VerifyDatabaseFile` that were forgotten in `walletdb.h` as noted in https://github.com/bitcoin/bitcoin/pull/19324#issuecomment-654389079 ACKs for top commit: meshcollider: Code review ACK0e279fe489ryanofsky: Code review ACK0e279fe489, just dropped last commit Tree-SHA512: ffd01f30536c2eab4bf40ba363c3ea916ecef3c8f0c5262040b40498776ffb00f95240204a40e38415d6931800851d0a3fa63ee91efc1d329b60ac317da0363d
This commit is contained in:
@@ -104,27 +104,6 @@ static void WalletShowInfo(CWallet* wallet_instance)
|
||||
tfm::format(std::cout, "Address Book: %zu\n", wallet_instance->m_address_book.size());
|
||||
}
|
||||
|
||||
static bool SalvageWallet(const fs::path& path)
|
||||
{
|
||||
// Create a Database handle to allow for the db to be initialized before recovery
|
||||
std::unique_ptr<WalletDatabase> database = CreateWalletDatabase(path);
|
||||
|
||||
// Initialize the environment before recovery
|
||||
bilingual_str error_string;
|
||||
try {
|
||||
database->Verify(error_string);
|
||||
} catch (const fs::filesystem_error& e) {
|
||||
error_string = Untranslated(strprintf("Error loading wallet. %s", fsbridge::get_filesystem_error_message(e)));
|
||||
}
|
||||
if (!error_string.original.empty()) {
|
||||
tfm::format(std::cerr, "Failed to open wallet for salvage :%s\n", error_string.original);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Perform the recovery
|
||||
return RecoverDatabaseFile(path);
|
||||
}
|
||||
|
||||
bool ExecuteWalletToolFunc(const std::string& command, const std::string& name)
|
||||
{
|
||||
fs::path path = fs::absolute(name, GetWalletDir());
|
||||
@@ -147,7 +126,18 @@ bool ExecuteWalletToolFunc(const std::string& command, const std::string& name)
|
||||
WalletShowInfo(wallet_instance.get());
|
||||
wallet_instance->Close();
|
||||
} else if (command == "salvage") {
|
||||
return SalvageWallet(path);
|
||||
bilingual_str error;
|
||||
std::vector<bilingual_str> warnings;
|
||||
bool ret = RecoverDatabaseFile(path, error, warnings);
|
||||
if (!ret) {
|
||||
for (const auto warning : warnings) {
|
||||
tfm::format(std::cerr, "%s\n", warning.original);
|
||||
}
|
||||
if (!error.empty()) {
|
||||
tfm::format(std::cerr, "%s\n", error.original);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
} else {
|
||||
tfm::format(std::cerr, "Invalid command: %s\n", command);
|
||||
|
||||
Reference in New Issue
Block a user