1
1
const config = {
2
2
arbitrum : {
3
- "AAPL.d" : { oracle : "0x8d0CC5f38f9E802475f2CFf4F9fc7000C2E1557c" , token : '0xCe38e140fC3982a6bCEbc37b040913EF2Cd6C5a7' } ,
4
- "AMZN.d" : { oracle : "0xd6a77691f071E98Df7217BED98f38ae6d2313EBA" , token : '0x5a8A18673aDAA0Cd1101Eb4738C05cc6967b860f' } ,
5
- "GOOGL.d" : { oracle : "0x1D1a83331e9D255EB1Aaf75026B60dFD00A252ba" , token : '0x9bd7A08cD17d10E02F596Aa760dfE397C57668b4' } ,
6
- "META.d" : { oracle : "0xcd1bd86fDc33080DCF1b5715B6FCe04eC6F85845" , token : '0xa40c0975607BDbF7B868755E352570454b5B2e48' } ,
7
- "MSFT.d" : { oracle : "0xDde33fb9F21739602806580bdd73BAd831DcA867" , token : '0x20f11c1aBca831E235B15A4714b544Bb968f8CDF' } ,
8
- "TSLA.d" : { oracle : "0x3609baAa0a9b1f0FE4d6CC01884585d0e191C3E3" , token : '0x2888c0aC959484e53bBC6CdaBf2b8b39486225C6' } ,
9
- "SPY.d" : { oracle : "0x46306F3795342117721D8DEd50fbcF6DF2b3cc10" , token : '0xF4BD09B048248876E39Fcf2e0CDF1aee1240a9D2' } ,
10
- // "COIN.d": { oracle: "", token: '0x46b979440AC257151EE5a5bC9597B76386907FA1' },
3
+ factory : "0xB4Ca72eA4d072C779254269FD56093D3ADf603b8" ,
4
+ getTokensAbi : "function getDShares() external view returns (address[] memory, address[] memory)" ,
5
+ processor : "0xFA922457873F750244D93679df0d810881E4131D" ,
6
+ latestPriceAbi : "function latestFillPrice(address assetToken, address paymentToken) view returns (tuple(uint256 price, uint64 blocktime))" ,
7
+ usdplus : "0xfc90518D5136585ba45e34ED5E1D108BD3950CFa"
11
8
}
12
9
}
13
10
14
- Object . keys ( config ) . forEach ( chain => {
15
- const tokens = Object . values ( config [ chain ] ) . map ( v => v . token )
11
+ async function getTokens ( api , chain ) {
12
+ return ( await api . call ( {
13
+ chain : chain ,
14
+ target : config [ chain ] . factory ,
15
+ abi : config [ chain ] . getTokensAbi
16
+ } ) ) [ 0 ] ;
17
+ }
18
+
19
+ Object . keys ( config ) . forEach ( chain => {
16
20
module . exports [ chain ] = {
17
21
tvl : async ( api ) => {
22
+ const tokens = await getTokens ( api , chain )
18
23
const bals = await api . multiCall ( { abi : 'erc20:totalSupply' , calls : tokens } )
19
24
api . add ( tokens , bals )
20
25
}
21
26
}
22
- } )
27
+ } )
0 commit comments