我正在尝试实现契约级元数据,所以“描述”、“图像”、external_link:等等出现在市场上,特别是OpenSea上。
我已经做了一个广泛的论坛搜索,没有任何已经解决这一问题,所以希望这条线将提供一些启示。
我在Remix中增加了以下几行:
string _contractURI = "https://MY-CONTRACTURI-METADATA.com
function contractURI() public view returns (string memory) {
return _contractURI;
}这实际上成功地允许契约级元数据显示在OpenSea上!
但是,OpenSea在第一次使用JSON后不会刷新--它似乎只设置了一次,不能更改。
这是正确的吗?
OpenSea文档和论坛不提供任何建议。
接下来,代码正确地编译并部署到testnets,但是它不像Contracts等中给出的示例代码那样加载用于读和写契约的ABI接口。
如果我删除该字符串和函数,并将契约重新编译并重新部署到testnets,则用于读取和写入合同的ABI接口将加载。
我在这里做错了什么?
发布于 2022-07-15 09:01:45
我费了好大劲才找到了如何使这件事成功的办法,但最后还是很简单的。
使用元数据创建一个.json文件,并使用一个简单的http服务器提供它
即。如果您的文件名为metadata.json,您的代码应该如下所示
string _contractURI = "https://yourDomain.com/metadata.json"
function contractURI() public view returns (string memory) {
return _contractURI;
}OpenSea文档显式地表示URL https://docs.opensea.io/docs/contract-level-metadata
编辑:我在ERC1155 :D中测试了这个解决方案,我想ERC721也是一样的。
https://ethereum.stackexchange.com/questions/126845
复制相似问题