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 com várias ferramentas para ajudar 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íveis 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 7-5 Descrições e Exemplos de Parâmetros para 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 do 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 as 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: Este 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 pertencente. 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 gravação de tokens. A queima 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 os comportamentos de token aos usuários com atribuições específicas. Atualmente, 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á agir como um mineiro, queimador ou notário. Por exemplo, se a função de gravador não for especificada, qualquer usuário da conta terá implicitamente a função de gravador. Se a função de gravador for especificada, durante o processo de configuração do token, o usuário Token Admin deverá atribuir a função de 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.