Solidity 入門から断念まで(2)- ERC721 を発行するには?

将图片和 JSON 文件存到 IPFS

1. 下载安装 IPFS 客户端,详情参考 - 
https://github.com/ipfs/ipfs-desktop/releases

2. 上传小图片到 IPFS Files 中,直接客户端就可以操作

3. 获取图片的链接,之后用来制作 JSON 文件
https://ipfs.io/ipfs/QmZXFESAECpuh8yZZr8nGqQFr7JZyaRD5UAbRDji71mBvc

4. 上传小图片到 IPFS Files 中,直接客户端就可以操作

5. 制作 JSON 文件,并上传到 IPFS Files 中

{   "name": "NFT Renee",   "description": "NFT Renee Demo.",   "image": "https://ipfs.io/ipfs/QmZXFESAECpuh8yZZr8nGqQFr7JZyaRD5UAbRDji71mBvc",}

6. 获取 JSON 文件的链接,之后铸造NFT会用到
https://ipfs.io/ipfs/QmUCs2q8SbwS6r9cwzoV6N3D1yWg1mF2HAz3aqA5FLtVSF

创建 NFT 代币

1. 打开以太坊 Remix IDE:
https://remix.ethereum.org

2. 创建一个新的 Solidity 文件,nft.sol,粘贴如下代码:

// SPDX-License-Identifier: MITpragma solidity 0.8.15; import "https://github.com/0xcert/ethereum-erc721/src/contracts/tokens/nf-token-metadata.sol";import "https://github.com/0xcert/ethereum-erc721/src/contracts/ownership/ownable.sol"; contract newNFT is NFTokenMetadata, Ownable {   constructor() {    nftName = "RENEE NFT";    nftSymbol = "RENEE";  }   function mint(address _to, uint256 _tokenId, string calldata _uri) external onlyOwner {    super._mint(_to, _tokenId);    super._setTokenUri(_tokenId, _uri);  }}

3. 打开 DEPLOY & RUN TRANSACTIONS

4. 选择 Injected Web3 环境,链接钱包,点击 Deploy


然后等一会儿,NFT 合约就创建成功了!

Mint NFT 代币

  1. 等 deployment 完成后,打开 Deployed Contracts,打开 mint 函数
    - 在 _ton 中添加接收 NFT 的钱包地址。
    - 在 _tokenid 中输入任何数字值 (建议为1,因为它是第一个)。
    - 在 _uri 字段中,添加第一节获得的 JSON 文件的 URI。

2. 点击 Transact,再去 Metamask 里面点击确认。

然后再等一会,钱包地址中就有了这个 NFT。