Construire une plateforme de trading NFT décentralisée à partir de zéro : explication détaillée des smart contracts et de l'implémentation frontale.

robot
Création du résumé en cours

Construire une plateforme de trading NFT décentralisée à partir de zéro

Dans cet article, nous allons explorer comment réaliser une plateforme de trading NFT décentralisée basée sur des contrats intelligents. Contrairement aux tokens ERC-20 qui sont échangés via un mécanisme de teneur de marché automatique, les transactions NFT adoptent généralement un modèle de carnet d'ordres. Nous allons mettre en œuvre la fonctionnalité de trading décentralisé des NFT en écrivant des contrats intelligents et une simple page frontale.

Web3 nouveau venu série : réaliser un DEX NFT à partir de zéro

Caractéristiques des transactions NFT

NFT( jetons non fongibles ) suivent le protocole ERC-721, chaque jeton est unique. En raison de la non-fongibilité des NFT, il n'est pas possible de fixer un prix comme pour les jetons fongibles à travers une courbe de prix. Actuellement, la principale méthode d'échange des NFT est le modèle de carnet de commandes, similaire à l'affichage des produits sur les étagères d'un supermarché.

La négociation sur le carnet de commandes se fait principalement selon deux modes :

  1. Ordre de prix : le vendeur fixe le prix, l'acheteur peut acheter s'il le trouve approprié.
  2. Commande d'achat : L'acheteur émet une commande d'achat, le vendeur peut vendre si le prix lui semble approprié.

Cet article se concentrera sur la mise en œuvre du modèle d'ordre de prix.

Web3 novice série : réaliser un DEX NFT à partir de zéro

Fonctionnalités clés de la plateforme NFT

Une plateforme NFT de base devrait avoir les fonctionnalités suivantes :

  1. Mettre en vente des produits : permettre aux vendeurs de définir le prix pour mettre en ligne des NFT
  2. Acheter des produits : permettre aux acheteurs d'acheter des NFT au prix fixé
  3. Perception de frais : des frais de transaction sont prélevés en pourcentage sur le prix de la transaction.

Web3 Nouveaux utilisateurs Série : Créer un DEX NFT à partir de zéro

Mise en œuvre des contrats intelligents

Nos contrats intelligents doivent implémenter les méthodes clés suivantes :

1. Mettre en ligne NFT

Le vendeur appelle cette méthode pour mettre en vente le NFT :

solidity function listNFT(address nftAddress, uint256 tokenId, uint256 price) public { // Vérifier la propriété de l'NFT // Ajouter un enregistrement de mise en vente
// Déclencher l'événement de mise en ligne }

2. Acheter NFT

L'acheteur appelle cette méthode pour acheter le NFT déjà mis en vente :

solidité function purchaseNFT(address nftAddress, uint256 tokenId) public payable { // Obtenir les informations de mise en vente des NFT // Calculer et déduire les frais // Transférer le NFT à l'acheteur // Transférer à la plateforme // Déclencher l'événement d'achat
}

3. Annuler la mise en ligne

Le vendeur peut annuler le NFT déjà mis en vente :

solidity fonction annulerListe(adresse nftAddress, uint256 tokenId) public { // Vérifier les autorisations de l'appelant // Marquer l'état de mise en ligne comme invalide // Déclencher l'événement d'annulation }

4. Frais de retrait

Le propriétaire de la plateforme peut retirer les frais accumulés :

solidity function withdrawFees() public onlyOwner { // Transférer les frais de contrat à l'adresse spécifiée }

Web3 débutant série : réaliser un DEX NFT à partir de zéro

Développement front-end

La page frontale contient principalement les éléments suivants :

  1. Connexion du portefeuille : utiliser Ant Design Web3 pour réaliser la fonction de connexion du portefeuille

  2. Page de Mint : utilisée pour frapper des NFT de test

  3. Page de portefeuille : affiche les NFT détenus par l'utilisateur, prend en charge les opérations de mise en vente et de retrait.

  4. Page d'achat : affiche tous les NFT en vente, prend en charge les opérations d'achat.

Nous utilisons Next.js pour développer le frontend et le déployons sur la plateforme Vercel.

Web3 Nouveaux utilisateurs série : réaliser un DEX NFT à partir de zéro

Grâce aux étapes ci-dessus, nous avons mis en place une plateforme NFT de décentralisation avec des fonctionnalités de base. Cette simple démo illustre la logique centrale des transactions NFT, posant ainsi les bases pour le développement ultérieur d'un système de transactions NFT plus complexe.

Il est à noter que cet article est uniquement destiné à des fins d'apprentissage. Les plateformes de trading NFT dans un environnement de production réel doivent également prendre en compte des facteurs supplémentaires tels que la sécurité et l'évolutivité.

Web3 Nouveaux venus série : réaliser un DEX NFT à partir de zéro

Série pour débutants Web3 : réaliser un DEX NFT depuis zéro

Web3 nouveau venu série : réaliser un DEX NFT à partir de zéro

Série pour débutants Web3 : réaliser un DEX NFT à partir de zéro

Web3 nouveau venu série : réaliser un DEX NFT à partir de zéro

Série pour débutants Web3 : réaliser un DEX NFT à partir de zéro

Série pour les novices en Web3 : réaliser un DEX NFT à partir de zéro

Web3 Nouveau Série : Créer un DEX NFT à partir de zéro

Voir l'original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Récompense
  • 3
  • Partager
Commentaire
0/400
TeaTimeTradervip
· 07-09 09:42
Jouer un peu puis en parler, on pourrait se retrouver à perdre jusqu'à ses sous-vêtements.
Voir l'originalRépondre0
MetadataExplorervip
· 07-09 09:33
Ce n'est pas juste une version simplifiée d'os, hein ?
Voir l'originalRépondre0
just_here_for_vibesvip
· 07-09 09:26
Le développement est vraiment trop simple, non ?
Voir l'originalRépondre0
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)