具有空投功能的 BEP-20 智能合约
Posted
技术标签:
【中文标题】具有空投功能的 BEP-20 智能合约【英文标题】:BEP-20 smart contract with airdrop feature 【发布时间】:2021-07-22 18:22:35 【问题描述】:我正在创建自己的 BEP20 代币,并希望实现一次将代币空投到多个地址的功能,以降低 gas 费用。用例将是在发布后向选定用户赠送免费代币。
这是我目前拥有的代码,但似乎缺少一些东西才能正常工作:
contract Airdrop is Ownable
IERC20 token;
struct PaymentInfo
address payable payee;
uint256 amount;
constructor(address _token) public
token = IERC20(_token);
function batchPayout(PaymentInfo[] calldata info) external onlyOwner
for (uint i=0; i < info.length; i++)
token.transfer(info[i].payee,info[i].amount);
function transfer(address to, uint256 amount) external onlyOwner
token.transfer(to, amount);
我可以使用 ERC20 示例中的代码 sn-ps 吗?他们会与 BEP20 合作吗?
【问题讨论】:
【参考方案1】:以太坊和币安智能链使用的代币标准略有不同,因此为以太坊虚拟机设计的大部分 Solidity 代码都需要进行细微更改,包括将提及的 IERC20 替换为 IBEP20 以及为 IBEP20 接口使用正确的 Solidity 文件。
如果您使用正确版本的 Solidity 编译器,它应该会告诉您代码是否需要进一步更改。实际测试,最好在币安智能链测试网测试代码。
【讨论】:
【参考方案2】:您不需要在令牌本身中包含批量发送。由于智能合约是可组合的,因此存在可以代表任何代币批量发送的第三方智能合约。
使用开源智能合约的一个示例服务是Token BulkSender。批量发送智能合约的来源是here。
【讨论】:
以上是关于具有空投功能的 BEP-20 智能合约的主要内容,如果未能解决你的问题,请参考以下文章