什么是ERC 20 协议:

ERC20的标准接口是这样的:
contract ERC20 {function name() constant returns (string name)function symbol() constant returns (string symbol)function decimals() constant returns (uint8 decimals)function totalSupply() constant returns (uint totalSupply);function balanceOf(address _owner) constant returns (uint balance);function transfer(address _to, uint _value) returns (bool success);function transferFrom(address _from, address _to, uint _value) returns (bool success);function approve(address _spender, uint _value) returns (bool success);function allowance(address _owner, address _spender) constant returns (uint remaining);event Transfer(address indexed _from, address indexed _to, uint _value);event Approval(address indexed _owner, address indexed _spender, uint _value);}

下面对上面的内容做一个简单的解释:

  • name

返回ERC20代币的名字,例如”My test token”。

  • symbol

返回代币的简称,例如:MTT,这个也是我们一般在代币交易所看到的名字。

  • decimals

返回token使用的小数点后几位。比如如果设置为3,就是支持0.001表示。

  • totalSupply

返回token的总供应量

  • balanceOf

返回某个地址(账户)的账户余额

  • transfer

从代币合约的调用者地址上转移_value的数量token到的地址_to,并且必须触发Transfer事件。

  • transferFrom

从地址_from发送数量为_value的token到地址_to,必须触发Transfer事件。transferFrom方法用于允许合同代理某人转移token。条件是from账户必须经过了approve。这个后面会举例说明。

  • approve

允许_spender多次取回您的帐户,最高达_value金额。 如果再次调用此函数,它将以_value覆盖当前的余量。

  • allowance

返回_spender仍然被允许从_owner提取的金额。

后面三个方法不好理解,这里还需要补充说明一下: approve是授权第三方(比如某个服务合约)从发送者账户转移代币,然后通过 transferFrom() 函数来执行具体的转移操作。

举例说明,如果账户A有1000个ETH,想允许B账户随意调用他的100个ETH,过程如下:

  1. A账户按照以下形式调用approve函数approve(B,100)
  2. B账户想用这100个ETH中的10个ETH给C账户,调用transferFrom(A, C, 10)
  3. 调用allowance(A, B)可以查看B账户还能够调用A账户多少个token

ERC 20 协议精讲相关推荐

  1. I2C协议精讲(二):I2C上拉电阻计算

    I2C 总线能挂多少设备? 理论上: 7-bit address :2 的 7 次方,能挂 128 个设备. 10-bit address :2 的 10 次方,能挂 1024 个设备. 当然,要把预 ...

  2. 20 考研英语题源外刊精讲赏析 1~10 期外刊原文+翻译+点评

    打卡日期记录: ===========遗忘曲线记录====查词用浏览器:复习刷遍数,用电子版文件m====== 20 考研英语题源外刊精讲赏析 1~10 期外刊原文+翻译+点评 01-<美国执业 ...

  3. 「leetcode」最强回溯算法总结篇!历时21天、画了20张树形结构图、14道精选回溯题目精讲

    本文 https://github.com/youngyangyang04/leetcode-master 已经收录,里面还有leetcode刷题攻略.各个类型经典题目刷题顺序.思维导图,可以fork ...

  4. 高中信息技术高考精讲IP协议及域名解析历年考纲真题分布

    高中信息技术高考精讲IP协议及域名解析历年考纲真题分布 本考点是选修I中,考试的频次是较低的,但每年都会至少有1题的样子,希望同学们能够掌握!课件后面打星号的部分是必须掌握的部分内容. https:/ ...

  5. 视频教程-华为路由交换精讲系列20:OSPF技术精讲 [肖哥]视频课程-华为认证

    华为路由交换精讲系列20:OSPF技术精讲 [肖哥]视频课程 肖老师(肖哥),思科认证讲师讲师(CCIE#27529),RedHat Linux认证讲师讲师,Juniper 认证讲师讲师,微软认证讲师 ...

  6. 【信息资源管理】单选多选,精讲

    [信息资源管理]单选多选,精讲 J1 J2 J3 J4 随堂考 作业 J5 随堂考 J6 随堂考 作业 J7 J8 J9 J1 1.支配人类社会发展的三大基本要素是(D)A. 资源.人力.资本 B. ...

  7. 精讲精练_参悟Android核心技术-张晓飞-专题视频课程

    精讲精练_参悟Android核心技术-92074人已学习 课程介绍         如果你没有Android基础, 它是你的首选:从搭建环境开始,逐步讲解四大组件.用户界面.数据存储等核心知识: 如果 ...

  8. 经典好书:DSP嵌入式常用模块与综合系统设计实例精讲

    书名:DSP嵌入式常用模块与综合系统设计实例精讲 作者:刘向宇 副书名:DSP嵌入式常用模块与综合系统设计实例精讲 出版日期:2009-07-01 出版社:电子工业出版社 页数:406 ISBN:97 ...

  9. 视频教程-Python入门精讲视频,从入门到精通-Python

    Python入门精讲视频,从入门到精通 10年Linux使用及管理经验,7年IT在线教育培训经验.拥有RHCA高级架构师及Openstack证书.精通Linux.Python.思科.C++.安全渗透等 ...

最新文章

  1. 设置腾讯云linux服务器中 MySQL 允许远程访问
  2. 单片机c语言 openssl,Linux下C语言使用openssl库进行加密
  3. flink on yarn shell的session cluster模式实验记录
  4. 如何下载coursera视频
  5. 又一国产手机宣布“退出群聊” 小米接盘:曾令万千女性着迷!
  6. 记一份电网信息化建设企业信息分析平台规划
  7. 信息化和信息系统-PMP
  8. 创建mysql表sql语句_mysql创建表的sql语句
  9. PMP-项目沟通管理
  10. uc极度精简版_UC浏览器安卓版-UC浏览器(UCBrowser)12.0.4.987 去广告精简版-东坡下载...
  11. s l m 尺码排序 php,尺码中LS是什么码?比M码大吗?还是说比S码还小?
  12. UltraLAB台式图形工作站(并行计算高效王~高性能计算工作站EX620i介绍)
  13. 逻辑架构和物理架构在架构设计中的应用
  14. 科里奥利力的物理理解、推导与加速度变换
  15. 127.0.0.1 zxt.php_shmilyzxt/
  16. 51单片机多路独立按键开关程序
  17. MATLAB绘制小胖墩
  18. 多可文档管理的数据备份
  19. 【排序】详细聊聊归并排序(含非递归)
  20. 华擎j3455装服务器系统,华擎J3455M主板u盘重装系统win8教程

热门文章

  1. 艾默生流量计在流量测量上显出巨大的潜力
  2. 【困惑】为何他周末不加班
  3. spring学习之将类交给spring管理,bean的注入,scope,集合注入,自动装配,生命周期,迟加载
  4. 浅谈文本生成或者文本翻译解码策略
  5. 手机html5测试苹果八,iPhone8和iPhone8 Plus哪个更值得买?苹果8和苹果8plus全面对比深度评测...
  6. Axure中移动端原型设计方法(附IPhoneX和IPhone8最新模板)
  7. 小程序右上角分享按钮
  8. python3分析《全唐诗》写诗最勤奋的10名诗人
  9. 纯Delphi开发微信电子工资条
  10. 《城市规划》(清华谭纵波著)读书笔记之第二部分