From de90f4458ad67955bf8de5b16216d806da36574e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Venturo?= Date: Tue, 26 Feb 2019 12:39:02 -0300 Subject: [PATCH 1/3] Merge pull request #1647 from nventuro/safeerc20-bugfix Fix SafeERC20.safeApprove bug (cherry picked from commit 3111291b4a8928a385b7993e32daf84fa3217f13) --- contracts/mocks/SafeERC20Helper.sol | 8 ++++---- contracts/token/ERC20/SafeERC20.sol | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/contracts/mocks/SafeERC20Helper.sol b/contracts/mocks/SafeERC20Helper.sol index c9c455e58..feb259037 100644 --- a/contracts/mocks/SafeERC20Helper.sol +++ b/contracts/mocks/SafeERC20Helper.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]; } } diff --git a/contracts/token/ERC20/SafeERC20.sol b/contracts/token/ERC20/SafeERC20.sol index 25ac9bae7..c1070f24e 100644 --- a/contracts/token/ERC20/SafeERC20.sol +++ b/contracts/token/ERC20/SafeERC20.sol @@ -24,7 +24,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)); } From 634883ce8ecc3d9c61552e0f8d9e64c454fac2e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Venturo?= Date: Tue, 26 Feb 2019 16:28:36 -0300 Subject: [PATCH 2/3] Add bugfix backport changelog entry. --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 566293548..8f84bc613 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## 2.2.0 (unreleased) +## 2.1.3 (2019-26-02) + * Backported `SafeERC20.safeApprove` bugfix. ([#1647](https://github.com/OpenZeppelin/openzeppelin-solidity/pull/1647)) + ## 2.1.2 (2019-17-01) * Removed most of the test suite from the npm package, except `PublicRole.behavior.js`, which may be useful to users testing their own `Roles`. From 77d569d8fafe7f39d44386e0083bda26968e534c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Venturo?= Date: Tue, 26 Feb 2019 16:29:24 -0300 Subject: [PATCH 3/3] Release v2.1.3 --- ethpm.json | 2 +- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ethpm.json b/ethpm.json index d1234541f..dc6005674 100644 --- a/ethpm.json +++ b/ethpm.json @@ -1,6 +1,6 @@ { "package_name": "zeppelin", - "version": "2.1.2", + "version": "2.1.3", "description": "Secure Smart Contract library for Solidity", "authors": [ "OpenZeppelin Community " diff --git a/package-lock.json b/package-lock.json index ed84dd244..da0a6016c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "openzeppelin-solidity", - "version": "2.1.2", + "version": "2.1.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index fe21e352a..ee0e1c213 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openzeppelin-solidity", - "version": "2.1.2", + "version": "2.1.3", "description": "Secure Smart Contract library for Solidity", "files": [ "build",