Paquete de código de cadena de marco de token no fungible

El marco de token no fungible utiliza el estándar ERC-721 extendido que es compatible con Blockchain App Builder.

La muestra de NFT Art Collection Marketplace ilustra el uso del marco genérico de token no fungible, que se basa en el estándar ERC-721 extendido compatible con Blockchain App Builder. La muestra incluye un código de cadenas para representar un mercado para comprar y vender tokens no fungibles (NFT) asociados con obras de arte. En esta muestra, los museos pueden acuñar (crear) NFT para obras de arte en la red blockchain. Los consumidores pueden entonces comprar y luego revender NFTs de los museos. El código de cadena implanta los métodos necesarios para gestionar el ciclo de vida del token no fungible, como la inicialización del token, las operaciones de cuenta, las asignaciones de roles, la acuñación, las transferencias y la grabación. También proporciona cuentas notariales para aprobar operaciones de acuñación, transferencia y combustión, y apoya el cumplimiento a través de límites diarios y procedimientos de auditoría. La muestra de NFT Art Collection Marketplace está diseñada para el desarrollo de códigos de cadenas en TypeScript.

El paquete de código de cadena de marco de token no fungible se puede descargar desde la consola de Oracle Blockchain Platform e incluye los siguientes componentes.
  • NFTCollectiblesWithERC721.zip, un archivo de almacenamiento que contiene el código de cadenas empaquetado para el despliegue.
  • NFTCollectiblesWithERC721-TypeScript.yaml, un archivo de especificación que puede utilizar con Blockchain App Builder para andamiar el código de cadena NFTCollectiblesWithERC721.
  • NFTCollectiblesWithERC721_postman_collection.json, una recopilación de Postman que permite probar las API en el código de cadenas.
  • README.md, guía paso a paso para trabajar con el código de cadenas.

Para obtener el marco de token fungible, en la consola Activos digitales de Oracle Blockchain Platform, haga clic en el separador Activos digitales y, a continuación, seleccione Marco de token no fungible.

Archivo de especificaciones

El archivo de especificación que se utiliza para generar el código de cadenas de marketplace de recopilación de arte incluye el atributo events. La función de eventos de código de cadenas soporta devoluciones de llamadas de eventos en códigos de cadenas generados para activar notificaciones en tiempo real y disparar flujos de trabajo. Para obtener más información sobre los archivos de especificación y los parámetros utilizados en los archivos de especificación, consulte Input Specification File for Non-Fungible Tokens in Using Oracle Blockchain Platform.

El código de cadenas de mercado de la colección de arte se basa en el estándar ERC-721 extendido, como se muestra en el siguiente archivo de especificación.
#
# 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.

Detalles de Endosador en Métodos de Código de Cadena

Oracle Blockchain Platform Digital Assets Edition agrega un parámetro de endoso a la carga útil de solicitud para todos los métodos setter. El valor del parámetro es endorsers o sameOrgEndorser. Si el parámetro sameOrgEndorser es true, los endosos de transacción deben ser de la misma organización que el solicitante. El parámetro endorsers especifica una lista de peers que deben aprobar la transacción. Para obtener más información, consulte Soporte de aval en las recopilaciones de Postman. En la siguiente tabla, se muestra el tipo de endosador para cada método.

Método Tipo de avalista
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