tests: restore from old "hex" seed
This commit is contained in:
@@ -757,6 +757,10 @@ class Old_KeyStore(MasterPublicKeyMixin, Deterministic_KeyStore):
|
|||||||
self.mpk = mpk
|
self.mpk = mpk
|
||||||
|
|
||||||
def format_seed(self, seed):
|
def format_seed(self, seed):
|
||||||
|
"""Returns seed in hex format.
|
||||||
|
|
||||||
|
seed: either in hex or as mnemonic words
|
||||||
|
"""
|
||||||
from . import old_mnemonic, mnemonic
|
from . import old_mnemonic, mnemonic
|
||||||
seed = mnemonic.normalize_text(seed)
|
seed = mnemonic.normalize_text(seed)
|
||||||
# see if seed was entered as hex
|
# see if seed was entered as hex
|
||||||
|
|||||||
@@ -175,20 +175,27 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||||
async def test_electrum_seed_old(self, mock_save_db):
|
async def test_electrum_seed_old(self, mock_save_db):
|
||||||
seed_words = 'powerful random nobody notice nothing important anyway look away hidden message over'
|
seed_words = 'powerful random nobody notice nothing important anyway look away hidden message over'
|
||||||
self.assertEqual(calc_seed_type(seed_words), 'old')
|
seed_hex = 'acb740e454c3134901d7c8f16497cc1c'
|
||||||
|
|
||||||
ks = keystore.from_seed(seed_words, passphrase='', for_multisig=False)
|
for seed_to_restore_from in (seed_words, seed_hex):
|
||||||
|
with self.subTest(seed_to_restore_from=seed_to_restore_from):
|
||||||
|
self.assertEqual(calc_seed_type(seed_to_restore_from), 'old')
|
||||||
|
|
||||||
WalletIntegrityHelper.check_seeded_keystore_sanity(self, ks)
|
ks = keystore.from_seed(seed_to_restore_from, passphrase='', for_multisig=False)
|
||||||
self.assertTrue(isinstance(ks, keystore.Old_KeyStore))
|
|
||||||
|
|
||||||
self.assertEqual(ks.mpk, 'e9d4b7866dd1e91c862aebf62a49548c7dbf7bcc6e4b7b8c9da820c7737968df9c09d5a3e271dc814a29981f81b3faaf2737b551ef5dcc6189cf0f8252c442b3')
|
WalletIntegrityHelper.check_seeded_keystore_sanity(self, ks)
|
||||||
|
self.assertTrue(isinstance(ks, keystore.Old_KeyStore))
|
||||||
|
|
||||||
w = WalletIntegrityHelper.create_standard_wallet(ks, config=self.config)
|
self.assertEqual(ks.mpk, 'e9d4b7866dd1e91c862aebf62a49548c7dbf7bcc6e4b7b8c9da820c7737968df9c09d5a3e271dc814a29981f81b3faaf2737b551ef5dcc6189cf0f8252c442b3')
|
||||||
self.assertEqual(w.txin_type, 'p2pkh')
|
self.assertEqual(ks.seed, seed_hex)
|
||||||
|
self.assertEqual(ks._get_hex_seed(password=None), seed_hex)
|
||||||
|
self.assertEqual(ks.get_seed(password=None), seed_words)
|
||||||
|
|
||||||
self.assertEqual(w.get_receiving_addresses()[0], '1FJEEB8ihPMbzs2SkLmr37dHyRFzakqUmo')
|
w = WalletIntegrityHelper.create_standard_wallet(ks, config=self.config)
|
||||||
self.assertEqual(w.get_change_addresses()[0], '1KRW8pH6HFHZh889VDq6fEKvmrsmApwNfe')
|
self.assertEqual(w.txin_type, 'p2pkh')
|
||||||
|
|
||||||
|
self.assertEqual(w.get_receiving_addresses()[0], '1FJEEB8ihPMbzs2SkLmr37dHyRFzakqUmo')
|
||||||
|
self.assertEqual(w.get_change_addresses()[0], '1KRW8pH6HFHZh889VDq6fEKvmrsmApwNfe')
|
||||||
|
|
||||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||||
async def test_electrum_seed_2fa_legacy_pre27_25words(self, mock_save_db):
|
async def test_electrum_seed_2fa_legacy_pre27_25words(self, mock_save_db):
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from electrum.network import NetworkParameters, ProxySettings
|
|||||||
from electrum.plugin import Plugins, DeviceInfo, Device
|
from electrum.plugin import Plugins, DeviceInfo, Device
|
||||||
from electrum.wizard import ServerConnectWizard, NewWalletWizard, WizardViewState, KeystoreWizard
|
from electrum.wizard import ServerConnectWizard, NewWalletWizard, WizardViewState, KeystoreWizard
|
||||||
from electrum.daemon import Daemon
|
from electrum.daemon import Daemon
|
||||||
from electrum.wallet import Abstract_Wallet
|
from electrum.wallet import Abstract_Wallet, Deterministic_Wallet
|
||||||
from electrum import util
|
from electrum import util
|
||||||
from electrum import slip39
|
from electrum import slip39
|
||||||
from electrum.bip32 import KeyOriginInfo
|
from electrum.bip32 import KeyOriginInfo
|
||||||
@@ -584,7 +584,29 @@ class WalletWizardTestCase(WizardTestCase):
|
|||||||
'seed': 'powerful random nobody notice nothing important anyway look away hidden message over',
|
'seed': 'powerful random nobody notice nothing important anyway look away hidden message over',
|
||||||
'seed_type': 'old', 'seed_extend': False, 'seed_variant': 'electrum'})
|
'seed_type': 'old', 'seed_extend': False, 'seed_variant': 'electrum'})
|
||||||
v = w.resolve_next(v.view, d)
|
v = w.resolve_next(v.view, d)
|
||||||
self._set_password_and_check_address(v=v, w=w, recv_addr="1FJEEB8ihPMbzs2SkLmr37dHyRFzakqUmo")
|
wallet = self._set_password_and_check_address(v=v, w=w, recv_addr="1FJEEB8ihPMbzs2SkLmr37dHyRFzakqUmo")
|
||||||
|
|
||||||
|
self.assertIsInstance(wallet, Deterministic_Wallet)
|
||||||
|
self.assertEqual(wallet.get_seed(password=None), 'powerful random nobody notice nothing important anyway look away hidden message over')
|
||||||
|
|
||||||
|
async def test_create_standard_wallet_haveseed_electrum_oldseed_in_hex_format(self):
|
||||||
|
w = self._wizard_for(wallet_type='standard')
|
||||||
|
v = w._current
|
||||||
|
d = v.wizard_data
|
||||||
|
self.assertEqual('keystore_type', v.view)
|
||||||
|
|
||||||
|
d.update({'keystore_type': 'haveseed'})
|
||||||
|
v = w.resolve_next(v.view, d)
|
||||||
|
self.assertEqual('have_seed', v.view)
|
||||||
|
|
||||||
|
d.update({
|
||||||
|
'seed': 'acb740e454c3134901d7c8f16497cc1c',
|
||||||
|
'seed_type': 'old', 'seed_extend': False, 'seed_variant': 'electrum'})
|
||||||
|
v = w.resolve_next(v.view, d)
|
||||||
|
wallet = self._set_password_and_check_address(v=v, w=w, recv_addr="1FJEEB8ihPMbzs2SkLmr37dHyRFzakqUmo")
|
||||||
|
|
||||||
|
self.assertIsInstance(wallet, Deterministic_Wallet)
|
||||||
|
self.assertEqual(wallet.get_seed(password=None), 'powerful random nobody notice nothing important anyway look away hidden message over')
|
||||||
|
|
||||||
async def test_create_standard_wallet_haveseed_electrum_oldseed_passphrase(self):
|
async def test_create_standard_wallet_haveseed_electrum_oldseed_passphrase(self):
|
||||||
w = self._wizard_for(wallet_type='standard')
|
w = self._wizard_for(wallet_type='standard')
|
||||||
|
|||||||
Reference in New Issue
Block a user