Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Make approve method compliant with ERC20
  • Loading branch information
jakub-wojciechowski committed Sep 14, 2017
commit d2f8761d9e5c4c14b4375529e7fb2489ba6a6cde
2 changes: 1 addition & 1 deletion contracts/token/ERC20.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ import './ERC20Basic.sol';
contract ERC20 is ERC20Basic {
function allowance(address owner, address spender) constant returns (uint256);
function transferFrom(address from, address to, uint256 value) returns (bool);
function approve(address spender, uint256 value) returns (bool);
function approve(address spender, uint256 value) returns (bool success);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
9 changes: 1 addition & 8 deletions contracts/token/StandardToken.sol
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,7 @@ contract StandardToken is ERC20, BasicToken {
* @param _spender The address which will spend the funds.
* @param _value The amount of tokens to be spent.
*/
function approve(address _spender, uint256 _value) returns (bool) {

// To change the approve amount you first have to reduce the addresses`
// allowance to zero by calling `approve(_spender, 0)` if it is not
// already 0 to mitigate the race condition described here:
// https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
require((_value == 0) || (allowed[msg.sender][_spender] == 0));

function approve(address _spender, uint256 _value) returns (bool success) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
Expand Down