一、说明
在defi生态建设中,通常会先部署代币,代币运营过程中会伴随发行NFT作品。然后代币会与NFT作品联动,为了推进NFT的交易情况,赋能NFT作品价值,增加NFT的流动性。通常会设置代币的交易手续费分红,按照用户持有NFT的情况,分红代币交易手续费到 NFT持有地址。并且按照NFT的持有权重分红代币交易手续费。
以下合约代码实现功能:
- 设置不同的买卖手续费,每笔交易扣除指定数量的税费用于NFT持有分红
- 扫描所有NFT collection,根据tokenID遍历所有NFT单品
- 按照地址持有NFT的数量权重,做代币的加权分红,可以分红本币也可以跨池兑换本币为usdt后直接分红usdt到NFT持有地址
- 遍历NFT过程设置gas费用上限,分批次实现NFT持有分红,并且实现断点续传功能即下次NFT持有分红从上传分红的结束节点继续分发,避免出现gas费用过高,NFT持有节点重复分红,后进节点长期无法获取分红的现象
- 设置NFT持有分红代币冷却时间,避免频繁分红消耗过高的gas费用,影响代币的正常交易
- 通过代币派发器实现usdt的分发到NFT持有地址,合理控制分红频次和数量
二、合约代码实现
function processLargeNFTReward(uint256 gas) private { if (processLargeNFTBlock + processLargeNFTBlockDebt > block.number) { return; } uint totalNFT = nft.totalSupply(); if (0 == totalNFT) { return; } uint256 rewardCondition = nftRewardCondition; address sender = address(_tokenDistributor); if (balanceOf(address(sender)) < rewardCondition) { return; } uint256 amount = rewardCondition / totalNFT; uint256 gasUsed = 0; uint256 iterations = 0; uint256 gasLeft = gasleft(); address shareHolder; uint256 limitAmount = _limitAmount; uint256 shareHolderBalance; while (gasUsed < gas && iterations < totalNFT) { if (currentLargeNFTIndex >= totalNFT) { currentLargeNFTIndex = 0; } if (!excludeNFTHolder[shareHolder]) { if (0 == limitAmount || _feeWhiteList[shareHolder]) { _tokenTransfer(sender, shareHolder, amount, false); _nftReward[shareHolder] = amount; } else { shareHolderBalance = balanceOf(shareHolder); if (shareHolderBalance + amount <= limitAmount) { _tokenTransfer(sender, shareHolder, amount, false); _nftReward[sender] += amount; } } } gasUsed = gasUsed + (gasLeft - gasleft()); gasLeft = gasleft(); iterations++; } processLargeNFTBlock = block.number; }
以上代码实现功能:循环遍历NFT的tokenID,给所有NFT的持有地址按照权重分红交易手续费本币
三、NFT持有分红本币/USDT合约完整版本合约源代码
源码及合约部署、开源、上线交易所、动态参数配置教程下载地址:
此内容仅供注册用户可见,请登录!
至此,完成扫描所有NFT,根据NFT持有情况分红代币所有操作流程。
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载:
币安智能链BSC发币(合约部署、开源、锁仓、LP、参数配置、开发、故障处理、工具使用)教程下载:
多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:
pdf+视频币安智能链BSC发币教程及多模式组合合约源代码下载地址:
此内容仅供注册用户可见,请登录!
添加VX或者telegram获取全程线上免费指导
评论前必须登录!
注册