11const { erc4626Abi, fortyAcresAbi, portfolioAbi } = require ( './abi' ) ;
2+ const { unwrapSolidlyVeNft } = require ( '../helper/unwrapLPs' ) ;
23
34const 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
913const 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
1522const 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
2131const 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
2740const avaxPortfolioFactory = "0x52d43C377e498980135C8F2E858f120A18Ea96C2" ;
@@ -33,31 +46,42 @@ const get4626VaultToken = async (api, addresses) => {
3346}
3447
3548async 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
4365async 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
74100module . exports = {
@@ -79,5 +105,5 @@ module.exports = {
79105 vaultMapping,
80106 veNftMapping,
81107 getBorrowed,
82- getXpharTvl ,
108+ getAvaxTvl ,
83109}
0 commit comments