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

我最近在重新学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亿美元!

链游Earth From Another Sun完成450万美元融资,Solana Ventures等参投:6月16日消息,太空沙盒链游Earth From Another Sun(EFAS)宣布完成450万美元融资,本轮融资Solana Ventures、Alameda Research和Lightspeed等参投。融资将用于支持进一步开发。

据悉,EFAS团队成员来自Riot Games、Gameloft、Disney Interactive、Kylotonn、IGG和Perfect World等业内知名游戏公司和项目,目前这款游戏已经获得了超过10000名付费封闭alpha玩家。(VentureBeat)[2022/6/16 4:32:53]

ERC20水龙头合约

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

Andre Cronje新项目Solidly锁仓量已达3.47亿美元:2月24日消息,据Solidly官方数据显示,当前Solidly锁仓量已经达到3.47亿美元,涨幅达1013.14%,24小时交易量达83,456,486美元,涨超1270%。

此前报道,Andre Cronje的新项目Solidly是Fantom上的DEX类项目,目前网络仍在测试中。[2022/2/24 10:13:04]

状态变量

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

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

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

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

Solana 生态跨链互操作性协议 Wormhole 支持币安智能链:10月12日消息,Solana 生态跨链互操作性协议 Wormhole 宣布支持币安智能链(BSC),用户可在 Solana、以太坊和 BSC 之间无缝转移代币和 NFT。团队表示,Wormhole 的以太坊和 Solana 跨链桥自 9 月推出以来,总锁仓价值(TVL)已达 2 亿美元,100 多个 NFT 已通过跨链桥进行转移。[2021/10/12 20:22:13]

事件

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

动态 | A网(AEX)平台已被行情数据平台SOSOLX收录:官方消息,A网(AEX)交易所与行情数据平台SOSOLX达成战略合作,AEX交易所已被SOSOLX行情数据平台收录,用户可通过SOSOLX查看AEX交易所实时行情数据。

SOSOLX是一家专业的全球数字货币市场数据提供商。

据悉,A网(AEX)是一家六年资深老牌交易所,平台持仓资金流向公开透明,实行100%准备金制度,拥有理财超市、抵押借币、算力商城等金融服务。[2019/12/9]

函数

合约中只有两个函数:

构造函数:初始化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:62ms0-0:923ms