diff --git a/packages/blue-sdk/src/market/MarketUtils.ts b/packages/blue-sdk/src/market/MarketUtils.ts index e364083f..4a26bf63 100644 --- a/packages/blue-sdk/src/market/MarketUtils.ts +++ b/packages/blue-sdk/src/market/MarketUtils.ts @@ -26,7 +26,7 @@ export namespace MarketUtils { market.collateralToken.substring(2).toLowerCase().padStart(64, "0") + market.oracle.substring(2).padStart(64, "0") + market.irm.substring(2).toLowerCase().padStart(64, "0") + - market.lltv.toString(16).padStart(64, "0"), + BigInt(market.lltv).toString(16).padStart(64, "0"), ).toString("hex")}` as MarketId; } diff --git a/packages/blue-sdk/src/maths/AdaptiveCurveIrmLib.ts b/packages/blue-sdk/src/maths/AdaptiveCurveIrmLib.ts index 7bfca995..d25d3797 100644 --- a/packages/blue-sdk/src/maths/AdaptiveCurveIrmLib.ts +++ b/packages/blue-sdk/src/maths/AdaptiveCurveIrmLib.ts @@ -156,13 +156,16 @@ export namespace AdaptiveCurveIrmLib { if (borrowRate >= rateAtTarget) { const maxBorrowRate = MathLib.wMulDown(rateAtTarget, CURVE_STEEPNESS); + const diffToMaxBorrowRate = maxBorrowRate - rateAtTarget; + if (diffToMaxBorrowRate === 0n) return MathLib.WAD; + return MathLib.min( MathLib.WAD, TARGET_UTILIZATION + MathLib.mulDivDown( MathLib.WAD - TARGET_UTILIZATION, borrowRate - rateAtTarget, - maxBorrowRate - rateAtTarget, + diffToMaxBorrowRate, ), ); }