URI: 
       tCLI: properly auto-upgrade storage when needed even if storage-encrypted - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 01fc0484841fc8ced7e96798d5f4ca794b37cd41
   DIR parent 2c6a1f55fb5bef6e29415aac310f905dae522801
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Sun, 15 Dec 2019 20:12:51 +0100
       
       CLI: properly auto-upgrade storage when needed even if storage-encrypted
       
       previously commands would error if user had an encrypted storage that needed upgrading
       
       Diffstat:
         M electrum/json_db.py                 |       8 ++++----
         M electrum/storage.py                 |       5 +++--
       
       2 files changed, 7 insertions(+), 6 deletions(-)
       ---
   DIR diff --git a/electrum/json_db.py b/electrum/json_db.py
       t@@ -55,12 +55,12 @@ class TxFeesValue(NamedTuple):
        
        class JsonDB(Logger):
        
       -    def __init__(self, raw, *, manual_upgrades):
       +    def __init__(self, raw, *, manual_upgrades: bool):
                Logger.__init__(self)
                self.lock = threading.RLock()
                self.data = {}
                self._modified = False
       -        self.manual_upgrades = manual_upgrades
       +        self._manual_upgrades = manual_upgrades
                self._called_after_upgrade_tasks = False
                if raw:  # loading existing db
                    self.load_data(raw)
       t@@ -142,12 +142,12 @@ class JsonDB(Logger):
                if not isinstance(self.data, dict):
                    raise WalletFileException("Malformed wallet file (not dict)")
        
       -        if not self.manual_upgrades and self.requires_split():
       +        if not self._manual_upgrades and self.requires_split():
                    raise WalletFileException("This wallet has multiple accounts and must be split")
        
                if not self.requires_upgrade():
                    self._after_upgrade_tasks()
       -        elif not self.manual_upgrades:
       +        elif not self._manual_upgrades:
                    self.upgrade()
        
            def requires_split(self):
   DIR diff --git a/electrum/storage.py b/electrum/storage.py
       t@@ -55,11 +55,12 @@ class StorageReadWriteError(Exception): pass
        
        class WalletStorage(Logger):
        
       -    def __init__(self, path, *, manual_upgrades=False):
       +    def __init__(self, path, *, manual_upgrades: bool = False):
                Logger.__init__(self)
                self.lock = threading.RLock()
                self.path = standardize_path(path)
                self._file_exists = bool(self.path and os.path.exists(self.path))
       +        self._manual_upgrades = manual_upgrades
        
                DB_Class = JsonDB
                self.logger.info(f"wallet path {self.path}")
       t@@ -211,7 +212,7 @@ class WalletStorage(Logger):
                    s = None
                self.pubkey = ec_key.get_public_key_hex()
                s = s.decode('utf8')
       -        self.db = JsonDB(s, manual_upgrades=True)
       +        self.db = JsonDB(s, manual_upgrades=self._manual_upgrades)
                self.load_plugins()
        
            def encrypt_before_writing(self, plaintext: str) -> str: