mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-26 11:13:23 -03:00
Merge bitcoin/bitcoin#24365: wallet: Don't generate keys for wallets with private keys disabled during upgradewallet
c7376cc8d7
tests: Test upgrading wallet with privkeys disabled (Andrew Chow)3d985d4f43
wallet: Don't generate keys when privkeys disabled when upgrading (Andrew Chow) Pull request description: When we're upgrading a wallet, we shouldn't be trying to generate new keys for wallets where private keys are disabled. Fixes #23610 ACKs for top commit: laanwj: Code review ACKc7376cc8d7
benthecarman: tACKc7376cc8d7
this fixed the issue for me Tree-SHA512: fa07cf37df9196ff98671bb1ce5c9aa0bab46495066b4dab796d7e8e5d5c7adb414ff56adae4fd3e15658a610995bd19a9e1edb00c46144b0df635c5b343f3a6
This commit is contained in:
commit
159f89c118
2 changed files with 17 additions and 0 deletions
|
@ -469,6 +469,12 @@ bool LegacyScriptPubKeyMan::CanGetAddresses(bool internal) const
|
||||||
bool LegacyScriptPubKeyMan::Upgrade(int prev_version, int new_version, bilingual_str& error)
|
bool LegacyScriptPubKeyMan::Upgrade(int prev_version, int new_version, bilingual_str& error)
|
||||||
{
|
{
|
||||||
LOCK(cs_KeyStore);
|
LOCK(cs_KeyStore);
|
||||||
|
|
||||||
|
if (m_storage.IsWalletFlagSet(WALLET_FLAG_DISABLE_PRIVATE_KEYS)) {
|
||||||
|
// Nothing to do here if private keys are not enabled
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool hd_upgrade = false;
|
bool hd_upgrade = false;
|
||||||
bool split_upgrade = false;
|
bool split_upgrade = false;
|
||||||
if (IsFeatureSupported(new_version, FEATURE_HD) && !IsHDEnabled()) {
|
if (IsFeatureSupported(new_version, FEATURE_HD) && !IsHDEnabled()) {
|
||||||
|
|
|
@ -345,5 +345,16 @@ class UpgradeWalletTest(BitcoinTestFramework):
|
||||||
desc_wallet = self.nodes[0].get_wallet_rpc("desc_upgrade")
|
desc_wallet = self.nodes[0].get_wallet_rpc("desc_upgrade")
|
||||||
self.test_upgradewallet(desc_wallet, previous_version=169900, expected_version=169900)
|
self.test_upgradewallet(desc_wallet, previous_version=169900, expected_version=169900)
|
||||||
|
|
||||||
|
self.log.info("Checking that descriptor wallets without privkeys do nothing, successfully")
|
||||||
|
self.nodes[0].createwallet(wallet_name="desc_upgrade_nopriv", descriptors=True, disable_private_keys=True)
|
||||||
|
desc_wallet = self.nodes[0].get_wallet_rpc("desc_upgrade_nopriv")
|
||||||
|
self.test_upgradewallet(desc_wallet, previous_version=169900, expected_version=169900)
|
||||||
|
|
||||||
|
if self.is_bdb_compiled():
|
||||||
|
self.log.info("Upgrading a wallet with private keys disabled")
|
||||||
|
self.nodes[0].createwallet(wallet_name="privkeys_disabled_upgrade", disable_private_keys=True, descriptors=False)
|
||||||
|
disabled_wallet = self.nodes[0].get_wallet_rpc("privkeys_disabled_upgrade")
|
||||||
|
self.test_upgradewallet(disabled_wallet, previous_version=169900, expected_version=169900)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
UpgradeWalletTest().main()
|
UpgradeWalletTest().main()
|
||||||
|
|
Loading…
Add table
Reference in a new issue