From baa443295dc1aa49f9e6541c385a5fbffaedc036 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Wed, 20 Sep 2023 17:28:18 +0000 Subject: [PATCH] wallet: add sanity check for storage encryption version multisig wallet cannot have StorageEncryptionVersion.XPUB_PASSWORD --- electrum/wallet.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/electrum/wallet.py b/electrum/wallet.py index aae870def..cfef599f8 100644 --- a/electrum/wallet.py +++ b/electrum/wallet.py @@ -315,7 +315,7 @@ class Abstract_Wallet(ABC, Logger, EventListener): self.config = config assert self.config is not None, "config must not be None" self.db = db - self.storage = db.storage + self.storage = db.storage # type: Optional[WalletStorage] # load addresses needs to be called before constructor for sanity checks db.load_addresses(self.wallet_type) self.keystore = None # type: Optional[KeyStore] # will be set by load_keystore @@ -363,6 +363,10 @@ class Abstract_Wallet(ABC, Logger, EventListener): self._up_to_date = False self.test_addresses_sanity() + if self.storage and self.has_storage_encryption(): + if (se := self.storage.get_encryption_version()) != (ae := self.get_available_storage_encryption_version()): + raise WalletFileException(f"unexpected storage encryption type. found: {se!r}. allowed: {ae!r}") + self.register_callbacks() def _init_lnworker(self):