From 2fc2be2d15fbb26cdcbd433f175d340d5f373a02 Mon Sep 17 00:00:00 2001 From: Mantas S Date: Fri, 21 Jul 2023 11:22:34 +0300 Subject: [PATCH 1/2] Delete aavev3.ts --- src/util/calculators/aavev3.ts | 74 ---------------------------------- 1 file changed, 74 deletions(-) delete mode 100644 src/util/calculators/aavev3.ts diff --git a/src/util/calculators/aavev3.ts b/src/util/calculators/aavev3.ts deleted file mode 100644 index 2670f576..00000000 --- a/src/util/calculators/aavev3.ts +++ /dev/null @@ -1,74 +0,0 @@ -import util from '../../util/blockchainUtil'; -import formatter from '../../util/formatter'; -import POOL_DATA_PROVIDER_V3_ABI from '../../constants/abi/poolDataProviderV3Abi.json'; -import AAVE_ERC20_ABI from '../../constants/abi/aaveErc20Abi.json'; -import Web3 from 'web3'; -import { IBalances } from '../../interfaces/ITvl'; - -async function getAddresses(poolDataProviderV3, block, chain, web3) { - const aaveTokenMarketData = await util.executeCall( - poolDataProviderV3, - POOL_DATA_PROVIDER_V3_ABI, - 'getAllATokens', - [], - block, - chain, - web3, - ); - - const aaveTokenAddresses = []; - aaveTokenMarketData.map((aaveTokensData) => { - if (aaveTokensData) { - aaveTokenAddresses.push( - typeof aaveTokensData == 'string' - ? aaveTokensData.substring(aaveTokensData.indexOf(',') + 1) - : aaveTokensData.tokenAddress, - ); - } - }); - - const underlyingAddressesData = await util.executeCallOfMultiTargets( - aaveTokenAddresses, - AAVE_ERC20_ABI, - 'UNDERLYING_ASSET_ADDRESS', - [], - block, - chain, - web3, - ); - - const reserveTokenAddresses = underlyingAddressesData.map( - (reserveData) => reserveData, - ); - - return [aaveTokenAddresses, reserveTokenAddresses]; -} - -async function getTvl( - poolDataProvider: string, - block: number, - chain: string, - web3: Web3, -): Promise { - const balances = {}; - - const [aaveTokens, reserveTokens] = await getAddresses( - poolDataProvider, - block, - chain, - web3, - ); - - const balanceResults = await util.getTokenBalancesOfHolders( - aaveTokens, - reserveTokens, - block, - chain, - web3, - ); - - formatter.sumMultiBalanceOf(balances, balanceResults); - return balances; -} - -export default { getTvl }; From e220ed14757a5ed835ae13d851ad929e6c5b5ff1 Mon Sep 17 00:00:00 2001 From: Mantas S Date: Fri, 21 Jul 2023 11:23:32 +0300 Subject: [PATCH 2/2] Create aaveV3.ts --- src/util/calculators/aaveV3.ts | 74 ++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/util/calculators/aaveV3.ts diff --git a/src/util/calculators/aaveV3.ts b/src/util/calculators/aaveV3.ts new file mode 100644 index 00000000..26ae039b --- /dev/null +++ b/src/util/calculators/aaveV3.ts @@ -0,0 +1,74 @@ +import util from '../blockchainUtil'; +import formatter from '../formatter'; +import POOL_DATA_PROVIDER_V3_ABI from '../../constants/abi/poolDataProviderV3Abi.json'; +import AAVE_ERC20_ABI from '../../constants/abi/aaveErc20Abi.json'; +import Web3 from 'web3'; +import { IBalances } from '../../interfaces/ITvl'; + +async function getAddresses(poolDataProviderV3, block, chain, web3) { + const aaveTokenMarketData = await util.executeCall( + poolDataProviderV3, + POOL_DATA_PROVIDER_V3_ABI, + 'getAllATokens', + [], + block, + chain, + web3, + ); + + const aaveTokenAddresses = []; + aaveTokenMarketData.map((aaveTokensData) => { + if (aaveTokensData) { + aaveTokenAddresses.push( + typeof aaveTokensData == 'string' + ? aaveTokensData.substring(aaveTokensData.indexOf(',') + 1) + : aaveTokensData.tokenAddress, + ); + } + }); + + const underlyingAddressesData = await util.executeCallOfMultiTargets( + aaveTokenAddresses, + AAVE_ERC20_ABI, + 'UNDERLYING_ASSET_ADDRESS', + [], + block, + chain, + web3, + ); + + const reserveTokenAddresses = underlyingAddressesData.map( + (reserveData) => reserveData, + ); + + return [aaveTokenAddresses, reserveTokenAddresses]; +} + +async function getTvl( + poolDataProvider: string, + block: number, + chain: string, + web3: Web3, +): Promise { + const balances = {}; + + const [aaveTokens, reserveTokens] = await getAddresses( + poolDataProvider, + block, + chain, + web3, + ); + + const balanceResults = await util.getTokenBalancesOfHolders( + aaveTokens, + reserveTokens, + block, + chain, + web3, + ); + + formatter.sumMultiBalanceOf(balances, balanceResults); + return balances; +} + +export default { getTvl };