commit 33c77879418c0e479582fa690582516518417000
parent 8b729d0f83efa9c690571bd0c388258b51f119fb
Author: ThomasV <thomasv@electrum.org>
Date: Sat, 27 Aug 2016 09:46:02 +0200
plugins: do not assume that handler belongs to keystore
Diffstat:
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/lib/plugins.py b/lib/plugins.py
@@ -383,15 +383,14 @@ class DeviceMgr(ThreadJob, PrintError):
self.scan_devices()
return self.client_lookup(id_)
- def client_for_keystore(self, plugin, keystore, force_pair):
+ def client_for_keystore(self, plugin, handler, keystore, force_pair):
with self.lock:
devices = self.scan_devices()
xpub = keystore.xpub
derivation = keystore.get_derivation()
- handler = keystore.handler
client = self.client_by_xpub(plugin, xpub, handler, devices)
if client is None and force_pair:
- info = self.select_device(handler, plugin, keystore, devices)
+ info = self.select_device(plugin, handler, keystore, devices)
client = self.force_pair_xpub(plugin, handler, info, xpub, derivation, devices)
return client
@@ -453,7 +452,7 @@ class DeviceMgr(ThreadJob, PrintError):
return infos
- def select_device(self, handler, plugin, keystore, devices=None):
+ def select_device(self, plugin, handler, keystore, devices=None):
'''Ask the user to select a device to use if there is more than one,
and return the DeviceInfo for the device.'''
while True:
@@ -478,7 +477,7 @@ class DeviceMgr(ThreadJob, PrintError):
info = infos[c]
# save new label
keystore.set_label(info.label)
- keystore.handler.win.wallet.save_keystore()
+ handler.win.wallet.save_keystore()
return info
def scan_devices(self):
diff --git a/plugins/trezor/plugin.py b/plugins/trezor/plugin.py
@@ -134,7 +134,8 @@ class TrezorCompatiblePlugin(HW_PluginBase):
# All client interaction should not be in the main GUI thread
assert self.main_thread != threading.current_thread()
devmgr = self.device_manager()
- client = devmgr.client_for_keystore(self, keystore, force_pair)
+ handler = keystore.handler
+ client = devmgr.client_for_keystore(self, handler, keystore, force_pair)
# returns the client for a given keystore. can use xpub
if client:
client.used()
@@ -237,7 +238,7 @@ class TrezorCompatiblePlugin(HW_PluginBase):
def show_address(self, wallet, address):
client = self.get_client(wallet.keystore)
if not client.atleast_version(1, 3):
- wallet.handler.show_error(_("Your device firmware is too old"))
+ keystore.handler.show_error(_("Your device firmware is too old"))
return
change, index = wallet.get_address_index(address)
derivation = wallet.keystore.derivation