使用 Chainide 快速在 Conflux 上发行数字藏品

  • WTOM
  • 更新于 2022-06-28 16:50
  • 阅读 3685

ChainIDE 是一款云端智能合约 IDE ,开发者可以在其上编写智能合约,以部署在 Ethereum、BNB Chain、Polygon、Conflux、Nervos、Dfinity、Flow、Chain33、Fisco Bcos 等不同区块链上。它可以减少用户的开发周期,节省用户的时间和精力。

阅读该教程之前请先阅读以下两点内容,熟悉内容与环境:

  1. Conflux 树图区块链 “数字藏品" 合约标准和编写规范
  2. Conflux IDE环境配置

介绍

ChainIDE 是一款云端智能合约 IDE ,开发者可以在其上编写智能合约,以部署在 Ethereum、BNB Chain、Polygon、Conflux、Nervos、Dfinity、Flow、Chain33、Fisco Bcos 等不同区块链上。它可以减少用户的开发周期,节省用户的时间和精力。如果你有任何问题,请加入我们的ChainIDE Discord 向我们提问吧。

所需条件

  1. ChainIDE
  2. Fluent Wallet
  3. Solidity
  4. IPFS

你将做什么

跟随以下步骤来教您如何在 Conflux core testnet 上部署一份 CRC-721 智能合约:

  1. 安装 Fluent Wallet
  2. 编写一个 CRC-721 智能合约
  3. 编译一份 CRC-721 智能合约
  4. 部署一份 CRC-721 智能合约
  5. 创建一份展平化合约来用于验证
  6. 在 ConfluxScan 上验证这份已部署的合约
  7. 合约申请代付
  8. 数字藏品 MINT

1. 安装 Fluent Wallet

当我们想要与 Conflux 区块链上的智能合约进行交互时,Fluent Wallet 是一个不错的选择。

使用 Chrome, Firefox 或 Edge 浏览器打开 Fluent 官网 fluentwallet 并且添加浏览器扩展程序。

1.png

2. 编写一个CRC-721智能合约

你需要写下 ERC-721 智能合约中实现的所有必要函数。一般的 ERC-721 智能合约需要包含以下函数:

  • balanceOf(): 返回该用户拥有的 NFT 数量
  • ownerOf(): 返回该 token 的持有者地址
  • approve(): 授予地址 to 具有 tokenId 的控制权,方法成功后需触发 Approval 事件。
  • setApprovalForAll(): 授予地址_operator具有所有NFTs的控制权,成功后需触发ApprovalForAll事件。
  • getApproved(), isApprovedForAll(): 用来查询授权。
  • safeTransferFrom(): 转移NFT所有权,一次成功的转移操作必须发起 Transer 事件。
  • transferFrom(): 用来转移NFTs, 方法成功后需触发Transfer事件。调用者自己确认_to地址能正常接收NFT,否则将丢失此NFT。此函数实现时需要检查是否符合判断条件。

在 Conflux 中,所有的 CRC-721 合约还必须包含以下合约中的全部枚举函数:

ChainIDE 团队已经准备了一个的 CRC-721 合约,包括所有必需的函数,您可以使用该内置模板并根据您的要求增加/删除一些函数。

打开 ChainIDE 官网 ,然后点击“快速开始”。

2.png

点击“新建项目”,选择 Conflux 里的 CRC721 Showcase

3.png

现在你可以看到我们准备的合约 CRC721NatureAutoIdFixedMetadata.sol, 包含了所有必须的函数, 点击它,它可以针对于每一个 MINT 的 NFT 设置一个单独的 Metadata URL。

4.png

3. 编译一份 CRC-721 智能合约

在完成你的智能合约后,就可以编译智能合约了。 要编译,请到 compile 模块,根据你的源代码选择一个合适的编译器,并按下编译按钮,编译成功后,将生成源代码的ABI和字节码。 如果你的源代码中存在一些错误,它们将显示在 console 面板下。 你可能需要仔细阅读错误,相应地解决它并再次编译!

请记下你的源代码的编译器版本和许可证与是否开启优化,因为当你在 confluxscan 上验证你的智能合约时,会需要它。

5.png

4. 部署一份 CRC-721 智能合约

编译成功后,是时候将你编译的CRC-721智能合约部署到 Conflux core testnet了。 为此,你需要先安装一个 Fluent Wallet,在你的 Fluent Wallet 中添加Conflux core testnet,并且需要领取一些测试币来支付 gas,为此,你可以这样做。

  • 点击右上角“未连接” - “Injected Web3 Provider" - "Fluent Wallet"

6.png

7.png

  • 连接好后确保右下角网络为 “Conflux Test Network”,如果不是,则点击”切换网络“切换为”Test Network“;点击”存入CFX“可以获得测试币。

88.png

接着进入 “Depoly & Interaction "模块,在已编译的智能合约中选择你想部署的合约并部署 。

在这份教程中,我们将使用 CRC721NatureAutoIdFixedMetadata 这份智能合约来进行部署。

在构造函数参数,name 为你想要的数字藏品全名, symbol 为你想要的数字藏品通证名, 确认好后点击“部署”。

9.png

部署成功后,在 console 部分可以看到一个消息,提示你的智能合约已经成功部署。

5. 创建一份展平化合约来用于验证

为了验证一个 import 了其他智能合约的智能合约, 我们需要创建一个扁平化的文件, 一个扁平化的文件将所有导入合约的源代码放在了一个文件中, 要创建一个扁平化的文件,你需要先添加一个 "flattener "插件。

10.png

一旦 Flatterner 插件被激活,你就可以在屏幕右侧点击访问,如下图所示。 选择编译后的文件,点击扁平化按钮,创建一个扁平化的文件,一旦扁平化的文件被创建。 它将被自动复制到剪贴板上。 你可以把它粘贴到一个文件中,并保存起来供以后使用。

11.png

如果你想保存扁平化的文件,点击保存按钮,一个扁平化的合约就会被保存在当前仓库中。

12.png

保存的扁平化合约可以在资源管理器模块下访问。

13.png

6. 在 ConfluxScan 上验证这份已部署的合约

要验证之前部署的智能合约,点击这里。

14.png

点击下面的“合约” - “验证您的合约” 。

15.png

一旦你点击 “验证您的合约” ,你将被要求提供以下内容。

  • 合约地址: 你想验证的已部署智能合约的地址(默认已填写)
  • 合约名称: 该智能合约的文件名
  • 许可协议: 智能合约开头的许可协议
  • 编译器:当初编译选择的编译器版本
  • 优化:编译时是否开启优化(如当时选择的是,则运行选择 200)
  • 合约源码:flatten 后的合约代码

确认好后,点击“提交”

16.png

你的智能合约被验证了,恭喜你!

17.png

7. 合约申请代付

Conflux 的代付机制通过一种赞助机制来补贴用户对智能合约的使用,通过引入内置的代付合约,与受到赞助的合约交互将不需要花费 CFX 来支付燃气费,让余额为零的新帐户也能够调用智能合约。

因此,请务必在您的合约中引入代付合约,并设置燃气费代付,保证任何用户与你的合约交互都能被代付机制赞助而无需花费 CFX,在当下环境,这对于你的 NFT 应用的合规性很重要。ChainIDE CRC721 Showcase 默认配置了代付。

项目方如果希望获得代付设置方面的帮助,请联系刺客: cike@confluxnetwork.org

代付机制详情请见: https://forum.conflux.fun/t/conflux/11949

18.png

输入你的合约地址并按下回车键,确认无误后点击申请。

188.png

8. 数字藏品 Mint

要铸造一个数字藏品,你需要使用 mint 函数,并使用你想空投数字藏品的人的钱包地址, 并将上传到 IPFS 的藏品链接粘贴到 _metadata 输入栏中。

19.png

20.png

21.png

Mint 成功后,你可以在 Conflux Scan 上查看你的数字藏品了!

22.png

23.png

恭喜你,在 Conflux 上发行了属于你自己的数字藏品,非常酷!

点赞 0
收藏 2
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
WTOM
WTOM
江湖只有他的大名,没有他的介绍。