不以规矩,不能成方圆

许多人应该都听过 代码即法律(Code Is Law),因为程序写完了,无论执行多少次都会得到同样的结果,除非有外界因素的干扰。在多人协作的过程中一定是要按照一个标准来进行分工,这样才能最快的完成整体任务,不至于出错。

接触过数字货币的人都应该知道,以太坊是一个分布式的智能合约平台,可以分发代币(Token)。目前以太坊上有24351个代币的智能合约,我们可以在以太坊区块链浏览器中查看https://www.etherscan.io

TOKEN.png

如果这么多代币的标准不统一,对于其他人来查看代码是相当痛苦的,众筹的人也就没有办法来检查代币分发的是否合理,也没有办法做到多种钱包的兼容。

所以才推出了一种以太坊代币的标准:ERC20标准。

ERC20标准涵盖了哪些内容?

Method

在Method目录下面我们可以看到一些方法,所有的ERC20代币都是按照下面这些方法来定义的。下面我们讲解一下每个方法的作用。

name

function name() constant returns (string name)

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

symbol

function symbol() constant returns (string symbol)

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

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)

调用transfer函数将自己的token转账给_to地址,_value为转账个数

approve

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

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

transferFrom

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

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

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事件

总结

如果项目方要在以太坊上发行代币来进行融资,一定会按照这个标准来实现相应的函数。

以太坊代码标准是什么_以太坊:什么是ERC20标准?相关推荐

  1. 以太坊代币事件监控_以太坊:什么是ERC20标准?

    不以规矩,不能成方圆 许多人应该都听过 代码即法律(Code Is Law),因为程序写完了,无论执行多少次都会得到同样的结果,除非有外界因素的干扰.在多人协作的过程中一定是要按照一个标准来进行分工, ...

  2. 以太坊区块链也拥堵_以太坊开发人员怀疑EOS刻意拥堵网络,ETH和EOS大战即将开启?...

    原标题:以太坊开发人员怀疑EOS刻意拥堵网络,ETH和EOS大战即将开启? DappVision|7月16日 星期一 [行情] BTC 现价 ¥¥42,594.44 涨跌幅 1.57% ETH 现价 ...

  3. 以太坊代码标准是什么_以太坊的包容性开发语言里到底藏着什么秘密?

    Solidity 是一门面向合约的.为实现智能合约而创建的高级编程语言.这门语言受到了 C++,Python 和Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行. Sol ...

  4. 以太坊代币事件监控_以太坊程序员的常见误解

    最近,我偶然读到了一篇题为<程序员关于时区的误解>的文章,让我爆笑不已.这篇文章让我想到了程序员在其它方面的误解,如人名和时间,于是我开始寻找有没有关于以太坊的.奈何寻觅无果,我只得尽自己 ...

  5. 以太坊2.0怎么挖矿_以太坊2.0即将上线 现在正是挖矿红利期 普通人如何参与挖矿?...

    以太坊2.0 吹响牛市号角!以太坊从诞生至今,共经历了四个阶段,分别是Frontier.Homestead.Metropolis和Serenity,此次以太坊升级疏于第四阶段Serenity,其中最核 ...

  6. 以太坊区块链也拥堵_以太坊开发人员:EOS刻意拥堵以太坊网络 推高交易费到1美元...

    金色财经 比特币7月16日讯根据一些DApp开发人员表示,EOS正在攻击以太坊,试图将交易费提高到1美元.据悉,相关开发人员指责EOS通过随机代币"空投"造成以太坊网络堵塞,而且这 ...

  7. vscode 标准库位置_如何在VSCode中使用标准

    vscode 标准库位置 I use Visual Studio Code as my text editor. When I write JavaScript, I follow JavaScrip ...

  8. stl标准模板库_如何在C ++ STL(标准模板库)中使用Pair

    stl标准模板库 In this article, we'll take a look at using pair in C++ Standard Template Library (STL). 在本 ...

  9. 深入了解ERC-20标准,以太坊通证的过去与未来

    译者 / blockgeeks 编辑 / guoxi 人们常说:"钱不是万能的,但没钱是万万不能的".在某种程度上,经济基础影响甚至是决定了开源应用的发展. 就拿以太坊来说,以太坊 ...

最新文章

  1. Jackson 框架使用说明,轻易转换JSON【转】
  2. webBrowser1_DocumentCompleted不停被调用
  3. nutch的index-writers.xml
  4. How do I sort groups of data items?(WPF)
  5. vue路由守卫判断用户是否登录,如果没登陆就跳转到登录
  6. struts2.1.6教程二、struts.xml配置及例程
  7. 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构与算法:三十张图弄懂「图的两种遍历方式」...
  8. js 对一个字段去重_js正则去重及(?=)的匹配规则
  9. 白盒测试之语句覆盖案例
  10. 详解:Hive的MetaStore和三种配置方式
  11. Linux与FreeBSD的多网卡绑定增加服务器流量
  12. 场景分析:用户登录界面场景分析
  13. 从零开始学习Qt GUI编程
  14. 计算机原理74181芯片,计算机组成原理
  15. Word多级列表不显示和奇数页显示章节标题问题
  16. 打jar包和使用jar包
  17. 在Harvester上安装windows sever 2012 r2
  18. Oracle 自动存储管理 (ASM)
  19. spring 启动日志报 DEBUG BeanNameUrlHandlerMapping:86 - Rejected bean name 'org.springframework.web.servl
  20. system(“pause“);

热门文章

  1. mysql 存储过程创建以及调用
  2. 学习C语言必须知道的理论知识(第三章-C语句)
  3. jvm学习笔记(4)——jvm配置调优
  4. 算法高级(18)-Redis Cluster选举机制
  5. ACKRec:注意力异构图卷积深度知识推荐器 SIGIR 2020
  6. Transformer-XL语言模型:超长上下文依赖
  7. 题目2 : 回文字符序列(区间DP)
  8. 华为荣耀鸿蒙系统升级名单,华为鸿蒙系统正式版首批升级名单公布:这8款机型用户有福了...
  9. Citrix XenApp 5.0 Uninstall
  10. [memory]虚拟地址空间分布