Skip to content

Commit cc9ad3a

Browse files
committed
wallet: fix restore_wallet_from_text edge case
closes #5490
1 parent 9b82321 commit cc9ad3a

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

electrum/tests/test_wallet.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,13 @@ def test_restore_wallet_from_text_xpub(self):
189189
self.assertEqual(text, wallet.keystore.get_master_public_key())
190190
self.assertEqual('bc1q2ccr34wzep58d4239tl3x3734ttle92a8srmuw', wallet.get_receiving_addresses()[0])
191191

192+
def test_restore_wallet_from_text_xkey_that_is_also_a_valid_electrum_seed_by_chance(self):
193+
text = 'yprvAJBpuoF4FKpK92ofzQ7ge6VJMtorow3maAGPvPGj38ggr2xd1xCrC9ojUVEf9jhW5L9SPu6fU2U3o64cLrRQ83zaQGNa6YP3ajZS6hHNPXj'
194+
d = restore_wallet_from_text(text, path=self.wallet_path, network=None, gap_limit=1)
195+
wallet = d['wallet'] # type: Standard_Wallet
196+
self.assertEqual(text, wallet.keystore.get_master_private_key(password=None))
197+
self.assertEqual('3Pa4hfP3LFWqa2nfphYaF7PZfdJYNusAnp', wallet.get_receiving_addresses()[0])
198+
192199
def test_restore_wallet_from_text_xprv(self):
193200
text = 'zprvAZzHPqhCMt51fskXBUYB1fTFYgG3CBjJUT4WEZTpGw6hPSDWBPZYZARC5sE9xAcX8NeWvvucFws8vZxEa65RosKAhy7r5MsmKTxr3hmNmea'
194201
d = restore_wallet_from_text(text, path=self.wallet_path, network=None, gap_limit=1)

electrum/wallet.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2051,10 +2051,10 @@ def restore_wallet_from_text(text, *, path, network=None,
20512051
if not good_inputs:
20522052
raise Exception("None of the given privkeys can be imported")
20532053
else:
2054-
if keystore.is_seed(text):
2055-
k = keystore.from_seed(text, passphrase)
2056-
elif keystore.is_master_key(text):
2054+
if keystore.is_master_key(text):
20572055
k = keystore.from_master_key(text)
2056+
elif keystore.is_seed(text):
2057+
k = keystore.from_seed(text, passphrase)
20582058
else:
20592059
raise Exception("Seed or key not recognized")
20602060
storage.put('keystore', k.dump())

0 commit comments

Comments
 (0)