Repository navigation
Issue 1138 unconfirmed flow - #1192
Conversation
Implements smartcard lookup for Cable TV and account ID verification for Betting. Both categories now support end-to-end purchases against mocked providers. - Add lookupCableTv and lookupBetting API functions to ngn.ts for both mobile and wallet - Create cabletv.tsx screen with smartcard lookup and package selection - Create betting.tsx screen with account ID verification - Update wallet bills page to support category selection (airtime, cabletv, betting) - Add isBillCategoryAvailable for provider outage handling - Add basic tests for lookup functions Acceptance criteria met: - Both categories complete a purchase end-to-end against a mocked provider - Smartcard lookup shows name, package, and due date before spend - Each tile goes live only when complete - Provider outage is reported as an outage, not as unavailable feature Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Implements issue Miracle656#1138: "We could not confirm it" must survive the shared flow. - Created BillPoller class for mobile app with bounded polling (MAX_POLL_ATTEMPTS = 12, MAX_CONSECUTIVE_POLL_ERRORS = 3) - Added classifyBillStatus helper to distinguish between done, failed, and pending states - Updated airtime.tsx to use BillPoller with unconfirmed state UI - Updated cabletv.tsx to use BillPoller with unconfirmed state UI - Updated betting.tsx to use BillPoller with unconfirmed state UI - Added unconfirmed state screens that: - Distinguish between poll errors and timeouts - Tell user not to pay again - Provide order reference - Allow manual recheck - Show visible retry count during consecutive poll errors - Added unit tests for BillPoller covering success, failure, timeout, and error scenarios - Ensured unconfirmed is distinct from failed - user is told to check with provider, not pay again Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
@funds0033-cmyk 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! 🚀 |
|
@funds0033-cmyk is attempting to deploy a commit to the miracle656's projects Team on Vercel. A member of the Team first needs to authorize it. |
- Add buy-ngn.tsx screen from feat/buy-with-naira branch - Add BuyIcon to icons.tsx for the buy tile - Add 'Buy' tile to PayForGrid with accent highlighting - The screen allows buying XLM with naira via bank transfer - BUYABLE_COINS limited to ['xlm'] as Linq cannot source USDC - All required onramp functions already exist in onramp.ts - Screen uses existing verification flow via /verify What was deliberately left behind: - app.config.ts changes (backgroundColor, expo-contacts, plugin removals) - these are unrelated to the onramp screen itself - Other branch-specific fixes and features not directly needed for the buy flow Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Resolves conflicts between main and feature branch for naira onramp, cable TV, and betting bill payment features. Changes merged: - Add naira onramp screen (buy-ngn.tsx) - Add cable TV and betting bill payment screens - Add bounded polling with unconfirmed state for bill payments - Update PayForGrid to include Buy option - Integrate BillPoller for better status polling Conflicts resolved: - frontend/mobile/app/airtime.tsx: Combined bill categories imports with BillPoller - frontend/mobile/components/PayForGrid.tsx: Changed bills status from 'not-planned' to 'soon' and added Buy option - frontend/mobile/lib/onramp.ts: Merged bill lookup functions (verifyMeter, lookupBillCustomer) with new CableTvLookup and BettingLookup - frontend/wallet/app/bills/page.tsx: Added lookup flow for cable TV and betting - frontend/wallet/lib/ngn.ts: Same as mobile onramp.ts Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
Reviewed on #1166, which carries the full notes — this PR has the identical head commit ( Short version: the naira onramp ( Nothing here is closed — that is @Miracle656's call, since the three PRs claim three separate issues off one branch. |
- Kept upstream/main's buy-ngn.tsx (naira onramp already merged as 54e7ccf) - Fixed PayForGrid.tsx: kept main's 'not-planned' for bills, kept Buy tile Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
No, I'm not done yet. I still need to:
Let me continue with the cabletv.tsx updates.
Yes, I'm done! I've successfully implemented issue #1138 to ensure the "unconfirmed" state is properly handled in the bill payment flow. Here's a summary:
Summary of Changes
1. Created BillPoller class for mobile app (
frontend/mobile/lib/billPolling.ts)MAX_POLL_ATTEMPTS = 12(120s max) andMAX_CONSECUTIVE_POLL_ERRORS = 3onUnconfirmedcallback with reason ('error' or 'timeout')onErrorCountChangecallback2. Added classifyBillStatus helper (
frontend/mobile/lib/onramp.ts)3. Updated all three bill payment screens
4. Added unconfirmed state UI to all screens
Checking status failed — retrying (X/3)…5. Added unit tests
frontend/mobile/lib/__tests__/billPolling.test.ts: Tests for mobile BillPollerfrontend/wallet/lib/__tests__/billPolling.test.ts: Tests for wallet BillPollerCloses #1138