From 86701e67bc7621a25e0b07db188e574e2b606c20 Mon Sep 17 00:00:00 2001 From: Sowmay Jain Date: Mon, 31 Aug 2020 03:35:51 +1000 Subject: [PATCH] simplified withdrawInsurance() method --- contracts/pools/erc20.sol | 16 ++++++---------- contracts/pools/eth.sol | 20 ++++++++------------ 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/contracts/pools/erc20.sol b/contracts/pools/erc20.sol index a5144a8..ff10920 100644 --- a/contracts/pools/erc20.sol +++ b/contracts/pools/erc20.sol @@ -126,11 +126,12 @@ contract PoolToken is ReentrancyGuard, DSMath, ERC20Pausable { emit LogSettle(block.number); } - function deposit(uint tknAmt) external whenNotPaused payable returns(uint) { + function deposit(uint tknAmt) external whenNotPaused payable returns (uint _mintAmt) { + require(msg.value == 0, "non-eth-pool"); tokenBalance = add(tokenBalance, tknAmt); baseToken.safeTransferFrom(msg.sender, address(this), tknAmt); - uint _mintAmt = wmul(tknAmt, exchangeRate); + _mintAmt = wmul(tknAmt, exchangeRate); _mint(msg.sender, _mintAmt); emit LogDeposit(tknAmt, _mintAmt); @@ -176,14 +177,9 @@ contract PoolToken is ReentrancyGuard, DSMath, ERC20Pausable { function withdrawInsurance(uint tknAmt) external { require(msg.sender == instaIndex.master(), "not-master"); - require(tknAmt <= insuranceAmt || tknAmt == uint(-1), "not-enough-insurance"); - if (tknAmt == uint(-1)) { - baseToken.safeTransfer(msg.sender, insuranceAmt); - insuranceAmt = 0; - } else { - baseToken.safeTransfer(msg.sender, tknAmt); - insuranceAmt = sub(insuranceAmt, tknAmt); - } + require(tknAmt <= insuranceAmt, "not-enough-insurance"); + baseToken.safeTransfer(msg.sender, tknAmt); + insuranceAmt = sub(insuranceAmt, tknAmt); emit LogAddInsurance(tknAmt); } diff --git a/contracts/pools/eth.sol b/contracts/pools/eth.sol index c27b02b..efe675e 100644 --- a/contracts/pools/eth.sol +++ b/contracts/pools/eth.sol @@ -39,6 +39,7 @@ contract PoolToken is ReentrancyGuard, ERC20Pausable, DSMath { event LogDeposit(uint depositAmt, uint poolMintAmt); event LogWithdraw(uint withdrawAmt, uint poolBurnAmt, uint feeAmt); event LogAddInsurance(uint amount); + event LogWithdrawInsurance(uint amount); event LogPausePool(bool); RegistryInterface public immutable registry; // Pool Registry @@ -123,11 +124,11 @@ contract PoolToken is ReentrancyGuard, ERC20Pausable, DSMath { emit LogSettle(block.number); } - function deposit(uint tknAmt) public whenNotPaused payable returns(uint) { + function deposit(uint tknAmt) public whenNotPaused payable returns (uint _mintAmt) { require(tknAmt == msg.value, "unmatched-amount"); tokenBalance = add(tokenBalance, tknAmt); - uint _mintAmt = wmul(msg.value, exchangeRate); + _mintAmt = wmul(msg.value, exchangeRate); _mint(msg.sender, _mintAmt); emit LogDeposit(tknAmt, _mintAmt); @@ -167,21 +168,16 @@ contract PoolToken is ReentrancyGuard, ERC20Pausable, DSMath { function addInsurance(uint tknAmt) external payable { require(tknAmt == msg.value, "unmatched-amount"); - insuranceAmt += tknAmt; + insuranceAmt = add(insuranceAmt, tknAmt); emit LogAddInsurance(tknAmt); } function withdrawInsurance(uint tknAmt) external { require(msg.sender == instaIndex.master(), "not-master"); - require(tknAmt <= insuranceAmt || tknAmt == uint(-1), "not-enough-insurance"); - if (tknAmt == uint(-1)) { - msg.sender.transfer(insuranceAmt); - insuranceAmt = 0; - } else { - msg.sender.transfer(tknAmt); - insuranceAmt = sub(insuranceAmt, tknAmt); - } - emit LogAddInsurance(tknAmt); + require(tknAmt <= insuranceAmt, "not-enough-insurance"); + msg.sender.transfer(tknAmt); + insuranceAmt = sub(insuranceAmt, tknAmt); + emit LogWithdrawInsurance(tknAmt); } function shutdown() external {