- A+
最近defi领域比较热门的当属bitcoin了,该模式创新的实现了自动加池,回流任何币种到营销钱包地址,回流任何币种代币到回购钱包地址,分红任意币种到所有的持币地址。目前主要的分红币种是大狗DOGE和RACA,在每笔交易时都会扣除部分的手续费用来分流到指定钱包和分红。
代币的具体模式如下:
1、每笔交易扣除部分手续费自动转换为指定的任意币种回流到营销钱包。
2、每笔交易扣除部分手续费自动转换为指定的任意币种回流到回购钱包。
3、每笔交易扣除部分手续费暂存到中转地址,当中转地址代币数量累积达到指定数量时,触发自动交易。先锁住资金池,其他进程暂时中止交易,目的是保持价格稳定。然后卖出一半数量的代币转换为BNB,然后使用获得的BNB和剩下的一半组成交易对,添加流动性。
4、每笔交易扣除部分手续费暂存到中转地址,当中转地址代币数量累积达到指定数量时,触发自动交易转换为指定分红的任意币种,分红给持币超过指定数量的持币地址。
分红任意币种的核心代码如下:
if( canSwap &&
!swapping &&
!automatedMarketMakerPairs[from] &&
from != owner() &&
to != owner()
) {
swapping = true;
uint256 burnTokens = contractTokenBalance.mul(burnFee).div(totalFees);
super._transfer(address(this),deadWallet,burnTokens);
uint256 marketingTokens = contractTokenBalance.mul(marketingFee).div(totalFees);
swapAndSendToFee(marketingTokens);
uint256 swapTokens = contractTokenBalance.mul(liquidityFee).div(totalFees);
swapAndLiquify(swapTokens);
uint256 sellTokens = balanceOf(address(this));
swapAndSendDividends(sellTokens);
swapping = false;
}
分红任何币种的操作代码段
function swapAndSendDividends(uint256 tokens) private{
swapTokensForDOGE(tokens);
uint256 dividends = IERC20(DOGE).balanceOf(address(this));
bool success = IERC20(DOGE).transfer(address(dividendTracker), dividends);
if (success) {
dividendTracker.distributeDOGEDividends(dividends);
emit SendDividends(tokens, dividends);
}
}
分红代码跟踪器,通过分红代码跟踪器来实现真实的分红
function process(uint256 gas) public returns (uint256, uint256, uint256) {
uint256 numberOfTokenHolders = tokenHoldersMap.keys.length;
if(numberOfTokenHolders == 0) {
return (0, 0, lastProcessedIndex);
}
uint256 _lastProcessedIndex = lastProcessedIndex;
uint256 gasUsed = 0;
uint256 gasLeft = gasleft();
uint256 iterations = 0;
uint256 claims = 0;
while(gasUsed < gas && iterations < numberOfTokenHolders) {
_lastProcessedIndex++;
if(_lastProcessedIndex >= tokenHoldersMap.keys.length) {
_lastProcessedIndex = 0;
}
address account = tokenHoldersMap.keys[_lastProcessedIndex];
if(canAutoClaim(lastClaimTimes[account])) {
if(processAccount(payable(account), true)) {
claims++;
}
}
iterations++;
uint256 newGasLeft = gasleft();
if(gasLeft > newGasLeft) {
gasUsed = gasUsed.add(gasLeft.sub(newGasLeft));
}
gasLeft = newGasLeft;
}
lastProcessedIndex = _lastProcessedIndex;
return (iterations, claims, lastProcessedIndex);
}
派发器核心代码如下:
function distributeDOGEDividends(uint256 amount) public onlyOwner{
require(totalSupply() > 0);
if (amount > 0) {
magnifiedDividendPerShare = magnifiedDividendPerShare.add(
(amount).mul(magnitude) / totalSupply()
);
emit DividendsDistributed(msg.sender, amount);
totalDividendsDistributed = totalDividendsDistributed.add(amount);
}
}
至此,完成分红任何代码到持币钱包地址的合约代码实现。
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载:
多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载地址:
本文是全系列中第42 / 237篇:通证发行
- 我的微信
- 这是我的微信扫一扫
- 我的电报
- 这是我的电报扫一扫