Commit Graph

2549 Commits

Author SHA1 Message Date
ThomasV
3c11c63289 fix daemon: don't oad wallet if there is a gui 2015-11-30 10:23:38 +01:00
ThomasV
4682d95a76 merge jsonrpc gui and daemon 2015-11-30 10:09:54 +01:00
Neil Booth
e302dbc71c Move debug output to end of function. 2015-11-29 18:10:17 +09: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
530dc16ed2 Remove unused import 2015-11-28 22:14:24 +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
90a2a049f4 network fix: callbacks were not called 2015-11-27 11:30:14 +01:00
ThomasV
042f8ef832 network: cache subscription responses 2015-11-26 11:26:01 +01:00
ThomasV
43df795b1f network: separate callbacks from unanswered_requests 2015-11-26 10:57:43 +01:00
ThomasV
ed2ab5e3c1 websockets: minor fix 2015-11-25 11:37:10 +01:00
ThomasV
1207ad3ba4 fix: websocket uses network object 2015-11-25 10:48:34 +01:00
ThomasV
2a29d1e5e7 fix syntax error 2015-11-25 10:35:14 +01:00
ThomasV
2934fd17be fix websockets 2015-11-25 10:32:46 +01:00
ThomasV
9ba75b80e2 increase version number 2015-11-24 09:43:21 +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
Kirill Fomichev
334b84c3c3 Add assertions to get_target 2015-11-19 22:03:12 +03:00
Kirill Fomichev
e188929972 Fix proof of work assert in verify_chunk 2015-11-19 18:40:54 +03:00
Neil Booth
3211d752c7 Need to set p.wallet unfortunately
Fixes #1553
2015-11-19 08:31:01 +09:00
Neil Booth
0dcaa13d31 Show the wallet path in -v output 2015-11-14 16:14:00 +09:00
Neil Booth
e9384f15ed Plugins manage their own wallet tracking 2015-11-14 15:58:10 +09:00
Neil Booth
53f6fb9876 Add a GC debugger
Add commented-out GC debugging step
2015-11-14 10:47:44 +09:00
Neil Booth
ae4cfc9f0b Unregister network callbacks from QT gui
Rework the callback system in QT to make this easy, and avoid
leaking window references that prevent the window from being
GC-ed on close
2015-11-13 23:36:29 +09:00
ThomasV
0d4de870a5 prepare 2.5.4 release 2015-11-12 14:56:51 +01: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
d82896dadf fix #1525 (part 2) 2015-11-06 18:00:19 +01:00
ThomasV
b3529147d5 fix #1525 2015-11-06 17:32:54 +01:00
ThomasV
3f2c906ace version 2.5.3 and release notes 2015-11-02 13:03:14 +01:00
ThomasV
2a3c97813d wallet.get_max_amount method, used by qt and kivy 2015-10-30 14:10:41 +01:00
ThomasV
5bbffb0cbf remove --deserialized option, redundant with deserialize command 2015-10-29 14:44:41 +01:00
ThomasV
369d5d8812 fix #1525 2015-10-29 14:36:50 +01:00
ThomasV
bb7b0884e3 Various fixes for command line. Make 'payto' command require network (fixes #1525) 2015-10-29 11:06:09 +01:00
ThomasV
079cb311ec call wallet.wait_until_synchronized before commands 2015-10-29 05:01:06 +01:00
ThomasV
53273b7d40 fix #1523: prevent side-effect of _format_request 2015-10-29 00:09:50 +01:00
ThomasV
511b23fee6 add release notes 2015-10-28 11:45:53 +01:00
ThomasV
142b5532ec revert to previous restore method, without daemon 2015-10-28 11:11:41 +01:00
ThomasV
5b96d5166e fix restore messages 2015-10-28 10:46:01 +01:00
ThomasV
052d8b236e fix #1494 2015-10-28 10:36:44 +01:00
ThomasV
94ac0db91f command line: Require 'text' argument for 'restore'. Replace 'concealed' option with ':' magic word 2015-10-28 09:33:35 +01:00
ThomasV
65f20895df bump version number 2015-10-28 08:46:02 +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
ThomasV
614f3df4b8 Revert "Use ssl.PROTOCOL_TLSv1 on client side to avoid SSLv23"
This reverts commit 4731418af9.
2015-10-27 10:44:36 +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
ThomasV
f77f63e158 remove failing tests, due to high S in signatures 2015-10-20 13:15:13 +02:00
ThomasV
fbb65416d3 remove --broadcast option for payto, and parse transactions from json 'hex' field 2015-10-20 13:08:32 +02:00
Neil
691fc54370 Merge pull request #1499 from SmileyChris/sys-exit
Missing sys import
2015-10-19 12:41:21 +09:00
Chris Beaven
876a2c8ed0 Missing sys import
Also put the error message in sys.exit rather than printing. This will output it to stderr and make the exit code non-zero
like it should be.
2015-10-19 10:51:05 +13:00
Chris Beaven
fc141cba28 Fix KeyErrror typo 2015-10-19 10:42:46 +13:00
ThomasV
e385fd283d version 2.5.1 2015-10-18 12:52:38 +02:00
ThomasV
fbda9dac79 fix #1479 2015-10-18 12:36:04 +02:00
ThomasV
19ec56b923 fix: sign tx inputs with the new low s class 2015-10-18 12:23:21 +02:00
ThomasV
ab1714e9f2 socket errno 11: raise timeout instead of looping 2015-10-18 09:23:44 +02:00
ThomasV
6aefaf7b3e populate network.connecting before the thread is started (fixes KeyError in self.connecting.pop) 2015-10-17 07:07:10 +02:00
Kefkius
f329143733 Fix typo in Connection docstring
Fix a small typo in Connection docstring.
2015-10-06 16:03:24 -04:00
ThomasV
d68042e76e enforece low S value in signatures (per BIP62) 2015-10-05 09:15:22 +02:00
ThomasV
0fe410d7e6 restore lock in storage.write (follow up to b5e0363f) 2015-10-01 13:26:22 +02:00
ThomasV
5a5cc97045 fix base type of PrintError; it must be object, since it is inherited by wallets 2015-10-01 12:38:46 +02:00
Richard Ulrich
c5f833a107 added tor onion address for Blockchain explorer 2015-09-30 12:03:05 +02:00
ThomasV
f3bd1662f7 fix web request server. fixes #1455 2015-09-30 11:06:27 +02:00
Neil Booth
58bd655f1d In debug mode, show every queued request 2015-09-12 12:13:42 +09:00
Neil Booth
fb5e8068ce Simplify following on from prior dead code removal 2015-09-12 11:25:14 +09:00
Neil Booth
f9547a194e Remove more dead code
As everything is in-process now, nothing sends
"network.*" messages.
2015-09-12 11:18:11 +09:00
Neil Booth
fe2e731a70 Remove dead code 2015-09-12 10:54:20 +09:00
Neil Booth
12583246ee Fix testcase 2015-09-11 20:17:20 +09:00
ThomasV
849cc0200b better help message 2015-09-11 13:07:49 +02:00
ThomasV
458b62f5de commands: add kwargs to wrapper 2015-09-11 11:54:00 +02:00
Neil Booth
f30090a321 Use network to get local height 2015-09-11 14:03:44 +09: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
ThomasV
a735fbabe0 print config path in debug message 2015-09-10 11:01:58 +02:00
Neil Booth
3746050fe6 Subscribed address fix
Add an addr to the subcribed address set on receiving a response,
not on sending a request.
2015-09-10 13:32:00 +09:00
Neil Booth
cbf9052dae Remove address caching 2015-09-10 12:57:04 +09:00
ThomasV
ebd5a565ed fix: add missing definition of sha1 2015-09-09 18:15:38 +02:00
Neil Booth
b14aae5ebc Clear self.interface when switching
When switching and the interface isn't immediately available,
we should clear self.Interface as otherwise requests will
still be going to it.
2015-09-09 22:13:09 +09:00
Neil Booth
6f1367fea6 Unify message IDs between network and interfaces
Previously network.py had its own idea of request IDs,
and each interface had its own which was sent on the wire.
The interface would jump through hoops to translate one
to the other.

This unifies them so that a message ID is passed when
queueing a request, in addition to the method and params.
network.py is now solely responsible for message ID management.

Apart from being simpler and clearer, this also should be faster
as there is much less data structure manipulation and rebuilding
happening.
2015-09-09 21:00:25 +09:00
Neil Booth
886192aba7 Make trustedcoin.py multi-window compatible 2015-09-09 17:27:58 +09:00
ThomasV
f90ca2684e change paytomany syntax: accept json data instead of csv file 2015-09-09 08:47:30 +02:00
ThomasV
d986570c2e fix: func.__doc__ might be None on android 2015-09-07 13:13:04 +02:00
Neil Booth
abee263710 Remove obsolete server from DEFAULT_SERVERS 2015-09-07 10:39:55 +09:00
Neil Booth
39615333c0 Attribute more diagnostic messages 2015-09-06 22:04:44 +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
da5c18b2f9 Be patient whilst connecting
On startup we make several connections simultaneously.  Socket
maintenance code checks if we're not connected, and if not
switches to a connected interface if auto_connect.
Unfortunately this meant that we frequently didn't reconnect to
the prior good server on startup, because some other connection
would happen first and this code would decide to switch to it.

Instead, only switch if a connection attempt is not in progress.
If that times out at the O/S level the switch will happen.
2015-09-06 20:03:43 +09:00
Neil Booth
f5a43b8738 Warn if server is serving bad address histories 2015-09-06 19:49:35 +09:00
Neil Booth
f9047c6df0 Fix for dynamic loading and unloading of plugins
Need to add and remove thread jobs
2015-09-06 19:35:14 +09:00
Neil Booth
b5f986ee56 Torwards sane signalling for exchange_rate plugin 2015-09-05 21:47:35 +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