币安BSC智能链发币教程——分红任何币种+自动加池+燃烧通缩+营销钱包+八代推广收益+开发者钱包+基金会钱包模式合约代码部署【pdf+视频BSC发币教程下载】

  • A+
所属分类:币安BSC
摘要

分红任何币种+自动加池+燃烧通缩+营销钱包+八代推广收益+开发者钱包+基金会钱包模式合约代码部署,开源,动态参数配置操作流程,交易所线上验证持币分红效果全流程。


chatGPT账号

币安BSC智能链发币教程——分红任何币种+自动加池+燃烧通缩+营销钱包+八代推广收益+开发者钱包+基金会钱包模式合约代码部署【pdf+视频BSC发币教程下载】

合约模式说明及解析:

一、可以实现部分代币自动卖出变成U,返回到dev钱包,也就是所谓的股息。

二、实现自动兑换U到dev钱包需要满足的条件:

1)contractTokenBalance >= numTokensSellToAddToLiquidity  合约地址内的代币数量达到了numTokensSellToAddToLiquidity指定的值后,就从合约地址内按照比例,一部分用来自动加池,一部分用来兑换成U,转入dev钱包。

2)当用户卖出时才会触发

3)swapAndLiquifyEnabled值为true

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钱包。

所以,合约地址中的两部分代币的比例是非常明确的:_liquidityFee :_devFee
4)_devFee中有一半进入foundaddress,_liquidityFee中有一半卖出变成weth。实际上合约地址中的_takeLiquidity函数分红的代币比例应该是(_liquidityFee).div(_liquidityFee.add(_devFee/2)),合约中直接取了(_liquidityFee).div(_liquidityFee.add(_devFee)),实际上是错误的,但是不影响合约中的执行。
这样取的话,相当于_takeLiquidity函数分红来的币部分用于自动兑换成U,转入dev钱包地址了,本来用于自动加池的币减少了。
十、swapDevEnabled参数控制是否开启代币回流到合约地址后自动兑换成U,转入dev钱包地址。liquifyEnabled参数控制_takeLiquidity函数分红到合约地址中的代币是否自动完成加池。如果不开启,当合约地址中的代币总量达到numTokensSellToAddToLiquidity后,用于加池部分的代币会自动兑换成WETH后保存到合约地址中,不加池。
十一、swapDevEnabled和liquifyEnabled参数互不影响,非常清晰。
十二、_takeLiquidity函数分红到合约地址的代币,合约地址持币余额并不会立刻增加分红部分的数量,需要对合约地址有实际的转账(通常是转入),即调用transfer函数后余额中才会增加分红部分的代币数量
【附注20221208】
万能分红任意币种模式的合约主要功能主要流程如下:
a. 在卖出交易时,当合约地址中的手续费代币累计达到指定数量阈值时触发代币自动兑换机制,兑换为指定的分红币种
b. 分红派发器根据持币用户的钱包地址余额权重去派发分红币种,分红派发期间可以根据持币地址的余额做限制,低于指定数量的持币余额,不产生分红
c. 可以剔除项目方预先的锁定钱包地址中的代币,不产生分红,避免影响对正常持币用户钱包地址中的分红的效果不够明显
d. 分红派发器是异步于代币自动兑换机制的,因此在两个动作触发时要设置合理的冷却时间
合约源代码实现:
分红代码具体如下:
 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发币教程及多模式组合合约源代码下载:

币安智能链BSC发币(合约部署、开源、锁仓、LP、参数配置、开发、故障处理、工具使用)教程下载:

币安BSC智能链发币教程——分红任何币种+自动加池+燃烧通缩+营销钱包+八代推广收益+开发者钱包+基金会钱包模式合约代码部署【pdf+视频BSC发币教程下载】

多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:

币安BSC智能链发币教程——分红任何币种+自动加池+燃烧通缩+营销钱包+八代推广收益+开发者钱包+基金会钱包模式合约代码部署【pdf+视频BSC发币教程下载】币安BSC智能链发币教程——分红任何币种+自动加池+燃烧通缩+营销钱包+八代推广收益+开发者钱包+基金会钱包模式合约代码部署【pdf+视频BSC发币教程下载】

pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载地址:

此处为隐藏的内容!
登录后才能查看!

添加VX或者telegram获取全程线上免费指导

币安BSC智能链发币教程——分红任何币种+自动加池+燃烧通缩+营销钱包+八代推广收益+开发者钱包+基金会钱包模式合约代码部署【pdf+视频BSC发币教程下载】
免责声明

免责声明:

本文不代表知点网立场,且不构成投资建议,请谨慎对待。用户由此造成的损失由用户自行承担,与知点网没有任何关系;

知点网不对网站所发布内容的准确性,真实性等任何方面做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,知点网对项目的真实性,准确性等任何方面均不做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,知点网不对其构成任何投资建议,用户由此造成的损失由用户自行承担,与知点网没有任何关系;

知点区块链研究院声明:知点区块链研究院内容由知点网发布,部分来源于互联网和行业分析师投稿收录,内容为知点区块链研究院加盟专职分析师独立观点,不代表知点网立场。

本文是全系列中第114 / 237篇:通证发行

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的电报
  • 这是我的电报扫一扫
  • weinxin
chatGPT账号

发表评论

您必须登录才能发表评论!