From e88d9dc81b009a5ce5f9ce4ef9dac06aa09b7ee1 Mon Sep 17 00:00:00 2001 From: eboado Date: Tue, 27 Oct 2020 12:44:30 +0100 Subject: [PATCH] - Optimized calculateLinearInterest() on MathUtils. --- contracts/libraries/math/MathUtils.sol | 4 +--- test/helpers/utils/calculations.ts | 9 +++++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/contracts/libraries/math/MathUtils.sol b/contracts/libraries/math/MathUtils.sol index 63eb0abe..5263279b 100644 --- a/contracts/libraries/math/MathUtils.sol +++ b/contracts/libraries/math/MathUtils.sol @@ -25,9 +25,7 @@ library MathUtils { //solium-disable-next-line uint256 timeDifference = block.timestamp.sub(uint256(lastUpdateTimestamp)); - uint256 timeDelta = timeDifference.wadToRay().rayDiv(SECONDS_PER_YEAR.wadToRay()); - - return rate.rayMul(timeDelta).add(WadRayMath.ray()); + return (rate.mul(timeDifference) / SECONDS_PER_YEAR).add(WadRayMath.ray()); } /** diff --git a/test/helpers/utils/calculations.ts b/test/helpers/utils/calculations.ts index 46623a62..7bffad2d 100644 --- a/test/helpers/utils/calculations.ts +++ b/test/helpers/utils/calculations.ts @@ -1153,11 +1153,12 @@ const calcLinearInterest = ( currentTimestamp: BigNumber, lastUpdateTimestamp: BigNumber ) => { - const timeDifference = currentTimestamp.minus(lastUpdateTimestamp).wadToRay(); + const timeDifference = currentTimestamp.minus(lastUpdateTimestamp); - const timeDelta = timeDifference.rayDiv(new BigNumber(ONE_YEAR).wadToRay()); - - const cumulatedInterest = rate.rayMul(timeDelta).plus(RAY); + const cumulatedInterest = rate + .multipliedBy(timeDifference) + .dividedBy(new BigNumber(ONE_YEAR)) + .plus(RAY); return cumulatedInterest; };