sys.exit("Error: AES does not seem to be installed. Try 'sudo pip install slowaes'")
try:
- from lib import Wallet, WalletSynchronizer, format_satoshis, mnemonic, prompt_password, SimpleConfig, pick_random_server
+ from lib import Wallet, Interface, WalletSynchronizer, WalletVerifier, format_satoshis, mnemonic, SimpleConfig, pick_random_server
except ImportError:
- from electrum import Wallet, WalletSynchronizer, format_satoshis, mnemonic, prompt_password, SimpleConfig, pick_random_server
+ from electrum import Wallet, Interface, WalletSynchronizer, WalletVerifier, format_satoshis, mnemonic, SimpleConfig, pick_random_server
from decimal import Decimal
'Verifies a signature\nSyntax: verifymessage <address> <signature> <message>\nIf you want to lead or end a message with spaces, or want double spaces inside the message make sure you quote the string. I.e. " Hello This is a weird String "',
'eval':
"Run python eval() on an object\nSyntax: eval <expression>\nExample: eval \"wallet.aliases\"",
+ 'set':
+ "Set wallet parameter. (gui)",
'deseed':
"Remove seed from the wallet. The seed is stored in a file that has the name of the wallet plus '.seed'",
'reseed':
'label', 'contacts',
'help', 'validateaddress',
'signmessage', 'verifymessage',
- 'eval', 'create', 'addresses',
+ 'eval', 'set', 'create', 'addresses',
'import', 'seed',
'deseed','reseed',
'freeze','unfreeze',
protected_commands = ['payto', 'password', 'mktx', 'seed', 'import','signmessage' ]
+# get password routine
+def prompt_password(prompt, confirm=True):
+ import getpass
+ if sys.stdin.isatty():
+ password = getpass.getpass(prompt)
+ if password and confirm:
+ password2 = getpass.getpass("Confirm: ")
+ if password != password2:
+ sys.exit("Error: Passwords do not match.")
+ else:
+ password = raw_input(prompt)
+ if not password:
+ password = None
+ return password
+
+
+
if __name__ == '__main__':
usage = "usage: %prog [options] command\nCommands: "+ (', '.join(known_commands))
parser = optparse.OptionParser(prog=usage)
- parser.add_option("-g", "--gui", dest="gui", help="gui")
+ parser.add_option("-g", "--gui", dest="gui", help="User interface: qt, lite, gtk or text")
parser.add_option("-w", "--wallet", dest="wallet_path", help="wallet path (default: electrum.dat)")
parser.add_option("-o", "--offline", action="store_true", dest="offline", default=False, help="remain offline")
parser.add_option("-a", "--all", action="store_true", dest="show_all", default=False, help="show all addresses")
#this entire if/else block is just concerned with importing the
#right GUI toolkit based the GUI command line option given
if cmd == 'gui':
- pref_gui = config.get('gui','qt')
+ pref_gui = config.get('gui','classic')
if pref_gui == 'gtk':
try:
import lib.gui as gui
except ImportError:
import electrum.gui as gui
- elif pref_gui == 'qt':
+ elif pref_gui in ['classic', 'qt']:
try:
import lib.gui_qt as gui
except ImportError:
import lib.gui_lite as gui
except ImportError:
import electrum.gui_lite as gui
+ elif pref_gui == 'text':
+ try:
+ import lib.gui_text as gui
+ except ImportError:
+ import electrum.gui_text as gui
else:
sys.exit("Error: Unknown GUI: " + pref_gui )
gui = gui.ElectrumGui(wallet, config)
- interface = WalletSynchronizer(wallet, config, True, gui.server_list_changed)
- interface.start()
+ wallet.interface = Interface(config, True, gui.server_list_changed)
+ wallet.interface.start()
+
+ WalletSynchronizer(wallet, config).start()
+ WalletVerifier(wallet, config).start()
try:
found = config.wallet_file_exists
print eval(args[1])
wallet.save()
+ elif cmd == 'set':
+ key, value = args[1:3]
+ if key in ['gui', 'server', 'proxy', 'fee', 'gap_limit', 'use_change']:
+ wallet.config.set_key(key, value, True)
+ print True
+ else:
+ print False
+
elif cmd in [ 'addresses']:
for addr in wallet.all_addresses():
if options.show_all or not wallet.is_change(addr):
elif cmd == 'freeze':
addr = args[1]
- print self.wallet.freeze(addr)
+ print wallet.freeze(addr)
elif cmd == 'unfreeze':
addr = args[1]
- print self.wallet.unfreeze(addr)
+ print wallet.unfreeze(addr)
elif cmd == 'prioritize':
addr = args[1]
- print self.wallet.prioritize(addr)
+ print wallet.prioritize(addr)
elif cmd == 'unprioritize':
addr = args[1]
- print self.wallet.unprioritize(addr)
+ print wallet.unprioritize(addr)