Sub-Adapters 4
Preview and test each sub adapter.
Balancer - Version 1 (balancer-v1)
Balancer - Version 2 (balancerv2)
Balancer - Polygon (balancerv2-polygon)
Balancer - Arbitrum (balancerv2-arbitrum)
Adapter Code
Check the entire code written for the Adapter.
Source code
Showing TS source. 
1export const name = 'Balancer Fees';
2export const version = '0.1.0';
3export const license = 'MIT';
4
5export function setup(sdk: Context) {
6  async function getBalancerData(
7    date: string,
8    subgraphName: string,
9    chain = 'ethereum'
10  ): Promise<number> {
11    const todayBlock = await sdk.chainData.getBlockNumber(sdk.date.offsetDaysFormatted(date, 1), chain);
12    const yesterdayBlock = await sdk.chainData.getBlockNumber(date, chain);
13
14    const data = await sdk.graph.query(
15      `balancer-labs/${subgraphName}`,
16      `{
17        now: balancers(first: 1, block: {number: ${todayBlock}}) {
18          totalSwapFee
19        }
20        yesterday: balancers(first: 1, block: {number: ${yesterdayBlock}}) {
21          totalSwapFee
22        }
23      }`
24    );
25
26    return parseFloat(data.now[0].totalSwapFee) - parseFloat(data.yesterday[0].totalSwapFee);
27  };
28
29  const metadata = {
30    category: 'dex',
31    name: 'Balancer',
32    description: 'Balancer is a decentralized exchange & asset pool balancer.',
33    feeDescription: 'Trading fees are paid by traders to liquidity providers',
34    source: 'The Graph Protocol',
35    website: 'https://balancer.fi',
36    blockchain: 'Ethereum',
37    tokenLaunch: '2020-06-20',
38    tokenTicker: 'BAL',
39    tokenCoingecko: 'balancer',
40    icon: sdk.ipfs.getDataURILoader('Qmb3u8knknnGYyLBVrw5ZTqYUue2LC1zCkDWsfctBHJBHN', 'image/svg+xml'),
41    protocolLaunch: '2020-02-27',
42  };
43
44  sdk.register({
45    id: 'balancer-v1',
46    bundle: 'balancer',
47    queries: {
48      oneDayTotalFees: (date: string) => getBalancerData(date, 'balancer'),
49    },
50    metadata: {
51      ...metadata,
52      subtitle: 'Version 1',
53      protocolLaunch: '2020-02-27',
54    },
55  });
56
57  sdk.register({
58    id: 'balancerv2',
59    bundle: 'balancer',
60    queries: {
61      oneDayTotalFees: (date: string) => getBalancerData(date, 'balancer-v2'),
62    },
63    metadata: {
64      ...metadata,
65      subtitle: 'Version 2',
66      protocolLaunch: '2021-05-11',
67    },
68  });
69
70  sdk.register({
71    id: 'balancerv2-polygon',
72    bundle: 'balancer',
73    queries: {
74      oneDayTotalFees: (date: string) => getBalancerData(date, 'balancer-polygon-v2', 'polygon'),
75    },
76    metadata: {
77      ...metadata,
78      subtitle: 'Polygon',
79      blockchain: 'Polygon',
80      protocolLaunch: '2021-07-01',
81    },
82  });
83
84  sdk.register({
85    id: 'balancerv2-arbitrum', 
86    bundle: 'balancer',
87    queries: {
88      oneDayTotalFees: (date: string) => getBalancerData(date, 'balancer-arbitrum-v2', 'arbitrum-one'),
89    },
90    metadata: {
91      ...metadata,
92      subtitle: 'Arbitrum',
93      blockchain: 'Arbitrum One',
94      protocolLaunch: '2021-08-31',
95    },
96  });
97
98  sdk.registerBundle('balancer', metadata);
99}
100
It's something off?
Report it to the discussion board on Discord, we will take care of it.