The problem is what allowance
and approve
are really doing?
And what is _spender
and what is it doing?
Is there anybody who can explain it to me?
contract Token {
uint256 public totalSupply;
function balanceOf(address _owner) constant returns (uint256 balance);
function transfer(address _to, uint256 value) returns (bool success);
function transferFrom(address _from, address _to, uint256 value) returns (bool success);
function approve(address _spender, uint256 _value) returns (bool success);
function allowance(address _owner, address _spender) constant returns (uint256 remaining);
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}
what allowance and approve are doing really?
Let's assume we have user A and user B. A has 1000 tokens and want to give permission to B to spend 100 of them.
approve(address(B), 100, {"from": address(A)})
allowance(address(A), address(B))
transferFrom(address(A), address(B), 100, {"from": address(B)})