ERC20

作者: 坤_7a1e | 来源:发表于2018-05-28 14:42 被阅读0次

    提示:文中出现的代币,或称为令牌,或称为token

    以太坊

    以太坊是一个分布式的智能合约平台,可以发行代币(Token)

    市面上出现了大量的用ETH做的代币,他们都遵守REC20协议,那么我们需要知道什么是REC20协议。

    ERC20代币的标准API 的官方文档

    https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md

    可以通过下面链接查看基于以太坊发行的代币

    https://www.etherscan.io

    截止5月28号,以太坊上有86928个基于CR20的代币的智能合约 。

    代币的标准接口

    摘要

    下面的标准允许在智能合约中为代币的实现提供标准的API,该标准提供了转移代币的基本功能,并允许代币被批准,以便其他链上第三方可以使用它们。

    标准接口可以让Ethereum上的任何令牌被其他应用程序重新使用:从钱包到去中心化交易。

    所有的ERC20代币都是按照下面这些方法来定义的。下面我们讲解一下每个方法的作用。

    接口

    name

    返回string类型的ERC20代币的名字,例如:MyToken

    可选 - 此方法可用于提高可用性,但接口和其他合同不能期望这些值存在。

    symbol

    function  symbol()  constant  returns (string symbol)

    返回string类型的ERC20代币的符号,也就是代币的简称,例如:HIX。

    可选 - 此方法可用于提高可用性,但接口和其他合同不能期望这些值存在。

    decimals

    function  decimals()  constant  returns (uint8 decimals)

    代币支持几位小数点后几位。如果设置为3。也就是支持0.001表示。

    可选 - 此方法可用于提高可用性,但接口和其他合同不能期望这些值存在。

    totalSupply

    function totalSupply()  constant  returns  (uint256 totalSupply)

    发行代币的总量,totalSupply必须设置初始值。

    balanceOf

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

    输入地址,可以获取该地址代币的余额。

    transfer

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

    转账_value个代币到_to地址,并且必须触发Transfer事件。 

    注意0值的传输必须视为正常传输并触发传输事件。

    approve

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

    批准_spender从自己的账户转移_value个代币。可以分多次转移。

    transferFrom

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

    从_from转账_value个代币到_to地址,并且必须触发Transfer事件。

    与approve搭配使用,approve批准之后,调用transferFrom函数来转移token。

    注意0值的传输必须视为正常传输并触发传输事件。

    allowance

    function  allowance(address _owner, address _spender)  constant  returns  (uint256 remaining)

    返回_spender还能提取token的个数。

    approve、transferFrom及allowance解释:

    账户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。

    Events

    Transfer

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

    当成功转移token时,一定要触发Transfer事件

    Approval

    event Approval(address indexed _owner, address indexed _spender, uint256 _value)

    当调用approval函数成功时,一定要触发Approval事件

    https://blog.csdn.net/diandianxiyu_geek/article/details/78082551?utm_source=gold_browser_extension

    相关文章

      网友评论

        本文标题:ERC20

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