Skip to content

wallet: show fee-only change-only self-transfers - #150

Open
kiwidream wants to merge 1 commit into
1.x.xfrom
show-change-only-self-transfers
Open

wallet: show fee-only change-only self-transfers#150
kiwidream wants to merge 1 commit into
1.x.xfrom
show-change-only-self-transfers

Conversation

@kiwidream

@kiwidream kiwidream commented Aug 12, 2026

Copy link
Copy Markdown
Member

Summary

Closes #147.

Fee-bearing self-transfers disappeared from default wallet history when every wallet-owned output was classified as change. This PR:

  • emits a transaction-level Payment to self GUI row showing the net fee debit without a misleading output index;
  • emits one fee-only send entry from gettransaction, listtransactions, and default listsinceblock output, with amount: 0, the negative fee, and no synthetic address, label, or vout;
  • preserves the existing detailed send/receive output behavior when include_change=true;
  • adds spendable and watch-only regression coverage plus focused Qt decomposition tests.

Testing

  • Built locally.
  • Ran focused unit or functional tests for the changed area.
  • Ran lint or formatting checks relevant to this change.
  • Not run. Reason: N/A; all relevant checks above were run.

Commands/checks:

  • cmake --build build --target test_bitcoin-qt qbitd qbit-cli -j8
  • ctest --test-dir build -R '^test_qbit-qt$' --output-on-failure
  • build/test/functional/test_runner.py wallet_listsinceblock.py --jobs=1
  • cmake --build build --target rpcdocs -j8
  • Docker lint suite from ci/lint_imagefile

Target Branch

  • This PR targets main or a maintainer-requested release branch such as 0.1.x.

This PR targets the requested 1.x.x maintenance branch.

Risk / Review Notes

  • Consensus, script, crypto, wallet, P2P, release, CI, or security-sensitive behavior changed.
  • No consensus, script, crypto, wallet, P2P, release, CI, or security-sensitive behavior changed.

Notes: Wallet history presentation and RPC serialization change. Transaction construction, signing, coin selection, UTXO accounting, and balance calculation are unchanged.

Docs / Process Impact

Choose exactly one:

  • I updated public docs because this PR changes user-visible behavior, integration guidance, release/process guidance, or expected validation.
  • No public docs update needed. Reason:

RPC help now documents the fee-only entry and the optional output-level fields.

libbitcoinpqc Subtree Checklist (if src/libbitcoinpqc changed)

Not applicable; src/libbitcoinpqc is unchanged.

  • Source commit is reachable from an immutable release tag in Qbit-Org/qbit-libbitcoinpqc.
  • qbit imports the tagged upstream tree directly without pruning or a curated subtree branch.
  • Subtree import/update was performed with contrib/devtools/update-libbitcoinpqc-subtree.sh.
  • test/lint/libbitcoinpqc-subtree-check.sh passes locally.
  • Any default tag change in contrib/devtools/update-libbitcoinpqc-subtree.sh is intentional and matches doc/subtrees/libbitcoinpqc.md.

Note

Cursor Bugbot is generating a summary for commit 8155f2b. Configure here.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant