主页 > 国内怎么下载imtoken > 币安智能链BSC发币教程-添加池分红USDT和持有人分红USDT的分发器代码差异【

币安智能链BSC发币教程-添加池分红USDT和持有人分红USDT的分发器代码差异【

国内怎么下载imtoken 2023-10-06 05:11:47

币安智能链BSC发币教程——加池分红usdt和持币分红usdt的派发器代码区别【pdf+视频币安链BSC发币教程下载】

一、说明

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.完整合约源码如下

币安智能链BSC发币教程——加池分红usdt和持币分红usdt的派发器代码区别【pdf+视频币安链BSC发币教程下载】

4、合约部署、开源、上线兑换、动态参数配置教程如下

币安智能链BSC发币教程——加池分红usdt和持币分红usdt的派发器代码区别【pdf+视频币安链BSC发币教程下载】

源码及合约部署、开源、在线交流、动态参数配置教程下载地址:

隐藏内容在这里!

登录查看!

pdf+视频币安智能链BSC代币发行教程及多模式投资组合合约源码下载:

币安智能链BSC发币(合约部署、开源、锁仓、LP、参数配置、开发、故障排除、工具使用)教程下载:

币安智能链BSC发币教程——加池分红usdt和持币分红usdt的派发器代码区别【pdf+视频币安链BSC发币教程下载】

多模式(销毁、回流至指定营销地址、本币和任意币种分红、邀请推广八代收益、LP加池分红、交易分红、复利分红、NFT分红、自动建池、动态手续费,定时开仓,回购)组合合约源码下载:

币安智能链BSC发币教程——加池分红usdt和持币分红usdt的派发器代码区别【pdf+视频币安链BSC发币教程下载】

币安智能链BSC发币教程——加池分红usdt和持币分红usdt的派发器代码区别【pdf+视频币安链BSC发币教程下载】

pdf+视频币安智能链BSC代币发行教程及多模式组合合约源码下载地址:

隐藏内容在这里!

登录查看!

添加VX或telegram,获取全程在线免费指导

币安智能链BSC发币教程——加池分红usdt和持币分红usdt的派发器代码区别【pdf+视频币安链BSC发币教程下载】