def wallet_generate_recover(method, walletspath, default_wallet_name='wallet.json'): if jm_single().config.get("POLICY", "segwit") == "true": #Here using default callbacks for scripts (not used in Qt) return wallet_generate_recover_bip39(method, walletspath, default_wallet_name) if method == 'generate': seed = btc.sha256(os.urandom(64))[:32] words = mn_encode(seed) print('Write down this wallet recovery seed\n\n' + ' '.join(words) + '\n') elif method == 'recover': words = raw_input('Input 12 word recovery seed: ') words = words.split() # default for split is 1 or more whitespace chars if len(words) != 12: print('ERROR: Recovery seed phrase must be exactly 12 words.') return False seed = mn_decode(words) print(seed) password = cli_get_wallet_passphrase_check() if not password: return False password_key = btc.bin_dbl_sha256(password) encrypted_seed = encryptData(password_key, seed.decode('hex')) return persist_walletfile(walletspath, default_wallet_name, encrypted_seed)
total_balance += balance_depth print('for mixdepth=%d balance=%.8fbtc' % (m, balance_depth / 1e8)) print('total balance = %.8fbtc' % (total_balance / 1e8)) elif method == 'generate' or method == 'recover': if method == 'generate': seed = btc.sha256(os.urandom(64))[:32] words = mn_encode(seed) print('Write down this wallet recovery seed\n\n' + ' '.join(words) + '\n') elif method == 'recover': words = raw_input('Input 12 word recovery seed: ') words = words.split() # default for split is 1 or more whitespace chars if len(words) != 12: print('ERROR: Recovery seed phrase must be exactly 12 words.') sys.exit(0) seed = mn_decode(words) print(seed) password = getpass.getpass('Enter wallet encryption passphrase: ') password2 = getpass.getpass('Reenter wallet encryption passphrase: ') if password != password2: print('ERROR. Passwords did not match') sys.exit(0) password_key = btc.bin_dbl_sha256(password) encrypted_seed = encryptData(password_key, seed.decode('hex')) timestamp = datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S") walletfile = json.dumps({'creator': 'joinmarket project', 'creation_time': timestamp, 'encrypted_seed': encrypted_seed.encode('hex'), 'network': get_network()}) walletname = raw_input('Input wallet file name (default: wallet.json): ') if len(walletname) == 0: