1 changed files with 0 additions and 77 deletions
@ -1,77 +0,0 @@ |
|||||||
import electrum, base64, ast, sys, os, getpass |
|
||||||
from version import SEED_VERSION |
|
||||||
|
|
||||||
try: |
|
||||||
from lib.util import print_error |
|
||||||
except ImportError: |
|
||||||
from electrum.util import print_error |
|
||||||
|
|
||||||
if __name__ == "__main__": |
|
||||||
try: |
|
||||||
path = sys.argv[1] |
|
||||||
except: |
|
||||||
# backward compatibility: look for wallet file in the default data directory |
|
||||||
if "HOME" in os.environ: |
|
||||||
wallet_dir = os.path.join( os.environ["HOME"], '.electrum') |
|
||||||
elif "LOCALAPPDATA" in os.environ: |
|
||||||
wallet_dir = os.path.join( os.environ["LOCALAPPDATA"], 'Electrum' ) |
|
||||||
elif "APPDATA" in os.environ: |
|
||||||
wallet_dir = os.path.join( os.environ["APPDATA"], 'Electrum' ) |
|
||||||
else: |
|
||||||
raise BaseException("No home directory found in environment variables.") |
|
||||||
path = os.path.join( wallet_dir, 'electrum.dat') |
|
||||||
|
|
||||||
try: |
|
||||||
f = open(path,"r") |
|
||||||
data = f.read() |
|
||||||
f.close() |
|
||||||
except: |
|
||||||
print_error("Error: File not found: " + path) |
|
||||||
exit(1) |
|
||||||
|
|
||||||
try: |
|
||||||
x = ast.literal_eval(data) |
|
||||||
except: |
|
||||||
print_error("Error: Could not parse wallet") |
|
||||||
exit(1) |
|
||||||
|
|
||||||
# version <= 0.33 uses a tuple |
|
||||||
if type(x) == tuple: |
|
||||||
seed_version, use_encryption, fee, host, port, blocks, seed, all_addresses, private_keys, change_indexes, status, history, labels, addressbook = x |
|
||||||
|
|
||||||
print "walet path =",path |
|
||||||
print "seed version =", seed_version |
|
||||||
|
|
||||||
if seed_version == 1 and use_encryption: |
|
||||||
# version 1 used pycrypto for wallet encryption |
|
||||||
import Crypto |
|
||||||
from Crypto.Cipher import AES |
|
||||||
BLOCK_SIZE = 32 |
|
||||||
PADDING = '{' |
|
||||||
pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * PADDING |
|
||||||
EncodeAES = lambda secret, s: base64.b64encode(AES.new(secret).encrypt(pad(s))) |
|
||||||
DecodeAES = lambda secret, e: AES.new(secret).decrypt(base64.b64decode(e)).rstrip(PADDING) |
|
||||||
|
|
||||||
print "Please enter your password" |
|
||||||
password = getpass.getpass("Password:") |
|
||||||
secret = electrum.Hash(password) |
|
||||||
try: |
|
||||||
seed = DecodeAES( secret, wallet.seed ) |
|
||||||
private_keys = ast.literal_eval( DecodeAES( secret, wallet.private_keys ) ) |
|
||||||
except: |
|
||||||
print_error("Error: Password does not decrypt this wallet.") |
|
||||||
exit(1) |
|
||||||
seed_version = 2 |
|
||||||
s = repr( (seed_version, use_encryption, fee, host, port, blocks, seed, all_addresses, private_keys, change_indexes, status, history, labels, addressbook )) |
|
||||||
f = open(path,"w") |
|
||||||
data = f.read() |
|
||||||
f.close() |
|
||||||
print "Wallet is now unencrypted." |
|
||||||
|
|
||||||
print """This wallet is deprecated. |
|
||||||
Please create a new wallet, open the old wallet with Electrum 0.33, and send your coins to your new wallet. |
|
||||||
We apologize for the inconvenience. We try to keep this kind of upgrades as rare as possible.""" |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in new issue