@@ -13,7 +13,7 @@ const tvl = async (api) => {
13
13
14
14
const results = await api . batchCall ( [
15
15
...assetAddresses . map ( asset => ( {
16
- abi : capABI . Vault . totalSupplies ,
16
+ abi : capABI . Vault . availableBalance ,
17
17
target : tokens . cUSD . address ,
18
18
params : [ asset ]
19
19
} ) ) ,
@@ -23,21 +23,53 @@ const tvl = async (api) => {
23
23
params : [ agent . network , agent . agent , agent . vault , infra . oracle . address , api . timestamp ]
24
24
} ) )
25
25
] ) ;
26
- const assetSuppliesResults = results . slice ( 0 , assetAddresses . length )
26
+ const assetAvailableBalancesResults = results . slice ( 0 , assetAddresses . length )
27
27
const coverageResults = results . slice ( assetAddresses . length )
28
28
29
- for ( const [ asset , supplied ] of arrayZip ( assetAddresses , assetSuppliesResults ) ) {
30
- api . add ( asset , supplied )
29
+ for ( const [ asset , availableBalance ] of arrayZip ( assetAddresses , assetAvailableBalancesResults ) ) {
30
+ api . add ( asset , availableBalance )
31
31
}
32
32
for ( const [ agent , coverage ] of arrayZip ( agentConfigs , coverageResults ) ) {
33
33
api . add ( agent . vaultCollateral , coverage )
34
34
}
35
35
}
36
36
37
+ const borrowed = async ( api ) => {
38
+ const infra = capConfig [ chain ] . infra ;
39
+
40
+ const assetAddresses = await fetchAssetAddresses ( api , chain )
41
+ const agentConfigs = await fetchAgentConfigs ( api , chain )
42
+
43
+ const agentAndAsset = agentConfigs . map ( ( { agent } ) => assetAddresses . map ( asset => ( {
44
+ agent : agent ,
45
+ asset : asset ,
46
+ } ) ) ) . flat ( )
47
+
48
+ const results = await api . batchCall (
49
+ agentAndAsset . map ( ( { agent, asset } ) => ( {
50
+ abi : capABI . Lender . debt ,
51
+ target : infra . lender . address ,
52
+ params : [ agent , asset ]
53
+ } ) )
54
+ ) ;
55
+
56
+ for ( const [ { asset } , debt ] of arrayZip ( agentAndAsset , results ) ) {
57
+ api . add ( asset , debt )
58
+ }
59
+ }
60
+
61
+ const staking = async ( api ) => {
62
+ const tokens = capConfig [ chain ] . tokens ;
63
+ const stcUSD = tokens . stcUSD ;
64
+ return api . erc4626Sum ( { calls : [ stcUSD . address ] , tokenAbi : 'address:asset' , balanceAbi : 'uint256:totalAssets' } )
65
+ }
66
+
37
67
module . exports = {
38
68
methodology : 'count the total supplied assets on capToken vaults and the total delegated assets on networks (symbiotic, eigenlayer, etc.)' ,
39
69
start : 1000235 ,
40
70
ethereum : {
41
71
tvl,
72
+ borrowed,
73
+ staking,
42
74
}
43
75
} ;
0 commit comments