乐趣区

关于区块链:Conflux-NFT-开发者指南

近期,随着 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
存储押金:128

反对 IERC721Enumerable Code
txHash

Gas Used: 87,888

Code
txHash

Gas Used: 75,828
存储押金:192

不反对 IERC1155Enumerable Code
txHash

Gas Used: 53,514

Code
txHash

Gas Used: 42,356
存储押金:64

反对 IERC1155Enumerable Code
txHash

Gas Used: 123,547

Code
txHash

Gas Used: 76,689
存储押金:256



反对 Enumerable 后,mint 操作会带来更多存储押金破费:

Conflux
不反对 IERC721Enumerable Code
txHash

mint Gas Used: 37,796
mint 存储押金:128

反对 IERC721Enumerable Code
txHash

mint Gas Used: 64,296
mint 存储押金:320

不反对 IERC1155Enumerable Code
txHash

mint Gas Used: 34,974
mint 存储押金:64

反对 IERC1155Enumerable Code
txHash

mint Gas Used: 74,013
mint 存储押金:512


【更多材料,请查看 Conflux 开发材料包:https://forum.conflux.fun/t/c…】

退出移动版