Merge pull request #1647 from nventuro/safeerc20-bugfix

Fix SafeERC20.safeApprove bug

(cherry picked from commit 3111291b4a)
pull/1653/head
Nicolás Venturo 6 years ago
parent 06e265b38d
commit 2648206394
  1. 8
      contracts/mocks/SafeERC20Helper.sol
  2. 2
      contracts/token/ERC20/SafeERC20.sol

@ -24,7 +24,7 @@ contract ERC20FailingMock {
}
contract ERC20SucceedingMock {
uint256 private _allowance;
mapping (address => uint256) private _allowances;
function transfer(address, uint256) public returns (bool) {
return true;
@ -39,11 +39,11 @@ contract ERC20SucceedingMock {
}
function setAllowance(uint256 allowance_) public {
_allowance = allowance_;
_allowances[msg.sender] = allowance_;
}
function allowance(address, address) public view returns (uint256) {
return _allowance;
function allowance(address owner, address) public view returns (uint256) {
return _allowances[owner];
}
}

@ -44,7 +44,7 @@ library SafeERC20 {
// safeApprove should only be called when setting an initial allowance,
// or when resetting it to zero. To increase and decrease it, use
// 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
require((value == 0) || (token.allowance(msg.sender, spender) == 0));
require((value == 0) || (token.allowance(address(this), spender) == 0));
require(token.approve(spender, value));
}

Loading…
Cancel
Save