def init_daemon(config_options): config = SimpleConfig(config_options) wallet_path = config.get_wallet_path() if not WalletStorage.files_are_matched_by_path(wallet_path): print("Error: Wallet file not found.") print("Type 'electrum-sv create' to create a new wallet, " "or provide a path to a wallet with the -w option") sys.exit(0) storage = WalletStorage(wallet_path) if storage.is_encrypted(): if 'wallet_password' in config_options: print( 'Warning: unlocking wallet with commandline argument \"--walletpassword\"' ) password = config_options['wallet_password'] elif config.get('password'): password = config.get('password') else: password = prompt_password('Password:'******'password'] = password
def init_cmdline(config_options, server): config = SimpleConfig(config_options) cmdname = config.get('cmd') cmd = known_commands[cmdname] if cmdname == 'signtransaction' and config.get('privkey'): cmd.requires_wallet = False cmd.requires_password = False if cmdname in ['payto', 'paytomany'] and config.get('unsigned'): cmd.requires_password = False if cmdname in ['payto', 'paytomany'] and config.get('broadcast'): cmd.requires_network = True wallet_path = config.get_wallet_path() if cmd.requires_wallet and not WalletStorage.files_are_matched_by_path( wallet_path): print("Error: Wallet file not found.") print("Type 'electrum-sv create' to create a new wallet, " "or provide a path to a wallet with the -w option") sys.exit(0) # instantiate wallet for command-line storage = WalletStorage(wallet_path) # important warning if cmd.name in ['getprivatekeys']: print("WARNING: ALL your private keys are secret.", file=sys.stderr) print( "Exposing a single private key can compromise your entire wallet!", file=sys.stderr) print( "In particular, DO NOT use 'redeem private key' services " "proposed by third parties.", file=sys.stderr) # commands needing password if ((cmd.requires_wallet and storage.is_encrypted() and server is None) or (cmd.requires_password and (storage.get('use_encryption') or storage.is_encrypted()))): if config.get('password'): password = config.get('password') else: password = prompt_password('Password:'******'password'] = password if cmd.name == 'password': new_password = prompt_password('New password:'******'new_password'] = new_password return cmd, password