feat(history): view the transactions involving an address

Adds a "View transactions" action that opens the History tab pre-filtered
to a chosen address. SetTransactionsAddressFilter() stores a pending filter
that RenderTransactionsTab consumes on its next frame — pre-filling the
search box and resetting the type filter to All — then the caller navigates
to NavPage::History. This reuses the existing "prefill + navigate" pattern
(cf. SetSendFromAddress) and all of History's rendering, detail and export.

Triggers:
- Contacts: a context-menu item and a 4th per-row action icon (copy /
  view-transactions / edit / delete; the trailing width is widened to fit).
- Balance address list: a per-address context-menu item (own z/t addresses).
- Receive tab: the recent-received rows now carry their address into the
  filter instead of jumping to History unfiltered.

The History search also now matches from_address, so filtering by one of your
own addresses catches sends FROM it, not only receives INTO it.

Scoping is honest, not exhaustive: transparent is well covered, but shielded
counterparties are private and the transparent sender of received funds is
never recorded on-chain, so this shows transactions *involving* the address.
On Lite, from_address is thin, so own-address send filtering is weaker.

New i18n keys view_transactions / tt_view_transactions translated into all
eight locales (no new glyphs). Builds + test suites pass on both variants.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-10-15 10:13:15 -05:00
co-authored by Claude Opus 4.8
parent 5fcab14e4e
commit 2282f332a6
14 changed files with 78 additions and 9 deletions
+13
View File
@@ -4,6 +4,8 @@
#pragma once
#include <string>
namespace dragonx {
class App;
@@ -15,5 +17,16 @@ namespace ui {
*/
void RenderTransactionsTab(App* app);
/**
* @brief Pre-filter the Transactions (History) tab by an address.
*
* Sets the History search box to @p address and resets the type filter to All on the next
* render, then the caller navigates to the History tab. Used by the "View transactions"
* actions in Contacts, the Balance address list, and the Receive tab. Because shielded /
* received-from attribution is incomplete, this shows transactions *involving* the address,
* not a guaranteed-complete set.
*/
void SetTransactionsAddressFilter(const std::string& address);
} // namespace ui
} // namespace dragonx