tplugin: separate get_xpub and setup_device - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 665d1bc153a41b922e87f17337d81cd004acb2ec DIR parent d2dcea67baeaeed87f948aa46be228d99dcdb170 HTML Author: ThomasV <thomasv@electrum.org> Date: Wed, 24 Aug 2016 10:47:27 +0200 plugin: separate get_xpub and setup_device Diffstat: M lib/base_wizard.py | 8 +++----- M plugins/trezor/plugin.py | 8 +++++++- 2 files changed, 10 insertions(+), 6 deletions(-) --- DIR diff --git a/lib/base_wizard.py b/lib/base_wizard.py t@@ -204,17 +204,15 @@ class BaseWizard(object): self.choice_dialog(title=title, message=msg, choices=choices, run_next=self.on_device) def on_device(self, name, device_info): - plugin = self.plugins.get_plugin(name) - self.plugin = plugin - xpub = plugin.setup_device(device_info, 'm', self) + self.plugin = self.plugins.get_plugin(name) + self.plugin.setup_device(device_info, self) f = lambda x: self.run('on_hardware_account_id', name, device_info, x) self.account_id_dialog(run_next=f) def on_hardware_account_id(self, name, device_info, account_id): from keystore import hardware_keystore, bip44_derivation - plugin = self.plugins.get_plugin(name) derivation = bip44_derivation(int(account_id)) - xpub = plugin.setup_device(device_info, derivation, self) + xpub = self.plugin.get_xpub(device_info.device.id_, derivation, self) d = { 'type': 'hardware', 'hw_type': name, DIR diff --git a/plugins/trezor/plugin.py b/plugins/trezor/plugin.py t@@ -198,7 +198,7 @@ class TrezorCompatiblePlugin(HW_PluginBase): client.load_device_by_xprv(item, pin, passphrase_protection, label, language) - def setup_device(self, device_info, derivation, wizard): + def setup_device(self, device_info, wizard): '''Called when creating a new wallet. Select the device to use. If the device is uninitialized, go through the intialization process.''' t@@ -209,7 +209,13 @@ class TrezorCompatiblePlugin(HW_PluginBase): handler = self.create_handler(wizard) client.handler = handler self.initialize_device(device_id, wizard, handler) + client.handler = wizard + client.get_xpub('m') + client.used() + def get_xpub(self, device_id, derivation, wizard): + devmgr = self.device_manager() + client = devmgr.client_by_id(device_id) client.handler = wizard xpub = client.get_xpub(derivation) client.used()