From d927429132f7f8ceb2d05a2318570aee580b5279 Mon Sep 17 00:00:00 2001 From: AGMASO Date: Wed, 14 Oct 2026 15:08:21 +0200 Subject: [PATCH] feat: add support for multicampaign custom text and apply to jumper campaigns --- .../MerklIncentivesTooltipContent.tsx | 19 +++++++++++++++++++ src/hooks/useMerklIncentives.ts | 2 ++ src/locales/en/messages.po | 2 ++ src/ui-config/merklConfig.ts | 5 +++++ 4 files changed, 28 insertions(+) diff --git a/src/components/incentives/MerklIncentivesTooltipContent.tsx b/src/components/incentives/MerklIncentivesTooltipContent.tsx index 2239764ef5..5f05c6a8f8 100644 --- a/src/components/incentives/MerklIncentivesTooltipContent.tsx +++ b/src/components/incentives/MerklIncentivesTooltipContent.tsx @@ -21,6 +21,13 @@ export const MerklIncentivesTooltipContent = ({ const merklIncentivesFormatted = getSymbolMap(merklIncentives); const isPointsBased = Boolean(merklIncentives?.breakdown?.points); + const campaign = merklIncentives.onChainCampaignId + ? merklIncentives.rewardsTokensMappedApys?.find( + (reward) => + reward.onChainCampaignId.toLowerCase() === + merklIncentives.onChainCampaignId?.toLowerCase() + ) + : undefined; return ( )} + {campaign && merklIncentives.customCampaignMessage && ( + + {' '} + APY {merklIncentives.customCampaignMessage} + + )} + {merklIncentives.breakdown ? ( <> diff --git a/src/hooks/useMerklIncentives.ts b/src/hooks/useMerklIncentives.ts index 81f7a55780..1283563faa 100644 --- a/src/hooks/useMerklIncentives.ts +++ b/src/hooks/useMerklIncentives.ts @@ -89,6 +89,8 @@ export type MerklOpportunity = { type ReserveIncentiveAdditionalData = { customClaimMessage?: string; customMessage?: string; + onChainCampaignId?: string; + customCampaignMessage?: string; customForumLink?: string; }; diff --git a/src/locales/en/messages.po b/src/locales/en/messages.po index 4ac3e2c958..c0cf10b9e5 100644 --- a/src/locales/en/messages.po +++ b/src/locales/en/messages.po @@ -1405,6 +1405,7 @@ msgstr "You have assets with zero LTV that are blocking this operation. Please w #: src/components/incentives/MerklIncentivesTooltipContent.tsx #: src/components/incentives/MerklIncentivesTooltipContent.tsx #: src/components/incentives/MerklIncentivesTooltipContent.tsx +#: src/components/incentives/MerklIncentivesTooltipContent.tsx #: src/components/transactions/DelegationTxsWrapper.tsx #: src/components/transactions/DelegationTxsWrapper.tsx #: src/components/transactions/DelegationTxsWrapper.tsx @@ -3902,6 +3903,7 @@ msgstr "Selected supply assets" #: src/components/incentives/MerklIncentivesTooltipContent.tsx #: src/components/incentives/MerklIncentivesTooltipContent.tsx #: src/components/incentives/MerklIncentivesTooltipContent.tsx +#: src/components/incentives/MerklIncentivesTooltipContent.tsx #: src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsList.tsx #: src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsList.tsx #: src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsListItem.tsx diff --git a/src/ui-config/merklConfig.ts b/src/ui-config/merklConfig.ts index 72b181b6ef..6c317614a6 100644 --- a/src/ui-config/merklConfig.ts +++ b/src/ui-config/merklConfig.ts @@ -1,5 +1,7 @@ type AdditionalIncentiveInfo = { customMessage?: string; + onChainCampaignId?: string; + customCampaignMessage?: string; customClaimMessage?: string; customForumLink?: string; }; @@ -662,6 +664,9 @@ export const EXTRA_WHITELIST_TOKENS: MerklWhitelistConfig = { '8453-0xD4a0e0b9149BCee3C920d2E00b5dE09138fd8bb7': { customMessage: 'You need to supply WETH on Aave on Base to receive USDC rewards. Only new supplies made after the campaign started qualify.', + onChainCampaignId: '0x955de5b8c1acdce952561774211fb2faaa4249c50a1dfee193d7faaaeb258091', + customCampaignMessage: + 'is available as an extra incentive only to users who have bridged at least $500 to Base through Jumper since October 14, 2026. Only new deposits qualify. Existing positions do not earn these rewards.', }, '1-0x7c0477d085ECb607CF8429f3eC91Ae5E1e460F4F': { customMessage: