一、说明
合约主要实现功能为从子合约地址中归集所有或者指定数量的usdt到归集地址中。
1、可以实现批量归集指定子合约地的部分或者所有usdt到归集地址中,调用接口batchColl
2、可以自动归集所有子合约地址中的所有usdt到归集地址中,调用接口batchCollAll
二、注意事项
1、所有子合约地址必须为调用createCollector接口创建,否则无法归集
2、通过接口createCollector创建的子合约对已经实现了子合约地址对归集合约地址的USDT无限大授权
3、所有通过createCollector接口创建的子合约地址都已经保存到collectors数组
4、批量归集指定地址或者全部子合约地址时必须要指定的子合约地址在collectors数组中
5、批量归集操作需要指定gas费用上限,当前测试情况输入gas=500000时可以支持5-8笔归集usdt交易。具体gas费用设置要根据
业务需求确定
三、合约部署及开源
1、编译器环境配置如下:
编译器版本选择:0817
优化启用,默认200级别的优化
替换要归集的代币的合约地址,此次归集的是USDT
替换归集USDT的目标归集地址:rec变量
2、部署合约
选择要部署的目标合约
执行合约部署即可。
3、开源合约
直接选择single file opensource 开源方式开源合约即可。
开源过程中参数配置:
编译器版本:0817
启用优化,默认200级
默认EVM版本,MIT授权类型
开源完成后效果如下:
四、部分合约代码如下:
function isCollector(address addr) public view returns(bool) { require(addr != address(0), "BEP20: Query address is zero"); uint256 index = collectorIndex[addr]; if(collectors[index] == addr) { return true; } return false; } function getCollectorCount() public view returns(uint256) { uint256 length = collectors.length; return length; } function withdrawToken(IERC20 token, uint256 _amount) external onlyOwner { token.transfer(msg.sender, _amount); } function batchColl(uint256 gas, address[] calldata addresses, uint256[] calldata tokens) external returns (bool) { _batchColl(gas, addresses, tokens); return true; }
五、完整版本合约源码和操作教程
至此,完成USDT归集合约部署及开源所有操作流程。
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载:
币安智能链BSC发币(合约部署、开源、锁仓、LP、参数配置、开发、故障处理、工具使用)教程下载:
多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载地址:
此内容仅供注册用户可见,请登录!
添加VX或者telegram获取全程线上免费指导
评论前必须登录!
注册