Commit Graph

2721 Commits

Author SHA1 Message Date
ThomasV
6ccb1dd207 rm unneeded files 2016-02-06 16:35:21 +01: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
317e6cea32 Multisig: revert part of "reformatting"
Broken by fe9ec6de06
2016-02-06 18:02:21 +09:00
Neil Booth
828320c1af trezor: provide a default interface number. 2016-02-06 14:37:38 +09:00
ThomasV
fab001833f rm print debug statement 2016-02-03 11:02:17 +01:00
ThomasV
8b68a742d1 follow up to 2a507b91c1 2016-02-03 11:01:36 +01:00
ThomasV
2a507b91c1 fix #1666 2016-02-03 10:29:31 +01:00
ThomasV
3ee61c4c6e define wallet.dummy_address method 2016-02-02 19:56:34 +01:00
ThomasV
eb36884c66 move estimate_fee back to wallet 2016-02-02 12:26:28 +01:00
ThomasV
0b54ed0243 follow up 0d52911561 2016-02-02 07:18:18 +01:00
ThomasV
ddc1869551 disambiguate types returned by get_fd_or_server 2016-02-01 13:10:01 +01:00
ThomasV
690c862923 move static methods away from daemon class; restore initial logic 2016-02-01 10:20:22 +01:00
ThomasV
3b00f62d46 remove another unnecessary static method 2016-02-01 09:25:57 +01:00
ThomasV
1c83c3e060 do not declare pointless static methods 2016-02-01 09:12:53 +01:00
ThomasV
56c7d4139e fix: Daemon.get_server 2016-02-01 09:02:57 +01: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
Neil Booth
abaf1bc6dc daemon: remove two unneeded member vars 2016-01-31 18:03:50 +09:00
Neil Booth
a90c935758 Remove unreachable code 2016-01-31 14:53:25 +09:00
Neil Booth
788ab520ea Remove dead code from prior 2016-01-31 14:48:57 +09:00
Neil Booth
e6020975a5 daemon: prevent races by opening with O_EXCL
Rework the way the daemon and server are created.  If we might
want to create a daemon, try to grab the lockfile with O_EXCL.
If we got it, create a server and daemon, otherwise try and
connect to the server.  If connecting to the server fails (including
after sleeping a little in case the server was recently created),
remove the lockfile and start over.

Other fix: shut down network gracefully on daemon exit.

Fixes #1638
2016-01-31 14:46:03 +09:00
Neil Booth
f91f03b3d4 daemon: fix long-standing bug in status request
Gracefully handle a status request when self.network is None
2016-01-31 11:50:44 +09:00
Neil Booth
ec24087b5a Move some logic from electrum to daemon
Ultimate goal is to try and stop the daemon race at startup.
Need to isolate logic of checking for server and creating one.
2016-01-31 11:43:11 +09:00
Neil Booth
f6f7113978 daemon: create network inside constructor 2016-01-31 10:58:27 +09:00
ThomasV
ed401761f1 sorry, confused
This reverts commit 5e6a55edd5.
2016-01-30 11:24:53 +01:00
ThomasV
5e6a55edd5 Revert "Revert "Daemon network cleanup""
This reverts commit 2c7b10a776.
2016-01-30 11:13:11 +01:00
ThomasV
2c7b10a776 Revert "Daemon network cleanup"
This reverts commit 0a1b3eac9c.
2016-01-29 17:37:56 +01:00
Neil Booth
0a1b3eac9c Daemon network cleanup
All Daemon creation was preceded by Network creation, based on
config, and passing it to Daemon.
As config is passed to Daemon, it might as well create its own
network and the code is in one place.
2016-01-29 22:14:50 +09:00
Neil Booth
412e2a8d2c Create is_pairable() function and use it.
Fixes #1653.
2016-01-29 19:26:05 +09:00
ThomasV
a04b510395 fix: don't chmod config file on android 2016-01-28 14:43:12 +01:00
Neil Booth
bf942b5259 Trezor: another place needs client handler set 2016-01-27 21:27:51 +09:00
ThomasV
963dcf0c6b rm test_ripemd 2016-01-26 15:48:34 +01:00
ThomasV
56c4a8746f remove python implementation of ripemd160 2016-01-26 15:18:28 +01:00
ThomasV
fe9ec6de06 reformatting 2016-01-26 13:51:47 +01:00
ThomasV
9b09c55356 dynamic fees: use hardcoded value as upper bound 2016-01-25 16:46:50 +01:00
Neil Booth
268dcbcac5 Trezor: multi-device window parenting fix 2016-01-24 23:18:41 +09:00
Neil Booth
93e0c72ce2 Plugins: start thread at end of constructor
Don't add jobs twice
2016-01-24 19:59:58 +09:00
Neil Booth
80e15577b5 Update comment 2016-01-24 19:45:13 +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
97bc1b2788 Don't split small change 2016-01-23 22:10:25 +09:00
Neil Booth
efa1efedca Hardware wallets: limit change outputs to 1 2016-01-23 22:05:08 +09:00
Neil Booth
9729f5b6d3 get_account_addresses: None->all user-visible a/cs
Otherwise we can end up sweeping to a non-visible address.
2016-01-23 18:07:02 +09:00
Neil Booth
83a531b3e4 Revert "Sweep keys: don't default to hidden address"
This reverts commit 605cc47a3d.
2016-01-23 17:32:43 +09:00
Neil Booth
605cc47a3d Sweep keys: don't default to hidden address
The issue is electrum uses None as the current account
to mean the default account.  This just gave rise to
all addresses being listed including in hidden accounts.

Really "None" as used in main_window.py and history_widget.py
means "a single unspecified account" not "all accounts".

So implement the idea of a default account, and don't let
a hidden account be the default one.
2016-01-23 17:17:10 +09:00
Neil Booth
618026f96c Installwizard: tweak hardware wallet handling 2016-01-22 22:16:58 +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
ThomasV
858b9c5655 kivy: improve settings dialog 2016-01-21 12:12:55 +01:00
Neil Booth
b878c010da Minikey: minimum length 20
On second thoughts there seems little reason to accept text
of length <= 20 for minikeys.
2016-01-21 08:11:50 +09:00
Neil Booth
f7859c041e Support Casascius minikeys 2016-01-19 22:00:16 +09:00
Neil Booth
eebabdf209 Merge branch 'client_thread' 2016-01-19 21:01:46 +09:00
ThomasV
4122c108fc plugins: enable & disable methods 2016-01-19 10:03:05 +01: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
ThomasV
d200b236ae replace tx.input, tx.output by methods, so that deserialize calls are encapsulated 2016-01-17 15:04:11 +01:00
ThomasV
321ab10742 detect RBF transactions 2016-01-17 14:28:17 +01:00
ThomasV
bd94bb31db Merge branch 'master' of git://github.com/spesmilo/electrum 2016-01-16 15:05:59 +01:00
ThomasV
4f0631d78d don't use assert is is_xprv (weird kivy bug) 2016-01-16 15:05:29 +01:00
Neil Booth
371f8d6dc3 network: gracefully handle EINTR in select syscall 2016-01-16 21:14:14 +09:00
Neil Booth
f1bb3e846d Remove unused import 2016-01-16 19:03:06 +09:00
Neil Booth
15707b5590 Coin chooser: use deterministic randomness 2016-01-16 18:55:50 +09:00
ThomasV
abdb7f8470 fix tests 2016-01-15 18:14:06 +01:00
ThomasV
3b10bd8307 follow up eb085c2e23 2016-01-15 09:10:04 +01:00
ThomasV
eb085c2e23 Clarify preferences dialog:
* rename 'Oldest First' policy as Priority
 * show multiple change and fee multiplier on separate lines
2016-01-15 09:02:03 +01:00
Neil Booth
6bf91b8ae2 Update comments and tooltips. 2016-01-15 15:25:01 +09:00
Neil Booth
53fa973898 Move change_amounts() to base class.
Update tooltip of the preference.
2016-01-15 15:21:25 +09:00
Neil Booth
641f23229d Add multiple change output preference
Limit to 3 if enabled.
2016-01-15 14:54:26 +09:00
ThomasV
0d52911561 define constants for tx output types 2016-01-14 17:15:50 +01:00
ThomasV
da8fce1914 if available, use relayfee from server instead of hard coded value 2016-01-14 16:06:22 +01:00
ThomasV
0464a1a6b0 remove gtk gui 2016-01-13 15:29:04 +01:00
ThomasV
388ed01d0f fix start_threads in wizard 2016-01-13 15:02:58 +01:00
Neil Booth
889c4cb7fb Multisig: create and restore work
Override run in derived class to catch UserCancelled again
Restore self.finished() hook.
Fix a typo.
2016-01-13 22:38:32 +09:00
ThomasV
2f6e2ebcd2 test if wizard is needed in daemon 2016-01-13 14:30:09 +01:00
Neil Booth
9390a97e9e Bring the network dialog into the new framework 2016-01-13 21:11:06 +09:00
Neil Booth
4c9b224d4c Put open_wallet back as class method. 2016-01-13 20:56:44 +09:00
ThomasV
ef1f649d58 fix missing parameter 2016-01-13 11:31:23 +01:00
ThomasV
632905dfbe instantiate wizard only if needed 2016-01-13 11:27:17 +01:00
ThomasV
58fe42cea2 revert commit 4ba4611599 for relicencing 2016-01-12 09:35:45 +01: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
Neil Booth
384b8cd5f2 Install wizard: simplify create_or_restore
- Use ChoiceLayout to organize the layouts
- Do wallet filtering in wizard.py as it's GUI independent.
- Only pass the descriptions.
2016-01-10 23:00:59 +09:00
ThomasV
c47e3499ce rename wallet methods 2016-01-10 12:56:15 +01:00
Neil Booth
450ab76f78 Fix install wizard
Used to pass the wallet as an argument to wallet methods.
2016-01-10 20:44:20 +09:00
Neil Booth
cda92cd12c Move cosigner methods to BIP32_RD_Wallet 2016-01-10 20:37:22 +09:00
Neil Booth
637164d335 Introduce BIP32_RD_Wallet
Represents a BIP_32 wallet with a root derivation.
This permits us to see address derivation for NewWallet types
in the QT Gui.
2016-01-10 20:20:04 +09: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
4743f033b4 Fix the backwards-compat 'next_account2' code 2016-01-10 19:26:17 +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
81d641a13f Show BIP32 path for BIP32_HD_Wallet classes
from right-click Show Public Keys menu.

Fixes #1598
2016-01-10 14:53:00 +09:00
ThomasV
9ad4d63ad1 wizard: small tweaks, fix show_restore 2016-01-09 10:35:10 +01: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
ThomasV
6acbe4226e don't open wizard window if no action was required 2016-01-08 13:44:59 +01:00
ThomasV
d867fcc266 update create_main_account in tests 2016-01-07 01:02:44 +01:00
ThomasV
5915b9b7e1 restore action-driven wizard logic 2016-01-07 00:55:23 +01:00
ThomasV
90a2fc1379 Revert "Fix MultiSig wallet creation."
This reverts commit 21038843ea.
2016-01-07 00:46:34 +01: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