Solidity极简入门|第三十三讲:空投合约

22-12-01 22:00
阅读本文需 7 分钟
总结 AI 总结
看总结 收起
原文标题:《 Solidity 极简入门: 33. 空投合约 》
原文作者: 0xAA  


我最近在重新学 solidity,巩固一下细节,也写一个「Solidity 极简入门」,供小白们使用(编程大佬可以另找教程),每周更新 1-3 讲。


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


在币圈,最开心的一件事就是领空投,空手条白狼。这一讲,我们将学习如何使用使用智能合约空投 ERC20 Token。


空投 Airdrop


空投是币圈中一种营销策略,项目方将 Token 免费发放给特定用户群体。为了拿到空投资格,用户通常需要完成一些简单的任务,如测试产品、分享新闻、介绍朋友等。项目方通过空投可以获得种子用户,而用户可以获得一笔财富,两全其美。


因为每次接收空头的用户很多,项目方不可能一笔一笔的转账。利用智能合约批量发放 ERC20 Token ,可以显著提高空投效率。


空投 Token 合约


Airdrop 空投合约逻辑非常简单:利用循环,一笔交易将 ERC20 Token 发送给多个地址。合约中包含两个函数


getSum() 函数:返回 uint 数组的和。  



multiTransferToken() 函数:发送 ERC20 Token 空投,包含三个参数:


_token: Token 合约地址(address 类型)

_addresses:接收空投的用户地址数组(address[] 类型)

_amounts:空投数量数组,对应_addresses 里每个地址的数量(uint[] 类型)


该函数有两个检查:第一个 require 检查了_addresses 和_amounts 两个数组长度是否相等;第二个 require 检查了空投合约的授权额度大于要空投的 Token 数量总和。



空投实践


1 部署 ERC20 Token 合约,并给自己 mint 10000 单位 Token 。


部署 ERC20


2 部署 Airdrop 空投合约。


部署 Airdrop


3 利用 ERC20 Token 合约中的 approve() 函数,给 Airdrop 空投合约授权 10000 单位 Token 。


授权


4 执行 Airdrop 合约的 multiTransferToken() 函数进行空投, _token 填 ERC20 Token 地址,_addresses 和_amounts 按照以下填写



执行空投


5 利用 ERC20 合约的 balanceOf() 函数查询上面用户地址的 Token 余额,成功变为 100 和 200,空投成功!



总结


这一讲,我们介绍了如何使用 solidity 写 ERC20 Token 空投合约,极大增加空投效率。我撸空投收获最大的一次是 ENS 空投,你们呢?


原文链接


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

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

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

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

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