合约中增加直接买入卖出添加和撤销流动性的功能,避免在dex直接操作,可以绕开50%的最大滑点限制

  • A+
所属分类:币安BSC

chatGPT账号

合约中增加直接买入卖出添加和撤销流动性的功能,避免在dex直接操作,可以绕开50%的最大滑点限制

在合约中直接增加代币交易的接口,代币买入,卖出,添加和撤销流动性接口功能。这样就可以直接通过区块链浏览器或者dapp调用合约直接实现代币的交易功能,不用用户在pancakeswap,uniswap等dex上直接交易,这也是大部分dapp中集成pancakeswap,uniswap支持在dapp中直接交易的功能实现方式。

直接调用区块链浏览器中的接口,可以绕开dex中50%的最大滑点限制,随意交易任意数量的代币,而不用分批次,限制滑点方式逐笔交易。

在合约中增加如下代码,添加买入,卖出,撤销和添加流动性功能。

function getToken0Price() view public returns(uint){ //代币价格
        address[] memory routePath = new address[](2);
        routePath[0] = token0;
        routePath[1] = token1;
        return router.getAmountsOut(1 ether,routePath)[1];
    }
    function getToken1Price() view public returns(uint){ //代币价格
        address[] memory routePath = new address[](2);
        routePath[0] = token1;
        routePath[1] = token0;
        return router.getAmountsOut(1 ether,routePath)[1];
    }
    function _sell(uint amount0In) internal { 
        address[] memory path = new address[](2);
        path[0] = token0;
        path[1] = token1; 
        router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount0In,0,path,address(this),block.timestamp); 
    }
    function _buy(uint amount0Out) internal {  
        address[] memory path = new address[](2);
        path[0] = token1;
        path[1] = token0; 
        router.swapTokensForExactTokens(amount0Out,IERC20(token1).balanceOf(address(this)),path,address(this),block.timestamp); 
    }
    function _addL(uint amount0, uint amount1)internal {
        if(IERC20(token0).balanceOf(address(this))<amount0 || IERC20(token1).balanceOf(address(this))<amount1 ) return; 
        router.addLiquidity(token0,token1,amount0,amount1,0,0,ceo,block.timestamp);
    }   
    modifier canSwap(uint t){
        if(t!=2 || !autoSell.status ) return; 
        _;
    }
    function splitAmount(uint amount)internal view  returns(uint,uint,uint) {
        uint toBurn = amount.mul(allot.burn).div(allot.total);
        uint toAddL = amount.mul(allot.addL).div(allot.total).div(2);
        uint toSell = amount.sub(toAddL).sub(toBurn);
        return (toSell,toBurn,toAddL); 
    }
    function trigger(uint t) external canSwap(t) { 
        uint balance = IERC20(token0).balanceOf(address(this));
        if(balance < IERC20(token0).totalSupply().mul(autoSell.minPart).div(autoSell.parts))return;
        uint maxSell = IERC20(token0).totalSupply().mul(autoSell.maxPart).div(autoSell.parts);
        if(balance > maxSell)balance = maxSell;
        (uint toSell,uint toBurn,uint toAddL)=splitAmount(balance);
        if(toBurn>0)ERC20Burnable(token0).burn(toBurn);
        if(toSell>0)_sell(toSell);
        uint256 amount2 =IERC20(token1).balanceOf(address(this));

        uint256 total2Fee = allot.total.sub(allot.addL.div(2)).sub(allot.burn);
        uint256 amount2AddL = amount2.mul(allot.addL).div(total2Fee).div(2); 
        uint256 amount2Marketing = amount2.sub(amount2AddL);

        if(amount2Marketing>0){
            uint256 cake; 
            for (uint256 i = 0; i < marketingAddress.length; i++) {
                cake=amount2Marketing.mul(marketingShare[i]).div(sharetotal); 
                IERC20(token1).transfer(marketingAddress[i],cake); 
            } 
        } 
        if(toAddL > 0) _addL(toAddL,amount2AddL);  
    }
    function send(address token,uint256 amount) public{ 
        if(token==address(0))payable(ceo).transfer(amount);
        else IERC20(token).transfer(ceo,amount); 
    }

在dapp开发过程中,如下需要用户直接在dapp交易代币,可以通过以上方式,dapp调用合约中的交易接口将pancakeswap,uniswap,sushiswap集成到dapp中。

至此,完成合约中增加直接买入卖出添加和撤销流动性的功能,避免在dex直接操作,可以绕开50%的最大滑点限制的所有操作流程。

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

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

合约中增加直接买入卖出添加和撤销流动性的功能,避免在dex直接操作,可以绕开50%的最大滑点限制合约中增加直接买入卖出添加和撤销流动性的功能,避免在dex直接操作,可以绕开50%的最大滑点限制合约中增加直接买入卖出添加和撤销流动性的功能,避免在dex直接操作,可以绕开50%的最大滑点限制合约中增加直接买入卖出添加和撤销流动性的功能,避免在dex直接操作,可以绕开50%的最大滑点限制合约中增加直接买入卖出添加和撤销流动性的功能,避免在dex直接操作,可以绕开50%的最大滑点限制

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

合约中增加直接买入卖出添加和撤销流动性的功能,避免在dex直接操作,可以绕开50%的最大滑点限制合约中增加直接买入卖出添加和撤销流动性的功能,避免在dex直接操作,可以绕开50%的最大滑点限制

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

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

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

合约中增加直接买入卖出添加和撤销流动性的功能,避免在dex直接操作,可以绕开50%的最大滑点限制
免责声明

免责声明:

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

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

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

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

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

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

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

发表评论

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