Commit Graph

81 Commits

Author SHA1 Message Date
5b109384cf gui: remove 'Add transaction without willexecutor' from plugin settings dialog
The checkbox is already available in the Will-Executor tab; showing it
in the settings dialog was redundant. Renumber grid rows 5-16 -> 4-15
to close the gap.
2026-08-17 23:42:01 -04:00
fe81fac3d4 fix: chainname regtest bug (classproperty); add no-heirs buttons in build-will dialog
- bal/core/plugin_base.py: change chainname from frozen class attribute
  to @classproperty so it reads constants.net.NET_NAME at runtime, fixing
  regtest/testnet always downloading the mainnet executor list
- bal/core/willexecutors.py: remove module-level chainname capture;
  all uses now read BalPlugin.chainname directly
- bal/gui/qt/dialogs.py: when BalBuildWillDialog detects no heirs,
  return 'no_heirs' signal and show Heirs/Wizard/Close buttons (mirroring
  the existing no-willexecutor pattern); add HeirsDialog with full
  HeirListWidget (New Heir, Import, Export)
2026-08-17 12:06:21 -04:00
06576cbef3 cli: add bal_will_autorebuild (headless one-shot check/rebuild/sign/push flow with invalidation tx) 2026-08-16 06:40:40 -04:00
e9142a7c1f gui: rebuild the will automatically on new transactions (AUTO_REBUILD, default off; anticipate delivery by 1 day, invalidate on-chain only when the anticipated locktime crosses the check-alive threshold) 2026-08-16 06:40:35 -04:00
4bbdf261e3 cli: add headless command-line layer (bal_* commands for the daemon, cmdline entry point, manifest 'cmdline' support, offline controller tests) 2026-08-14 23:57:28 -04:00
28d0670999 core: add 'Rebuild will on wallet close' setting to skip the build wizard at close (REBUILD_ON_CLOSE); settings checkbox + tests 2026-08-14 23:56:14 -04:00
2221389f44 core: anchor relative locktime/threshold recipes to the built tx locktime so an unchanged will no longer reads as expired/postponed; stop the daily invalidate prompt (karen7) 2026-08-09 12:08:25 -04:00
95c23a4b21 core: extract GUI-free logic into bal.core (reminders/checkalive/input_rules); fix save/sign tx RLock pickle by serializing tx; keep invalid heirs in wallet on build; tb1 testnet will-executor addresses; move tests to core modules 2026-08-05 17:17:32 -04:00
0806332543 core: replace debug print() with _logger, drop dead print_transaction helper 2026-08-01 23:33:52 -04:00
1e80f7a0e0 docs: align all markdown docs with current code (v0.6.1)
- CHANGELOG: add entries #47 (is_selected/is_valid fee bounds, extremes allowed) and #48 (merge_will crash fix on missing date_to_check)
- HANDOFF: Electrum 4.7.2 and 4.8.0, current layout (qt.py, plugin.py, wallet_util/, docs/, bal_cli.py, 36-file ZIP), runtime/lint venv paths, standalone-script tests (427 collected), direct-to-main workflow, version history up to v0.6.1
- README: drop VERSION from layout, correct anticipate/expire/postpone behavior, update test commands
- docs/manual/README.md: fix Tools menu label to Will-Executors, add BASIC/ADVANCED notes, extend chromatic status table (Partially signed, Updated)
- docs/inheritance-options.md: add PARTIALLY_SIGNED status/transition/colour, version note to v0.6.1
- docs/README.md: make HTML-hosting instructions host-agnostic
- bal/README.md: Prepare button lives on the WILL tab
2026-08-01 23:08:07 -04:00
693479b0da willexecutors: fee-bound is_valid (extremes allowed), is_selected flag-only; fix merge_will crash on missing date_to_check; DNSSEC async, ical folding, pyright/ruff cleanup; refresh karen7/samanta7 fixtures 2026-08-01 22:08:53 -04:00
06d61d78d0 Will toolbar: Export dropdown submenu (All / Valid / Valid NC)
Replace the separate Export / Export V-NC toolbar actions with a cascading
Export submenu: All exports every will item, Valid exports only valid ones,
Valid NC exports valid items that are not yet fully signed.
2026-08-01 19:31:28 -04:00
1dc3c79486 Will list: context menu actions and will-executor bulk tools
PreviewList: right-click menu with sign / details / broadcast / check /
copy id / copy / merge from txn / delete, with multi-selection support and
availability rules (broadcast force-repushes, delete restricted to invalid
or unsigned txs, sign skips non-valid txs).

WillExecutorWidget: Export, Ping All and Select All become dropdown buttons
(export all/selected/valid, ping all/selected, select all/only valid,
deselect all/only invalid).

WillExecutorListWidget: single-cell Copy action.

BalWindow: txids-scoped sign/broadcast plumbing and merge_single_transaction.
2026-08-01 19:11:35 -04:00
30a5720ceb BalWindow/plugin: history persistence, will import/merge, sig tracking, local-spender fixes 2026-08-01 17:21:36 -04:00
08394f4868 lint: ruff cleanup pass across bal/ and tests/
- Sort imports and fix pyproject ruff config (per-file ignores for
  intentional Qt/core exceptions)
- Mark Heirs.validate_* helpers as @staticmethod
- Clean up dead code, rename shadowing vars, use raise ... from
- Add AGENTS.md with env/lint/test/release guidance
2026-07-31 16:03:17 -04:00
649910e599 Add OP_RETURN support for heirs
Allow heirs to produce an OP_RETURN output instead of a regular BTC
payment. An address prefixed with OP_RETURN: carries hex data (max 80
bytes); such heirs always have amount 0 and are excluded from amount
calculations. GUI dialog shows a message field with the decoded text,
the heir list displays the decoded message, and the OP_RETURN output
is emitted with zero value in inheritance transactions.
2026-07-30 22:06:49 -04:00
fb797f31e3 fix version lookup for internal plugin install; silence JSON parse debug noise 2026-07-30 18:53:43 -04:00
9bf088b7ff Add Willexecutors.is_valid + grey italic styling for invalid executors 2026-07-30 18:11:29 -04:00
4a9299d85b add make-release.sh, svatantrya.asc, and update HANDOFF.md
- make-release.sh: automated release script (tests, lint, build, GPG sign, SHA-256, Gitea)
- svatantrya.asc: PGP public key for release verification
- HANDOFF.md: updated release workflow documentation
- willexecutors.py: input validation for addresses, fees, and API responses
- manifest.json: fixed version back to 0.6.1
- test_core_plugin_base.py: updated baltx_fees default
2026-07-22 21:07:32 -04:00
4b0af6f4bf v0.6.1: read version from manifest.json (single source of truth)
Read the plugin version at runtime from bal/manifest.json via
importlib.resources (zip-safe, works from inside a zip on Windows).
Removes the four-file duplication (VERSION, __init__.py, plugin_base.py,
manifest.json) and deletes the bal/VERSION file.

- bal/core/plugin_base.py: new get_version() function, BalPlugin.version
  is now a @property, removed hardcoded __version__
- bal/__init__.py: removed __version__, replaced with a comment
- bal/core/willexecutors.py: user-agent uses get_version()
- bal/gui/qt/dialogs.py, widgets.py: call sites use .version property
- tests/test_version_source.py: 7 tests incl. zip-safe subprocess check
- HANDOFF.md: updated to single-source-of-truth documentation
- CHANGELOG.md: entries 43-46
- bal/manifest.json: version bumped to 0.6.1

PR #4 (branch bitcoinafterlife-patch-5).
2026-07-22 11:19:18 -04:00
449e815f89 v0.5.18: version bump 2026-07-16 12:31:51 +00:00
59c3271fc7 v0.5.18: onion helpers, download robustness, Tor-aware messages 2026-07-16 12:31:29 +00:00
7722272c39 v0.5.18: Tor-gated onion download, crash fix, clearer Tor timeout message 2026-07-16 12:30:30 +00:00
1d3227d963 v0.5.16: version bump 2026-07-16 09:38:08 +00:00
5cac176dfb v0.5.16: onion helpers + download filter 2026-07-16 09:37:40 +00:00
e4bcc4f911 v0.5.16: skip .onion will-executors from download when not on Tor 2026-07-16 09:37:10 +00:00
62502263fd v0.5.15: sync version in plugin_base 2026-07-15 12:08:13 +00:00
184eb7b619 v0.5.15: version bump 2026-07-15 12:07:43 +00:00
3845c8d739 v0.5.15: shorten long .onion URLs + fix KeyError on delete/select/ping 2026-07-15 12:06:58 +00:00
84e1094553 v0.5.13: version bump 2026-07-14 10:50:46 +00:00
df6b5e3e9a v0.5.13: Electrum 4.8.0 compatibility (register_dict -> register_name shim 2026-07-14 10:50:08 +00:00
b1145d654c v0.5.13: remove Check Alive red highlight 2026-07-14 10:49:27 +00:00
e8cde30182 v0.5.11: version bump 2026-07-13 21:54:53 +00:00
745489f616 v0.5.11: Electrum 4.8.0 compatibility (register_dict -> register_name shim) 2026-07-13 21:53:51 +00:00
cd2278c2b8 v0.5.10: sync version in plugin_base 2026-07-05 09:06:53 +00:00
3ceabac0bb v0.5.10: version bump 2026-07-05 09:05:36 +00:00
527ae95c75 v0.5.10: Check Alive/BASIC fixes, UX improvements, Raw-Date handling. 2026-07-05 09:03:57 +00:00
2cb39f1a6d v0.5.2: sync version in plugin_base 2026-07-04 10:07:53 +00:00
20fd54681f v0.5.2: version bump 2026-07-04 10:07:25 +00:00
346164207f v0.5.1: sync version in plugin_base 2026-07-04 08:12:25 +00:00
431bcc6247 v0.5.1: version bump 2026-07-04 08:11:18 +00:00
9cbed79590 v0.5.1: fix Windows Settings-dialog flicker 2026-07-04 08:07:33 +00:00
donkey-ai
ca874d8e93 v0.5.4 2026-07-02 00:29:26 +02:00
kaibot
868674ece2 baltx_fees default 100 -> 20 2026-06-30 06:23:44 -04:00
kaibot
aaa8658aa0 fix: default baltx_fees 100 -> 50 2026-06-30 06:21:58 -04:00
kaibot
aa03c12aab v0.5.0 2026-06-30 04:33:24 -04:00
kaibot
65b50b51f3 fix: auto-sign on check rispetta AUTO_SIGN + nascosto in basic mode
- plugin.py: auto-sign setting con widget nominati, nascosto in basic mode
  (visibile solo in ADVANCED, come welist server e calendar app)
- dialogs.py: _on_success_phase1_body() salta firma/broadcast quando
  AUTO_SIGN è OFF (solo in advanced; basic usa sempre default=True)
- dialogs.py: _show_next_steps_hint() sopprime hint manuali anche in basic
  mode (dove auto-sign è sempre attivo)
2026-06-30 04:27:31 -04:00
kaibot
7b77ff8692 feat: add will-executor edit dialog on double-click with sync button (↻)
- WillExecutorListWidget: double-click/Enter opens edit dialog
- WillExecutorWidget.add() accepts edit_key param for edit mode:
  pre-populates URL, Info, Base Fee, Address fields
- Sync button (↻) pings executor URL via TaskThread and populates
  fields; updates executor status in list in edit mode (200/KO)
- Loading indicator (⟳) during async ping
- QMessageBox with dialog as parent for sync errors
- Focus returns to URL field after sync error
- 'Add another' button only in add mode, no longer default (OK is default)
- Removed Promo Code field
- Heir dialog: 'Add another' no longer default (matches new pattern)
2026-06-30 03:56:11 -04:00
kaibot
ffd518f1a5 fix: forward force param in push_transactions_to_willexecutors so rebroadcast actually resends pushed txs 2026-06-30 02:55:53 -04:00
kaibot
8a6cfc13cf feat: add per-setting reset button (↺) to each row in settings dialog 2026-06-30 02:50:32 -04:00