/ src / services / UiStakeDataService.ts
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  }