我已经创建了一个ERC1155智能合同,它在opensea上非常好地工作-它发现uri和contractURI很好。但是,当我在testnet上添加NFT以询问元数据时,虽然NFT数据是准确的,但收集的数据似乎没有被获取。它将NFT放置在“无标题集合”选项卡中。
以下是智能契约功能:
function contractURI() public view returns (string memory) {
return theContractUri;
}下面是如何格式化联系人URI:
{
"collection" :{
"name": "Farmverse Farmers",
"image": "ipfs://bafkreic57ucjp6yrfjg4jt7x2533vm4vismg5gxm4phy4wkhbqlzydfvde/"
},
"collectible" :{
"name": "Farmverse Farmers",
"image": "ipfs://bafkreic57ucjp6yrfjg4jt7x2533vm4vismg5gxm4phy4wkhbqlzydfvde/"
},
"contract" :{
"name": "Farmverse Farmers",
"image": "ipfs://bafkreic57ucjp6yrfjg4jt7x2533vm4vismg5gxm4phy4wkhbqlzydfvde/"
},
"name": "Farmverse Farmers",
"description": "“The Farmers” is an NFT collection that contains 5555 unique, computer-generated little characters. Besides being collectibles these tokens are also your key to unlocking the wonders of Farmverse – a multiplayer play-to-earn online video game.",
"image": "ipfs://bafkreic57ucjp6yrfjg4jt7x2533vm4vismg5gxm4phy4wkhbqlzydfvde/",
"external_link": "https://farm-verse.com"
}所以我不明白,元问题从哪里获取集合名称?在shuld中,我把它放在我的contractURI或常规tokenURI中,以便集合名和图像在元问询手机中显示出来。
提前感谢!
发布于 2022-05-16 06:23:34
我想出来了。
看看在合同代码中可以做些什么:
string public name;
string public symbol;
event UpdateNameEvent(string oldName, string newName);
event UpdateSymbolEvent(string oldSymbol, string newSymbol);
constructor( string memory _name, string memory _symbol ) ERC1155('anything can be done here'){
name = _name;
symbol = _symbol;
}如果您想稍后进行更新,您可以使用代码进行更新。
function updateName(string memory newName) external onlyOwner{
string memory oldName = name;
name = newName;
emit UpdateNameEvent(oldName, name);
}
function updateSymbol(string memory newSymbol) external onlyOwner{
string memory oldSymbol = symbol;
symbol = newSymbol;
emit UpdateSymbolEvent(oldSymbol, symbol);
}https://ethereum.stackexchange.com/questions/125966
复制相似问题