1
1
const ADDRESSES = require ( '../helper/coreAssets.json' )
2
2
const { sumTokens2 } = require ( '../helper/unwrapLPs' )
3
3
4
- async function tvl ( api ) {
5
- const indexes = await api . fetchList ( { lengthAbi : 'uint256:portfolioId' , itemAbi : 'function getPortfolioList(uint256) view returns (address)' , target : config [ api . chain ] } )
6
- const [ tokens , vaults ] = await Promise . all ( [
7
- api . multiCall ( { abi : 'address[]:getTokens' , calls : indexes } ) ,
8
- api . multiCall ( { abi : 'address:vault' , calls : indexes } ) ,
9
- ] )
10
-
11
- const blacklistsByChain = {
12
- base : [
13
- ADDRESSES . bsc . USDT
14
- ] ,
15
- bsc : [
16
- ADDRESSES . optimism . WETH_1
17
- ]
18
- }
4
+ const config = {
5
+ base : { address : '0xf93659fb357899e092813bc3a2959ceDb3282a7f' , blacklistedTokens : [ ADDRESSES . bsc . USDT , "0x96af5739ca66ca55ab71ac9f308720d5044995ee" ] } ,
6
+ bsc : { address : '0xA1fe1C37Bf899C7F7521082C002dFA4fEbAaA8dd' , blacklistedTokens : [ ADDRESSES . optimism . WETH_1 ] }
7
+ }
19
8
20
- const blacklistedTokens = blacklistsByChain [ api . chain ] || [ ]
9
+ const abi = {
10
+ getTokens : 'address[]:getTokens' ,
11
+ vault : 'address:vault'
12
+ }
21
13
14
+ async function tvl ( api , address , blacklistedTokens ) {
15
+ const indexes = await api . fetchList ( { lengthAbi : 'uint256:portfolioId' , itemAbi : 'function getPortfolioList(uint256) view returns (address)' , target : address } )
16
+ const [ tokens , vaults ] = await Promise . all ( [
17
+ api . multiCall ( { abi : abi . getTokens , calls : indexes } ) ,
18
+ api . multiCall ( { abi : abi . vault , calls : indexes } ) ,
19
+ ] )
22
20
23
- const ownerTokens = tokens . map ( ( tokens , i ) => [ tokens , vaults [ i ] ] ) ;
21
+ const ownerTokens = vaults . map ( ( vault , i ) => ( [ tokens [ i ] , vault ] ) )
24
22
return sumTokens2 ( { api, ownerTokens, resolveLP : true , blacklistedTokens} ) ;
25
23
}
26
24
27
- module . exports = {
28
- methodology : 'calculates overall value deposited across different protocol portfolios' ,
29
- }
30
-
31
- const config = {
32
- base : '0xf93659fb357899e092813bc3a2959ceDb3282a7f' ,
33
- bsc : '0xA1fe1C37Bf899C7F7521082C002dFA4fEbAaA8dd'
34
- }
25
+ module . exports = { methodology : 'calculates overall value deposited across different protocol portfolios' }
35
26
36
27
Object . keys ( config ) . forEach ( chain => {
37
- module . exports [ chain ] = { tvl }
38
- } )
28
+ const { address, blacklistedTokens } = config [ chain ]
29
+ module . exports [ chain ] = { tvl : ( api ) => tvl ( api , address , blacklistedTokens ) }
30
+ } )
0 commit comments