Commit Graph

1035 Commits

Author SHA1 Message Date
ThomasV
98b12715a9 remove while loop from wallet.synchronize; we are already in a job 2016-10-17 06:58:01 +02:00
ThomasV
5e92e09044 fix pubkey ordering in multisig wallets. fix #1975 2016-10-16 19:17:32 +02:00
ThomasV
4cc76c8a64 bump_fee: fix error message 2016-10-15 10:57:18 +02:00
ThomasV
bab15a245b simplification (get rid of get_mnemonic) 2016-10-14 12:09:43 +02:00
ThomasV
e64f630433 bump_fee: add_input_info is needed 2016-10-14 05:38:43 +02:00
ThomasV
f225a26952 minor fix: varname 2016-10-12 12:07:32 +02:00
ThomasV
f0611c4569 fix pubkey indexing in imported wallets 2016-10-12 12:03:56 +02:00
ThomasV
1e518e7b64 add number of confirmations in payment request status. fixes #1757 2016-10-10 19:13:34 +02:00
ThomasV
5d44474aeb bound number of tx inputs in sweep 2016-10-08 11:40:03 +02:00
ThomasV
1e55f4fda0 fix fee computation in sweep 2016-10-08 11:17:53 +02:00
Serge Victor
55d392c274 Spread payment requests to subdirs
Currently Electrum stores all payment requests in main requests
directory. It's not going to be efficient when we have thousands of
thousands of payment requests. This patch spreads that files across
two level of subdirectories.
2016-10-01 05:40:40 +00:00
ThomasV
0fd813f229 fix #1938 2016-09-29 11:50:32 +02:00
ThomasV
fa487ae0ca fix: get_public_keys method of p2pk wallets 2016-09-29 09:47:45 +02:00
ThomasV
68ed60ca87 fix: check_password method of Multisig wallets 2016-09-28 17:54:35 +02:00
Serge Victor
07280730d4 Intoducing websocket_announce configuration
Currently electrum daemon runs websocket server on a configured host and
port and sends the same information to merchant payments. There is
likely that those two may be different, when websocket traffic is being
reverse proxied and sent over via different hosts.

This patch introduces two fully optional parameters,
websocket_server_announce and websocket_port_announce, which when
set, are sent to the merchant payments instead of websocket_server and
websocket_port values.
2016-09-22 18:57:23 +00:00
ThomasV
7982cadd22 follow-up pevious commit 2016-09-22 13:38:59 +02:00
ThomasV
0d671e67c5 sign_transaction: do not stop if a keystore raises an exception 2016-09-22 10:57:28 +02:00
ThomasV
08543584c5 fix cold storage signing for imported wallets 2016-09-21 16:23:24 +02:00
Serge Victor
f2820944f1 Adding possibility of websockets configuration
Up to now, websockets configuration was possible for the daemon only,
   this patch passes that information to the client via json file
   produced with the payment request.
2016-09-21 10:54:09 +00:00
ThomasV
7a47d2341e fix bug in trustedcoin constructor 2016-09-02 10:28:52 +02:00
ThomasV
b1b15f510c Fix can_sign and cold storage 2016-09-01 19:45:01 +02:00
ThomasV
abeb781879 fix #1916 2016-09-01 09:23:05 +02:00
ThomasV
e38abb95d7 minor fix tx status 2016-08-31 18:45:58 +02:00
ThomasV
16ed48d52d Format upgrade: increment seed_version to make sure that old versions of Electrum refuse to open new wallet files. 2016-08-31 15:04:57 +02:00
ThomasV
ab53ee27f1 fix bug with change addresses 2016-08-27 22:24:41 +02:00
ThomasV
86e23d9989 save wallet label in keystore, to facilitate pairing 2016-08-26 11:45:12 +02:00
ThomasV
80675121ce allow several hardware cosigners in the same wallet 2016-08-22 12:50:24 +02:00
ThomasV
afe39330dc update wallet format again, for keystore 2016-08-21 11:58:15 +02:00
ThomasV
8423f8394f dynfees: set default 2016-08-20 09:16:03 +02:00
ThomasV
24a9ff3fef simplify wallet types 2016-08-19 17:35:58 +02:00
ThomasV
f6e393d7b6 fix: import addresses and private keys 2016-08-17 10:39:30 +02:00
ThomasV
a088940496 add Wallet.can_import 2016-08-16 12:11:39 +02:00
ThomasV
b87c5d12fa - fix sign/verify messages
- fix hardware wallet tx_outputs
2016-08-14 13:03:52 +02:00
ThomasV
b0afdf4614 fix command line: create, restore, importprivkey 2016-08-12 11:56:27 +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
ThomasV
f061fe047d add lock to storage.write 2016-07-07 06:54:57 +02:00
ThomasV
824f86475e add get_master_public_key to all wallets 2016-07-01 17:46:11 +02:00
ThomasV
59825c913c follow up c6a46df158 2016-07-01 17:32:13 +02:00
ThomasV
c6a46df158 fix issue #1853 2016-07-01 16:19:26 +02:00
ThomasV
342d6633a6 wizard: add capability to restore multisig 2016-07-01 11:44:26 +02:00
ThomasV
9182392b55 kivy: separate base wizard class from gui 2016-06-18 16:32:20 +02:00
ThomasV
9896718f09 get_tx_info: fix types 2016-06-09 18:10:13 +02:00
ThomasV
8886e5098a fix get_tx_info 2016-06-08 14:15:17 +02:00
ThomasV
5af7139598 kivy: handle 'verified' event 2016-06-08 12:55:42 +02:00
ThomasV
7f7aa97e2e tx dialog: fix confirmation time estimate 2016-06-08 11:22:58 +02:00
ThomasV
b94a7920af factorize code used for tx dialogs 2016-06-08 11:06:51 +02:00
ThomasV
a07a3f748e Qt GUI: let users type tx output in script language 2016-06-07 09:57:24 +02:00
ThomasV
9da2076328 fix: relayfee is per kb 2016-06-04 09:33:26 +02:00
ThomasV
0843aaafb5 gat_wallet_delta: reverse sign of returned fee 2016-06-02 11:30:39 +02:00
ThomasV
79fbb5edce get_tx_delta: do not return fee if tx is not mine 2016-06-02 11:15:43 +02:00
ThomasV
403fbdd39e rename is_send -> is_mine 2016-06-02 10:40:16 +02:00
ThomasV
016d733c0f low_fee threshold 2016-06-01 05:41:08 +02:00
ThomasV
8e0d1f1e44 fix low_fee value 2016-06-01 05:39:29 +02:00
ThomasV
2cf4795250 dynamic fees: define fee levels using expected confirmation times 2016-05-31 20:26:09 +02:00
ThomasV
599906eef6 show warning icon if unconfirmed tx has low fee. fixes 1798 2016-05-30 18:26:58 +02:00
ThomasV
076ecb2680 move get_status to synchronizer 2016-05-30 16:11:49 +02:00
ThomasV
59d3910882 fix utxo_can_sign 2016-05-29 20:36:52 +02:00
ThomasV
1a46a795a5 detect non-final transactions, and transactions with unconfirmed inputs 2016-05-29 19:53:04 +02:00
ThomasV
f01f931e83 add extra checkbox for RBF 2016-05-23 17:34:33 +02:00
ThomasV
18a2498b76 show UTXOs in address tab 2016-05-23 11:52:38 +02:00
ThomasV
3314b3acc7 Use dynamic fees by default, show fee slider in send tab, and discretize fee levels. 2016-05-20 15:30:39 +02:00
ThomasV
d83058e2e8 raise the maximum imposed on dynamic fees 2016-05-20 12:25:36 +02:00
ThomasV
bc1bef60a0 support Replace-By-Fee in GUI 2016-05-20 10:38:48 +02:00
ThomasV
bca0f31fca coinchooser methods should not belong in wallet class 2016-03-10 16:37:45 +01:00
ThomasV
a57274930b kivy's python-for-android can import stat 2016-03-10 10:39:47 +01:00
ThomasV
f60c949911 storage: do not raise error if file is empty 2016-03-10 10:17:03 +01:00
ThomasV
94664566e7 kivy: fix watching-only issue 2016-03-05 04:34:13 +01:00
ThomasV
d58ec9a570 kivy: support old-type seed phrases in wizard 2016-03-01 20:23:30 +01:00
ThomasV
96f144eb03 make sure the broadcast tx thread always times out 2016-02-25 08:55:06 +01:00
ThomasV
305843999e Relicensing 2016-02-24 10:20:30 +01:00
ThomasV
f97fdf3ba8 labels plugin: use get_fingerprint 2016-02-22 15:44:31 +01:00
ThomasV
a7d3175799 replace semantically relevant instances of 'assert' with exceptions 2016-02-15 09:33:38 +01:00
ThomasV
a1ef7c4bb6 get_sorted_request: sort by address index, not by timestamp 2016-02-15 08:23:34 +01:00
ThomasV
b7c4492d3b get_request_status: return PR_UNKNOWN if request is unknown 2016-02-15 04:59:20 +01:00
Neil Booth
b54ba556bc Wallet: encapsulate wallet_types
Previously plugins would append lines to it and wizard.py would
hack into it too.
2016-02-08 22:32:49 +09:00
Neil Booth
317e6cea32 Multisig: revert part of "reformatting"
Broken by fe9ec6de06
2016-02-06 18:02:21 +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
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
a0ef42d572 Fix typo causing change address reuse 2016-01-24 11:16:05 +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
ThomasV
d200b236ae replace tx.input, tx.output by methods, so that deserialize calls are encapsulated 2016-01-17 15:04:11 +01:00
ThomasV
4f0631d78d don't use assert is is_xprv (weird kivy bug) 2016-01-16 15:05:29 +01:00
Neil Booth
15707b5590 Coin chooser: use deterministic randomness 2016-01-16 18:55:50 +09:00
ThomasV
3b10bd8307 follow up eb085c2e23 2016-01-15 09:10:04 +01: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
58fe42cea2 revert commit 4ba4611599 for relicencing 2016-01-12 09:35:45 +01: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
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
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
ThomasV
bdb4782b36 Revert "Install wizard multisig improvement"
This reverts commit 4e7c6e5d16.
That commit breaks the separation between make_seed and add_cosigners
2016-01-06 12:01:25 +01:00
Neil Booth
4e7c6e5d16 Install wizard multisig improvement
Preserves independence of wizard.py from wallet type;
the dependence is expressed entirely through actions

Fixes #1611
2016-01-06 19:31:12 +09:00
Neil Booth
21038843ea Fix MultiSig wallet creation.
Fixes #1603
2016-01-05 21:22:43 +09:00
ThomasV
bd309cff49 restore default labels 2016-01-04 15:40:57 +01: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
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
dbf154d5f2 Finish moving the multisig regex to one place 2016-01-02 00:39:44 +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
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
e6dbe621c6 Make class methods static on Wallet 2015-12-31 16:05: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
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
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
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
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
c298860e11 A fix and cleanups for hardware wallets 2015-12-26 12:02:19 +09:00
Neil Booth
a58c19d7c0 Clean up and fix account adding
As per BIP44, 20 addresses are checked for transactions, not just the
first one.
Show the last account only if used or named.
If all accounts are used, prompt for password to create new one.

Fixes #1128
2015-12-25 23:34:04 +09:00
Neil Booth
72fdf0cd21 Better error when opening a non-wallet file
Also window modality fixes for __init__.py
2015-12-23 13:54:43 +09: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
Neil Booth
0a3d74de8f Avoid index-out-of-range
Also add sanity assertion
2015-12-20 12:19:44 +09:00
ThomasV
9d3162b1a1 simplify get_label 2015-12-15 12:52:30 +01:00
Neil Booth
06eb3142c4 Oldest First 2015-12-12 19:01:14 +09:00
Neil Booth
52fc739052 Update default chooser name too. 2015-12-12 18:39:03 +09:00
Neil Booth
75b3ecee49 Add coin chooser to try and minimize loss of privacy. 2015-12-09 22:20:23 +09:00
ThomasV
4682d95a76 merge jsonrpc gui and daemon 2015-11-30 10:09:54 +01:00
Neil Booth
9a6dcf7b1e Use bucketing to choose coins
Bucketing is generalization of coin chooser logic that makes it easy
to implement other algorithms.

- Put core coin chooser functionality in base class.
- Specialize derived class to implement classic electrum algorithm of
  oldest coins first.  One bucket per output.

No intended change in behaviour.
Coin chooser now sorts the coins as it wants; remove redundant sorting
from get_spendable_coins().
2015-11-29 17:59:36 +09:00
Neil Booth
93bb09230c Track tx size directly; calculate fees from that
This has several advantages.  Fee calculation is now very fast,
as we don't need to keep reserializing the tx.  Another is that
we can reason about the fees after adding a change output without
having to add it, recalculate the tx fee, and remove it again.
2015-11-29 15:40:11 +09:00
Neil Booth
a4dd5acc48 Prepare to calculate tx fee given a tx size 2015-11-29 12:41:54 +09:00
Neil Booth
d97106f17d Don't keep dust change in any case 2015-11-28 22:27:01 +09:00
Neil Booth
8785b65a1f Remove need for coin chooser to take a wallet 2015-11-28 22:12:20 +09:00
Neil Booth
a6ea9a0c71 Simplify interface to make_tx in coin chooser
Makes the coin chooser code simpler and easier to understand.
2015-11-28 22:08:00 +09: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
Neil Booth
e9061ea371 Move coin choosing logic to own class
This contains no change in logic, but is preparation for cleanup
and possible alternative strategies.
2015-11-28 14:49:10 +09:00
ThomasV
175fdbcac6 Disentangle plugins and window management; use Qt signals 2015-11-23 09:05:34 +01:00
Neil Booth
0dcaa13d31 Show the wallet path in -v output 2015-11-14 16:14:00 +09:00
ThomasV
ae42576423 Merge branch 'master' of git://github.com/spesmilo/electrum 2015-11-12 14:32:19 +01:00
ThomasV
86a0103a7f increase min_relay_tx_fee, and make dust_threshold a function 2015-11-12 14:31:17 +01:00
Neil Booth
206e38fb7c Make use of trigger_callback easier to understand 2015-11-12 16:08:37 +09:00
Neil Booth
8cc3b58364 Allow syncronizer to be GC-ed
Proper fix for #1525.
Using python's GC module, I've verified that the daemon, when running,
now releases all verifiers, synchronizers and wallets - all the resources
we care about releasing.
2015-11-12 08:40:58 +09:00
Neil Booth
d612684196 Attempt at fixing issue 1525
The main problem is, I think, that the synchronizer and wallet
still exist in the daemon process, and updates to things like
TXI and TXO are made but never saved (as client exit is what
saves the wallet).

I suspect fixing the lingering objects is hard; this is a short
term fix to ensure that when internal wallet state is updated,
the wallet is written to disk, so later daemon clients pick up
the correct state.
2015-11-11 16:38:28 +09:00
ThomasV
2a3c97813d wallet.get_max_amount method, used by qt and kivy 2015-10-30 14:10:41 +01:00
ThomasV
079cb311ec call wallet.wait_until_synchronized before commands 2015-10-29 05:01:06 +01:00
ThomasV
052d8b236e fix #1494 2015-10-28 10:36:44 +01:00
ThomasV
2a23aab24b workaround #1513 2015-10-28 07:32:29 +01:00
ThomasV
26682491b2 generic restore from command line 2015-10-27 14:33:41 +01:00
Neil Booth
97568bedf5 Default to unused address for privkey sweeps
Fixes #1506

- New function wallet.get_unused_addresses
- Have wallet.get_unused_address use it
- Use it for the sweep key dialog
2015-10-26 20:33:35 +09:00
ThomasV
171363aa86 minor fix (import stat) 2015-10-20 13:57:43 +02:00
ThomasV
a9f451decd preserve file permissions when saving wallet 2015-10-20 13:52:38 +02:00
Chris Beaven
fc141cba28 Fix KeyErrror typo 2015-10-19 10:42:46 +13:00
ThomasV
fbda9dac79 fix #1479 2015-10-18 12:36:04 +02:00
ThomasV
0fe410d7e6 restore lock in storage.write (follow up to b5e0363f) 2015-10-01 13:26:22 +02:00
Neil Booth
b5e0363f85 Only save wallet if modified 2015-09-11 14:02:01 +09: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
39615333c0 Attribute more diagnostic messages 2015-09-06 22:04:44 +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
89fbda30e0 Labels plugin now working for multiple windows 2015-09-04 17:38:14 +09:00
ThomasV
9d76bf6828 temporary fix wallet constructors 2015-09-02 14:37:40 +02:00
Neil Booth
7a55d02654 Fix 992c70a688
This works for ordinary wallets at least; cannot test hardware.
But after staring for ages I think it's right.
2015-09-02 21:27:12 +09:00
ThomasV
992c70a688 detect available hardware wallets before listing them in wizard 2015-09-02 13:08:06 +02:00
Neil Booth
351272f0b6 Small optimization for large wallets
Previously the verifier job would scan all transactions in
unverified_tx each time it ran.
Nothing was ever removed from this map; it would essentially
be the full set of transactions.
As the job runs about 10 times a second, for a wallet with 500 txs
this would be 5,000 useless loops a second.
This patch makes unverified_tx be simply the set of confirmed
transactions that haven't yet been verified.  txs are added once
confirmed, and removed once verified.  Hence it will almost always be
empty.
2015-08-28 12:39:19 +09:00
Neil Booth
478bde8afa Access to unverified_tx no longer needs a lock
Once the proxy thread jobs are created only they access this,
and they all run under the proxy thread, so there is no contention.
2015-08-28 11:10:50 +09:00
ThomasV
578a83fa30 show error message raised during sign_transaction. see issue #1422 2015-08-27 08:22:02 +02:00
Neil Booth
b64c42b1eb Make the verifier a thread job instead of a thread
The verifier, like the synchronizer, now runs as part of the
network proxy thread.
2015-08-26 17:07:36 +09:00
Neil Booth
01491dd1d0 Have network_proxy use ThreadJob framework
Rename WalletSynchronizer to Synchronizer so that diagnostic messages,
which are based on class name, still refer to Synchronizer.
2015-08-26 16:50:40 +09:00
ThomasV
bfae04e6f0 Improved in network callbacks:
* Pass arguments
 * Don't redraw history when a tx is verified.
 * Fix new tx notifications.
2015-08-16 11:36:23 +02:00
ThomasV
e0939348c3 minimize calls to estimated_fee 2015-08-15 12:31:57 +02:00
ThomasV
6232a0b76c speedup fee computation when collecting small inputs 2015-08-15 10:02:47 +02:00
ThomasV
d69da1ef43 add/remove transaction: remove unused tx_height parameter 2015-08-14 15:30:00 +02:00
ThomasV
6b87256795 sign tx with empty scriptSig inputs 2015-08-07 17:11:42 +02:00
ThomasV
714445aba8 fix: wallet.is_used 2015-08-06 19:19:25 +02:00
ThomasV
43880d452e dynamic fees 2015-08-05 15:45:28 +02:00
ThomasV
e9f5e6866d check www dir on daemon start 2015-07-25 12:25:47 +02:00
ThomasV
3da148f406 use local copy of javascript files 2015-07-24 12:36:08 +02:00
ThomasV
41d9c94821 don't add bip70 suffixes 2015-07-22 16:00:08 +02:00
ThomasV
8960b16e09 more sanitization 2015-07-22 15:28:43 +02:00
ThomasV
acbd434f76 cleanup request signing 2015-07-22 09:06:03 +02:00
ThomasV
a6c65b8997 change internal format of requests 2015-07-21 12:26:37 +02:00
ThomasV
380e072842 fix bug with import_key 2015-07-18 11:00:41 +02:00
ThomasV
da55d9ed6e payment requests: cmdline fixes 2015-07-11 21:09:56 +02:00
ThomasV
cb2bc54f96 store and display signatures of own requests 2015-07-09 14:15:30 +02:00
ThomasV
0368a2cd5e fix bug from #1281 2015-07-05 18:16:33 +02:00
ThomasV
b0f7411a0a check and fix history on startup 2015-07-05 17:29:41 +02:00
ThomasV
e2c19ff871 fix #1344 2015-07-05 16:19:44 +02:00
Neil Booth
930304e46b Remove apparently dead code. 2015-07-03 13:57:42 +09:00
ThomasV
65e7667eba build reverse history index, to know when a transaction can be removed 2015-07-02 16:07:04 +02:00
ThomasV
ccd07c6a80 Merge branch 'synchronizer-unthread' of https://github.com/kyuupichan/electrum into kyuupichan-synchronizer-unthread 2015-07-02 09:20:51 +02:00
ThomasV
0c37009cdb fix is_address (forgot p2sh) 2015-07-02 08:53:17 +02:00
Michael Wozniak
523aa7c380 update restore multisig to add type 2015-06-27 16:12:15 -04:00
ThomasV
765ef338ec fix multisig seed detection 2015-06-27 21:53:55 +02:00
ThomasV
56b3c98332 generic m of n multisig 2015-06-27 12:43:29 +02:00