fix(predict): allow claims for pushed markets - #34513
Conversation
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection:
The changes are scoped entirely to the Predictions feature with no impact on other wallet flows (accounts, networks, swaps, browser, snaps, etc.). Risk is medium because the REDEEMABLE status change affects the claim flow logic in both the controller and UI layers. Performance Test Selection: |
|
|
| Platform | Device | Reason | Recording |
|---|---|---|---|
| Android | Google Pixel 8 Pro (v14.0) | Quality gates exceeded | 📹 Watch |
🔬 App profiling check · Current run 31217286445 · Baseline (last green on main) run 30897750395 @ 67486d2
Summary:
ℹ️ API calls unavailable:
Network logs API error: Bad Request
Full metric table (+10% variance rules)
Disclaimer — allowed variance: a +10% margin over the baseline is permitted.
- If
Current <= Baseline + 10%, treated as acceptable noise.- If
Current > Baseline + 10%, Current and variance % are highlighted with⚠️ .
| Metric | Baseline | Current | Δ |
|---|---|---|---|
| CPU avg | 10.95% | 10.11% | -0.84 (-7.7%) |
| CPU max | 24.51% | 21.69% | -2.82 (-11.5%) |
| Memory avg | 686.99 MB | 654.81 MB | -32.18 (-4.7%) |
| Memory max | 821.45 MB | 782.97 MB | -38.48 (-4.7%) |
| Slow frames | 7.85% | 23.59% | +15.74 (+200.5%) |
| Frozen frames | 0% | 0% | 0 (0%) |
| ANRs | 0 | 0 | 0 (0%) |
| Issues | 2 | 2 | 0 (0%) |
| Critical issues | 2 | 2 | 0 (0%) |
| App size | 328.67 MB | 328.72 MB | +0.05 (+0%) |
✅ Passed Tests (2)
| Test | Platform | Device | Duration | Team | Recording |
|---|---|---|---|---|---|
| Predict Market Details - Complete Flow Performance | Android | Google Pixel 8 Pro (v14.0) | 3.11s | @team-predict | 📹 Watch |
| Predict Available Balance - Complete Flow Performance | Android | Google Pixel 8 Pro (v14.0) | 1.02s | @team-predict | 📹 Watch |
Branch: fix/pred-959-claim-pushed-markets · Build: E2E · Commit: 8cc2807 · View full run



Description
Pushed prediction markets resolve without a winner and return the user's stake, producing a claimable position with zero cash P&L. These positions were previously classified as lost, so they were excluded from the claim flow and the confirmation UI failed before constructing a transaction.
This change classifies zero-P&L claimable positions as
REDEEMABLE, distinct from bothWONandLOST. Redeemable positions are included in claim amounts, claim confirmation, portfolio totals, and pending-claim history, while win-only selectors and labels continue to include only actual wins. Pending pushed positions are displayed as resolved rather than won.Regression tests cover the status boundaries and verify that redeemable positions can be claimed without being presented as wins.
Changelog
CHANGELOG entry: Fixed claims for prediction markets that resolved as a push
Related issues
Fixes: https://consensyssoftware.atlassian.net/browse/PRED-959
Manual testing steps
Automated verification completed:
Screenshots/Recordings
N/A. This fixes claim eligibility and status classification without introducing a new visual design.
Before
N/A. The claim flow failed before rendering a usable confirmation for pushed positions.
After
N/A. Covered by focused unit and component tests.
Pre-merge author checklist
Performance checks (if applicable)
The performance checks below were assessed as not applicable because this is a small status-classification fix with no new rendering loop, network request, or performance-sensitive operation.
trace()for usage andaddTokenfor an exampleFor performance guidelines and tooling, see the Performance Guide.
Pre-merge reviewer checklist