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 aider au 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 en fonction de plusieurs normes dans le même fichier de spécification.

Pour plus d'informations sur l'inclusion des 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 ressources de jeton fongibles sont disponibles dans le package Blockchain App Builder :
  • FiatMoneyToken.yml
  • LoyaltyToken-Go.yml

Outre les propriétés et sections standard, les ressources de jeton fongibles 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 Descriptions des paramètres et exemples 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 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 fonctionnalité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 de 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, vous pouvez extraire 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 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. Burning ne supprime pas un jeton, mais le place dans un état permanent où il ne peut pas être utilisé. Le brûlage 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 n'indiquez 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 dispose implicitement du 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 fongibles qui utilisent 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 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 de jeton.