|
|
|
@ -41,12 +41,6 @@ class Trezor(interface.Device):
|
|
|
|
|
@property
|
|
|
|
|
def _defs(self):
|
|
|
|
|
from . import trezor_defs
|
|
|
|
|
# Allow using TREZOR bridge transport (instead of the HID default)
|
|
|
|
|
trezor_defs.Transport = {
|
|
|
|
|
'bridge': trezor_defs.BridgeTransport,
|
|
|
|
|
'udp': trezor_defs.UdpTransport,
|
|
|
|
|
'hid': trezor_defs.HidTransport,
|
|
|
|
|
}[os.environ.get('TREZOR_TRANSPORT', 'hid')]
|
|
|
|
|
return trezor_defs
|
|
|
|
|
|
|
|
|
|
required_version = '>=1.4.0'
|
|
|
|
@ -122,10 +116,13 @@ class Trezor(interface.Device):
|
|
|
|
|
|
|
|
|
|
def connect(self):
|
|
|
|
|
"""Enumerate and connect to the first USB HID interface."""
|
|
|
|
|
for transport in self._defs.Transport.enumerate():
|
|
|
|
|
log.debug('transport: %s', transport)
|
|
|
|
|
transport = self._defs.TrezorDevice.enumerate()
|
|
|
|
|
if not transport:
|
|
|
|
|
raise interface.NotFoundError('{} not connected'.format(self))
|
|
|
|
|
|
|
|
|
|
log.debug('transports: %s', transport)
|
|
|
|
|
for _ in range(5):
|
|
|
|
|
connection = self._defs.Client(transport)
|
|
|
|
|
connection = self._defs.Client(transport[0])
|
|
|
|
|
self._override_pin_handler(connection)
|
|
|
|
|
self._override_passphrase_handler(connection)
|
|
|
|
|
self._verify_version(connection)
|
|
|
|
@ -141,8 +138,6 @@ class Trezor(interface.Device):
|
|
|
|
|
connection.close() # so the next HID open() will succeed
|
|
|
|
|
raise
|
|
|
|
|
|
|
|
|
|
raise interface.NotFoundError('{} not connected'.format(self))
|
|
|
|
|
|
|
|
|
|
def close(self):
|
|
|
|
|
"""Close connection."""
|
|
|
|
|
self.conn.close()
|
|
|
|
|