一、准备
控制交易流向的合约代码,通俗的称为貔貅合约,可以实现控制只允许买入不允许卖出。当项目运营达到一定的预期值后,打开开关,正式开启代币的卖出交易。通过合约开关来实现控制代币的交易流向主要有以下几个目的:
1、在未达到项目的开盘时间之前,只允许用户买入,不允许卖出,控制合约K线,避免出现阴线。
2、只能买入,不能卖出,避免资金池被夹子软件给夹空。
3、项目目前还处于私募期间,暂时不开放线上交易,因此会禁止线上卖出。
【附注20221218】
貔貅模式的合约并不是部署完合约后就立即呈现出只能买入,不能卖出的情况。因为合约在部署完成后,没有上交易所之前,要求合约是可以正常转账,正常添加流动性的。卖出操作和添加流动性操作的判断逻辑都是代币直接进入流动池,因此如果合约部署完成后无法卖出也就意味着无法添加流动性上线交易所。
因此,合约在部署完成后与正常的合约没有任何区别,需要在流动性添加完成后,资金池达到目标体量然后通过交易控制开关,触发对应的开关,实现限制卖出,只运行买入的动作。所以,貔貅合约是一直为了特点需求而设计的正常的控制交易的功能模式,可以随时控制交易的流向,同时又不受合约所有权的限制。
二、合约实现思路
要实现控制合约的代币交易流向,目前主流的两种方法:
方法一:通过交易控制开关,来实现传递参数到合约中,控制交易的开启和关闭。
方法二:通过在合约中添加定时开关控制,区块高度达到某个值后,自动打开交易,允许卖出
三、控制交易卖出的合约具体部署方法:
1、主要有IERC20.sol、SafeMath.sol、Context.sol、Ownable.sol、Metaverse.sol几个合约文件组成。
编译器参数配置如下截图:
function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if(_liquidityFlag == 0 && recipient == _exchangePool && !_isExcludedFromLiquidity[sender] ) return; uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _transferStandard(sender, recipient, amount); }
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载:
币安智能链BSC发币(合约部署、开源、锁仓、LP、参数配置、开发、故障处理、工具使用)教程下载:
多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载地址:
添加VX或者telegram获取全程线上免费指导
评论前必须登录!
注册