什么是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. 提升研发效能的简单而使用的习惯
  2. LeetCode 26 删除有序数组中的重复项
  3. linux 设备文件分区命令,Linux常见设备及相应/dev/xxx文件名、Mount Point、挂载点、Mount命令、fstab、挂载分区(示例代码)...
  4. Nodejs正则表达式函数之match、test、exec、search、split、replace使用详解
  5. wince使用自定义字体
  6. 那个傻子的网站突然打不开虚拟光驱
  7. 招聘| 基因组所Yuwen Liu团队诚聘科研人员
  8. SQL注入:6、SQLMAP的使用
  9. spring boot连接redis配置127.0.0.1_springboot+redis项目实战
  10. 线性回归实现——梯度下降
  11. 专访图灵奖得主David Patterson:8年前就得知被提名,AI跃迁看好边缘计算
  12. NYOJ324 - 猴子吃桃问题
  13. 标识符and名字的作用域
  14. minecraft java_minecraft java版本下载
  15. (转)史上最全人工智能产品清单(1/3)
  16. youtube的使用体会
  17. 微信小程序设置页面全局背景色
  18. Java对接微盟开放平台
  19. 一个本科渣渣是怎么逆袭从咸鱼到Offer收割机的?绝对干货
  20. 【微信小程序——云音乐播放器】

热门文章

  1. 初识sed和gawk
  2. win 10 + vs2017+C++的运行环境练习的2048游戏(附源码)
  3. 协同过滤算法深入解析:构建智能推荐系统的核心技术
  4. 教你如何安装一个免费的专用Web服务器
  5. 使用`NewtonSoft.Json`的序列化与反序列化
  6. P2P流氓下载器绑定安装的软件卸载不了怎么办
  7. centos7 NTP服务器搭建
  8. 金融期货开户有什么用(期货开户支持哪些银行)
  9. java虚拟机类加载机制与反射全解
  10. 一种应用更广泛的DLL侧载方法