URI: 
       tTrezor: fixes for latest libtrezor - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit f4fa53e915e12cf21f8202e194206c47e0180bc4
   DIR parent f8ed7b058dae25a345160333da916b15a472cf5c
  HTML Author: Neil Booth <kyuupichan@gmail.com>
       Date:   Sun, 24 Jan 2016 14:31:43 +0900
       
       Trezor: fixes for latest libtrezor
       
       We were relying on internals of libtrezor that they just
       changed.  However their changes don't work on Mac either.
       Work around both issues.  I think this...
       
       Fixes #1637
       
       Diffstat:
         M lib/plugins.py                      |       6 +++---
         M plugins/trezor/plugin.py            |      12 +++++++-----
       
       2 files changed, 10 insertions(+), 8 deletions(-)
       ---
   DIR diff --git a/lib/plugins.py b/lib/plugins.py
       t@@ -227,7 +227,7 @@ class BasePlugin(PrintError):
            def settings_dialog(self):
                pass
        
       -Device = namedtuple("Device", "path id_ product_key")
       +Device = namedtuple("Device", "path interface_number id_ product_key")
        DeviceInfo = namedtuple("DeviceInfo", "device description initialized")
        
        class DeviceMgr(PrintError):
       t@@ -423,8 +423,8 @@ class DeviceMgr(PrintError):
                for d in hid.enumerate(0, 0):
                    product_key = (d['vendor_id'], d['product_id'])
                    if product_key in self.recognised_hardware:
       -                devices.append(Device(d['path'], d['serial_number'],
       -                                      product_key))
       +                devices.append(Device(d['path'], d['interface_number'],
       +                                      d['serial_number'], product_key))
        
                # Now find out what was disconnected
                pairs = [(dev.path, dev.id_) for dev in devices]
   DIR diff --git a/plugins/trezor/plugin.py b/plugins/trezor/plugin.py
       t@@ -209,16 +209,18 @@ class TrezorCompatiblePlugin(BasePlugin, ThreadJob):
                        wallet.last_operation = self.prevent_timeout
        
            def create_client(self, device, handler):
       -        path = device.path
       -        pair = ((None, path) if self.HidTransport._detect_debuglink(path)
       -                else (path, None))
       +        if device.interface_number == 1:
       +            pair = [None, device.path]
       +        else:
       +            pair = [device.path, None]
       +
                try:
                    transport = self.HidTransport(pair)
                except BaseException as e:
                    # We were probably just disconnected; never mind
       -            self.print_error("cannot connect at", path, str(e))
       +            self.print_error("cannot connect at", device.path, str(e))
                    return None
       -        self.print_error("connected to device at", path)
       +        self.print_error("connected to device at", device.path)
        
                client = self.client_class(transport, handler, self)