Skip to content

feat(mobile): token detail screen - #588

Open
kaylachi wants to merge 1 commit into
Miracle656:mainfrom
kaylachi:feat/mobile-token-detail
Open

feat(mobile): token detail screen#588
kaylachi wants to merge 1 commit into
Miracle656:mainfrom
kaylachi:feat/mobile-token-detail

Conversation

@kaylachi

Copy link
Copy Markdown

Summary

Adds the per-token detail screen (backlog #35 / #463) — the focused destination when tapping an asset row: a single asset's balance, price, and its own transfer history, mirroring the web token route.

Added

  • app/token/[id].tsx — the screen. The route id identifies the asset (XLM for native, CODE:ISSUER for a classic asset). Shows balance, an approximate USD value + unit price, and the per-asset transfer list, with loading / no-wallet / empty / error states.
  • lib/token.tsparseAssetId(id) (route segment → code + optional issuer), fetchTokenDetail(publicKey, code, issuer) (held balance + payments from Horizon; unfunded reads as zero), and the pure filterTokenActivity that narrows a payment page to just the operations touching the asset — honouring the issuer and including account-funding for XLM.
  • lib/price.ts — best-effort Lens oracle price lookup (native port of the web fetchPrice); any 402 / timeout / unknown pair degrades to 'Price unavailable' rather than blocking the screen.

Testing

  • tsc --noEmit
  • jest lib/__tests__/token.test.ts ✅ (6/6 — id parsing incl. percent-encoding, native-vs-credit filtering, issuer matching, wrong-issuer exclusion)

Closes #463

Add a per-token screen at token/[id] — the destination when tapping an
asset row. The route id identifies the asset (XLM for native, CODE:ISSUER
otherwise); `parseAssetId` turns it back into a code + issuer.
`fetchTokenDetail` reads the held balance and the account's payments from
Horizon, and `filterTokenActivity` narrows those to just the transfers
touching this asset (honouring the issuer, and including account funding
for XLM). `lib/price.ts` ports the best-effort Lens price lookup, so the
screen shows balance, an approximate USD value, and the per-asset
transfer history — degrading to 'Price unavailable' when the oracle
can't answer.

Closes Miracle656#463
@kaylachi
kaylachi requested a review from Miracle656 as a code owner July 29, 2026 17:54
@vercel

vercel Bot commented Jul 29, 2026

Copy link
Copy Markdown

@kaylachi is attempting to deploy a commit to the miracle656's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Jul 29, 2026

Copy link
Copy Markdown

@kaylachi Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

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.

35. Token detail screen

1 participant