From f35acc893fb3378b2ad39608fe254d33af6cce9f Mon Sep 17 00:00:00 2001 From: David Gumberg Date: Fri, 22 Aug 2025 21:34:46 -0700 Subject: [PATCH] refactor: wallet: Factor out `WriteVersion()` from `PopulateWalletFromDB()` Writing the wallet's `CLIENT_VERSION` (which indicates the last version to have touched a wallet) needs to be done on both wallet creation and wallet loading. The next commit removes the `PopulateWalletFromDatabase()` call from wallet creation, but this behavior needs to be preserved, so this commit factors setting `CLIENT_VERSION` out of `PopulateWalletFromDatabase()` so that wallet creation can use it in the next commit. --- src/wallet/walletdb.cpp | 2 +- src/wallet/walletdb.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/wallet/walletdb.cpp b/src/wallet/walletdb.cpp index 9ca4d2da8bb..387568282da 100644 --- a/src/wallet/walletdb.cpp +++ b/src/wallet/walletdb.cpp @@ -1175,7 +1175,7 @@ DBErrors WalletBatch::LoadWallet(CWallet* pwallet) return result; if (!has_last_client || last_client != CLIENT_VERSION) // Update - m_batch->Write(DBKeys::VERSION, CLIENT_VERSION); + this->WriteVersion(CLIENT_VERSION); if (any_unordered) result = pwallet->ReorderTransactions(); diff --git a/src/wallet/walletdb.h b/src/wallet/walletdb.h index a867a28b970..788d44866a5 100644 --- a/src/wallet/walletdb.h +++ b/src/wallet/walletdb.h @@ -265,6 +265,9 @@ public: DBErrors LoadWallet(CWallet* pwallet); + //! Write the given client_version. + bool WriteVersion(int client_version) { return m_batch->Write(DBKeys::VERSION, CLIENT_VERSION); } + //! Delete records of the given types bool EraseRecords(const std::unordered_set& types);