Commit Graph

913 Commits

Author SHA1 Message Date
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
Neil 78d59d6aa5 Merge pull request #1660 from prusnak/master
fix spelling of TREZOR and SatoshiLabs
2016-01-30 10:16:47 +09:00
ThomasV a5fd6d2e6c kivy: select currency first, then source. show only sources with history data 2016-01-29 19:58:40 +01:00
ThomasV e3b37512ed exchange_rates plugin: move methods to qt version 2016-01-29 17:56:13 +01:00
Pavol Rusnak 6ce12ca1dc
fix spelling of TREZOR and SatoshiLabs 2016-01-29 14:58:51 +01:00
ThomasV 3b44504644 exchange rates: call on_quotes in set_currency 2016-01-29 12:50:38 +01:00
Neil Booth 412e2a8d2c Create is_pairable() function and use it.
Fixes #1653.
2016-01-29 19:26:05 +09:00
ThomasV 08e5aecee2 Revert "Plugins: remove init_qt hook; clean up"
This reverts commit e20369bf94.
2016-01-28 14:57:59 +01:00
ThomasV e0afb62660 Merge pull request #1649 from ulrichard/trezor_self_ckd_public
added a missing self statement for issue #1093
2016-01-27 22:35:19 +01:00
Richard Ulrich 7f2c379a6c added a missing self statement for issue #1093 2016-01-27 21:32:53 +01:00
Richard Ulrich 4c24ea002c added local client variable 2016-01-27 20:47:49 +01:00
ThomasV 78e9a84c2f fix ledger signing issue 2016-01-27 16:54:28 +01:00
ThomasV fe9ec6de06 reformatting 2016-01-26 13:51:47 +01:00
ThomasV a1eaf351a7 kivy: use EventDispatcher with exchange rates plugin 2016-01-25 19:30:16 +01:00
Neil Booth e20369bf94 Plugins: remove init_qt hook; clean up
Fixes #1644
2016-01-24 20:14:08 +09:00
Neil Booth dee402b961 Plugin wallets: better error when unloadable
Used to get:

jsonrpclib.jsonrpc.ProtocolError: (-32603, u'Server error:   File "src/electrum/lib/plugins.py", line 144, in wallet_plugin_loader | KeyError: \'trustedcoin\'')

Now get:

jsonrpclib.jsonrpc.ProtocolError: (-32603, u'Server error:   File "src/electrum/lib/plugins.py", line 81, in load_plugin | RuntimeError: cmdline implementation for trustedcoin plugin not found')
2016-01-24 19:39:59 +09: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 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
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
Neil Booth 0371a3dc32 Don't refresh whilst editing!
It's long been a pet peeve of mine that whilst editing a label,
something would cause Electrum to refresh the widget, such as
an incoming tx or a new block, and you'd lose your edits.
This changes MyTreeWidget so that, if editing, updates are
deferred until editing finishes.
2015-09-09 09:36:35 +09:00
ThomasV 37caf97ee9 show currency in column header rather than in each row 2015-09-08 12:10:27 +02:00
Neil Booth 650f9b215c Fix itbit 2015-09-07 07:38:30 +09:00
Neil Booth 154cdd1697 Improved error handling for exchange requests 2015-09-07 00:23:59 +09:00
Neil Booth c0b93c83ab Minor fixes to exchange_rate plugin
- some exchanges only server their API via http
- add/remove columns as the history check box is selected/deselected
2015-09-07 00:01:26 +09:00
Neil Booth 0db2dbf3d7 Extra headers only if used. 2015-09-06 23:20:05 +09:00
Neil Booth 93b99ebded Handy new class PrintError
Saves adding "def print_error" to endless classes.
2015-09-06 21:40:00 +09:00
Neil Booth 9b50d1e7bc Fix history headers on plugin load / unload 2015-09-06 21:14:36 +09:00
Neil Booth 26f2c757d3 Implement correct currency precision 2015-09-06 18:06:56 +09:00
Neil Booth ce3c38db38 Remove FIXME and dead variable 2015-09-06 14:18:25 +09:00
Neil Booth 1d35954541 Fix status bar FX balance display 2015-09-06 14:16:54 +09:00
Neil Booth 34ce6d1821 Updates for exchange_rate plugin
Have AmountEdit return an int if is_int, otherwise a Decimal
Set the tray tooltip unconditionally.
More verbose logging for exchage_rate plugin.
Get rate_float from Coindesk as rate can have commas.
Plugin tracks windows itself, and doesn't create its own
members in the window objects.
Clean up the edit handling.
2015-09-06 13:42:40 +09:00
Neil Booth 95d3f6da1f A couple of fixes
- Give hook correct name
- Use spot if no data and today - tx_date <= 2 because of timezone
  differences.
2015-09-06 00:54:05 +09:00
Neil Booth 76465aa6bd ExchangeBase is not an exchange 2015-09-05 23:05:34 +09:00
Neil Booth 9e0e54157e More improvements to exchange_rate plugin
Everything should now update correctly on incoming data from
the exchange server.
2015-09-05 22:47:01 +09:00
Neil Booth c290455b94 More signal work and bugfixes
Replace self.fiat_unit() mostly with self.ccy, except
for cases where a dynamic post-hoc query is needed.
Block signals to prevent unwanted currency choice change.
Remove dead code.
2015-09-05 22:16:24 +09:00
Neil Booth b5f986ee56 Torwards sane signalling for exchange_rate plugin 2015-09-05 21:47:35 +09:00
Neil Booth 2a9bc559b2 Remove unwanted hook. 2015-09-05 17:33:57 +09:00
Neil Booth 915ee94cdd Re-add Fiat Balance column 2015-09-05 17:29:57 +09:00
Neil Booth 1171a25815 Genericize plugin handling of thread jobs
Move it to the Plugins class so all plugins get it for
free.
2015-09-05 17:21:28 +09:00
Neil Booth 3d2ab45b04 Merge Exchanger class into the Plugin class. 2015-09-05 17:01:26 +09:00
ThomasV b036e8597a fix typo 2015-09-05 09:37:45 +02:00
ThomasV 1f215ae673 cleanup 2015-09-05 09:35:09 +02:00
ThomasV 815adb3983 Merge branch 'master' of git://github.com/spesmilo/electrum
Conflicts:
	plugins/exchange_rate.py
2015-09-05 09:16:11 +02:00
ThomasV 015e274dab rework exchange_rate hooks 2015-09-05 09:11:48 +02:00
Neil Booth 2df8881824 Remove duplication of parent column names.
We no longer assume how many columns the history widget
has or their names.

Add a fiat balance column.

Remove extra columns when shutting the plugin.
2015-09-05 16:04:58 +09:00
Neil Booth f4a1b0adce Fix Winkdex. 2015-09-05 15:22:04 +09:00
Neil Booth 8cccf1eec5 Don't resize extra column to contents
Something in QT makes this very slow for this column after
editing a label
2015-09-05 15:02:33 +09:00
Neil Booth 9da22000b6 More improvements to exchange_rate plugin
- better historical rate handling, including caching
- grabbing and scanning wallet transactions no longer needed
- fix autosize of fiat column
- more efficient
2015-09-05 14:05:37 +09:00
Neil Booth 8d046c7919 Fix some bugs in last push 2015-09-05 01:24:16 +09:00
Neil Booth 08f1e56cef Clean up more of the exchange_rate.py mess 2015-09-05 00:58:57 +09:00
Neil Booth 19e128adf0 Simply some of exchange_rate plugin 2015-09-04 20:49:58 +09:00
Neil Booth bbd50ba83c Remove all self.window references from plugins 2015-09-04 18:23:18 +09:00
Neil Booth 0792792513 Remove init_qt hook for virtkeyboard plugin 2015-09-04 17:49:20 +09:00
Neil Booth 6372a3f6ce Plot plugin for multiple windows. 2015-09-04 17:43:07 +09:00
Neil Booth 89fbda30e0 Labels plugin now working for multiple windows 2015-09-04 17:38:14 +09:00
Neil Booth efc95307e2 Greenaddress plugin works with multiple windows 2015-09-04 15:26:33 +09:00
Neil Booth 8e7bcfeeb9 Update email plugin for multiple windows. 2015-09-04 13:29:33 +09:00
Neil Booth 73de35aa56 Remove unused var 2015-09-04 12:46:33 +09:00
Neil Booth 2aa21ece79 Fix cosigner_pool plugin for multiple windows 2015-09-04 12:36:25 +09:00
Neil Booth 77a029082a Improved new_window handling.
Remove new_window hook.
Plugin informed of all windows via events when first loaded.
init_qt no longer needed for exchange_rate plugin.
2015-09-04 10:20:52 +09:00
Neil Booth 8ce2a95695 Have plugins object track the window set
No need for self.gui nor init_qt hook any more.  This makes
plugins more independent of window and gui types.
2015-09-04 09:26:35 +09:00
Neil Booth ec3b7ba5ee Pass plugins object to plugin constructor 2015-09-04 09:07:18 +09:00
Neil Booth ebddbcb805 Fix bug. 2015-09-03 17:17:46 +09:00
Neil Booth f565d79c11 Remove debug print 2015-09-03 16:29:55 +09:00
Neil Booth 613403f418 Exchange rate plugin fixes
Set the new column width even though autosizing
Register all wallets in mid-session loads
Improved historical rate fetching
2015-09-03 16:26:52 +09:00
ThomasV a36b1d701c this is unneeded, new_windos already is a hook 2015-09-03 08:22:12 +02:00
ThomasV e80870a9b0 fix syntax error 2015-09-03 08:15:39 +02:00
ThomasV 26ab5519b2 remove unwanted for loop in plugin hook 2015-09-03 08:14:42 +02:00
Neil Booth 2c67de8f64 Fix a couple of bugs. 2015-09-03 10:42:42 +09:00
Neil Booth f2fb856f1c Exchange rate plugin fixes for multiple windows
This should be enough to keep everything working that was working
before.  The plugin itself needs a lot more work to fix existing
bugs and be sane.
2015-09-02 20:40:55 +09:00
Neil Booth 5be16ad5ca Clean up exchange handling in FX plugin 2015-09-02 18:53:23 +09:00
ThomasV c3fb7fdb1d Merge pull request #1436 from keepkey/master
fixed attempt to access account derivation before it is created
2015-09-01 18:10:41 +02:00
Darin Stanchfield c918ec2cdf fixed attempt to access account derivation before it is created 2015-09-01 08:55:39 -07:00