以太坊代币-transferFrom的使用

2020-07-15  本文已影响0人  区块链0

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;
    }
步骤1
步骤1.png
步骤2
步骤2.png
步骤3
步骤3.png
上一篇下一篇

猜你喜欢

热点阅读