跟着Alchemy边学边获取NFT

1.编写合约

首先我们来到合约编写页面

https://docs.openzeppelin.com/contracts/4.x/wizard

post image

2.将合约使用Remix修改和部署

导入Remix后合约的结构如下:

post image

我们需要修改如下几点,你们也可以直接将帝哥的代码覆盖你的函数即可:

1.该NFT是任何人都可以mint的,所以修改如下

  function safeMint(address to, string memory uri) public {
        require(_tokenIdCounter.current() <= MAX_SUPPLY, "I'm sorry we reached the cap");
        uint256 tokenId = _tokenIdCounter.current();
        _tokenIdCounter.increment();
        _safeMint(to, tokenId);
        _setTokenURI(tokenId, uri);
    }

2.修改NFT的供应总量

 uint256 MAX_SUPPLY = 100000; //将该代码添加在Counters.Counter private _tokenIdCounter下一行

3.获取测试token

我们去到下面的网站获取测试Token,同时需要大家去Alchemy注册一个账号

rinkebyfaucet.com

4.创建一个Alchemy的app

1.首先我们去到Alchemy注册一个账户,同时新建一个app(需要选择以太坊生态和Rikney)

www.alchemy.com

查看我们的Key

post image

5.将 Alchemy Rinkeby 添加到 Metamask 钱包,信息如下

  • Network name: Alchemy Rinkeby

  • New RPC URL: 你申请的app的地址,去上面的viewkey获取即可

  • Chain ID: 4

  • Currency Symbol: ETH

  • Block Explorer: https://rinkeby.etherscan.io/

6.部署发布我们的合约

部署合约

将出现一个 Metamask 弹出窗口,点击“签名”,然后继续支付 gas 费用。如果一切都按预期工作,10 秒后,应该会在 Deployed Contracts 下看到该合约:

0x027122fF7F9b1833914F513f07d2A3FB31D20eFD

已经部署完成合约

7.上传我们的NFT元数据

Pinata网站管理我们的元数据,我们只需要申请一个账号,会免费给我1g的存储空间。

app.pinata.cloud

mint我们的NFT,在safeMint输入我们的钱包地址和刚才编写的uri(ipfs://\<your\_metadata\_cid>)使用json的。

8.查看我们的NFT

我们去到OpenSea测试网站查看我们做的NFT

testnets.opensea.io

我们找到对应合约的NFT,现在我们看到的合约地址和我们刚才部署的合约地址是否对应上,现在还是盲盒,需要我们自己去操作下

9.开盲盒

在tokenUri 插入“0”作为 id 参数,点击call,它应该显示你的 tokenURI。