一、准备
该合约案例模式是添加流动性获得分红本币,并且是按照添加流动性获得的LP权重来分红本币;通缩燃烧至指定数量的代币停止燃烧;四代推广收益,没有直推上级的话转账到指定钱包地址用于生态发展。具体模式如下:
1、加池分红本币到添加流动性的用户钱包地址,同时排除锁仓用户,排除ox0黑洞地址
3、四代推广收益,如果没有直推上级,就转账到默认钱包地址。
4、支持人员多个交易对,不区分主次交易对,无论是添加BNB或者USDT,或者其他自定义代币交易对均可。
5、合约自动初始化创建USDT交易对,按照用户持有LP的权重分红本币。
6、中转合约地址代币数量达到指定数量时才触发分红动作,并且要确保持有lock的线程才能执行LP分红动作,要在交易卖出时触发,并且要相关的开关在开启状态。
二、合约部署
1、编译相关的合约文件,按照如果合约文件顺序编译相关文件
2、部署合约,输入相关的构造函数参数
3、开源合约,具体操作过程不再赘述
以上是开源完成后的合约截图。
三、合约源代码
1、自动创建交易对的合约代码:
function initIRouter(address _router) internal { PancakeV2Router = IRouter(_router); PancakePair = IFactory(PancakeV2Router.factory()).createPair( address(this), PancakeV2Router.WETH() ); }
2、获取资金池详情的合约代码:
function getPoolInfo() public view returns (uint112 WETHAmount, uint112 TOKENAmount) { (uint112 _reserve0, uint112 _reserve1, ) = IPair(PancakePair) .getReserves(); WETHAmount = _reserve1; TOKENAmount = _reserve0; if (IPair(PancakePair).token0() == PancakeV2Router.WETH()) { WETHAmount = _reserve0; TOKENAmount = _reserve1; } }
3、transfer函数核心代码:
function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 tTransferAmount, uint256 tBurn, uint256 tLpBonus) = _getValues(tAmount); _balances[sender] = _balances[sender].sub(tAmount); _balances[recipient] = _balances[recipient].add(tTransferAmount); if( !_isExcludedFromFee[sender] && !_isExcludedFromFee[recipient] && (automatedMarketMakerPairs[sender] || automatedMarketMakerPairs[recipient]) ) { _balances[address(this)] = _balances[address(this)].add(tLpBonus); _lpBonusFeeTotal = _lpBonusFeeTotal.add(tLpBonus); _totalSupply = _totalSupply.sub(tBurn); _burnFeeTotal = _burnFeeTotal.add(tBurn); _takeInviterFee(sender, recipient, tAmount); emit Transfer(sender, address(this), tLpBonus); emit Transfer(sender, _burnPool, tBurn); } emit Transfer(sender, recipient, tTransferAmount); }
4、LP加池分红本币合约代码
function _tokenReward(uint256 contractTokenBalance) internal lockTheSwap returns (bool) { uint256 cast = 0; for (uint256 i = 0; i < _lockAddress; i++) { cast = cast.add(super.getLPTotal(_lockAddress[i])); } uint256 reward = contractTokenBalance; for (uint256 i = 0; i < length; i++) { bool isLock = false; for ( uint256 lockIndex = 0; lockIndex < _lockAddress.length; ) { if (tokenHolders == _lockAddress) { isLock = true; } } if (tokenHolders[i] != address(0x0) && isLock == false) { if (LPHolders > 0) { uint256 pool = super.getTotalSupply() - cast; _balances[address(this)] = _balances[address(this)].sub( , "BEP20: transfer amount exceeds balance" ); emit Transfer(address(this), tokenHolders[i], r); emit RewardLogs(tokenHolders[i], r); } } } return true; }
四、完整版合约代码如下
至此,完成添加流动性分红本币到添加流动性的用户钱包地址,排除锁仓钱包,燃烧通缩、四代推广收益合约源代码及部署的所有操作流程。
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载:
多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载地址:
添加VX或者telegram获取全程线上免费指导
评论前必须登录!
注册