Commit Graph

2242 Commits

Author SHA1 Message Date
ThomasV
a103f59686 new flags for listaddresses 2015-06-11 12:49:14 +02:00
ThomasV
317a9de71d check amount before calling make_payment_request 2015-06-11 12:32:52 +02:00
ThomasV
ba78093e2e getalias: no check 2015-06-11 12:08:38 +02:00
Kefkius
b6e4013a9d Fix typo in param_descriptions
heigh --> height
2015-06-11 04:55:08 -04:00
ThomasV
e5b5e8d0f4 comment our ackrequest 2015-06-11 10:50:25 +02:00
ThomasV
d6cdc085ea fix #1283 2015-06-11 10:03:26 +02:00
ThomasV
16344b43af fix issue #1282 2015-06-11 08:56:07 +02:00
ThomasV
e31ac7905d Clear address cache when interface changes. Send requests only if interface is connected. 2015-06-11 02:10:06 +02:00
Neil Booth
28f440350d Fix request handling.
Handle local requests immediately.
Defer those requiring connectivity until we have an interface.
2015-06-11 08:31:19 +09:00
ThomasV
5714d9f4fc shorter docstrings 2015-06-10 23:48:36 +02:00
ThomasV
145bf5cf0a rename decodetx and sendtx commands. merge mktx and payto commands. 2015-06-10 23:21:25 +02:00
ThomasV
e067e34313 make global options: -w and -o 2015-06-10 22:29:31 +02:00
ThomasV
2b9b42d5f7 Merge pull request #1286 from kyuupichan/remove_urllib2
Use requests instead - SSL handling is superior
2015-06-10 21:15:27 +02:00
ThomasV
e517321f76 Network: fix handle_requests, must process requests even if we are not connected 2015-06-10 18:26:03 +02:00
ThomasV
6ea04e2d47 Network: Fix switch_to_interface (check that interface is connected) 2015-06-10 18:24:57 +02:00
ThomasV
060e3aa23e plugins: call load_wallet in install wizard 2015-06-10 12:40:08 +02:00
Neil Booth
a3ad32bd91 Use requests instead - SSL handling is superior 2015-06-10 16:15:00 +09:00
ThomasV
479a6f84e7 paymentrequest: add headers to http request 2015-06-10 09:04:34 +02:00
ThomasV
8bccf7b2db replace httplib with requests 2015-06-10 08:29:50 +02:00
ThomasV
ee6b718ea4 better message 2015-06-09 16:10:44 +02:00
ThomasV
f70a996619 fix trezor initialiation hook (pass window in load_wallet) 2015-06-09 09:58:40 +02:00
Neil Booth
e8db8983ec Make the synchronizer not a thread.
The synchronizer's work is done from the network proxy's main loop.

A minor problem with the old synchronizer was that it considered itself
out of date if the network was out of date.  This was too generic: the
network can have pending requests unrelated to the synchronizer.  This
resulted in the synchronizer often unnecessarily flipping the wallet
between up-to-date and not-up-to-date, and causing unnecessary calls
to wallet.save_transactions().  This was observable when opening the
network dialog box: frequently just opening it would cause a wallet
status change and transaction flush, simply because the network dialog
sends a get_parameters() request.  This rework of the synchronizer does
not have that issue.
2015-06-09 08:41:31 +09:00
ThomasV
70037b89a9 version 2.3 and release notes 2015-06-08 18:40:21 +02:00
ThomasV
8995cdbf14 rename fields: 'time' -> 'timestamp', payment_requests 2015-06-08 13:36:35 +02:00
ThomasV
357c405ac6 fix publish_request 2015-06-08 13:21:13 +02:00
ThomasV
d367930113 amount is in satoshis 2015-06-08 13:20:42 +02:00
ThomasV
9bd94e5062 refactor payment requests 2015-06-08 12:51:45 +02:00
ThomasV
572a463806 reason->memo 2015-06-08 08:06:38 +02:00
ThomasV
3bb00f0006 store json record requests 2015-06-07 21:52:23 +02:00
ThomasV
bf755f8ac0 jsonrpc interface 2015-06-07 19:11:54 +02:00
ThomasV
48e53498db improve requests 2015-06-07 18:44:33 +02:00
Neil Booth
98bea614d8 Implement BIP-LI01.
No more need to randomly place change.
2015-06-06 22:25:40 +09:00
ThomasV
0b874b2bb0 Readding pending_transactions_for_notifications, needed by the gui. 2015-06-05 08:56:55 +02:00
Neil Booth
a2445aa27d Remove unused vars and imports. 2015-06-05 11:54:00 +09:00
Neil Booth
2f2e468d0a SocketPipe shouldn't close the socket.
This is a layering violation - the SocketPipe doesn't own
the socket and provides no other way to close the socket, leading
to unnecessary complexity like that in interface.py.

I looked at deamon.py and NetworkProxy - the two other users,
and they don't close the sockets explicitly, just let them be
garbage collected.
2015-06-04 16:30:59 +09:00
ThomasV
90d7179d73 Merge pull request #1276 from kyuupichan/need_interface
Need an interface to process a request.
2015-06-04 05:57:04 +02:00
Neil Booth
caebdd0819 Need an interface to process a request.
Occasionally triggered with a race at start up, typically from
the verifier requesting a merkle root.
2015-06-04 11:22:57 +09:00
ThomasV
fc23b0f490 fix #1274 2015-06-03 14:18:49 +02:00
ThomasV
ec795ba3c0 fix var name 2015-06-03 11:39:44 +02:00
ThomasV
ab60da89ac Add a help group for config variables. Change name of ssl variables 2015-06-03 11:34:52 +02:00
ThomasV
34360bddfb add missing definition of COIN 2015-06-03 10:25:21 +02:00
ThomasV
0ddd94b5b3 remove forgotten debugging statement 2015-06-03 10:03:55 +02:00
ThomasV
ca62df89d4 fix: set_config 2015-06-03 10:02:12 +02:00
ThomasV
d85a11173d verify: return earlier if request is empty 2015-06-03 09:34:35 +02:00
ThomasV
cbeeedcca2 Add note for commands that are not SPV; fix format_request parameter 2015-06-03 09:12:38 +02:00
ThomasV
fb6a74e034 fix typo 2015-06-02 16:49:21 +02:00
ThomasV
3188ff05a3 fix is_watching_only 2015-06-02 16:41:32 +02:00
ThomasV
b832a5cea4 Merge pull request #1272 from kyuupichan/if-socket
Fix couple of minor socket issues
2015-06-02 16:28:42 +02:00
ThomasV
088d8e8415 show request status 2015-06-02 11:36:06 +02:00
Neil Booth
ab2f80c3e0 Fix couple of minor socket issues
Set timeout and socket options on all simple sockets.  At present
some code paths can miss it, such as when the SSL certificate is
CA-signed.

Add a missing check for failure.
2015-06-02 18:13:36 +09:00
ThomasV
e4946cf26e setconfig: return False on error 2015-06-02 11:05:21 +02:00
ThomasV
31c4849566 url_rewrite 2015-06-02 10:41:36 +02:00
ThomasV
b83b7fa5c8 cmd line: format payment requests 2015-06-02 10:25:39 +02:00
ThomasV
2727df962e requests: store path not url 2015-06-02 09:56:10 +02:00
ThomasV
b9e4825422 fix request_dir variable 2015-06-02 09:37:54 +02:00
ThomasV
514ea6aa8c doc for addrequest 2015-06-02 09:31:24 +02:00
ThomasV
d41785c783 save payment requests in requests_dir 2015-06-02 09:18:39 +02:00
Neil Booth
d16714a1db Make the blockchain class not a thread
Remove interface communication out of blockchain.py
into network.py.  network.py handles protocol requests
for headers and chunks.  blockchain.py continues to
handle their analysis and verification.

If an interface provides a header chain that doesn't
connect, it is dismissed, as per a previous TODO comment.

This removes a thread and another source of timeouts.
I see no performance issues with this when truncating the
blockchain.

Rename 'result' to 'header' for clarity.
2015-06-01 20:53:42 +09:00
ThomasV
832369d7c4 Merge pull request #1270 from kyuupichan/if-tristate
Make interface status tri-state.
2015-06-01 13:09:40 +02:00
ThomasV
0938299e9b move payment requests logic to wallet, add basic commands 2015-06-01 13:02:09 +02:00
Neil Booth
76355e66c8 Make interface status tri-state.
This allows us to distinguish between connecting and connected
state in interface.py (used to be done in network.py but that
had other issues).

This means we don't switch to a connecting server, and get_interfaces()
does not report connecting ones.
2015-06-01 18:22:03 +09:00
Neil Booth
03e53a5e01 Create a constant for 100000000 and use it
Use same name as is in bitcoind.
Note that one of the constants in text.py had the wrong number
of zeroes previously...
2015-06-01 14:53:36 +09:00
ThomasV
4d9be9a6d2 commands: use decorator to register commands 2015-06-01 06:10:06 +02:00
ThomasV
7e20901e3b read command defaults 2015-06-01 00:17:50 +02:00
ThomasV
c3f82fd69c fix cmd descriptions 2015-05-31 23:23:13 +02:00
ThomasV
f8eb68458d use docstrings 2015-05-31 23:17:44 +02:00
ThomasV
ddd6a58cc7 commands: extract params and options from arguments 2015-05-31 22:42:34 +02:00
ThomasV
1d5c6bdc2d deserialized option for mktx 2015-05-31 18:21:14 +02:00
ThomasV
4042ac69ec fix varname 2015-05-31 18:03:58 +02:00
ThomasV
9c76a0232e distinction between 'destination' and 'address' 2015-05-31 18:02:09 +02:00
ThomasV
200563c4e9 fix sweep fee 2015-05-31 17:49:59 +02:00
ThomasV
c4d822b0cf add 'unsigned' option 2015-05-31 17:38:57 +02:00
ThomasV
ee20910c65 fix signtransaction flags 2015-05-31 17:21:02 +02:00
ThomasV
a3cd33fe03 add option to disable dnssec 2015-05-31 16:43:27 +02:00
ThomasV
9be94c74d2 add getalias command 2015-05-31 15:06:52 +02:00
ThomasV
8513dd2c63 fix cmd names 2015-05-31 15:00:56 +02:00
ThomasV
c006678289 fix indent 2015-05-31 15:00:43 +02:00
ThomasV
5a76a0fc95 hook openalias plugin to command line interface 2015-05-31 14:42:16 +02:00
ThomasV
ee5f499fc1 use contacts in command line 2015-05-31 14:10:52 +02:00
ThomasV
5cd3bfedb6 always pass coins to wallet.make_unsigned_transactions. fix \! shortcut in commands 2015-05-31 11:31:41 +02:00
ThomasV
0531f00c80 support for \! shortcut in command line 2015-05-31 10:40:12 +02:00
ThomasV
0caa29784c separate param_descriptions and improve help messages 2015-05-31 10:03:53 +02:00
ThomasV
cc610d352f merge signtxwithwallet and signtxwithkey 2015-05-31 09:28:47 +02:00
ThomasV
1d5f04c588 fix function name 2015-05-31 08:49:47 +02:00
ThomasV
53a3f00389 add --deserialize option to gettransaction 2015-05-31 08:20:09 +02:00
ThomasV
9acc0e4ed0 minor formatting 2015-05-31 08:06:20 +02:00
ThomasV
2167b9e93d Merge pull request #1264 from kyuupichan/unify_interfaces
Remove pending_servers, self.interfaces is now the complete set of
2015-05-31 08:02:47 +02:00
ThomasV
bd6bfcea0e Merge pull request #1267 from kyuupichan/spendable_coins
get_spendable_coins and frozen addrs
2015-05-31 07:53:43 +02:00
Neil Booth
320f9a3790 get_spendable_coins and frozen addrs
Two callers of get_spendable_coins were removing frozen addrs
before calling.  Put that functionality in the function.
We shouldn't be able to send_from a frozen address.  This was
possible in the current release because logic assumed a two-element
tuple was returned when it is now three-element.  Fix that too.

Command line options listunspent and createrawtransaction currently
ignore frozen addresses.  I'm not sure that's right but I've preserved
that behaviour.

With this patch only the wallet class refers to self.frozen_addresses;
other clients use is_frozen() now.
2015-05-31 14:07:50 +09:00
ThomasV
00ded10810 fix: freeze does not need password 2015-05-31 06:45:51 +02:00
Neil Booth
0f29984f07 Speed up freezing and unfreezing of many addresses
Speedup mainly from writing to storage only once.
Make frozen_addresses a set in memory, as sets give cleaner
code and are more efficient.

Minor change in behaviour: command line freezing used to return
False if the address isn't in the wallet OR the address was already
frozen.  Now it returns more like a success code: it returns False
only if the address isn't in the wallet regardless of frozen state.
Similarly for unfreezing.
2015-05-31 11:54:21 +09:00
ThomasV
d6f4b57d64 help function for python console 2015-05-30 19:13:28 +02:00
ThomasV
92a158b910 proper handling of arg_types. add more options for listaddresses 2015-05-30 18:49:58 +02:00
ThomasV
2ab9272f52 fix positional arguments 2015-05-30 16:14:56 +02:00
ThomasV
966bb3c15f separate help and description for commands 2015-05-30 14:07:48 +02:00
ThomasV
0ad73b0899 better help 2015-05-30 13:38:05 +02:00
ThomasV
d2f3e3f349 fix cmdline listcontacts 2015-05-30 12:35:58 +02:00
Neil Booth
2b66f0d459 Remove pending_servers, self.interfaces is now the complete set of
interfaces we have created.

Existing code has the concept of pending servers, where a connection
thread is started but has not sent a connection notification, and
and interfaces which have received the notification.

This separation caused a couple of minor bugs, and given the cleaner
semantics of unifying the two I don't think the separation is beneficial.
The bugs:

1) When stopping the network, we only stopped the connected interface
threads, not the pending ones.  This would leave Python hanging
on exit if we don't make them daemon threads.

2) start_interface() did not check pending servers before starting
a new thread.  Some of its callers did, but not all, so it was
possible to initiate two threads to one server and "lose" one thread.

Apart form fixing the above two issues, unification causes one more
change in semantics: we are now willing to switch to a connection
that is pending (we don't switch to failed interfaces). I don't
think that is a problem: if it times out we'll just switch
again when we receive the disconnect notification, and previously the
fact that an interface was in the interaces dictionary wasn't a
guarantee the connection was good anyway: we might not have processed
a pending disconnection notification.
2015-05-30 17:42:11 +09:00
Neil Booth
4eaff5678d Avoid change address reuse if possible
As discussed on #electrum yesterday.
Increase change gap limit to 6.
Choose the next unused change address, if any, otherwise pick
one at random from the gap limit.
2015-05-30 17:07:29 +09:00
ThomasV
48f98f75db improve help messages 2015-05-30 09:43:42 +02:00