Pacote de Chaincode da Estrutura de Token Não Fungível
A estrutura de token não fungível usa o padrão ERC-721 estendido que é suportado pelo Blockchain App Builder.
A amostra do NFT Art Collection Marketplace ilustra o uso do framework genérico token não fungível, que é baseado no padrão ERC-721 estendido suportado pelo Blockchain App Builder. A amostra inclui um chaincode para representar um marketplace para compra e venda de tokens não fungíveis (NFTs) associados a obras de arte. Nesta amostra, os museus podem cunhar (criar) NFTs para obras de arte na rede blockchain. Os consumidores podem então comprar e depois revender NFTs dos museus. O chaincode implementa os métodos necessários para gerenciar o ciclo de vida de token não fungível, incluindo inicialização de token, operações de conta, atribuições de função, cunhagem, transferências e gravação. Ele também fornece contas notariais para aprovar operações de cunhagem, transferência e queima, e suporta a conformidade por meio de limites diários e procedimentos de auditoria. A amostra do NFT Art Collection Marketplace foi projetada para o desenvolvimento de chaincode em TypeScript.
NFTCollectiblesWithERC721.zip
, um arquivo compactado que contém o chaincode compactado para implantação.NFTCollectiblesWithERC721-TypeScript.yaml
, um arquivo de especificação que você pode usar com o Blockchain App Builder para montar o chaincodeNFTCollectiblesWithERC721
.NFTCollectiblesWithERC721_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 Não Fungível.
Arquivo de Especificação
O arquivo de especificação usado para gerar o chaincode do marketplace de coleções de arte 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 Não Fungíveis em Usando o Oracle Blockchain Platform.
#
# Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
#
# This specification file is an example how to build any whole non-fungible token application.
# For a whole non-fungible token application, art collection marketplace has been used as an example.
# Art collection marketplace is a digital marketplace that uses NFTs to enable the buying, selling, and showcasing of unique art pieces, providing secure ownership, provenance tracking, and exclusive rights for artists and collectors.
assets:
- name: ArtCollection #Asset name
type: token #Asset type
symbol: ART # Token symbol
standard: erc721+ # Token standard
events: true # Supports event code generation for non-GET methods
anatomy:
type: nonfungible # Token type
unit: whole #Token unit
behavior:
- indivisible
- singleton
- mintable:
max_mint_quantity: 20000
- transferable
- 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: float
- name: On_Sale_Flag # Custom asset attribute to maintain non-fungible token selling status in the marketplace
type: boolean
metadata: # To maintain the metadata on-chain, this tag will be used. Users won't be able to update the metadata attribute values after an NFT is minted.
- name: Painting_Name # Custom asset attribute to represent the title given to a piece of artwork.
type: string
- name: Description # Custom asset attribute to represent a detailed explanation or interpretation of the painting's concept, style, or message.
type: string
- name: Painter_Name # Custom asset attribute to represent the name of the artist who created the painting.
type: string
customMethods:
- executeQuery
- "post(token_id: string, selling_price: number)" # Post the non-fungible token for selling in the marketplace.
- "buy(from_org_id: string, from_user_id: string, to_org_id: string, to_user_id: string, nonfungible_token_id: string, amount_paid: number)" # Buy the non-fungible token after paying the amount using any payment gateways.
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 |
addRole |
endorsers |
addTokenSysRole |
endorsers |
balanceOf |
endorsers |
buy |
endorsers |
createAccount |
endorsers |
createArtCollectionToken |
sameOrgEndorser |
deleteAccount |
endorsers |
getAccountByUser |
endorsers |
getAccountHistory |
endorsers |
getAccountsByRole |
endorsers |
getAccountsByTokenSysRole |
endorsers |
getAccountStatus |
endorsers |
getAccountStatusHistory |
endorsers |
getAccountTransactionHistory |
endorsers |
getAccountTransactionHistoryWithFilters |
endorsers |
getAllAccounts |
endorsers |
getAllLockedNFTs |
endorsers |
getAllTokenAdmins |
endorsers |
getAllTokens |
endorsers |
getAllTokensByUser |
endorsers |
getLockedNFTsByOrg |
endorsers |
getTokenById |
endorsers |
getTokenHistory |
endorsers |
getTransactionById |
endorsers |
getUserByAccountId |
endorsers |
getUsersByRole |
endorsers |
getUsersByTokenSysRole |
endorsers |
init |
endorsers |
isInRole |
endorsers |
isInTokenSysRole |
endorsers |
isNFTLocked |
endorsers |
isTokenAdmin |
endorsers |
lockNFT |
sameOrgEndorser |
name |
endorsers |
ownerOf |
endorsers |
post |
endorsers |
removeRole |
endorsers |
removeTokenAdmin |
sameOrgEndorser |
removeTokenSysRole |
endorsers |
safeTransferFrom |
endorsers |
suspendAccount |
endorsers |
symbol |
endorsers |
tokenURI |
endorsers |
totalNetSupply |
endorsers |
totalSupply |
endorsers |
transferFrom |
endorsers |
transferTokenSysRole |
endorsers |
updateArtCollectionToken |
sameOrgEndorser |