ERC20规范(官方文档翻译、整理版)

最近想看ERC20规范原文档觉得英文太多,想看国内的相关博客、文章,又怕作者理解的有偏差,所以这篇文章来系统翻译、整理下官方的ERC20规范文档。原文链接:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md

  • 1.简单总结
    Token的标准接口。

  • 2.摘要
    以下标准允许在智能合约为token实现标准API。 本标准提供了转移token的基本功能,并允许链上第三方使用token。

  • 3.动机
    标准接口可以让以太网上的任何token被其他应用程序重新使用:从钱包到去中心化的交易所。

  • 4.详细介绍

  • 4.1Token

  • 4.11方法
    注意:调用者必须处理返回false的returns (bool success).调用者绝对不能假设返回false的情况不存在。
    name:返回令牌的名字,例如“MyToken”。
    可选——这个方法可以提高可用性,但接口和其他合约不能依赖该值的存在。

function name() view returns (string name)

symbol:返回令牌的符号,比如¥。
可选——这个方法可以提高可用性,但接口和其他合约不能依赖该值的存在。

function symbol() constant returns (string symbol)

decimals:返回token使用的小数点后几位, 比如 8,表示将1个token数量分为100000000份。
可选——这个方法可以提高可用性,但接口和其他合约不能依赖该值的存在。

function decimals() view returns (uint8 decimals)

totalSupply:返回token的总供应量。

function totalSupply() constant returns (uint256 totalSupply)

balanceOf:返回地址_owner的账户余额。

function balanceOf(address _owner) constant returns (uint256 balance)

transfer:转移_value数量的token到地址_to,并且必须触发Transfer事件。 如果_from帐户余额没有足够的token来支出,该方法应该抛出异常。
注意:_value=0必须被视为正常转移并触发Transfer事件。

function transfer(address _to, uint256 _value) returns (bool success)

transferFrom:从地址_from发送_value个token到地址_to,必须触发Transfer事件。
transferFrom方法用于提现流程,允许合约为你转移token。这可以用于允许合约为你转让代币或收取费用。除了_from帐户通过某种机制授权消息的发送者之外,否则该方法应该抛出异常。
注意:_value=0须被视为正常转移并触发Transfer事件。

function transferFrom(address _from, address _to, uint256 _value) returns (bool success)

approve:允许_spender多次从你的帐户提现,最高数量是_value。 如果再次调用此函数,它将以_value覆盖当前的值。
注意:为了防止向量攻击,客户端需要确认以这样的方式创建用户接口,即在为同一个花费者设置另一个值之前,先将它的值设置为0。虽然合约本身不应该强制执行,以前部署的合同允许向后兼容。

function approve(address _spender, uint256 _value) returns (bool success)

allowance:返回被允许从_owner提取到_spender余额。

function allowance(address _owner, address _spender) constant returns (uint256 remaining)
  • 4.2.event

Transfer:当token被转移(即使是0值)时必须被触发。

event Transfer(address indexed _from, address indexed _to, uint256 _value)

Approval:当成功调用approve(address _spender, uint256 _value)后必须被触发。

event Approval(address indexed _owner, address indexed _spender, uint256 _value)
  • 5. 实现
    在以太网上已经部署了大量符合ERC20标准的令牌。从节省gas到提高安全性,不同权衡的团队已经编写了各种不同的合约方案。

合约实例:
StandardToken
EIP20
在调用approve 之前强制设为0的实现:MiniMeToken

转载自简书
原文链接https://www.jianshu.com/p/81f6f7519ceb

猜你喜欢

转载自blog.csdn.net/weixin_40345905/article/details/81290891