-
Notifications
You must be signed in to change notification settings - Fork 34
Description
I am unable to pass Lesson 8 "ERC20 Standard". Specifically the second checkpoint: "In function transfer, decrease the balance of msg.sender by _value. Then, increase the balance of _to by _value.
`function transfer(address _to, uint256 _value) returns (bool) {
require(_value <= balances[msg.sender]);
require(_to != address(0));
balances[msg.sender] = balances[msg.sender] -= (_value);
balances[_to] = balances[_to] += (_value);
Transfer(msg.sender, _to, _value);
return true;
}`
Also on the third checkpoint: "In function transferFrom, make sure the code that changes the balances is only executed if msg.sender has enough allowance and _from has enough balance. Hint: use require to validate data and thow the exceptions."
`function transferFrom(address _from, address _to, uint256 _value) returns (bool) {
var _allowance = allowed[_from][msg.sender];
require(_value <= allowed[_from][msg.sender]);
require(_value <= balances[_from]);
// Make sure the function does not get executed if _allowance is lower than _value
balances[_to] = balances[_to] + _value;
balances[_from] = balances[_from] - _value;
allowed[_from][msg.sender] = _allowance - _value;
Transfer(_from, _to, _value);
return true;
}`