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
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
ThomasV
2f8574f7d7
kivy/buildozer: read version number from file
2015-09-04 14:40:00 +02:00
Neil Booth
835bc4e4aa
More cleanup now self.window is gone
...
No need for self.main_window in gui object.
No need for hooks "init_qt" and "close_main_window".
2015-09-04 18:29:52 +09:00
Neil Booth
89fbda30e0
Labels plugin now working for multiple windows
2015-09-04 17:38:14 +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
ThomasV
04b9d8fffa
Update kivy GUI in order to merge with master
2015-09-03 15:09:45 +02:00
akshayaurora
c121c1aa4e
reorganize files and bring code inline with current master
...
Conflicts:
lib/simple_config.py
2015-09-03 14:20:37 +02:00
qua-non
1179a4cf9e
manage exchange plugins, make sure ui doesn't stall while saving seed
...
and numerous other small fixes.
2015-09-03 14:18:22 +02:00
ThomasV
4655c5f565
Fix SocketPipe:
...
* add errcode 35 for BSD
* in addition, add a very long timeout to command line pipe, in order to prevent that exception to be raised.
2015-09-03 10:47:57 +02:00
ThomasV
e3b7239d19
fix SocketPipe for returning empty array
2015-09-03 10:09:25 +02:00
ThomasV
4cfb6e1d76
add missing parameter
2015-09-03 07:43:16 +02:00
Neil Booth
49797c3094
Create a Plugins class
...
Encapsulates plugin logic and removes global variable ugliness.
2015-09-03 12:02:03 +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
6c69849be9
Fix uninitialized var from select merge
2015-09-02 13:50:25 +09:00
Neil Booth
cdcd4d7215
Fix 'tuple' object has no attribute 'copy'
...
Occurred when switching interfaces and there were unanswered
requests that need resending. This bug isn't new; it's been
there since at least 3rd June.
2015-09-02 11:56:53 +09:00
Neil Booth
119aa5bf2e
Move message so it doesn't repeat when connecting
2015-09-01 17:30:22 +09:00
Neil Booth
72f429c353
Remove unused callback
2015-09-01 14:41:06 +09:00
ThomasV
c6b5a70362
Merge pull request #1432 from romanz/remove-mmap
...
transaction: remove unused mmap-related code
2015-08-31 22:39:08 +02:00
ThomasV
cd734002f2
Merge pull request #1433 from romanz/master
...
test_transaction: fix test_sweep case
2015-08-31 22:38:57 +02:00
Roman Zeyde
a097c47b0b
test_transaction: fix test_sweep case
2015-08-31 17:03:59 +03:00
Roman Zeyde
aadbcca6f0
transaction: remove unused mmap-related code
2015-08-31 16:46:51 +03:00
Neil Booth
a5e0265010
Make exchange rate plugin a network thread job
...
This fixes a lot of thread error noise when closing down electrum.
2015-08-31 20:33:39 +09:00
Neil Booth
f11e46e479
Remove unused import
2015-08-31 18:14:07 +09:00
Neil Booth
be7cb011a3
Simply verifier now network is in-process
2015-08-31 18:12:02 +09:00
Neil Booth
2a1b717a21
Fix scripts/peers
...
Needed an almost complete rewrite now we use select.
2015-08-31 17:44:50 +09:00
Neil Booth
748662dede
Add a debugging traceback.
2015-08-31 14:38:19 +09:00
Neil Booth
2ee506ac03
Fix typo.
2015-08-31 14:05:38 +09:00
Neil Booth
768adfb337
Fix "restore" further by accepting --mpk
2015-08-31 13:52:18 +09:00
Neil Booth
2d05e7d891
Merge the network and network_proxy
2015-08-31 12:00:38 +09:00
Neil Booth
4d6a0f29ee
Fix 'restore' command line to take -C.
2015-08-31 11:34:44 +09:00
ThomasV
92e0744470
Refactoring of daemon:
...
* gui and daemon are in the same process
* commands that require network are sent to the daemon
* open only one gui window per wallet
2015-08-30 11:31:51 +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
695aebaa80
Clean up imports; use self.print_error
2015-08-27 15:12:54 +09:00
Neil Booth
91049c8af8
Protect proxy against ill-formed server responses
2015-08-27 15:09:00 +09:00
Neil Booth
9455815ad0
Merge requested_merkle and merkle_roots.
2015-08-26 17:12:40 +09: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
Neil Booth
56654ec4e9
Introduce thread job framework.
...
This is a cleaner generalization of the functionality added
to network_proxy.py a few months ago, whereby jobs can be
added and removed from a thread's main loop. This allows
us to cut down on unnecessary threads.
A follow-up patch will update the proxy to this framework.
2015-08-26 16:41:12 +09:00
Roman Zeyde
eb66289314
test_transaction: add BCDataStream test case
2015-08-25 15:51:22 +03:00
Roman Zeyde
33b78551a3
test_transaction: add Transaction.sweep() test case
2015-08-25 15:21:44 +03:00
Roman Zeyde
6a7e145053
test_transaction: add test suite for lib.transaction module
2015-08-25 12:05:49 +03:00
Neil Booth
a056f9804b
Notify when a chunk of headers is validated
...
And a couple of cosmetic changes.
This should fix #1379 .
2015-08-25 14:27:53 +09:00
Roman Zeyde
3c3d96f69e
test_mnemonic: add tests for mnemonics
2015-08-24 17:35:17 +03:00
Roman Zeyde
bb97624de2
test_account: add test case for OldAccount
2015-08-24 10:57:41 +03:00
Roman Zeyde
893849ab39
test_account: add test case for BIP32_Account
2015-08-24 10:57:41 +03:00
Roman Zeyde
a92ca583bd
test_interface: fix check_host_name test
2015-08-24 10:02:10 +03:00
Neil Booth
49a48d52ac
Use select.
2015-08-22 14:03:08 +02:00
ThomasV
85c0dda1a9
version 2.5
2015-08-22 13:42:53 +02:00
ThomasV
234471b70c
version 2.4.3 and release notes
2015-08-22 11:42:18 +02:00