De 0 a 1: Guia Completo para Construir um DEX de NFT

robot
Geração do resumo em andamento

Criar um DEX de NFT do zero

No artigo anterior, exploramos como os tokens ERC-20 podem ser negociados através de DEX. Mas como os NFTs que seguem o protocolo ERC-721 podem realizar transações descentralizadas?

Atualmente, a maioria das plataformas de negociação NFT populares utiliza o modo de ordens, semelhante a exibir produtos nas prateleiras para os compradores escolherem. Este artigo irá implementar um sistema básico de negociação NFT descentralizada através da programação de contratos inteligentes e uma interface front-end simples. É importante ressaltar que este artigo é apenas para fins de aprendizado e não é adequado para ambientes de produção.

Web3 Novato Série: Criar um NFT DEX do zero

Introdução ao NFT

NFT é o token não fungível, cada Token é único. Ele segue o protocolo ERC-721, geralmente é exibido em diferentes formas de imagem na carteira, e cada NFT tem uma ID única para distinção.

Devido à singularidade dos NFTs, não é possível precificá-los da mesma forma que os tokens ERC-20 através de curvas de preços. Assim, as transações de NFT geralmente utilizam um formato de livro de ordens.

Série para novatos em Web3: Criar um NFT DEX do zero

Modo de Negociação de Livro de Ordens

No modo de livro de ordens, o preço dos produtos é definido pelo vendedor, e não calculado por algoritmos. Geralmente, existem duas formas de negociação:

  1. Ordem de Preço: o vendedor define o preço de venda, o comprador pode comprar se achar adequado.
  2. Ordem de compra: O comprador publica uma ordem de compra, o vendedor pode vender se achar o preço adequado.

Este artigo irá focar na primeira forma de negociação com preços.

Web3 Novato Série: Implementando um NFT DEX do zero

Funcionalidades Básicas do Exchange NFT

Um exchange NFT básico deve conter as seguintes funcionalidades:

  1. Listar produtos: colocar o NFT à venda pelo preço definido
  2. Comprar produtos: comprar ao preço do NFT
  3. Cobrança de taxas: cobrada proporcionalmente ao preço de transação

processo de listagem

  1. O usuário seleciona um NFT na interface e define o preço.
  2. O usuário autoriza o contrato a operar seu NFT
  3. Registar as informações de listagem no contrato

Processo de Compra

  1. O utilizador seleciona o NFT na interface e clica em comprar
  2. O contrato transfere os fundos do comprador para o vendedor e transfere o NFT para o comprador.

Web3 Novato Série: Criar um NFT DEX do Zero

Implementar um DEX de NFT

Abaixo, vamos implementar uma simples exchange NFT do zero.

1. Criar NFT de teste

Para facilitar os testes, podemos usar o Remix para implantar rapidamente um contrato NFT do protocolo ERC-721. Claro que também podemos usar diretamente NFTs existentes para testes.

Série para iniciantes em Web3: Como criar um NFT DEX do zero

2. Escrever contratos inteligentes

O contrato precisa implementar as seguintes funcionalidades principais:

2.1 Vendedor coloca NFT à venda

Fluxo:

  1. Verificar a propriedade do NFT
  2. Adicionar registo de listagem
  3. Disparar evento de listagem

Web3 Novato Série: Implementar um NFT DEX do zero

2.2 Comprador compra NFT

Fluxo:

  1. Obter informações sobre a listagem de NFT
  2. Calcule e deduza a taxa de serviço
  3. Transferência de propriedade de NFT
  4. Acionar o evento de compra

Web3 Novato Série: Criar um NFT DEX do zero

2.3 Cancelar listagem

Isso é realizado definindo o campo isActive como false.

Web3 Novato Série: Realizar um NFT DEX do zero

2.4 Taxa de retirada

O proprietário do contrato pode retirar as taxas acumuladas.

Web3 novato série: construir um NFT DEX do zero

3. Desenvolvimento da interface frontal

Utilize as seguintes ferramentas:

  • Ant Design Web3: conectar carteira e exibir NFT
  • Wagmi: Interação com carteira
  • Next.js + Vercel: implantar projeto

A interface contém três páginas principais:

  • Mint: Teste de NFT de Mint
  • Buy:NFT mercado de troca
  • Portfolio: Gerir NFT dos usuários

Série para iniciantes em Web3: criar um NFT DEX do zero

3.1 Conectar carteira

Implementado com o componente de conexão do Ant Design Web3.

Web3 Novato Série: Construir um NFT DEX do zero

3.2 Página de Mint

Utilize o método useWriteContract do wagmi para chamar o contrato e cunhar um NFT.

Web3 Novato Série: Implementar um NFT DEX do zero

3.3 Página do Portfólio

Exibir NFTs dos usuários e suportar operações de listagem/deslistagem.

Web3 novato série: implementar um NFT DEX do zero

3.4 Página de Compra

Exibir todos os NFTs à venda e suportar a função de compra.

Através dos passos acima, conseguimos implementar um DEX NFT com funcionalidades básicas. Por fim, o projeto pode ser implantado no Vercel para uso online.

Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • 7
  • Compartilhar
Comentário
0/400
ChainMaskedRidervip
· 08-04 18:11
Este artigo só diz asneiras, é como se não dissesse nada.
Ver originalResponder0
CommunityWorkervip
· 08-04 01:49
Quem quer usar um dex sem gás?
Ver originalResponder0
MelonFieldvip
· 08-02 21:21
Uau, este artigo está escrito de forma fácil!
Ver originalResponder0
GmGmNoGnvip
· 08-02 21:21
懒得学代码 还是去Cupões de Recorte吧
Ver originalResponder0
ILCollectorvip
· 08-02 21:03
Ah ah ah, já há uma nova coleção que vai fazer as pessoas de parvas.
Ver originalResponder0
RugPullProphetvip
· 08-02 21:00
Tem mãos, está tudo bem. Vamos começar com respeito.
Ver originalResponder0
LazyDevMinervip
· 08-02 20:53
O front-end está mal feito, como é que não é usado na produção?
Ver originalResponder0
  • Marcar
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)