ERC20重要补充之approveAndCall

本文介绍了ERC20协议及其局限性,特别是在使用星星币购买咖啡时的操作复杂性。approveAndCall方法能将多次操作合并为一次,提高效率。文章详细阐述了approveAndCall的工作原理,指出了ConsenSys实现中的错误,提供了修复方案,并展示了正确的使用和实现方式。最后,强调了在使用权威代码时进行审计和测试的重要性。
摘要由CSDN通过智能技术生成

什么是ERC20

ERC20是以太坊上为token提供的一种协议,也可以理解成一种token的共同标准。遵循ERC20协议的token都可以兼容以太坊钱包,让用户在钱包中可以查看token余额以及操作token转账,而不需要自己再手动与token合约交互。

ERC20规定了以下基本方法:

contract ERC20 {
    // 方法
    function name() view returns (string name);
    function symbol() view returns (string symbol);
    function decimals() view returns (uint8 decimals);
    function totalSupply() view returns (uint256 totalSupply);
    function balanceOf(address _owner) view 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) view returns (uint256 remaining);
    // 事件
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

可以看到,通过上面的几种方法,规定了一种token的基本信息、转账以及授权操作。这些操作基本可以覆盖货币使用的绝大部分场景,该协议一经提出后,立得到了开发者的接纳。

ERC20的局限

ERC20虽然广受开发者喜爱,但是依然有自己局限的一面。

让我们先从一个大家十分熟悉的场景开始谈起。假设某一天,星巴克突然宣布为了拥抱区块链技术,不再接受法币买咖啡了,大家以后可以用以

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值