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
ThomasV
c47e3499ce
rename wallet methods
2016-01-10 12:56:15 +01: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
5baa5feb11
Put restore_wallet_class back in the derived classes
2016-01-10 18:41:20 +09:00
Neil Booth
9946feb352
Have BTChipWallet derive from BIP44_Wallet
...
Narrowing the gap with the Trezor code a bit
2016-01-10 17:38:39 +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
9cf0a9720f
QT handler improvements
...
Now we have the top_level_window() function, stop using the window
stack.
2016-01-10 13:24:56 +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
3e8598c245
Move trezor-specific install wizard code to plugin
2016-01-09 15:21:38 +09:00
Neil Booth
54cdd551fe
Avoid unnecessary exception on missing libs
2016-01-09 00:27:22 +09:00
Neil Booth
9f0d2f4d21
Replace two uses of dialog with self
2016-01-09 00:24:58 +09:00
Neil Booth
a3bced210d
Treozr: improved settings screen
...
Nicer layout. Split into three tabs.
2016-01-08 21:14:34 +09:00
ThomasV
b21ea13940
trezor: fix create account
2016-01-07 01:17:35 +01:00
ThomasV
5915b9b7e1
restore action-driven wizard logic
2016-01-07 00:55:23 +01:00
Neil Booth
0117109a2d
Trezor: show supported coins
...
Also fix dialog layout issue on MacOSX
2016-01-06 23:25:15 +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
2ad009bb9d
Add some informative comments
2016-01-03 21:03:11 +09:00
Neil Booth
6516b28840
TrezorCompatiblePlugin: make it a thread job
...
We shouldn't be using QT gui threads
2016-01-03 20:46:47 +09:00
Neil Booth
43fd684d97
Trezor: add session timeout to preferences
...
Fixes #803
2016-01-03 17:25:47 +09:00
Neil Booth
87363c8301
Trezor: Implement resetting a device
2016-01-03 13:34:03 +09:00
Neil Booth
e6afaf173c
Hardware wallets can create accounts
2016-01-03 11:10:31 +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
f3e6bf0280
Passphrase-related fixes
...
Move normalize code to one place on the wallet
Passphrases don't have password strength meter
2016-01-03 09:03:07 +09:00
Neil Booth
4fe01cb8d3
Change scan_devices logic
...
Fixes title bar updates about watching only
2016-01-03 00:02:20 +09:00