Skip to content

chore(runway): cherry-pick fix(rewards): perps trading campaign dtos and ineligible state cp-7.80.0#30932

Merged
sleepytanya merged 4 commits into
release/7.80.0from
runway-cherry-pick-7.80.0-rewards-30907
Jun 4, 2026
Merged

chore(runway): cherry-pick fix(rewards): perps trading campaign dtos and ineligible state cp-7.80.0#30932
sleepytanya merged 4 commits into
release/7.80.0from
runway-cherry-pick-7.80.0-rewards-30907

Conversation

@VGR-GIT

@VGR-GIT VGR-GIT commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Cherry-pick of #30907 into release/7.80.0.

Why

Sophie's fix migrates the perps leaderboard client from the old API field names (notionalVolume, qualified) to the new ones (volume, eligible). Without this in 7.80, the shipped build would read field names that the updated backend no longer returns as primary fields — causing volume to show as a dash and every user to appear ineligible.

The backend (va-mmcx-rewards#608) adds deprecated aliases to protect already-released builds, but 7.80 should ship reading the correct fields natively.

Confirmed by Christian Montoya in Slack (C09372GAN59/p1780384351113279).

Cherry-pick details

Changelog

Category PR
fix Cherry-pick of #30907 — perps trading campaign DTOs and ineligible state

CHANGELOG entry: fix: perps trading campaign DTOs and ineligible state (cherry-pick of #30907)

🤖 Generated with Claude Code


Note

Medium Risk
Touches rewards API mapping and user-visible eligibility/stats gating across multiple campaign screens; incorrect volume handling could hide stats or misstate qualification, but scope is limited to perps trading rewards UI and cached DTOs.

Overview
Aligns the perps trading rewards client with updated leaderboard API fields and eligibility UX for release 7.80.0 (cherry-pick of #30907).

API & state: DTOs and RewardsController caching now use volume / eligible / minVolumeForEligibility (and related position fields) instead of notionalVolume / qualified. Leaderboard entries expose volume; responses include minVolumeForEligibility.

UI behavior: Stats, summary, and header components read the new fields, compute remaining volume from API threshold (with constant fallback), and guard rank/PnL/volume with Number.isFinite. Details and leaderboard views only treat a user as having a “position” for the stats header/summary when volume is finite and > 0 (hiding stats for zero/invalid volume while rank/neighbors can still flow to the list). Leaderboard rows adapt entries for shared row UI via qualified: true.

Copy & tests: Locale strings retitle “qualify for this rank” to leaderboard qualification; tests and mocks updated across views, hooks, reducer, and controller specs, with added edge-case coverage.

Reviewed by Cursor Bugbot for commit 56eda6b. Bugbot is set up for automated code reviews on this repo. Configure here.

@VGR-GIT VGR-GIT requested a review from a team as a code owner June 2, 2026 12:55
@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

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.

@mm-token-exchange-service mm-token-exchange-service Bot added the team-rewards Rewards team label Jun 2, 2026
@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

⏭️ Smart E2E selection skipped - PR targets a release or stable branch (release/* or stable)

All E2E tests pre-selected.

View GitHub Actions results

@github-actions github-actions Bot added the size-L label Jun 2, 2026
@mm-token-exchange-service mm-token-exchange-service Bot added the INVALID-PR-TEMPLATE PR's body doesn't match template label Jun 4, 2026
@sleepytanya sleepytanya added the skip-sonar-cloud Only used for bypassing sonar cloud when failures are not relevant to the changes. label Jun 4, 2026
@sleepytanya sleepytanya merged commit c2e1933 into release/7.80.0 Jun 4, 2026
320 of 326 checks passed
@sleepytanya sleepytanya deleted the runway-cherry-pick-7.80.0-rewards-30907 branch June 4, 2026 01:01
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 4, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

INVALID-PR-TEMPLATE PR's body doesn't match template size-L skip-sonar-cloud Only used for bypassing sonar cloud when failures are not relevant to the changes. team-rewards Rewards team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants