ERC721

微信扫码分享
VibeCoding: 可升级合约改造与部署

VibeCoding: 可升级合约改造与部署

视频 AI 总结:本课讲解了如何将 ERC721 合约改造为可升级版本,重点对比 OpenZeppelin 普通库与可升级库的区别,说明构造函数需替换为 `initialize` 函数,并强调存储布局对齐的重要性。演示了使用 UUPS 升级方案和 Foundry 插件进行部署与升级,并讨论了实际项目中所有者应使用多签管理以提升安全性。 关键信息: 1. 可升级合约需使用 `contracts-upgradeable` 库,避免存储布局冲突。 2. 构造函数需改为 `initialize` 函数,通过代理完成初始化。 3. UUPS 和透明代理是两种主流升级方案。 4. 升级必须保持存储布局对齐,否则会破坏数据。 5. 实际部署中,所有者权限应交给多签合约,防止单点风险。

15 0 0 2026-06-06 08:38
VibeCoding: NFT 发行及NFT市场实现

VibeCoding: NFT 发行及NFT市场实现

视频 AI 总结: 本视频演示了基于 OpenZeppelin 编写并部署 ERC721 NFT 合约至 Sepolia 测试网和 Optimism 主网的全过程,并进一步实现了 NFT 市场合约(支持上架、购买)以及使用 ERC1363 的 transferAndCall 实现一步购买。视频还展示了使用 Pinata 上传图片和元数据至 IPFS、管理环境变量、合约测试与代码提交流程。 关键信息: 1. 使用 OpenZeppelin 编写 ERC721 合约,部署时需将图片和 JSON 上传至 IPFS(如 Pinata),并配置 RPC URL。 2. 部署到不同网络只需更改 RPC 和账户资金;Optimism 使用 ETH 作为原生代币,Polygon 使用 POL。 3. NFT 市场上架需先授权(Approve),然后调用 list 将 NFT 锁定至合约;购买时原子性地交换 ERC20 和 ERC721。 4. 为支持一步购买,引入 ERC1363 的 transferAndCall,通过附加 data 传递 Token ID,实现单次转账完成购买。 5. 每次代码变更后应先查看 diff,再提交;清晰的提示词可减少与 AI 的对话次数,提高效率。

26 0 0 2026-05-22 09:40
NFT核心概念与实现

NFT核心概念与实现

视频 AI 总结: 视频核心讲解了NFT(非同质化代币)的核心概念、标准(ERC721和ERC1155)、实现方式(Token ID和Owner)以及元数据(Metadata)的存储与访问(IPFS/Filecoin/Arweave)。同时介绍了NFT的铸造流程、动态NFT、SBT(灵魂绑定代币)以及NFT市场的买卖交互逻辑(结合ERC20转账和回调函数)。 关键信息: 1. NFT的核心是每个代币拥有唯一的Token ID和Owner,通过TokenURI指向描述其属性的JSON元数据。 2. 主要标准:ERC721(单一非同质化代币)和ERC1155(支持多类代币及数量组合)。 3. 元数据通常存储在去中心化存储(如IPFS)以保证不可篡改,通过内容哈希(CID)访问。 4. 铸造NFT流程:上传图片到IPFS→编写包含图片CID的元数据JSON→上传JSON到IPFS→调用Mint函数写入合约。 5. 动态NFT通过合约内拼接Base64编码的JSON/ SVG实现,元数据可随链上数据变化。 6. SBT(灵魂绑定代币)通过禁止转账函数实现永久绑定。 7. NFT市场:卖家List上架,买家BuyNFT购买,涉及ERC20授权转账;也可用ERC1363的TransferAndCall实现一步购买(回调机制)。

52 0 0 2026-05-21 09:16
Vibecoding: Dune 查询NFT持仓与归属

Vibecoding: Dune 查询NFT持仓与归属

视频 AI 总结: 本节课围绕 NFT 仪表板作业展开,重点讲解如何基于 ERC721 转账数据计算某地址持有的 NFT 数量,以及如何确定每个 tokenId 的当前持有人。视频介绍了两种查询思路:一是将转入和转出记录做加一减一后汇总统计;二是按 tokenId 分组,并按区块时间和索引倒序排序,取最新一条记录作为最终 owner。前者效率更高,后者更适合追踪单个 NFT 的归属。 关键信息: 1. NFT 仪表板查询逻辑与 Token 仪表板类似,但 ERC721 与 ERC20 的统计方式不同。 2. ERC20 转账通常按 amount 统计;NFT 因为一次只转一个,所以转出记为 -1,转入记为 +1。 3. 第一种方法是把转入转出记录 Union 后做求和统计,可快速得到每个地址持有的 NFT 数量。 4. 第二种方法是按 tokenId 分组后排序,并对每组记录做 rank,取 rank=1 的最新记录确定当前 owner。 5. 若需求是统计“某地址持有多少 NFT”,第一种方法更高效,因为无需分组排序。 6. 若需求是追踪“某个 tokenId 当前属于谁”,第二种方法更合适。 7. totalHolder 的计算可以基于 owner 做 count。 8. 查询时可通过合约地址过滤项目数据,得到特定 NFT 项目的统计结果。 9. 课程强调:做面板本身不难,核心在于先把底层查询逻辑设计正确。

36 0 0 2026-04-17 23:30
VibeCoding: 如何开发 NFT 市场智能合约

VibeCoding: 如何开发 NFT 市场智能合约

视频 AI 总结: 视频详细讲解了如何构建一个NFT市场智能合约。核心内容包括ERC721 NFT的上架(list)和购买(buy)流程,以及使用ERC20代币进行支付。视频探讨了两种主要的交易实现方式:传统的授权(approve)机制和基于ERC-1363标准的`transferAndCall`回调机制。此外,还讨论了NFT在上架后是否由市场合约托管、并发购买的处理逻辑,以及后端如何通过监听事件来维护市场状态。 **关键信息:** 1. **核心合约:** 涉及NFT合约 (ERC721)、支付代币合约 (ERC20) 和 NFT市场合约。 2. **主要角色:** 卖家 (Alice) 和买家 (Bob)。 3. **核心功能:** * **上架 (List):** 卖家将NFT挂牌出售,设定价格。 * **购买 (Buy):** 买家购买已上架的NFT。 4. **交易实现机制:** * **授权模式 (Approve):** 卖家需授权市场合约转移其NFT,买家需授权市场合约转移其支付代币。 * **回调模式 (ERC-1363 `transferAndCall`):** 买家通过一次交易将支付代币连同NFT ID等附加数据发送给市场合约,市场合约通过回调函数完成购买,简化了买家操作。 5. **NFT托管方式:** * **市场合约托管:** 卖家上架时将NFT转移至市场合约,确保交易成功率。 * **卖家自行保管:** NFT在上架后仍由卖家持有,直到成交时才转移。此方式需市场后端监听NFT转移事件以处理下架,避免买家购买失败。 6. **并发处理:** 区块链交易是顺序执行的,不存在真正的并发购买。交易排序由矿工根据Gas费等因素决定。 7. **市场后端作用:** 对于NFT由卖家自行保管的情况,市场后端需监听NFT转移事件,确保上架信息与实际持有状态一致,及时下架已被转移的NFT。 8. **代码实现细节:** 使用`mapping`和`struct`存储上架信息,事件(Event)的触发,以及必要的检查(如余额、所有权)。 9. **测试:** 强调编写测试用例的重要性,包括模拟用户操作(`Prank`)、设置初始条件和验证交易结果。

67 0 0 2026-03-13 10:17
课前讨论:ERC721 合约与数字签名问题

课前讨论:ERC721 合约与数字签名问题

视频 AI 总结: 该视频主要讨论了关于 ERC721 合约和数字签名的问题。首先,有同学对 ERC721 合约中助币函数的参数传递方式存在疑问,课件中传递的是 Token URL,而挑战中传递的是地址和 Token ID。老师解释说 ERC721 协议本身并不限制 Token ID 的规则,关键在于确定 Token ID 的所有者。其次,讨论了数字签名中私钥的安全性问题,解释了非对称加密的特点,即可以通过签名信息推导出签名者的地址,而无需上传私钥。 关键信息: * ERC721 合约中 Token ID 的规则可以自定义,关键在于确定所有者。 * OpenZeppelin 提供了多种 ERC721 的实现方式,包括自增的 Token ID。 * 数字签名采用非对称加密,可以通过签名信息推导出签名者的地址,无需上传私钥。 * 签名后的信息可以还原出签名者的公钥,公钥对应地址。

160 0 0 2025-08-09 12:14
ERC721标准与NFT铸造

ERC721标准与NFT铸造

视频 AI 总结: 该视频主要讲解了链上合约中与 Token 交互的两种主要类型:同质化 Token (ERC20) 和非同质化 Token (NFT/ERC721),并重点介绍了 ERC721 标准及其特性,以及如何铸造 NFT。视频还提到了 ERC1155 标准,SBT (不可转让的 NFT) 以及去中心化存储方案 IPFS 和 Arweave。最后,视频布置了一个练习,即编写一个简单的 NFT 市场合约。 关键信息: * ERC721 标准的 NFT 具有独一无二的特性,每个 Token 都有唯一的编号 (Token ID)。 * NFT 的独特性通过 Token ID 及其对应的描述 (Metadata) 来表达,Metadata 通常是一个指向 JSON 文件的 URL,JSON 文件包含 NFT 的图片、属性等信息。 * ERC721 接口规范定义了一些函数和接口,例如 Safe Transfer Flow,用于安全地转移 Token。 * OpenZeppelin 提供了 ERC721 的常用实现,包括核心实现、Metadata 处理和 Immutable 实现。 * 铸造 NFT 需要准备好原始数据 (图片、其他数据),并将其存储在去中心化存储 (IPFS 或 Arweave) 中。 * SBT 是不可转让的 NFT,通过在转让方法中直接 revert 实现。 * ERC1155 结合了 ERC20 和 ERC721 的特性,允许发行多个相同类型的 Token。 * 练习:编写一个简单的 NFT 市场合约,允许用户上架和购买 NFT。

242 0 0 2025-07-19 13:59
第 3 课: 智能合约与数字资产

第 3 课: 智能合约与数字资产

区块链入门课程的第 3 课: 智能合约与数字资产发行* 介绍了如何使用智能合约来发行和管理不同类型的数字资产,以及各种相关的标准和应用场景。 **主要内容包括:** - **智能合约的回顾:** 强调了智能合约的几个特点,包括无需许可的调用、自动执行、不可篡改以及运行状态的透明可追溯性,这些特性使得智能合约成为管理资产的“信任机器”。 - **数字资产的分类:** 将资产分为同质化(Fungible Token, FT)和非同质化(Non-Fungible Token, NFT)两种,并解释了它们的区别和应用场景。 - 同质化 Token(FT): - 解释了 ERC20 标准,以及如何使用代码来表示和发行同质化的 token。 - 讨论了同质化 token 的不同类型,包括功能型 token、稳定币和权益型 token,并列举了一些案例,如 LINK、ETH、USDC、USDT、STETH 和 UNI。 - 介绍了 ERC20 的一些扩展标准,如 ERC1363、ERC77(提升支付能力)、ERC2622(gasless token)、ERC2022(离线授权)以及 ERC1400 和 ERC1404(证券型 token)。 - 非同质化 Token(NFT): - 解释了 NFT 的价值来源,以及如何在合约中实现 NFT 的表示和存储。 - 提到了 IPFS 和 Arweave 两种去中心化存储方式,用于存储 NFT 的资源文件。 - 介绍了 ERC1155 标准,它混合了 FT 和 NFT 的属性,并讨论了 NFT 的各种应用,包括 PFP(头像)、数字内容所有权、金融类 NFT、功能类 NFT 和身份凭证类 NFT(如 SBT)。 - 举例 propy 这个项目,说明了 NFT 在房产领域的应用。 - 其他链上的资产发行标准: - 简要介绍了其他链上的一些资产发行标准,如 BNB Chain 上的 BEP-20、Tron 上的 TRC-20,以及比特币和 Solana 上发行资产的方式。

3126 0 0 2025-04-27 09:49