Sub-Adapters 1
Preview and test each sub adapter.
Ren Protocol (ren)
Metadata
- ID
- ren
- name
- "Ren Protocol" 
- icon
- category
- "xchain" 
- description
- "Ren Protocol is a protocol for cross-chain asset transfers." 
- feeDescription
- "Transfer fees are paid by users to node operators (Darknodes)." 
- source
- "RenVM Tracker" 
- website
- "https://renproject.io" 
- tokenTicker
- "REN" 
- tokenCoingecko
- "republic-protocol" 
- protocolLaunch
- "2020-05-27" 
Queries
Adapter Code
Check the entire code written for the Adapter.
Source code
Showing TS source. 
1export const name = 'Ren Protocol Fees';
2export const version = '0.1.0';
3export const license = 'MIT';
4
5const ONE_DAY = 86400;
6
7export function setup(sdk: Context) {
8  const getFees = async (date: string): Promise<number> => {
9    const snapshotTimestamp = sdk.date.dateToTimestamp(date);
10    const dayBeforeSnapshotTimestamp = snapshotTimestamp - ONE_DAY;
11
12    const data = await sdk.graph.query('https://stats.renproject.io/', `{
13      current: Snapshot(timestamp: "${snapshotTimestamp}") {
14        fees {
15          asset
16          amount
17        }
18        prices {
19          asset
20          priceInUsd
21          decimals
22        }
23      }
24      dayAgo: Snapshot(timestamp: "${dayBeforeSnapshotTimestamp}") {
25        fees {
26          asset
27          amount
28        }
29      }
30    }`);
31
32    const dayAgo = data.dayAgo.fees.reduce(
33      (acc, fees) => ({ ...acc, [fees.asset]: fees.amount }),
34      {}
35    );
36
37    const current = data.current.fees.reduce(
38      (acc, fees) => ({ ...acc, [fees.asset]: fees.amount }),
39      {}
40    );
41
42    const prices = data.current.prices.reduce(
43      (acc, prices) => ({ ...acc, [prices.asset]: prices }),
44      {}
45    );
46
47    const assets = Object.keys(current);
48
49    return assets.reduce((acc: number, asset: string) => {
50      const difference = current[asset] - (dayAgo[asset] || 0);
51      if (!prices[asset]) {
52        return acc;
53      }
54      const decimals = prices[asset].decimals;
55      const priceInUsd = prices[asset].priceInUsd;
56      const differentInUsd = (difference / 10 ** decimals) * priceInUsd;
57      return acc + (differentInUsd || 0);
58    }, 0);
59  };
60
61  sdk.register({
62    id: 'ren',
63    queries: {
64      oneDayTotalFees: getFees,
65    },
66    metadata: {
67      name: 'Ren Protocol',
68      icon: sdk.ipfs.getDataURILoader('QmQnRxS7jjLXVPcUJNtkidddynYiZQ4t9UpGMaAFuKbK4H', 'image/svg+xml'),
69      category: 'xchain',
70      description: 'Ren Protocol is a protocol for cross-chain asset transfers.',
71      feeDescription: 'Transfer fees are paid by users to node operators (Darknodes).',
72      source: 'RenVM Tracker',
73      website: 'https://renproject.io',
74      tokenTicker: 'REN',
75      tokenCoingecko: 'republic-protocol',
76      protocolLaunch: '2020-05-27',
77    },
78  })
79}
80
It's something off?
Report it to the discussion board on Discord, we will take care of it.