主页 > 国内怎么下载imtoken > 币安智能链BSC发币教程-添加池分红USDT和持有人分红USDT的分发器代码差异【
币安智能链BSC发币教程-添加池分红USDT和持有人分红USDT的分发器代码差异【
一、说明
1、加池分红,顾名思义,就是给指定币种增加流动性分红。 分红可以分配到usdt、bnb、doge等主流代币,也可以分配到任何指定币种。 只要增加流动性,就可以根据LP的权重分配其他币种。
2、持币分红是指持有自定义代币的钱包地址可以获得相应代币的分红,其他代币将根据钱包持币权重按相应比例进行分配。
注:虽然两种模式都是对其他币种进行分红,但是分红的方式和原理不同,实现主要分红功能的调度器合约代码也不同。
【附注20230124】
总结一下矿池分红和持币分红的主要区别:矿池分红按照用户实际持有LP的权重分配,币分红按照用户持有本币的权重分配; 池分红分配给ERC20代币和分配给BNB的实现方式不同usdt和比特币的区别,持币分红与usdt等其他ERC20代币采用的算法完全不同。 添加池分红分配器的原理与持有分红分配器的原理不同。 加池分红原理是分币,持币分红是分币骗子。 原理完全不同,不能放之四海而皆准。
2.调度员代码差异
1、持币分红分配人代码:
以下是主要用于实现代币分红的核心功能流程代码的实现
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);
}
上述代码的主要原理是每次有交易时,将对应的msg.sender地址添加到相关持币数组中。 遍历持币数组usdt和比特币的区别,结合相关代币权重对指定主流币进行分红。
2.增加池分红分配器代码
下面主要是添加池分红分配器,支持多币种分配,其构造函数如下:
contract MultTokenDistributor {
constructor (address token1, address token2) {
IERC20(token1).approve(msg.sender, uint(~uint256(0)));
IERC20(token2).approve(msg.sender, uint(~uint256(0)));
}
receive() external payable {}
以上分发器代码支持同时分发多种货币。 之所以这样设计,主要是考虑到入池的分红不一定只分成一种币种,而是可能以多种币种进行分配,所以需要支持多币种分配。
之所以在合约中包含receive()函数是为了支持WETH的分红
当交易触发相关代币兑换数量门槛和分红机制时,将根据权重实现池分红、持币分红等相关分红机制。
3.完整合约源码如下
4、合约部署、开源、上线兑换、动态参数配置教程如下
源码及合约部署、开源、在线交流、动态参数配置教程下载地址:
隐藏内容在这里!
登录查看!
pdf+视频币安智能链BSC代币发行教程及多模式投资组合合约源码下载:
币安智能链BSC发币(合约部署、开源、锁仓、LP、参数配置、开发、故障排除、工具使用)教程下载:
多模式(销毁、回流至指定营销地址、本币和任意币种分红、邀请推广八代收益、LP加池分红、交易分红、复利分红、NFT分红、自动建池、动态手续费,定时开仓,回购)组合合约源码下载:
pdf+视频币安智能链BSC代币发行教程及多模式组合合约源码下载地址:
隐藏内容在这里!
登录查看!
添加VX或telegram,获取全程在线免费指导