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.2.0';
3export const license = 'MIT';
4
5const STAAVE_ADDRESS = '0x4da27a545c0c5b758a6ba100e3a049001de870f5';
6const AAVE = '0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9';
7const ECOSYSTEM_RESERVE = '0x25f2226b597e8f9514b3f68f00f494cf4f286491';
8const SECONDS_IN_DAY = 24 * 60 * 60;
9const SECONDS_IN_WEEK = 7 * 24 * 60 * 60;
10const STAAVE_ABI = [
11  'function assets(address) external view returns (uint128 emissionPerSecond, uint128, uint256)',
12];
13
14export async function setup(sdk: Context) {
15  const getAaveIssuance = async () => {
16    const staaveContract = sdk.ethers.getContract(STAAVE_ADDRESS, STAAVE_ABI);
17
18    const [assetData, aavePrice] = await Promise.all([
19      staaveContract.assets(STAAVE_ADDRESS),
20      sdk.coinGecko.getCurrentPrice('aave'),
21    ]);
22
23    const aaveRateDecimal = assetData.emissionPerSecond.toString() / 1e18;
24    const aaveInLastWeek = aaveRateDecimal * SECONDS_IN_WEEK;
25
26    return aaveInLastWeek * aavePrice;
27  }
28
29  const getIssuanceRate = async () => {
30    const aaveToken = sdk.ethers.getERC20Contract(AAVE);
31    const staaveContract = sdk.ethers.getContract(STAAVE_ADDRESS, STAAVE_ABI);
32  
33    const [supply, reserveBalance, assetData] = await Promise.all([
34      aaveToken.totalSupply(),
35      aaveToken.balanceOf(ECOSYSTEM_RESERVE),
36      staaveContract.assets(STAAVE_ADDRESS),
37    ]);
38
39    const adjustedSupply = (supply.toString() - reserveBalance.toString()) / 1e18;
40    const emissionsPerDay = assetData.emissionPerSecond * SECONDS_IN_DAY / 1e18;
41    const issuanceRate = (emissionsPerDay * 365) / adjustedSupply;
42    return issuanceRate;
43  }
44
45  sdk.register({
46    id: 'aave',
47    queries: {
48      issuance7DayAvgUSD: getAaveIssuance,
49      issuanceRateCurrent: getIssuanceRate,
50    },
51    metadata: {
52      icon: sdk.ipfs.getDataURILoader('QmW4X8Q36jjPm8fzU21NzFKRxNzReQy4JnehKbRrgybFh6', 'image/svg+xml'),
53      category: 'app',
54      name: 'Aave',
55      issuanceDescription: 'AAVE tokens are paid to users who stake AAVE and AAVE/ETH Balancer LP tokens in the Safety Module.',
56      website: 'https://aave.com',
57    },
58  });
59}
60

It's something off?

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

Adapter Info

Version

0.2.0

License

MIT

IPFS CID

QmPbE8RrgTAHemkWYynD6WZuDrNrLmya8uzKAbUsZdd8fw

CID (source)

QmV8cmYM2svUtNsu8wpBFPNmAyivjBQhd3e486LQBR9aDe

Author

mihal.eth