Conflux 树图链欣欣向荣,尤其是“数字藏品”等相关应用,如雨后春笋般涌现。但是随之而来的是良莠不齐的合约质量和标准兼容度。
"数字藏品"是在区块链上发行的具有一定文化背景、艺术价值或者收藏价值的“藏品”,需要和普通的非同质化代币 (NFT)相区分,相关接口需要更加规范和标准。
为了整个 Conflux 树图链上“数字藏品”应用的繁荣和可持续发展,为了应用之间方便集成,为了保证合约质量和安全,我们编写了《“数字藏品" 合约标准和编写规范》,请所有“数字藏品”开发者务必仔细阅读本文,并遵循以下标准和规范。如果合约不满足以下标准和编写规范,则不能称为是Conflux树图链上的 “数字藏品”。
1. 遵循 OpenZeppelin 标准
OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts) 提供了一个经过社区审查的智能合约库,其中包括了 ERC 721 (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) 和 ERC 1155 (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC1155/ERC1155.sol) 的实现。
在部署到 Conflux 链上之前,请确保你的合约 至少包含了 上述任一实现的全部内容。对于其他非 OpenZeppelin 的 ERC 721 和 ERC 1155 合约标准的实现,需要保证对外暴露的接口名称与 OpenZeppelin 的实现一致。
name 和 symbol 属性在合约中是必须的,否则无法在 ConfluxScan 和第三方应用上完整展示 NFT 信息。
2. 非同质化
任何时候 都要保证您的合约所发行的 “数字藏品” 是 非同质化的 : 每一个 tokenId 都只对应一个 “数字藏品”,不能存在一个 tokenId 下有多个副本的情况。
优先考虑使用 ERC 721 标准,足够满足大多数情况的使用。
如果希望使用 ERC 1155 标准,也请务必保证一个 tokenId 对应1个 “数字藏品”,以免造成用户对于“数字藏品“ 价值的疑虑。
3. 使用枚举函数
枚举接口的作用强调"去中心化"显示数据。使用枚举函数能方便第三方应用(ConfluxScan 和钱包等)查询您部署的合约保存的 NFT 信息,否则无法保证您的 NFT 能够被 ConfluxScan 和钱包正确显示。所有的 CRC-721 合约都 必须包含 以下合约中的全部枚举函数:
ERC721Enumerable: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/extensions/ERC721Enumerable.sol
CRC721Enumerable: https://github.com/conflux-fans/conflux-contracts/blob/main/contracts/token/CRC721/extensions/CRC721Enumerable.sol
所有的 CRC-1155 合约都 必须包含 以下合约中的全部枚举函数:
CRC1155Enumerable: https://github.com/conflux-fans/conflux-contracts/blob/main/contracts/token/CRC1155/extensions/CRC1155Enumerable.sol
更多枚举相关内容请参考: https://conflux-technical-support.gitbook.io/conflux-nft-kai-fa-zhi-nan/he-yue-mei-ju-han-shu-shuo-ming/mei-ju-kuo-zhan-enumeration-extension
4. 设置代付合约
Conflux 的代付机制通过一种赞助机制来补贴用户对智能合约的使用,通过引入内置的代付合约,与受到赞助的合约交互将不需要花费 CFX 来支付燃气费,让余额为零的新账户也能够调用智能合约。
因此,请务必在您的合约中 引入代付合约,并设置 燃气费代付,保证任何用户与你的合约交互都能被代付机制赞助而无需花费 CFX,在当下环境,这对于你的 NFT 应用的合规性很重要。范例工程合约 NFT 1.0 和 2.0 默认配置了代付,部署后在 https://confluxscan.net/sponsor 申请即可。
项目方如果希望获得代付设置方面的帮助,请联系: scan@confluxnetwork.org
代付机制详情请见:
Conflux 中的代付机制详解: https://forum.conflux.fun/t/conflux/11949
为合约设置 Sponsor: https://forum.conflux.fun/t/sponsor/13014
5. 合约验证
将合约部署到主网后,请务必在 ConfluxScan 上进行验证。
合约验证之后会有如下几个好处:
合约验证之后可在 Scan 上看到 Solidity 源码及 ABI,更加透明,人人可审查合约逻辑。
验证之后的合约可直接在 Scan 合约详情页,调用合约方法读取合约状态,或通过链接 Fluent 更新合约状态。
合约验证之后,Scan 会显示绿色✅标识,用户更放心。
如何验证合约请参考:
-
与合约交互:
https://conflux-technical-support.gitbook.io/conflux-nft-kai-fa-zhi-nan/step-1-ren-shi-confluxscan/yu-he-yue-jiao-hu#ru-he-yan-zheng-he-yue
ConfluxScan 验证合约: https://wiki.conflux123.xyz/books/tutorials/page/confluxscan
TO BE CONTINUED文章来源:https://www.toymoban.com/news/detail-793323.html
本规范持续更新中,更多内容请点击下方“阅读原文”文章来源地址https://www.toymoban.com/news/detail-793323.html
到了这里,关于Conflux 树图区块链 “数字藏品" 合约标准和编写规范的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!