Pacote de Chaincode da Estrutura de Token Fungível

A estrutura de token fungível usa o padrão estendido Token Taxonomy Framework suportado pelo Blockchain App Builder.

A amostra de token de depósito ilustra o uso do framework genérico de token fungível, que é baseado no padrão estendido do Token Taxonomy Framework suportado pelo Blockchain App Builder. A amostra representa um sistema em que os tokens de depósito representam moeda fiduciária mantida em instituições financeiras e são emitidos e gerenciados por instituições financeiras regulamentadas. O arquivo de especificação de amostra gera métodos para inicializar um token de depósito, gerenciar contas, atribuir funções e executar operações como cunhagem, transferência e gravação de tokens. Ele também fornece contas notariais para aprovação de cunhagem e transferências, reforça a conformidade com limites diários no nível da conta e permite procedimentos de auditoria.

O pacote de chaincode da estrutura de token fungível pode ser transferido por download na console do Oracle Blockchain Platform e inclui os componentes a seguir.
  • DepositToken.zip, um arquivo compactado que contém o chaincode compactado para implantação.
  • DepositToken.yaml, um arquivo de especificação que você pode usar com o Blockchain App Builder para montar o chaincode DepositToken.
  • DepositToken_postman_collection.json, uma coleção Postman que permite testar as APIs no chaincode.
  • README.md, um guia passo a passo para trabalhar com o chaincode.

Para obter a estrutura de token fungível, na console Ativos Digitais do Oracle Blockchain Platform, clique na guia Ativos Digitais e selecione Estrutura de Token Fungível.

Para obter mais detalhes sobre como usar as coleções Postman, consulte os tópicos a seguir.

Arquivo de Especificação

O arquivo de especificação usado para gerar o chaincode do token de depósito inclui o atributo events. A função de eventos de chaincode suporta callbacks de eventos em chaincodes gerados para ativar notificações em tempo real e acionar fluxos de trabalho. Para obter mais informações sobre arquivos de especificação e os parâmetros usados nos arquivos de especificação, consulte Arquivo de Especificação de Entrada para Tokens Fungíveis em Usando o Oracle Blockchain Platform.

O chaincode do token de depósito é baseado no padrão estendido do Token Taxonomy Framework, com personalizações para dar suporte ao cenário do aplicativo. A seção de comportamento a seguir do arquivo de especificação é necessária para ativar essas personalizações.
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
O código a seguir é o arquivo de especificação para a amostra de tokens de depósito.
#
# 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:

Detalhes do Endossador nos Métodos Chaincode

A Edição de Ativos Digitais do Oracle Blockchain Platform adiciona um parâmetro de endosso ao payload de solicitação para todos os métodos setter. O valor do parâmetro é endorsers ou sameOrgEndorser. Se o parâmetro sameOrgEndorser for verdadeiro, os endossos da transação deverão ser da mesma organização que o solicitante. O parâmetro endorsers especifica uma lista de pares que devem endossar a transação. Para obter mais informações, consulte Suporte de Endosso em Coleções Postman. A tabela a seguir mostra o tipo de endossador para cada método.

Método Tipo de Endossador
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