Skip to content

Commit eb337bb

Browse files
authored
Add Lifi Fees, update sushi v3 optimism subgraph (#3017)
1 parent 0bf7999 commit eb337bb

File tree

2 files changed

+223
-1
lines changed

2 files changed

+223
-1
lines changed

dexs/sushiswap/v3.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ const endpointsV3 = {
1515
[CHAIN.FUSE]: sdk.graph.modifyEndpoint('7E265DKJJiTn8bVF1nqmBr6C2tmo5MVQFNb9sm4cxng5'),
1616
[CHAIN.XDAI]: sdk.graph.modifyEndpoint('GFvGfWBX47RNnvgwL6SjAAf2mrqrPxF91eA53F4eNegW'),
1717
// [CHAIN.MOONRIVER]: sdk.graph.modifyEndpoint('F46W9YVQXGism5iN9NZNhKm2DQCvjhr4u847rL1tRebS'),
18-
[CHAIN.OPTIMISM]: sdk.graph.modifyEndpoint('Hc3vTLxWmtyrn59t2Yv3MiXJVxjfNyZi41iKE3rXXHMf'),
18+
[CHAIN.OPTIMISM]: sdk.graph.modifyEndpoint('Dr3FkshPgTMMDwxckz3oZdwLxaPcbzZuAbE92i6arYtJ'),
1919
[CHAIN.POLYGON]: sdk.graph.modifyEndpoint('G1Q6dviDfMm6hVLvCqbfeB19kLmvs7qrnBvXeFndjhaU'),
2020
// [CHAIN.POLYGON_ZKEVM]: sdk.graph.modifyEndpoint('E2x2gmtYdm2HX3QXorUBY4KegfGu79Za6TEQYjVrx15c'),
2121
// [CHAIN.THUNDERCORE]: 'https://graph-node.thundercore.com/subgraphs/name/sushi-v3/v3-thundercore',

fees/lifi/index.ts

+222
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
import { Chain } from "@defillama/sdk/build/general";
2+
import { FetchOptions, FetchResultVolume, SimpleAdapter } from "../../adapters/types";
3+
import { CHAIN } from "../../helpers/chains";
4+
import fetchURL from "../../utils/fetchURL";
5+
6+
type IContract = {
7+
[c: string | Chain]: {
8+
id: string;
9+
startTime: string;
10+
}
11+
}
12+
13+
const contract: IContract = {
14+
[CHAIN.ABSTRACT]: {
15+
id: '0xde6A2171959d7b82aAD8e8B14cc84684C3a186AC',
16+
startTime: '2025-01-15'
17+
},
18+
[CHAIN.APECHAIN]: {
19+
id: '0xEe80aaE1e39b1d25b9FC99c8edF02bCd81f9eA30',
20+
startTime: '2025-01-20'
21+
},
22+
[CHAIN.ARBITRUM]: {
23+
id: '0xB0210dE78E28e2633Ca200609D9f528c13c26cD9',
24+
startTime: '2023-08-21'
25+
},
26+
[CHAIN.AURORA]: {
27+
id: '0xB0210dE78E28e2633Ca200609D9f528c13c26cD9',
28+
startTime: '2022-10-21'
29+
},
30+
[CHAIN.AVAX]: {
31+
id: '0xB0210dE78E28e2633Ca200609D9f528c13c26cD9',
32+
startTime: '2022-10-18'
33+
},
34+
[CHAIN.BASE]: {
35+
id: '0x0A6d96E7f4D7b96CFE42185DF61E64d255c12DFf',
36+
startTime: '2023-08-15'
37+
},
38+
[CHAIN.BERACHAIN]: {
39+
id: '0x070EC43b4222E0f17EEcD2C839cb9D1D5adeF73c',
40+
startTime: '2025-02-12'
41+
},
42+
// [CHAIN.BITCOIN]: {
43+
// id: '20000000000001',
44+
// startTime: '2023-03-11'
45+
// },
46+
[CHAIN.BLAST]: {
47+
id: '0xF048e5816B0C7951AC179f656C5B86e5a79Bd7b5',
48+
startTime: '2024-05-17'
49+
},
50+
[CHAIN.BOBA]: {
51+
id: '0xB0210dE78E28e2633Ca200609D9f528c13c26cD9',
52+
startTime: '2022-10-21'
53+
},
54+
[CHAIN.BSC]: {
55+
id: '0xbD6C7B0d2f68c2b7805d88388319cfB6EcB50eA9',
56+
startTime: '2023-07-21'
57+
},
58+
[CHAIN.CELO]: {
59+
id: '0xF048e5816B0C7951AC179f656C5B86e5a79Bd7b5',
60+
startTime: '2022-10-18'
61+
},
62+
[CHAIN.CRONOS]: {
63+
id: '0x11d40Dc8Ff0CE92F54A315aD8e674a55a866cBEe',
64+
startTime: '2023-10-19'
65+
},
66+
[CHAIN.EVMOS]: {
67+
id: '0xB49EaD76FE09967D7CA0dbCeF3C3A06eb3Aa0cB4',
68+
startTime: '2022-10-24'
69+
},
70+
[CHAIN.ERA]: {
71+
id: '0x8dBf6f59187b2EB36B980F3D8F4cFC6DC4E4642e',
72+
startTime: '2023-07-13'
73+
},
74+
[CHAIN.ETHEREUM]: {
75+
id: '0xbD6C7B0d2f68c2b7805d88388319cfB6EcB50eA9',
76+
startTime: '2023-07-27'
77+
},
78+
[CHAIN.FANTOM]: {
79+
id: '0xB0210dE78E28e2633Ca200609D9f528c13c26cD9',
80+
startTime: '2022-10-18'
81+
},
82+
[CHAIN.FRAXTAL]: {
83+
id: '0x7956280Ec4B4d651C4083Ca737a1fa808b5319D8',
84+
startTime: '2024-06-27'
85+
},
86+
[CHAIN.FUSE]: {
87+
id: '0xB0210dE78E28e2633Ca200609D9f528c13c26cD9',
88+
startTime: '2023-10-19'
89+
},
90+
[CHAIN.GRAVITY]: {
91+
id: '0x79540403cdE176Ca5f1fb95bE84A7ec91fFDEF76',
92+
startTime: '2024-07-30'
93+
},
94+
[CHAIN.INK]: {
95+
id: '0x8295805320853d6B28778fC8f5199327e62e3d87',
96+
startTime: '2025-01-22'
97+
},
98+
[CHAIN.LINEA]: {
99+
id: '0xA4A24BdD4608D7dFC496950850f9763B674F0DB2',
100+
startTime: '2023-08-28'
101+
},
102+
[CHAIN.LISK]: {
103+
id: '0x50D5a8aCFAe13Dceb217E9a071F6c6Bd5bDB4155',
104+
startTime: '2024-12-09'
105+
},
106+
[CHAIN.MANTLE]: {
107+
id: '0xF048e5816B0C7951AC179f656C5B86e5a79Bd7b5',
108+
startTime: '2024-05-13'
109+
},
110+
[CHAIN.METIS]: {
111+
id: '0x27f0e36dE6B1BA8232f6c2e87E00A50731048C6B',
112+
startTime: '2024-02-03'
113+
},
114+
[CHAIN.MODE]: {
115+
id: '0xF048e5816B0C7951AC179f656C5B86e5a79Bd7b5',
116+
startTime: '2024-04-15'
117+
},
118+
[CHAIN.MOONBEAM]: {
119+
id: '0xB0210dE78E28e2633Ca200609D9f528c13c26cD9',
120+
startTime: '2022-10-18'
121+
},
122+
[CHAIN.MOONRIVER]: {
123+
id: '0xB0210dE78E28e2633Ca200609D9f528c13c26cD9',
124+
startTime: '2023-10-18'
125+
},
126+
[CHAIN.OP_BNB]: {
127+
id: '0x6A2420650139854F17964b8C3Bb60248470aB57E',
128+
startTime: '2023-10-24'
129+
},
130+
[CHAIN.OPTIMISM]: {
131+
id: '0xbD6C7B0d2f68c2b7805d88388319cfB6EcB50eA9',
132+
startTime: '2023-07-25'
133+
},
134+
[CHAIN.POLYGON]: {
135+
id: '0xbD6C7B0d2f68c2b7805d88388319cfB6EcB50eA9',
136+
startTime: '2023-07-20'
137+
},
138+
[CHAIN.POLYGON_ZKEVM]: {
139+
id: '0xB49EaD76FE09967D7CA0dbCeF3C3A06eb3Aa0cB4',
140+
startTime: '2023-06-01'
141+
},
142+
[CHAIN.ROOTSTOCK]: {
143+
id: '0xF048e5816B0C7951AC179f656C5B86e5a79Bd7b5',
144+
startTime: '2024-05-27'
145+
},
146+
[CHAIN.SCROLL]: {
147+
id: '0xF048e5816B0C7951AC179f656C5B86e5a79Bd7b5',
148+
startTime: '2024-02-06'
149+
},
150+
[CHAIN.SEI]: {
151+
id: '0x7956280Ec4B4d651C4083Ca737a1fa808b5319D8',
152+
startTime: '2024-05-27'
153+
},
154+
// [CHAIN.SOLANA]: {
155+
// id: '1151111081099710',
156+
// startTime: '2024-01-01'
157+
// },
158+
[CHAIN.SONEIUM]: {
159+
id: '0x8295805320853d6B28778fC8f5199327e62e3d87',
160+
startTime: '2025-02-17'
161+
},
162+
[CHAIN.SONIC]: {
163+
id: '0xaFb8cC8fCd71cd768Ce117C11eB723119FCDb1f8',
164+
startTime: '2025-01-22'
165+
},
166+
[CHAIN.SUPERPOSITION]: {
167+
id: '0x15b9Cf781B4A79C00E4dB7b49d8Bf67359a87Fd2',
168+
startTime: '2025-04-24'
169+
},
170+
[CHAIN.SWELLCHAIN]: {
171+
id: '0x5d9C68B76809B33317d869FF6034929F4458913c',
172+
startTime: '2025-04-23'
173+
},
174+
[CHAIN.TAIKO]: {
175+
id: '0xDd8A081efC90DFFD79940948a1528C51793C4B03',
176+
startTime: '2024-08-15'
177+
},
178+
[CHAIN.UNICHAIN]: {
179+
id: '0x8295805320853d6B28778fC8f5199327e62e3d87',
180+
startTime: '2025-02-12'
181+
},
182+
[CHAIN.VELAS]: {
183+
id: '0xB0210dE78E28e2633Ca200609D9f528c13c26cD9',
184+
startTime: '2022-10-20'
185+
},
186+
[CHAIN.XDAI]: {
187+
id: '0xbD6C7B0d2f68c2b7805d88388319cfB6EcB50eA9',
188+
startTime: '2023-07-24'
189+
}
190+
}
191+
192+
const FeeCollectedEvent = "event FeesCollected(address indexed _token, address indexed _integrator, uint256 _integratorFee, uint256 _lifiFee)"
193+
194+
const fetch = async (options: FetchOptions) => {
195+
const dailyFees = options.createBalances();
196+
const data: any[] = await options.getLogs({
197+
target: contract[options.chain].id,
198+
topic: '0x28a87b6059180e46de5fb9ab35eb043e8fe00ab45afcc7789e3934ecbbcde3ea',
199+
eventAbi: FeeCollectedEvent,
200+
});
201+
// 0x0000000000000000000000000000000000000000 is the gas token for all chains, we already handle it in the Balances
202+
data.forEach((log: any) => {
203+
dailyFees.add(log._token, log._integratorFee);
204+
});
205+
206+
return { dailyFees, dailyRevenue: dailyFees } as any;
207+
};
208+
209+
const adapter: SimpleAdapter = {
210+
version: 2,
211+
adapter: Object.keys(contract).reduce((acc, chain) => {
212+
return {
213+
...acc,
214+
[chain]: {
215+
fetch,
216+
start: contract[chain].startTime
217+
}
218+
}
219+
}, {})
220+
};
221+
222+
export default adapter;

0 commit comments

Comments
 (0)