pragma solidity ^0.8.0;
//import ERC1155 token contract from OpenZeppelin
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC1155/ERC1155.sol";
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol";
contract NFTXXX is ERC1155, Ownable {
uint256 public constant Arcadiy = 0;
uint256 public constant MAX = 1;
constructor() ERC1155("http://ipfs.io/ipfs/{id}.json") {
_mint(msg.sender, Arcadiy, 1, "");
_mint(msg.sender, MAX, 2, "");
}
function mint(address account, uint256 id, uint256 amount) public onlyOwner {
_mint(account, id, amount, "");
}
function burn(address account, uint256 id, uint256 amount) public {
require(msg.sender == account);
_burn(account, id, amount);
}
}有一些json文件是我用来做合同的。
{
"image": "ipfs://bafybeienrrxym2d3b5u7glcvdrz63rztxkue7p4bly4fcsma55nupmxsvy",
"description": "My first plant",
"name": "Cactus Arcadiy"}
{
"image": "ipfs://bafybeieh4lcllyimopk6pmacjyx4atgdqsywvsia6nuuq6niucdqxwbq5i",
"description": "GoodZone is a banya with pool",
"name": "Banya"}
我认为图片引用(“http://ipfs.io/ipfs/{id}.json"”)有问题,但我没有找到解决办法。
发布于 2022-02-09 13:20:20
不过,元数据中的图像uri正在工作。
您似乎将http://ipfs.io/ipfs/{id}.json视为NFT的元数据存储位置(实际上并非如此),这可能会导致错误,就像TOKEN_0 (Arcadiy)试图在http://ipfs.io/ipfs/0.json中检索元数据一样。
因此,您应该用自己的存储地址替换它,即将NFT元数据再次放置到ipfs,并将tokenURI设置为它。
https://stackoverflow.com/questions/70996012
复制相似问题