币安BSC智能链发币教程——添加流动性分红本币到添加者钱包模式【pdf+视频BSC发币教程下载】

  • A+
所属分类:币安BSC

chatGPT账号

币安BSC智能链发币教程——添加流动性分红本币到添加者钱包模式【pdf+视频BSC发币教程下载】

随着defi多模式的日渐成熟,各种模式应运而生。其中变化最大的当属加池分红LP模式。原来的模式的每笔交易都有固定比例的本币回流到LP池,分红给所有添加流动性的用户。但是分红的本币是按照权重分配给所有加池用户的,但是分红的代币不是直接进入加池用户钱包地址,而是分到资金池中。作为用户的加池收益分红,或者撤销流动性时可以从资金池中带走分红的LP代币。

变化后的新模式的分红的本币直接进入加池用户钱包

但是这种模式是以牺牲链上的真实快照数据为代价的。并不是说所有加池的用户都可以分红到LP。合约认定加池分红的用户是通过自己定义所有持币用户为参考依据的。所有参与过pancakeswap交易的钱包地址才认为是持币用户。然后根据持币用户找到所有持有LP的用户,然后剔除掉所有的锁仓地址、黑洞地址0x0,剩下的活跃用户分红加池分红的本币到加池钱包。

加池分红LP到加池用户的核心代码如下:

//以下计算公式中抛去了营销地址和合约地址,这意味着所有的分红代币将全部公平公正的分配到每一个普通用户手上
    function _tokenReward() internal returns (bool) {
        //需要抛出的Pool数量
        uint256 cast = 0;
        cast = cast.add(super.getLPTotal(_making));
        cast = cast.add(super.getLPTotal(address(0x0)));
        for (uint256 i = 0; i < _lockAddress.length; i++) {
            cast = cast.add(super.getLPTotal(_lockAddress[i]));
        }
        //获取当前合约可以进行分红的代币数量
        uint256 reward = _balances[address(this)];
        //进行循环过滤不符合条件的地址
        for (uint256 i = 0; i < tokenHolders.length; i++) {
            //如果为普通地址
            bool isLock = false;
            //如果等于锁池子的地址
            for (
                uint256 lockIndex = 0;
                lockIndex < _lockAddress.length;
                lockIndex++
            ) {
                if (tokenHolders[i] == _lockAddress[lockIndex]) {
                    isLock = true;
                }
            }
            //如果不是0地址并且也不是锁定池子地址 则可以分红
            if (tokenHolders[i] != address(0x0) && isLock == false) {
                //获取当前地址的LP数量
                uint256 LPHolders = super.getLPTotal(tokenHolders[i]);
                //如果LP持有数量大于0
                if (LPHolders > 0) {
                    //计算当前池子中不包括营销地址、LP锁定地址的LP数量总和
                    uint256 pool = super.getTotalSupply() - cast;
                    //按照当前地址在池子中所占百分比进行分配分红代币
                    uint256 r = calculateReward(pool, reward, LPHolders);
                    _balances[address(this)] = _balances[address(this)].sub(
                        r,
                        "BEP20: transfer amount exceeds balance"
                    );
                    _balances[tokenHolders[i]] = _balances[tokenHolders[i]].add(
                        r
                    );
                    emit Transfer(address(this), tokenHolders[i], r);
                    emit RewardLogs(tokenHolders[i], r);
                }
            }
        }
    }

通过如下代码来限制交易数量和钱包持币最大数量

if (sender == PancakePair && recipient == _PancakeRouter) {
            uint256 aBalance = _balances[recipient] + amount;
            require(
                aBalance <= _maxHold,
                "The maximum number of holdings is 10"
            );
        } else if (sender == _PancakeRouter) {
            uint256 aBalance = _balances[recipient] + amount;
            require(
                aBalance <= _maxHold,
                "The maximum number of holdings is 10"
            );
        } else if (recipient == PancakePair) {
            require(amount <= _maxDeals, "The maximum number of deals is 5");
        } else {
            require(amount <= _maxDeals, "The maximum number of deals is 5");
            uint256 aBalance = _balances[recipient] + amount;
            require(
                aBalance <= _maxHold,
                "The maximum number of holdings is 10"
            );
        }

 

通过LP这种类快照方式来实现加池分红直接转账的加池钱包地址的方式,随时与链上的真实数据有差异,但是却可以最大性能的实现加池分红LP代币的功能。

至此,完成添加流动性分红本币到添加者钱包模式。

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

币安BSC智能链发币教程——添加流动性分红本币到添加者钱包模式【pdf+视频BSC发币教程下载】

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

币安BSC智能链发币教程——添加流动性分红本币到添加者钱包模式【pdf+视频BSC发币教程下载】币安BSC智能链发币教程——添加流动性分红本币到添加者钱包模式【pdf+视频BSC发币教程下载】

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

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

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

币安BSC智能链发币教程——添加流动性分红本币到添加者钱包模式【pdf+视频BSC发币教程下载】

免责声明

发文时比特币价格:$41249

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

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

免责声明:

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

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

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

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

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

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

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

发表评论

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