美文网首页程序员
【关于以太坊ERC20】SHOW攻城狮笔记

【关于以太坊ERC20】SHOW攻城狮笔记

作者: ShowCoin官方管理员 | 来源:发表于2018-03-26 17:23 被阅读0次

    不定期更新SHOW(秀币)工程师们的笔记,涉及的内容和方面很多,希望对想学习区块链知识的粉丝有一定帮助。

     以下笔记由SHOW ios高级工程师大韦分享:

    市面上出现了大量以以太坊为核心的ERC20 token(代币),那么ERC20是什么,有什么作用呢? 以太坊上的token种类很多,这么多token的标准不统一的话也就没办法办到token之间的交易以及多种token的钱包。所以token大都使用相同的标准—ERC20协议(现已有ERC23协议),ERC-20提供了标准使得钱包、交易所和其他智能合约以一种常见的方式对接各种token,这样token之间的交易和DAPP支持才会变得容易,也可以支持多种token的钱包兼容。

     ERC20 token仅仅是以太坊token的子集。为了充分兼容 ERC20,开发者需要将一组特定的函数(接口)集成到他们的智能合约中,也就是说所有的ERC20 token都是按照下面这些方法来定义的。

       ERC20标准(标准接口)

      Method 1. name(可选) function name() constant returns (string name) 返回ERC20 token的名字,例如:ShowCoin

    2. symbol(可选) function symbol() constant returns (string symbol) 返回ERC20 token的缩写简称,例如:SHOW

    3.decimals(可选) function decimals() constant returns (uint8 decimals) 返回支持小数点后几位。例如:返回3支持0.001显示。

    4.totalSupply function totalSupply() constant returns (uint256 totalSupply) 返回发行 token的总量

    5.balanceOf function balanceOf(address _owner) constant returns (uint256 balance) 输入地址,返回该地址的余额。

    6.transfer function transfer(address _to, uint256 _value) returns (bool success) transfer函数能把自己的token转账给_to地址,转账个数为_value

    7.approve function approve(address _spender, uint256 _value) returns (bool success) 批准一账户从自己的账户花费_value个token。可以分多次转移。

    8.transferFrom function transferFrom(address _from, address _to, uint256 _value) returns (bool success) approve批准花费之后,调用transferFrom函数来转移token。

    9.allowance function allowance(address _owner, address _spender) constant returns (uint256 remaining) 返回一账户还能提取token的个数。

      Events 1.Transfer event Transfer(address indexed _from, address indexed _to, uint256 _value) 转移成功时,必须要触发Transfer事件

    2.Approval event Approval(address indexed _owner, address indexed _spender, uint256 _value) 调用approval函数成功时,必须要触发Approval事件 举例approve、transferFrom、allowance配合使用 例:账户ABC三个,涉及权限问题,要先调用approve函数来获取权限.假设A允许B使用自己的100个token中的10个,而B想将其中1个给C. 这时账户A调用approve函数(触发Approval事件),事件返回成功以后B要转账调用transferFrom函数(触发Transfer事件),最后调用allowance函数可以知道B还能用A多少个token。

     *当某一token的智能合约符合以上的标准的时候,我们就可以把它称作为ERC20 token了。

    ERC20的问题以及完善

    ERC-20标准还有待完善,当我们将token直接发送给token的合同的时候,(一个token的合同只会跟踪和分配资金),没有办法通过合同处理传入的token交易,也没有办法拒绝任何不支持的token,也就是说token不能再继续往后的交易了,也不能被追回或者访问到,也就等于说是资金流失了。(也可以描述为ERC20协议无法通过接收方合同处理传入的交易。)而ERC223协议就是为了完善这种问题,增加了合约事务失败的处理以防止意外转移的发生。(笔记仅做学习参考用)

    官网链接:show.one

    相关文章

      网友评论

        本文标题:【关于以太坊ERC20】SHOW攻城狮笔记

        本文链接:https://www.haomeiwen.com/subject/dkwrcftx.html