Ensemble de code de chaîne du cadre de jeton non fongible
Le cadre de jeton non fongible utilise la norme ERC-721 étendue prise en charge par Blockchain App Builder.
L'exemple de NFT Art Collection Marketplace illustre l'utilisation du cadre générique de jetons non fongible, qui est basé sur la norme étendue ERC-721 prise en charge par Blockchain App Builder. L'échantillon comprend un code de chaîne pour représenter un marché pour l'achat et la vente de jetons non fongibles (NFT) associés à des œuvres d'art. Dans cet échantillon, les musées peuvent créer (créer) des NFT pour des œuvres d'art dans le réseau blockchain. Les consommateurs peuvent ensuite acheter et revendre des NFT dans les musées. Le code de chaîne met en oeuvre les méthodes requises pour gérer le cycle de vie d'un jeton non fongible, notamment l'initialisation du jeton, les opérations de compte, les affectations de rôle, la frappe, les transferts et la combustion. Il fournit également des comptes de notaire pour approuver les opérations de frappe, de transfert et de combustion, et soutient la conformité au moyen de limites quotidiennes et de procédures d'audit. L'échantillon NFT Art Collection Marketplace est conçu pour le développement de code de chaîne dans TypeScript.
NFTCollectiblesWithERC721.zip
, un fichier d'archives contenant le code de chaîne packagé pour le déploiement.NFTCollectiblesWithERC721-TypeScript.yaml
, un fichier de spécification que vous pouvez utiliser avec Blockchain App Builder pour balayer le code de chaîneNFTCollectiblesWithERC721
.NFTCollectiblesWithERC721_postman_collection.json
, une collection Postman qui vous permet de tester les API dans le code de chaîne.README.md
, un guide étape par étape pour l'utilisation du code de chaîne.
Pour obtenir le cadre de jetons fongibles, dans la console des ressources numériques d'Oracle Blockchain Platform, cliquez sur l'onglet Ressources numériques, puis sélectionnez Cadre de jetons non fongibles.
Fichier de spécification
Le fichier de spécification utilisé pour générer le code de chaîne du marché des collections d'art inclut l'attribut events
. La fonction d'événements de chaîne de blocs prend en charge les rappels d'événement dans les codes de chaîne générés pour permettre les avis en temps réel et déclencher des flux de travail. Pour plus d'informations sur les fichiers de spécification et les paramètres utilisés dans les fichiers de spécification, voir Fichier de spécification d'entrée pour les jetons non fongibles dans Utilisation d'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.
Détails de l'endosseur dans les méthodes de code de chaîne
L'édition Digital Assets d'Oracle Blockchain Platform ajoute un paramètre d'endossement aux données utiles de la demande pour toutes les méthodes de réglage. La valeur du paramètre est endorsers
ou sameOrgEndorser
. Si le paramètre sameOrgEndorser
est Vrai, les endossements de transaction doivent provenir de la même organisation que le demandeur. Le paramètre endorsers
spécifie une liste de pairs qui doivent approuver la transaction. Pour plus d'informations, voir Prise en charge des approbations dans les collections Postman. Le tableau suivant présente le type d'endosseur pour chaque méthode.
Méthode | Type d'endosseur |
---|---|
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 |