mirror of
https://github.com/romanz/amodem.git
synced 2026-05-10 05:17:38 +08:00
trezor: Use composite transport for device detection.
This commit is contained in:
@@ -41,12 +41,6 @@ class Trezor(interface.Device):
|
|||||||
@property
|
@property
|
||||||
def _defs(self):
|
def _defs(self):
|
||||||
from . import trezor_defs
|
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
|
return trezor_defs
|
||||||
|
|
||||||
required_version = '>=1.4.0'
|
required_version = '>=1.4.0'
|
||||||
@@ -122,10 +116,13 @@ class Trezor(interface.Device):
|
|||||||
|
|
||||||
def connect(self):
|
def connect(self):
|
||||||
"""Enumerate and connect to the first USB HID interface."""
|
"""Enumerate and connect to the first USB HID interface."""
|
||||||
for transport in self._defs.Transport.enumerate():
|
transport = self._defs.TrezorDevice.enumerate()
|
||||||
log.debug('transport: %s', transport)
|
if not transport:
|
||||||
|
raise interface.NotFoundError('{} not connected'.format(self))
|
||||||
|
|
||||||
|
log.debug('transports: %s', transport)
|
||||||
for _ in range(5):
|
for _ in range(5):
|
||||||
connection = self._defs.Client(transport)
|
connection = self._defs.Client(transport[0])
|
||||||
self._override_pin_handler(connection)
|
self._override_pin_handler(connection)
|
||||||
self._override_passphrase_handler(connection)
|
self._override_passphrase_handler(connection)
|
||||||
self._verify_version(connection)
|
self._verify_version(connection)
|
||||||
@@ -141,8 +138,6 @@ class Trezor(interface.Device):
|
|||||||
connection.close() # so the next HID open() will succeed
|
connection.close() # so the next HID open() will succeed
|
||||||
raise
|
raise
|
||||||
|
|
||||||
raise interface.NotFoundError('{} not connected'.format(self))
|
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
"""Close connection."""
|
"""Close connection."""
|
||||||
self.conn.close()
|
self.conn.close()
|
||||||
|
|||||||
@@ -5,6 +5,4 @@
|
|||||||
from trezorlib.client import CallException, PinException
|
from trezorlib.client import CallException, PinException
|
||||||
from trezorlib.client import TrezorClient as Client
|
from trezorlib.client import TrezorClient as Client
|
||||||
from trezorlib.messages import IdentityType, PassphraseAck, PinMatrixAck
|
from trezorlib.messages import IdentityType, PassphraseAck, PinMatrixAck
|
||||||
from trezorlib.transport_bridge import BridgeTransport
|
from trezorlib.device import TrezorDevice
|
||||||
from trezorlib.transport_hid import HidTransport
|
|
||||||
from trezorlib.transport_udp import UdpTransport
|
|
||||||
|
|||||||
Reference in New Issue
Block a user