v0.5.11: update changelog

This commit is contained in:
2026-07-13 21:55:45 +00:00
parent e8cde30182
commit be2733f180

View File

@@ -2011,3 +2011,53 @@ user actually switches BASIC<->ADVANCED, and a manual Date choice is preserved.
transaction list still refreshes) to be done by the owner from the test ZIP. transaction list still refreshes) to be done by the owner from the test ZIP.
**Outcome:** DONE (delivered as test ZIP v0.5.10; commit only after confirmation). **Outcome:** DONE (delivered as test ZIP v0.5.10; commit only after confirmation).
---
## 35. v0.5.11 - Electrum 4.8.0 compatibility (json_db.register_dict removed)
**Date:** 2026-07-05
**Problem (owner-reported):** With Electrum 4.8.0 the plugin fails to load:
AttributeError: module 'electrum.json_db' has no attribute 'register_dict'
Exception: Error loading bal plugin: ...
**Root cause (verified against the official Electrum sources):** Electrum 4.8.0
REMOVED `json_db.register_dict` and moved the wallet-DB registration API to a new
module, `electrum.stored_dict`, switching from flat key names to '/'-separated
paths with a wildcard, and swapping the last two arguments:
Electrum <= 4.7.2 : json_db.register_dict(NAME, method, _type)
Electrum >= 4.8.0 : stored_dict.register_name('/NAME/*', _type, method)
Electrum migrated its own registrations the same way (e.g. `contacts`). The
conversion semantics are IDENTICAL in both versions (`_type is dict` ->
`method(**value)`, `_type is tuple` -> `method(*value)`, else `method(value)`);
only the registration API changed. `electrum.stored_dict` does not exist in
4.7.2, and `register_dict` no longer exists in 4.8.0, so a plain port would have
broken users still on 4.7.2.
**Fix (`bal/core/plugin_base.py`) - compatibility shim (owner's choice):** a
`_register_will_dict()` helper detects which API is available (`try: from
electrum.stored_dict import register_name` / `except ImportError:` fall back to
`json_db.register_dict`) and registers `heirs`, `will` and `will_settings`
through it. The plugin therefore works on BOTH Electrum 4.7.2 and 4.8.0.
`bal/__init__.py`: module docstring updated accordingly (text only).
**Verification:**
- Full test suite against **Electrum 4.7.2**: `266 passed` (same 2 pre-existing,
unrelated `baltx_fees` failures).
- Full test suite against **Electrum 4.8.0**: `266 passed` (same 2 pre-existing
failures) - previously ALL tests failed at collection with the AttributeError.
- Direct check: `heirs`, `will`, `will_settings` are confirmed REGISTERED in
Electrum 4.7.2 (`json_db.registered_dicts`) and in Electrum 4.8.0
(`stored_dict.registered_names`).
- `ruff`: all checks passed.
**Caveat:** the test suite covers the plugin logic, not the whole Qt GUI. Electrum
4.8.0 changed other things too, so further incompatibilities may only surface when
actually running the plugin; owner to confirm on Windows with the test ZIP.
**Outcome:** DONE (delivered as test ZIP v0.5.11; commit only after the owner
confirms the plugin loads and works on Electrum 4.8.0).