帮我用 solidity 写一段 nft 代码
时间: 2023-04-08 20:00:29 浏览: 119
好的,我可以帮您写一段 Solidity 代码来创建 NFT(非同质化代币):
```
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
contract MyNFT is ERC721 {
using Counters for Counters.Counter;
Counters.Counter private _tokenIds;
constructor() ERC721("MyNFT", "MNFT") {}
function mintNFT(address recipient, string memory tokenURI) public returns (uint256) {
_tokenIds.increment();
uint256 newItemId = _tokenIds.current();
_mint(recipient, newItemId);
_setTokenURI(newItemId, tokenURI);
return newItemId;
}
}
```
这段代码使用了 OpenZeppelin 的 ERC721 实现,它是一个标准的 NFT 合约。在这个合约中,我们定义了一个名为 `MyNFT` 的合约,它继承了 ERC721 合约。我们还使用了 Counters 库来跟踪 NFT 的数量。
`constructor` 函数用于初始化合约,它设置了 NFT 的名称和符号。
`mintNFT` 函数用于创建新的 NFT。它接受一个地址参数 `recipient`,表示 NFT 的所有者,以及一个字符串参数 `tokenURI`,表示 NFT 的元数据。在函数内部,我们首先增加了 NFT 的数量,然后使用 `_mint` 函数将 NFT 分配给所有者,并使用 `_setTokenURI` 函数设置 NFT 的元数据。最后,我们返回新创建的 NFT 的 ID。
希望这段代码能够帮助您创建自己的 NFT!