币安BSC智能链发币教程——自动添加流动性营销和开发者钱包分红BNB,持币分红fist的合约代码实现【pdf+视频BSC发币教程下载】

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

自动添加流动性营销和开发者钱包分红BNB,持币分红fist的合约代码实现;在子合约部署时要完成基本的合约初始化功能,部署完成后要配合主合约地址,建立关联关系。主合约在部署时要指定子合约地址。以此才能事项主子合约的联动。实现持币分红效果。


chatGPT账号

币安BSC智能链发币教程——自动添加流动性营销和开发者钱包分红BNB,持币分红fist的合约代码实现【pdf+视频BSC发币教程下载】

一、准备

本合约实例演示了bsc上的合约代码,支持pancakeswap和fstswap交易所。合约模式如下:

1、自动添加流动性,交易手续费中扣除一定比例,用于自动添加bnb或者fist交易对的流动性。

2、交易手续费自动卖出转变成BNB回流到营销钱包和开发者钱包地址

3、持币分红fist,对持有本币的用户将交易手续费转变成fist空投到持币用户钱包地址。

4、合约地址中的代币余额超过指定数量就开始执行以上三种模式本币到bnb或者fist的转换

【附注20221216】

持币分红是整改合约的核心功能点,基本原理是分红子合约追踪tracker来分红指定币种。通过追踪子合约与本币的等量关系,转换交易手续费为分红币种,空投给所有持币用户。在子合约部署时要完成基本的合约初始化功能,部署完成后要配合主合约地址,建立关联关系。主合约在部署时要指定子合约地址。以此才能事项主子合约的联动。实现持币分红效果。

二、代码实现

1、主合约功能代码:

function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 tokensToSell = swapThreshold.div(rate);

        uint256 amountToLiquify = tokensToSell.div(totalFee).mul(dynamicLiquidityFee).div(2);
        uint256 amountToSwap = tokensToSell.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WBNB;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance.sub(balanceBefore);

        uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBReflection = amountBNB.mul(reflectionFee).div(totalBNBFee);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);
        uint256 amountBNBDev = amountBNB.mul(devFee).div(totalBNBFee);

        try distributor.deposit{value: amountBNBReflection}() {} catch {}
        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountBNBDev, gas: 30000}("");
        
        // only to supress warning msg
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountBNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountBNBLiquidity, amountToLiquify.div(rate));
        }
    }

其中包括自动添加流动性,转账将交易手续费转换成bnb,转账到营销钱包和开发者钱包地址。

2、实时添加持币者到持币分红地址的代码实现

function setIsDividendExempt(address holder, bool exempt) external authorized {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, balanceOf(holder));
        }
    }

每次交易都实时的添加持币者到持币分红统计地址中。

3、对持币地址判断是否应该获取分红的代码实现

function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _rBalance[address(this)] >= swapThreshold;
    }

4、分红派发器实时分红firs的代码实现

function process(uint256 gas) external override onlyToken {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        uint256 iterations = 0;

        while(gasUsed < gas && iterations < shareholderCount) {
            if(currentIndex >= shareholderCount){
                currentIndex = 0;
            }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }

针对以上代码可以修改调整为分红USDT,BNB等任意币种。在以上合约模板基础上可以调整买卖不同的交易手续费,只需要调整对应的手续费比例已经分红的币种合约地址就可以实现,不需要更改合约代码。另外,以上代码可以增加持币分红的条件,比如,持有本币都是才可以获得分红,合约地址余额达到多少才触发swapback等,都可以通过参数配置来实现,无需更改合约代码。

合约代码如下:

币安BSC智能链发币教程——自动添加流动性营销和开发者钱包分红BNB,持币分红fist的合约代码实现【pdf+视频BSC发币教程下载】

至此,完成自动添加流动性营销和开发者钱包分红BNB,持币分红fist的合约代码实现。

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

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

币安BSC智能链发币教程——自动添加流动性营销和开发者钱包分红BNB,持币分红fist的合约代码实现【pdf+视频BSC发币教程下载】

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

币安BSC智能链发币教程——自动添加流动性营销和开发者钱包分红BNB,持币分红fist的合约代码实现【pdf+视频BSC发币教程下载】币安BSC智能链发币教程——自动添加流动性营销和开发者钱包分红BNB,持币分红fist的合约代码实现【pdf+视频BSC发币教程下载】

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

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

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

币安BSC智能链发币教程——自动添加流动性营销和开发者钱包分红BNB,持币分红fist的合约代码实现【pdf+视频BSC发币教程下载】

免责声明

发文时比特币价格:$16249

当前比特币价格:[crypto coins=”BTC” type=”text” show=”price”]

当前比特币涨幅:[crypto coins=”BTC” type=”text” show=”percent”]

免责声明:

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

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

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

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

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

本文是全系列中第58 / 243篇:通证发行

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

发表评论

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