display locktime for transaction
[electrum-nvc.git] / electrum
index e63057a..a449de3 100755 (executable)
--- a/electrum
+++ b/electrum
@@ -21,6 +21,7 @@ import json
 import optparse
 import os
 import re
+import ast
 import sys
 import time
 import traceback
@@ -89,8 +90,8 @@ def arg_parser():
     parser.add_option("-G", "--gap", dest="gap_limit", default=None, help="gap limit")
     parser.add_option("-W", "--password", dest="password", default=None, help="set password for usage with commands (currently only implemented for create command, do not use it for longrunning gui session since the password is visible in /proc)")
     parser.add_option("-1", "--oneserver", action="store_true", dest="oneserver", default=False, help="connect to one server only")
-    parser.add_option("--bip32", action="store_true", dest="bip32", default=False, help="bip32")
-    parser.add_option("--mpk", dest="mpk", default=False, help="master public key")
+    parser.add_option("--bip32", action="store_true", dest="bip32", default=False, help="bip32 (not final)")
+    parser.add_option("--mpk", dest="mpk", default=False, help="restore from master public key")
     return parser
 
 
@@ -160,6 +161,7 @@ def start_server():
     print_msg("Network daemon connected to " + network.interface.connection_msg)
     from SimpleXMLRPCServer import SimpleXMLRPCServer
     server = SimpleXMLRPCServer(('localhost',8000), allow_none=True, logRequests=False)
+    server.network = network
     server.register_function(lambda: 'pong', 'ping')
     server.register_function(network.synchronous_get, 'synchronous_get')
     server.register_function(network.get_servers, 'get_servers')
@@ -181,9 +183,17 @@ def start_daemon():
         if (pid2 == 0):  # Second child
             server = start_server()
             server.running = True
+            timeout = 60
+            t0 = time.time()
+            server.socket.settimeout(timeout)
             while server.running:
                 server.handle_request()
-            print_msg("Daemon stopped")
+                t = time.time()
+                if t - t0 > 0.9*timeout:
+                    break
+                if not server.network.is_connected():
+                    break
+                t0 = t
         sys.exit(0)
 
     time.sleep(2)
@@ -445,6 +455,10 @@ if __name__ == '__main__':
 
     elif cmd.name == 'setconfig':
         key, value = args[1:3]
+        try:
+            value = ast.literal_eval(value)
+        except:
+            pass
         config.set_key(key, value, True)
         print_msg(True)