simplified withdrawInsurance() method

This commit is contained in:
Sowmay Jain 2020-08-31 03:35:51 +10:00
parent dac3be57fe
commit 86701e67bc
2 changed files with 14 additions and 22 deletions

View File

@ -126,11 +126,12 @@ contract PoolToken is ReentrancyGuard, DSMath, ERC20Pausable {
emit LogSettle(block.number); 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); tokenBalance = add(tokenBalance, tknAmt);
baseToken.safeTransferFrom(msg.sender, address(this), tknAmt); baseToken.safeTransferFrom(msg.sender, address(this), tknAmt);
uint _mintAmt = wmul(tknAmt, exchangeRate); _mintAmt = wmul(tknAmt, exchangeRate);
_mint(msg.sender, _mintAmt); _mint(msg.sender, _mintAmt);
emit LogDeposit(tknAmt, _mintAmt); emit LogDeposit(tknAmt, _mintAmt);
@ -176,14 +177,9 @@ contract PoolToken is ReentrancyGuard, DSMath, ERC20Pausable {
function withdrawInsurance(uint tknAmt) external { function withdrawInsurance(uint tknAmt) external {
require(msg.sender == instaIndex.master(), "not-master"); require(msg.sender == instaIndex.master(), "not-master");
require(tknAmt <= insuranceAmt || tknAmt == uint(-1), "not-enough-insurance"); require(tknAmt <= insuranceAmt, "not-enough-insurance");
if (tknAmt == uint(-1)) { baseToken.safeTransfer(msg.sender, tknAmt);
baseToken.safeTransfer(msg.sender, insuranceAmt); insuranceAmt = sub(insuranceAmt, tknAmt);
insuranceAmt = 0;
} else {
baseToken.safeTransfer(msg.sender, tknAmt);
insuranceAmt = sub(insuranceAmt, tknAmt);
}
emit LogAddInsurance(tknAmt); emit LogAddInsurance(tknAmt);
} }

View File

@ -39,6 +39,7 @@ contract PoolToken is ReentrancyGuard, ERC20Pausable, DSMath {
event LogDeposit(uint depositAmt, uint poolMintAmt); event LogDeposit(uint depositAmt, uint poolMintAmt);
event LogWithdraw(uint withdrawAmt, uint poolBurnAmt, uint feeAmt); event LogWithdraw(uint withdrawAmt, uint poolBurnAmt, uint feeAmt);
event LogAddInsurance(uint amount); event LogAddInsurance(uint amount);
event LogWithdrawInsurance(uint amount);
event LogPausePool(bool); event LogPausePool(bool);
RegistryInterface public immutable registry; // Pool Registry RegistryInterface public immutable registry; // Pool Registry
@ -123,11 +124,11 @@ contract PoolToken is ReentrancyGuard, ERC20Pausable, DSMath {
emit LogSettle(block.number); 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"); require(tknAmt == msg.value, "unmatched-amount");
tokenBalance = add(tokenBalance, tknAmt); tokenBalance = add(tokenBalance, tknAmt);
uint _mintAmt = wmul(msg.value, exchangeRate); _mintAmt = wmul(msg.value, exchangeRate);
_mint(msg.sender, _mintAmt); _mint(msg.sender, _mintAmt);
emit LogDeposit(tknAmt, _mintAmt); emit LogDeposit(tknAmt, _mintAmt);
@ -167,21 +168,16 @@ contract PoolToken is ReentrancyGuard, ERC20Pausable, DSMath {
function addInsurance(uint tknAmt) external payable { function addInsurance(uint tknAmt) external payable {
require(tknAmt == msg.value, "unmatched-amount"); require(tknAmt == msg.value, "unmatched-amount");
insuranceAmt += tknAmt; insuranceAmt = add(insuranceAmt, tknAmt);
emit LogAddInsurance(tknAmt); emit LogAddInsurance(tknAmt);
} }
function withdrawInsurance(uint tknAmt) external { function withdrawInsurance(uint tknAmt) external {
require(msg.sender == instaIndex.master(), "not-master"); require(msg.sender == instaIndex.master(), "not-master");
require(tknAmt <= insuranceAmt || tknAmt == uint(-1), "not-enough-insurance"); require(tknAmt <= insuranceAmt, "not-enough-insurance");
if (tknAmt == uint(-1)) { msg.sender.transfer(tknAmt);
msg.sender.transfer(insuranceAmt); insuranceAmt = sub(insuranceAmt, tknAmt);
insuranceAmt = 0; emit LogWithdrawInsurance(tknAmt);
} else {
msg.sender.transfer(tknAmt);
insuranceAmt = sub(insuranceAmt, tknAmt);
}
emit LogAddInsurance(tknAmt);
} }
function shutdown() external { function shutdown() external {