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
a0ef42d572
Fix typo causing change address reuse
2016-01-24 11:16:05 +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
ThomasV
cb098ace73
Merge branch 'master' of git://github.com/spesmilo/electrum
2016-01-21 16:35:44 +01:00
ThomasV
5a03caf051
kivy: update fiat amounts when changed
2016-01-21 16:34:58 +01: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
eebabdf209
Merge branch 'client_thread'
2016-01-19 21:01:46 +09:00
Neil Booth
7029411629
Threaded trezor dialog
...
Also fix up the dialog box a bit
2016-01-19 20:58:10 +09:00
ThomasV
8ed443b4c8
kivy: improve settings dialog
2016-01-19 12:37:40 +01: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
144f53be18
Use TaskThread to simplify ThreadedButton
...
And improve labels dialog
2016-01-17 16:13:32 +09:00
ThomasV
fe32d051d1
Merge pull request #1627 from fhirschmann/kraken_plugin
...
Add Kraken exchange to exchange_rate plugin
2016-01-16 12:53:59 +01:00
Neil Booth
98aef8418c
Construct base classes in right order
...
Fixed #1632
2016-01-16 10:19:48 +09:00
Pedro Alves
69555d5ad9
Added two of the biggest brazilian exchangers, "Bitcontoyou" and "MercadoBitcoin", to Exchange rates plugin.
2016-01-15 15:07:27 -02:00
ThomasV
bd3f3c3554
fix issue #1610
2016-01-15 11:24:19 +01: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
6178f5a28f
Fix some more regressions and trustedcoin plugin
2016-01-13 22:25:40 +09:00
Neil Booth
0219687d41
Some work on multisig.
2016-01-13 19:20:58 +09:00
Fabian Hirschmann
23312cbcd1
add Kraken exchange to exchange_rate plugin
2016-01-13 01:03:30 +01:00
Neil Booth
2ae3543dc4
Start work on persistent install wizard
2016-01-12 22:31:53 +09:00
Neil Booth
986e198e87
Ledger: move get_client() to the plugin
...
Mirrors the trezor code
2016-01-11 15:08:12 +09:00
Neil Booth
deccca1827
Ledger: handler belongs on wallet
...
Move closer to trezor sanity
2016-01-11 14:38:45 +09:00
Neil Booth
1ec3ad59cc
Ledger: get new wallet creation working again
...
This is enough to get new wallet creation working in the
absence of errors.
2016-01-11 14:23:35 +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
5e8d28a187
leger: remove unused imports
2016-01-10 17:43:02 +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
ThomasV
59343ec6ec
fix get_label in plot.py
2016-01-06 10:32:58 +01: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
5b8e096d57
Fix typo in prior except block
2016-01-05 21:55:47 +09:00
Neil Booth
d98f123f92
Fix make_unsigned_transaction for trustedcoin
...
Fixes #1600
2016-01-05 21:53:38 +09:00
ThomasV
c2accd64cf
trustedcoin: don't use assert in hooks, it crashes when using multiple windows. show message if wallet is restored from seed.
2016-01-04 15:16:36 +01:00
ThomasV
32483e64c6
fix syntax errors in trustedcoin plugin
2016-01-03 18:37:14 +01: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
Neil Booth
e4269f2684
Use relative imports.
2016-01-02 23:34:10 +09:00
Neil Booth
3f2ba5ec20
Fix QtHandler modality
2016-01-02 23:27:04 +09:00
Neil Booth
3422d855c9
A few small fixes
2016-01-02 23:06:53 +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
187b4dc9c1
Trezor: Need to set client in show_address
2016-01-02 11:07:39 +09:00
Neil Booth
1d07960290
Remove constructor method of plugins
...
Clean up wallet class loading.
2016-01-02 00:16:15 +09:00
Neil Booth
cf4ee487cd
Remove duplicate code
...
Cut-n-paste somehow into the same class
2016-01-01 22:57:21 +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
d63e754c67
Remove some unused hook infrastructure
2016-01-01 19:15:01 +09:00
Neil Booth
2f58d419dc
Get ledger wallet working, for restore at least
...
Fixes #1592
2016-01-01 18:38:43 +09:00
Neil Booth
d150a6d29c
Fix trustedcoin crash
2016-01-01 18:22:06 +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
93d05e8cfe
Have close_wallet hook take a wallet.
2015-12-31 10:31:49 +09:00
Neil Booth
b8f2d9dfd4
Hardware wallets don't have seeds
2015-12-31 09:56:05 +09:00
Neil Booth
f263f8b0fd
Convert legacy restored hardware wallets
...
Hardware wallets do not have a seed and hardware wallet
code should not have to worry about that case.
2015-12-31 09:51:27 +09:00
Neil Booth
19f527c717
Fix typo
2015-12-30 23:41:05 +09:00
Neil Booth
1d51335827
Remove need for self.wallet for h/w wallets
2015-12-30 17:03:26 +09:00
Neil Booth
84450b9189
Revert mistaken commit
2015-12-29 23:16:53 +09:00
Neil Booth
0f70d0b8a5
The constructor() concept doesn't exist
...
Did it ever?
2015-12-29 22:59:25 +09:00
Neil Booth
993ff30616
Eliminate dead code
2015-12-29 22:48:45 +09:00
Neil Booth
56497c1ae2
Don't use is_available() for HW wallets
...
is_available() is only used from generic code for non-hardware
wallets. Having a local function of the same name is confusing.
2015-12-29 22:46:22 +09:00
Neil Booth
1f3ddad0cd
Update as for trezor/qt.py
2015-12-28 23:35:34 +09:00
Neil Booth
638bdc23f2
Fix hardware test for watching only
2015-12-28 22:32:57 +09:00
Neil Booth
7811b974e9
Remove more duplicated code
2015-12-28 22:20:45 +09:00
Neil Booth
d843e41884
TrezorWallet: don't duplicate base class funcs
2015-12-28 22:11:11 +09:00
Neil Booth
791d3a2aa2
Partially restore prior
...
It was breaking hardware wallet creation
2015-12-28 21:58:09 +09:00
Neil Booth
9d9fcbde64
Proper treatment of restored hardware wallets
...
They have a different wallet type; they require no plugin nor
plugin libraries to use.
Remove pointless public key code that was implemented in the
base classes already.
Partial fix for #1592 . Unfortunately the plugin and library
are still required to actually restore the wallet, but for
no reason that isn't fixable.
2015-12-28 20:24:15 +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
e2628977b3
Update keepkey too
2015-12-27 18:25:04 +09:00
Neil Booth
11e1c62f28
Move hardware wallet to trezor/
...
On second thoughts it does go better there.
2015-12-27 18:23:46 +09:00
Neil Booth
669cf74789
Fix trezor restore
...
Broken by my recent changes
2015-12-27 15:38:52 +09:00
Neil Booth
7372e0e082
PEP8-ify most of plugins/trezor
2015-12-27 15:10:53 +09:00
Neil Booth
c02daa56b0
Finish merging keepkey / trezor implementations
2015-12-27 15:00:58 +09:00
Neil Booth
d69551f723
Fix two keepkey imports
2015-12-27 13:58:54 +09:00
Neil Booth
f3329988b2
More keepkey / trezor commonizing and cleanup
2015-12-27 13:56:50 +09:00
Neil Booth
33e57fe5a7
Share non-GUI plugin parts of KeepKey and Trezor
2015-12-26 19:42:57 +09:00
Neil Booth
42719cd0a9
Commonize GuiMixin for keepkey and trezor
2015-12-26 18:48:07 +09:00
Neil Booth
cb4947d705
Add the keepkey cancellation feature
...
to the generic implementation. Not currently used by the trezor
libraries.
2015-12-26 18:00:38 +09:00
Neil Booth
7b5f3884fa
Combine QTHandlers for KeepKey and Trezor
...
Again they do the same thing, so share the code
2015-12-26 17:40:12 +09:00
Neil Booth
39c1893a74
Initialize self.d for KeepKey
2015-12-26 16:28:55 +09:00
Neil Booth
3a1bb5b61a
Combine keepkey and trezor wallet code
...
Essentially identical so silly to have two copies.
Also fix a double-dialog during sign bug that caused one to not
disappear (on MacOSX at least).
2015-12-26 16:25:10 +09:00
Neil Booth
96c7f9e7cb
Partially revert prior
2015-12-26 12:23:35 +09:00
Neil Booth
c298860e11
A fix and cleanups for hardware wallets
2015-12-26 12:02:19 +09:00
Neil Booth
8f91af28a5
More cleanup of WaitingDialog
...
Simplify its interface
2015-12-26 11:18:32 +09:00
Anwesh
93bcd98763
Merge branch 'master' of https://github.com/spesmilo/electrum
2015-12-24 06:59:16 +05:30
Neil Booth
d70ad3df93
Better waiting dialog for trustedcoin
2015-12-23 22:21:29 +09:00
Neil Booth
ffd081ac21
Clean up WaitingDialog
...
Prevent GC so callers don't have to.
2015-12-23 22:10:11 +09:00
Neil Booth
64887f7a74
More message box cleanup
2015-12-23 20:42:30 +09:00
Neil Booth
37a49752eb
Fix greenaddress modality and centring issues
2015-12-23 20:13:17 +09:00
Neil Booth
37b474716b
Window modality fixes + improved password dialog
2015-12-23 17:32:08 +09:00
Neil Booth
15e9991e2a
Move message box logic to a mixin
2015-12-23 15:10:15 +09:00
Neil Booth
0a3a0f12cc
Make more dialogs window-modal
...
Also remove some unnecessary imports
2015-12-23 12:20:19 +09:00
Neil Booth
44a436e964
Make line_dialog, text_dialog window modal
...
Move new_wallet and get_wallet_folder from qt/__init__.py
to qt/main_window.py for correct centring and window modality.
2015-12-22 07:55:33 +09:00
Richard Ulrich
ae3b82297f
added missing import
2015-12-20 23:20:13 +01:00
Neil Booth
e1c0298fc2
Write the wallet less often
...
This should speed up synchronization / restoration of large wallets.
Wallets are written only when they switch to up_to_date state, or
when stop_threads() is called when closing the daemon, or when
a command line command finishes.
2015-12-20 15:47:46 +09:00
ThomasV
ba26996367
fix exchange_rate in kivy
2015-12-15 12:29:48 +01:00
Neil Booth
b1704ce911
Fix multiple trustedcoin bugs.
2015-12-13 18:13:24 +09:00
Anwesh
b23c22b29d
Updated Coinsecure Api
...
Added Unocoin Api
2015-12-10 15:51:19 +05:30
ThomasV
de964f4033
plugins: on_close method
2015-12-09 09:41:24 +01:00
ThomasV
9b2885e697
kivy: updates
2015-12-05 18:14:17 +01:00
Neil Booth
eb82a5e689
Cleanup labels/qt imports.
2015-12-05 21:52:19 +09:00
Neil Booth
a0b031c7df
Fix labels plugin wallet popping bug.
2015-12-05 21:47:17 +09:00
Neil
c3bd9226f2
Merge pull request #1570 from kanishkablack/master
...
Coinsecure exchange added
2015-12-05 10:57:50 +09:00
ThomasV
b700340ff9
kivy: use exchange rates in amount dialog
2015-12-03 22:43:43 +01:00
Anwesh
0ece74eea6
Coinsecure exchange added
2015-12-03 16:27:32 +05:30
ThomasV
74a9e2296c
separate Network and Plugins
2015-12-03 11:18:10 +01:00
ThomasV
6ec610c359
kivy updates
2015-12-02 12:11:28 +01:00
ThomasV
deefd74c37
labels sync for kivy
2015-12-01 17:29:24 +01:00
ThomasV
d8e65782e1
ledger: cmdline plugin
2015-12-01 12:06:21 +01:00
ThomasV
ddae2516c1
keepkey: cmdline plugin
2015-12-01 12:04:01 +01:00
ThomasV
c7b1721f58
fix cmdline trezor
2015-12-01 12:00:18 +01:00
ThomasV
d5f43610ed
fix imports in hardware wallets
2015-12-01 10:00:39 +01:00