Fichier de spécification d'entrée pour le cadre de taxonomie de jetons

La commande d'initialisation du générateur d'applications de chaîne de blocs lit le fichier de spécification d'entrée et génère le projet échafaudé avec plusieurs outils pour faciliter le processus de développement de code de chaîne.

Vous pouvez définir des ressources standard et des ressources de jeton basées sur le cadre de taxonomie de jetons dans le même fichier de spécification. Vous ne pouvez pas définir des ressources de jeton en fonction de plusieurs normes dans le même fichier de spécification.

Pour plus d'informations sur l'inclusion de ressources standard dans le fichier de spécification, voir Fichier de spécification d'entrée.

Les exemples de fichiers de spécification suivants pour les ressources de jeton fongible sont disponibles dans le package Blockchain App Builder :
  • FiatMoneyToken.yml
  • LoyaltyToken-Go.yml

En plus des propriétés et des sections standard, les ressources de jeton fongible prennent en charge les sections behavior et anatomy dans le fichier de spécification. Les ressources de jeton fongibles prennent également en charge la propriété standard. L'exemple suivant montre la structure d'un fichier de spécification pour une ressource de jeton fongible basée sur le cadre de taxonomie de jetons :

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

Tableau 7-5 : Descriptions et exemples de paramètres pour un fichier de spécification de jeton fongible

Entrée Description Exemples
type:

Vous devez spécifier type: token dans la section assets.

assets:
    - name: OBPTOK # Asset name
      type: token  # Asset type
standard: La propriété standard représente la norme de jeton à suivre lors de la génération du code de chaîne. Seule la valeur ttf+ est prise en charge pour les jetons fongibles. Si la propriété standard n'est pas spécifiée pour un jeton fongible, le cadre de taxonomie de jetons (TTF) est suivi.

      standard: ttf+ # Token standard
anatomy:
La section anatomy comporte deux paramètres obligatoires pour les jetons fongibles :
  • type: fungible

    Une quantité de jetons fongibles a la même valeur qu'une autre quantité égale de la même classe de jetons.

  • unit: fractional

    Un jeton fractionnaire peut être subdivisé en unités plus petites en fonction d'un nombre spécifié de décimales.

anatomy: 
          type: fungible # Token type
          unit: fractional # Token unit
behavior: Cette section décrit les capacités et les restrictions du jeton. Les comportements mintable et transferable sont obligatoires pour les jetons fongibles.
  • mintable : Ce comportement obligatoire prend en charge la suppression de nouvelles instances de jeton. Le paramètre facultatif max_mint_quantity spécifie le nombre total de jetons pouvant être frappés. Si vous ne spécifiez pas le paramètre max_mint_quantity, vous pouvez frapper un nombre quelconque de jetons.
  • transferable : Ce comportement obligatoire prend en charge le transfert de propriété des jetons.
  • divisible : Ce comportement facultatif décrit comment subdiviser les jetons. Le paramètre decimal spécifie le nombre de décimales pouvant être utilisées. La plus petite fraction possible avec le nombre de décimales est la plus petite unité du jeton qui peut être détenue. Si le paramètre decimal n'est pas spécifié, la valeur par défaut est zéro décimale.
  • burnable : Ce comportement facultatif prend en charge la désactivation ou la gravure des jetons. La gravure ne supprime pas un jeton, mais le place dans un état permanent où il ne peut pas être utilisé. La combustion n'est pas réversible.
  • holdable : Ce comportement facultatif indique si les soldes de jeton peuvent être bloqués entre un payeur et un bénéficiaire.
  • roles : Ce comportement facultatif limite les comportements de jeton aux utilisateurs ayant des rôles spécifiques. Actuellement, trois rôles sont disponibles : minter_role_name, burner_role_name et notary_role_name. Si vous ne spécifiez pas de rôles, n'importe quel utilisateur peut agir en tant que mineur, brûleur ou notaire. Par exemple, si le rôle de brûleur n'est pas spécifié, tout utilisateur de compte a implicitement le rôle de brûleur. Si le rôle de brûleur est spécifié, lors du processus de configuration du jeton, l'utilisateur Token Admin doit affecter explicitement le rôle de brûleur à d'autres utilisateurs.
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

Pour créer plusieurs ID jeton fongible qui utilisent des paramètres max_mint_quantity différents, créez une ressource de jeton distincte pour chaque ID jeton dans le fichier de spécification, avec une relation 1:1 entre la ressource de jeton et l'ID jeton.

Pour créer plusieurs ID jetons fongibles qui utilisent le même paramètre max_mint_quantity ou aucun paramètre max_mint_quantity, créez une ressource de jeton unique dans le fichier de spécification à utiliser pour tous les ID jetons.