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
This commit is contained in:
parent
f8ed7b058d
commit
f4fa53e915
|
@ -227,7 +227,7 @@ class BasePlugin(PrintError):
|
||||||
def settings_dialog(self):
|
def settings_dialog(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
Device = namedtuple("Device", "path id_ product_key")
|
Device = namedtuple("Device", "path interface_number id_ product_key")
|
||||||
DeviceInfo = namedtuple("DeviceInfo", "device description initialized")
|
DeviceInfo = namedtuple("DeviceInfo", "device description initialized")
|
||||||
|
|
||||||
class DeviceMgr(PrintError):
|
class DeviceMgr(PrintError):
|
||||||
|
@ -423,8 +423,8 @@ class DeviceMgr(PrintError):
|
||||||
for d in hid.enumerate(0, 0):
|
for d in hid.enumerate(0, 0):
|
||||||
product_key = (d['vendor_id'], d['product_id'])
|
product_key = (d['vendor_id'], d['product_id'])
|
||||||
if product_key in self.recognised_hardware:
|
if product_key in self.recognised_hardware:
|
||||||
devices.append(Device(d['path'], d['serial_number'],
|
devices.append(Device(d['path'], d['interface_number'],
|
||||||
product_key))
|
d['serial_number'], product_key))
|
||||||
|
|
||||||
# Now find out what was disconnected
|
# Now find out what was disconnected
|
||||||
pairs = [(dev.path, dev.id_) for dev in devices]
|
pairs = [(dev.path, dev.id_) for dev in devices]
|
||||||
|
|
|
@ -209,16 +209,18 @@ class TrezorCompatiblePlugin(BasePlugin, ThreadJob):
|
||||||
wallet.last_operation = self.prevent_timeout
|
wallet.last_operation = self.prevent_timeout
|
||||||
|
|
||||||
def create_client(self, device, handler):
|
def create_client(self, device, handler):
|
||||||
path = device.path
|
if device.interface_number == 1:
|
||||||
pair = ((None, path) if self.HidTransport._detect_debuglink(path)
|
pair = [None, device.path]
|
||||||
else (path, None))
|
else:
|
||||||
|
pair = [device.path, None]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
transport = self.HidTransport(pair)
|
transport = self.HidTransport(pair)
|
||||||
except BaseException as e:
|
except BaseException as e:
|
||||||
# We were probably just disconnected; never mind
|
# 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
|
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)
|
client = self.client_class(transport, handler, self)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue