本文主要是介绍NFT合约通论,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
NFT合约
一 需求
1 需要盲盒功能吗 ? – 需要
2 需要随机mint吗 ? 还是顺序mint, 默认顺序mint。
3 需要白名单功能吗 ?–不需要
(mapping映射白名单mapping(address => bool) public whiteList; or 默克尔tree)
4 基础功能
5
6 需要burn功能吗 ? --默认不需要
7 NFT转账功能?-- 不需要 ,需要的话 需要实现ERC721TokenReceiver接口
8 分账功能? --不需要
9 提款功能 --必须
10 传染性,怎么做?–认证的合约地址,合作方 --fugu不需要
二 外部依赖
部署NFT合约的地址和私钥
TokenURI (metadata地址)或baseUri
metadate内容和存储地址以及图片存储地址由合作方确认并提供。这边只负责合约。
三 安全:
1 重入攻击:解决:
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
nonReentrant修饰符
2 Gating 门控,防止bot和脚本
但这里有一件事不要做。过去,开发人员使用这样一个简单的限制:
这篇关于NFT合约通论的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!