mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-23 17:47:31 +00:00
upgrade with 0.33
This commit is contained in:
parent
8df0f3fcc4
commit
b9eda1dd35
1 changed files with 32 additions and 42 deletions
|
@ -3,38 +3,6 @@ from version import SEED_VERSION
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def upgrade_wallet(wallet):
|
|
||||||
print "walet path:",wallet.path
|
|
||||||
print "seed version:", wallet.seed_version
|
|
||||||
if wallet.seed_version == 1 and wallet.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 "sorry"
|
|
||||||
exit(1)
|
|
||||||
wallet.version = 2
|
|
||||||
wallet.seed = wallet.pw_encode( seed, password)
|
|
||||||
wallet.private_keys = wallet.pw_encode( repr( private_keys ), password)
|
|
||||||
wallet.save()
|
|
||||||
print "upgraded to version 2"
|
|
||||||
exit(1)
|
|
||||||
|
|
||||||
if wallet.seed_version < SEED_VERSION:
|
|
||||||
print """Note: your wallet seed is deprecated. Please create a new wallet, and move your coins to the new wallet."""
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
try:
|
try:
|
||||||
|
@ -65,21 +33,43 @@ if __name__ == "__main__":
|
||||||
print "error: could not parse wallet"
|
print "error: could not parse wallet"
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
|
# version <= 0.33 uses a tuple
|
||||||
if type(x) == 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
|
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 "sorry"
|
||||||
|
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.
|
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.
|
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."""
|
We apologize for the inconvenience. We try to keep this kind of upgrades as rare as possible."""
|
||||||
exit(1)
|
|
||||||
|
|
||||||
wallet = electrum.Wallet(path)
|
|
||||||
try:
|
|
||||||
found = wallet.read()
|
|
||||||
if found:
|
|
||||||
print wallet.path
|
|
||||||
else:
|
|
||||||
print "wallet not found."
|
|
||||||
except BaseException:
|
|
||||||
upgrade_wallet(wallet)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue