Build exchange workspace and shared transaction services (#28)
This commit is contained in:
1 parent
52b7135eda
commit
c496da8a55
48 files changed
+4757
-120
No files matched your search
@@ -195,3 +195,42 @@ essential information, accessibility, and recovery. Documentation only.
|
||||
Validation: skill-creator `quick_validate.py` passed in an isolated environment
|
||||
with PyYAML (the system Python lacked it); `git diff --check` passed. No runtime
|
||||
tests were needed. The PR is not merged.
|
||||
|
||||
## Exchange workspace — task #28
|
||||
|
||||
- Branch `workspace-28`, stacked on `limits-22` / PR #23. Merge KYC #21 first,
|
||||
then limits #23, then retarget this workspace contribution to main. The approved
|
||||
plan from #24/#25 is included and updated for the user's available-only direction.
|
||||
- Implemented Accounts, Activity/detail, Limits and Settings in a responsive
|
||||
go_router shell, with top-up, exchange and payout input/review/status flows.
|
||||
One action group follows the selected currency; all colors use theme roles.
|
||||
Only available balances are displayed. Status explains credit timing, outgoing
|
||||
amount plus fee, completion and full return after failure.
|
||||
- Shared `sxchnge_wallet` service/providers own coherent demo balances, quotes,
|
||||
idempotent submissions, reconciliation, history, account language and live
|
||||
snapshot refresh. The limits adapter reuses the KYC DTO/mapper and refreshes
|
||||
usage when operations change. Widgets consume provider models.
|
||||
- Language is in account settings, with failed-save feedback and retry. Public
|
||||
auth and verified-email screens enter the workspace. KYC remains optional;
|
||||
the demo service enforces its basic/verified outgoing caps at submission.
|
||||
- UX review: EN/RU at 320px with 1.6 text scaling; available-only presentation;
|
||||
field preservation after errors; explicit draft discard; quote expiry;
|
||||
loading/stale/empty states; operation outcome explanations; accessible labels,
|
||||
semantic status announcements and focus after quote/errors. Browser walkthrough
|
||||
verifies quote amounts and service-confirmed credit with the exchange handoff.
|
||||
Native mobile and dedicated VoiceOver/TalkBack testing remain release QA.
|
||||
- Measurement review: typed draft/quote/submission/settlement steps with scoped
|
||||
journey IDs, safe failure enums, simulated flag and deduplicated terminal
|
||||
outcomes. No financial amounts, recipients or account IDs in events. Pending
|
||||
app closure is not draft abandonment. Real PostHog delivery and cross-session
|
||||
server outcomes remain integration work.
|
||||
- Validation passed: `make test-frontend` (115 tests), `flutter analyze` in app,
|
||||
sxchnge_wallet, sxchnge_analytics and sxchnge_kyc; format check of all 36 changed
|
||||
Dart files; `flutter build web`; `git diff --check`. Review fixes included
|
||||
narrow Russian layouts, limit-provider typing, automatic pending refresh,
|
||||
single-use quotes and ambiguous-response recovery. No security scan requested.
|
||||
- Demo limits: opening EUR 75, fixed rates/fees and three currencies, no real
|
||||
payment methods/bank validation/storage/auth enforcement. Account preferences,
|
||||
history and balances reset on reload. No receipt export, date pagination,
|
||||
notification preferences or security settings beyond an honest capability note.
|
||||
Backend adapters must supply these before production use; see the wallet README.
|
||||
Reference in new issue
Block a user