28个主要版本更新

31.0.0 2024年7月18日
30.0.0 2024年7月12日
29.0.0 2024年6月24日
28.0.0 2024年5月23日
0.0.0 2022年12月23日

4 in #nft

Download history 372/week @ 2024-04-30 158/week @ 2024-05-07 474/week @ 2024-05-14 674/week @ 2024-05-21 533/week @ 2024-05-28 618/week @ 2024-06-04 626/week @ 2024-06-11 503/week @ 2024-06-18 881/week @ 2024-06-25 421/week @ 2024-07-02 543/week @ 2024-07-09 726/week @ 2024-07-16 669/week @ 2024-07-23 779/week @ 2024-07-30 382/week @ 2024-08-06 743/week @ 2024-08-13

2,644 每月下载量
用于 8 个crate(7个直接使用)

Apache-2.0

3MB
52K SLoC

NFTs托盘

用于处理非同质化资产的工具。

概述

NFTs托盘提供了非同质化代币管理的功能,包括

  • 创建收藏
  • NFT铸造
  • NFT转移和原子交换
  • NFT交易方法
  • 属性管理
  • NFT销毁

要在您的运行时使用它,您需要实现 nfts::Config

支持的派发函数在 nfts::Call 枚举中进行了文档说明。

术语

  • 创建收藏:创建一个新的收藏。
  • NFT铸造:在收藏中创建新项目的动作。
  • NFT转移:将项目从一个账户发送到另一个账户的动作。
  • 原子交换:在不需要第三方服务的情况下,在账户间交换物品的行为。
  • NFT销毁:销毁一个物品。
  • 非同质化代币(NFT):每个单位具有独特特征的物品。此类物品在存在中只有一个实例,且只有一个拥有账户(尽管该拥有账户可以是代理账户或多重签名账户)。
  • 灵魂绑定NFT:从其铸造的账户中不可转移的物品。

目标

Substrate中的NFT组件旨在实现以下功能:

  • 允许账户无需许可即可创建NFT系列。
  • 允许命名(受许可)账户在系列内铸造和销毁独特物品。
  • 无需许可地在账户间转移物品。
  • 允许命名(受许可)账户冻结和解除冻结系列内或整个系列的物品。
  • 允许物品的所有者委托将物品转让给某些命名的第三方。
  • 允许第三方在不拥有NFT的情况下存储信息(例如保存游戏状态)。

界面

无需许可的调派操作

  • create:通过存入保证金创建一个新的系列。
  • mint:在系列内铸造新的物品(当铸造是公开的时)。
  • transfer:将一个物品发送给新的所有者。
  • redeposit:更新物品的保证金金额,可能释放资金。
  • approve_transfer:指定一个可以授权转让的委托人。
  • cancel_approval:撤销先前 approve_transfer 的效果。
  • approve_item_attributes:指定一个可以更改命名空间内物品属性的代表。
  • cancel_item_attributes_approval:撤销先前 approve_item_attributes 的效果。
  • set_price:设置物品的价格。
  • buy_item:购买一个物品。
  • pay_tips:支付小费,可用于支付创作者版税。
  • create_swap:创建一个交换NFT的出价,可选地包括一些同质化代币。
  • cancel_swap:取消先前创建的交换出价。
  • claim_swap:以原子方式交换物品。

受许可的调派操作

  • destroy:销毁一个系列。这将销毁系列中的所有物品并退还保证金。
  • force_mint:在系列内铸造一个新的物品。
  • burn:销毁系列内的一个物品。
  • lock_item_transfer:防止单个物品被转让。
  • unlock_item_transfer:撤销先前 lock_item_transfer 的效果。
  • clear_all_transfer_approvals:清除通过调用 approve_transfer 设置的所有转让批准。
  • lock_collection:防止系列中的所有物品被转让(使它们全部成为 soul bound)。
  • lock_item_properties:锁定物品的元数据或属性。
  • transfer_ownership:更改系列的所有者,移动所有相关的保证金。(单个物品的所有权将不受影响。)
  • set_team:更改系列的受许可账户。
  • set_collection_max_supply:更改系列的供应量上限。
  • update_mint_settings:更新系列的铸造设置。

元数据(受许可)调派操作

  • set_attribute:设置物品或系列的元数据属性。
  • clear_attribute:删除物品或系列的元数据属性。
  • set_metadata:设置物品的一般元数据(例如图像URL的IPFS地址)。
  • clear_metadata:移除项目的通用元数据。
  • set_collection_metadata:设置集合的通用元数据。
  • clear_collection_metadata:移除集合的通用元数据。

强制(即治理)可调用函数

  • force_create:创建新的集合(无法选择集合ID)。
  • force_collection_owner:更改集合的所有者。
  • force_collection_config:更改集合的配置。
  • force_set_attribute:设置属性。

请参阅Call枚举及其相关变体,以获取每个函数的文档。

许可:Apache-2.0

依赖关系

~17–32MB
~533K SLoC