- A+
一、说明
在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发币教程及多模式组合合约源代码下载地址:
本文是全系列中第10 / 17篇:NFT发行
- 币安链BSC上NFT发行教程——BSC链铸造nft并转账(空投)到其他钱包地址【pdf+视频BSC链NFT发行教程下载】
- 币安链BSC上NFT发行教程——NFT元数据模板,支持上线opensea并交易【pdf+视频BSC链NFT发行教程下载】
- 波场链TRX上NFT发行教程——web页面上传NFT头像到IPFS链【pdf+视频TRX链NFT发行教程下载】
- 币安链BSC上NFT发行教程——两种方式在BSC币安链上铸造NFT及部署NFT合约【pdf+视频BSC链NFT发行教程下载】
- 币安链BSC上NFT发行教程——NFT单品铸造完成后无法在tp钱包显示图片故障处理及解决方法【pdf+视频BSC链NFT发行教程下载】
- 币安链BSC上NFT发行教程——自动创建tokenid的NFT合约源码实现【pdf+视频BSC链NFT发行教程下载】
- 比特币NFTs: Ordinals NFT 图片怎么从rawTransaction原始交易中解析
- NFTScan | 06.12~06.18 NFT 市场热点汇总
- Safe 多签钱包签名消息, 支持签名登录 Opensea
- 币安BSC智能链发币教程——扫描所有NFT,根据NFT持有情况分红代币【pdf+视频BSC发币教程下载】
- 币安链BSC上NFT发行教程——NFT根据拍卖次数指数型递增增加价格【pdf+视频BSC链NFT发行教程下载】
- 币安链BSC上NFT发行教程——NFT合约中的代理人针对所有NFT的授权功能【pdf+视频BSC链NFT发行教程下载】
- 如何使用 Circom 和 SnarkJS 实现极简 NFT zkRollup
- 币安BSC智能链NFT Market搭建教程——搭建基于BSC链的NFT Market合约实现【pdf+视频BSC NFT教程下载】
- 波场链TRX上NFT发行教程——NFT中元数据合约源代码实现【pdf+视频TRX链NFT发行教程下载】
- 波场链TRX上NFT发行教程——部署波场链上的NFT合约【pdf+视频TRX链NFT发行教程下载】
- 波场链TRX上NFT发行教程——使用腾讯云存储代替ipfs存储的实现方式【pdf+视频TRX链NFT发行教程下载】
- 我的微信
- 这是我的微信扫一扫
-
- 我的电报
- 这是我的电报扫一扫
-