合约模式说明及解析:
一、可以实现部分代币自动卖出变成U,返回到dev钱包,也就是所谓的股息。
二、实现自动兑换U到dev钱包需要满足的条件:
1)contractTokenBalance >= numTokensSellToAddToLiquidity 合约地址内的代币数量达到了numTokensSellToAddToLiquidity指定的值后,就从合约地址内按照比例,一部分用来自动加池,一部分用来兑换成U,转入dev钱包。
2)当用户卖出时才会触发
4)swapDevEnabled参数控制是否开启兑换合约地址中的代币,兑换成U,自动转入dev钱包。如果不开启,代币回流到dev钱包地址,如果开启,代币回流到合约地址,用于自动兑换为U,转入dev钱包。默认情况下swapDevEnabled参数是不开启的。
5)liquifyEnabled参数控制是否开启自动加池,如果不开启自动加池,那么从合约地址中自动卖出的币兑换成的BNB是存放在合约地址中的。参数默认是false
6)swapDevEnabled参数控制是否开启应该回流到开发者钱包中的代币自动兑换成U,还是保留为本位币的形式。如果是兑换成U,就需要先回流到合约地址中,在合约地址中按照比例自动swap成U,然后转入dev钱包。
7)_inviterFee的值必须和for循环中逐代推广的累加和一致。TTS合约中_inviterFee为6%,第一代2%,第二代1%,第三到第八代0.5%,总计恰好是6%
8)合约不是回流资金池而是自动加池,累计回流到合约地址中的代币达到numTokensSellToAddToLiquidity时,就会自动卖出一半,锁住资金池后自动完成加池动作。然后另外一部分兑换成U,转账到dev钱包。要区分加池分红和自动加池,加池分红是所有加池的用户都会获得分红,自动加池是合约地址自动加池,任何用户都不会获得分红。
9)_devFee控制往合约地址回流代币的比例,如果设置为0,则取消了自动加池和dev钱包自动兑换U的功能。
10)_liquidityFee参数只在自动加池和兑换U到dev钱包的功能中起到一个划分比例的作用,在转账时不起作用。
11)foundAddress回流的代币数量也是由_devFee参数决定的,其中_devFee/2的回流基金会地址。_liquidityFee/(_liquidityFee+_devFee)的比例确定自动加池的比例,_devFee/(_liquidityFee+_devFee)确定自动兑换U转入dev钱包的比例
12)swapAndLiquifyEnabled参数是控制开启和关闭流动性相关属性的,并不能直接控制交易的开关。
三、合约代码中可以在部署合约时自动创建代币和WETH的交易对,这样在程序中可以通过交易对地址判断交易的流向(买入,卖出)
四、合约中setBlack函数可以设置黑名单账户,黑名单账户中的地址是不能交易的,也就是通常说的冻结账户。
五、setErc20With函数可以实现从合约地址中转账任何ERC20代币到指定的钱包地址。
六、setEthWith函数实现从合约地址中转账WETH到指定的钱包地址。
七、setOwner函数存在漏洞,可以设置多个owner,需要重复多次调用才能回收owner权限,尽量避免使用。
八、_takeLiquidity函数实现分流代币到合约地址,用于自动加池
九、合约地址的两个目的:
1)合约地址接收来自_takeDev函数回流的应该回流到dev钱包中的代币,先暂存到合约地址中,达到numTokensSellToAddToLiquidity后,自动兑换成u,转入dev钱包中
2)合约地址接收来自_takeLiquidity函数分红的用来自动加池的代币,先暂存到合约地址中,达到numTokensSellToAddToLiquidity后,自动兑换成WETH后,自动加池。
3)swapAndLiquify函数同时实现自动加池和自动兑换合约地址中的代币为U,转入dev钱包的功能。其中,(_liquidityFee).div(_liquidityFee.add(_devFee))为_takeLiquidity函数分红到合约地址中的代币,用于自动加池。(_devFee).div(_liquidityFee.add(_devFee))为_takeDev函数回流到合约地址中的代币,用于自动兑换为U,转入dev钱包。
function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); }
动态8代推广合约代码如下:
function _takeInviterFee( address sender, address recipient, uint256 tAmount ) private { if (_inviterFee == 0) return; uint256 currentRate = _getRate(); address cur = sender; if (sender == uniswapV2Pair) { cur = recipient; } else if (recipient == uniswapV2Pair) { cur = sender; } if (cur == address(0)) { return; } for (int256 i = 0; i < 8; i++) { uint256 rate; if (i == 0) { rate = 20; } else if (i == 1) { rate = 10; } else { rate = 5; } cur = inviter[cur]; if (cur == address(0)) { cur = burnAddress; } uint256 curTAmount = tAmount.mul(rate).div(1000); uint256 curRAmount = curTAmount.mul(currentRate); _rOwned[cur] = _rOwned[cur].add(curRAmount); emit Transfer(sender, cur, curTAmount); } }
通缩燃烧代码如下:
function _takeBurn(address sender,uint256 tBurn) private { uint256 currentRate = _getRate(); uint256 rBurn = tBurn.mul(currentRate); _rOwned[burnAddress] = _rOwned[burnAddress].add(rBurn); emit Transfer(sender, burnAddress, tBurn); }
开发者钱包回流代码如下:
function _takeDev(address sender, uint256 tDev) private { uint256 currentRate = _getRate(); uint256 rDev = tDev.mul(currentRate); if(!swapDevEnabled){ _rOwned[devAddress] = _rOwned[devAddress].add(rDev); emit Transfer(sender, devAddress, tDev); } else { _rOwned[address(this)] = _rOwned[address(this)].add(rDev); emit Transfer(sender, address(this), tDev); } }
分红和自动加池代码如下:
function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { uint256 lsDevFee = _devFee; if(!swapDevEnabled){ lsDevFee = 0; } uint256 addHl = uint256(100).mul(_liquidityFee).div(_liquidityFee.add(lsDevFee)); uint256 addNumber = contractTokenBalance.mul(addHl).div(100); uint256 devNumber = contractTokenBalance.sub(addNumber); uint256 half = addNumber.div(2); uint256 otherHalf = addNumber.sub(half); uint256 initialBalance = address(this).balance; // swap tokens for ETH swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered // how much ETH did we just swap into? uint256 newBalance = address(this).balance.sub(initialBalance); // add liquidity to uniswap if (liquifyEnabled) { addLiquidity(otherHalf, newBalance); } swapTokensForDividendToken(devNumber); emit SwapAndLiquify(half, newBalance, otherHalf); }
至此,完成分红任何币种+自动加池+燃烧通缩+营销钱包+八代推广收益+开发者钱包+基金会钱包模式合约代码部署的所有操作流程。
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载:
多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载地址:
添加VX或者telegram获取全程线上免费指导
评论前必须登录!
注册