forked from bitcoinafterlife/bal-electrum-plugin
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.
22 lines
849 B
Python
22 lines
849 B
Python
"""
|
|
bal.core
|
|
========
|
|
|
|
Pure business-logic layer of the Bitcoin After Life (BAL) Electrum plugin.
|
|
|
|
Everything in this sub-package MUST stay completely free of any GUI / Qt
|
|
imports. The rule of thumb is:
|
|
|
|
* ``bal.core`` -> "what the plugin does" (inheritance rules, building
|
|
and validating transactions, talking to
|
|
will-executor servers, persistence helpers).
|
|
* ``bal.gui`` -> "how it looks" (Qt widgets, dialogs, list views).
|
|
|
|
Keeping the two apart is the main motivation behind this rewrite: the original
|
|
code mixed transaction-building logic and presentation inside a single
|
|
4000-line ``qt.py`` module, which made the delicate Bitcoin logic hard to audit.
|
|
|
|
No behaviour is changed with respect to the original plugin; the code has only
|
|
been reorganised and documented.
|
|
"""
|