Solidity极简入门|第三十二讲:Token水龙头_KEN:TOKE

我最近在重新学solidity,巩固一下细节,也写一个「Solidity极简入门」,供小白们使用,每周更新1-3讲。

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

我们在第31讲学习了ERC20Token标准。这一讲,我们将学习ERC20水龙头的智能合约。在这个合约中,用户可以领到免费的ERC20Token。

Token水龙头

当人渴的时候,就要去水龙头接水;当人想要免费Token的时候,就要去Token水龙头领。Token水龙头就是让用户免费领Token的网站/应用。

最早的Token水龙头是比特币水龙头:现在BTC一枚要$30,000,但是在2010年,BTC的价格只有不到$0.1,并且持有人很少。为了扩大影响力,比特币社区的GavinAndresen开发了BTC水龙头,让别人可以免费领BTC。撸羊毛大家都喜欢,当时就有很多人去撸,一部分变为了BTC的信徒。BTC水龙头一共送出了超过19,700枚BTC,现在价值约6亿美元!

数据:超5000枚DeGods已完成从Solana到以太坊迁移:金色财经报道,从美东时间本周五晚间9:30开始,目前已有超5000枚DeGods NFT完成了从Solana区块链到以太坊的迁移,相关公告称,Dust Labs将承担并支付启动迁移后24小时内所有与迁移相关的gas费用。另据加密KOL @Frankdegods透露,首个迁移到以太坊的DeGods NFT已经以11.1 ETH的价格售出,OpenSea数据显示,当前DeGods地板价为9.555 ETH。[2023/4/2 13:40:28]

ERC20水龙头合约

这里,我们实现一个简版的ERC20水龙头,逻辑非常简单:我们将一些ERC20Token转到水龙头合约里,用户可以通过合约的requestToken()函数来领取100单位的Token,每个地址只能领一次。

Solana基金会发布3月验证者健康报告:拟招募质押生态系统负责人:金色财经报道,Solana基金会官方发布2023年3月验证者健康报告,其中指出Solana是目前世界上节点数最多的权益证明网络之一,也是中本聪系数分布最多的网络之一,全球分布3000多个共识和RPC节点。此外,Solana基金会表示作为一个多验证者客户端网络,目前已有两个客户端投产运行,第三个客户端正在开发中。在过去的120天里,来自多个组织的104位核心贡献者向Solana网络的Github提供支持,Solana基金会还透露将会招募一位质押生态系统负责人。[2023/3/24 13:22:56]

状态变量

我们在水龙头合约中定义3个状态变量

amountAllowed设定每次能领取Token数量。

tokenContract记录发放的ERC20Token合约地址。

Solana生态现金流协议Zebec宣布通过Wormhole扩展至BNB Chain:9月27日消息,Solana生态现金流协议Zebec宣布通过Wormhole扩展至BNB Chain,跨链扩展正在开发和测试。未来Zebec用户将能够在交易中使用来自 BNB Chain 的代币。

据悉,Zebec作为Solana上可编程的多签资管和流式支付协议,支持以实时和连续支付的方式发送资金,可用于工资单、投资等场景,旨在帮助人们以流支付形式获取报酬、购买产品及服务。此前8月份Zebec以10亿美元估值完成850万美元融资,Circle Ventures等参投。[2022/9/27 22:33:29]

requestedAddress记录领取过Token的地址。??

欧科云链OKLink上线Solana区块链浏览器:5月23日消息,欧科云链 OKLink 宣布上线Solana区块链浏览器,成首款提供中文界面的Solana浏览器。新上线的Solana浏览器,提供六大账户分类展示,支持全部交易行为解析。

作为OKLink区块链浏览器15条公链中第一个支持Account模型中非EVM系的公链,Solana浏览器不仅支持链上数据查询,还提供了交易概览、链上概要、区块信息、供应量等关键性数据。

据悉,OKLink区块链浏览器此前已支持BTC、ETH、BSC、Polygon等多个主流公链数据查询与检索,并提供链上全周期、多维度的数据指标。[2022/5/23 3:35:50]

事件

水龙头合约中定义了1个SendToken事件,记录了每次领取Token的地址和数量,在requestTokens()函数被调用时释放。

函数

合约中只有两个函数:

构造函数:初始化tokenContract状态变量,确定发放的ERC20Token地址。??

requestTokens()函数,用户调用它可以领取ERC20Token。

Remix演示

1首先,部署ERC20Token合约,并给自己mint?10000单位Token。

部署`ERC20`

2部署Faucet水龙头合约,初始化的参数填上面ERC20Token的合约地址。

部署水龙头合约

3利用ERC20Token合约的trasnfer()函数,将10000单位Token转账到Faucet合约地址。

给水龙头转账

4换一个新账户,调用Faucet合约requestTokens()函数,领取Token。可以在终端看到SendToken事件被释放。

领取Token

5在ERC20Token合约上利用balanceOf查询账户余额,可以看到余额变为100,领取成功!

领取成功

总结

这一讲,我们介绍了Token水龙头的历史和ERC20水龙头合约。大家觉得下一个BTC水龙头会在哪里?

原文标题:《Solidity极简入门:32.Token水龙头》

原文作者:0xAA??

来源:区块律动

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:0ms0-0:985ms