Solidity极简入门|第三十一讲:ERC20

22-10-18 22:00
阅读本文需 12 分钟
总结 AI 总结
看总结 收起

原文标题:《 Solidity 极简入门:31. ERC20 》 
原文作者:0xAA   


我在重新学 solidity,可以在最近的一个简单的白讲基础上,也写下今天的最新教程,供小大家使用(编程大另一个-另一个),每周更新 13。


所有代码和教程开源在 github:github.com/AmazingAng/WTFSolidity


这样,我们将介绍以太坊上的 ERC20 Token标准,并发行自己的测试 Token 。


ERC20


ERC20 是以太坊上的 Token 标准,来自 2015 年 11 月 V 神参与的 EIP20。它实现了 Token 流通的基本逻辑:


账户余额

转移

授权许可

Token 总流入

Token 任选信息():名称,代号,小数暴露 


IERC20


IERC20 是 ERC20 Token 标准的接口契约,规定了 ERC20 Token 需要实现的功能和事件。


事件


IERC20 定义了一个和 2 事件,分别在事件授权和授权时被释放 TransferApproval



函数


IERC20 定义了 6 一个功能,提供了一个转移 Token ,并获得批准,以便其他链上的基本使用。


totalSupply() 返回 Token 总流入  



balanceOf() 返回账户余额  



transfer() 转移  



allowance() 返回授权额度  



approve() 授权  



transferFrom() 授权许可  



实现 ERC20


现在写一个 ERC20,规定将我们 IERC20 简单实现的功能。


状态变量


我们需要通过状态变量来记录账户余额,其中授权和金额为 Token 类型,自动生成 balanceOf 一个同名函数,实现规定的,和。。allowancetotalSupplypublicgetterIERC20balanceOf()allowance()totalSupply()namesymboldecimals



函数


构造函数:初始化 Token 名称、代号。  



transfer() 函数 IERC20 中的 transfer 函数, Token 实现。调用方 amount 币会增加 Token 数量,接收方此函数相应的狗改土,加入、分红、抽奖等。  



approve() 函数:IERC20 的 approve 函数, Token 授权逻辑。被授权方 spender 可以控制授权方的 amount 数量的 Token 。  



transferFrom() 功能:IERC20 中的 transferFrom 函数,授权逻辑。被授权方将授权方实现 sender 的 amount 数量的 Token 授权给接收方 recipient。  



mint() 函数:铸造 Token 函数,不在 IERC20 标准中。这里为了方便,任何人都可以添加任意数量的 Token ,实际应用中会权限管理,只能 owner 铸造 Token :  



burn() 函数: Token 函数,不在 IERC20 标准中。  



发行 ERC20 Token


标准 ERC20,在 ETH 链上发行现在是我们最简单的 Token ,我们发行属于我们的第一个 Token 。


在 Remix 上编译 ERC20 好的合约中,在部署栏输入构造函数的参数,name_并且 symbol_都设置好 WTF,然后点击 transact 键进行部署。


部署合同


WTF 我们需要运行 mint() 函数来给自己铸造一些 Token 。点开 Deployed Contract 中的契约 ERC20,在 mint 函数那一栏输入并 100 点击 mint,为自己创造一个这样的代 100 币 WTF。


铸造 Token


利用我们 balanceOf() 函数来查询账户余额。输入当前的账户,可以查看我们的余额 100,成功。


余额查询


总结


在这一天讲,我们学习了以太坊上的 ERC20 标准实现,发行了我们的测试 Token 。2015 年底提出的 ERC20 Token 标准极大地降低了以太坊上发行 Token 的门槛,并开启了 ICO 在投资时,可以仔细阅读项目的 Token 契约,有效避免貔貅,增加投资成功率。


原文链接


欢迎加入律动 BlockBeats 官方社群:

Telegram 订阅群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方账号:https://twitter.com/BlockBeatsAsia

举报 纠错/举报
选择文库
新增文库
取消
完成
新增文库
仅自己可见
公开
保存
纠错/举报
提交