Skip to content
This repository has been archived by the owner on Jan 24, 2024. It is now read-only.

Commit

Permalink
feat(apps): Extract getReserve call so it can be overridden (#1672)
Browse files Browse the repository at this point in the history
  • Loading branch information
immasandwich authored Nov 9, 2022
1 parent f0051e7 commit ed015ea
Showing 1 changed file with 10 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,21 @@ export abstract class SingleStakingFarmTemplateContractPositionFetcher<
return tokenDefinitions;
}

async getReserve({ contractPosition, multicall }: GetDataPropsParams<T, V, SingleStakingFarmDefinition>) {
const stakedToken = contractPosition.tokens.find(isSupplied)!;
const stakedTokenContract = this.appToolkit.globalContracts.erc20(stakedToken);
const reserveRaw = await multicall.wrap(stakedTokenContract).balanceOf(contractPosition.address);
const reserve = Number(reserveRaw) / 10 ** stakedToken.decimals;
return reserve;
}

async getDataProps(params: GetDataPropsParams<T, V, SingleStakingFarmDefinition>): Promise<V> {
const { contractPosition, multicall } = params;
const { contractPosition } = params;
const stakedToken = contractPosition.tokens.find(isSupplied)!;
const rewardTokens = contractPosition.tokens.filter(isClaimable);
const rewardRatesRaw = await this.getRewardRates(params).then(v => (isArray(v) ? v : [v]));

const stakedTokenContract = this.appToolkit.globalContracts.erc20(stakedToken);
const reserveRaw = await multicall.wrap(stakedTokenContract).balanceOf(contractPosition.address);
const reserve = Number(reserveRaw) / 10 ** stakedToken.decimals;
const reserve = await this.getReserve(params);
const liquidity = reserve * stakedToken.price;

const rewardRates = rewardTokens.map((v, i) => Number(rewardRatesRaw[i] ?? 0) / 10 ** v.decimals);
Expand Down

0 comments on commit ed015ea

Please sign in to comment.