Adapter

Mycelium Fees

Trade with liquidity, leverage, low fees.

Sub-Adapters 1

Preview and test each sub adapter.

Mycelium - Arbitrum (mycelium-arbitrum)

Metadata

ID
mycelium-arbitrum
name

"Mycelium"

icon
protocolLaunch

"2022-08-15"

category

"dex"

description

"Trade with liquidity, leverage, low fees."

feeDescription

"MLP holders earn 70% of revenue from trading fees. Earn 10% of fees as an active trader."

blockchain

"Arbitrum One"

source

"The Graph Protocol"

website

"https://swaps.mycelium.xyz"

tokenTicker

"MYC"

tokenCoingecko

"mycelium"

subtitle

"Arbitrum"

Queries

Adapter Code

Check the entire code written for the Adapter.

Source code

Showing TS source.
1export const name = 'Mycelium Fees';
2export const version = '0.0.2';
3export const license = 'MIT';
4
5const MYCELIUM_SUBGRAPH = 'mycelium-ethereum/myc-swaps-stats'
6const SPREAD_PERCENTAGE = 0.0006;
7
8const feesGraphQuery = `query fees($date: String!) {
9      feeStats(where: { period: daily, id_gte: $date, id_lte: $date  }) {
10        margin
11        marginAndLiquidation
12        swap
13        mint
14        burn
15      }
16    }`;
17
18const volumeGraphQuery = `query volume($date: String!) {
19      volumeStats(where: { period: daily, id_gte: $date, id_lte: $date }) {
20        margin
21        liquidation
22        swap
23        mint
24        burn
25      }
26    }`;
27
28export function setup(sdk: Context) {
29  const getFeesData = (subgraph: string, postFix = '') => async (date: string): Promise<any> => {
30    // Get volume data to calculate fees + spread
31    const volumeData = await sdk.graph.query(subgraph, volumeGraphQuery, {
32      date: sdk.date.dateToTimestamp(date) + postFix
33    });
34    const feesData = await sdk.graph.query(subgraph, feesGraphQuery, {
35      date: sdk.date.dateToTimestamp(date) + postFix
36    });
37
38    if (!feesData.feeStats[0] || !volumeData.volumeStats[0]) {
39      throw new Error(`No data found for date ${date}`);
40    }
41
42    const totalVolume = Object.values(volumeData.volumeStats[0]).reduce((val: string, next: string) => parseFloat(val) + parseFloat(next), 0)
43    const spread = totalVolume as number * SPREAD_PERCENTAGE;
44    const totalFees = (parseFloat(feesData.feeStats[0].marginAndLiquidation) - parseFloat(feesData.feeStats[0].margin))
45      + parseFloat(feesData.feeStats[0].swap)
46      + parseFloat(feesData.feeStats[0].margin)
47      + parseFloat(feesData.feeStats[0].mint)
48      + parseFloat(feesData.feeStats[0].burn)
49      + spread;
50
51    return totalFees / 1e30;
52  }
53
54  const getVolumeData = (subgraph: string, postFix = '') => async (date: string): Promise<number> => {
55    const data = await sdk.graph.query(subgraph, volumeGraphQuery, {
56      date: sdk.date.dateToTimestamp(date) + postFix,
57      nextDay: sdk.date.dateToTimestamp(date) + postFix,
58    });
59
60    if (!data.volumeStats[0]) {
61      throw new Error(`No data found for date ${date}`);
62    }
63
64    const totalVolume = Object.values(data.volumeStats[0]).reduce((val: string, next: string) => parseFloat(val) + parseFloat(next), 0)
65
66    return totalVolume as number / 1e30;
67  }
68
69  const metadata = {
70    name: 'Mycelium',
71    icon: sdk.ipfs.getDataURILoader('QmQPstDnd8BF647Ww4a1cHoTD6HZ27AGi2LRTswS4d9JCF', 'image/svg+xml'),
72    protocolLaunch: '2022-08-15',
73    category: 'dex',
74    description: 'Trade with liquidity, leverage, low fees.',
75    feeDescription: 'MLP holders earn 70% of revenue from trading fees. Earn 10% of fees as an active trader.', // Update later
76    blockchain: 'Arbitrum One',
77    source: 'The Graph Protocol',
78    website: 'https://swaps.mycelium.xyz',
79    tokenTicker: 'MYC',
80    tokenCoingecko: 'mycelium',
81  };
82
83  sdk.register({
84    id: 'mycelium-arbitrum',
85    bundle: 'myc',
86    queries: {
87      oneDayTotalFees: getFeesData(MYCELIUM_SUBGRAPH),
88      oneDayTotalVolumeUSD: getVolumeData(MYCELIUM_SUBGRAPH),
89    },
90    metadata: {
91      ...metadata,
92      subtitle: 'Arbitrum',
93      blockchain: 'Arbitrum One',
94      protocolLaunch: '2022-08-15',
95    },
96  });
97
98  sdk.registerBundle('myc', metadata);
99}

It's something off?

Report it to the discussion board on Discord, we will take care of it.

Adapter Info

Version

0.0.2

License

MIT

IPFS CID

QmXHuKB9Tb6TyrYocfHygxfh151ULN35CSPcjoj8k3ZEAE

CID (source)

QmUwKqrhRD1serQvux4T7AHe14CdvgNiFtjLY54g8cJkT1

Collections

Author

0xFAc9141E4F35a15DC3Dac648CB542B0664Cb5154