1+ const { sumTokensExport, sumTokens2 } = require ( '../helper/unwrapLPs' )
12const ADDRESSES = require ( '../helper/coreAssets.json' )
23
34const config = {
@@ -8,29 +9,24 @@ const config = {
89 '0x9BB2c38F57883E5285b7c296c66B9eEA4769eF80' ,
910 '0x99A95a9E38e927486fC878f41Ff8b118Eb632b10' ,
1011 '0xE45321525c85fcc418C88E606B96daD8cBcc047f' ,
11- '0x841DB2cA7E8A8C2fb06128e8c58AA162de0CfCbC' ,
12+ // '0x841DB2cA7E8A8C2fb06128e8c58AA162de0CfCbC', // duplicated in tokensAndOwners
1213 '0x99E8903bdEFB9e44cd6A24B7f6F97dDd071549bc' ,
13- '0x2Adf038b67a8a29cDA82f0Eceb1fF0dba704b98d' ,
14+ // '0x2Adf038b67a8a29cDA82f0Eceb1fF0dba704b98d', // duplicated in tokensAndOwners
1415 '0xb82749F316CB9c06F38587aBecF3EB1bC842CC93' ,
1516 '0xC5deA68CCe26c014BEC516CDA70c107c534a73C4' ,
16- '0x31Eae643b679A84b37E3d0B4Bd4f5dA90fB04a61'
17+ // '0x31Eae643b679A84b37E3d0B4Bd4f5dA90fB04a61', - exluded RUSD because it is project's own token
1718 ] ,
18- usdcHolder : '0x4809010926aec940b550D34a46A52739f996D75D' ,
1919 // [token, owner] pairs for direct balance queries
2020 tokensAndOwners : [
2121 [ '0xe0a80d35bb6618cba260120b279d357978c42bce' , '0x3063C5907FAa10c01B242181Aa689bEb23D2BD65' ] ,
2222 [ '0x9D39A5DE30e57443BfF2A8307A4256c8797A3497' , '0x5563CDA70F7aA8b6C00C52CB3B9f0f45831a22b1' ] ,
23- [ '0xBeEf11eCb698f4B5378685C05A210bdF71093521' , '0x31Eae643b679A84b37E3d0B4Bd4f5dA90fB04a61' ] ,
23+ // ['0xBeEf11eCb698f4B5378685C05A210bdF71093521', '0x31Eae643b679A84b37E3d0B4Bd4f5dA90fB04a61'], // wrapped version of RUSD, excluded steakRUSD
2424 [ '0xBEeFFF209270748ddd194831b3fa287a5386f5bC' , '0x841DB2cA7E8A8C2fb06128e8c58AA162de0CfCbC' ] ,
2525 [ '0xA0804346780b4c2e3bE118ac957D1DB82F9d7484' , '0x289C204B35859bFb924B9C0759A4FE80f610671c' ] ,
26- [ '0x777791C4d6DC2CE140D00D2828a7C93503c67777' , '0x2adf038b67a8a29cda82f0eceb1ff0dba704b98d' ]
26+ [ '0x777791C4d6DC2CE140D00D2828a7C93503c67777' , '0x2adf038b67a8a29cda82f0eceb1ff0dba704b98d' ] ,
27+ [ '0x62C6E813b9589C3631Ba0Cdb013acdB8544038B7' , '0x8d3A354f187065e0D4cEcE0C3a5886ac4eBc4903' ] ,
28+ [ ADDRESSES . ethereum . USDC , '0x4809010926aec940b550D34a46A52739f996D75D' ] ,
2729 ] ,
28- // Special case: query one token but report as another
29- specialMapping : {
30- queryToken : '0x62C6E813b9589C3631Ba0Cdb013acdB8544038B7' ,
31- queryOwner : '0x8d3A354f187065e0D4cEcE0C3a5886ac4eBc4903' ,
32- reportToken : '0x4c9EDD5852cd905f086C759E8383e09bff1E68B3'
33- }
3430 } ,
3531 plasma : {
3632 tokensAndOwners : [
@@ -51,40 +47,27 @@ const config = {
5147
5248module . exports . ethereum = {
5349 tvl : async ( api ) => {
54- const { funds, usdcHolder, tokensAndOwners, specialMapping } = config . ethereum
55-
56- // Get underlying tokens and balances from funds
57- const tokens = await api . multiCall ( { abi : 'address:underlying' , calls : funds } )
58- const bals = await api . multiCall ( { abi : 'uint256:totalValue' , calls : funds } )
59- const decimals = await api . multiCall ( { abi : 'uint8:decimals' , calls : tokens } )
60-
61- // Adjust balances and add
62- api . add ( tokens , bals . map ( ( v , i ) => v * 10 ** ( decimals [ i ] - 18 ) ) )
50+ const { funds, tokensAndOwners, } = config . ethereum
6351
64- // Add USDC locked
65- await api . sumTokens ( { owner : usdcHolder , token : ADDRESSES . ethereum . USDC } )
52+ const onChainDataTS = new Date ( '2025-11-22T00:00:00Z' ) . getTime ( ) / 1000
6653
67- // Add regular token balances
68- await api . sumTokens ( { tokensAndOwners } )
54+ if ( api . timestamp < onChainDataTS ) {
6955
70- // Handle special mapping case
71- const specialBalance = await api . call ( {
72- abi : 'function balanceOf(address) view returns (uint256)' ,
73- target : specialMapping . queryToken ,
74- params : [ specialMapping . queryOwner ]
75- } )
76- api . add ( specialMapping . reportToken , specialBalance )
77- }
78- }
56+ // Get underlying tokens and balances from funds
57+ const tokens = await api . multiCall ( { abi : 'address:underlying' , calls : funds } )
58+ const bals = await api . multiCall ( { abi : 'uint256:totalValue' , calls : funds } )
59+ const decimals = await api . multiCall ( { abi : 'uint8:decimals' , calls : tokens } )
7960
80- module . exports . plasma = {
81- tvl : async ( api ) => {
82- await api . sumTokens ( { tokensAndOwners : config . plasma . tokensAndOwners } )
83- }
84- }
61+ // Adjust balances and add
62+ api . add ( tokens , bals . map ( ( v , i ) => v * 10 ** ( decimals [ i ] - 18 ) ) )
63+ } else {
64+ await sumTokens2 ( { api , owners : funds , fetchCoValentTokens : true , tokenConfig : { onlyWhitelisted : false } } )
65+ }
8566
86- module . exports . arbitrum = {
87- tvl : async ( api ) => {
88- await api . sumTokens ( { tokensAndOwners : config . arbitrum . tokensAndOwners } )
67+ // Add regular token balances
68+ await api . sumTokens ( { tokensAndOwners } )
8969 }
9070}
71+
72+ module . exports . plasma = { tvl : sumTokensExport ( config . plasma ) }
73+ module . exports . arbitrum = { tvl : sumTokensExport ( config . arbitrum ) }
0 commit comments