Ensemble de code de chaîne du cadre de jeton fongible

Le cadre de jeton fongible utilise la norme étendue Token Taxonomy Framework prise en charge par le générateur d'applications de chaîne de blocs.

L'exemple de jeton de dépôt illustre l'utilisation du cadre générique de jeton fongible, qui est basé sur la norme étendue Token Taxonomy Framework prise en charge par Blockchain App Builder. L'échantillon représente un système où les jetons de dépôt représentent la monnaie fiduciaire détenue dans les institutions financières et sont émis et gérés par des 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 la frappe, le transfert et la gravure de jetons. Il fournit également des comptes de notaire pour l'approbation de la frappe et des transferts, impose le respect des limites quotidiennes au niveau du compte et permet des procédures d'audit.

L'ensemble de code de chaîne du cadre de jeton fongible peut être téléchargé à partir de la console Oracle Blockchain Platform et comprend les composants suivants.
  • DepositToken.zip, un fichier d'archives contenant le code de chaîne packagé pour le déploiement.
  • DepositToken.yaml, un fichier de spécification que vous pouvez utiliser avec Blockchain App Builder pour balayer le code de chaîne DepositToken.
  • DepositToken_postman_collection.json, une collection Postman qui vous permet de tester les API dans le code de chaîne.
  • README.md, un guide étape par étape pour l'utilisation du code de chaîne.

Pour obtenir le cadre de jetons fongibles, dans la console des ressources numériques d'Oracle Blockchain Platform, cliquez sur l'onglet Ressources numériques, puis sélectionnez Cadre de jetons fongibles.

Fichier de spécification

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

Le code de chaîne du jeton de dépôt est basé sur la norme Token Taxonomy Framework étendue, 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 pour 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 de l'endosseur dans les méthodes de code de chaîne

L'édition Digital Assets d'Oracle Blockchain Platform ajoute un paramètre d'endossement aux données utiles de la demande pour toutes les méthodes de réglage. La valeur du paramètre est endorsers ou sameOrgEndorser. Si le paramètre sameOrgEndorser est Vrai, les endossements de transaction doivent provenir de la même organisation que le demandeur. Le paramètre endorsers spécifie une liste de pairs qui doivent approuver la transaction. Pour plus d'informations, voir Prise en charge des approbations dans les collections Postman. Le tableau suivant présente le type d'endosseur pour chaque méthode.

Méthode Type d'endosseur
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