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.
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 :
Ordre de prix : le vendeur fixe le prix, l'acheteur peut acheter s'il le trouve approprié.
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.
Fonctionnalités clés de la plateforme NFT
Une plateforme NFT de base devrait avoir les fonctionnalités suivantes :
Mettre en vente des produits : permettre aux vendeurs de définir le prix pour mettre en ligne des NFT
Acheter des produits : permettre aux acheteurs d'acheter des NFT au prix fixé
Perception de frais : des frais de transaction sont prélevés en pourcentage sur le prix de la transaction.
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
}
Développement front-end
La page frontale contient principalement les éléments suivants :
Connexion du portefeuille : utiliser Ant Design Web3 pour réaliser la fonction de connexion du portefeuille
Page de Mint : utilisée pour frapper des NFT de test
Page de portefeuille : affiche les NFT détenus par l'utilisateur, prend en charge les opérations de mise en vente et de retrait.
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.
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é.
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.
7 J'aime
Récompense
7
3
Partager
Commentaire
0/400
TeaTimeTrader
· 07-09 09:42
Jouer un peu puis en parler, on pourrait se retrouver à perdre jusqu'à ses sous-vêtements.
Voir l'originalRépondre0
MetadataExplorer
· 07-09 09:33
Ce n'est pas juste une version simplifiée d'os, hein ?
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.
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.
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 :
Cet article se concentrera sur la mise en œuvre du modèle d'ordre de prix.
Fonctionnalités clés de la plateforme NFT
Une plateforme NFT de base devrait avoir les fonctionnalités suivantes :
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 }
Développement front-end
La page frontale contient principalement les éléments suivants :
Connexion du portefeuille : utiliser Ant Design Web3 pour réaliser la fonction de connexion du portefeuille
Page de Mint : utilisée pour frapper des NFT de test
Page de portefeuille : affiche les NFT détenus par l'utilisateur, prend en charge les opérations de mise en vente et de retrait.
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.
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é.