From 3cc84a904a999d4ad063475e87a8a3def28547b9 Mon Sep 17 00:00:00 2001 From: Sowmay Jain Date: Mon, 31 Aug 2020 01:46:39 +1000 Subject: [PATCH] fixed an insurance amount (ZERO'd) bug --- contracts/pools/erc20.sol | 1 + contracts/pools/eth.sol | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/contracts/pools/erc20.sol b/contracts/pools/erc20.sol index 6b1c0a1..51968a2 100644 --- a/contracts/pools/erc20.sol +++ b/contracts/pools/erc20.sol @@ -90,6 +90,7 @@ contract PoolToken is ReentrancyGuard, DSMath, ERC20Pausable { insuranceAmt = sub(insuranceAmt, difTkn); _currentRate = _previousRate; } else { + insuranceAmt = 0; tokenBalance = add(_totalToken, insuranceAmt); _currentRate = wdiv(totalSupply(), tokenBalance); } diff --git a/contracts/pools/eth.sol b/contracts/pools/eth.sol index 35fbd53..a37685d 100644 --- a/contracts/pools/eth.sol +++ b/contracts/pools/eth.sol @@ -80,13 +80,14 @@ contract PoolToken is ReentrancyGuard, ERC20Pausable, DSMath { uint _totalToken = RateInterface(registry.poolLogic(address(this))).getTotalToken(); _totalToken = sub(_totalToken, insuranceAmt); uint _currentRate = wdiv(totalSupply(), _totalToken); - require(_currentRate != 0, "currentRate-is-0"); + require(_currentRate != 0, "current-rate-is-zero"); if (_currentRate > _previousRate) { - uint difTkn = sub(tokenBalance, _totalToken); - if (difTkn < insuranceAmt) { - insuranceAmt = sub(insuranceAmt, difTkn); + uint _difTkn = sub(tokenBalance, _totalToken); + if (_difTkn < insuranceAmt) { + insuranceAmt = sub(insuranceAmt, _difTkn); _currentRate = _previousRate; } else { + insuranceAmt = 0; tokenBalance = add(_totalToken, insuranceAmt); _currentRate = wdiv(totalSupply(), tokenBalance); }