Commit Graph

21 Commits

Author SHA1 Message Date
Neil Booth 24037be99c Clean up client caching and handling 2016-01-21 22:56:53 +09:00
Neil Booth 98aef8418c Construct base classes in right order
Fixed #1632
2016-01-16 10:19:48 +09:00
Neil Booth f271f65842 KeepKey / Trezor: client split
We're going to want to do a few things differently, such as
device recovery.  So move the client code to clientbase.py
and create a per-plugin client.py file for the derived client
class.
2016-01-15 13:44:32 +09:00
Neil Booth 3d781a2d1b BIP32_HD_Wallet: Fix address derivation
Unfortunately there was root_name and root_derivation confusion
in the past for classes derived from BIP_32_HD_Wallet.
Address derivation used root_name and so would begin with 'x/'
whereas it should have begun with root_derivation, and so started
with 'm/'.

This fixes that old wart and removes some fudges from the trezor
code that used to work around it.
2016-01-10 20:06:13 +09:00
Neil Booth d5c3c09bbc Trezor: Implement decrypt message
For reasons I don't yet understand this can only decrypt
messages encrypted by the Trezor, not by Electrum
2016-01-10 14:21:40 +09:00
Neil Booth 2f1d6b2379 Have Trezor dialog work even if wallet unpaired
Required cleanup of handler logic.  Now every client
is constructed with a handler, so there is never a
question of not having one.
2016-01-09 17:15:31 +09:00
Neil Booth a3bced210d Treozr: improved settings screen
Nicer layout.  Split into three tabs.
2016-01-08 21:14:34 +09:00
Neil Booth 6fb7dbd30d Implement passphrase protection toggling.
Along with chicken box.
2016-01-06 23:08:02 +09:00
Neil Booth 9b29c6c2e6 Trezor: all four available device initializations
Trezor and KeepKey devices can now be initialized by:
- device-generated seed
- existing seed
- BIP39 mnemonic
- master private key
2016-01-06 22:18:56 +09:00
Neil Booth 3d9f321cae Use a shared device manager
Use a shared device manager across USB devices (not yet taken
advantage of by ledger).  This reduces USB scans and abstracts
device management cleanly.

We no longer scan at regular intervals in a background thread.
2016-01-06 07:56:58 +09:00
Neil Booth 87363c8301 Trezor: Implement resetting a device 2016-01-03 13:34:03 +09:00
Neil Booth a7028176cd Trezor: Add wipe device functionality
Also add a chicken box for PIN removal.
2016-01-03 10:26:34 +09:00
Neil Booth 9eaf510ac6 Test if initialized to determine watching only
Prepares for device wipe functionality
2016-01-03 09:18:29 +09:00
Neil Booth 21bf5a8a84 Better support for USB devices
Benefits of this rewrite include:

- support of disconnecting / reconnecting a device without having
  to close the wallet, even in a different USB socket
- support of multiple keepkey / trezor devices, both during wallet
  creation and general use
- wallet is watching-only dynamically according to whether the
  associated device is currently plugged in or not
2016-01-02 20:39:29 +09:00
Neil Booth c3df5c7177 Work around trezor library bug
expand_path() should be static.  Until it is we implement it ourselves.
2016-01-01 21:11:46 +09:00
Neil Booth 11d135b32d Better install wizard
Break out the workflow logic of the install wizard
into a base class.  This means reimplementing with
full support in a new GUI is now easy; you just provide
ways to request passwords, show messages etc.  The API
is fully documented in the base class.

There are a couple of minor outstanding issues, including that
the old messages shown when recovering a wallet are missing.
I will come back to that.  Ledger wallet might be broken.

Other improvements:

The install wizard code is now easy to follow and understand.
Hardware wallets can now be restored without any need for their
accompanying libraries.
Various bits of trustedcoin were broken and have been fixed.
Many plugin hooks can be removed.  I have only started on this.
2016-01-01 16:48:18 +09:00
Neil Booth b50ace4225 Support adding/removing/changing PIN on Trezor 2015-12-27 23:13:38 +09:00
Neil Booth 1b754524f9 Add more information to the trezor settings dialog 2015-12-27 22:31:27 +09:00
Neil Booth 43d21de1b2 Clean up trezor client interface 2015-12-27 19:29:57 +09:00
Neil Booth 7372e0e082 PEP8-ify most of plugins/trezor 2015-12-27 15:10:53 +09:00
Neil Booth f3329988b2 More keepkey / trezor commonizing and cleanup 2015-12-27 13:56:50 +09:00