Commit Graph

667 Commits

Author SHA1 Message Date
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
Neil Booth 90dee43998 Move estimated_fee to Transaction class
It's not a function of the wallet but of the transaction
so it more naturally belongs there.
2015-11-28 21:28:54 +09:00
ThomasV 0c20e737a9 fix missing import 2015-11-28 00:22:06 +01:00
ThomasV 9782734f4c plugins: trustedcoin fixes 2015-11-26 14:15:54 +01:00
Neil Booth cf23127ac1 Preserve alphabetical ordering...
And 2 is the default anyway as for most western currencies.
2015-11-25 00:16:06 +09:00
ThomasV c6780cce84 add Bitso exchange rate 2015-11-24 10:35:25 +01:00
ThomasV ba2c737a21 finish separation between plugins and GUIs 2015-11-24 09:36:42 +01:00
ThomasV 2c0489c809 plugins: separate GUIs using child classes 2015-11-23 14:15:25 +01:00
ThomasV 175fdbcac6 Disentangle plugins and window management; use Qt signals 2015-11-23 09:05:34 +01:00
Neil Booth e9384f15ed Plugins manage their own wallet tracking 2015-11-14 15:58:10 +09:00
Neil Booth d1cd6d5645 Labels plugin: drop wallet on window close
Will help GC
2015-11-12 11:29:53 +09:00
ThomasV c86ef5e8b0 hardware wallets: fix sign_transaction in resstored wallets 2015-11-04 19:13:24 +01:00
Neil Booth 7d0d2f2097 Work around Bitcoin Venezuela serving NULLs.
Fixes #1510.
2015-10-24 23:23:43 +09:00
ThomasV 7a060e86b2 minor fix FX plugin 2015-10-17 12:46:05 +02:00
ThomasV 302ce7c15b simplify exchange_rate hooks 2015-10-17 06:26:37 +02:00
Tim Bellefleur e81814416a Add historical data for BitcoinAverage (via CSV) 2015-10-15 14:56:23 -07:00
Tim Bellefleur ad198c372b Add BitStamp to exchange rate options. 2015-10-15 13:10:15 -07:00
Tim Bellefleur 80bf9952e8 Fix method call to BitcoinAverage 2015-10-15 13:10:00 -07:00
ThomasV a5e94ef0e8 kivy: use plugins 2015-10-13 12:12:49 +02:00
ThomasV 87168282b9 check wallet type in installwizard_load_wallet hook 2015-10-01 12:37:46 +02:00
Neil Booth 6bbde8389d Pass window not window.app 2015-09-26 17:24:57 +09:00
Neil Booth a4a2eb9b5c Handle None satoshis properly 2015-09-26 17:19:14 +09:00
Neil Booth cf44e65ba8 Rework resizing of send and receive tabs
Should fix #1458
They now function in essentially the same way.
2015-09-26 12:14:35 +09:00
ThomasV 3f145864ef fix syntax error in exchange rate plugin 2015-09-13 21:12:52 +02:00
Neil Booth 22788e9ab0 Use spot rate for unconfirmed TXs 2015-09-12 19:18:49 +09:00
ThomasV 483cf2286f format_amount_and_units: general method to display amounts and fiat values. fixes #1078 2015-09-11 16:46:37 +02:00
Neil Booth f710d872c7 When using labels plugin write wallet once
Poor hook coupling would cause the wallet to be written
twice unnecessarily when using the labels plugin and changing
a label
2015-09-10 22:29:25 +09:00
Neil Booth 886192aba7 Make trustedcoin.py multi-window compatible 2015-09-09 17:27:58 +09:00