Fichier de spécification d'entrée pour la structure de taxonomie de jeton

La commande d'initialisation Blockchain App Builder 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 chaîne.

Vous pouvez définir des ressources standard et des ressources de jeton basées sur la structure de taxonomie de jeton dans le même fichier de spécification. Vous ne pouvez pas définir des ressources de jeton basées sur 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, reportez-vous à Fichier de spécification d'entrée.

Les exemples de fichiers de spécification suivants pour les actifs de jetons fongibles 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 illustre la structure d'un fichier de spécification pour une ressource de jeton fongible basée sur la structure de taxonomie de jeton :

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 Description et exemples des paramètres d'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 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, la norme TTF (Token Taxonomy Framework) est respectée.

      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 de décimales spécifié.

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 l'extraction des nouvelles instances de jeton. Le paramètre facultatif max_mint_quantity indique le nombre total de jetons pouvant être extraits. Si vous n'indiquez pas le paramètre max_mint_quantity, tout nombre de jetons peut être extrait.
  • transferable : ce comportement obligatoire prend en charge le transfert de propriété des jetons.
  • divisible : ce comportement facultatif décrit comment les jetons peuvent être subdivisés. Le paramètre decimal indique le nombre de positions 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 de jetons. La gravure ne supprime pas un jeton, mais le place dans un état permanent où il ne peut pas être utilisé. Brûler 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 dotés de 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, tout utilisateur peut agir en tant que mineur, graveur 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 de jeton fongible utilisant des paramètres max_mint_quantity différents, créez une ressource de jeton distincte pour chaque ID de jeton dans le fichier de spécification, avec une relation 1:1 entre la ressource de jeton et l'ID de jeton.

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