我正在开发一个 Web3 项目,该项目允许用户通过可互换的特征来定制 NFT。该项目是使用 Next.js 作为前端并使用 wagmi 进行 Web3 集成构建的。
我目前面临的挑战之一是将我的 NFT 合约从 ERC-721 升级到 ERC721A,以提高批量铸造的 Gas 效率。
但是,我只有以下:
我的问题: 如何在不访问原始 .sol 文件的情况下从 ERC-721 升级或过渡到 ERC721A? 如果需要重新部署,确保与现有令牌及其元数据兼容的最佳方法是什么? 是否有任何工具或技术可以促进此过程,同时维护用于前端集成的当前 JSON ABI 结构? 如有必要,我愿意使用 ERC721A 编写新合约,但我希望获得有关如何在不影响用户的情况下顺利处理此过渡的指导。
任何解决此升级问题的技巧、最佳实践或资源将不胜感激!
我研究了升级合约的方法,但大多数解决方案都需要访问原始 .sol 文件,而我没有。我希望找到一种仅使用 ABI 和合约地址进行升级的方法,但找不到明确的流程。
将我的 NFT 合约从 ERC-721 升级到 ERC721A
如果合约已经部署并且不使用代理模式,则它是不可变的并且无法更改代码。但是,您可以在新地址上发布新合约(ERC721A)。
ABI(应用程序二进制接口)只是一个接口,包含合约函数的输入和输出列表。但它不包含有关这些函数行为的任何信息(它们是否运行循环、递增数字等)。