URI: 
       tfix upgrade_wallet - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit ab67a0313a55de12cf1df97d9a0fddffa4a5cb9a
   DIR parent 83dbe7fbf37bc559ef4fc2ead3c818c411d5ac1e
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Tue, 30 Aug 2016 12:19:58 +0200
       
       fix upgrade_wallet
       
       Diffstat:
         M lib/storage.py                      |      20 ++++++++++----------
       
       1 file changed, 10 insertions(+), 10 deletions(-)
       ---
   DIR diff --git a/lib/storage.py b/lib/storage.py
       t@@ -171,6 +171,7 @@ class WalletStorage(PrintError):
                    storage1 = WalletStorage(storage.path + '.deterministic')
                    storage1.data = copy.deepcopy(storage.data)
                    storage1.put('accounts', {'0': d['0']})
       +            storage1.upgrade()
                    storage1.write()
                    storage2 = WalletStorage(storage.path + '.imported')
                    storage2.data = copy.deepcopy(storage.data)
       t@@ -179,8 +180,8 @@ class WalletStorage(PrintError):
                    storage2.put('seed_version', None)
                    storage2.put('master_public_key', None)
                    storage2.put('wallet_type', 'imported')
       -            storage2.write()
                    storage2.upgrade()
       +            storage2.write()
                    result = [storage1.path, storage2.path]
                elif wallet_type in ['bip44', 'trezor', 'keepkey', 'ledger']:
                    mpk = storage.get('master_public_keys')
       t@@ -193,14 +194,11 @@ class WalletStorage(PrintError):
                        new_path = storage.path + '.' + k
                        storage2 = WalletStorage(new_path)
                        storage2.data = copy.deepcopy(storage.data)
       -                storage2.put('wallet_type', 'standard')
       -                if wallet_type in ['trezor', 'keepkey', 'ledger']:
       -                    storage2.put('key_type', 'hardware')
       -                    storage2.put('hw_type', wallet_type)
       +                # save account, derivation and xpub at index 0
                        storage2.put('accounts', {'0': x})
       -                # need to save derivation and xpub too
       -                storage2.put('master_public_keys', {'x/': xpub})
       +                storage2.put('master_public_keys', {"x/0'": xpub})
                        storage2.put('derivation', bip44_derivation(k))
       +                storage2.upgrade()
                        storage2.write()
                        result.append(new_path)
                else:
       t@@ -252,7 +250,7 @@ class WalletStorage(PrintError):
        
                elif wallet_type in['xpub', 'standard']:
                    xpub = xpubs["x/"]
       -            xprv = xprvs["x/"]
       +            xprv = xprvs.get("x/")
                    d = {
                        'type': 'bip32',
                        'xpub': xpub,
       t@@ -264,11 +262,12 @@ class WalletStorage(PrintError):
        
                elif wallet_type in ['trezor', 'keepkey', 'ledger']:
                    xpub = xpubs["x/0'"]
       +            derivation = self.get('derivation', bip44_derivation(0))
                    d = {
                        'type': 'hardware',
                        'hw_type': wallet_type,
                        'xpub': xpub,
       -                'derivation': bip44_derivation(0),
       +                'derivation': derivation,
                    }
                    self.put('wallet_type', 'standard')
                    self.put('keystore', d)
       t@@ -285,10 +284,11 @@ class WalletStorage(PrintError):
                        self.put(key, d)
                else:
                    raise
       -
       +        # remove junk
                self.put('master_public_key', None)
                self.put('master_public_keys', None)
                self.put('master_private_keys', None)
       +        self.put('derivation', None)
                self.put('seed', None)
                self.put('keypairs', None)
                self.put('key_type', None)