Package de code chaîne de structure de jeton fongible

La structure de jetons fongible utilise la norme étendue Token Taxonomy Framework prise en charge par Blockchain App Builder.

L'exemple de jeton de dépôt illustre l'utilisation de la structure générique de jeton fongible, basée sur la norme étendue Token Taxonomy Framework prise en charge par Blockchain App Builder. L'échantillon représente un système dans lequel les jetons de dépôt représentent la monnaie fiduciaire détenue par les institutions financières et sont émis et gérés par les institutions financières réglementées. L'exemple de fichier de spécification génère des méthodes pour initialiser un jeton de dépôt, gérer des comptes, affecter des rôles et effectuer des opérations telles que l'extraction, le transfert et la gravure de jetons. Il fournit également des comptes de notaire pour l'approbation des opérations de frappe et des transferts, applique le respect des limites quotidiennes au niveau du compte et active les procédures d'audit.

Le package de code chaîne de structure de jeton fongible est téléchargeable à partir de la console Oracle Blockchain Platform et inclut les composants suivants.
  • DepositToken.zip, fichier d'archive qui contient le code chaîne packagé pour le déploiement.
  • DepositToken.yaml, un fichier de spécification que vous pouvez utiliser avec Blockchain App Builder pour échafauder le code chaîne DepositToken.
  • DepositToken_postman_collection.json, une collection Postman qui vous permet de tester les API dans le code chaîne.
  • README.md, guide détaillé pour l'utilisation du code chaîne.

Pour obtenir la structure de jeton fongible, dans la console des ressources numériques Oracle Blockchain Platform, cliquez sur l'onglet Ressources numériques, puis sélectionnez Structure de jeton fongible.

Fichier de spécifications

Le fichier de spécification utilisé pour générer le code chaîne de jeton de dépôt inclut l'attribut events. La fonction d'événements de code chaîne prend en charge les rappels d'événement dans les codes chaîne générés pour activer les notifications en temps réel et déclencher les workflows. Pour plus d'informations sur les fichiers de spécification et les paramètres utilisés dans les fichiers de spécification, reportez-vous à Fichier de spécification d'entrée pour les jetons fongibles dans Utilisation d'Oracle Blockchain Platform.

Le code chaîne de jeton de dépôt est basé sur la norme étendue Token Taxonomy Framework, avec des personnalisations pour prendre en charge le scénario d'application. La section de comportement suivante du fichier de spécification est requise pour activer ces personnalisations.
behavior: # Token behaviors
    - divisible:
          decimal: 2
    - mintable:
          mint_approval_required: true
    - transferable
    - burnable
    - holdable
    - roles:
          minter_role_name: minter
          notary_role_name: notary
          mint_approver_role_name: notary
Le code suivant est le fichier de spécification de l'échantillon de jetons de dépôt.
#
# Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
#
 
assets:
 
# This specification file is an example how to build any fungible token application.
# For a fungible token application, deposit token system has been used as an example.
# Deposit token is a digital representation of deposits held at commercial banks, enabling transactions on blockchain networks while maintaining the value and stability of traditional bank deposits.
 
 
    - name: Deposit # Asset name
      type: token  # Asset type
      standard: ttf+   # Token standard
      events: true # Supports event code generation for non-GET methods
 
      anatomy:
          type: fungible # Token type
          unit: fractional # Token unit
 
      behavior: # Token behaviors
          - divisible:
                decimal: 2 
          - mintable:
                mint_approval_required: true
          - transferable 
          - holdable
          - burnable
          - roles:
                minter_role_name: minter
                notary_role_name: notary
                mint_approver_role_name: notary
 
 
      properties:
          - name: Token_Name # Custom attribute to represent the deposit token name.
            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
 
customMethods:

Détails du fournisseur dans les méthodes de code chaîne

Oracle Blockchain Platform Digital Assets Edition ajoute un paramètre d'approbation à la charge utile de demande pour toutes les méthodes set. La valeur du paramètre est endorsers ou sameOrgEndorser. Si le paramètre sameOrgEndorser a la valeur Vrai, les approbations de transaction doivent provenir de la même organisation que le demandeur. Le paramètre endorsers indique la liste des homologues qui doivent approuver la transaction. Pour plus d'informations, reportez-vous à Prise en charge des approbations dans les collections Postman. Le tableau suivant indique le type d'endosseur pour chaque méthode.

Méthode Type d'approbateur
activateAccount endorsers
addTokenAdmin sameOrgEndorser
addTokenAuditor sameOrgEndorser
addOrgAdmin sameOrgEndorser
addOrgAuditor sameOrgEndorser
addRole endorsers
approveMint sameOrgEndorser
executeHoldTokens endorsers
associateTokenToAccount endorsers
createAccount endorsers
getAccount endorsers
getAccountBalance endorsers
getAccountsByUser endorsers
getAccountTransactionHistory endorsers
getAccountTransactionHistoryWithFiltersFromRichHistDB endorsers
getNetTokens endorsers
getOnHoldIds endorsers
getTotalMintedTokens endorsers
getUserByAccountId endorsers
getUsersByRole endorsers
holdTokens endorsers
init endorsers
initializeDepositToken sameOrgEndorser
issueTokens sameOrgEndorser
rejectMint sameOrgEndorser
releaseHoldTokens endorsers
removeTokenAdmin sameOrgEndorser
removeTokenAuditor sameOrgEndorser
removeOrgAdmin sameOrgEndorser
removeOrgAuditor sameOrgEndorser
removeRole endorsers
requestMint sameOrgEndorser
burnTokens sameOrgEndorser
setMaxDailyAmount endorsers
setMaxDailyTransactionCount endorsers
suspendAccount endorsers
transferTokens endorsers
initializeExchangePoolUser sameOrgEndorser
createExchangePoolAccounts sameOrgEndorser
addConversionRate sameOrgEndorser
updateConversionRate sameOrgEndorser
mintWithFundingExchangePool sameOrgEndorser
tokenConversion endorsers
getConversionRate endorsers
getConversionHistory endorsers
getConversionRateHistory endorsers
getExchangePoolUser endorsers
getAccountOnHoldBalance endorsers
getAccountStatus endorsers
getAccountsByRole endorsers