标记分类框架的输入规范文件

Blockchain App Builder 初始化命令读取输入规范文件,并使用多个工具生成基架项目,以协助链码开发过程。

您可以在同一规范文件中定义基于令牌分类框架的标准资产和令牌资产。不能根据同一规范文件中的多个标准定义标记资产。

有关在规范文件中包括标准资产的信息,请参见 Input Specification File

Blockchain App Builder 程序包中提供了以下可替换令牌资产的示例规范文件:
  • FiatMoneyToken.yml
  • LoyaltyToken-Go.yml

除了标准属性和节外,可替换令牌资产还支持规范文件中的 behavioranatomy 部分。可替换令牌资产还支持 standard 属性。以下示例显示了基于令牌分类框架的可替换令牌资产的规范文件的结构:

assets:
    - name: OBPTOK # Asset name
      type: token  # Asset type

      anatomy: 
          type: fungible # Token type
          unit: fractional # Token unit

      behavior: # Token behaviors
          - divisible: 
                decimal: 2  
          - mintable: 
                max_mint_quantity: 1000 
          - transferable
          - burnable 
          - roles: 
                minter_role_name: minter 

      properties:
          - name: currency_name # Custom attribute to represent the token in certain currency. This attribute is helpful for exchanging the tokens with fiat currency.
            type: string

          - name: token_to_currency_ratio # Custom attribute to specify the token to currency ratio. This attribute is helpful for exchanging the tokens with fiat currency.
            type: number

表 7-5 可替代标记规范文件的参数说明和示例

进入 说明 示例
type:

必须在 assets 部分中指定 type: token

assets:
    - name: OBPTOK # Asset name
      type: token  # Asset type
standard: standard 属性表示链代码生成期间要遵循的标记标准。可替换令牌仅支持 ttf+ 值。如果未为可替换令牌指定 standard 属性,则遵循令牌分类框架 (Token Taxonomy Framework,TTF) 标准。

      standard: ttf+ # Token standard
anatomy:
anatomy 部分具有两个可替换令牌的必需参数:
  • type: fungible

    可替换令牌的数量与同一类令牌的另一个相等数量具有相同的值。

  • unit: fractional

    可以根据指定的小数位数将小数标记细分为更小的单位。

anatomy: 
          type: fungible # Token type
          unit: fractional # Token unit
behavior: 本节介绍令牌的功能和限制。mintabletransferable 行为对于可替换令牌是必需的。
  • mintable:此强制行为支持铸造新的令牌实例。可选的 max_mint_quantity 参数指定可以铸造的标记的总数。如果未指定 max_mint_quantity 参数,则可以铸造任意数量的标记。
  • transferable:此强制行为支持转移令牌的所有权。
  • divisible:此可选行为描述如何细分标记。decimal 参数指定可使用的小数位数。使用小数位数可能的最小分数是可拥有的标记的最小单位。如果未指定 decimal 参数,则缺省值为零个小数位。
  • burnable:此可选行为支持停用或刻录令牌。Burning 不会删除令牌,而是将其置于无法使用的永久状态。燃烧是不可逆转的。
  • holdable:此可选行为指示是否可以在付款人和收款人之间暂挂标记余额。
  • roles:此可选行为将标记行为限制为具有特定角色的用户。目前有三个角色可用:minter_role_nameburner_role_namenotary_role_name。如果不指定角色,则任何用户都可以充当矿工、燃烧器或公证人。例如,如果未指定刻录者角色,则任何帐户用户隐式都具有刻录者角色。如果指定了刻录器角色,则在标记设置过程中,Token Admin 用户必须将刻录器角色显式分配给其他用户。
behavior:
  - mintable:
        max_mint_quantity: 20000
  - transferable
  - divisible:
        decimal: 1
  - burnable
  - holdable
  - roles:
        minter_role_name: minter
        burner_role_name: burner
        notary_role_name: notary

要创建使用不同 max_mint_quantity 参数的多个可替换令牌 ID,请为规范文件中的每个令牌 ID 创建单独的令牌资产,并在令牌资产和令牌 ID 之间建立 1:1 关系。

要创建使用相同 max_mint_quantity 参数或不使用 max_mint_quantity 参数的多个可替换令牌 ID,请在规范文件中创建单个令牌资产以用于所有令牌 ID。