Skip to content

Commit f15771e

Browse files
authored
track 40 acres blackhole (#16940)
1 parent e61a112 commit f15771e

File tree

2 files changed

+48
-23
lines changed

2 files changed

+48
-23
lines changed

projects/40acres/helpers.js

Lines changed: 45 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,40 @@
11
const { erc4626Abi, fortyAcresAbi, portfolioAbi } = require('./abi');
2+
const { unwrapSolidlyVeNft } = require('../helper/unwrapLPs');
23

34
const vaultMapping = {
4-
optimism: '0x08dCDBf7baDe91Ccd42CB2a4EA8e5D199d285957',
5-
base: '0xB99B6dF96d4d5448cC0a5B3e0ef7896df9507Cf5',
6-
avax: '0x124D00b1ce4453Ffc5a5F65cE83aF13A7709baC7'
5+
optimism: ['0x08dCDBf7baDe91Ccd42CB2a4EA8e5D199d285957'],
6+
base: ['0xB99B6dF96d4d5448cC0a5B3e0ef7896df9507Cf5'],
7+
avax: [
8+
'0x124D00b1ce4453Ffc5a5F65cE83aF13A7709baC7', //PHARAOH
9+
'0xC0485C4bafB594Ae1457820fb6e5B67e8A04BCFD' //BLACKHOLE
10+
]
711
}
812

913
const fortyAcresMapping = {
10-
optimism: '0xf132bD888897254521D13e2c401e109caABa06A7',
11-
base: '0x87f18b377e625b62c708D5f6EA96EC193558EFD0',
12-
avax: '0x6Bf2Fe80D245b06f6900848ec52544FBdE6c8d2C'
14+
optimism: ['0xf132bD888897254521D13e2c401e109caABa06A7'],
15+
base: ['0x87f18b377e625b62c708D5f6EA96EC193558EFD0'],
16+
avax: [
17+
'0xf6A044c3b2a3373eF2909E2474f3229f23279B5F', //PHARAOH
18+
'0x5122f5154DF20E5F29df53E633cE1ac5b6623558' //BLACKHOLE
19+
]
1320
}
1421

1522
const baseTokenMapping = {
1623
optimism: '0x3c8B650257cFb5f272f799F5e2b4e65093a11a05', // VELO
1724
base: '0x940181a94A35A4569E4529A3CDfB74e38FD98631', // AERO
18-
avax: '0x13a466998ce03db73abc2d4df3bbd845ed1f28e7' // PHAR
25+
avax: {
26+
pharaoh: '0x13a466998ce03db73abc2d4df3bbd845ed1f28e7', // PHAR
27+
blackhole: '0xcd94a87696fac69edae3a70fe5725307ae1c43f6' //BLACK
28+
}
1929
}
2030

2131
const veNftMapping = {
2232
optimism: '0xFAf8FD17D9840595845582fCB047DF13f006787d', // veVELO
2333
base: '0xeBf418Fe2512e7E6bd9b87a8F0f294aCDC67e6B4', // veAERO
24-
avax: '0xE8164Ea89665DAb7a553e667F81F30CfDA736B9A', //xPhar
34+
avax: {
35+
pharaoh: '0xAAAEa1fB9f3DE3F70E89f37B69Ab11B47eb9Ce6F', // vePHAR
36+
blackhole: '0xEac562811cc6abDbB2c9EE88719eCA4eE79Ad763' //veBLACK
37+
}
2538
}
2639

2740
const avaxPortfolioFactory = "0x52d43C377e498980135C8F2E858f120A18Ea96C2";
@@ -33,31 +46,42 @@ const get4626VaultToken = async (api, addresses) => {
3346
}
3447

3548
async function getVaultBalance(api) {
36-
const vaultToken = await api.call({ target: vaultMapping[api.chain], abi: erc4626Abi.asset, });
37-
const vaultBalance = await api.call({ abi: 'erc20:balanceOf', target: vaultToken, params: [vaultMapping[api.chain]] })
38-
api.addTokens([vaultToken], [vaultBalance])
49+
const vaultToken = await api.multiCall({ calls: vaultMapping[api.chain], abi: erc4626Abi.asset, });
50+
const vaultBalance = await api.multiCall({
51+
abi: 'erc20:balanceOf', calls:
52+
vaultToken.map((token, i) =>
53+
({
54+
target: token,
55+
params: [vaultMapping[api.chain][i]]
56+
})
57+
)
58+
})
59+
for (const [i, token] of vaultToken.entries())
60+
api.addTokens([token], [vaultBalance[i]])
3961
return
4062
}
4163

4264

4365
async function getBorrowed(api) {
44-
const borrowed = await api.call({
66+
const borrowed = await api.multiCall({
4567
abi: fortyAcresAbi.activeAssets,
46-
target: fortyAcresMapping[api.chain],
68+
calls: fortyAcresMapping[api.chain],
4769
});
4870

49-
const vaultToken = await api.call({ target: vaultMapping[api.chain], abi: erc4626Abi.asset, });
50-
api.addTokens([vaultToken], [borrowed])
71+
const vaultToken = await api.multiCall({ calls: vaultMapping[api.chain], abi: erc4626Abi.asset, });
72+
73+
for(const [i,borrows] of borrowed.entries())
74+
api.addTokens([vaultToken[i]], [borrows])
5175
return
5276
}
5377

54-
async function getXpharTvl(api) {
78+
async function getAvaxTvl(api) {
5579
const portfolioList = await api.call({
5680
target: avaxPortfolioFactory,
5781
abi: portfolioAbi,
5882
chain: 'avax'
5983
});
60-
84+
6185
const portfolioBalances = await api.multiCall({
6286
abi: 'erc20:balanceOf',
6387
calls: portfolioList.map(portfolio => {
@@ -68,7 +92,9 @@ async function getXpharTvl(api) {
6892
})
6993
});
7094

71-
portfolioBalances.forEach(balance => api.addTokens(baseTokenMapping['avax'], balance));
95+
portfolioBalances.forEach(balance => api.addTokens(baseTokenMapping['avax']['pharaoh'], balance));
96+
97+
await unwrapSolidlyVeNft({ api, baseToken: baseTokenMapping['avax']['blackhole'], veNft: veNftMapping['avax']['blackhole'], owner:fortyAcresMapping['avax'][1],isAltAbi:true});
7298
}
7399

74100
module.exports = {
@@ -79,5 +105,5 @@ module.exports = {
79105
vaultMapping,
80106
veNftMapping,
81107
getBorrowed,
82-
getXpharTvl,
108+
getAvaxTvl,
83109
}

projects/40acres/index.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11

2-
const { getVaultBalance, fortyAcresMapping, baseTokenMapping, veNftMapping, getBorrowed , getXpharTvl,} = require("./helpers");
2+
const { getVaultBalance, fortyAcresMapping, baseTokenMapping, veNftMapping, getBorrowed , getAvaxTvl,} = require("./helpers");
33
const { unwrapSolidlyVeNft } = require('../helper/unwrapLPs');
44

55

66
async function getLockedVeNFTBalance(api) {
77
if(api.chain==='avax')
8-
await getXpharTvl(api);
8+
await getAvaxTvl(api);
99
else
10-
await unwrapSolidlyVeNft({ api, baseToken: baseTokenMapping[api.chain], veNft: veNftMapping[api.chain], owner:fortyAcresMapping[api.chain]});
11-
await api.sumTokens({ owner: fortyAcresMapping[api.chain], tokens: [baseTokenMapping[api.chain]] },)
10+
await unwrapSolidlyVeNft({ api, baseToken: baseTokenMapping[api.chain], veNft: veNftMapping[api.chain], owner:fortyAcresMapping[api.chain][0]});
1211
}
1312

1413

0 commit comments

Comments
 (0)