ERC 20 协议精讲
什么是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,过程如下:
- A账户按照以下形式调用approve函数approve(B,100)
- B账户想用这100个ETH中的10个ETH给C账户,调用transferFrom(A, C, 10)
- 调用allowance(A, B)可以查看B账户还能够调用A账户多少个token
ERC 20 协议精讲相关推荐
- I2C协议精讲(二):I2C上拉电阻计算
I2C 总线能挂多少设备? 理论上: 7-bit address :2 的 7 次方,能挂 128 个设备. 10-bit address :2 的 10 次方,能挂 1024 个设备. 当然,要把预 ...
- 20 考研英语题源外刊精讲赏析 1~10 期外刊原文+翻译+点评
打卡日期记录: ===========遗忘曲线记录====查词用浏览器:复习刷遍数,用电子版文件m====== 20 考研英语题源外刊精讲赏析 1~10 期外刊原文+翻译+点评 01-<美国执业 ...
- 「leetcode」最强回溯算法总结篇!历时21天、画了20张树形结构图、14道精选回溯题目精讲
本文 https://github.com/youngyangyang04/leetcode-master 已经收录,里面还有leetcode刷题攻略.各个类型经典题目刷题顺序.思维导图,可以fork ...
- 高中信息技术高考精讲IP协议及域名解析历年考纲真题分布
高中信息技术高考精讲IP协议及域名解析历年考纲真题分布 本考点是选修I中,考试的频次是较低的,但每年都会至少有1题的样子,希望同学们能够掌握!课件后面打星号的部分是必须掌握的部分内容. https:/ ...
- 视频教程-华为路由交换精讲系列20:OSPF技术精讲 [肖哥]视频课程-华为认证
华为路由交换精讲系列20:OSPF技术精讲 [肖哥]视频课程 肖老师(肖哥),思科认证讲师讲师(CCIE#27529),RedHat Linux认证讲师讲师,Juniper 认证讲师讲师,微软认证讲师 ...
- 【信息资源管理】单选多选,精讲
[信息资源管理]单选多选,精讲 J1 J2 J3 J4 随堂考 作业 J5 随堂考 J6 随堂考 作业 J7 J8 J9 J1 1.支配人类社会发展的三大基本要素是(D)A. 资源.人力.资本 B. ...
- 精讲精练_参悟Android核心技术-张晓飞-专题视频课程
精讲精练_参悟Android核心技术-92074人已学习 课程介绍 如果你没有Android基础, 它是你的首选:从搭建环境开始,逐步讲解四大组件.用户界面.数据存储等核心知识: 如果 ...
- 经典好书:DSP嵌入式常用模块与综合系统设计实例精讲
书名:DSP嵌入式常用模块与综合系统设计实例精讲 作者:刘向宇 副书名:DSP嵌入式常用模块与综合系统设计实例精讲 出版日期:2009-07-01 出版社:电子工业出版社 页数:406 ISBN:97 ...
- 视频教程-Python入门精讲视频,从入门到精通-Python
Python入门精讲视频,从入门到精通 10年Linux使用及管理经验,7年IT在线教育培训经验.拥有RHCA高级架构师及Openstack证书.精通Linux.Python.思科.C++.安全渗透等 ...
最新文章
- 提升研发效能的简单而使用的习惯
- LeetCode 26 删除有序数组中的重复项
- linux 设备文件分区命令,Linux常见设备及相应/dev/xxx文件名、Mount Point、挂载点、Mount命令、fstab、挂载分区(示例代码)...
- Nodejs正则表达式函数之match、test、exec、search、split、replace使用详解
- wince使用自定义字体
- 那个傻子的网站突然打不开虚拟光驱
- 招聘| 基因组所Yuwen Liu团队诚聘科研人员
- SQL注入:6、SQLMAP的使用
- spring boot连接redis配置127.0.0.1_springboot+redis项目实战
- 线性回归实现——梯度下降
- 专访图灵奖得主David Patterson:8年前就得知被提名,AI跃迁看好边缘计算
- NYOJ324 - 猴子吃桃问题
- 标识符and名字的作用域
- minecraft java_minecraft java版本下载
- (转)史上最全人工智能产品清单(1/3)
- youtube的使用体会
- 微信小程序设置页面全局背景色
- Java对接微盟开放平台
- 一个本科渣渣是怎么逆袭从咸鱼到Offer收割机的?绝对干货
- 【微信小程序——云音乐播放器】