Incentive program (FEDEV-3501)#2401
Open
qwinndev wants to merge 135 commits into
Open
Conversation
Add tier badge icons (apex, certified, legendary, ranked, veteran) and feature icons (boost, discounts, epoch, multiplier, points, staking).
Add types, constants, and SWR hooks for the incentive points system: config fetching, account status, dashboard data, rewards history, leaderboard, and personalized banner computation. Update subsquid indexer URLs to incentive-enabled endpoints.
…omponent Extract the animated gradient "New" badge from SupportChatNavItem into a reusable NavItem.scss, rename CSS classes from support-chat-* to nav-*, and simplify SupportChatNavItem to use the new showNewBadge prop.
Add /points route with three tabs: Dashboard (multiplier progress, tier cards, how-it-works), Rewards History (per-epoch table with pagination), and Leaderboard (time filters, address search, sorting). Includes sidebar rewards widget with claim modal and epoch countdown. Add localStorage keys and leaderboard sorter context.
Show a "Points" link in the side navigation when incentives are enabled, with an animated gradient "New" badge that dismisses on first click.
Surface the user's current incentive multiplier as a green badge next to their address in both multichain/non-multichain dropdowns, and add a PointsSection to the account modal linking to /points.
Add a dismissible personalized promo banner on the trade page driving traffic to /points, and a multiplier info row at the bottom of the trade submission form.
- Fix points page tier cards, levels, and main data section per Figma designs - Update AdvancedDisplayRows and PointsRow in TradeBox - Add multiplier solid icon asset - Clean up unused imports and incentive types - Add custom Tailwind config entries for points UI
…namic config - Implement Claim and Claim+Stake flows via ClaimHandler/RewardRouter contracts - Add "Incentivized Markets" filter tab with multiplier badge in chart selector - Replace hardcoded multiplier caps, epoch durations, and boost descriptions with API-driven values - Rework manual allocation detection using pre-program rewards history entries - Add estimated rewards, total earned rewards, and live epoch countdown to sidebar - Show dynamic "stake X GMX more for Y boost" in account modal - Simplify rewards history table columns with locale-aware epoch formatting - Extract epoch timing, incentives text, and epoch label utilities with tests - Update FAQ copy from "weekly" to "each epoch" with dynamic values - Auto-dismiss promo banner on link click - Update all locale files with new translation strings
Resolve conflicts: - indexers.ts: keep test subsquid URLs for incentive-points development - locale files: keep translations from both branches
Each progress section in the active staking tier card now shows a tooltip on hover with the tier name, multiplier, and staked/threshold.
…, bigint formatting
…e-points-dashboard # Conflicts: # src/components/ChartTokenSelector/ChartTokenSelector.tsx # src/components/FavoriteTabs/FavoriteTabs.tsx # src/components/GmList/useFilterSortPools.tsx # src/components/MarketSelector/GmPoolsSelectorForGlvMarket.tsx # src/components/MarketSelector/MarketSelector.tsx # src/components/MarketSelector/PoolSelector.tsx # src/context/TokensFavoritesContext/TokensFavoritesContextProvider.tsx # src/domain/synthetics/subaccount/utils.ts # src/locales/de/messages.po # src/locales/en/messages.po # src/locales/es/messages.po # src/locales/fr/messages.po # src/locales/ja/messages.po # src/locales/ko/messages.po # src/locales/pseudo/messages.po # src/locales/ru/messages.po # src/locales/zh-tw/messages.po # src/locales/zh/messages.po
Playwright Component Test ReportAll tests passed. Commit f12b986 |
divhead
reviewed
May 26, 2026
|
|
||
| const gmxMaxUnstakeAmount = useMemo(() => { | ||
| const stakedAmount = processedData?.gmxInStakedGmx; | ||
| if (stakedAmount === undefined) return undefined; |
Collaborator
There was a problem hiding this comment.
this could be a single condition and check another places plaese
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.
Summary
Implements the frontend for the GMX incentive/loyalty points program — an MVP where traders earn weekly Points based on trading fees paid, adjusted by staking, volume, and activity multipliers.
Key additions:
/points) with dashboard, leaderboard, and rewards history tabs — tier blocks for Volume / Staking / Boosts, progress bars, FAQ and "How it works" sectionssrc/domain/synthetics/incentives/) — types, constants, and data hooks (useAccountIncentiveDashboard,useAccountIncentiveStatus,useAccountRewardsHistory,useIncentivesLeaderboard,useIncentivesConfig,usePersonalizedBannerData,useIncentiveAccountEpochAudit)useClaimAffiliateSwapRoutes,ClaimSwapTargetTokenSelector), historical points allocation modal/incentives-audit) for debugging per-account epoch dataLinear
FEDEV-3501 — https://linear.app/gmx-io/issue/FEDEV-3501/incentive-scheme-frontend-squid
Test Plan