Repository navigation
feat(mobile): add transfer confirmation review, contact caching, and sdp history - #1126
Merged
ONEONUORA merged 1 commit intoOct 19, 2026
Conversation
|
@Dopezapha 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! 🚀 |
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.
Closes #910
Closes #914
Closes #919
Closes #921
PR Description
In this pull request, I resolved four frontend issues across the mobile transfer, caching, yield settings, and transaction history flows.
For #910, I updated the transfer confirmation flow so users can review the recipient details before signing a transaction. The review card now displays the avatar, the recipient real name, and their username parameter, along with a verification badge if the profile is trusted. When the user taps the send action on step 3, an explicit confirmation alert prompts the user to verify the transfer amount, asset symbol, and recipient name before any transaction generation or biometric signing begins.
For #914, I added persistent local caching for frequently paid usernames using AsyncStorage and an in-memory cache layer. When the transfer screen opens, the app reads synchronously from the in-memory cache so recent contacts load instantly without waiting for disk reads. When a transfer completes, the recipient username is trimmed, deduplicated, and stored at the top of the cache, capped at a maximum of 20 contacts.
For #919, I built the Auto-Earn on Idle Funds toggle switch on the personal home screen. Tapping the information icon opens a quick definition tooltip widget. Tapping the toggle or title opens a description modal that details the yield rules: daily sweeping of idle balances into vaults, current liquidity APY, instant liquidity without lockups, and zero manual DeFi management. Confirming the modal calls the backend endpoint at
/api/yield/toggle-autoto update user preferences.For #921, I built a dedicated disbursement history view in the transactions screen that separates Received Mass Payouts from standard transfers. Mass payouts sent through the Stellar Disbursement Platform (SDP) now appear in a dedicated top section with an item count badge and custom styling. I also added section switcher tabs for quick filtering between all activity, mass payouts, and standard transfers. Each payout row displays a unique SDP badge and identifies the sender company name and the anchor platform used for payout settlement. I also updated the history screen rows to maintain consistent badges and anchor information.
Changes Made
mobileapp/src/types/user.ts(Issue frontend: UI: Build confirmation screen displaying username avatar and details before signing #910): Added optionalname,display_name, andreal_nameparameters toZapsUserinterface for recipient profile details.mobileapp/src/components/TransferConfirmationCard.tsx(Issue frontend: UI: Build confirmation screen displaying username avatar and details before signing #910): Added real name header, username subtitle, avatar initials fallback, and verification badge for trusted profiles.mobileapp/app/transfer.tsx(Issue frontend: UI: Build confirmation screen displaying username avatar and details before signing #910): Added explicit confirmation dialog before transaction generation and populated recipient real names from contact matches and registry lookups.mobileapp/src/services/api.ts(Issue frontend: Storage: Implement local caching of frequently paid usernames for offline/fast access #914): Implemented persistent cache storing up to 20 recent recipient usernames in AsyncStorage with synchronous in-memory read access.mobileapp/app/transfer.tsx(Issue frontend: Storage: Implement local caching of frequently paid usernames for offline/fast access #914): Initialized recent recipients state synchronously on mount usinggetCachedRecentRecipientsSyncfor instant screen loading and auto-saved recipients on completed transfers.mobileapp/app/(personal)/home.tsx(Issue frontend: UI: Add 'Auto-Earn on Idle Funds' toggle switch with description modal #919): Added Auto-Earn quick definition tooltip widget and description modal explaining daily sweep yield rules and liquidity.mobileapp/src/services/api.ts(Issue frontend: UI: Add 'Auto-Earn on Idle Funds' toggle switch with description modal #919): UpdatedupdateAutoEarnto call the Axum backend routePOST /api/yield/toggle-autowith fallback.mobileapp/app/(personal)/transactions.tsx(Issue frontend: UI: Add Disbursement history section listing received mass payouts #921): Implemented transaction grouping separating Received Mass Payouts into a dedicated section, added category switcher tabs, added unique SDP disbursement badge, and rendered sender company and anchor information.mobileapp/app/(personal)/history.tsx(Issue frontend: UI: Add Disbursement history section listing received mass payouts #921): Updated transaction row component to render the SDP disbursement badge and anchor details for mass payouts.mobileapp/__tests__/TransferConfirmationCard.test.tsx(Issue frontend: UI: Build confirmation screen displaying username avatar and details before signing #910): Added unit tests for real name display, username parameters, and verified profile badge rendering.mobileapp/__tests__/api.test.ts(Issue frontend: Storage: Implement local caching of frequently paid usernames for offline/fast access #914): Added unit tests for cache persistence, instant synchronous reads, 20 contact limit, and deduplication.mobileapp/__tests__/transactions.test.tsx(Issue frontend: UI: Add Disbursement history section listing received mass payouts #921): Added unit tests for mass payout section grouping, SDP disbursement badge, sender anchor display, and tab filtering.