SuperAPI AI 工具集

nft

通用与其它

查看项目

更新于 10-15 23:44

技能介绍

用途:在 Midnight Network 上开发 NFT,包含 OpenZeppelin 的 NonFungibleToken(Compact 版类 ERC721 实现)与 Midnight 原生代币操作(屏蔽/未屏蔽),覆盖铸造、转移、授权、元数据 URI 及 NFT 隐私模式。

主要能力:NonFungibleToken 支持 Uint<128> 代币 ID、向 ECDSA 公钥或合约地址转移、单代币与操作员授权、每代币元数据 URI、Pausable 与 Ownable 模块;暂不支持合约间转移(可用 _unsafeTransfer)。原生模式提供未屏蔽(公开)与屏蔽(私密)两种 NFT:未屏蔽用 ledger Map 记录 owners 与 tokenURIs;屏蔽用 persistentCommit 存承诺,转移时以 ZK 证明所有权。

使用方式:需 Node.js v22.15+ 与 Compact 开发工具,安装命令为 curl --proto '=https' --tlsv1.2 -sSf https://github.com/midnightntwrk/compact/releases/latest/download/compact-installer.sh | sh,并 source $HOME/.local/bin/env。通过 git submodule add https://github.com/OpenZeppelin/contracts-compact.git 引入合约库,在 contracts-compact 目录执行 SKIP_ZK=true yarn。文件按 contracts/NonFungibleToken.compact、contracts/MyNFT.compact、test/ 放置。编译命令:cd contracts && compact compile MyNFT.compact artifacts/MyNFT。部署用 @midnight-ntwrk/compact-js 与 midnight-js-contracts。

适用场景:公开艺术与收藏品、透明 DAO 治理代币适合未屏蔽 NFT;机密资产、私密收藏品、合规按需披露适合屏蔽 NFT。

限制:不支持 Uint<256> 代币 ID(电路限制,最大 Uint<128>);暂不支持合约间转移;Compact 不支持字符串拼接,需按代币存完整 URI;元数据 URI 公开,存储时需 disclose();屏蔽转移需所有者签名并以 callerPublicKey() 验证;需注意 tokenId 溢出。费用方面资料仅提及 DUST 费用及预览网 1AM 赞助,具体价格暂未提供。