1. 事件触发在NFT交易完成时,触发事件:
emit NftBought(tokenId, seller, msg.sender, price, royaltyReceiver, royaltyAmount);
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

3. 其他追踪方案的比较分析

虽然本实现选择了基于事件的方案,但了解其他方案的优劣势也很重要:

  1. 合约内部存储
    优势:数据检索便捷
    劣势:存储成本高,gas消耗大

  2. 链下数据库
    优势:查询性能好,成本低
    劣势:需要额外的数据同步机制

  3. The Graph
    优势:提供强大的查询能力
    劣势:需要部署和维护子图

4. 查询 NFT 历史交易记录

在我们基于事件Event的历史交易记录中,我们可以使用scaffold-eth-2框架🚪useScaffoldEventHistory钩子去获取链上事件的数据。最终,利用 map 遍历存储的记录,展示历史交易。

import { useScaffoldEventHistory } from "~~/hooks/scaffold-eth";

// 历史记录事件
    const { data: buyEvents } = useScaffoldEventHistory({
        contractName: "myNFT", // 合约名
        eventName: "NftBought", // 事件名
        fromBlock: 0n, // 从第0个区块开始监听事件
        filters: { tokenId: BigInt(tokenId) }, // 过滤特定NFT的历史记录
        blockData: true, // 获取区块数据以获取时间戳
        watch: true, // 轮询更新
    });
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

在完成 NFT 购买后,购买详情页会显示以下历史交易记录:

在这里插入图片描述


总结

本文详细探讨了以太坊 NFT 版税机制和交易记录的存储与查询实现。首先,介绍了 EIP-2981 标准及其在智能合约中的应用,说明了如何通过设置版税信息和计算版税来确保创作者在二级市场交易中的收益。接着,分析了 NFT 交易记录的重要性,并提供了基于链上事件的存储方案,这种方案不仅确保了数据的可信性,还大幅降低了 gas 成本。此外,本文还比较了不同的追踪方案,包括合约内部存储、链下数据库和 The Graph,帮助开发者根据需求选择合适的方案。

在实现交易记录查询时,我们展示了如何通过 scaffold-eth-2 框架的 useScaffoldEventHistory 钩子来获取历史交易记录,并将其在前端展示。最后,文章讨论了 NFT 版税机制在市场中的应用与争议,展望了未来版税机制可能的发展趋势。

希望本文能帮助你深入理解 NFT 的版税和交易记录的实现方式,提供更清晰的思路和解决方案。如果你对这些话题有任何问题或想法,欢迎在评论区与我们分享讨论 🌹

data-report-view="{"mod":"1585297308_001","spm":"1001.2101.3001.6548","dest":"http://iyenn.com/rec/1645810.html","extend1":"pc","ab":"new"}">> id="blogVoteBox" style="width:400px;margin:auto;margin-top:12px" class="blog-vote-box"> class="vote-box csdn-vote" style="opacity: 1;"> class="pos-box pt0" style="height: 222px; visibility: visible;"> id="blogExtensionBox" style="width:400px;margin:auto;margin-top:12px" class="blog-extension-box"> class="blog_extension blog_extension_type2" id="blog_extension"> class="extension_official" data-report-click="{"spm":"1001.2101.3001.6471"}" data-report-view="{"spm":"1001.2101.3001.6471"}"> class="blog_extension_card_left"> class="blog_extension_card_cont"> class="blog_extension_card_cont_r"> 微信名片
注:本文转载自blog.csdn.net的启舰的文章"https://blog.csdn.net/harvic880925/article/details/102850436"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接

评论记录:

未查询到任何数据!