def wait_for_devices(): devices = TrezorDevice.enumerate() while not len(devices): sys.stderr.write( "Please connect TREZOR to computer and press Enter...") input() devices = TrezorDevice.enumerate() return devices
def create_client(self, device, handler): from trezorlib.device import TrezorDevice try: self.print_error("connecting to device at", device.path) transport = TrezorDevice.find_by_path(device.path) except BaseException as e: self.print_error("cannot connect at", device.path, str(e)) return None if not transport: self.print_error("cannot connect at", device.path) return self.print_error("connected to device at", device.path) client = self.client_class(transport, handler, self) # Try a ping for device sanity try: client.ping('t') except BaseException as e: self.print_error("ping failed", str(e)) return None if not client.atleast_version(*self.minimum_firmware): msg = (_('Outdated {} firmware for device labelled {}. Please ' 'download the updated firmware from {}').format( self.device, client.label(), self.firmware_URL)) self.print_error(msg) handler.show_error(msg) return None return client
def create_client(self, device, handler): from trezorlib.device import TrezorDevice try: self.print_error("connecting to device at", device.path) transport = TrezorDevice.find_by_path(device.path) except BaseException as e: self.print_error("cannot connect at", device.path, str(e)) return None if not transport: self.print_error("cannot connect at", device.path) return self.print_error("connected to device at", device.path) client = self.client_class(transport, handler, self) # Try a ping for device sanity try: client.ping('t') except BaseException as e: self.print_error("ping failed", str(e)) return None if not client.atleast_version(*self.minimum_firmware): msg = (_('Outdated {} firmware for device labelled {}. Please ' 'download the updated firmware from {}') .format(self.device, client.label(), self.firmware_URL)) self.print_error(msg) handler.show_error(msg) return None return client
def main(): # List all connected TREZORs on USB/UDP devices = TrezorDevice.enumerate() # Check whether we found any if len(devices) == 0: print('No TREZOR found') return # Use first connected device transport = devices[0] # Creates object for manipulating TREZOR client = TrezorClient(transport) # Print out TREZOR's features and settings print(client.features) # Get the first address of first BIP44 account # (should be the same address as shown in wallet.trezor.io) bip32_path = client.expand_path("44'/0'/0'/0/0") address = client.get_address('Bitcoin', bip32_path) print('Bitcoin address:', address) client.close()
def get_client(): devices = TrezorDevice.enumerate() # list all connected TREZORs on USB if len(devices) == 0: # check whether we found any return None transport = devices[0] # use first connected device return TrezorClient( transport) # creates object for communicating with TREZOR
def find_trezor(self): u"""Selects a trezor device and initialize the client.""" devices = TrezorDevice.enumerate() if len(devices) == 0: raise NoTrezorFoundError('No Trezor device was found. Make sure it' ' is plugged.') transport = devices[0] trezor = TrezorClient(transport, ui=ui.ClickUI()) return trezor
def enumerate(self): from trezorlib.device import TrezorDevice return [ Device(d.get_path(), -1, d.get_path(), 'TREZOR', 0) for d in TrezorDevice.enumerate() ]
def enumerate_transports(): """Returns all available transports.""" return TrezorDevice.enumerate()
#!/usr/bin/env python3 import code import readline import rlcompleter import struct import sys from trezorlib.device import TrezorDevice import trezorlib.messages as proto try: transport, = (device.find_debug() for device in TrezorDevice.enumerate()) except ValueError: sys.exit("Exactly one TREZOR must be connected, with debug link enabled.") transport.session_begin() class HexInteger(int): def __repr__(self): return hex(self) class MemoryMappedInteger(object): def __init__(self, fmt, address): self.struct = struct.Struct("<" + fmt) self.address = address def read(self): transport.write(
def enumerate(self): from trezorlib.device import TrezorDevice return [Device(d.get_path(), -1, d.get_path(), 'TREZOR', 0) for d in TrezorDevice.enumerate()]