Back

blockchain - 使用remix 进行erc-721的发币 mint , on fuji test network

发布时间: 2022-04-30 01:35:00

refer to: https://forum.openzeppelin.com/t/create-an-nft-and-deploy-to-a-public-testnet-using-remix/6358

1. 首先你要有metamask, 链接到fuji network, 并且具备一些AVAX  ,参考:TODO文章的链接

2. 认领fraucet的话,大概每小时可以领到10个。

3. 打开remix ,先设置个好看的背景色

4. 通过这里创建一个 ERC721模板:

 https://wizard.openzeppelin.com/#erc721

设置一个最简单的属性即可

选择完之后,可以点击右侧的三个按钮:  复制粘贴, 保存到本地, 在remix中打开。

其实就是一个文件而已, 建议直接复制粘贴。

5. 在remix中可以修改 文件名, worksapce name:

6. 鼠标右键点击对应的文件, 点击 compile。可以看到会生成一堆东西。(npm, 等等)

8. 就可以看到左侧的菜单,

9. 编译好之后,选择 injected web3

10. 开始发布

11. 在弹出的 metamask 中,点击确认,

12. 重头戏来了, 开始调用合约方法,这里可以看到入口:

开始测试mint:

输入接收地址, 即可。

多做几次之后,就可以看到区块链浏览器上,出现了对应的记录:

https://testnet.snowtrace.io/token/0xe5951c52d9ff78b7b570b4249460054f3517a604#balances

接下来测试burn 功能: 参数token ID 填写 erc-721的id  ( 0, 1, 2 。。。)

并且当前操作用户需要是  该token 的拥有者。

蓝色按钮的方法调用都是不发起交易的

上图的ownerOf  方法,需要传入tokenid ,数字就行, 不用非得字符串。

转移 token id

如下图所示,我们可以看到,尾号 7cda, 有token id = 0 和3 的两个NFT

接下来我们使用transfer 来进行转移

在左侧输入参数,点击按钮, metamask中确认,右侧就会出现日志

可以看到, 出现了对应的转移

https://testnet.snowtrace.io/token/0xe5951c52d9ff78b7b570b4249460054f3517a604

查看nft holders:

发现对应的地址,在持有NFT的数量上 多了一个

我们再试试,root能不能把其他用户的NFT做转移,转到自己头上(上一步操作的反向操作)

结论是不行,如下图所示, 

Gas estimation errored with the following message (see below). The transaction execution will likely fail. Do you want to force sending?
Internal JSON-RPC error. { "code": 3, "message": "execution reverted: ERC721: transfer caller is not owner nor approved", "data": "0x08c379a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000314552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564000000000000000000000000000000" }

看起来是这样的:

Back