Skip to content

Commit 3635c97

Browse files
Add Base Support (DefiLlama#12414)
Co-authored-by: g1nt0ki <[email protected]>
1 parent 3a81a82 commit 3635c97

File tree

1 file changed

+20
-38
lines changed

1 file changed

+20
-38
lines changed

projects/vesper/index.js

Lines changed: 20 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,52 @@
1-
const sdk = require("@defillama/sdk")
2-
const abi = require('./abi.json')
3-
const { getChainTransform } = require('../helper/portedTokens')
41
const { getConfig } = require("../helper/cache")
2+
const { sumTokensExport } = require("../helper/unwrapLPs")
53

64
const chainConfig = {
75
ethereum: {
86
stakingPool: '0xbA4cFE5741b357FA371b506e5db0774aBFeCf8Fc',
97
VSP: '0x1b40183efb4dd766f11bda7a7c3ad8982e998421',
10-
api: ['https://api.vesper.finance/pools?stages=prod', 'https://api.vesper.finance/pools?stages=orbit'],
8+
endpoints: ['https://api.vesper.finance/pools?stages=prod', 'https://api.vesper.finance/pools?stages=orbit'],
119
},
1210
avax: {
13-
api: ['https://api-avalanche.vesper.finance/pools?stages=prod'],
11+
endpoints: ['https://api-avalanche.vesper.finance/pools?stages=prod'],
1412
},
1513
polygon: {
16-
api: ['https://api-polygon.vesper.finance/pools?stages=prod'],
14+
endpoints: ['https://api-polygon.vesper.finance/pools?stages=prod'],
1715
},
1816
optimism: {
19-
api: ['https://api-optimism.vesper.finance/pools']
17+
endpoints: ['https://api-optimism.vesper.finance/pools']
18+
},
19+
base: {
20+
endpoints: ['https://api-base.vesper.finance/pools']
2021
},
2122
}
2223

2324
function getChainExports(chain) {
24-
const { stakingPool, VSP, api } = chainConfig[chain] || {}
25-
26-
async function tvl(timestamp, _block, chainBlocks) {
27-
const block = chainBlocks[chain]
28-
const transformAddress = await getChainTransform(chain)
29-
const balances = {}
30-
let network = chain === 'ethereum' ? 'mainnet' : chain
31-
if (network === 'avax') network = 'avalanche'
25+
const { stakingPool, VSP, endpoints } = chainConfig[chain] || {}
3226

27+
async function tvl(api) {
3328
const poolSet = new Set()
3429

35-
for (let i = 0;i< api.length;i++) {
30+
for (let i = 0; i < endpoints.length; i++) {
3631
const key = ['vesper', chain, i].join('/')
37-
const data = await getConfig(key, api[i])
32+
const data = await getConfig(key, endpoints[i])
3833
data.forEach(pool => poolSet.add(pool.address)) // add pools from our contracts list
3934
}
40-
if (stakingPool) poolSet.delete(stakingPool)
35+
if (stakingPool) poolSet.delete(stakingPool)
4136
const poolList = [...poolSet]
4237

43-
if (!poolList.length) return balances
38+
if (!poolList.length) return;
4439

4540
// Get collateral token
46-
const calls = poolList.map(target => ({ target }))
47-
const { output: tokens } = await sdk.api.abi.multiCall({ calls, abi: abi.token, chain, block, })
48-
const { output: totalValue } = await sdk.api.abi.multiCall({ calls, abi: abi.totalValue, chain, block, })
49-
tokens.forEach((token, index) => sdk.util.sumSingleBalance(balances, transformAddress(token.output), totalValue[index].output))
50-
return balances
41+
const tokens = await api.multiCall({ abi: 'address:token', calls: poolList })
42+
const bals = await api.multiCall({ abi: 'uint256:totalValue', calls: poolList })
43+
api.add(tokens, bals)
5144
}
5245

5346
let staking
5447

55-
if (stakingPool)
56-
staking = async (timestamp, _block, chainBlocks) => {
57-
const block = chainBlocks[chain]
58-
const transformAddress = await getChainTransform(chain)
59-
const balances = {}
60-
const vspBalance = (await sdk.api.erc20.balanceOf({
61-
block, chain,
62-
target: VSP,
63-
owner: stakingPool
64-
})).output;
65-
sdk.util.sumSingleBalance(balances, transformAddress(VSP), vspBalance)
66-
return balances
67-
}
48+
if (stakingPool && VSP)
49+
staking = sumTokensExport({ owner: stakingPool, token: VSP })
6850

6951
return {
7052
[chain]: { tvl, staking }
@@ -73,5 +55,5 @@ function getChainExports(chain) {
7355

7456
module.exports = {
7557
start: 1608667205, // December 22 2020 at 8:00 PM UTC
76-
...['ethereum', 'avax', 'polygon','optimism'].reduce((acc, chain) => ({ ...acc, ...getChainExports(chain) }), {})
58+
...['ethereum', 'avax', 'polygon', 'optimism', 'base'].reduce((acc, chain) => ({ ...acc, ...getChainExports(chain) }), {})
7759
};

0 commit comments

Comments
 (0)