From 9d8e60c28c980768dbbf7da7f4c0dca573684410 Mon Sep 17 00:00:00 2001 From: julien Date: Tue, 8 Aug 2023 00:04:11 +0200 Subject: [PATCH] refactor: use early return in `_accrueInterests` --- src/Blue.sol | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/Blue.sol b/src/Blue.sol index 660ffd91c..741bf503f 100644 --- a/src/Blue.sol +++ b/src/Blue.sol @@ -371,26 +371,25 @@ contract Blue is IBlue { if (elapsed == 0) return; uint256 marketTotalBorrow = totalBorrow[id]; + lastUpdate[id] = block.timestamp; - if (marketTotalBorrow != 0) { - uint256 borrowRate = IIrm(market.irm).borrowRate(market); - uint256 accruedInterests = marketTotalBorrow.mulWadDown(borrowRate * elapsed); - totalBorrow[id] = marketTotalBorrow + accruedInterests; - totalSupply[id] += accruedInterests; - - uint256 feeShares; - if (fee[id] != 0) { - uint256 feeAmount = accruedInterests.mulWadDown(fee[id]); - // The fee amount is subtracted from the total supply in this calculation to compensate for the fact that total supply is already updated. - feeShares = feeAmount.mulDivDown(totalSupplyShares[id], totalSupply[id] - feeAmount); - supplyShares[id][feeRecipient] += feeShares; - totalSupplyShares[id] += feeShares; - } + if (marketTotalBorrow == 0) return; - emit AccrueInterests(id, borrowRate, accruedInterests, feeShares); + uint256 borrowRate = IIrm(market.irm).borrowRate(market); + uint256 accruedInterests = marketTotalBorrow.mulWadDown(borrowRate * elapsed); + totalBorrow[id] = marketTotalBorrow + accruedInterests; + totalSupply[id] += accruedInterests; + + uint256 feeShares; + if (fee[id] != 0) { + uint256 feeAmount = accruedInterests.mulWadDown(fee[id]); + // The fee amount is subtracted from the total supply in this calculation to compensate for the fact that total supply is already updated. + feeShares = feeAmount.mulDivDown(totalSupplyShares[id], totalSupply[id] - feeAmount); + supplyShares[id][feeRecipient] += feeShares; + totalSupplyShares[id] += feeShares; } - lastUpdate[id] = block.timestamp; + emit AccrueInterests(id, borrowRate, accruedInterests, feeShares); } // Health check.