URI: 
       tRevert "Revert "bump seed_version"" - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit a1f91ee49ece33e6319cfec18b4a1e1b6bd3e2f2
   DIR parent ce5ab39ba2604b45e6a8537444884c2d086dfe27
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Fri, 27 Oct 2017 15:00:09 +0200
       
       Revert "Revert "bump seed_version""
       
       This reverts commit ce5ab39ba2604b45e6a8537444884c2d086dfe27.
       
       Diffstat:
         M lib/storage.py                      |      42 +++++++++++++++++--------------
       
       1 file changed, 23 insertions(+), 19 deletions(-)
       ---
   DIR diff --git a/lib/storage.py b/lib/storage.py
       t@@ -46,7 +46,7 @@ from . import bitcoin
        
        OLD_SEED_VERSION = 4        # electrum versions < 2.0
        NEW_SEED_VERSION = 11       # electrum versions >= 2.0
       -FINAL_SEED_VERSION = 14     # electrum >= 2.7 will set this to prevent
       +FINAL_SEED_VERSION = 15     # electrum >= 2.7 will set this to prevent
                                    # old versions from overwriting new format
        
        
       t@@ -258,7 +258,7 @@ class WalletStorage(PrintError):
                self.convert_wallet_type()
                self.convert_account()
                self.convert_version_13_b()
       -        self.convert_version_14()
       +        self.convert_version_15()
        
                self.put('seed_version', FINAL_SEED_VERSION)  # just to be sure
                self.write()
       t@@ -373,7 +373,7 @@ class WalletStorage(PrintError):
        
                self.put('seed_version', 13)
        
       -    def convert_version_14(self):
       +    def convert_version_15(self):
                # convert imported wallets for 3.0
                if not self._is_upgrade_method_needed(13, 13):
                    return
       t@@ -400,8 +400,7 @@ class WalletStorage(PrintError):
                        self.put('addresses', d)
                        self.put('pubkeys', None)
                        self.put('wallet_type', 'imported')
       -
       -        self.put('seed_version', 14)
       +        self.put('seed_version', 15)
        
            def convert_imported(self):
                # '/x' is the internal ID for imported accounts
       t@@ -454,21 +453,26 @@ class WalletStorage(PrintError):
                seed_version = self.get('seed_version')
                if not seed_version:
                    seed_version = OLD_SEED_VERSION if len(self.get('master_public_key','')) == 128 else NEW_SEED_VERSION
       +        if seed_version==14 and self.get('seed_type') == 'segwit':
       +            self.raise_unsupported_version(seed_version)
                if seed_version >=12:
                    return seed_version
                if seed_version not in [OLD_SEED_VERSION, NEW_SEED_VERSION]:
       -            msg = "Your wallet has an unsupported seed version."
       -            msg += '\n\nWallet file: %s' % os.path.abspath(self.path)
       -            if seed_version in [5, 7, 8, 9, 10]:
       -                msg += "\n\nTo open this wallet, try 'git checkout seed_v%d'"%seed_version
       -            if seed_version == 6:
       -                # version 1.9.8 created v6 wallets when an incorrect seed was entered in the restore dialog
       -                msg += '\n\nThis file was created because of a bug in version 1.9.8.'
       -                if self.get('master_public_keys') is None and self.get('master_private_keys') is None and self.get('imported_keys') is None:
       -                    # pbkdf2 was not included with the binaries, and wallet creation aborted.
       -                    msg += "\nIt does not contain any keys, and can safely be removed."
       -                else:
       -                    # creation was complete if electrum was run from source
       -                    msg += "\nPlease open this file with Electrum 1.9.8, and move your coins to a new wallet."
       -            raise BaseException(msg)
       +            self.raise_unsupported_version(seed_version)
                return seed_version
       +
       +    def raise_unsupported_version(self, seed_version):
       +        msg = "Your wallet has an unsupported seed version."
       +        msg += '\n\nWallet file: %s' % os.path.abspath(self.path)
       +        if seed_version in [5, 7, 8, 9, 10, 14]:
       +            msg += "\n\nTo open this wallet, try 'git checkout seed_v%d'"%seed_version
       +        if seed_version == 6:
       +            # version 1.9.8 created v6 wallets when an incorrect seed was entered in the restore dialog
       +            msg += '\n\nThis file was created because of a bug in version 1.9.8.'
       +            if self.get('master_public_keys') is None and self.get('master_private_keys') is None and self.get('imported_keys') is None:
       +                # pbkdf2 was not included with the binaries, and wallet creation aborted.
       +                msg += "\nIt does not contain any keys, and can safely be removed."
       +            else:
       +                # creation was complete if electrum was run from source
       +                msg += "\nPlease open this file with Electrum 1.9.8, and move your coins to a new wallet."
       +        raise BaseException(msg)