Arquivo de Especificação de Entrada para Estrutura de Taxonomia de Token

O comando de inicialização do Blockchain App Builder lê o arquivo de especificação de entrada e gera o projeto scaffolded com várias ferramentas para auxiliar no processo de desenvolvimento de chaincode.

Você pode definir ativos padrão e ativos de token baseados na Estrutura de Taxonomia de Token no mesmo arquivo de especificação. Não é possível definir ativos de token com base em mais de um padrão no mesmo arquivo de especificação.

Para obter informações sobre como incluir ativos padrão no arquivo de especificação, consulte Arquivo de Especificação de Entrada.

Os seguintes arquivos de especificação de amostra para ativos de token fungíveis estão disponíveis no pacote Blockchain App Builder:
  • FiatMoneyToken.yml
  • LoyaltyToken-Go.yml

Além das propriedades e seções padrão, os ativos de token fungível suportam as seções behavior e anatomy no arquivo de especificação. Os ativos de token fungíveis também suportam a propriedade standard. O exemplo a seguir mostra a estrutura de um arquivo de especificação para um ativo de token fungível com base na Estrutura de Taxonomia de Token:

assets:
    - name: OBPTOK # Asset name
      type: token  # Asset type

      anatomy: 
          type: fungible # Token type
          unit: fractional # Token unit

      behavior: # Token behaviors
          - divisible: 
                decimal: 2  
          - mintable: 
                max_mint_quantity: 1000 
          - transferable
          - burnable 
          - roles: 
                minter_role_name: minter 

      properties:
          - name: currency_name # Custom attribute to represent the token in certain currency. This attribute is helpful for exchanging the tokens with fiat currency.
            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

Tabela 4-1 Descrições de Parâmetros e Exemplos de um Arquivo de Especificação de Token Fungível

Entrada Descrição Exemplos
type:

Você deve especificar type: token na seção assets.

assets:
    - name: OBPTOK # Asset name
      type: token  # Asset type
standard: A propriedade standard representa o padrão de token a ser seguido durante a geração de chaincode. Somente o valor ttf+ é suportado para tokens fungíveis. Se a propriedade standard não for especificada para um token fungível, o padrão TTF (Token Taxonomy Framework) será seguido.

      standard: ttf+ # Token standard
anatomy:
A seção anatomy tem dois parâmetros obrigatórios para tokens fungíveis:
  • type: fungible

    Uma quantidade de tokens fungíveis tem o mesmo valor que outra quantidade igual da mesma classe de tokens.

  • unit: fractional

    Um token fracionário pode ser subdividido em unidades menores com base em um número especificado de casas decimais.

anatomy: 
          type: fungible # Token type
          unit: fractional # Token unit
behavior: Esta seção descreve os recursos e restrições do token. Os comportamentos mintable e transferable são obrigatórios para tokens fungíveis.
  • mintable: Esse comportamento obrigatório suporta a criação de novas instâncias de token. O parâmetro max_mint_quantity opcional especifica o número total de tokens que podem ser cunhados. Se você não especificar o parâmetro max_mint_quantity, qualquer número de tokens poderá ser cunhado.
  • transferable: Esse comportamento obrigatório suporta a transferência de propriedade de tokens.
  • divisible: Esse comportamento opcional descreve como os tokens podem ser subdivididos. O parâmetro decimal especifica o número de casas decimais que podem ser usadas. A menor fração possível com o número de casas decimais é a menor unidade do token que pode ser possuída. Se o parâmetro decimal não for especificado, o padrão será zero casas decimais.
  • burnable: Esse comportamento opcional suporta a desativação ou a gravação de tokens. A gravação não exclui um token, mas o coloca em um estado permanente em que não pode ser usado. A queima não é reversível.
  • holdable: Esse comportamento opcional indica se os saldos de token podem ser colocados em retenção entre um pagador e um beneficiário.
  • roles: Esse comportamento opcional restringe comportamentos de token a usuários com atribuições específicas. No momento, três atribuições estão disponíveis: minter_role_name, burner_role_name e notary_role_name. Se você não especificar funções, qualquer usuário poderá atuar como um mineiro, gravador ou notário. Por exemplo, se a função do queimador não for especificada, qualquer usuário da conta terá implicitamente a função do queimador. Se a atribuição do gravador for especificada, durante o processo de configuração do token, o usuário Token Admin deverá designar a atribuição do gravador a outros usuários explicitamente.
behavior:
  - mintable:
        max_mint_quantity: 20000
  - transferable
  - divisible:
        decimal: 1
  - burnable
  - holdable
  - roles:
        minter_role_name: minter
        burner_role_name: burner
        notary_role_name: notary

Para criar vários IDs de token fungíveis que usam diferentes parâmetros max_mint_quantity, crie um ativo de token separado para cada ID de token no arquivo de especificação, com um relacionamento 1:1 entre o ativo de token e o ID de token.

Para criar vários IDs de token fungíveis que usam o mesmo parâmetro max_mint_quantity ou nenhum parâmetro max_mint_quantity, crie um único ativo de token no arquivo de especificação a ser usado para todos os IDs de token.