Skip to content

Commit a589441

Browse files
authored
Update SizeCredit to protocol v1.5 (DefiLlama#12427)
1 parent 654b72d commit a589441

File tree

1 file changed

+40
-12
lines changed

1 file changed

+40
-12
lines changed

projects/size-credit/index.js

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,51 @@
1-
const { sumTokensExport } = require('../helper/unwrapLPs')
2-
const ADDRESSES = require('../helper/coreAssets.json')
1+
const SIZE_FACTORY = '0x330Dc31dB45672c1F565cf3EC91F9a01f8f3DF0b'
32

4-
const AUSDC_CONTRACT = '0x4e65fe4dba92790696d040ac24aa414708f5c0ab'
5-
const SZDEBT_CONTRACT = '0xb0a00c4b3d77c896f46dc6b204695e22de7a185d'
6-
const SIZE_PROXY_CONTRACT = '0xC2a429681CAd7C1ce36442fbf7A4a68B11eFF940'
7-
const tokens = [
8-
ADDRESSES.base.WETH,
9-
AUSDC_CONTRACT,
10-
]
3+
const abis = {
4+
SizeFactory: {
5+
getMarkets: 'function getMarkets() view returns (address[])',
6+
},
7+
Size: {
8+
data: 'function data() view returns (uint256 nextDebtPositionId,uint256 nextCreditPositionId,address underlyingCollateralToken,address underlyingBorrowToken,address collateralToken,address borrowAToken,address debtToken,address variablePool)',
9+
},
10+
Pool: {
11+
getReserveData: 'function getReserveData(address asset) view returns (uint256 configuration,uint128 liquidityIndex,uint128 currentLiquidityRate,uint128 variableBorrowIndex,uint128 currentVariableBorrowRate,uint128 currentStableBorrowRate,uint40 lastUpdateTimestamp,uint16 id,address aTokenAddress,address stableDebtTokenAddress,address variableDebtTokenAddress,address interestRateStrategyAddress,uint128 accruedToTreasury,uint128 unbacked,uint128 isolationModeTotalDebt)'
12+
}
13+
}
14+
15+
async function tvl(api) {
16+
const markets = await api.call({ abi: abis.SizeFactory.getMarkets, target: SIZE_FACTORY })
17+
const datas = await api.multiCall({ abi: abis.Size.data, calls: markets })
18+
19+
const borrowATokens = datas.map(data => data.borrowAToken)
20+
const variablePools = datas.map(data => data.variablePool)
21+
const underlyingBorrowTokens = datas.map(data => data.underlyingBorrowToken)
22+
const underlyingCollateralTokens = datas.map(data => data.underlyingCollateralToken)
23+
24+
const getReserveDatas = await api.multiCall({ abi: abis.Pool.getReserveData, calls: variablePools.map((variablePool, i) => ({ target: variablePool, params: underlyingBorrowTokens[i] })) })
25+
26+
const aTokens = getReserveDatas.map(data => data.aTokenAddress)
27+
28+
return api.sumTokens({
29+
owners: [...borrowATokens, ...markets],
30+
tokens: [...aTokens, ...underlyingCollateralTokens]
31+
})
32+
}
1133

1234
async function borrowed(api) {
13-
const totalDebt = await api.call({ abi: 'erc20:totalSupply', target: SZDEBT_CONTRACT, });
35+
const markets = await api.call({ abi: abis.SizeFactory.getMarkets, target: SIZE_FACTORY })
36+
const datas = await api.multiCall({ abi: abis.Size.data, calls: markets })
37+
38+
const debtTokens = datas.map(data => data.debtToken)
39+
40+
const underlyingBorrowTokens = datas.map(data => data.underlyingBorrowToken)
41+
const totalDebts = await api.multiCall({ abi: 'erc20:totalSupply', calls: debtTokens });
1442

15-
return api.add(ADDRESSES.base.USDbC, totalDebt)
43+
return api.add(underlyingBorrowTokens, totalDebts)
1644
}
1745

1846
module.exports = {
1947
base: {
20-
tvl: sumTokensExport({ tokens, owner: SIZE_PROXY_CONTRACT }),
48+
tvl,
2149
borrowed
2250
}
2351
}

0 commit comments

Comments
 (0)