一、说明
交易挖矿即根据当前代币的实时价格,核算单笔或者累积交易量达到指定的usdt数量后即可获取交易挖矿,产出挖矿增值收益分红到交易钱包中。并且配合其他主流的合约模式配合成新的合约模型机制。该模式下主要优势是激励交易,当交易量达到指定的usdt数量后即可获取交易分红,限制交易的usdt数量,避免代币本身价格波动对交易量的影响。
本次案例合约主要包括如下功能:
1、合约包含的功能LP加池分红USDT+营销钱包回流USDT+自动添加流动性自动筑池+交易挖矿+燃烧通缩
2、交易挖矿规则:
a. 每交易达到100U时触发交易挖矿,并且挖矿收益呈梯形规则递增
b. 只有卖出交易才能交易挖矿资格,买入和转账没有挖矿收益
c. 最大挖矿限制到2000000枚后停止挖矿,并且是精准停止到2000000枚,多出的部分删除掉,精确停止到2000000枚
3、燃烧规则:
a. 始终保证市场流通量(总量减去黑洞地址持有量)大于等于初始化供应量(20000枚)
b. 燃烧到初始供应量后精确停止燃烧,当挖矿产出后市场流通量大于初始化供应量后又开始执行燃烧、
c. 代币总量是一直增加的,燃烧并不会减少代币总量,而是燃烧到DEAD地址,而非全0地址
二、合约代码实现
1、线上交易部分合约功能
if (_swapPairList[from] || _swapPairList[to]) { swapForFistAmount = amount.mul(getCurPrice()); if (!_feeWhiteList[from] && !_feeWhiteList[to]) { if (0 == startTradeBlock) { require(0 < startAddLPBlock && _swapPairList[to], "BEP20:operater action is not AddLiquidity"); } if (block.number < startTradeBlock.add(4)) { _funTransfer(from, to, amount); return; } uint256 swapFee = _buyFundFee.add(_sellFundFee).add(_buyLPDividendFee).add(_sellLPDividendFee); // also, don't swap & liquify if sender is uniswap pair. bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity; if ( !inSwapAndLiquify && _swapPairList[to] && swapAndLiquifyEnabled ) { contractTokenBalance = numTokensSellToAddToLiquidity; //add liquidity swapTokenForFund(contractTokenBalance, swapFee); } takeFee = true; } if (_swapPairList[to]) { isSell = true; } }
2、实际的代币交易函数
function _tokenTransfer( address sender, address recipient, uint256 tAmount, bool takeFee, bool isSell ) private { uint256 feeAmount; _balances[sender] = _balances[sender].sub(tAmount); if (takeFee) { uint256 swapFee; uint256 burnAmount; if (isSell) { swapFee = _sellFundFee.add(_sellLPDividendFee).add(_sellLPFee); burnAmount = tAmount.mul(_sellBurnFee).div(10000); } else { swapFee = _buyFundFee.add(_buyLPDividendFee).add(_buyLPFee); } uint256 swapAmount = tAmount.mul(swapFee).div(10000); if (swapAmount > 0) { _takeTransfer( sender, address(this), swapAmount ); } _takeTransfer(sender, recipient, tAmount.sub(feeAmount)); }
3、加池分红usdt函数
function processReward(uint256 gas) private { if (progressRewardBlock.add(200) > block.number) { return; } uint256 balance = FIST.balanceOf(address(this)); if (balance < holderRewardCondition) { return; } uint holdTokenTotal = holdToken.totalSupply(); address shareHolder; uint256 amount; uint256 shareholderCount = holders.length; uint256 gasUsed = 0; uint256 iterations = 0; uint256 gasLeft = gasleft(); while (gasUsed < gas && iterations < shareholderCount) { if (currentIndex >= shareholderCount) { currentIndex = 0; } tokenBalance = holdToken.balanceOf(shareHolder); if (tokenBalance > 0 && !excludeHolder[shareHolder]) { if (amount > 0) { FIST.transfer(shareHolder, amount); } } gasUsed = gasUsed + (gasLeft - gasleft()); gasLeft = gasleft(); iterations++; } progressRewardBlock = block.number; }
三、完整版本的合约代码如下
至此,完成根据当前代币实时价格核算交易量达到后实现交易挖矿合约代码实现所有操作流程。
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载:
币安智能链BSC发币(合约部署、开源、锁仓、LP、参数配置、开发、故障处理、工具使用)教程下载:
多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载地址:
添加VX或者telegram获取全程线上免费指导
评论前必须登录!
注册