原文標題:《 Solidity 極簡入門: 33. 空投合約 》
原文作者: 0xAA
我最近在重新學 solidity,鞏固一下細節,也寫一個「Solidity 極簡入門」,供小白們使用(編程大佬可以另找教程),每週更新 1-3 講。
所有代碼和教程開源在 github : github.com/AmazingAng/WTFSolidity
在幣圈,最開心的一件事就是領空投,空手條白狼。這一講,我們將學習如何使用使用智能合約空投 ERC20 Token。
空投是幣圈中一種營銷策略,項目方將 Token 免費發放給特定用戶群體。為了拿到空投資格,用戶通常需要完成一些簡單的任務,如測試產品、分享新聞、介紹朋友等。項目方通過空投可以獲得種子用戶,而用戶可以獲得一筆財富,兩全其美。
因為每次接收空頭的用戶很多,項目方不可能一筆一筆的轉賬。利用智能合約批量發放 ERC20 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