Commit Graph

220 Commits

Author SHA1 Message Date
ThomasV 6f083a712d trezor: use serialize_xpub 2017-01-30 10:16:18 +01:00
ThomasV 6bfbc9a718 fix: replace remaining occurences of public_key_to_bc_address 2017-01-29 06:34:35 +01:00
ThomasV b16800864b trezor: fix is_xprv 2017-01-06 22:47:10 +01:00
ThomasV 6d33e1a35b trezor: fix wipe_device 2017-01-06 22:32:06 +01:00
anduck 064535c27d Update plugin.py 2016-11-09 23:14:25 +02:00
anduck 32af57e2c9 Change atleast_version to return 1 or 0 2016-11-09 23:12:44 +02:00
ThomasV b907018a25 trezor: fix length of signatures array 2016-10-20 09:22:48 +02:00
ThomasV 5e92e09044 fix pubkey ordering in multisig wallets. fix #1975 2016-10-16 19:17:32 +02:00
ThomasV 11ba5c441a fix #1976 2016-10-15 14:34:19 +02:00
ThomasV 34e271594a skip trezor address check with multisig addresses (issue #1975) 2016-10-15 13:57:55 +02:00
ThomasV 997dd17933 call choose_device when button is clicked 2016-09-27 12:11:19 +02:00
ThomasV 9f7ca3dcb7 fix trezor PIN signal 2016-09-25 06:58:48 +02:00
ThomasV ae779694df create common class for qt hardware plugins 2016-08-31 11:50:19 +02:00
ThomasV 472210885a fix keystore in settings dialog 2016-08-28 10:58:16 +02:00
ThomasV 49a5994b29 use another lock for hid operations 2016-08-27 15:46:01 +02:00
ThomasV 82a33bf89e fix callback of settings_dialog 2016-08-27 15:03:54 +02:00
ThomasV c82bd1d8cb disable bridge because it seems to never returns if keepkey is plugged 2016-08-27 14:58:58 +02:00
ThomasV 47f1a7b632 move update_status in handler 2016-08-27 14:56:31 +02:00
ThomasV e542b24bc6 Remove dynamic classes in trezor compatible plugins.
This is unecessarily complex, and can be achieved by inheritance.
2016-08-27 12:13:01 +02:00
ThomasV b07d3466c0 new icons to show hardware wallet pairing in status bar 2016-08-27 11:30:53 +02:00
ThomasV 33c7787941 plugins: do not assume that handler belongs to keystore 2016-08-27 09:46:02 +02:00
ThomasV 0ceb7181d6 treor: better tooltips 2016-08-26 15:56:32 +02:00
ThomasV a2fa26eb46 disable 'show on trezor' menu for multisig 2016-08-26 12:42:31 +02:00
ThomasV 86e23d9989 save wallet label in keystore, to facilitate pairing 2016-08-26 11:45:12 +02:00
ThomasV 11abdd7175 initialize device in separate thread 2016-08-25 15:03:30 +02:00
ThomasV 0f9fb49db7 don't use wizard as handler, it does not have all methods 2016-08-25 13:32:42 +02:00
ThomasV 665d1bc153 plugin: separate get_xpub and setup_device 2016-08-24 10:47:27 +02:00
ThomasV d2dcea67ba fix settings_dialog buttons 2016-08-24 10:19:45 +02:00
ThomasV 8edca91390 wizard: trezor init 2016-08-24 05:58:41 +02:00
ThomasV 4781df9d21 wizard: scan hardware devices directly 2016-08-23 13:40:11 +02:00
ThomasV 0520eda628 device manager: remove seemingly unused parameter 2016-08-23 10:36:20 +02:00
ThomasV 63ebf7772e wizard.query_choice 2016-08-23 10:00:46 +02:00
ThomasV d946e9fa54 trezor button should not be an attribute of window 2016-08-23 09:46:41 +02:00
ThomasV 3b830cbcfa wizard: fix trezor device initialization 2016-08-23 09:21:24 +02:00
ThomasV 80675121ce allow several hardware cosigners in the same wallet 2016-08-22 12:50:24 +02:00
ThomasV eb60e0d2e0 fix hw_type 2016-08-21 22:15:17 +02:00
ThomasV afe39330dc update wallet format again, for keystore 2016-08-21 11:58:15 +02:00
ThomasV 428bc539b3 hardware: store derivation instead of account_id 2016-08-20 21:08:30 +02:00
ThomasV 664077397e device manager: index devices by xpub 2016-08-20 20:54:15 +02:00
ThomasV a972a476bc fix trezor dialog 2016-08-20 18:21:20 +02:00
ThomasV 8804ea8b1a fix keystore in trezor settings 2016-08-20 08:52:13 +02:00
ThomasV bfd7709ccd move xpubkey logic to keystore and fix it 2016-08-17 15:25:16 +02:00
ThomasV c101379eb0 fix: type of account_id 2016-08-15 14:43:24 +02:00
ThomasV 55aa29917d Do not use side-effects of import to initialize hardware plugins
Call HidTransport in the context of a function
2016-08-15 12:28:31 +02:00
ThomasV d9021788fa request account_id in wizard, for hardware wallets. cleanup bip44 code 2016-08-15 11:48:33 +02:00
ThomasV b87c5d12fa - fix sign/verify messages
- fix hardware wallet tx_outputs
2016-08-14 13:03:52 +02:00
ThomasV b436042c89 partially revert fdb810ba62 2016-08-13 14:15:29 +02:00
ThomasV 1159f85e05 Major refactoring
- separation between Wallet and key management (Keystore)
 - simplification of wallet classes
 - remove support for multiple accounts in the same wallet
 - add support for OP_RETURN to Trezor plugin
 - split multi-accounts wallets for backward compatibility
2016-08-12 11:02:28 +02:00
slush0 fdb810ba62 Fixed TREZOR plugin to work with python-trezor>=0.7.0 (to be released). 2016-06-27 17:16:55 +02:00
slush0 18b7337aea Use Bridge transport if available; implementing #1139
Bumping required TREZOR firmware to 1.3.3 (includes important fixes)
2016-05-06 05:44:23 +02:00
Neil Booth 0f33989768 trezor: remove code duplicated in base class 2016-02-27 13:17:59 +09:00
Neil Booth 9a454b60ce trezor: raise error for decryption attempts 2016-02-24 22:43:54 +09:00
Neil Booth 535956149a trezor: single passphrase entry
Only require the user to input the passphrase once, unless creating
a wallet.
Should they mis-enter the passphrase, they will be warned Electrum
couldn't pair the device, and when they actually need to use it
they will be prompted again.
Fixes #1672
2016-02-11 19:54:55 +09:00
Neil Booth 881694d39d trezor: quiet user cancelling of passphrase input 2016-02-11 16:21:22 +09:00
Neil Booth 0f7d9c9c17 trezor: remove duplicate code
This was moved to the hw_wallet base class.
2016-02-11 15:59:46 +09:00
Neil Booth b3a3628b49 trezor: tweak some messages 2016-02-11 15:41:56 +09:00
Neil Booth e7b87c1d24 trezor: improve various messages and dialogs 2016-02-11 13:59:19 +09:00
Neil Booth 5f28834bb2 Trezor: session timeout improvements
Move session timeout from wallet to config
Prevent timeouts whenever a device operation is in progress
Move timeout job from each plugin to device manager
2016-02-10 21:59:41 +09:00
Neil Booth 9490debf0f hw_wallet: don't make watching only if cannot pair
Instead issue a warning.  Being watching-only disables
various functionality that should instead just ask again
for the PIN to be input.
2016-02-07 17:38:34 +09:00
Neil Booth 16397b1ed7 trezor: more user friendly when cannot connect
Tell the user and ask if they want to try again.  If they
say no, raise a silent exception.  Apply this more friendly
behaviour to the install wizard too (see issue #1668).
2016-02-06 19:51:39 +09:00
Neil Booth 4ea9518aef QT install wizard: catch general exceptions
and show an error before re-raising and exiting.  Improvement on
prior.
2016-02-06 15:13:27 +09:00
Neil Booth 297e89db5c Install wizard: error out when no devices found
Fixes 1668
2016-02-06 15:08:56 +09:00
Neil Booth e61fffab55 Trezor/KeepKey: force watching only improvements
Only warn about watching only once given a chance to pair.
Failure to pair makes watching-only and warns.
In error message to user, distinguish between failure to connect
and failure to pair.
2016-01-31 19:36:21 +09:00
ThomasV 2a908d3e8b hw_wallet: do not mix qt and non-qt imports 2016-01-30 13:48:52 +01:00
Neil Booth 012f500976 hw_wallet: Create HW_PluginBase and use it 2016-01-30 18:33:54 +09:00
Neil Booth 134ae3d044 hw_wallet: separate out common QtHandler code 2016-01-30 12:46:54 +09:00
Neil Booth e461c1c818 Create hw_wallet directory for common code
Quite a lot of code under trezor/ can be shared with the
Ledger code.  This is the first step for wallets.
2016-01-30 12:20:05 +09:00
Neil Booth 6b68968d04 self not client. 2016-01-30 12:11:16 +09:00
Pavol Rusnak 6ce12ca1dc
fix spelling of TREZOR and SatoshiLabs 2016-01-29 14:58:51 +01:00
Neil Booth 412e2a8d2c Create is_pairable() function and use it.
Fixes #1653.
2016-01-29 19:26:05 +09:00
Richard Ulrich 7f2c379a6c added a missing self statement for issue #1093 2016-01-27 21:32:53 +01:00
Neil Booth f4fa53e915 Trezor: fixes for latest libtrezor
We were relying on internals of libtrezor that they just
changed.  However their changes don't work on Mac either.
Work around both issues.  I think this...

Fixes #1637
2016-01-24 14:33:21 +09:00
Neil Booth f8ed7b058d Improved multi-device handling
Ask user which device to use when there are many.  If there
is only one skip the question.  We used to just pick the
first one we found; user had no way to switch.

We have to handle querying from the non-GUI thread.
2016-01-24 13:41:03 +09:00
Neil Booth 3a735d40ac Keepkey/Trezor: fix 2 issues
1: In KeepKey recovery we let the user type a fifth
   letter which causes the firmware to abort the
   protocol.  Only allow 4 letters.
2: Handle exceptions thrown during device initialization
   properly
2016-01-24 10:39:04 +09:00
Neil Booth efa1efedca Hardware wallets: limit change outputs to 1 2016-01-23 22:05:08 +09:00
Neil Booth b752e91dae Separate out get_input_tx. 2016-01-23 21:49:07 +09:00
Neil Booth 9bf45de279 Trezor: give me a chance to sign with a PIN entry 2016-01-23 16:23:21 +09:00
Neil Booth 43fd49aa8f Fix for tx.inputs break 2016-01-23 15:32:21 +09:00
Neil Booth 91d0504f31 GC the dialog once done. 2016-01-23 14:33:46 +09:00
Neil Booth 889976915a KeepKey: Implement secure recovery from seed
This method relies on having a large screen so only
works with KeepKey firmware.
2016-01-23 14:26:13 +09:00
Neil Booth eb865779eb Small fix for trezor devices
Client operations are asynchronous; do any unpairing after
the operation.
2016-01-23 12:11:07 +09:00
Neil Booth f6200bd73e select_device: only list plugin devices 2016-01-22 22:20:08 +09:00
Neil Booth 8732bead24 Trezor: fix a typo. 2016-01-22 21:18:03 +09:00
Neil Booth a7cb66d31e Trezor: better messages during initialization 2016-01-22 20:37:49 +09:00
Neil Booth 1e030706cb Trezor: small improvements for device initialization 2016-01-22 19:48:04 +09:00
Neil Booth cefd128020 Trezor: improve install wizard
Add explanatory help about passphrases, with warning, like
in trezor dialog box.
2016-01-22 00:01:09 +09:00
Neil Booth 0d14781463 Trezor: GUI fixes
Trezor window was doing GUI stuff outside the GUI thread
2016-01-21 23:33:15 +09:00
Neil Booth 24037be99c Clean up client caching and handling 2016-01-21 22:56:53 +09:00
Neil Booth 13420f6917 Keepkey: doesn't yet support homescreen setting
Make some text shorter so it fits in radio buttons
2016-01-19 22:38:02 +09:00
Neil Booth 7029411629 Threaded trezor dialog
Also fix up the dialog box a bit
2016-01-19 20:58:10 +09:00
Neil Booth 9ab9c73d6d Threaded wallet creation 2016-01-18 07:33:04 +09:00
Neil Booth 06c262d0dc TrezorClient: should be in a separate thread
First steps; get show_address working.
Client is not responsible for showing exceptions.
Suppress uninteresting exceptions.
2016-01-18 07:33:04 +09:00
Neil Booth c99f0acfba Localize Image import for now 2016-01-18 07:25:55 +09:00
ThomasV d200b236ae replace tx.input, tx.output by methods, so that deserialize calls are encapsulated 2016-01-17 15:04:11 +01:00
Neil Booth c160a99ebc Add cancel button to trezor dialogs 2016-01-17 18:39:09 +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
ThomasV 0d52911561 define constants for tx output types 2016-01-14 17:15:50 +01:00
Neil Booth 4eba1c1d8a Wizard: fixes for hardware wallet initialization 2016-01-14 07:40:46 +09:00
Neil Booth b120dd8849 Fix root derivation changes for BIP44_Wallets
Wallet keys use root_name
Also typo xub -> xpub
2016-01-11 11:39:56 +09:00