A self-payment surfaces as two transaction records sharing one payment
hash — one outgoing, one incoming. Port the iOS WalletStore.dedupTransactions
hardening so they render correctly:
- Add dedupTransactions(): drop exact (paymentHash, type) repeats the
backend returns, and sort newest-first with the incoming "received" leg
above its outgoing "sent" leg on a timestamp tie. Apply on initial load,
re-enrich, and load-more.
- Key the transaction LazyColumn by "paymentHash|type" so the two legs of a
self-send keep distinct identities and both render (mirrors iOS
WalletTransaction.id).