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.
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 chaincodeDepositToken
.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.
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.
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:
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 |