fixed an insurance amount (ZERO'd) bug

This commit is contained in:
Sowmay Jain 2020-08-31 01:46:39 +10:00
parent 365a91ed10
commit 3cc84a904a
2 changed files with 6 additions and 4 deletions

View File

@ -90,6 +90,7 @@ contract PoolToken is ReentrancyGuard, DSMath, ERC20Pausable {
insuranceAmt = sub(insuranceAmt, difTkn); insuranceAmt = sub(insuranceAmt, difTkn);
_currentRate = _previousRate; _currentRate = _previousRate;
} else { } else {
insuranceAmt = 0;
tokenBalance = add(_totalToken, insuranceAmt); tokenBalance = add(_totalToken, insuranceAmt);
_currentRate = wdiv(totalSupply(), tokenBalance); _currentRate = wdiv(totalSupply(), tokenBalance);
} }

View File

@ -80,13 +80,14 @@ contract PoolToken is ReentrancyGuard, ERC20Pausable, DSMath {
uint _totalToken = RateInterface(registry.poolLogic(address(this))).getTotalToken(); uint _totalToken = RateInterface(registry.poolLogic(address(this))).getTotalToken();
_totalToken = sub(_totalToken, insuranceAmt); _totalToken = sub(_totalToken, insuranceAmt);
uint _currentRate = wdiv(totalSupply(), _totalToken); uint _currentRate = wdiv(totalSupply(), _totalToken);
require(_currentRate != 0, "currentRate-is-0"); require(_currentRate != 0, "current-rate-is-zero");
if (_currentRate > _previousRate) { if (_currentRate > _previousRate) {
uint difTkn = sub(tokenBalance, _totalToken); uint _difTkn = sub(tokenBalance, _totalToken);
if (difTkn < insuranceAmt) { if (_difTkn < insuranceAmt) {
insuranceAmt = sub(insuranceAmt, difTkn); insuranceAmt = sub(insuranceAmt, _difTkn);
_currentRate = _previousRate; _currentRate = _previousRate;
} else { } else {
insuranceAmt = 0;
tokenBalance = add(_totalToken, insuranceAmt); tokenBalance = add(_totalToken, insuranceAmt);
_currentRate = wdiv(totalSupply(), tokenBalance); _currentRate = wdiv(totalSupply(), tokenBalance);
} }