Sub-Adapters 1
Preview and test each sub adapter.
Aave (aave)
Metadata
- ID
- aave
- icon
- category
- "app" 
- name
- "Aave" 
- issuanceDescription
- "AAVE tokens are paid to users who stake AAVE and AAVE/ETH Balancer LP tokens in the Safety Module." 
- website
- "https://aave.com" 
Queries
Adapter Code
Check the entire code written for the Adapter.
Source code
Showing TS source. 
1export const name = 'Aave Issuance';
2export const version = '0.3.0';
3export const license = 'MIT';
4
5const STKAAVE_ADDRESS = '0x4da27a545c0c5b758a6ba100e3a049001de870f5';
6const STKABPT_ADDRESS = '0xa1116930326d21fb917d5a27f1e9943a9595fb47';
7const AAVE = '0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9';
8const ECOSYSTEM_RESERVE = '0x25f2226b597e8f9514b3f68f00f494cf4f286491';
9const SECONDS_IN_DAY = 24 * 60 * 60;
10const SECONDS_IN_WEEK = 7 * 24 * 60 * 60;
11const STAAVE_ABI = [
12  'function assets(address) external view returns (uint128 emissionPerSecond, uint128, uint256)',
13];
14
15export async function setup(sdk: Context) {
16  const issuancePerDay = async () => {
17    const stkaaveContract = sdk.ethers.getContract(STKAAVE_ADDRESS, STAAVE_ABI);
18    const stkabptContract = sdk.ethers.getContract(STKABPT_ADDRESS, STAAVE_ABI)
19    const [stkaaveAssetData,stkabptAssetData] = await Promise.all([
20      stkaaveContract.assets(STKAAVE_ADDRESS),
21      stkabptContract.assets(STKABPT_ADDRESS)
22    ]);
23
24    const aaveIssuance = stkaaveAssetData.emissionPerSecond.add(stkabptAssetData.emissionPerSecond).mul(SECONDS_IN_DAY);
25    return Number(sdk.ethers.utils.formatEther(aaveIssuance));
26  }
27
28  const issuancePerDayUSD = async () => {
29    const issuance = await issuancePerDay();
30    const aavePrice = await sdk.coinGecko.getCurrentPrice('aave');
31
32    return issuance * aavePrice;
33  }
34
35  const getIssuanceRate = async () => {
36    const aaveToken = sdk.ethers.getERC20Contract(AAVE);
37  
38    const [supply, reserveBalance, issuance] = await Promise.all([
39      aaveToken.totalSupply(),
40      aaveToken.balanceOf(ECOSYSTEM_RESERVE),
41      issuancePerDay(),
42    ]);
43
44    const adjustedSupply = (supply.toString() - reserveBalance.toString()) / 1e18;
45    const issuanceRate = (issuance * 365) / adjustedSupply;
46    return issuanceRate;
47  }
48
49  sdk.register({
50    id: 'aave',
51    queries: {
52      issuance7DayAvgUSD: issuancePerDayUSD,
53      issuanceRateCurrent: getIssuanceRate,
54      issuancePerDay: issuancePerDay
55    },
56    metadata: {
57      icon: sdk.ipfs.getDataURILoader('QmW4X8Q36jjPm8fzU21NzFKRxNzReQy4JnehKbRrgybFh6', 'image/svg+xml'),
58      category: 'app',
59      name: 'Aave',
60      issuanceDescription: 'AAVE tokens are paid to users who stake AAVE and AAVE/ETH Balancer LP tokens in the Safety Module.',
61      website: 'https://aave.com',
62    },
63  });
64}
65
It's something off?
Report it to the discussion board on Discord, we will take care of it.