cryptocurrency - 具有空投功能的 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 合作吗?
解决方案
以太坊和币安智能链使用的代币标准略有不同,因此为以太坊虚拟机设计的大部分 Solidity 代码都需要进行细微更改,包括将提及的 IERC20 替换为 IBEP20 以及为 IBEP20 接口使用正确的 Solidity 文件。
如果您使用正确版本的 Solidity 编译器,它应该会告诉您代码是否需要进一步更改。对于现实生活中的测试,最好在币安智能链的测试网上测试代码。
推荐阅读
- java - 如何为这个基于文本的记忆匹配游戏实现一个选项来拥有多个尺寸的棋盘?
- ansible - 在存储库之间重用 Ansible playbook 逻辑
- python - 关于如何处理coco的测试数据集的问题
- javascript - aframe 分屏转单屏效果
- text - 将连字符字典批量导入 InDesign
- javascript - 如何使用 Puppeteer 执行 POST?
- javascript - 如何在角度的子子项中将编辑的值更改/返回为false
- r - 在 postResample 预测中返回 NA
- amazon-dynamodb - DynamoDb 使用 boto3 选择特定属性
- javascript - 如何在 Javascript 中从 JSON 文件中删除对象