Commit e7b1c339 by pipaman Committed by Rudy Godoy

Update StandardToken.sol

Added increaseApproval and decreaseApproval to increase / decrease the approval in 1 transaction.
parent 02fb43ff
...@@ -64,4 +64,31 @@ contract StandardToken is ERC20, BasicToken { ...@@ -64,4 +64,31 @@ contract StandardToken is ERC20, BasicToken {
return allowed[_owner][_spender]; return allowed[_owner][_spender];
} }
/*
* approve should be called when allowed[_spender] == 0. To increment
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
*/
function increaseApproval (address _spender, uint _addedValue)
onlyPayloadSize(2 * 32)
returns (bool success) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
function decreaseApproval (address _spender, uint _subtractedValue)
onlyPayloadSize(2 * 32)
returns (bool success) {
uint oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment