Skip to content

feat: USDT0 migration campaign — banner card + Merkl incentive badge (~10% APR)#1142

Merged
tjcloa merged 5 commits into
developfrom
feat/usdt0-campaign-frontend
Jul 17, 2026
Merged

feat: USDT0 migration campaign — banner card + Merkl incentive badge (~10% APR)#1142
tjcloa merged 5 commits into
developfrom
feat/usdt0-campaign-frontend

Conversation

@tjcloa

@tjcloa tjcloa commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Implements the USDT0 migration campaign frontend spec (2026-07-13, Shir): incentivized USDT→USDT0 migration on Rootstock, ~10% APR via Merkl, rewards every 8h, all USDT0/RBTC LPs eligible.

Changes

1. Landing-page banner card (Banner.tsx)

  • New LandingPromoCard as the first carousel slide: "USDT0 MIGRATION: ~10% APR", CTA "Start migration" → /earn/market-making, orange border (mirrors the Zero card).
  • Carousel rotation enabled now that there are 2 cards: autoPlay + showDots + infinite (15s interval already configured).

2. Market Making — USDT0/RBTC incentive badge (PoolsTableReturns.tsx)

  • USDT0/RBTC row only: return rate reads ~10.NN% (campaign 10% + pool's organic rate). Pool identified by its pool token via USDT0_BTC_AMM_POOL_TOKEN (now exported from MarketMakingPage.constants.ts).
  • New MerklIncentiveBadge: 16×16 circled-gift SVG (#F57118) + @sovryn/ui Tooltip with campaign explainer and "View & claim on Merkl ↗" link (new tab). Tooltip stays open while hovered so the link is clickable; a prevent-row-click + stopPropagation wrapper keeps taps/clicks from expanding the table row (incl. the mobile accordion, which has no prevent-class support).
  • Mobile covered automatically: the mobile row title renders the same PoolsTableReturns component.

Campaign teardown is trivial: remove one carousel card, one conditional, and the MerklIncentiveBadge/ folder (holds the hardcoded Merkl URL + 10% addend, hardcoded per the 2026-07-13 call).

Testing

  • 3 new RTL test suites (7 tests): banner card + CTA route, badge tooltip open/link/propagation, boosted vs plain rate per pool. Full frontend suite: 7 suites / 44 tests green; eslint clean.
  • Runtime-verified against the dev server (mainnet env) with headless Chrome: only the USDT0/BTC row shows ~10.NN% + icon (all other pools unchanged); tooltip opens on hover, stays open over content, link href/target/rel correct; badge click does not expand the row (control click on another row does); mobile viewport shows the boosted rate + icon.
  • Note: the dev-server TS overlay error in PortfolioPage/.../AmbientMarketMakingTotalValue (TS2339 ammPoolsnever) is pre-existing on develop — reproduced with a pristine develop working tree.

Remaining QA (manual)

  • Real-device tap-to-open check for the tooltip (hover-emulation verified headless; same mechanism as existing HelperButton tooltips).
  • Carousel swipe + 15s auto-rotate visual check.
  • If the title wraps badly on small screens, spec fallback title: EARN ~10% ON USDT0.

🤖 Generated with Claude Code

tjcloa added 3 commits July 17, 2026 13:09
Campaign: ~10% APR via Merkl for USDT0/RBTC LPs, rewards every 8h.
Enables carousel rotation (autoPlay/showDots/infinite) now that there
is more than one promo card. Spec: tyrone-work usdt0-rollout docs
2026-07-13-usdt0-campaign-frontend-spec.md
Circled gift icon (design-final SVG, #F57118) with hover/tap tooltip
linking to the Merkl campaign page. Outer wrapper stops click
propagation so the pools-table row does not expand on tap.
Adds campaign 10% APR on top of the pool's organic return rate for the
USDT0/RBTC AMM pool only, identified by its exported pool token
address. Covers desktop column and mobile row title (both render
PoolsTableReturns).
@changeset-bot

changeset-bot Bot commented Jul 17, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 29c6c03

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@netlify

netlify Bot commented Jul 17, 2026

Copy link
Copy Markdown

Deploy Preview for sovryn-dapp ready!

Name Link
🔨 Latest commit 29c6c03
🔍 Latest deploy log https://app.netlify.com/projects/sovryn-dapp/deploys/6a5a6a62e328a800084043cd
😎 Deploy Preview https://deploy-preview-1142.preview.sovryns.dev
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@tjcloa
tjcloa merged commit 4971f72 into develop Jul 17, 2026
7 checks passed
@tjcloa
tjcloa deleted the feat/usdt0-campaign-frontend branch July 17, 2026 17:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant