From 2c4d1d25d70a29fe97117dc6ad3c4cbcb22b539b Mon Sep 17 00:00:00 2001 From: Sowmayjain Date: Fri, 12 Apr 2019 18:51:18 +0530 Subject: [PATCH] Code refactoring. --- contracts/ProxyLogics/InstaKyber.sol | 28 +++++++++++----------- contracts/ProxyLogics/InstaMaker.sol | 6 ++--- contracts/ProxyLogics/InstaUniswapPool.sol | 9 ++++++- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/contracts/ProxyLogics/InstaKyber.sol b/contracts/ProxyLogics/InstaKyber.sol index 276ff29..0cccf7f 100644 --- a/contracts/ProxyLogics/InstaKyber.sol +++ b/contracts/ProxyLogics/InstaKyber.sol @@ -1,6 +1,12 @@ pragma solidity ^0.5.0; -import "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol"; +interface IERC20 { + function transfer(address to, uint256 value) external returns (bool); + function approve(address spender, uint256 value) external returns (bool); + function transferFrom(address from, address to, uint256 value) external returns (bool); + function balanceOf(address who) external view returns (uint256); + function allowance(address owner, address spender) external view returns (uint256); +} contract KyberInterface { @@ -91,27 +97,21 @@ contract Helper { require(msg.value == srcAmt, "not-enough-src"); ethQty = srcAmt; } else { - manageApproval(src, srcAmt); - IERC20(src).transferFrom(trader, address(this), srcAmt); + IERC20 tknContract = IERC20(src); + setApproval(tknContract, srcAmt); + tknContract.transferFrom(trader, address(this), srcAmt); } } /** * @dev setting allowance to kyber for the "user proxy" if required - * @param token is the token address - */ - function setApproval(address token) internal returns (uint) { - IERC20(token).approve(getAddressKyber(), 2**255); - } - - /** - * @dev configuring token approval with user proxy * @param token is the token + * @param srcAmt is the amount of token to sell */ - function manageApproval(address token, uint srcAmt) internal returns (uint) { - uint tokenAllowance = IERC20(token).allowance(address(this), getAddressKyber()); + function setApproval(IERC20 tknContract, uint srcAmt) internal returns (uint) { + uint tokenAllowance = tknContract.allowance(address(this), getAddressKyber()); if (srcAmt > tokenAllowance) { - setApproval(token); + tknContract.approve(getAddressKyber(), 2**255); } } diff --git a/contracts/ProxyLogics/InstaMaker.sol b/contracts/ProxyLogics/InstaMaker.sol index b8e6d48..416cf8d 100644 --- a/contracts/ProxyLogics/InstaMaker.sol +++ b/contracts/ProxyLogics/InstaMaker.sol @@ -222,9 +222,9 @@ contract CDPResolver is Helpers { } } - function setAllowance(TokenInterface token_, address spender_) private { - if (token_.allowance(address(this), spender_) != uint(-1)) { - token_.approve(spender_, uint(-1)); + function setAllowance(TokenInterface _token, address _spender) private { + if (_token.allowance(address(this), _spender) != uint(-1)) { + _token.approve(_spender, uint(-1)); } } diff --git a/contracts/ProxyLogics/InstaUniswapPool.sol b/contracts/ProxyLogics/InstaUniswapPool.sol index 29fe58e..7361c98 100644 --- a/contracts/ProxyLogics/InstaUniswapPool.sol +++ b/contracts/ProxyLogics/InstaUniswapPool.sol @@ -1,6 +1,13 @@ pragma solidity ^0.5.0; -import "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol"; +interface IERC20 { + function transfer(address to, uint256 value) external returns (bool); + function approve(address spender, uint256 value) external returns (bool); + function transferFrom(address from, address to, uint256 value) external returns (bool); + function totalSupply() external view returns (uint256); + function balanceOf(address who) external view returns (uint256); + function allowance(address owner, address spender) external view returns (uint256); +} interface UniswapFactory { // Get Exchange and Token Info