Construire une plateforme de trading NFT décentralisée à partir de zéro
Pour les NFT conformes au protocole ERC-721, comment réaliser une transaction décentralisée ? Actuellement, la méthode de transaction NFT la plus courante utilise un modèle de livre de commandes, semblable à l'affichage de produits sur une étagère, où les acheteurs peuvent acheter lorsque le prix leur semble approprié. Cet article mettra en œuvre une plateforme de transaction NFT décentralisée de base en écrivant des contrats intelligents et une simple page frontale.
Les fonctionnalités de base de la plateforme NFT
Une plateforme NFT de base devrait avoir les fonctions suivantes :
Mettre en ligne un NFT : le vendeur peut fixer un prix pour mettre le NFT en vente.
Acheter des NFT : les acheteurs peuvent acheter les NFT mis en vente au prix fixé.
Perception de frais : la plateforme peut prélever un certain pourcentage des frais sur le prix de transaction.
mise en ligne NFT
Le processus pour mettre en ligne un NFT est le suivant :
Le vendeur choisit le NFT à mettre en vente et fixe le prix.
Le contrat de transaction autorisé par le vendeur peut opérer ce NFT
Appeler la méthode de mise en ligne du contrat, enregistrer les informations de mise en ligne
acheter NFT
Le processus d'achat d'un NFT est le suivant :
L'acheteur choisit le NFT qu'il souhaite acheter
Appeler la méthode d'achat du contrat
Le contrat transfère les fonds de l'acheteur au vendeur, tout en transférant le NFT à l'acheteur.
Réaliser une plateforme de trading
1. Créer un NFT de test
Vous pouvez utiliser Remix pour déployer rapidement un contrat NFT basé sur le protocole ERC-721 pour les tests.
2. Rédiger un contrat de transaction
Les contrats de transaction doivent implémenter les principales méthodes suivantes :
2.1 Mise en ligne de NFT
solidité
function listNFT(address nftAddress, uint256 tokenId, uint256 price) public {
// Vérifier la propriété de l'NFT
// Enregistrer les informations de mise en ligne
// Déclencher l'événement de mise en ligne
}
2.2 Acheter NFT
solidity
function purchaseNFT(address nftAddress, uint256 tokenId) public payable {
// Obtenir des informations sur la mise en vente des NFT
// Calculer et déduire les frais
// Transférer le NFT à l'acheteur
// Déclencher l'événement d'achat
}
2.3 Annuler le listing
solidité
function annulerAnnonce(adresse nftAddress, uint256 tokenId) public {
// Vérifier les autorisations d'opération
// Définir l'état de mise en vente sur invalide
// Déclencher l'événement d'annulation
}
2.4 Retrait de frais
solidité
function retirerFrais() public seulementPropriétaire {
// Frais de transaction dans le contrat de transfert
}
3. Développement de l'interface frontale
Utilisez les outils suivants pour développer le front-end :
Ant Design Web3 : utilisé pour la connexion de portefeuille et l'affichage des NFT
Wagmi : utilisé pour interagir avec le portefeuille
Next.js + Vercel : déployer le projet
L'interface utilisateur comprend les pages principales suivantes :
Mint: utilisé pour créer des NFT de test
Acheter : marché NFT, vous pouvez acheter des NFT en vente.
Portefeuille : gérer les NFT des utilisateurs, possibilité de les mettre en vente et de les retirer.
3.1 Connecter un portefeuille
Utiliser le composant de connexion Ant Design Web3 pour implémenter la fonctionnalité de connexion au portefeuille.
3.2 Page de Mint
Appeler la méthode mint du contrat NFT pour créer un NFT de test.
3.3 Page de Portefeuille
Obtenir les NFT possédés par l'utilisateur
Déterminer si le NFT est déjà listé
Mettre en œuvre la fonction de mise en ligne et de retrait des NFT
3.4 Page d'achat
Afficher tous les NFT répertoriés
Réaliser la fonction d'achat
À ce stade, une plateforme de trading NFT décentralisée de base est terminée. Elle peut être déployée sur Vercel pour des tests.
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
9 J'aime
Récompense
9
6
Partager
Commentaire
0/400
LiquidationWatcher
· 07-04 15:00
été victime de trop de rugpulls pour faire confiance à un autre dex... faites attention à ces frais et smart contracts fam
Voir l'originalRépondre0
hodl_therapist
· 07-04 10:30
Après avoir étudié les smart contracts toute la journée, il faut encore tout recommencer depuis le front-end ?
Voir l'originalRépondre0
MetaverseLandlady
· 07-01 16:13
Les frais ne doivent pas être meilleurs que ce que notre propriétaire gagne, tout est presque pris pour des idiots.
Voir l'originalRépondre0
ChainMelonWatcher
· 07-01 16:12
Les frais sont vraiment une taxe sur l'intelligence, n'est-ce pas ?
Voir l'originalRépondre0
GasFeeCrier
· 07-01 16:04
Encore en train d'émettre des jetons gas, quand cela deviendra-t-il moins cher ?
Voir l'originalRépondre0
FlashLoanKing
· 07-01 15:54
Rire à mourir, encore en train de faire des smart contracts.
Construire une plateforme de trading NFT décentralisée : des smart contracts à l'interface frontale
Construire une plateforme de trading NFT décentralisée à partir de zéro
Pour les NFT conformes au protocole ERC-721, comment réaliser une transaction décentralisée ? Actuellement, la méthode de transaction NFT la plus courante utilise un modèle de livre de commandes, semblable à l'affichage de produits sur une étagère, où les acheteurs peuvent acheter lorsque le prix leur semble approprié. Cet article mettra en œuvre une plateforme de transaction NFT décentralisée de base en écrivant des contrats intelligents et une simple page frontale.
Les fonctionnalités de base de la plateforme NFT
Une plateforme NFT de base devrait avoir les fonctions suivantes :
mise en ligne NFT
Le processus pour mettre en ligne un NFT est le suivant :
acheter NFT
Le processus d'achat d'un NFT est le suivant :
Réaliser une plateforme de trading
1. Créer un NFT de test
Vous pouvez utiliser Remix pour déployer rapidement un contrat NFT basé sur le protocole ERC-721 pour les tests.
2. Rédiger un contrat de transaction
Les contrats de transaction doivent implémenter les principales méthodes suivantes :
2.1 Mise en ligne de NFT
solidité function listNFT(address nftAddress, uint256 tokenId, uint256 price) public { // Vérifier la propriété de l'NFT // Enregistrer les informations de mise en ligne
// Déclencher l'événement de mise en ligne }
2.2 Acheter NFT
solidity function purchaseNFT(address nftAddress, uint256 tokenId) public payable { // Obtenir des informations sur la mise en vente des NFT // Calculer et déduire les frais // Transférer le NFT à l'acheteur // Déclencher l'événement d'achat
}
2.3 Annuler le listing
solidité function annulerAnnonce(adresse nftAddress, uint256 tokenId) public { // Vérifier les autorisations d'opération // Définir l'état de mise en vente sur invalide // Déclencher l'événement d'annulation }
2.4 Retrait de frais
solidité function retirerFrais() public seulementPropriétaire { // Frais de transaction dans le contrat de transfert }
3. Développement de l'interface frontale
Utilisez les outils suivants pour développer le front-end :
L'interface utilisateur comprend les pages principales suivantes :
3.1 Connecter un portefeuille
Utiliser le composant de connexion Ant Design Web3 pour implémenter la fonctionnalité de connexion au portefeuille.
3.2 Page de Mint
Appeler la méthode mint du contrat NFT pour créer un NFT de test.
3.3 Page de Portefeuille
3.4 Page d'achat
À ce stade, une plateforme de trading NFT décentralisée de base est terminée. Elle peut être déployée sur Vercel pour des tests.