mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-02 09:46:52 -05:00
walletdb: Refactor minversion loading
Move minversion loading to its own function in WalletBatch
This commit is contained in:
parent
a36134fcc7
commit
01b35b55a1
1 changed files with 13 additions and 6 deletions
|
@ -791,6 +791,18 @@ bool WalletBatch::IsKeyType(const std::string& strType)
|
|||
strType == DBKeys::MASTER_KEY || strType == DBKeys::CRYPTED_KEY);
|
||||
}
|
||||
|
||||
static DBErrors LoadMinVersion(CWallet* pwallet, DatabaseBatch& batch) EXCLUSIVE_LOCKS_REQUIRED(pwallet->cs_wallet)
|
||||
{
|
||||
AssertLockHeld(pwallet->cs_wallet);
|
||||
int nMinVersion = 0;
|
||||
if (batch.Read(DBKeys::MINVERSION, nMinVersion)) {
|
||||
if (nMinVersion > FEATURE_LATEST)
|
||||
return DBErrors::TOO_NEW;
|
||||
pwallet->LoadMinVersion(nMinVersion);
|
||||
}
|
||||
return DBErrors::LOAD_OK;
|
||||
}
|
||||
|
||||
DBErrors WalletBatch::LoadWallet(CWallet* pwallet)
|
||||
{
|
||||
CWalletScanState wss;
|
||||
|
@ -806,12 +818,7 @@ DBErrors WalletBatch::LoadWallet(CWallet* pwallet)
|
|||
pwallet->WalletLogPrintf("Wallet file version = %d, last client version = %d\n", pwallet->GetVersion(), last_client);
|
||||
|
||||
try {
|
||||
int nMinVersion = 0;
|
||||
if (m_batch->Read(DBKeys::MINVERSION, nMinVersion)) {
|
||||
if (nMinVersion > FEATURE_LATEST)
|
||||
return DBErrors::TOO_NEW;
|
||||
pwallet->LoadMinVersion(nMinVersion);
|
||||
}
|
||||
if ((result = LoadMinVersion(pwallet, *m_batch)) != DBErrors::LOAD_OK) return result;
|
||||
|
||||
// Load wallet flags, so they are known when processing other records.
|
||||
// The FLAGS key is absent during wallet creation.
|
||||
|
|
Loading…
Add table
Reference in a new issue