diff --git a/electrum/storage.py b/electrum/storage.py index a941d5d1f..eaf63b32a 100644 --- a/electrum/storage.py +++ b/electrum/storage.py @@ -54,6 +54,9 @@ class StorageEncryptionVersion(IntEnum): class StorageReadWriteError(Exception): pass +class StorageOnDiskUnexpectedlyChanged(Exception): pass + + # TODO: Rename to Storage class WalletStorage(Logger): @@ -108,7 +111,8 @@ class WalletStorage(Logger): assert not self.is_encrypted() with open(self.path, "rb+") as f: pos = f.seek(0, os.SEEK_END) - assert pos == self.pos, (self.pos, pos) + if pos != self.pos: + raise StorageOnDiskUnexpectedlyChanged(f"expected size {self.pos}, found {pos}") f.write(data.encode("utf-8")) self.pos = f.seek(0, os.SEEK_END) f.flush()