ERC-721 的输入规范文件
Blockchain App Builder 初始化命令读取输入规范文件,并使用多个工具生成基架项目,以协助链码开发过程。
您可以在同一规范文件中定义基于 ERC-721 标准的标准资产和令牌资产。以下限制适用于包括 ERC-721 标记资产定义的规范文件:
- 不能根据同一规范文件中的多个标准定义标记资产。
- 不能在单个规范文件中定义多个不可替换的标记资产。
令牌所有者可以更新不可替换令牌资产的定制属性值。
有关在规范文件中包括标准资产的信息,请参见 Input Specification File 。
区块链应用程序构建器包中提供了以下 ERC-721 令牌资产的示例规范文件:
NFTArtCollectionMarketPlace with ERC-721-Typescript.yml
除了标准属性和节外,不可替代的标记资产还支持规范文件中的 behavior
、anatomy
和 metadata
部分。不可替代的令牌资产还支持 standard
和 symbol
属性。以下示例显示了 ERC-721 令牌资产的规范文件的结构:
assets:
- name: ArtCollection #Asset name
type: token #Asset type
symbol: ART # Token symbol
standard: erc721+ # Token standard
anatomy:
type: nonfungible # Token type
unit: whole #Token unit
behavior:
- indivisible
- singleton
- mintable:
max_mint_quantity: 20000
- transferable
- burnable
- lockable
- roles:
minter_role_name: minter
properties: # Custom asset attributes for non-fungible tokens
- name: price # Custom asset attribute to set the price of a non-fungible token in the marketplace
type: number
- name: on_sale_flag # Custom asset attribute maintains non-fungible token selling status in the marketplace
type: boolean
metadata: # Use this section to maintain the metadata on the blockchain. Only the user creating the non-fungible token can assign metadata attribute values, which cannot be updated later.
- name: painting_name
type: string
- name: description
type: string
- name: image
type: string
- name: painter_name
type: string
表 7-6 ERC-721 标记规范文件的参数说明和示例
进入 | 说明 | 示例 |
---|---|---|
type: |
必须在 |
|
symbol: |
symbol 属性表示标识标记合同的符号,例如 ART 。通常,符号的长度为 3 到 4 个字符。
|
|
standard: |
standard 属性对于不可替代的令牌是必需的。它表示链代码生成期间要遵循的标记标准。在 Blockchain App Builder 中,不可替代的代币遵循 ERC-721 标准的部分版本。有关更多信息,请参见 Limitations 。
|
|
anatomy: |
anatomy 部分具有两个不可替代标记的必需参数:
|
|
behavior: |
本节介绍令牌的功能和限制。mintable 、transferable 、singleton 和 indivisible 行为对于不可替代的令牌是必需的。
|
|
metadata: |
在示例中, |
|
限制
Blockchain App Builder 为 ERC-721 标准提供了部分支持。当前,不支持以下 ERC-721 事件和方法。
事件:
event Transfer
event Approval
event ApprovalForAll
方法:
approve
getApproved
setApprovalForAll
isApprovedForAll