From bfc773d323dbab8b36d51f3432303e3cca2197be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Fingen?= Date: Thu, 2 May 2024 22:18:25 +0100 Subject: [PATCH] fix: Avoid moving funds if amount is zero --- contracts/src/TroveManager.sol | 10 +++++++--- contracts/src/test/redemptions.t.sol | 3 +-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/contracts/src/TroveManager.sol b/contracts/src/TroveManager.sol index 28ba7719..7f52a40c 100644 --- a/contracts/src/TroveManager.sol +++ b/contracts/src/TroveManager.sol @@ -867,9 +867,13 @@ contract TroveManager is ERC721, LiquityBase, Ownable, CheckContract, ITroveMana uint256 _bold, uint256 _ETH ) internal { - _defaultPool.decreaseBoldDebt(_bold); - _activePool.increaseRecordedDebtSum(_bold); - _defaultPool.sendETHToActivePool(_ETH); + if (_bold > 0) { + _defaultPool.decreaseBoldDebt(_bold); + _activePool.increaseRecordedDebtSum(_bold); + } + if (_ETH > 0) { + _defaultPool.sendETHToActivePool(_ETH); + } } // --- Redemption functions --- diff --git a/contracts/src/test/redemptions.t.sol b/contracts/src/test/redemptions.t.sol index 4bd5debd..ef32cb4d 100644 --- a/contracts/src/test/redemptions.t.sol +++ b/contracts/src/test/redemptions.t.sol @@ -107,8 +107,7 @@ contract Redemptions is DevTestSetup { function testRedemptionIncludesAccruedTroveInterest() public { (,, TroveIDs memory troveIDs) = _setupForRedemption(); - (,, uint256 redistDebtGain_A,, uint256 accruedInterest_A) = - troveManager.getEntireDebtAndColl(troveIDs.A); + (,, uint256 redistDebtGain_A,, uint256 accruedInterest_A) = troveManager.getEntireDebtAndColl(troveIDs.A); assertGt(accruedInterest_A, 0); assertEq(redistDebtGain_A, 0);