BAL - Bitcoin After Life Electrum plugin (v0.2.8)
Behavior-preserving refactor of the original BAL plugin with clean separation
of business logic from the PyQt GUI.
Layout:
bal/core/ GUI-free logic (util, plugin_base, heirs, will, willexecutors)
bal/gui/qt/ PyQt6 presentation (theme, common, widgets, calendar, dialogs,
lists, window, plugin)
bal/qt.py Qt entry-point shim (works as internal and external zip plugin)
bal/manifest.json standard-conforming metadata
Tooling:
build_zip.py deterministic, zipimport-friendly archive builder
tests/smoke_test.py imports + behavior regression test
tests/external_zip_test.py reproduces Electrum's external-zip loading
Targets Electrum 4.7.2 + PyQt6. Logic kept byte-identical where possible.
This commit is contained in:
37
bal/__init__.py
Normal file
37
bal/__init__.py
Normal file
@@ -0,0 +1,37 @@
|
||||
"""BAL - Bitcoin After Life Electrum plugin.
|
||||
|
||||
Free and decentralized Bitcoin inheritance support for the Electrum wallet.
|
||||
|
||||
This package was reorganized (Approach A: conservative, behavior-preserving)
|
||||
to cleanly separate logic from presentation. The original monolithic plugin
|
||||
mixed the business logic with the PyQt GUI; here the two concerns live in
|
||||
distinct sub-packages:
|
||||
|
||||
bal/
|
||||
core/ GUI-free business logic (importable without Qt)
|
||||
util.py Generic helpers (encoding, validation, ...)
|
||||
plugin_base.py BasePlugin subclass, config, timestamp handling
|
||||
heirs.py Heir list model + transaction building
|
||||
will.py Will / WillItem domain model
|
||||
willexecutors.py Will-executor (dead-man's switch) networking
|
||||
gui/
|
||||
qt/ PyQt6 presentation layer
|
||||
theme.py Colors / status -> color mapping (status_color)
|
||||
common.py Shared imports and small GUI helpers
|
||||
widgets.py Leaf widgets (editors, labels, checkboxes, ...)
|
||||
calendar.py BalCalendar widget
|
||||
dialogs.py Dialog windows (wizard, build-will, detail, ...)
|
||||
lists.py Tree/list views (heirs, preview, will-executors)
|
||||
window.py BalWindow controller (per-wallet GUI state)
|
||||
plugin.py Plugin class wiring Electrum @hooks to the GUI
|
||||
qt.py Thin loader shim re-exporting `Plugin` for Electrum
|
||||
|
||||
Electrum discovers the plugin through ``manifest.json`` and loads the GUI
|
||||
entry point from ``qt.py`` (the shim), which imports the real ``Plugin``
|
||||
from ``gui.qt.plugin``.
|
||||
|
||||
The plugin targets Electrum 4.7.2 (the last stable release exposing
|
||||
``json_db.register_dict``) and PyQt6.
|
||||
"""
|
||||
|
||||
__version__ = "0.2.8"
|
||||
Reference in New Issue
Block a user