原文标题:《 Solidity 极简入门:31. ERC20 》
原文作者:0xAA
我在重新学 solidity,可以在最近的一个简单的白讲基础上,也写下今天的最新教程,供小大家使用(编程大另一个-另一个),每周更新 13。
所有代码和教程开源在 github:github.com/AmazingAng/WTFSolidity
这样,我们将介绍以太坊上的 ERC20 Token标准,并发行自己的测试 Token 。
ERC20 是以太坊上的 Token 标准,来自 2015 年 11 月 V 神参与的 EIP20。它实现了 Token 流通的基本逻辑:
账户余额
转移
授权许可
Token 总流入
Token 任选信息():名称,代号,小数暴露
IERC20 是 ERC20 Token 标准的接口契约,规定了 ERC20 Token 需要实现的功能和事件。
IERC20 定义了一个和 2 事件,分别在事件授权和授权时被释放 TransferApproval
IERC20 定义了 6 一个功能,提供了一个转移 Token ,并获得批准,以便其他链上的基本使用。
totalSupply() 返回
Token
总流入
balanceOf() 返回账户余额
transfer() 转移
allowance() 返回授权额度
approve() 授权
transferFrom() 授权许可
现在写一个 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,在 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