Federation address lookup, QR stream sharing, and analytics charts - #695
Merged
Austinaminu2 merged 1 commit intoAug 27, 2026
Merged
Conversation
…tar#155 FlowwStar#153 FlowwStar#152); confirm FlowwStar#216 already fixed - FlowwStar#155: Resolve Federation addresses (name*domain.com) in the create-stream recipient field via @stellar/stellar-sdk's Federation.Server, show the resolved G-address before submit, and remember the mapping in the address book so stream cards and the stream detail page can reverse-display known Federation names for a recipient (lib/federation.ts, lib/address-book.ts). - FlowwStar#153: Add a QR code share modal on the stream detail page (qrcode.react) with copy-link, PNG download, and basic stream info, opened from the existing Share menu (components/streams/qr-share-dialog.tsx). - FlowwStar#152: Rebuild the analytics page charts on recharts: a streaming-volume area chart, a token-distribution donut, a stream-status bar chart, a top recipients table, and an aggregate unlock-progress bar, all fed by the existing useStreams data (components/analytics/charts.tsx, app/app/analytics/page.tsx). - FlowwStar#216: contracts/streaming/src/lib.rs already declares `mod test_features;` on upstream/main (fixed by an earlier merged commit) — no code change needed, verified test module is wired into the crate's module tree. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
@Genghis-codes 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! 🚀 |
Genghis-codes
had a problem deploying
to
staging
August 27, 2026 17:21 — with
GitHub Actions
Failure
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
name*domain.com) alongside raw G-addresses. Resolution goes through@stellar/stellar-sdk'sFederation.Server.resolve(), shows the resolved account before submit, and errors clearly on invalid domain / name-not-found / network failure. Address book entries can store the Federation name alongside the G-address, and stream cards + the stream detail page show that name for recipients when known (reverse lookup via the locally-remembered mapping, since the Federation protocol has no universal reverse-lookup endpoint without already knowing the domain). Seelib/federation.ts,lib/address-book.ts.Dialogprimitive, which provides focus trap + Escape-to-dismiss) with an SVG QR code (qrcode.react) for crisp display, a copy-link button, a "Download QR" PNG button, and basic stream info (amount, recipient, status). Seecomponents/streams/qr-share-dialog.tsx./app/analytics's charts onrecharts: a streaming-volume-over-time area chart, a token-distribution donut chart, a stream-status breakdown bar chart (streaming/scheduled/completed/cancelled), a top-recipients table (with Federation names when known), and an aggregate unlock-progress bar. All derived from the existinguseStreamsdata — no new contract calls. The existing 7d/30d/90d/all-time range selector and empty states carry over. Seecomponents/analytics/charts.tsx,app/app/analytics/page.tsx.upstream/mainby an earlier merged commit (7bdcde6 fix(streaming): wire up test_features module and fix its failing tests) —mod test_features;is present incontracts/streaming/src/lib.rsand the file compiles/runs undercargo test. No code change needed; closing as already resolved.Notes / TODOs
qrcode.reactandrechartswere added as dependencies (no existing QR/chart library was present inpackage.json);package-lock.jsonwas updated vianpm install --legacy-peer-depsto match CI's install step.cargo test,npm run build,npm run lint, e2e/unit suites. Please run CI and flag anything that needs follow-up — in particular I'd appreciate a close look at the recharts integration (v3.10.1) for any type-check issues I couldn't catch without a full build.Test plan
cargo test -p flowstar-streaming— confirmtest_featurestests run (already passing on main per investigation)npm run build && npm run lintname*domain.comFederation address/app/analyticscharts in both light and dark themes, across all range optionsCloses #216
Closes #155
Closes #153
Closes #152