Paquete de código de cadena de marco de token combinado
El marco de token combinado utiliza el estándar ERC-1155 ampliado que es compatible con Blockchain App Builder.
El ejemplo de NFT Art Collection Marketplace ilustra el uso del marco genérico de token combinado. 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, el proveedor de la plataforma NFT incorpora museos que pueden acuñar (crear) NFT para obras de arte en la red blockchain. Los consumidores pueden comprar NFT en los museos utilizando monedas Eth o ERC-20. Cuando los consumidores compran NFT, los museos otorgan tokens de lealtad a sus cuentas de tokens fungibles. Los consumidores también pueden revender NFT. El código de cadena implanta los métodos necesarios para gestionar los ciclos de vida del token, incluida 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 marco de token combinado se puede descargar de la consola de Oracle Blockchain Platform e incluye los siguientes componentes.
NFTCollectiblesWithERC1155.zip
, un archivo de almacenamiento que contiene el código de cadenas empaquetado para el despliegue.NFTCollectiblesWithERC1155-TypeScript.yaml
, un archivo de especificación que puede utilizar con Blockchain App Builder para andamiar el código de cadenaNFTCollectiblesWithERC1155
.NFTCollectiblesWithERC1155_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 combinado.
Archivo de especificación
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 Combined Tokens in Using 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 combined token application that includes fungible and non-fungible tokens together.
# For a combined token application, art collection marketplace with loyalty token has been used as an example.
# Art collection marketplace is a digital marketplace for buying and selling NFT art that rewards users with fungible loyalty tokens for their participation.
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
- name: Loyalty #Asset name
type: token #Asset type
standard: erc1155+ # Token standard
events: true # Supports event code generation for non-GET methods
anatomy:
type: fungible # Token type
unit: fractional #Token unit
behavior: # Token behaviors
- divisible:
decimal: 2
- mintable:
max_mint_quantity: 100000
- transferable
- burnable
- roles:
minter_role_name: minter
properties:
- name: Token_Name # Custom attribute to represent the token name.
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
customMethods:
- executeQuery
- "post(token_id: string, selling_price: number)" # Post the non-fungible token for selling in the marketplace
- "buyWithEthCoin(from_org_id: string, from_user_id: string, to_org_id: string, to_user_id: string, nft_id: string[], loyalty_id: string[], eth_qty: number[], loyalty_reward_quantity: number[])" # Buy the non-fungible token after paying the amount using Eth Coin and receive loyalty points in return