X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=electrum;h=1e4acec36aa1c80fda88466f49021f74a007d997;hb=c329a03757556c021411c9d6e9b5cfb1e8628a2f;hp=26a719b12ff8d5a3e0018e186e2dc6f98f25f39e;hpb=a18d21d9464adaebda57cb633a6392302ecf2225;p=electrum-nvc.git diff --git a/electrum b/electrum index 26a719b..1e4acec 100755 --- a/electrum +++ b/electrum @@ -26,16 +26,6 @@ import sys import time import traceback -try: - import ecdsa # todo: 'ecdsa' imported but unused -except ImportError: - sys.exit("Error: python-ecdsa does not seem to be installed. Try 'sudo pip install ecdsa'") - -try: - import aes # todo: 'aes' imported but unused -except ImportError: - sys.exit("Error: AES does not seem to be installed. Try 'sudo pip install slowaes'") - is_local = os.path.dirname(os.path.realpath(__file__)) == os.getcwd() is_android = 'ANDROID_DATA' in os.environ @@ -49,8 +39,12 @@ if __builtin__.use_local_modules: imp.load_module('electrum', *imp.find_module('lib')) imp.load_module('electrum_gui', *imp.find_module('gui')) -from electrum import * # todo: import * is generally frowned upon. should import just what is used -from electrum.util import print_msg, print_stderr +if is_local: + sys.path.append('packages') + + +from electrum import SimpleConfig, Network, Wallet, WalletStorage, NetworkProxy, Commands, known_commands, pick_random_server +from electrum.util import print_msg, print_stderr, print_json, set_verbosity # get password routine def prompt_password(prompt, confirm=True): @@ -70,7 +64,7 @@ def prompt_password(prompt, confirm=True): def arg_parser(): usage = "%prog [options] command" - parser = optparse.OptionParser(prog=usage, add_help_option=False) + parser = optparse.OptionParser(usage=usage, add_help_option=False) parser.add_option("-h", "--help", action="callback", callback=print_help_cb, help="show this help text") parser.add_option("-g", "--gui", dest="gui", help="User interface: qt, lite, gtk, text or stdio") parser.add_option("-w", "--wallet", dest="wallet_path", help="wallet path (default: electrum.dat)") @@ -93,6 +87,7 @@ def arg_parser(): parser.add_option("--bip32", action="store_true", dest="bip32", default=False, help="bip32 (not final)") parser.add_option("--2of3", action="store_true", dest="2of3", default=False, help="create 2of3 wallet") parser.add_option("--mpk", dest="mpk", default=False, help="restore from master public key") + parser.add_option("-m", action="store_true", dest="hide_gui", default=False, help="hide GUI on startup") return parser @@ -101,23 +96,24 @@ def print_help(parser): print_msg("Type 'electrum help ' to see the help for a specific command") print_msg("Type 'electrum --help' to see the list of options") run_command(known_commands['help']) - sys.exit(1) def print_help_cb(self, opt, value, parser): print_help(parser) + sys.exit(1) -def run_command(cmd, password=None, args=[]): - import socket + + +def run_command(cmd, password=None, args=None): + if args is None: + args = [] # Do not use mutables as default values! if cmd.requires_network and not options.offline: network = NetworkProxy(config) if not network.start(start_daemon= (True if cmd.name!='daemon' else False)): print "Daemon not running" sys.exit(1) - - if wallet: wallet.start_threads(network) wallet.update() @@ -140,9 +136,9 @@ def run_command(cmd, password=None, args=[]): if type(result) == str: - util.print_msg(result) + print_msg(result) elif result is not None: - util.print_json(result) + print_json(result) @@ -151,6 +147,7 @@ def run_command(cmd, password=None, args=[]): if __name__ == '__main__': + wallet = None parser = arg_parser() options, args = parser.parse_args() if options.portable and options.wallet_path is None: @@ -338,10 +335,10 @@ if __name__ == '__main__': if cmd.name == 'importprivkey': # See if they specificed a key on the cmd line, if not prompt if len(args) == 1: - args[1] = prompt_password('Enter PrivateKey (will not echo):', False) + args.append(prompt_password('Enter PrivateKey (will not echo):', False)) elif cmd.name == 'signrawtransaction': - args = [cmd, args[1], json.loads(args[2]) if len(args) > 2 else [], json.loads(args[3]) if len(args) > 3 else []] + args = [cmd, args[1], json.loads(args[2]) if len(args) > 2 else [] ] elif cmd.name == 'createmultisig': args = [cmd, int(args[1]), json.loads(args[2])] @@ -369,6 +366,7 @@ if __name__ == '__main__': elif cmd.name == 'help': if len(args) < 2: print_help(parser) + sys.exit(1) # check the number of arguments if len(args) - 1 < cmd.min_args: