Skip to content
This repository was archived by the owner on Dec 18, 2025. It is now read-only.

Commit 2c134d1

Browse files
authored
Merge pull request #1258 from morpho-labs/fix/lens-irm
Updated IRM to cover flashloan index increase
2 parents c50f273 + b80a2c6 commit 2c134d1

1 file changed

Lines changed: 18 additions & 11 deletions

File tree

contracts/aave-v2/libraries/InterestRatesModel.sol

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -65,18 +65,25 @@ library InterestRatesModel {
6565
_lastPoolIndexes.poolBorrowIndex
6666
);
6767

68-
uint256 p2pGrowthFactor = PercentageMath.weightedAvg(
69-
growthFactors.poolSupplyGrowthFactor,
70-
growthFactors.poolBorrowGrowthFactor,
71-
_p2pIndexCursor
72-
);
68+
if (growthFactors.poolSupplyGrowthFactor <= growthFactors.poolBorrowGrowthFactor) {
69+
uint256 p2pGrowthFactor = PercentageMath.weightedAvg(
70+
growthFactors.poolSupplyGrowthFactor,
71+
growthFactors.poolBorrowGrowthFactor,
72+
_p2pIndexCursor
73+
);
7374

74-
growthFactors.p2pSupplyGrowthFactor =
75-
p2pGrowthFactor -
76-
(p2pGrowthFactor - growthFactors.poolSupplyGrowthFactor).percentMul(_reserveFactor);
77-
growthFactors.p2pBorrowGrowthFactor =
78-
p2pGrowthFactor +
79-
(growthFactors.poolBorrowGrowthFactor - p2pGrowthFactor).percentMul(_reserveFactor);
75+
growthFactors.p2pSupplyGrowthFactor =
76+
p2pGrowthFactor -
77+
(p2pGrowthFactor - growthFactors.poolSupplyGrowthFactor).percentMul(_reserveFactor);
78+
growthFactors.p2pBorrowGrowthFactor =
79+
p2pGrowthFactor +
80+
(growthFactors.poolBorrowGrowthFactor - p2pGrowthFactor).percentMul(_reserveFactor);
81+
} else {
82+
// The case poolSupplyGrowthFactor > poolBorrowGrowthFactor happens because someone has done a flashloan on Aave:
83+
// the peer-to-peer growth factors are set to the pool borrow growth factor.
84+
growthFactors.p2pSupplyGrowthFactor = growthFactors.poolBorrowGrowthFactor;
85+
growthFactors.p2pBorrowGrowthFactor = growthFactors.poolBorrowGrowthFactor;
86+
}
8087
}
8188

8289
/// @notice Computes and returns the new peer-to-peer supply index of a market given its parameters.

0 commit comments

Comments
 (0)