首页 > 解决方案 > 具有空投功能的 BEP-20 智能合约

问题描述

我正在创建自己的 BEP20 代币,并希望实现一次将代币空投到多个地址的功能,以减少汽油费。用例将是在发布后向选定用户赠送免费代币。

这是我到目前为止的代码,但是它似乎缺少一些东西才能正常工作:

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 示例中的代码片段吗?他们会与 BEP20 合作吗?

标签: cryptocurrencybinancebinance-smart-chainbinance-chain

解决方案


以太坊和币安智能链使用的代币标准略有不同,因此为以太坊虚拟机设计的大部分 Solidity 代码都需要进行细微更改,包括将提及的 IERC20 替换为 IBEP20 以及为 IBEP20 接口使用正确的 Solidity 文件。

如果您使用正确版本的 Solidity 编译器,它应该会告诉您代码是否需要进一步更改。对于现实生活中的测试,最好在币安智能链的测试网上测试代码。


推荐阅读