diff --git a/src/wallet/scriptpubkeyman.cpp b/src/wallet/scriptpubkeyman.cpp index 62384056dc6..23e2257b1e7 100644 --- a/src/wallet/scriptpubkeyman.cpp +++ b/src/wallet/scriptpubkeyman.cpp @@ -1799,7 +1799,7 @@ std::optional LegacyDataSPKM::MigrateToDescriptor() keyid_it++; continue; } - if (m_hd_chain.seed_id == meta.hd_seed_id || m_inactive_hd_chains.count(meta.hd_seed_id) > 0) { + if (!meta.hd_seed_id.IsNull() && (m_hd_chain.seed_id == meta.hd_seed_id || m_inactive_hd_chains.count(meta.hd_seed_id) > 0)) { keyid_it = keyids.erase(keyid_it); continue; } diff --git a/test/functional/wallet_migration.py b/test/functional/wallet_migration.py index fd6ec16065f..62b4756a8ff 100755 --- a/test/functional/wallet_migration.py +++ b/test/functional/wallet_migration.py @@ -1032,15 +1032,11 @@ def test_manual_keys_import(self): # There should be descriptors containing the imported key for: pk(), pkh(), sh(wpkh()), wpkh() key_origin = hash160(pubkey)[:4].hex() pubkey_hex = pubkey.hex() - pk_desc = descsum_create(f'pk([{key_origin}]{pubkey_hex})') - pkh_desc = descsum_create(f'pkh([{key_origin}]{pubkey_hex})') - sh_wpkh_desc = descsum_create(f'sh(wpkh([{key_origin}]{pubkey_hex}))') - wpkh_desc = descsum_create(f'wpkh([{key_origin}]{pubkey_hex})') - expected_descs = [pk_desc, pkh_desc, sh_wpkh_desc, wpkh_desc] + combo_desc = descsum_create(f"combo([{key_origin}]{pubkey_hex})") # Verify all expected descriptors were migrated migrated_desc = [item['desc'] for item in wallet.listdescriptors()['descriptors'] if pubkey.hex() in item['desc']] - assert_equal(expected_descs, migrated_desc) + assert_equal([combo_desc], migrated_desc) wallet.unloadwallet() ######################################################