File tree 2 files changed +45
-1
lines changed
2 files changed +45
-1
lines changed Original file line number Diff line number Diff line change @@ -981,10 +981,25 @@ const oracleAbi = [
981
981
] ;
982
982
983
983
const CHAIN = 'etlk' ;
984
+ const CHAIN_ID = 42793 ;
984
985
const PROTOCOL_DATA_PROVIDER = '0x99e8269dDD5c7Af0F1B3973A591b47E8E001BCac' ;
985
986
const UI_POOL_DATA_PROVIDER = '0x9F9384Ef6a1A76AE1a95dF483be4b0214fda0Ef9' ;
986
987
const PROVIDER_ADDRESS = '0x5ccF60c7E10547c5389E9cBFf543E5D0Db9F4feC' ;
987
988
989
+ const CAMPAIGN_ID_MAP = {
990
+ USDC : '0x1bd8c05ef0d7b581826288a6b28a33eee2d95caa68c7f4b23dc7c5f32704b8ad' ,
991
+ MTBILL : '0xd8d0ad6579284bcb4dbc3fb1e40f4596c788e4508daf9cfd010459ce86832850' ,
992
+ MBASIS : '0xb3509a79b1715bc7666666fc9c27eb77762436648de827a5c5817371593aefd0' ,
993
+ WBTC : '0xc85b1c610c3ae5058cc69e04d87239c2af3cefb0c2fbdfcccffa5fb23d9f1cd7' ,
994
+ USDT : '0x691135dbaf8ce8bcc7aace2468be9b499834308362e1194a4246014ff74163a1' ,
995
+ WXTZ : '0x898a135c2bceffdae7618b1e2266108d154dfeab75a373b3eb3641ca31647e6a' ,
996
+ } ;
997
+
998
+ const MERKLE_BASE_URL =
999
+ 'https://api.merkl.xyz/v4/campaigns/?chainId=CHAIN_ID&campaignId=CAMPAIGN_ID&withOpportunity=true' ;
1000
+
1001
+ const APPLE_REWARD_TOKEN = '0x6E9C1F88a960fE63387eb4b71BC525a9313d8461' ;
1002
+
988
1003
module . exports = {
989
1004
poolAbi,
990
1005
uiPoolDataProviderAbi,
@@ -993,4 +1008,8 @@ module.exports = {
993
1008
PROTOCOL_DATA_PROVIDER ,
994
1009
UI_POOL_DATA_PROVIDER ,
995
1010
PROVIDER_ADDRESS ,
1011
+ CHAIN_ID ,
1012
+ MERKLE_BASE_URL ,
1013
+ CAMPAIGN_ID_MAP ,
1014
+ APPLE_REWARD_TOKEN ,
996
1015
} ;
Original file line number Diff line number Diff line change 1
1
const sdk = require ( '@defillama/sdk' ) ;
2
+ const utils = require ( '../utils' ) ;
3
+
2
4
const {
3
5
poolAbi,
4
6
uiPoolDataProviderAbi,
7
9
PROTOCOL_DATA_PROVIDER ,
8
10
UI_POOL_DATA_PROVIDER ,
9
11
PROVIDER_ADDRESS ,
12
+ CHAIN_ID ,
13
+ MERKLE_BASE_URL ,
14
+ CAMPAIGN_ID_MAP ,
15
+ APPLE_REWARD_TOKEN ,
10
16
} = require ( './constants' ) ;
11
17
12
18
const getApy = async ( ) => {
@@ -105,6 +111,18 @@ const getApy = async () => {
105
111
) / 1e8 ;
106
112
}
107
113
114
+ // reward data
115
+ const rewardData = { } ;
116
+ for ( const pool of reserveTokens ) {
117
+ const campaignId = CAMPAIGN_ID_MAP [ pool . symbol . toUpperCase ( ) ] ;
118
+ const url = MERKLE_BASE_URL . replace ( 'CHAIN_ID' , CHAIN_ID ) . replace (
119
+ 'CAMPAIGN_ID' ,
120
+ campaignId
121
+ ) ;
122
+ const campaign = await utils . getData ( url ) ;
123
+ rewardData [ pool . symbol . toUpperCase ( ) ] = campaign [ 0 ] ?. Opportunity ?. apr ?? 0 ;
124
+ }
125
+
108
126
return reserveTokens
109
127
. map ( ( pool , i ) => {
110
128
const frozen = poolsReservesConfigurationData [ i ] . isFrozen ;
@@ -123,14 +141,21 @@ const getApy = async () => {
123
141
124
142
const url = `https://markets.superlend.xyz/reserve-overview/?underlyingAsset=${ pool . tokenAddress . toLowerCase ( ) } &marketName=etherlink` ;
125
143
144
+ const apyBase = ( p . liquidityRate / 10 ** 27 ) * 100 ;
145
+ const apyReward = rewardData [ pool . symbol . toUpperCase ( ) ] ?? 0 ;
146
+ const apy = apyBase + apyReward ;
147
+
126
148
return {
127
149
pool : `${ aTokens [ i ] . tokenAddress } -etlk` . toLowerCase ( ) ,
128
150
chain : 'Etherlink' ,
129
151
project : 'superlend' ,
130
152
symbol : pool . symbol ,
131
153
tvlUsd,
132
- apyBase : ( p . liquidityRate / 10 ** 27 ) * 100 ,
154
+ apyBase,
155
+ apyReward,
156
+ apy,
133
157
underlyingTokens : [ pool . tokenAddress ] ,
158
+ rewardTokens : apyReward > 0 ? [ APPLE_REWARD_TOKEN ] : [ ] ,
134
159
totalSupplyUsd,
135
160
totalBorrowUsd,
136
161
debtCeilingUsd : null ,
You can’t perform that action at this time.
0 commit comments