diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py index 23af9fa8..12f77218 100644 --- a/gui/qt/__init__.py +++ b/gui/qt/__init__.py @@ -154,18 +154,13 @@ class ElectrumGui: w.bring_to_top() break else: - wallet = self.daemon.get_wallet(path) + wallet = self.daemon.load_wallet(path, None) if not wallet: storage = WalletStorage(path) - if not storage.file_exists() or storage.is_encrypted(): - wizard = InstallWizard(self.config, self.app, self.plugins, storage) - wallet = wizard.run_and_get_wallet() - if not wallet: - return - else: - wallet = Wallet(storage) - wallet.start_threads(self.daemon.network) - self.daemon.add_wallet(wallet) + wizard = InstallWizard(self.config, self.app, self.plugins, storage) + wallet = wizard.run_and_get_wallet() + if not wallet: + return w = self.create_window_for_wallet(wallet) if uri: w.pay_to_URI(uri) diff --git a/lib/daemon.py b/lib/daemon.py index c2f9c2f6..aaeca2e8 100644 --- a/lib/daemon.py +++ b/lib/daemon.py @@ -153,7 +153,7 @@ class Daemon(DaemonThread): response = "Daemon already running" elif sub == 'load_wallet': path = config.get_wallet_path() - self.load_wallet(path, lambda: config.get('password')) + self.load_wallet(path, config.get('password')) response = True elif sub == 'close_wallet': path = config.get_wallet_path() @@ -198,7 +198,7 @@ class Daemon(DaemonThread): response = "Error: Electrum is running in daemon mode. Please stop the daemon first." return response - def load_wallet(self, path, password_getter): + def load_wallet(self, path, password): # wizard will be launched if we return if path in self.wallets: wallet = self.wallets[path] @@ -207,9 +207,8 @@ class Daemon(DaemonThread): if not storage.file_exists(): return if storage.is_encrypted(): - password = password_getter() if not password: - raise UserCancelled() + return storage.decrypt(password) if storage.requires_split(): return