近期,随着 Conflux 生态的逐渐建设,大量优质生态利用在 Conflux 中部署,Conflux 公链欣欣向荣起来。尤其是 NFT 相干利用,如雨后春笋般涌现。然而随之而来的,是参差不齐的合约品质和规范兼容度。
为了整个 Conflux 链上 NFT 利用的凋敝和可继续倒退,为了利用之间不便集成,为了保障合约品质和平安,倡议所有 Conflux NFT 开发者 仔细阅读 本文。
遵循规范
NFT 开发者 应该 齐全仔细阅读并齐全遵循 EIP-721 或 EIP-1155 规范。
倡议 没有同质化代币和非同质化代币混合 应用场景的利用,采纳并遵循 EIP-721 规范。
规范合约接口和实现能够参考:
EIP-721:https://github.com/OpenZeppel…
EIP-1155:https://github.com/OpenZeppel…
通过 uri 或 tokenURI 办法获取的 NFT 元数据 URI 地址,倡议应用 placeholder 格局,而非每个 tokenId 存储一个 URI。
线下 NFT JSON 元数据信息 应该 遵循各个规范的 Metadata 局部, 倡议 不论是 721 还是 1155,都遵循 1155 的 Metadata JSON Schema 标准,蕴含 name、image、description 等字段,并在多语言反对上采纳 localization 字段和规范(而非应用非标准的构造和字段,比方 name_en 等)。
将来 ConfluxScan 或钱包利用,可能会对没有齐全遵循 EIP-721 或 EIP-1155 规范的合约,放弃反对或只提供无限的反对。
共建 Conflux 合约库
https://github.com/conflux-fa…
下面的 repo 蕴含了 Conflux 上罕用的合约工具,比方内置合约、721/1155 扩大等。开发者能够按需应用。
欢送所有开发者提 issue 或 pr,独特丰盛合约库内容。
Enumerable
思考到会给用户带来额定的 Gas 老本,EIP-721 中把可枚举扩大作为可选项,EIP-1155 规范间接去掉了可枚举扩大。
Conflux 链上 Gas 老本较低,初期有代付机制,开发者如果有强烈的需要,对于 1155 合约,能够采纳 Conflux 合约库中的 扩大实现。
枚举性能能够 发现合约曾经发行的和某个用户所领有的 NFT。如果在合约中实现,会带来额定的存储老本和 Gas 耗费,开发者须要认真权衡利弊。如果在利用中须要上述性能,强烈建议 在线下实现。将来 ConfluxScan 可能会对齐全遵循规范的合约提供相干服务,来代替枚举性能。
Enumerable Gas Cost 比拟
call safeTransferFrom, tokenId: 1, amount: 1, data: 0x
如果 1155 须要实现 Enumerable,倡议基于 CRC1155 presets
Ethereum | Conflux | |
---|---|---|
不反对 IERC721Enumerable | Code txHash Gas Used: 61,564 |
Code txHash Gas Used: 53,704 |
反对 IERC721Enumerable | Code txHash Gas Used: 87,888 |
Code txHash Gas Used: 75,828 |
不反对 IERC1155Enumerable | Code txHash Gas Used: 53,514 |
Code txHash Gas Used: 42,356 |
反对 IERC1155Enumerable | Code txHash Gas Used: 123,547 |
Code txHash Gas Used: 76,689 |
反对 Enumerable 后,mint 操作会带来更多存储押金破费:
Conflux | |
---|---|
不反对 IERC721Enumerable | Code txHash mint Gas Used: 37,796 |
反对 IERC721Enumerable | Code txHash mint Gas Used: 64,296 |
不反对 IERC1155Enumerable | Code txHash mint Gas Used: 34,974 |
反对 IERC1155Enumerable | Code txHash mint Gas Used: 74,013 |
【更多材料,请查看 Conflux 开发材料包:https://forum.conflux.fun/t/c…】