def is_old_seed(seed): import old_mnemonic words = seed.strip().split() try: old_mnemonic.mn_decode(words) uses_electrum_words = True except Exception: uses_electrum_words = False try: seed.decode('hex') is_hex = (len(seed) == 32 or len(seed) == 64) except Exception: is_hex = False return is_hex or (uses_electrum_words and (len(words) == 12 or len(words) == 24))
def is_old_seed(seed): import old_mnemonic, mnemonic seed = mnemonic.normalize_text(seed) words = seed.strip().split() try: old_mnemonic.mn_decode(words) uses_uwallet_words = True except Exception: uses_uwallet_words = False try: seed.decode('hex') is_hex = (len(seed) == 32 or len(seed) == 64) except Exception: is_hex = False return is_hex or (uses_uwallet_words and (len(words) == 12 or len(words) == 24))
def format_seed(self, seed): import old_mnemonic # see if seed was entered as hex seed = seed.strip() if seed: try: seed.decode('hex') return str(seed) except Exception: pass words = seed.split() seed = old_mnemonic.mn_decode(words) if not seed: raise Exception("Invalid seed") return seed
def findVanity4OldElectrum(prefix, maxTries=0, ignoreCase=False): if maxTries == 0: maxTries = 60**len(prefix) for i in range(maxTries): guess = sample(old_word_list, 12) seed = mn_decode(guess) mpk = OldAccount.mpk_from_seed(seed) acc = OldAccount({'mpk': mpk, 0: [], 1: []}) addr = acc.create_new_address(False) if ignoreCase: if addr.lower().startswith(prefix): return ' '.join(guess), addr else: if addr.startswith(prefix): return ' '.join(guess), addr return None
def findVanity4OldElectrum(prefix, maxTries = 0, ignoreCase = False): if maxTries == 0: maxTries = 60**len(prefix) for i in range(maxTries): guess = sample(old_word_list,12) seed = mn_decode(guess) mpk = OldAccount.mpk_from_seed(seed) acc = OldAccount({'mpk':mpk, 0:[], 1:[]}) addr = acc.create_new_address(False) if ignoreCase: if addr.lower().startswith(prefix): return ' '.join(guess), addr else: if addr.startswith(prefix): return ' '.join(guess), addr return None
addr = wallet.get_addr(m, forchange, k) for addrvalue in wallet.unspent.values(): if addr == addrvalue['address']: balance_depth += addrvalue['value'] print 'for mixdepth=%d balance=%.8fbtc' % (m, balance_depth/1e8) total_balance += balance_depth print 'total balance = %.8fbtc' % (total_balance/1e8) elif method == 'generate' or method == 'recover': if method == 'generate': seed = btc.sha256(os.urandom(64))[:32] words = old_mnemonic.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(' ') seed = old_mnemonic.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 = slowaes.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': common.get_network()}) walletname = raw_input('Input wallet file name (default: wallet.json): ') if len(walletname) == 0: walletname = 'wallet.json' fd = open(os.path.join('wallets', walletname), 'w')
print 'total balance = %.8fbtc' % (total_balance / 1e8) elif method == 'generate' or method == 'recover': try: import aes except ImportError: print 'You must install slowaes\nTry running: sudo pip install slowaes' sys.exit(0) if method == 'generate': seed = btc.sha256(os.urandom(64))[:32] words = old_mnemonic.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(' ') seed = old_mnemonic.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 = aes.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': common.get_network() })