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.
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îneDepositToken
.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.
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
#
# 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 |