lending-apy-fetcher-ts
Version:
TypeScript library for fetching APYs from DeFi lending protocols
32 lines (26 loc) • 1.04 kB
text/typescript
import {
UiPoolDataProvider,
} from '@aave/contract-helpers';
import { formatReserves } from '@aave/math-utils';
import { ApyData } from '../types';
async function getAaveSupplyRates(network: string, contract: UiPoolDataProvider, poolAddressProvider: string): Promise<ApyData[]> {
const reserves = await contract.getReservesHumanized({
lendingPoolAddressProvider: poolAddressProvider,
});
const currentTimestamp = Math.floor(Date.now() / 1000);
const formattedPoolReserves = formatReserves({
reserves: reserves.reservesData,
currentTimestamp,
marketReferenceCurrencyDecimals:
reserves.baseCurrencyData.marketReferenceCurrencyDecimals,
marketReferencePriceInUsd: reserves.baseCurrencyData.marketReferenceCurrencyPriceInUsd,
});
const result: ApyData[] = formattedPoolReserves.map((reserve) => ({
token_symbol: reserve.symbol,
apy: parseFloat(reserve.supplyAPY),
protocol_name: 'Aave',
network: network,
}));
return result;
}
export { getAaveSupplyRates };