@@ -87,11 +87,15 @@ type MerklOpportunity = {
8787 } ;
8888} ;
8989
90- export type ExtendedReserveIncentiveResponse = ReserveIncentiveResponse & {
91- customMessage : string ;
92- customForumLink : string ;
90+ type ReserveIncentiveAdditionalData = {
91+ customClaimMessage ?: string ;
92+ customMessage ?: string ;
93+ customForumLink ?: string ;
9394} ;
9495
96+ export type ExtendedReserveIncentiveResponse = ReserveIncentiveResponse &
97+ ReserveIncentiveAdditionalData ;
98+
9599const allAaveAssets = [
96100 AaveV3Ethereum . ASSETS ,
97101 AaveV3EthereumLido . ASSETS ,
@@ -111,6 +115,28 @@ const allAaveAssets = [
111115 AaveV3Soneium . ASSETS ,
112116] ;
113117
118+ const additionalIncentiveData : Record < string , ReserveIncentiveAdditionalData > = {
119+ [ AaveV3Ethereum . ASSETS . USDe . A_TOKEN ] : {
120+ customMessage :
121+ 'You must supply USDe and hold an equal or greater amount of sUSDe (by USD value) to receive the incentives. To be eligible, your assets supplied must be at least 2x your account equity, and you must not be borrowing any USDe.' ,
122+ } ,
123+ [ AaveV3Ethereum . ASSETS . USDtb . A_TOKEN ] : {
124+ customMessage :
125+ 'You must supply USDtb to receive incentives. To be eligible, you must not be borrowing any USDtb.' ,
126+ customClaimMessage : 'Rewards will be claimable starting in early August.' ,
127+ customForumLink : 'https://x.com/ethena_labs/status/1950194502192550149' ,
128+ } ,
129+ } ;
130+
131+ const hardcodedIncentives : Record < string , ExtendedReserveIncentiveResponse > = {
132+ [ AaveV3Ethereum . ASSETS . USDe . A_TOKEN ] : {
133+ incentiveAPR : '0.12' ,
134+ rewardTokenAddress : AaveV3Ethereum . ASSETS . USDe . A_TOKEN ,
135+ rewardTokenSymbol : 'aEthUSDe' ,
136+ ...additionalIncentiveData [ AaveV3Ethereum . ASSETS . USDe . A_TOKEN ] ,
137+ } ,
138+ } ;
139+
114140const getUnderlyingAndAToken = ( assets : {
115141 [ key : string ] : {
116142 UNDERLYING : Address ;
@@ -125,6 +151,7 @@ const getUnderlyingAndAToken = (assets: {
125151
126152const otherTokensWhitelisted = [
127153 '0x04eadd7b10ea9a484c60860aea7a7c0aec09b9f0' , // aUSDtb wrapper contract
154+ '0x3a4de44B29995a3D8Cd02d46243E1563E55bCc8b' , // Aave Ethereum USDe (wrapped)
128155] ;
129156
130157const whitelistedRewardTokens = [
@@ -166,6 +193,12 @@ export const useMerklIncentives = ({
166193 queryKey : [ 'merklIncentives' , market ] ,
167194 staleTime : 1000 * 60 * 5 ,
168195 select : ( merklOpportunities ) => {
196+ const hardcodedIncentive = rewardedAsset ? hardcodedIncentives [ rewardedAsset ] : undefined ;
197+
198+ if ( hardcodedIncentive ) {
199+ return hardcodedIncentive ;
200+ }
201+
169202 const opportunities = merklOpportunities . filter (
170203 ( opportunitiy ) =>
171204 rewardedAsset &&
@@ -197,10 +230,15 @@ export const useMerklIncentives = ({
197230 return null ;
198231 }
199232
233+ const incentiveAdditionalData = rewardedAsset
234+ ? additionalIncentiveData [ rewardedAsset ]
235+ : undefined ;
236+
200237 return {
201238 incentiveAPR : apr . toString ( ) ,
202239 rewardTokenAddress : rewardToken . address ,
203240 rewardTokenSymbol : rewardToken . symbol ,
241+ ...incentiveAdditionalData ,
204242 } as ExtendedReserveIncentiveResponse ;
205243 } ,
206244 } ) ;
0 commit comments