commands: fix "restore" cmd
Previously commands did not run on the asyncio thread but now they do. "restore" was polling like "while 1: time.sleep()", blocking the event loop. Now "restore" does not sync the wallet; which is actually cleaner as previously this wallet would never get unloaded from the daemon (syncing forever). This is also symmetric with the "create" cmd which also does not try to sync with the network. However now it became difficult to write a script that restores a wallet and wants to wait until it gets synced. Workaround for now is to poll with "list_wallets" whether it's synced. We could create a new command that blocks until the loaded wallet gets synced.
This commit is contained in:
@@ -170,7 +170,6 @@ class TestCreateRestoreWallet(WalletTestCase):
|
||||
encrypt_file = True
|
||||
d = restore_wallet_from_text(text,
|
||||
path=self.wallet_path,
|
||||
network=None,
|
||||
passphrase=passphrase,
|
||||
password=password,
|
||||
encrypt_file=encrypt_file,
|
||||
@@ -183,28 +182,28 @@ class TestCreateRestoreWallet(WalletTestCase):
|
||||
|
||||
def test_restore_wallet_from_text_xpub(self):
|
||||
text = 'zpub6nydoME6CFdJtMpzHW5BNoPz6i6XbeT9qfz72wsRqGdgGEYeivso6xjfw8cGcCyHwF7BNW4LDuHF35XrZsovBLWMF4qXSjmhTXYiHbWqGLt'
|
||||
d = restore_wallet_from_text(text, path=self.wallet_path, network=None, gap_limit=1)
|
||||
d = restore_wallet_from_text(text, path=self.wallet_path, gap_limit=1)
|
||||
wallet = d['wallet'] # type: Standard_Wallet
|
||||
self.assertEqual(text, wallet.keystore.get_master_public_key())
|
||||
self.assertEqual('bc1q2ccr34wzep58d4239tl3x3734ttle92a8srmuw', wallet.get_receiving_addresses()[0])
|
||||
|
||||
def test_restore_wallet_from_text_xkey_that_is_also_a_valid_electrum_seed_by_chance(self):
|
||||
text = 'yprvAJBpuoF4FKpK92ofzQ7ge6VJMtorow3maAGPvPGj38ggr2xd1xCrC9ojUVEf9jhW5L9SPu6fU2U3o64cLrRQ83zaQGNa6YP3ajZS6hHNPXj'
|
||||
d = restore_wallet_from_text(text, path=self.wallet_path, network=None, gap_limit=1)
|
||||
d = restore_wallet_from_text(text, path=self.wallet_path, gap_limit=1)
|
||||
wallet = d['wallet'] # type: Standard_Wallet
|
||||
self.assertEqual(text, wallet.keystore.get_master_private_key(password=None))
|
||||
self.assertEqual('3Pa4hfP3LFWqa2nfphYaF7PZfdJYNusAnp', wallet.get_receiving_addresses()[0])
|
||||
|
||||
def test_restore_wallet_from_text_xprv(self):
|
||||
text = 'zprvAZzHPqhCMt51fskXBUYB1fTFYgG3CBjJUT4WEZTpGw6hPSDWBPZYZARC5sE9xAcX8NeWvvucFws8vZxEa65RosKAhy7r5MsmKTxr3hmNmea'
|
||||
d = restore_wallet_from_text(text, path=self.wallet_path, network=None, gap_limit=1)
|
||||
d = restore_wallet_from_text(text, path=self.wallet_path, gap_limit=1)
|
||||
wallet = d['wallet'] # type: Standard_Wallet
|
||||
self.assertEqual(text, wallet.keystore.get_master_private_key(password=None))
|
||||
self.assertEqual('bc1q2ccr34wzep58d4239tl3x3734ttle92a8srmuw', wallet.get_receiving_addresses()[0])
|
||||
|
||||
def test_restore_wallet_from_text_addresses(self):
|
||||
text = 'bc1q2ccr34wzep58d4239tl3x3734ttle92a8srmuw bc1qnp78h78vp92pwdwq5xvh8eprlga5q8gu66960c'
|
||||
d = restore_wallet_from_text(text, path=self.wallet_path, network=None)
|
||||
d = restore_wallet_from_text(text, path=self.wallet_path)
|
||||
wallet = d['wallet'] # type: Imported_Wallet
|
||||
self.assertEqual('bc1q2ccr34wzep58d4239tl3x3734ttle92a8srmuw', wallet.get_receiving_addresses()[0])
|
||||
self.assertEqual(2, len(wallet.get_receiving_addresses()))
|
||||
@@ -214,7 +213,7 @@ class TestCreateRestoreWallet(WalletTestCase):
|
||||
|
||||
def test_restore_wallet_from_text_privkeys(self):
|
||||
text = 'p2wpkh:L4jkdiXszG26SUYvwwJhzGwg37H2nLhrbip7u6crmgNeJysv5FHL p2wpkh:L24GxnN7NNUAfCXA6hFzB1jt59fYAAiFZMcLaJ2ZSawGpM3uqhb1'
|
||||
d = restore_wallet_from_text(text, path=self.wallet_path, network=None)
|
||||
d = restore_wallet_from_text(text, path=self.wallet_path)
|
||||
wallet = d['wallet'] # type: Imported_Wallet
|
||||
addr0 = wallet.get_receiving_addresses()[0]
|
||||
self.assertEqual('bc1q2ccr34wzep58d4239tl3x3734ttle92a8srmuw', addr0)
|
||||
|
||||
Reference in New Issue
Block a user