目录

我的学习分享

记录精彩的程序人生

以太坊代币-transferFrom的使用

https://www.jianshu.com/p/5fc8c3f2cf4d

approve是授权第三方(比如某个服务合约)从发送者账户转移代币,然后通过 transferFrom() 函数来执行具体的转移操作。

账户A有1000个ETH,想允许B账户随意调用他的100个ETH,过程如下:

A账户按照以下形式调用approve函数approve(B,100)

B账户想用这100个ETH中的10个ETH给C账户,调用transferFrom(A, C, 10)

调用allowance(A, B)可以查看B账户还能够调用A账户多少个token

/* 从其他账户转移资产
    A允许B从A那里转多少钱给C,先用A调用approve方法,传入B账户;然后调用transferFrom方法,from参数传A账户,to参数传B账户,最后账户地址要改为B的账户来调用
    */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        require(_value <= allowance[_from][msg.sender]);     // Check allowance
        allowance[_from][msg.sender] -= _value;
        _transfer(_from, _to, _value);

        return true;
    }

    /*  授权第三方从发送者账户转移代币,然后通过transferFrom()函数来执行第三方的转移操作 */
    function approve(address _spender, uint256 _value) public
        returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        return true;
    }

作者:湿哒哒
链接:https://www.jianshu.com/p/5fc8c3f2cf4d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。