diff --git a/projects/enzyme/index.js b/projects/enzyme/index.js index 121fe8240fd..03709f93b73 100644 --- a/projects/enzyme/index.js +++ b/projects/enzyme/index.js @@ -16,6 +16,12 @@ const query = `query get_accounts($lastId: String!) { async function tvl(api) { const { endpoint } = config[api.chain] const vaults = await cachedGraphQuery('enzyme/' + api.chain, endpoint, query, { fetchById: true, }) + const externalPositions = (await api.multiCall({ calls: vaults.map(i => i.id), abi: 'address[]:getActiveExternalPositions', excludeFailed: true, })).flat() + const managedAssets = await api.multiCall({ abi: 'function getManagedAssets() external returns (address[] memory assets, uint256[] memory amounts)', calls: externalPositions, excludeFailed: true, }) + const debtAssets = await api.multiCall({ abi: 'function getDebtAssets() external returns (address[] memory assets, uint256[] memory amounts)', calls: externalPositions, excludeFailed: true, }) + managedAssets.forEach(i => api.add(i.assets, i.amounts)) + debtAssets.forEach(i => api.add(i.assets, i.amounts.map(i => -1 * i))) + return sumTokens2({ api, ownerTokens: vaults.map(i => { return [i.trackedAssets.map(i => i.id), i.id] @@ -30,4 +36,4 @@ module.exports = { Object.keys(config).forEach(chain => { module.exports[chain] = { tvl } -}) \ No newline at end of file +})