Skip to content

Commit

Permalink
Refactor Aave V3 EMode category handling + revert synchronous morpho …
Browse files Browse the repository at this point in the history
…blue product hub update handler behavior
  • Loading branch information
marcinciarka committed Oct 15, 2024
1 parent faf75ce commit da55840
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 17 deletions.
39 changes: 25 additions & 14 deletions handlers/product-hub/update-handlers/aaveV3/aaveV3Handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -193,18 +193,27 @@ export default async function (tickers: Tickers): ProductHubHandlerResponse {
console.warn('No AAVE v3 APY data for', product.label, product.network, response)
}
return {
[`${product.label}-${product.network}`]:
new BigNumber(response?.results?.apy7d || zero).div(lambdaPercentageDenomination) || {}, // we do 5 as 5% and FE needs 0.05 as 5%
} as Record<string, BigNumber>
[`${product.label}-${product.network}`]: {
apy:
new BigNumber(response?.results?.apy7d || zero).div(lambdaPercentageDenomination) || {}, // we do 5 as 5% and FE needs 0.05 as 5%
ltv,
},
} as Record<
string,
{
apy: BigNumber
ltv: BigNumber
}
>
})
return Promise.all([
Promise.all(getAaveV3TokensDataPromises),
Promise.all(earnProductsPromises),
]).then(([aaveV3TokensDataList, earnProductsYields]) => {
]).then(([aaveV3TokensDataList, earnProductsDataArr]) => {
const aaveV3TokensData = aaveV3TokensDataList.reduce((acc, curr) => {
return { ...acc, ...curr }
}, {})
const flattenYields = earnProductsYields.reduce((acc, curr) => {
const earnProductsData = earnProductsDataArr.reduce((acc, curr) => {
return { ...acc, ...curr }
})
return {
Expand All @@ -227,27 +236,29 @@ export default async function (tickers: Tickers): ProductHubHandlerResponse {
debtToken: secondaryToken,
})
const isMultiply = product.product[0] === OmniProductType.Multiply
const isYieldLoopMultiply = isMultiply && isYieldLoop

ensureGivenTokensExist(networkId, contracts, [primaryToken, secondaryToken])

const { tokens } = contracts

return {
...product,
product: [isMultiply && isYieldLoop ? OmniProductType.Earn : product.product[0]],
...(isYieldLoop &&
isMultiply && {
earnStrategy: 'yield_loop',
earnStrategyDescription: `${primaryToken}/${secondaryToken} Yield Loop`,
managementType: 'active',
}),
product: [isYieldLoopMultiply ? OmniProductType.Earn : product.product[0]],
...(isYieldLoopMultiply && {
earnStrategy: 'yield_loop',
earnStrategyDescription: `${primaryToken}/${secondaryToken} Yield Loop`,
managementType: 'active',
}),
primaryTokenAddress: tokens[primaryToken].address,
secondaryTokenAddress: tokens[secondaryToken].address,
maxMultiply: riskRatio.multiple.toString(),
maxLtv: maxLtv.toString(),
maxLtv: isYieldLoopMultiply
? earnProductsData[`${label}-${network}`].ltv.toString()
: maxLtv.toString(),
liquidity: liquidity.toString(),
fee: fee.toString(),
weeklyNetApy: flattenYields[`${label}-${network}`]?.toString(),
weeklyNetApy: earnProductsData[`${label}-${network}`]?.apy.toString(),
hasRewards: product.hasRewards ?? false,
automationFeatures: !product.product.includes(OmniProductType.Earn)
? settingsV3.availableAutomations[
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ async function getMorphoMarketData(
try {
return await markets.reduce<Promise<ProductHubHandlerResponseData>>(
async (v, { marketId, pair }) => {
const acc = await v
const [collateralToken, quoteToken] = pair.split('-')
const pairId =
networkMarkets[pair].length > 1 ? `-${networkMarkets[pair].indexOf(marketId) + 1}` : ''
Expand Down Expand Up @@ -100,7 +99,6 @@ async function getMorphoMarketData(
collateralToken,
debtToken: quoteToken,
})

const weeklyNetApyCall = await (isYieldLoop
? getYieldsRequest(
{
Expand Down Expand Up @@ -129,7 +127,7 @@ async function getMorphoMarketData(
).toString()
return {
table: [
...acc.table,
...(await v).table,
{
label,
network,
Expand Down

0 comments on commit da55840

Please sign in to comment.