NFT 合约实战

📘 30 章 · 从零到一 Solidity
01NFT 概述
什么是NFTFT区别应用场景ERC-721
02开发环境准备
Remix IDEMetaMask测试网络Goerli/Sepolia
03Solidity 基础回顾
合约结构状态变量数据类型uint/address/string
04映射与结构体
mappingstruct定义实例化存储元数据
05ERC-721 标准深入
IERC721IERC721MetadatabalanceOfownerOf/safeTransferFrom
06编写第一个NFT合约
继承OpenZeppelin构造函数名称与符号mint函数
07代币URI与元数据
tokenURIBase URIJSON元数据IPFS存储
08铸造函数优化
onlyOwnermaxSupply铸造价格白名单
09安全传输
safeTransferFromtransferFrom区别_beforeTokenTransfer重入防护
10合约事件
Event定义indexed参数TransferApproval
11所有权与访问控制
OwnableonlyOwnerAccessControl角色控制
12合约暂停机制
PausablewhenNotPaused紧急暂停应用场景
13批量操作
batchMint批量转账Gas优化技巧
14版税机制
EIP-2981版税计算接收地址设置
15合约升级
代理模式UUPS/Transparent可升级NFT存储布局
16测试基础
Foundry框架单元测试测试网部署验证
17高级测试
Fuzz测试不变性测试Gas报告分析
18合约安全
重入/整数溢出前端抢跑Slither静态分析
19Gas 优化
变量打包calldata/memory循环优化Merkle树
20链上随机数
Chainlink VRF随机属性稀有度分配
21动态 NFT
元数据变化链上状态L2方案随时间更新
22合约部署
Hardhat脚本多链部署Etherscan验证策略
23前端集成
Web3.js/Ethers连接钱包调用合约基础
24IPFS 去中心化存储
Pinata文件上传元数据持久化使用
25市场合约
挂单与成交取消挂单平台费用实现
26拍卖合约
英式拍卖荷兰拍卖拍卖结算实现
27碎片化 NFT
ERC-1155半同质化批量管理应用
28DAO 治理
NFT投票权Snapshot治理合约实现
29Layer2 与跨链
Optimism/Arbitrum跨链桥Wrapped NFT部署
30项目实战
从0到1合约审计上线运营要点