持币分红模式是根据用户持有通证的量做加权分红,也就是持币量越多获得的分红比例越大。再通证交易过程中,每笔都会有一定比例的代币作为交易手续费用在奖励所有持币用户,用户持币越多获得的分红比例越大。分红包括黑洞地址的代币分红。
与加权分红对应的是等值分红,分红的数量和用户持币量没有关系。每笔交易都会给所有用户等值分红相同比例的代币通证。
目前最主流的模式还是加权分红,持币越多,获得的代币分红越多。从逻辑上来说,这是合理。另外,流动性也会获得对应的比例的分红,流动性有自己的通证地址,并且持有通知,获得对应比例的代币是合理的。
合约中实现持币分红的核心代码算法如下
function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); }
transfer函数代码如下:
function _transfer(address sender, address recipient, uint256 amount) private { 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(_tTotal <= MAX_STOP_FEE_TOTAL) { removeAllFee(); _transferStandard(sender, recipient, amount); } else { if(_isExcludedFromFee[sender]) removeAllFee(); _transferStandard(sender, recipient, amount); if(_isExcludedFromFee[sender]) restoreAllFee(); } }
通过以上算法实现代币的加权持币分红。
至此,币安BSC智能链上加权方式持币分红合约代码完成。
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载:
多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载地址:
此内容仅供注册用户可见,请登录!
添加VX或者telegram获取全程线上免费指导
评论前必须登录!
注册