博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ERC20 代币标准
阅读量:5863 次
发布时间:2019-06-19

本文共 4491 字,大约阅读时间需要 14 分钟。

hot3.png

pragma solidity ^0.4.20;// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.mdcontract NanToken {    //Token    //Methods    //NOTE: Callers MUST handle false from returns (bool success). Callers MUST NOT assume that false is never returned!    // 所有 returns (bool success) 的方法,都要考虑返回false的逻辑;    //name    //Returns the name of the token - e.g. "MyToken".    //    //OPTIONAL - This method can be used to improve usability, but interfaces and other contracts MUST NOT expect these values to be present.    function name() view returns (string name);    //symbol    //Returns the symbol of the token.E.g. "HIX".    //    //OPTIONAL - This method can be used to improve usability, but interfaces and other contracts MUST NOT expect these values to be present.    function symbol() view returns (string symbol);    //decimals    //Returns the number of decimals the token uses - e.g. 8, means to divide the token amount by 100000000 to get its user representation.    //    //OPTIONAL - This method can be used to improve usability, but interfaces and other contracts MUST NOT expect these values to be present.    // 精度    function decimals() view returns (uint8 decimals);    //totalSupply    //Returns the total token supply.    function totalSupply() view returns (uint256 totalSupply);    //balanceOf    //Returns the account balance of another account with address _owner.    // 总量    function balanceOf(address _owner) view returns (uint256 balance);    //transfer    //Transfers _value amount of tokens to address _to, and MUST fire the Transfer event. The function SHOULD throw if the _from account balance does not have enough tokens to spend.    //    //Note Transfers of 0 values MUST be treated as normal transfers and fire the Transfer event.    // 从当前地址转指定量到指定地址    // 若当前地址没有足够的余额,应该抛出异常    // 每次调用成功,哪怕数量是0,都必须触发 Transfer 事件;    function transfer(address _to, uint256 _value) returns (bool success);    //transferFrom    //Transfers _value amount of tokens from address _from to address _to, and MUST fire the Transfer event.    //    //The transferFrom method is used for a withdraw workflow, allowing contracts to transfer tokens on your behalf. This can be used for example to allow a contract to transfer tokens on your behalf and / or to charge fees in sub- currencies. The function SHOULD throw unless the _from account has deliberately authorized the sender of the message via some mechanism.    //    //Note Transfers of 0 values MUST be treated as normal transfers and fire the Transfer event.    // 用于提币逻辑;    // 每次调用成功必须触发 Transfer 事件;哪怕数量是0;    function transferFrom(address _from, address _to, uint256 _value) returns (bool success);    //approve    //Allows _spender to withdraw from your account multiple times, up to the _value amount. If this function is called again it overwrites the current allowance with _value.    //    //NOTE : To prevent attack vectors like the one described here[https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/] and discussed here[https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729], clients SHOULD make sure to create user interfaces in such a way that they set the allowance first to 0 before setting it to another value for the same spender. THOUGH The contract itself shouldn't enforce it, to allow backwards compatibility with contracts deployed before    // 允许指定的地址 分一次或多次从当前地址提币;若再次调用此方法,则重置数量    // 为避免攻击,客户端实现时应该先向某地址设置数量为0,再给相同的地址设置数量为 实际的数量;    // 这为了向后兼容之前部署的合约,虽然不是强制要求    function approve(address _spender, uint256 _value) returns (bool success);    //allowance    //Returns the amount which _spender is still allowed to withdraw from _owner.    // 查询 owner 授权给 spender 的剩余提币数量    function allowance(address _owner, address _spender) view returns (uint256 remaining);    //Events    //Transfer    //MUST trigger when tokens are transferred, including zero value transfers.    //    //A token contract which creates new tokens SHOULD trigger a Transfer event with the _from address set to 0x0 when tokens are created.    // token 被 成功 transfer 后,需要触发Transfer 事件,哪怕数量为0;    // 当创建一个新的token后,应该触发Transfer 事件,    event Transfer(address indexed _from, address indexed _to, uint256 _value);    //Approval    //MUST trigger on any successful call to approve(address _spender, uint256 _value).    // 每次approve方法被成功调用后,都必须触发 Approval事件;    event Approval(address indexed _owner, address indexed _spender, uint256 _value)};}

转载于:https://my.oschina.net/corleone/blog/1817025

你可能感兴趣的文章
C#异步调用
查看>>
阿里2015校招面试回忆录(成功拿到offer)
查看>>
Android Activity的生命周期
查看>>
linux find
查看>>
Android4.2以及最新SDK的尝鲜使用
查看>>
[大家谈谈] 13个在线接收短信的国外网站
查看>>
Atitit. Dwr 抛出异常error解决方案
查看>>
10分钟掌握XML、JSON及其解析
查看>>
FarBox的建站过程
查看>>
雷人的一幕:国外的codeproject论坛竟有人发“中文贴”.....
查看>>
iOS后台如何保持socket长连接和数据传输
查看>>
看看C# 6.0中那些语法糖都干了些什么(上篇)
查看>>
excel文件导入mysql
查看>>
php ut8声明
查看>>
C#实现浮动和多标签窗体解决方案---使用Dockpanel
查看>>
IE无法打开internet网站已终止操作的解决的方法
查看>>
二维码的生成细节和原理【转】
查看>>
Android 下载zip压缩文件并解压
查看>>
Windows Phone App的dump 文件分析
查看>>
Zen Coding support in WebStorm/PhpStorm
查看>>