Beispiel #1
0
 def is_bridge_available(self) -> bool:
     # Testing whether the Bridge is available can take several seconds
     # (when it is not), as it is slow to timeout, hence we cache it.
     if self._is_bridge_available is None:
         try:
             call_bridge("enumerate")
         except Exception:
             self._is_bridge_available = False
             # never again try with Bridge due to slow timeout
             BridgeTransport.ENABLED = False
         else:
             self._is_bridge_available = True
     return self._is_bridge_available
Beispiel #2
0
 def enumerate(self):
     # If there is a bridge, prefer that.
     # On Windows, the bridge runs as Admin (and Electrum usually does not),
     # so the bridge has better chances of finding devices. see #5420
     # This also avoids duplicate entries.
     try:
         call_bridge("enumerate")
     except Exception:
         devices = trezorlib.transport.enumerate_devices()
     else:
         devices = BridgeTransport.enumerate()
     return [Device(path=d.get_path(),
                    interface_number=-1,
                    id_=d.get_path(),
                    product_key=TREZOR_PRODUCT_KEY,
                    usage_page=0,
                    transport_ui_string=d.get_path())
             for d in devices]