1
0

tests: wizard: add test "adding unrelated seed to xpub-only ks raises"

This commit is contained in:
SomberNight
2025-08-15 17:38:56 +00:00
parent cd63be233b
commit 5997494c46
2 changed files with 21 additions and 2 deletions

View File

@@ -4106,7 +4106,8 @@ class Standard_Wallet(Simple_Wallet, Deterministic_Wallet):
self.keystore.add_slip_19_ownership_proofs_to_tx(tx=tx, password=None)
def _update_keystore(self, keystore):
assert self.keystore.get_master_public_key() == keystore.get_master_public_key()
if self.keystore.get_master_public_key() != keystore.get_master_public_key():
raise Exception("mismatching xpubs")
self.keystore = keystore
self.save_keystore()

View File

@@ -127,7 +127,6 @@ class ServerConnectWizardTestCase(WizardTestCase):
class KeystoreWizardTestCase(WizardTestCase):
# TODO add test cases for:
# - multisig
# - mismatching xpub vs seed errors
class TKeystoreWizard(KeystoreWizard):
def is_single_password(self):
@@ -243,6 +242,25 @@ class KeystoreWizardTestCase(WizardTestCase):
wallet.disable_keystore(wallet.get_keystore())
self._sanity_checks_after_disabling_keystore(ks=wallet.get_keystore(), xpub=myxpub, key_origin_info=my_keyorigininfo)
async def test_haveseed_electrum__mismatching_seed(self):
"""adding an unrelated seed to an xpub-only keystore should raise"""
w, v = self._wizard_for()
d = v.wizard_data
d.update({
'seed': 'abandon bike', 'seed_type': 'segwit', 'seed_extend': False, 'seed_variant': 'electrum',
})
self.assertTrue(w.is_last_view(v.view, d))
w.resolve_next(v.view, d)
ks, ishww = w._result
self.assertFalse(ishww)
wallet = self._create_xpub_keystore_wallet(xpub='zpub6nAZodjgiMNf9zzX1pTqd6ZVX61ax8azhUDnWRumKVUr1VYATVoqAuqv3qKsb8WJXjxei4wei2p4vnMG9RnpKnen2kmgdhvZUmug2NnHNsr')
self.assertTrue(wallet.get_keystore().is_watching_only())
self.assertTrue(wallet.can_enable_disable_keystore(ks))
with self.assertRaises(Exception) as ctx:
wallet.enable_keystore(ks, ishww, None)
self.assertTrue("mismatching xpubs" in ctx.exception.args[0])
async def test_haveseed_electrum_oldseed(self):
w, v = self._wizard_for()
d = v.wizard_data