Skip to content

Commit 3eb6f8b

Browse files
committed
wallet (not for backport): improve upgradewallet error messages
1 parent ca8cd89 commit 3eb6f8b

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

src/wallet/wallet.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4111,17 +4111,16 @@ bool CWallet::UpgradeWallet(int version, bilingual_str& error)
41114111
} else {
41124112
WalletLogPrintf("Allowing wallet upgrade up to %i\n", version);
41134113
}
4114-
if (version < prev_version)
4115-
{
4116-
error = _("Cannot downgrade wallet");
4114+
if (version < prev_version) {
4115+
error = strprintf(_("Cannot downgrade wallet from version %i to version %i. Wallet version unchanged."), prev_version, version);
41174116
return false;
41184117
}
41194118

41204119
LOCK(cs_wallet);
41214120

41224121
// Do not upgrade versions to any version between HD_SPLIT and FEATURE_PRE_SPLIT_KEYPOOL unless already supporting HD_SPLIT
41234122
if (!CanSupportFeature(FEATURE_HD_SPLIT) && version >= FEATURE_HD_SPLIT && version < FEATURE_PRE_SPLIT_KEYPOOL) {
4124-
error = _("Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use version 169900 or no version specified.");
4123+
error = strprintf(_("Cannot upgrade a non HD split wallet from version %i to version %i without upgrading to support pre-split keypool. Please use version %i or no version specified."), prev_version, version, FEATURE_PRE_SPLIT_KEYPOOL);
41254124
return false;
41264125
}
41274126

test/functional/wallet_upgradewallet.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,8 @@ def copy_split_hd():
211211

212212
self.log.info('Wallets cannot be downgraded')
213213
copy_non_hd()
214-
self.test_upgradewallet_error(wallet, previous_version=60000, requested_version=40000, msg="Cannot downgrade wallet")
214+
self.test_upgradewallet_error(wallet, previous_version=60000, requested_version=40000,
215+
msg="Cannot downgrade wallet from version 60000 to version 40000. Wallet version unchanged.")
215216
wallet.unloadwallet()
216217
assert_equal(before_checksum, sha256sum_file(node_master_wallet))
217218
node_master.loadwallet('')
@@ -250,7 +251,8 @@ def copy_split_hd():
250251
self.log.info('Cannot upgrade to HD Split, needs Pre Split Keypool')
251252
for version in [139900, 159900, 169899]:
252253
self.test_upgradewallet_error(wallet, previous_version=130000, requested_version=version,
253-
msg="Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use version 169900 or no version specified.")
254+
msg="Cannot upgrade a non HD split wallet from version {} to version {} without upgrading to "
255+
"support pre-split keypool. Please use version 169900 or no version specified.".format(130000, version))
254256

255257
self.log.info('Upgrade HD to HD chain split')
256258
self.test_upgradewallet(wallet, previous_version=130000, requested_version=169900)

0 commit comments

Comments
 (0)