Skip to content

Commit a05a193

Browse files
adamazadnoateden
andauthored
feat(dexs): add swapr v3 dex data (#4008)
* feat(dexs): add swapr v3 dex data * refactor --------- Co-authored-by: Eden <[email protected]>
1 parent 16ac7d6 commit a05a193

File tree

4 files changed

+68
-2
lines changed

4 files changed

+68
-2
lines changed

dexs/swapr-v3/index.ts

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import { FetchOptions, SimpleAdapter } from '../../adapters/types'
2+
import { CHAIN } from '../../helpers/chains'
3+
import { request } from 'graphql-request'
4+
import * as sdk from '@defillama/sdk'
5+
6+
const protocolFee = 0.1
7+
8+
const fetch = async (
9+
_timestamp: number,
10+
_: any,
11+
options: FetchOptions,
12+
): Promise<any> => {
13+
const dayID = Math.floor(options.startOfDay / 86400)
14+
const query = `
15+
{
16+
algebraDayData(id:${dayID}) {
17+
id
18+
volumeUSD
19+
feesUSD
20+
}
21+
}`
22+
const url = sdk.graph.modifyEndpoint(
23+
'YwkNWffc8UTH77wDqGWgMShMq1uXdiQsD5wrD5MzKwJ',
24+
)
25+
const req = await request(url, query)
26+
return {
27+
dailyVolume: req.algebraDayData?.volumeUSD,
28+
dailyFees: req.algebraDayData?.feesUSD,
29+
dailyUserFees: req.algebraDayData?.feesUSD,
30+
dailyRevenue: req.algebraDayData?.feesUSD,
31+
dailyProtocolRevenue: req.algebraDayData?.feesUSD * protocolFee,
32+
dailySupplySideRevenue: req.algebraDayData?.feesUSD * (1 - protocolFee),
33+
}
34+
}
35+
36+
const methodology = {
37+
Fees: 'Swap fees paid by users.',
38+
UserFees: 'Swap fees paid by users.',
39+
Revenue: '10% swap fees collected by Swapr protocol.',
40+
ProtocolRevenue: '10% swap fees collected by Swapr protocol.',
41+
SupplySideRevenue: '90% swap fees distributed to LPs.',
42+
}
43+
44+
const adapter: SimpleAdapter = {
45+
fetch,
46+
methodology,
47+
chains: [CHAIN.XDAI],
48+
start: '2023-09-22',
49+
}
50+
51+
export default adapter

dexs/swapr/index.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,25 @@ import { CHAIN } from "../../helpers/chains";
22
import { FetchOptions, SimpleAdapter } from "../../adapters/types";
33
import { getUniV2LogAdapter } from "../../helpers/uniswap";
44

5-
const factories = {
5+
const factories: any = {
66
[CHAIN.ETHEREUM]: '0xd34971BaB6E5E356fd250715F5dE0492BB070452',
77
[CHAIN.ARBITRUM]: '0x359f20ad0f42d75a5077e65f30274cabe6f4f01a',
88
[CHAIN.XDAI]: '0x5d48c95adffd4b40c1aaadc4e08fc44117e02179',
99
};
1010

11+
const methodology = {
12+
Fees: 'Swap fees paid by users.',
13+
UserFees: 'Swap fees paid by users.',
14+
Revenue: '10% swap fees collected by Swapr protocol.',
15+
ProtocolRevenue: '10% swap fees collected by Swapr protocol.',
16+
SupplySideRevenue: '90% swap fees distributed to LPs.',
17+
}
18+
1119
const adapter: SimpleAdapter = {
1220
version: 2,
21+
methodology,
1322
fetch: async function(options: FetchOptions) {
14-
const fetchFunction = getUniV2LogAdapter({ factory: factories[options.chain] })
23+
const fetchFunction = getUniV2LogAdapter({ factory: factories[options.chain], userFeesRatio: 1, revenueRatio: 0.1, protocolRevenueRatio: 0.1 })
1524
return fetchFunction(options)
1625
},
1726
chains: [CHAIN.ETHEREUM, CHAIN.ARBITRUM, CHAIN.XDAI],

fees/swapr-v3.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import adapter from "../dexs/swapr-v3";
2+
3+
export default adapter;

fees/swapr.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import adapter from "../dexs/swapr";
2+
3+
export default adapter;

0 commit comments

Comments
 (0)