blockchain - 使用remix 进行erc-721的发币 mint , on fuji test network
访问量: 915
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" }
看起来是这样的: