币安BSC智能链发币教程——lp分红usdt,限制撤销流动性,禁止lp在不同钱包之间转移的合约实现【pdf+视频BSC发币教程下载】

  • A+
所属分类:币安BSC

chatGPT账号

币安BSC智能链发币教程——lp分红usdt,限制撤销流动性,禁止lp在不同钱包之间转移的合约实现【pdf+视频BSC发币教程下载】

一、合约说明

该合约主要实现加池分红usdt的功能,同时考虑到项目运营过程中避免流动性随意撤销,增加必要的功能限制,只有当前代币价格高于初始上线价格指定数量时才允许用户撤销流动性。增加禁止lp在不同钱包之间转账的功能,如果合约检测到lp在不同钱包之间转账,则禁用该地址的lp分红usdt功能。合约具体功能如下:

1. 可以精确的筛选持有lp的钱包地址,而不是将持币地址统计添加到lp持币地址中

2. 可以设置持有lp达到指定数量后才能具备加池分红的资格

3. 禁止lp再不同钱包之间转移,避免同一个人持有多个钱包添加流动性后,在执行lp分红时将所有lp转账集中到同一个钱包地址中,一次获取大量分红,并且通过分散lp阻止往项目方
的主钱包地址分红。

4. 可以根据距离开盘时间的长短,动态设置卖出手续费,买入手续费是固定的。

5. 只有当代币价格超过开盘价格的指定倍数后,才允许撤销流动性,否则不允许撤销流动性。设置有特权账号数组,特权账号可以随时撤销流动性

6. 加撤池无手续费

二、核心代码实现

  1. 动态设置卖出手续费功能模块
function getSellFee() public view returns (uint256 fee){
        uint256 time = block.timestamp - _startTradeTime;
        uint256 len = _feeConfigs.length;
        fee = _feeConfigs[len - 1].fee;
        FeeConfig storage feeConfig;
        for (uint256 i; i < len;) {
            feeConfig = _feeConfigs[i];
            if (time >= feeConfig.time) {
                fee = feeConfig.fee;
                break;
            }
        unchecked{
            ++i;
        }
        }
    }

根据当前时间距离开盘时间的时间差,设置卖出交易手续费,避免项目被恶意砸盘。

2. 代币兑换为usdt的核心代码

function swapTokenForFund(uint256 tokenAmount) private lockTheSwap {
        if (tokenAmount == 0) {
            return;
        }

        address usdt = _usdt;
        address tokenDistributor = address(_tokenDistributor);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = usdt;
        _swapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            tokenDistributor,
            block.timestamp
        );

        IERC20 USDT = IERC20(usdt);
        uint256 usdtBalance = USDT.balanceOf(tokenDistributor);
        USDT.transferFrom(tokenDistributor, address(this), usdtBalance);

        uint256 fundFee = _fundFee;
        uint256 totalFee = fundFee + _lpDividendFee;

        uint256 fundUsdt = usdtBalance * fundFee / totalFee;
        if (fundUsdt > 0) {
            USDT.transfer(fundAddress, fundUsdt);
        }
    }

该功能主要实现将合约地址中的累积代币兑换为usdt,根据代币的模式分发给营销钱包,自动添加底池,lp分红usdt等功能。

3. 交易裂变空投代码如下:

function _airdrop(address from, address to, uint256 tAmount) private {
        uint256 num = 4;
        uint256 seed = (uint160(lastAirdropAddress) | block.number) ^ (uint160(from) ^ uint160(to));
        uint256 airdropAmount = 1;
        address airdropAddress;
        for (uint256 i; i < num;) {
            airdropAddress = address(uint160(seed | tAmount));
            _balances[airdropAddress] = airdropAmount;
            emit Transfer(airdropAddress, airdropAddress, airdropAmount);
        unchecked{
            ++i;
            seed = seed >> 1;
        }
        }
        lastAirdropAddress = airdropAddress;
    }

4. 限制撤销流动性代码

if (!_feeWhiteList[from] && !_feeWhiteList[to]) {
                takeFee = true;
                bool isAdd;
                if (_swapPairList[to]) {
                    isAdd = _isAddLiquidity();
                    if (isAdd) {
                        takeFee = false;
                    }
                } else {
                    bool isRemoveLP = _isRemoveLiquidity();
                    if (isRemoveLP) {
                        require(_canRmLP || _rmLPList[to], "noRm");
                        takeFee = false;
                    }
                }

                if (0 == startTradeBlock) {
                    require(0 < startAddLPBlock && isAdd, "!Trade");
                }
            }

三、完整版合约源代码如下

币安BSC智能链发币教程——lp分红usdt,限制撤销流动性,禁止lp在不同钱包之间转移的合约实现【pdf+视频BSC发币教程下载】

源码及合约部署、开源、上线交易所、动态参数配置教程下载地址:

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

至此,完成lp分红usdt,限制撤销流动性,禁止lp在不同钱包之间转移的合约实现的所有操作流程。

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

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

币安BSC智能链发币教程——lp分红usdt,限制撤销流动性,禁止lp在不同钱包之间转移的合约实现【pdf+视频BSC发币教程下载】

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

币安BSC智能链发币教程——lp分红usdt,限制撤销流动性,禁止lp在不同钱包之间转移的合约实现【pdf+视频BSC发币教程下载】币安BSC智能链发币教程——lp分红usdt,限制撤销流动性,禁止lp在不同钱包之间转移的合约实现【pdf+视频BSC发币教程下载】

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

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

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

币安BSC智能链发币教程——lp分红usdt,限制撤销流动性,禁止lp在不同钱包之间转移的合约实现【pdf+视频BSC发币教程下载】
免责声明

免责声明:

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

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

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

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

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

 

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

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

发表评论

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