一、准备
该合约主要功能包括:复利方式的持币分红,自动加池回流LP到黑洞地址,营销钱包,燃烧通缩,具体模式说明如下:
1、复利模式的持币分红,每15分红复利一次,24小时复利1%,初始发行量200万,复利至总量达到1亿或者开盘720天后停止复利。
2、交易手续费扣除部分用于自动加池,当合约地址中转数量达到200枚时,触发自动加池,返回的LP自动锁定到黑洞地址。
3、扣除交易手续费实时转入营销钱包地址,买入单独转入一个钱包地址,卖出和转账单独转入一个钱包地址。
4、燃烧部分交易手续费到dead的黑洞地址,因为不存在代币的销毁,故无需设置最大停止燃烧总量。
5、开盘前一小时内单个钱包地址买入代币总量不超过2000个
6、合约部署完成后,需要先设置开盘时间,否则代币不允许线上(pancakeswap)交易,无论是否设置了开盘时间,以及是否达到开盘时间都不限制线下钱包转账。
7、因为_lastRebasedTime变量每次保存的都是该次重基成功后的时间,首次重基时间没有单独的初始化接口,是在设置开盘时间接口同步设置了_lastRebasedTime变量为开盘时间。因此,合约部署成功后必须执行 setStartTime 函数,目的是设置开盘交易时间,同时设置_lastRebasedTime参数的值,如果不执行 setStartTime 函数,就永远不会复利。
8、因为存在自动加池功能,因此必须同时存在BNB和USDT的交易对,如果缺少BNB的交易对,只有USDT交易对,触发自动加池的动作会失败,无法实现自动加池功能。因此,必须同时添加BNB和USDT的交易对。
9、添加BNB和USDT的交易对的顺序为:先添加BNB的交易对,再添加USDT的交易对,切勿颠倒顺序!一旦顺序颠倒可能会出现先添加USDT的交易对成功,但是添加BNB的交易对时失败的情况。如果出现该情况,需要在区块链浏览器执行函数 setSwapAndLiquifyEnabled 设置变量 swapAndLiquifyEnabled 为false,关闭全局自动加池功能,再次添加BNB的交易对就成功了。添加完两种交易对时,别忘记打开swapAndLiquifyEnabled 开关,置为true
9、添加BNB和USDT的交易对的顺序为:先添加BNB的交易对,再添加USDT的交易对,切勿颠倒顺序!一旦顺序颠倒可能会出现先添加USDT的交易对成功,但是添加BNB的交易对时失败的情况。如果出现该情况,需要在区块链浏览器执行函数 setSwapAndLiquifyEnabled 设置变量 swapAndLiquifyEnabled 为false,关闭全局自动加池功能,再次添加BNB的交易对就成功了。添加完两种交易对时,别忘记打开swapAndLiquifyEnabled 开关,置为true
10、添加完流动性后,要开启局部自动加池的开关,执行函数 setLiquifyEnabled ,设置变量 liquifyEnabled 为true,才能开启自动加池功能。
二、合约部署
1、配置编译器相关的参数
a. 选择编译器版本:0815
b. 选择启用优化,默认200节点
c. 其他参数配置,保持默认值即可,无需改动
2、编译合约文件
合约文件主要有IERC20、Context、Ownable、Address、IERC20Metadata、IUniswapV2Factory、IUniswapV2Pair、IUniswapV2Router01、IUniswapV2Router02、SafeMath、CITTProtocol组成。
按照以下顺序编译合约文件:
IERC20.sol SafeMath.sol Context.sol Ownable.sol Address.sol IERC20Metadata.sol IUniswapV2Factory.sol IUniswapV2Pair.sol IUniswapV2Router01.sol IUniswapV2Router02.sol CITTProtocol.sol
3、部署合约
在部署合约时要传递给合约构造函数参数,截图如下
主要参数如下
a. 初始发行总量:2000000
b. USDT合约地址:0x55d398326f99059fF775485246999027B3197955
c. 买入时手续费回流的营销钱包地址
d. 卖出和转账时回流的营销钱包地址
e. 薄饼LP路由地址:0x10ED43C718714eb63d5aA57B78B54704E256024E
确定构造函数参数输入无误后,点击transact按钮,开始部署合约。
4、合约部署完成后,去链上查询合约部署详情
根据hash值,查询合约部署详情
5、metamask钱包添加代币
三、核心代码解析
1、复利功能核心代码如下:
function _rebase(address from) private { if ( _totalSupply < MAX_SUPPLY && from != uniswapV2PairUSDT && !lock && _lastRebasedTime > 0 && block.timestamp >= (_lastRebasedTime + 15 minutes) && block.timestamp < (startTime + 720 days) ) { uint256 deltaTime = block.timestamp - _lastRebasedTime; uint256 times = deltaTime / (15 ); uint256 epoch = times * 15; for (uint256 i = 0; i < times; i++) { _totalSupply = _totalSupply * (10 ** 8 + rebaseRate); } _gonsPerFragment = TOTAL_GONS ; _lastRebasedTime = _lastRebasedTime + times * 15 minutes; emit LogRebase(epoch, _totalSupply); } }
2、自动添加USDT的交易对流动性如下:
function swapAndERC20Liquify(uint256 contractTokenBalance) private lockTheSwap { uint256 addNumber = contractTokenBalance; uint256 half = addNumber.div(2); uint256 otherHalf = addNumber.sub(half); uint256 initialBalance = IERC20(_usdt).balanceOf(address(this)); swapTokensForUsdt(half); uint256 newBalance = IERC20(_anyERC20Token).balanceOf(address(this)).sub(initialBalance); if (liquifyEnabled) { addLiquidityUsdt(otherHalf, newBalance); } emit SwapAndLiquify(half, newBalance, otherHalf); }
四、完整版本合约源代码如下
该合约部署、动态参数配置、添加流动性及相关注意事项操作流程教程如下:
至此,完成remix+metamask编译并部署合约到BSC主网所有操作流程。
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载:
多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载地址:
此内容仅供注册用户可见,请登录!
添加VX或者telegram获取全程线上免费指导
评论前必须登录!
注册