mirror of
https://github.com/alexgo-io/DefiLlama-Adapters.git
synced 2026-01-12 16:53:02 +08:00
track 40 acres blackhole (#16940)
This commit is contained in:
@@ -1,27 +1,40 @@
|
||||
const { erc4626Abi, fortyAcresAbi, portfolioAbi } = require('./abi');
|
||||
const { unwrapSolidlyVeNft } = require('../helper/unwrapLPs');
|
||||
|
||||
const vaultMapping = {
|
||||
optimism: '0x08dCDBf7baDe91Ccd42CB2a4EA8e5D199d285957',
|
||||
base: '0xB99B6dF96d4d5448cC0a5B3e0ef7896df9507Cf5',
|
||||
avax: '0x124D00b1ce4453Ffc5a5F65cE83aF13A7709baC7'
|
||||
optimism: ['0x08dCDBf7baDe91Ccd42CB2a4EA8e5D199d285957'],
|
||||
base: ['0xB99B6dF96d4d5448cC0a5B3e0ef7896df9507Cf5'],
|
||||
avax: [
|
||||
'0x124D00b1ce4453Ffc5a5F65cE83aF13A7709baC7', //PHARAOH
|
||||
'0xC0485C4bafB594Ae1457820fb6e5B67e8A04BCFD' //BLACKHOLE
|
||||
]
|
||||
}
|
||||
|
||||
const fortyAcresMapping = {
|
||||
optimism: '0xf132bD888897254521D13e2c401e109caABa06A7',
|
||||
base: '0x87f18b377e625b62c708D5f6EA96EC193558EFD0',
|
||||
avax: '0x6Bf2Fe80D245b06f6900848ec52544FBdE6c8d2C'
|
||||
optimism: ['0xf132bD888897254521D13e2c401e109caABa06A7'],
|
||||
base: ['0x87f18b377e625b62c708D5f6EA96EC193558EFD0'],
|
||||
avax: [
|
||||
'0xf6A044c3b2a3373eF2909E2474f3229f23279B5F', //PHARAOH
|
||||
'0x5122f5154DF20E5F29df53E633cE1ac5b6623558' //BLACKHOLE
|
||||
]
|
||||
}
|
||||
|
||||
const baseTokenMapping = {
|
||||
optimism: '0x3c8B650257cFb5f272f799F5e2b4e65093a11a05', // VELO
|
||||
base: '0x940181a94A35A4569E4529A3CDfB74e38FD98631', // AERO
|
||||
avax: '0x13a466998ce03db73abc2d4df3bbd845ed1f28e7' // PHAR
|
||||
avax: {
|
||||
pharaoh: '0x13a466998ce03db73abc2d4df3bbd845ed1f28e7', // PHAR
|
||||
blackhole: '0xcd94a87696fac69edae3a70fe5725307ae1c43f6' //BLACK
|
||||
}
|
||||
}
|
||||
|
||||
const veNftMapping = {
|
||||
optimism: '0xFAf8FD17D9840595845582fCB047DF13f006787d', // veVELO
|
||||
base: '0xeBf418Fe2512e7E6bd9b87a8F0f294aCDC67e6B4', // veAERO
|
||||
avax: '0xE8164Ea89665DAb7a553e667F81F30CfDA736B9A', //xPhar
|
||||
avax: {
|
||||
pharaoh: '0xAAAEa1fB9f3DE3F70E89f37B69Ab11B47eb9Ce6F', // vePHAR
|
||||
blackhole: '0xEac562811cc6abDbB2c9EE88719eCA4eE79Ad763' //veBLACK
|
||||
}
|
||||
}
|
||||
|
||||
const avaxPortfolioFactory = "0x52d43C377e498980135C8F2E858f120A18Ea96C2";
|
||||
@@ -33,31 +46,42 @@ const get4626VaultToken = async (api, addresses) => {
|
||||
}
|
||||
|
||||
async function getVaultBalance(api) {
|
||||
const vaultToken = await api.call({ target: vaultMapping[api.chain], abi: erc4626Abi.asset, });
|
||||
const vaultBalance = await api.call({ abi: 'erc20:balanceOf', target: vaultToken, params: [vaultMapping[api.chain]] })
|
||||
api.addTokens([vaultToken], [vaultBalance])
|
||||
const vaultToken = await api.multiCall({ calls: vaultMapping[api.chain], abi: erc4626Abi.asset, });
|
||||
const vaultBalance = await api.multiCall({
|
||||
abi: 'erc20:balanceOf', calls:
|
||||
vaultToken.map((token, i) =>
|
||||
({
|
||||
target: token,
|
||||
params: [vaultMapping[api.chain][i]]
|
||||
})
|
||||
)
|
||||
})
|
||||
for (const [i, token] of vaultToken.entries())
|
||||
api.addTokens([token], [vaultBalance[i]])
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
async function getBorrowed(api) {
|
||||
const borrowed = await api.call({
|
||||
const borrowed = await api.multiCall({
|
||||
abi: fortyAcresAbi.activeAssets,
|
||||
target: fortyAcresMapping[api.chain],
|
||||
calls: fortyAcresMapping[api.chain],
|
||||
});
|
||||
|
||||
const vaultToken = await api.call({ target: vaultMapping[api.chain], abi: erc4626Abi.asset, });
|
||||
api.addTokens([vaultToken], [borrowed])
|
||||
const vaultToken = await api.multiCall({ calls: vaultMapping[api.chain], abi: erc4626Abi.asset, });
|
||||
|
||||
for(const [i,borrows] of borrowed.entries())
|
||||
api.addTokens([vaultToken[i]], [borrows])
|
||||
return
|
||||
}
|
||||
|
||||
async function getXpharTvl(api) {
|
||||
async function getAvaxTvl(api) {
|
||||
const portfolioList = await api.call({
|
||||
target: avaxPortfolioFactory,
|
||||
abi: portfolioAbi,
|
||||
chain: 'avax'
|
||||
});
|
||||
|
||||
|
||||
const portfolioBalances = await api.multiCall({
|
||||
abi: 'erc20:balanceOf',
|
||||
calls: portfolioList.map(portfolio => {
|
||||
@@ -68,7 +92,9 @@ async function getXpharTvl(api) {
|
||||
})
|
||||
});
|
||||
|
||||
portfolioBalances.forEach(balance => api.addTokens(baseTokenMapping['avax'], balance));
|
||||
portfolioBalances.forEach(balance => api.addTokens(baseTokenMapping['avax']['pharaoh'], balance));
|
||||
|
||||
await unwrapSolidlyVeNft({ api, baseToken: baseTokenMapping['avax']['blackhole'], veNft: veNftMapping['avax']['blackhole'], owner:fortyAcresMapping['avax'][1],isAltAbi:true});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
@@ -79,5 +105,5 @@ module.exports = {
|
||||
vaultMapping,
|
||||
veNftMapping,
|
||||
getBorrowed,
|
||||
getXpharTvl,
|
||||
getAvaxTvl,
|
||||
}
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
|
||||
const { getVaultBalance, fortyAcresMapping, baseTokenMapping, veNftMapping, getBorrowed , getXpharTvl,} = require("./helpers");
|
||||
const { getVaultBalance, fortyAcresMapping, baseTokenMapping, veNftMapping, getBorrowed , getAvaxTvl,} = require("./helpers");
|
||||
const { unwrapSolidlyVeNft } = require('../helper/unwrapLPs');
|
||||
|
||||
|
||||
async function getLockedVeNFTBalance(api) {
|
||||
if(api.chain==='avax')
|
||||
await getXpharTvl(api);
|
||||
await getAvaxTvl(api);
|
||||
else
|
||||
await unwrapSolidlyVeNft({ api, baseToken: baseTokenMapping[api.chain], veNft: veNftMapping[api.chain], owner:fortyAcresMapping[api.chain]});
|
||||
await api.sumTokens({ owner: fortyAcresMapping[api.chain], tokens: [baseTokenMapping[api.chain]] },)
|
||||
await unwrapSolidlyVeNft({ api, baseToken: baseTokenMapping[api.chain], veNft: veNftMapping[api.chain], owner:fortyAcresMapping[api.chain][0]});
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user