Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions src/components/incentives/IncentivesTooltipContent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,16 @@ const IncentivesSymbolMap: {
symbol: 'aUSDC',
aToken: true,
},
aBasCBBTC: {
tokenIconSymbol: 'CBBTC',
symbol: 'aCBBTC',
aToken: true,
},
aBasWETH: {
tokenIconSymbol: 'WETH',
symbol: 'aWETH',
aToken: true,
},
aEthUSDS: {
tokenIconSymbol: 'usds',
symbol: 'aUSDS',
Expand Down Expand Up @@ -118,6 +128,11 @@ const IncentivesSymbolMap: {
symbol: 'astS',
aToken: true,
},
aEthEURC: {
tokenIconSymbol: 'EURC',
symbol: 'aEURC',
aToken: true,
},
};

interface IncentivesTooltipContentProps {
Expand Down
71 changes: 69 additions & 2 deletions src/hooks/useMeritIncentives.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ export enum MeritAction {
SUPPLY_CBBTC_BORROW_USDC = 'ethereum-supply-cbbtc-borrow-usdc',
SUPPLY_WBTC_BORROW_USDT = 'ethereum-supply-wbtc-borrow-usdt',
SUPPLY_WEETH_BORROW_USDC = 'ethereum-supply-weeth-borrow-usdc',
ETHEREUM_BORROW_EURC = 'ethereum-borrow-eurc',
ARBITRUM_SUPPLY_ETH = 'arbitrum-supply-weth',
ARBITRUM_SUPPLY_WSTETH = 'arbitrum-supply-wsteth',
ARBITRUM_SUPPLY_EZETH = 'arbitrum-supply-ezeth',
Expand All @@ -33,7 +34,11 @@ export enum MeritAction {
BASE_SUPPLY_WEETH = 'base-supply-weeth',
BASE_SUPPLY_EZETH = 'base-supply-ezeth',
BASE_SUPPLY_EURC = 'base-supply-eurc',
BASE_SUPPLY_GHO = 'base-supply-gho',
BASE_SUPPLY_LBTC_BORROW_CBBTC = 'base-supply-lbtc-borrow-cbbtc',
BASE_SUPPLY_CBBTC_BORROW_MULTIPLE = 'base-supply-cbbtc-borrow-multiple',
BASE_SUPPLY_WSTETH_BORROW_MULTIPLE = 'base-supply-wsteth-borrow-multiple',
BASE_SUPPLY_WETH_BORROW_MULTIPLE = 'base-supply-weth-borrow-multiple',
BASE_BORROW_EURC = 'base-borrow-eurc',
BASE_BORROW_USDC = 'base-borrow-usdc',
BASE_BORROW_WSTETH = 'base-borrow-wsteth',
Expand Down Expand Up @@ -82,10 +87,10 @@ const getMeritData = (market: string, symbol: string): MeritReserveIncentiveData
MERIT_DATA_MAP[market]?.[symbol];

const antiLoopMessage =
'Borrowing of some assets may impact the amount of rewards you are eligible for. Please check the forum post for the full eligibility criteria.';
'Borrowing of some assets or holding of some token may impact the amount of rewards you are eligible for. Please check the forum post for the full eligibility criteria.';

const antiLoopBorrowMessage =
'Supplying of some assets may impact the amount of rewards you are eligible for. Please check the forum post for the full eligibility criteria.';
'Supplying of some assets or holding of some token may impact the amount of rewards you are eligible for. Please check the forum post for the full eligibility criteria.';
Comment on lines +90 to +93
Copy link

Copilot AI Jul 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grammar error: 'holding of some token' should be 'holding of some tokens' (plural) to match the pattern with 'some assets'.

Copilot uses AI. Check for mistakes.
Copy link

Copilot AI Jul 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grammar error: 'holding of some token' should be 'holding of some tokens' (plural) to match the pattern with 'some assets'.

Suggested change
'Supplying of some assets or holding of some token may impact the amount of rewards you are eligible for. Please check the forum post for the full eligibility criteria.';
'Supplying of some assets or holding of some tokens may impact the amount of rewards you are eligible for. Please check the forum post for the full eligibility criteria.';

Copilot uses AI. Check for mistakes.

const lbtcCbbtcCampaignMessage =
'You must supply LBTC and borrow cbBTC, while maintaining a health factor of 1.5 or below, in order to receive merit rewards. Please check the forum post for the full eligibility criteria.';
Expand All @@ -96,6 +101,15 @@ const StSLoopIncentiveProgramMessage =
const weethUsdcCampaignMessage =
'You must supply weETH and borrow new USDC, while maintaining a health factor of 2 or below, in order to receive merit rewards. Eligibility criteria for this campaign are different from usual, please refer to the forum post for full details.';

const baseIncentivesCbbtcCampaignsMessage =
'You must supply cbBTC and borrow USDC, GHO, EURC or wETH to receive Merit rewards. Holding some assets or positions on other protocols may impact the amount of rewards you are eligible for. Please check the forum post for the full eligibility criteria.';

const baseIncentivesWstETHCampaignsMessage =
'You must supply wstETH and borrow USDC, GHO, EURC or wETH to receive Merit rewards. Holding some assets or positions on other protocols may impact the amount of rewards you are eligible for. Please check the forum post for the full eligibility criteria.';

const baseIncentivesETHCampaignsMessage =
'Supplying ETH alone earns 1.25%, supplying ETH and borrowing USDC or EURC earns 1.50%, supplying ETH and borrowing GHO earns 1.75%. Some assets holding or positions on other protocols may impact the amount of rewards you are eligible for. Please check the forum post for the full eligibility criteria.';

const joinedEthCorrelatedIncentiveForumLink =
'https://governance.aave.com/t/arfc-set-aci-as-emission-manager-for-liquidity-mining-programs/17898/56';

Expand All @@ -119,6 +133,9 @@ const weethUsdcForumLink =
const StSLoopIncentiveProgramForumLink =
'https://governance.aave.com/t/arfc-sts-loop-incentive-program/22368';

const baseIncentivesForumLink =
'https://governance.aave.com/t/arfc-base-incentive-campaign-funding/21983';

const MERIT_DATA_MAP: Record<string, Record<string, MeritReserveIncentiveData[]>> = {
[CustomMarket.proto_mainnet_v3]: {
GHO: [
Expand Down Expand Up @@ -214,6 +231,15 @@ const MERIT_DATA_MAP: Record<string, Record<string, MeritReserveIncentiveData[]>
customForumLink: weethUsdcForumLink,
},
],
EURC: [
{
action: MeritAction.ETHEREUM_BORROW_EURC,
rewardTokenAddress: AaveV3Ethereum.ASSETS.EURC.A_TOKEN,
rewardTokenSymbol: 'aEthEURC',
protocolAction: ProtocolAction.borrow,
customMessage: antiLoopBorrowMessage,
},
],
},
[CustomMarket.proto_lido_v3]: {
ETH: [
Expand Down Expand Up @@ -297,6 +323,14 @@ const MERIT_DATA_MAP: Record<string, Record<string, MeritReserveIncentiveData[]>
rewardTokenSymbol: 'aBasUSDC',
protocolAction: ProtocolAction.supply,
},
{
action: MeritAction.BASE_SUPPLY_CBBTC_BORROW_MULTIPLE,
rewardTokenAddress: AaveV3Base.ASSETS.cbBTC.A_TOKEN,
rewardTokenSymbol: 'aBasCBBTC',
protocolAction: ProtocolAction.supply,
customMessage: baseIncentivesCbbtcCampaignsMessage,
customForumLink: baseIncentivesForumLink,
},
{
action: MeritAction.BASE_SUPPLY_LBTC_BORROW_CBBTC,
rewardTokenAddress: AaveV3Base.ASSETS.USDC.A_TOKEN,
Expand Down Expand Up @@ -329,6 +363,14 @@ const MERIT_DATA_MAP: Record<string, Record<string, MeritReserveIncentiveData[]>
customMessage: antiLoopMessage,
customForumLink: joinedEthCorrelatedIncentiveForumLink,
},
{
action: MeritAction.BASE_SUPPLY_WSTETH_BORROW_MULTIPLE,
rewardTokenAddress: AaveV3Base.ASSETS.wstETH.A_TOKEN,
rewardTokenSymbol: 'aBaswstETH',
protocolAction: ProtocolAction.supply,
customMessage: baseIncentivesWstETHCampaignsMessage,
customForumLink: baseIncentivesForumLink,
},
{
action: MeritAction.BASE_BORROW_WSTETH,
rewardTokenAddress: AaveV3Base.ASSETS.wstETH.A_TOKEN,
Expand Down Expand Up @@ -387,6 +429,13 @@ const MERIT_DATA_MAP: Record<string, Record<string, MeritReserveIncentiveData[]>
},
],
GHO: [
{
action: MeritAction.BASE_SUPPLY_GHO,
rewardTokenAddress: AaveV3Base.ASSETS.GHO.A_TOKEN,
rewardTokenSymbol: 'aBasGHO',
protocolAction: ProtocolAction.supply,
customMessage: antiLoopMessage,
},
{
action: MeritAction.BASE_BORROW_GHO,
rewardTokenAddress: AaveV3Base.ASSETS.GHO.A_TOKEN,
Expand All @@ -397,6 +446,24 @@ const MERIT_DATA_MAP: Record<string, Record<string, MeritReserveIncentiveData[]>
'https://governance.aave.com/t/arfc-set-aci-as-emission-manager-for-liquidity-mining-programs/17898/94',
},
],
WETH: [
{
action: MeritAction.BASE_SUPPLY_WETH_BORROW_MULTIPLE,
rewardTokenAddress: AaveV3Base.ASSETS.WETH.A_TOKEN,
rewardTokenSymbol: 'aBasWETH',
protocolAction: ProtocolAction.supply,
customMessage: baseIncentivesETHCampaignsMessage,
},
],
ETH: [
{
action: MeritAction.BASE_SUPPLY_WETH_BORROW_MULTIPLE,
rewardTokenAddress: AaveV3Base.ASSETS.WETH.A_TOKEN,
rewardTokenSymbol: 'aBasWETH',
protocolAction: ProtocolAction.supply,
customMessage: baseIncentivesETHCampaignsMessage,
},
],
},
[CustomMarket.proto_avalanche_v3]: {
['BTC.b']: [
Expand Down
Loading