Crear una plataforma de intercambio NFT Descentralización paso a paso: desde el contrato hasta la implementación en el frontend

robot
Generación de resúmenes en curso

Implementación de NFT Descentralización

Para los NFT que siguen el protocolo ERC-721, la forma de realizar transacciones de Descentralización es diferente a la de los tokens ERC-20. Actualmente, las principales plataformas de intercambio de NFT utilizan principalmente un modelo de órdenes, similar a exhibir productos en los estantes de un supermercado; los compradores pueden adquirir los productos que consideren a un precio adecuado.

Este artículo implementará una función básica de intercambio descentralizado de NFT a través de la redacción de contratos inteligentes y una interfaz frontend simple. Es importante señalar que el contenido de este artículo es solo para referencia educativa y no es adecuado para entornos de producción reales.

Serie para principiantes de Web3: Implementar un DEX de NFT desde cero

Características básicas de NFT

NFT es un token no fungible, cada Token es único y sigue el protocolo ERC-721. En general, cada NFT mostrará una imagen diferente en la billetera, y cada grupo de NFT tiene un ID único para su diferenciación.

Debido a esta característica de los NFT, no es posible determinar el precio a través de una curva de precios como con los tokens ERC-20. Por lo tanto, la forma de comercio más común en la actualidad es a través de un libro de órdenes.

Serie para principiantes en Web3: Crear un DEX de NFT desde cero

Modo de negociación de libro de órdenes

En el modo de libro de órdenes, el precio del producto es establecido por personas, a diferencia del modo de creador de mercado automático que calcula los precios a través de algoritmos. El libro de órdenes generalmente tiene dos formas de transacción:

  1. Orden de precio: el vendedor establece el precio de venta, y el comprador puede comprar si lo considera adecuado.

  2. Orden de compra: el comprador emite una orden de compra, y el vendedor puede vender si considera que el precio es adecuado.

En general, el precio de las órdenes de compra será más bajo que el de las órdenes de precios. Este artículo se centrará en el modo de transacción de órdenes de precios.

Web3新手系列:从零实现一个NFT DEX

Funciones básicas de NFT DEX

Un DEX de NFT básico debería incluir las siguientes funciones clave:

  1. Listar productos: poner el NFT a la venta según el precio establecido.
  2. Compra de productos: compra según el precio del NFT
  3. Cobro de tarifas: se cobrará una tarifa proporcional según el precio de la transacción.

Proceso de listado de productos

Para listar productos, se deben completar los siguientes pasos:

  1. Frontend: El usuario selecciona el NFT y establece el precio, luego hace clic en listar.
  2. Contrato: el usuario autoriza la operación del NFT por parte del contrato.

En el contrato, se necesita mantener un mapa de precios de los productos que los usuarios han listado. Esta parte de los datos también se puede almacenar en servicios centralizados para aliviar la carga del contrato, pero en este artículo se guardará en el contrato.

Proceso de compra de productos

Al comprar productos, ocurrirán las siguientes cosas:

  1. Frontend: El usuario selecciona el NFT que desea comprar y hace clic en comprar.
  2. Contrato: llamar al contrato, transferir los fondos del comprador al vendedor y transferir el NFT al comprador.

Serie para principiantes en Web3: Crear un DEX de NFT desde cero

Implementar DEX de NFT

A continuación, implementaremos un DEX de NFT desde cero.

1. Crear un NFT de prueba

Para necesidades de prueba, podemos usar Remix para desplegar rápidamente un contrato NFT que siga el protocolo ERC-721. También se puede usar un NFT ya preparado para las pruebas.

Serie para principiantes de Web3: Implementando un DEX de NFT desde cero

2. Escribir contratos inteligentes

El contrato debe incluir los siguientes métodos principales:

2.1 Vender NFT

Proceso:

  1. El usuario selecciona NFT
  2. Establecer precio
  3. Autorizar NFT al contrato
  4. Llamar al método de listado

El método de listado requiere:

  1. Verificar la propiedad del NFT
  2. Agregar registro de listado
  3. Activar el evento de listado

Serie para principiantes en Web3: implementa un DEX de NFT desde cero

2.2 Comprador compra NFT

Proceso de compra:

  1. Leer datos de NFT
  2. Calcular y deducir la tarifa de transacción
  3. Transferir NFT al comprador
  4. Disparar evento de compra

Serie para principiantes en Web3: implementar un DEX de NFT desde cero

2.3 Cancelar listado

Solo establece el campo isActive en el registro de listado como false.

Serie para principiantes en Web3: Crear un DEX de NFT desde cero

2.4 Retiro de tarifas

Retirar las comisiones acumuladas en el contrato a la dirección especificada.

Serie para principiantes de Web3: implementar un DEX NFT desde cero

3. Desarrollo del frontend DEX

Las principales herramientas necesarias para el desarrollo front-end:

  • Ant Design Web3: para la conexión de billeteras y la exhibición de NFT
  • Wagmi: utilizado para interactuar con la billetera
  • Next.js + Vercel: desplegar proyecto

La interfaz debe incluir tres páginas principales: Mint, Buy y Portfolio.

Serie para principiantes de Web3: implementar un DEX de NFT desde cero

3.1 Conectar billetera

Implementar la función de conexión de billetera utilizando componentes Web3 de Ant Design.

Serie para principiantes en Web3: Implementar un DEX de NFT desde cero

3.2 Página de Mint

Para acuñar un NFT de prueba, utiliza el método useWriteContract de wagmi para llamar al contrato.

Serie para principiantes de Web3: implementar un DEX NFT desde cero

3.3 Página de Portafolio

Muestra los NFT que posee el usuario, permite operaciones de listado y deslistado.

Al listar, se debe llamar al método listNFT, y al deslistar, se debe llamar al método cancelListing. Antes de listar, se debe autorizar el NFT al contrato.

3.4 Página de Compra

Mostrar todos los NFT listados, soporta la operación de compra.

Llama al método purchaseNFT al comprar y paga el ETH correspondiente.

Una vez completados los pasos anteriores, se ha implementado un DEX básico de NFT. Se puede desplegar en plataformas como Vercel para realizar pruebas y su uso.

Serie para principiantes en Web3: implementar un DEX NFT desde cero

Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • 7
  • Compartir
Comentar
0/400
RugPullProphetvip
· 07-08 04:56
No es necesario complicar tanto el frontend, ¿verdad?
Ver originalesResponder0
0xInsomniavip
· 07-07 17:14
¿A los desarrolladores les gusta jugar con dex últimamente?
Ver originalesResponder0
GasFeeSobbervip
· 07-06 19:00
望眼欲穿alcista解锁Solidity
Ver originalesResponder0
OPsychologyvip
· 07-06 18:58
Entrenador, yo también quiero escribir un contrato dex.
Ver originalesResponder0
just_here_for_vibesvip
· 07-06 18:55
Este código es un poco hardcore.
Ver originalesResponder0
BearMarketSurvivorvip
· 07-06 18:55
Otro mercado de NFT, me tiene muerto de antojo.
Ver originalesResponder0
NFTBlackHolevip
· 07-06 18:55
Finalmente hay un tutorial de dex confiable.
Ver originalesResponder0
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)