Arquivo de Especificação de Entrada para ERC-1155
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 fungíveis e não fungíveis com base no padrão ERC-1155 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.
NFTArtCollectionMarketplacewithERC1155-TypeScript.yml
FractionalNFTinRealEstate-TypeScript.yml
Além das propriedades e seções padrão, os ativos de token suportam as seções behavior
e anatomy
no arquivo de especificação. Além disso, os ativos de token não fungíveis suportam a seção metadata
. O exemplo a seguir mostra a estrutura de um arquivo de especificação para dois ativos de token ERC-1155, um token não fungível inteiro e um token fungível fracionário:
assets:
- name: ArtCollection #Asset name
type: token #Asset type
standard: erc1155+ # Token standard
anatomy:
type: nonfungible # Token type
unit: whole #Token unit
behavior:
- indivisible
- mintable:
max_mint_quantity: 20000
- transferable
- burnable
- lockable
- roles:
minter_role_name: minter
properties: # Custom asset attributes for non-fungible token
- name: price # Custom asset attribute to set the price of a non-fungible token in the marketplace
type: number
- name: on_sale_flag # Custom asset attribute maintains non-fungible token selling status in the marketplace
type: boolean
metadata: # Use this section to maintain the metadata on the blockchain. Only the user creating the non-fungible token can assign metadata attribute values, which cannot be updated later.
- name: painting_name
type: string
- name: description
type: string
- name: image
type: string
- name: painter_name
type: string
- name: Loyalty # Asset name
type: token # Asset type
standard: erc1155+ # Token standard
anatomy:
type: fungible # Token type
unit: fractional # Token unit
behavior: # Token behaviors
- divisible:
decimal: 2
- mintable:
max_mint_quantity: 10000
- transferable
- burnable
- roles:
minter_role_name: minter
properties:
- name: currency_name # Custom attribute to represent the token in a specific currency.
type: string
- name: token_to_currency_ratio # Custom attribute to specify the token to currency ratio.
type: number
O exemplo a seguir mostra a estrutura de um arquivo de especificação para um token não fungível fracionário:
- name: RealEstateProperty #Asset name
type: token #Asset type
standard: erc1155+ # Token standard
anatomy:
type: nonfungible # Token type
unit: fractional #Token unit
behavior:
- divisible:
- mintable:
- transferable
- roles:
minter_role_name: minter
properties: # Custom asset attributes for non-fungible token.
- name: propertySellingPrice # Custom asset attribute to set the real estate property selling price
type: number
- name: propertyRentingPrice # Custom asset attribute maintains the renting amount for the real estate property
type: number
metadata: # To maintain the metadata on-chain, this tag will be used. Users won't be able to update the metadata attribute values.
- name: propertyType
type: string
- name: propertyName
type: string
- name: propertyAddress
type: string
- name: propertyImage
type: string
Tabela 7-7 Descrições e Exemplos de Parâmetros para um Arquivo de Especificação de Token ERC-1155
Entrada | Descrição | Exemplos |
---|---|---|
type: |
Você deve especificar |
|
standard: |
A propriedade standard é obrigatória para tokens ERC-1155. Ele representa o padrão de token a ser seguido durante a geração do chaincode.
|
|
anatomy: |
A seção
anatomy tem dois parâmetros obrigatórios:
|
|
behavior: |
Esta seção descreve os recursos e as restrições do token. Os comportamentos mintable e transferable são obrigatórios para todos os tokens. O comportamento indivisible é obrigatório para tokens não fungíveis inteiros.
|
|
metadata: |
A propriedade No exemplo, |
|
Limitações
O Blockchain App Builder fornece suporte parcial para o padrão ERC-1155. Atualmente, os seguintes eventos e métodos ERC-1155 não são suportados.
TransferSingle
TransferBatch
ApprovalForAll
URI
safeTransferFrom
balanceOf
setApprovalForAll
isApprovedForAll