我正在创建自己的 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 合作吗?