Commit graph

3215 commits

Author SHA1 Message Date
Neil Booth
97b5f6d6a3 Fix two races in interface.py.
First, close the socket from the thread itself rather than from
the stop() function.  This prevents another thread closing the
socket that the interface thread is simultaneously using.

Second, it occasionally would happen that the parent thread such as
network.py start() an interface, do a send_request() and timeout
waiting for a response (timeouts are 0.1s).  It would check
is_connected(), get False, and assume the connection has failed.
In fact the thread hadn't even been scheduled or gotten around to
completing the socket connection.  Fix by having self.connected
start out True.  If the connection fails or times out, we set
connected to False soon enough.

Finally for correctness we need to deepcopy a send_request() rather
than take a reference to it.
2015-05-08 07:32:31 +09:00
Neil Booth
a47881d72b Move the verified and unverified txs to the wallet. 2015-05-07 23:54:39 +09:00
ThomasV
656560be72 show many address labels in tx default label. fixes #1200 2015-05-07 16:09:39 +02:00
Neil Booth
79de458101 Preparation for moving the set of verified and unverified txs to the wallet.
The verifier will retain responsibility for verification, but will no longer
hold the transaction sets itself.

Change requires_fee to take a wallet.
Add new function add_unverified_tx()
Move get_confirmations() to the wallet from the verifier.
2015-05-07 09:21:08 +09:00
ThomasV
ffda5cd866 Merge pull request #1187 from kyuupichan/local_height
Move away from requiring network and blockchain objects to be able to re...
2015-05-06 17:45:42 +02:00
ThomasV
8656785aa7 fix: use request_time for interface timeout 2015-05-06 17:25:29 +02:00
ThomasV
45fd3ef343 interface: send from same thread and simplify timeouts 2015-05-06 16:42:18 +02:00
ThomasV
78f5dbb72e revert c64e0c0e64 2015-05-06 12:13:21 +02:00
ThomasV
241b3b073f Merge pull request #1198 from kyuupichan/if-cleanup7b
Move response getting to its own function.
2015-05-06 11:28:03 +02:00
Neil Booth
6171779442 Move response getting to its own function.
This makes the operation of run() more clear.
No essential change in functionality.
2015-05-06 14:35:55 +09:00
ThomasV
43b8e202fd replace instances of get_unspent_coins 2015-05-06 07:25:50 +02:00
ThomasV
a99c2bc9fa less verbose debug message 2015-05-05 21:00:35 +02:00
ThomasV
9d747fb601 Merge branch 'master' of git://github.com/spesmilo/electrum 2015-05-05 20:52:28 +02:00
ThomasV
687cc7783f show unmatured coins in status bar. fixes #1163 2015-05-05 20:52:14 +02:00
Neil Booth
0cfcd2c7b2 Remove self.lock
It is now unused; all necesary locking is done by the Queue objects.
2015-05-05 21:57:07 +09:00
Neil Booth
c64e0c0e64 Send requests only from the interface thread.
Currently requests are sent from the requestor's thread.  The lock is
not properly held where necessary so this is not thread-safe.  For example
it can race with the thread stopping and closing the socket the
requestor is trying to use to send with.

Resolve such races by having send_request() simply queue the requests,
which are asynchronously sent from the interface thread itself.
2015-05-05 21:36:34 +09:00
Neil Booth
6920747a5d Move ping functionality into its own function.
First step in cleaning up the run() function.
Calls stop() rather than setting is_connected to False on
case of timeout, which cleanly closes the socket.
2015-05-05 20:46:34 +09:00
Neil Booth
c07e956127 Pass the response_queue to the constructor, not start().
Removes an unnecessary Thread base-class override.  The python
documentation also strongly discourages overriding anything other
than run().
2015-05-05 20:37:25 +09:00
Neil Booth
9cf2eff16b Make is_connected into a member function. No change in logic. 2015-05-05 20:00:10 +09:00
Neil Booth
4d55cb9528 First of several incremental patches tightening up interface.py.
Remove some unneeded imports, a constant and a line of dead code.
Document the current external API interface.py provides.
2015-05-05 14:02:51 +09:00
Neil Booth
175bfae9e6 Move away from requiring network and blockchain objects to be able to request local height.
We store it in the config object instead of in the blockchain object.
The blockchain object now refers to its config, and calls refresh_height() to update it.
The network objects also refer to the config rather than the blockchain.

This is the first of many small steps to untangle the verifier from stored state and so
permit the history tab to work in offline mode.  The refactoring will simultaneously clean
up a lot of accumulated cruft.
2015-05-03 15:19:29 +09:00
ThomasV
25c6a78ae0 fix missing immport 2015-05-02 16:29:41 +02:00
ThomasV
475a48091f Merge pull request #1183 from kyuupichan/get_history2
Make it 3-step instead of four. Avoid quadratic insertions.
2015-05-02 16:28:18 +02:00
ThomasV
e4038dcdba move create_csr to gui 2015-05-02 16:26:27 +02:00
Neil Booth
2fc38332e7 Make it 3-step instead of four. Avoid quadratic insertions.
This is preparation to hopefully fix #1163
2015-05-02 23:17:50 +09:00
ThomasV
bbaacef960 fix format_satoshis for None values 2015-05-02 15:12:00 +02:00
ThomasV
75ddc066bb fix #1181 2015-05-02 11:05:38 +02:00
ThomasV
8ba70c941b add function to create CSR 2015-04-30 17:51:51 +02:00
ThomasV
c35cdf1fd8 rename ssl config variables 2015-04-30 17:33:29 +02:00
Neil Booth
db2517b901 Shrink size of changes; functionality unchanged. 2015-04-30 13:32:01 +09:00
Neil Booth
506ed8ee74 Merge branch 'master' into tray_tip_wallet 2015-04-30 13:28:13 +09:00
ThomasV
953674aac7 resize columns to content by default 2015-04-29 09:26:22 +02:00
Neil Booth
4f45e0a083 Prior lost minus sign for fractional negative numbers 2015-04-29 15:09:55 +09:00
Neil Booth
0d35dd66d2 The lite GUI passes a decimal type 2015-04-29 14:48:55 +09:00
Neil Booth
83e05b1183 Modify format_satoshis to display amounts according to locale.
In particular, thousands and decimal point separators are taken from locale.
2015-04-29 10:13:41 +09:00
Neil Booth
f56413d602 Put title() member func, with localization, in main_window.py 2015-04-28 21:12:25 +09:00
Neil Booth
889174ae19 Show wallet basename in tray tooltip for those of us using multiple wallets
Move basename (and title) logic to the wallet and use those member functions.
2015-04-28 19:32:56 +09:00
ThomasV
7316f613d6 fix history command 2015-04-28 08:58:33 +02:00
Neil Booth
deec78a9d4 Clean up block explorer handling. Add menu item to go to block explorer for an address.
Block explorer code is data-driven now.
Put block explorer defaulting in one place.
Fix URLs for insight.is and blockr.io.
Add tradeblock.com explorer.
Add menu item to view address on block explorer provided only one is selected.
2015-04-26 22:02:21 +09:00
ThomasV
f2749a744e version 2.1.1 2015-04-24 21:26:08 +02:00
ThomasV
cb09d88322 fix bug introduced in 21673c95f4 2015-04-24 21:01:34 +02:00
Maran
21673c95f4 Fix wallet write to support windows 2015-04-24 13:14:17 +02:00
ThomasV
4a28c88946 atomic write wallet file 2015-04-23 17:12:02 +02:00
ThomasV
e8189490e9 store contacts in a separate file, shared between wallets 2015-04-23 12:16:46 +02:00
ThomasV
065145e557 get_history: return empty history if balance check fails 2015-04-23 09:49:24 +02:00
ThomasV
6cff7a284a store invoices as dict. rename domain -> requestor 2015-04-22 13:59:38 +02:00
ThomasV
74b0ed5f48 move get_status to InvoiceStore 2015-04-22 13:36:07 +02:00
ThomasV
409c34d1bf verify: create a PaymentRequest instance, to avoid blanking the signature as side effect 2015-04-22 10:25:29 +02:00
ThomasV
30bed4c5a9 sign and save to file bip70 payment request; redo receive tab layout 2015-04-21 08:45:51 +02:00
ThomasV
50bc50d78d daemon: filter notificaions sent to client 2015-04-20 09:16:43 +02:00