Commit Graph

2545 Commits

Author SHA1 Message Date
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
dabura667 678ec84267 Add Chinese Simplified wordlist 2015-08-20 23:18:47 +09:00
ThomasV 37034bdf7f listunspent: convert value to float 2015-08-19 11:10:55 +02:00
ThomasV 6bbfef5198 add timestamp to history command output, convert value to float 2015-08-19 11:04:06 +02:00
ThomasV 93b674982e fix tx strip 2015-08-18 16:33:51 +02:00
ThomasV f583fcfedb do not import dns on android 2015-08-18 12:15:56 +02:00
ThomasV 3f1e4ae3b1 strip spaces from raw tx 2015-08-18 10:17:53 +02:00
ThomasV 4a514c7638 version 2.4.2 and release notes 2015-08-17 13:20:45 +02:00
ThomasV fa9ce51685 deprecate dumpprivkeys 2015-08-16 16:30:55 +02:00
ThomasV 02e81a3655 read command line arguments from stdin if '-' is passed 2015-08-16 16:11:52 +02:00
ThomasV 5686499eae fix #1400 2015-08-16 13:50:03 +02: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 438bc94dce fix #1399 2015-08-16 11:25:23 +02:00
ThomasV ede7423bf2 Merge pull request #1397 from romanz/master
Add tests to bitcoin.py and ripemd.py
2015-08-15 13:42:59 +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
Roman Zeyde ac8e792c58 test_ripemd: add simple test case for ripemd module 2015-08-15 09:52:27 +03:00
Roman Zeyde fa412c3a86 test_bitcoin: add tests for int packing 2015-08-15 09:41:20 +03:00
Roman Zeyde 175fef2d56 test_bitcoin: add test case for seeds 2015-08-15 09:20:01 +03:00
ThomasV 8a3e5032b1 Merge pull request #1389 from romanz/master
remove unused code
2015-08-14 16:48:23 +02:00
ThomasV d69da1ef43 add/remove transaction: remove unused tx_height parameter 2015-08-14 15:30:00 +02:00
ThomasV e9b346ed29 add command for master private key 2015-08-14 15:23:50 +02:00
Roman Zeyde abc7429b0f bitcoin: remove multiple imports 2015-08-09 19:35:02 +03:00
Roman Zeyde b5854b6e8b account: remove unused variables 2015-08-09 19:35:02 +03:00
Roman Zeyde a3a01be8ce remove unused code 2015-08-09 19:02:04 +03:00
ThomasV c3991091de move init_qt hook 2015-08-07 20:06:31 +02:00
ThomasV 6b87256795 sign tx with empty scriptSig inputs 2015-08-07 17:11:42 +02:00
ThomasV 5f413aca1c rm unneeded float conversion 2015-08-07 14:36:43 +02:00
ThomasV c844d22a19 synchronous_get: return -> raise exception 2015-08-07 12:22:47 +02:00
ThomasV 85d9b8aa8d fix: dePem cert before parsing 2015-08-07 11:58:59 +02:00
ThomasV ca3c320ef4 simplify x509 constructor 2015-08-07 11:39:30 +02:00
ThomasV 713fa00d86 fix estimatefee for daemon 2015-08-07 10:54:32 +02:00
ThomasV 65c7dfafbc check alias in signrequest 2015-08-07 09:00:00 +02:00
ThomasV 34e3261efd fix estimate_fee 2015-08-06 19:26:34 +02:00
ThomasV 714445aba8 fix: wallet.is_used 2015-08-06 19:19:25 +02:00
ThomasV e93ff18776 rename help -> commands 2015-08-06 15:52:38 +02:00
ThomasV aadffa0c8f check_ssl_config: verify pubkey 2015-08-05 20:59:51 +02:00
ThomasV a9e74da11c check SSL certificate in config dialog 2015-08-05 20:49:45 +02:00
ThomasV 43880d452e dynamic fees 2015-08-05 15:45:28 +02:00
ThomasV 476d198be9 fix missing occurences of X509.parse 2015-08-04 18:31:08 +02:00
ThomasV e8d30129ea replace TLSLite dependency with minimal RSA implementation 2015-08-04 18:16:06 +02:00
Neil Booth 4c8408b42d Print reason for failure to connect headers
Used to fail just with a "header didn't connect" message, now
it gives a reason too.
2015-08-01 13:09:52 +09:00
ThomasV 8ae64064b6 dont silence dns errors 2015-07-31 21:56:22 +02:00
ThomasV 380bccacf0 request_queue.put should never block, because maxsize is not set 2015-07-31 20:11:12 +02:00
ThomasV 963ec4ca3e dnssec: don't call get_default_resolver 2015-07-31 20:02:55 +02:00
ThomasV 9938fbd160 version 2.4.1 2015-07-31 14:52:16 +02:00
ThomasV 465d1dfd8b fix #1378 2015-07-31 14:51:48 +02:00
ThomasV 2ec19e7528 fix bugs with ecdsa/dnssec 2015-07-31 13:49:14 +02:00
Eagle[TM] 4731418af9 Use ssl.PROTOCOL_TLSv1 on client side to avoid SSLv23 2015-07-30 20:40:05 +02:00