mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-03 09:56:38 -05:00
Don't upgrade to HD split if it is already supported
It is unnecessary to upgrade to FEATURE_HD_SPLIT if this feature is already supported by the wallet. Because upgrading to FEATURE_HD_SPLIT actually requires upgrading to FEATURE_PRE_SPLIT_KEYPOOL, users would accidentally be upgraded to FEATURE_PRE_SPLIT_KEYPOOL instead of nothing being done. Fixes the issue described at https://github.com/bitcoin/bitcoin/pull/20403#discussion_r526063920
This commit is contained in:
parent
c46c18b788
commit
2498b04ce8
2 changed files with 2 additions and 1 deletions
|
@ -453,7 +453,7 @@ bool LegacyScriptPubKeyMan::Upgrade(int prev_version, int new_version, bilingual
|
||||||
hd_upgrade = true;
|
hd_upgrade = true;
|
||||||
}
|
}
|
||||||
// Upgrade to HD chain split if necessary
|
// Upgrade to HD chain split if necessary
|
||||||
if (IsFeatureSupported(new_version, FEATURE_HD_SPLIT)) {
|
if (!IsFeatureSupported(prev_version, FEATURE_HD_SPLIT) && IsFeatureSupported(new_version, FEATURE_HD_SPLIT)) {
|
||||||
WalletLogPrintf("Upgrading wallet to use HD chain split\n");
|
WalletLogPrintf("Upgrading wallet to use HD chain split\n");
|
||||||
m_storage.SetMinVersion(FEATURE_PRE_SPLIT_KEYPOOL);
|
m_storage.SetMinVersion(FEATURE_PRE_SPLIT_KEYPOOL);
|
||||||
split_upgrade = FEATURE_HD_SPLIT > prev_version;
|
split_upgrade = FEATURE_HD_SPLIT > prev_version;
|
||||||
|
|
|
@ -338,6 +338,7 @@ class UpgradeWalletTest(BitcoinTestFramework):
|
||||||
new_kvs = dump_bdb_kv(node_master_wallet)
|
new_kvs = dump_bdb_kv(node_master_wallet)
|
||||||
up_defaultkey = new_kvs[b'\x0adefaultkey']
|
up_defaultkey = new_kvs[b'\x0adefaultkey']
|
||||||
assert_equal(defaultkey, up_defaultkey)
|
assert_equal(defaultkey, up_defaultkey)
|
||||||
|
assert_equal(wallet.getwalletinfo()["walletversion"], 159900)
|
||||||
# 0.16.3 doesn't have a default key
|
# 0.16.3 doesn't have a default key
|
||||||
v16_3_kvs = dump_bdb_kv(v16_3_wallet)
|
v16_3_kvs = dump_bdb_kv(v16_3_wallet)
|
||||||
assert b'\x0adefaultkey' not in v16_3_kvs
|
assert b'\x0adefaultkey' not in v16_3_kvs
|
||||||
|
|
Loading…
Add table
Reference in a new issue