一、说明
在合约中最常见的通过空投来实现推荐关系的绑定,但是如果单纯靠一级空投就锁定推荐关系并分发推荐奖励会存在漏洞。同一用户下的多个钱包地址之间循环空投就可以额外赚取推荐收益。为了避免该情况的发送,需要双向空投来锁定上下级关系。另外根据当前价格波动情况,灵活设置回流底池的手续费比例可以有效的增加底池厚度,抵消抛售压力。具体合约说明如下:
1、A地址空投给B地址后,必须B地址再次空投A地址,双向完成空投才能绑定推荐关系即A推荐B
2、必须是线下空投,代币的来源应该来自线下转账,而不是通过线上交易所买入然后再空投
3、价格相比昨天下降达到指定阈值时,动态增加回流底池的交易手续费,以此抵消抛压。
二、合约代码实现
1、双向空投绑定推荐关系的核心代码如下:
function _ref(address _parent,address _user) private { if(referral.isBindReferral(_user) || !referral.isBindReferral(_parent)){ return; } _wReferrals[_user] = _parent; } function _acceptRef(address _user,address _parent) private { if(referral.isBindReferral(_user)){ return; } address parent = _wReferrals[_user]; if(parent != _parent){ return; } _wReferrals[_user] = address(0); referral.bindReferral(parent,_user); }
2、调用双向绑定推荐关系的合约代码:
if(!_isSwap(sender,recipient) && !recipient.isContract()){ _ref(sender,recipient); _acceptRef(sender,recipient); }
3、绑定推荐关系工具合约代码
function bindReferral(address _referral,address _user) external onlyOperator{ require(isBindReferral(_referral),"Referral not bind"); require(!isBindReferral(_user),"User is bind"); _referrals[_user] = _referral; _referralCounts[_referral]++; emit BindReferral(_referral, _user); }
4、获取推荐关系get接口
function getReferrals(address _address,uint256 _num) external view returns(address[] memory){ address[] memory result; result = new address[](_num); for(uint256 i=0;i<_num;i++){ _address = getReferral(_address); if(_address == address(0))break; result[i] = _address; } return result; }
5、根据价格波动情况灵活配置回流底池手续费代码
function lpFeeRate() public view returns (uint256) { uint256 price = _getCurrentPrice(); uint256 base = _todayBasePrices[ ((block.timestamp / 1 days) * 1 days) - 1 days ]; if (price >= base) return _lpFeeRate; uint256 rate = ((base - price) * 100) / base; if (rate >= 10) { return 21; } return _lpFeeRate; }
至此,完成复利模式下双向绑定推荐关系根据价格波动灵活设置手续费代码实现所有操作流程。
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载:
币安智能链BSC发币(合约部署、开源、锁仓、LP、参数配置、开发、故障处理、工具使用)教程下载:
多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载地址:
添加VX或者telegram获取全程线上免费指导
评论前必须登录!
注册