mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-28 07:51:27 +00:00
CLI: properly auto-upgrade storage when needed even if storage-encrypted
previously commands would error if user had an encrypted storage that needed upgrading
This commit is contained in:
parent
2c6a1f55fb
commit
01fc048484
2 changed files with 7 additions and 6 deletions
|
@ -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)
|
||||
|
@ -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):
|
||||
|
|
|
@ -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}")
|
||||
|
@ -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:
|
||||
|
|
Loading…
Add table
Reference in a new issue