Arquivo de Especificação de Entrada para o Token Taxonomy Framework

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

Você pode definir ativos padrão e ativos de token baseados no Token Taxonomy Framework 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 no Token Taxonomy Framework:

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 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 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: Este 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: Este 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 possuído. Se o parâmetro decimal não for especificado, o padrão será zero casas decimais.
  • burnable: Este comportamento opcional suporta a desativação ou a gravação de tokens. O Burning 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: Este 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 mineiro, gravador 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 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 parâmetros max_mint_quantity diferentes, 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 do 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.