Commit Graph

645 Commits

Author SHA1 Message Date
ThomasV
3a56b00da7 follow up previous commit 2016-08-25 12:28:06 +02:00
ThomasV
b907a668ec wizard: add derivation passphrase and bip39 support 2016-08-25 09:48:11 +02:00
ThomasV
b0afdf4614 fix command line: create, restore, importprivkey 2016-08-12 11:56:27 +02:00
ThomasV
31e9670502 make 'createrawtx' command not require wallet 2016-05-16 14:39:01 +02:00
ThomasV
671fe73788 set KIVY_DATA_DIR in main script 2016-03-08 04:55:58 +01:00
ThomasV
100ff51cc4 add import for pyinstaller 2016-02-24 19:16:59 +01:00
ThomasV
c26f898a4f add import for pyinstaller 2016-02-24 19:12:38 +01:00
ThomasV
73822e8ec2 fix: pass cwd with config_options 2016-02-24 16:57:58 +01:00
ThomasV
305843999e Relicensing 2016-02-24 10:20:30 +01:00
ThomasV
51ca7a056b minor fixes 2016-02-05 08:56:23 +01:00
ThomasV
9efbb57766 init plugins only if needed 2016-02-01 22:09:55 +01:00
ThomasV
ddc1869551 disambiguate types returned by get_fd_or_server 2016-02-01 13:10:01 +01:00
ThomasV
690c862923 move static methods away from daemon class; restore initial logic 2016-02-01 10:20:22 +01:00
ThomasV
3b00f62d46 remove another unnecessary static method 2016-02-01 09:25:57 +01:00
ThomasV
1c83c3e060 do not declare pointless static methods 2016-02-01 09:12:53 +01:00
Neil Booth
ec24087b5a Move some logic from electrum to daemon
Ultimate goal is to try and stop the daemon race at startup.
Need to isolate logic of checking for server and creating one.
2016-01-31 11:43:11 +09:00
Neil Booth
f6f7113978 daemon: create network inside constructor 2016-01-31 10:58:27 +09:00
ThomasV
ed401761f1 sorry, confused
This reverts commit 5e6a55edd5.
2016-01-30 11:24:53 +01:00
ThomasV
5e6a55edd5 Revert "Revert "Daemon network cleanup""
This reverts commit 2c7b10a776.
2016-01-30 11:13:11 +01:00
ThomasV
2c7b10a776 Revert "Daemon network cleanup"
This reverts commit 0a1b3eac9c.
2016-01-29 17:37:56 +01:00
Neil Booth
58d5215e2e No need to pass daemon and network together
The daemon has the network
2016-01-29 22:25:59 +09:00
Neil Booth
0a1b3eac9c Daemon network cleanup
All Daemon creation was preceded by Network creation, based on
config, and passing it to Daemon.
As config is passed to Daemon, it might as well create its own
network and the code is in one place.
2016-01-29 22:14:50 +09:00
ThomasV
307ec36d34 Merge branch 'master' of git://github.com/spesmilo/electrum 2016-01-29 09:29:19 +01:00
ThomasV
81b9f8281d fix #1656 2016-01-29 09:29:07 +01:00
valesi
f7dfffd30f Minor fixes - indentation and lone self.
6ba43637f5/electrum (L57)
has tab instead of spaces.

6ba43637f5/gui/kivy/nfc_scanner/scanner_android.py (L118)
has lone `self.`
2016-01-28 14:05:36 -08:00
ThomasV
6a833d9f98 electrum: check_imports 2016-01-28 14:38:10 +01:00
akshayaurora
900346b89e kivy:Improve startup speed 2016-01-27 20:21:20 +05:30
ThomasV
80c1aab9c3 remove is_kivy test 2016-01-26 15:23:33 +01:00
Neil Booth
93e0c72ce2 Plugins: start thread at end of constructor
Don't add jobs twice
2016-01-24 19:59:58 +09:00
Neil Booth
028ab925ed Remove unused imports 2016-01-24 19:52:37 +09:00
Neil Booth
dee402b961 Plugin wallets: better error when unloadable
Used to get:

jsonrpclib.jsonrpc.ProtocolError: (-32603, u'Server error:   File "src/electrum/lib/plugins.py", line 144, in wallet_plugin_loader | KeyError: \'trustedcoin\'')

Now get:

jsonrpclib.jsonrpc.ProtocolError: (-32603, u'Server error:   File "src/electrum/lib/plugins.py", line 81, in load_plugin | RuntimeError: cmdline implementation for trustedcoin plugin not found')
2016-01-24 19:39:59 +09:00
ThomasV
e5aa543707 fix #1622 2016-01-10 21:00:41 +01:00
ThomasV
62868ab29a Register loaded wallets in daemon, to prevent a wallet from being opened twice.
Simplify the wizard logic.
2016-01-06 00:58:43 +01:00
Neil Booth
d63e754c67 Remove some unused hook infrastructure 2016-01-01 19:15:01 +09:00
ThomasV
fb8f9e55ef Cleanup main script, with semantic changes:
The --offline flag applies only to GUI.
Commands must use the daemon if a daemon is running, otherwise they are run offline.
Commands that only require the wallet do not have the require_network flag.
2015-12-23 15:59:32 +01:00
ThomasV
93573282bf fix wallet saving 2015-12-23 15:23:33 +01:00
ThomasV
acbe67fd1f separation between RPC and non-RPC commands. 2015-12-23 10:54:31 +01:00
Neil Booth
e1c0298fc2 Write the wallet less often
This should speed up synchronization / restoration of large wallets.
Wallets are written only when they switch to up_to_date state, or
when stop_threads() is called when closing the daemon, or when
a command line command finishes.
2015-12-20 15:47:46 +09:00
ThomasV
23868d5769 commands that require wallet require daemon now 2015-12-15 10:39:25 +01:00
ThomasV
74a9e2296c separate Network and Plugins 2015-12-03 11:18:10 +01:00
ThomasV
c7b1721f58 fix cmdline trezor 2015-12-01 12:00:18 +01:00
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
ThomasV
39af17bc23 load wallets in daemon 2015-11-28 15:37:51 +01:00
ThomasV
00f298d3b1 revert e9c101f 2015-11-27 15:39:31 +01:00
ThomasV
e9c101f0c8 daemon: use daemon threads 2015-11-27 09:54:01 +01:00
ThomasV
d8ca881457 remove unused setting 2015-11-25 19:09:32 +01:00
ThomasV
1207ad3ba4 fix: websocket uses network object 2015-11-25 10:48:34 +01:00
ThomasV
2934fd17be fix websockets 2015-11-25 10:32:46 +01:00
ThomasV
b727824eed fix #1554: use AF_INET instead of AF_UNIX, and write port number to lockfile 2015-11-19 12:42:11 +01:00
ThomasV
7641137ecc simplify get_daemon 2015-11-19 11:05:49 +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
826c44e500 restore initial indentation 2015-10-28 11:13:45 +01:00
ThomasV
142b5532ec revert to previous restore method, without daemon 2015-10-28 11:11:41 +01:00
ThomasV
ca9eb50821 dont create wallet instance twice 2015-10-28 11:03:39 +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
26682491b2 generic restore from command line 2015-10-27 14:33:41 +01:00
ThomasV
22575b9760 dont accept payment requests without uri 2015-10-23 11:20:32 +02:00
ThomasV
610ae91310 restore offline mode with gui 2015-10-16 23:46:53 +02:00
ThomasV
a5e94ef0e8 kivy: use plugins 2015-10-13 12:12:49 +02:00
ThomasV
f3bd1662f7 fix web request server. fixes #1455 2015-09-30 11:06:27 +02:00
ThomasV
52315fdb72 detect kivy from os.environ 2015-09-07 16:44:17 +02:00
Neil Booth
b5f986ee56 Torwards sane signalling for exchange_rate plugin 2015-09-05 21:47:35 +09:00
ThomasV
3cc7c1454b move back URI rewriting to main electrum script 2015-09-03 11:18:35 +02:00
Neil Booth
87cff8e380 Check URI in "electrum" because of ambiguity 2015-09-03 18:07:15 +09:00
Neil Booth
27917af2bf Get URIs working properly for multiple windows 2015-09-03 17:52:41 +09: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
Neil Booth
49797c3094 Create a Plugins class
Encapsulates plugin logic and removes global variable ugliness.
2015-09-03 12:02:03 +09:00
ThomasV
bdb4d3ecb8 move methods calling installwizard to main gui class 2015-09-02 12:05:33 +02:00
ThomasV
93c468504e use the parent config instance when daemon starts a window 2015-09-02 09:55:45 +02:00
ThomasV
ba2570b8aa check that GUI has new_window method 2015-09-01 10:25:20 +02:00
ThomasV
0e2db1e0ca don't try to open window if started in daemon mode 2015-09-01 10:17:55 +02:00
Neil Booth
2d05e7d891 Merge the network and network_proxy 2015-08-31 12:00:38 +09:00
ThomasV
8b7a8b1337 decode json args after sendind over socket 2015-08-30 17:46:51 +02: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
ThomasV
064f0b71e2 dns is used by android now 2015-08-18 12:36:12 +02:00
ThomasV
f583fcfedb do not import dns on android 2015-08-18 12:15:56 +02:00
ThomasV
89677c47f7 cmdline: read all arguments before parsing 2015-08-17 09:46:50 +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
65c7dfafbc check alias in signrequest 2015-08-07 09:00:00 +02:00
ThomasV
5ddafa8b14 rm tlslite import 2015-08-04 19:29:43 +02:00
ThomasV
77b0e7be5e network: initial status should be 'unknown', distinct from 'connecting' 2015-07-30 11:32:16 +02:00
ThomasV
35923f1df0 add dns to imports 2015-07-29 18:37:00 +02:00
ThomasV
e2185da094 sleep to let socket threads timeout 2015-07-18 14:03:52 +02:00
Matt Tanous
dac89e212c Update electrum 2015-07-06 18:15:22 -06:00
ThomasV
145bf5cf0a rename decodetx and sendtx commands. merge mktx and payto commands. 2015-06-10 23:21:25 +02:00
ThomasV
2863d19579 command-line handler for trezor 2015-06-10 22:08:19 +02:00
ThomasV
ddef165e18 updates for android 2015-06-09 23:18:32 +02:00
ThomasV
fbc68d94d6 pop config variables from cmd line 2015-06-07 17:45:13 +02:00
ThomasV
4726d3a1fc minor fix: var name 2015-06-02 14:17:14 +02:00
ThomasV
b5435a16e8 fix auto_connect name displayed in status 2015-06-02 11:41:41 +02:00
ThomasV
088d8e8415 show request status 2015-06-02 11:36:06 +02:00
ThomasV
e4946cf26e setconfig: return False on error 2015-06-02 11:05:21 +02:00
ThomasV
e5b6b05482 show auto-connect in daemon status 2015-06-01 11:05:23 +02:00
ThomasV
ddd6a58cc7 commands: extract params and options from arguments 2015-05-31 22:42:34 +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
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
aa7f056d02 minor fix: sys.argv length 2015-05-31 08:36:12 +02:00
ThomasV
9acc0e4ed0 minor formatting 2015-05-31 08:06:20 +02:00
ThomasV
92a158b910 proper handling of arg_types. add more options for listaddresses 2015-05-30 18:49:58 +02:00
ThomasV
bf98b547e1 fix bug in cmd.params 2015-05-30 17:09:17 +02:00
ThomasV
d2f3e3f349 fix cmdline listcontacts 2015-05-30 12:35:58 +02:00
ThomasV
701527df20 fix -P option 2015-05-30 06:56:45 +02:00
ThomasV
3ddbbc1008 Parse arguments with argparse.
Move parser to commands.py
2015-05-29 19:24:50 +02:00
Neil Booth
39fe24b4d3 Rename auto_cycle to auto_connect in config
User config is updated if appropriate.
Add tests behaviour is as expected.
Just the one rename-it reference to auto_cycle remains.
2015-05-25 16:18:52 +09:00
Neil Booth
01d8f79a75 Clean up pick_random_server() and filter_protocol() and their
call sites.

Remove unused imports and redundant random pick of server
2015-05-24 21:07:35 +09:00
ThomasV
d40c12c949 check gui when loading plugins 2015-05-24 09:26:28 +02:00
ThomasV
8f98ea4aca make plugins available without the GUI 2015-05-23 10:38:19 +02:00
ThomasV
c2a4252065 do not pass config to storage. request height from network_proxy if connected 2015-05-08 10:58:54 +02:00
ThomasV
15826e18b8 Merge pull request #1173 from kyuupichan/is_local
Determine is_local not based on cwd but on existence of setup-release.py
2015-04-30 06:58:57 +02:00
Neil Booth
13341dd4b5 Remove apparenlty dead import and __builtin__ assignment.
Googling reveals this code is likely a remnant of prior code
and no longer needed.  It appears to have no effect on my system.
2015-04-30 10:31:37 +09:00
Neil Booth
d27d80eb28 Should have been setup-release.py 2015-04-30 08:29:15 +09:00
Neil Booth
f732365821 Determine is_local not based on cwd but on existence of setup-release.py
The goal is to be able to run local instances from arbitrary directories.
It seems that the chances of having a setup-release.py in the same directory
as an installed electrum are extremely remote: not only is the name unusual,
but the file isn't installed anyway.
2015-04-30 08:23:57 +09:00
ThomasV
8f3add1e33 filter out -psn argument 2015-04-24 23:31:31 +02:00
ThomasV
41d498fda0 open payment request file passed as argument 2015-04-21 18:08:35 +02:00
ThomasV
f9de19bd78 Merge pull request #1142 from ptrcarta/master
delete -psn arg on osx, fixes #1080
2015-04-20 12:10:50 +02:00
ThomasV
47f89f43b6 get rid of pyasn1 dependencies 2015-04-14 15:10:44 +02:00
ptrcarta
f6b6bbbbae fixes osx bug where user couldn't change proxy or connect to network
by default osx passes a -psn arg when launching an app from command
line. this is a process serial number argument and py2app when used with
emulate_argv=True removes it.
commit d2097c15d9 removed this, thus
introducing the -psn arg on launch. this is misinterpreted by the arg
parser as a proxy setting, breaking networking.
2015-04-11 18:53:49 +02:00
ThomasV
a3422d3fae generic multisig wallet constructor. fixes #1129 2015-04-03 11:27:57 +02:00
ThomasV
5f29017c9d pass config.path to daemon (exemptore). fixes #901 2015-04-02 12:12:18 +02:00
ThomasV
0200778ac1 require user to start daemon explicitly 2015-03-23 11:50:13 +01:00
ThomasV
b1b1a85e80 require ca bundle 2015-03-19 13:42:45 +01:00
ThomasV
c3cba78659 remove time.sleep() used for daemon threads 2015-03-13 23:10:54 +01:00
ThomasV
1d311b0a04 don't try to import socks anymore 2015-03-01 10:27:05 +01:00
ThomasV
77d010bcec store gui last wallet separately, to fix command line 2015-02-27 10:37:13 +01:00
ThomasV
80284d5516 updates for the old android GUI 2015-02-24 18:45:09 +01:00
ThomasV
1f58673915 add python mode for emacs 2015-02-21 12:24:40 +01:00
Andy Weidenbaum
80446aca9c s/defaut/default/ 2015-02-11 21:53:22 -08:00
ThomasV
19d7a81d70 restrict plugins to qt for now 2015-02-04 12:05:46 +01:00
ThomasV
b6c1b22c35 use sys.exit 2015-02-03 12:29:04 +01:00
ThomasV
935a9a980d disable auo-connect is --server option is passed. fixes #992 2015-01-30 10:19:22 +01:00
ThomasV
56e80566f9 simplify packages insertion 2015-01-27 13:50:02 +01:00
Maran
2bf32880e8 Add dynamic package loading for Py2App osx binaries 2015-01-27 12:18:04 +01:00
ThomasV
3ef3bebeb3 print debug message with ca bundle status 2015-01-27 10:12:44 +01:00
ThomasV
4120678dff add google protobuf to packages 2015-01-27 10:01:40 +01:00
ThomasV
9d40fb2ea8 detect if we are in a pyinstaller bundle 2015-01-26 16:53:59 +01:00
ThomasV
16c72d286c try to import all python dependencies from the main script 2015-01-26 14:14:16 +01:00
ThomasV
576954555c fix: check_password for imported wallets 2015-01-23 00:18:58 +01:00
ThomasV
63c7a27d7e add InvalidPassword exception 2014-12-03 22:35:05 +01:00
ThomasV
72489da26d signtxwithkey: use prompt if privkey is not passed 2014-10-30 17:03:29 +01:00
ThomasV
581ed1ed26 separate signtxwithkey and signtxwithwallet, and simplify sign_transaction 2014-10-30 16:36:29 +01:00
ThomasV
cfa965fdae set env to python2 2014-09-19 14:05:00 +02:00
ThomasV
484cd3983b init_plugins only for gui 2014-09-18 10:16:05 +02:00
ThomasV
b782a1bb3f fix argument for check_seed 2014-09-15 14:42:41 +02:00
ThomasV
bd6f21232d fix restore from mpk command line 2014-09-08 05:17:56 +02:00
ThomasV
65a155401b remove 2of3 option in cmd line 2014-09-02 16:01:41 +02:00
ThomasV
e9f4ed0474 remove deprecated usb option 2014-09-02 15:36:34 +02:00
ThomasV
79588eb4da init plugins before gui. register wallet types in plugin constructor 2014-08-31 15:33:20 +02:00
ThomasV
c7f667e2ed separate add_seed from create_master_keys 2014-08-29 14:11:59 +02:00
ThomasV
4d71707be8 add portuguese wordlist, and adapt wordlist parsing 2014-08-28 17:30:44 +02:00
ThomasV
4dcdcbc068 move mnemonic to separate class and use slush's wordlist. new commands: make_seed and check_seed 2014-08-28 15:37:42 +02:00
ThomasV
f4b390a79f bip44 2014-08-21 18:24:47 +02:00
ThomasV
13a01b11d2 daemon messages 2014-08-18 13:40:08 +02:00
ThomasV
2c6608493f move sys.path addition before imp 2014-08-14 12:57:28 +02:00
ThomasV
58c817f81a close interfaces on shutdown 2014-07-29 12:13:21 +02:00
ThomasV
087490a197 spawn daemon using daemon.py 2014-07-28 23:42:14 +02:00
ThomasV
035ecbc7cd redo inter-thread communication using pipes 2014-07-27 17:13:46 +02:00
ThomasV
37ad7d8b0b gui should always use daemon if it is running 2014-07-25 16:44:22 +02:00
ThomasV
af3fd62fd4 send server height and server lag with daemon 2014-07-25 16:32:19 +02:00
ThomasV
96070246b7 proper start and stop commands for daemon 2014-07-25 15:42:28 +02:00
ThomasV
d60dc94e16 daemon status info 2014-07-25 15:12:39 +02:00
ThomasV
2120b1a573 command line: wait until daemon is connected 2014-07-25 13:30:27 +02:00
ThomasV
3e6f903da3 daemon: use Popen with close_fds=True 2014-07-25 11:13:49 +02:00
ThomasV
9ee0614edb make daemon usable with the GUI 2014-07-24 16:12:18 +02:00
ThomasV
1e91c0f254 fix #744 2014-06-30 18:32:00 +02:00
ThomasV
f635c5110c try pyasn1-modules as well 2014-06-30 18:12:39 +02:00
pooler
4ffd117640 Fix usage summary 2014-06-30 14:59:57 +02:00
Chris Glass
8997c760a2 Do not use mutables as default values!
This blog article explains why (just an example, many other articles
discuss this ad nauseam):
http://pythonconquerstheuniverse.wordpress.com/2012/02/15/mutable-default-arguments/
2014-06-25 17:43:45 +02:00
ThomasV
0636ef8b32 compact serialized format for unsigned and partially signed transactions. 2014-06-21 21:06:09 +02:00
ThomasV
2b2a8d17df bundle dependencies in 'packages' dir. use qrcode instead of pyqrnative 2014-06-17 11:02:46 +02:00
ThomasV
bf969c14ff option to start hidden. fixes #720 2014-06-11 19:21:01 +02:00
ThomasV
52d4437d50 fix bug #717 2014-06-11 13:47:32 +02:00
ThomasV
fd2228feab replace import * 2014-06-05 16:29:23 +02:00
ThomasV
31226b8a34 add pbkdf2 dependency 2014-06-05 16:19:13 +02:00
bolkin
52ba16da3d fix console importprivkey error 2014-05-23 04:19:45 +00:00
ThomasV
a18d21d946 fix cmd line wallet creation. fixes #684 2014-05-08 15:18:38 +02:00
Andy Weidenbaum
8985f2d73a empty seed error msg 2014-05-07 13:04:42 -07:00
ThomasV
dc22ba4d5e print warning in stderr, not stdout 2014-04-30 15:27:50 +02:00
ThomasV
63769c84d1 fix: add_seed 2014-04-27 13:24:31 +02:00
ThomasV
5d9b9492e1 abstract and improve seed and key methods 2014-04-21 22:09:15 +02:00
ThomasV
913ef26dd9 fix: create accounts 2014-04-13 18:41:10 +02:00
ThomasV
e0ad81acdd save cold seed 2014-04-09 08:00:49 +02:00
ThomasV
102bc204d5 hooks and workflow for 2of3 wallets 2014-04-06 21:38:53 +02:00
ThomasV
5a43b633d6 update bip32 accounts and wallet 2014-04-01 11:25:12 +02:00
ThomasV
7dd296273f move daemon spawning code into NetworkProxy class 2014-03-16 12:00:08 +01:00
ThomasV
8395bfe67f disable bip32 option before release 2014-03-15 11:10:06 +01:00
ThomasV
0c786be46f remove print statement 2014-03-11 08:37:58 +01:00
ThomasV
489413d358 move start_daemon code to main script 2014-03-11 08:33:58 +01:00
ThomasV
e6bbf22003 add server to daemon print statement 2014-03-11 07:18:50 +01:00
ThomasV
6e30894af6 daemon; initial commit 2014-03-10 16:16:27 +01:00
ThomasV
271dfeb245 eval arg passed to setconfig, to avoid storing boolean as string 2014-03-03 12:29:10 +01:00
ThomasV
2070672ac7 improve help messages for options 2014-03-02 19:23:54 +01:00
ThomasV
a5629539e4 add timeout to daemon, update getaddressbalance 2014-03-02 10:31:34 +01:00