|
@ -171,6 +171,7 @@ class WalletStorage(PrintError): |
|
|
storage1 = WalletStorage(storage.path + '.deterministic') |
|
|
storage1 = WalletStorage(storage.path + '.deterministic') |
|
|
storage1.data = copy.deepcopy(storage.data) |
|
|
storage1.data = copy.deepcopy(storage.data) |
|
|
storage1.put('accounts', {'0': d['0']}) |
|
|
storage1.put('accounts', {'0': d['0']}) |
|
|
|
|
|
storage1.upgrade() |
|
|
storage1.write() |
|
|
storage1.write() |
|
|
storage2 = WalletStorage(storage.path + '.imported') |
|
|
storage2 = WalletStorage(storage.path + '.imported') |
|
|
storage2.data = copy.deepcopy(storage.data) |
|
|
storage2.data = copy.deepcopy(storage.data) |
|
@ -179,8 +180,8 @@ class WalletStorage(PrintError): |
|
|
storage2.put('seed_version', None) |
|
|
storage2.put('seed_version', None) |
|
|
storage2.put('master_public_key', None) |
|
|
storage2.put('master_public_key', None) |
|
|
storage2.put('wallet_type', 'imported') |
|
|
storage2.put('wallet_type', 'imported') |
|
|
storage2.write() |
|
|
|
|
|
storage2.upgrade() |
|
|
storage2.upgrade() |
|
|
|
|
|
storage2.write() |
|
|
result = [storage1.path, storage2.path] |
|
|
result = [storage1.path, storage2.path] |
|
|
elif wallet_type in ['bip44', 'trezor', 'keepkey', 'ledger']: |
|
|
elif wallet_type in ['bip44', 'trezor', 'keepkey', 'ledger']: |
|
|
mpk = storage.get('master_public_keys') |
|
|
mpk = storage.get('master_public_keys') |
|
@ -193,14 +194,11 @@ class WalletStorage(PrintError): |
|
|
new_path = storage.path + '.' + k |
|
|
new_path = storage.path + '.' + k |
|
|
storage2 = WalletStorage(new_path) |
|
|
storage2 = WalletStorage(new_path) |
|
|
storage2.data = copy.deepcopy(storage.data) |
|
|
storage2.data = copy.deepcopy(storage.data) |
|
|
storage2.put('wallet_type', 'standard') |
|
|
# save account, derivation and xpub at index 0 |
|
|
if wallet_type in ['trezor', 'keepkey', 'ledger']: |
|
|
|
|
|
storage2.put('key_type', 'hardware') |
|
|
|
|
|
storage2.put('hw_type', wallet_type) |
|
|
|
|
|
storage2.put('accounts', {'0': x}) |
|
|
storage2.put('accounts', {'0': x}) |
|
|
# need to save derivation and xpub too |
|
|
storage2.put('master_public_keys', {"x/0'": xpub}) |
|
|
storage2.put('master_public_keys', {'x/': xpub}) |
|
|
|
|
|
storage2.put('derivation', bip44_derivation(k)) |
|
|
storage2.put('derivation', bip44_derivation(k)) |
|
|
|
|
|
storage2.upgrade() |
|
|
storage2.write() |
|
|
storage2.write() |
|
|
result.append(new_path) |
|
|
result.append(new_path) |
|
|
else: |
|
|
else: |
|
@ -252,7 +250,7 @@ class WalletStorage(PrintError): |
|
|
|
|
|
|
|
|
elif wallet_type in['xpub', 'standard']: |
|
|
elif wallet_type in['xpub', 'standard']: |
|
|
xpub = xpubs["x/"] |
|
|
xpub = xpubs["x/"] |
|
|
xprv = xprvs["x/"] |
|
|
xprv = xprvs.get("x/") |
|
|
d = { |
|
|
d = { |
|
|
'type': 'bip32', |
|
|
'type': 'bip32', |
|
|
'xpub': xpub, |
|
|
'xpub': xpub, |
|
@ -264,11 +262,12 @@ class WalletStorage(PrintError): |
|
|
|
|
|
|
|
|
elif wallet_type in ['trezor', 'keepkey', 'ledger']: |
|
|
elif wallet_type in ['trezor', 'keepkey', 'ledger']: |
|
|
xpub = xpubs["x/0'"] |
|
|
xpub = xpubs["x/0'"] |
|
|
|
|
|
derivation = self.get('derivation', bip44_derivation(0)) |
|
|
d = { |
|
|
d = { |
|
|
'type': 'hardware', |
|
|
'type': 'hardware', |
|
|
'hw_type': wallet_type, |
|
|
'hw_type': wallet_type, |
|
|
'xpub': xpub, |
|
|
'xpub': xpub, |
|
|
'derivation': bip44_derivation(0), |
|
|
'derivation': derivation, |
|
|
} |
|
|
} |
|
|
self.put('wallet_type', 'standard') |
|
|
self.put('wallet_type', 'standard') |
|
|
self.put('keystore', d) |
|
|
self.put('keystore', d) |
|
@ -285,10 +284,11 @@ class WalletStorage(PrintError): |
|
|
self.put(key, d) |
|
|
self.put(key, d) |
|
|
else: |
|
|
else: |
|
|
raise |
|
|
raise |
|
|
|
|
|
# remove junk |
|
|
self.put('master_public_key', None) |
|
|
self.put('master_public_key', None) |
|
|
self.put('master_public_keys', None) |
|
|
self.put('master_public_keys', None) |
|
|
self.put('master_private_keys', None) |
|
|
self.put('master_private_keys', None) |
|
|
|
|
|
self.put('derivation', None) |
|
|
self.put('seed', None) |
|
|
self.put('seed', None) |
|
|
self.put('keypairs', None) |
|
|
self.put('keypairs', None) |
|
|
self.put('key_type', None) |
|
|
self.put('key_type', None) |
|
|