UiStakeDataService.ts
1 import { UiStakeDataProviderV3 } from '@aave/contract-helpers'; 2 import { Provider } from '@ethersproject/providers'; 3 import { MarketDataType } from 'src/ui-config/marketsConfig'; 4 import { stakeConfig } from 'src/ui-config/stakeConfig'; 5 6 export class UiStakeDataService { 7 constructor(private readonly getProvider: (chainId: number) => Provider) {} 8 9 private getUiStakeDataService(marketData: MarketDataType) { 10 const provider = this.getProvider(marketData.chainId); 11 return new UiStakeDataProviderV3({ 12 uiStakeDataProvider: stakeConfig.stakeDataProvider, 13 provider, 14 }); 15 } 16 17 async getGeneralStakeUIDataHumanized( 18 marketData: MarketDataType, 19 stakedTokens: string[], 20 oracles: string[] 21 ) { 22 const uiStakeDataService = this.getUiStakeDataService(marketData); 23 24 return uiStakeDataService.getStakedAssetDataBatch(stakedTokens, oracles); 25 } 26 27 async getUserStakeUIDataHumanized( 28 marketData: MarketDataType, 29 user: string, 30 stakedAssets: string[], 31 oracles: string[] 32 ) { 33 const uiStakeDataService = this.getUiStakeDataService(marketData); 34 35 return uiStakeDataService.getUserStakeUIDataHumanized({ user, stakedAssets, oracles }); 36 } 37 }