NFT sur Ethereum Cas pratique de création d’un contrat intelligent avec le standard ERC-721 Qu’est-ce qu’un NFT ? Un NFT ou jeton non fongible est une représentation numérique de quelque chose d’unique, qui peut être collectionné et ne peut en aucun cas être répliqué. Objectif de ce tutoriel À la fin de ce tutoriel vous serez en mesure de créer un contrat intelligent qui permet d’émettre les NFTs et le deployer sur une Blockchain locale(testnet). Création d’un nouveau projet mkdir nft_test => pour créer un nouveau dossier où se trouvera notre projetnpm install -g truffle => installation de truffle intallation de ganache : lien de téléchargement https://trufflesuite.com/ganache/cd nft_testtruffle init Contenu du projet créé contrats: dossier contenant les contrats intelligents.migrations: dossier contenant les scripts de déploiement.test: dossier servant aux tests des contratstruffle-config.js: le fichier de configuration pour le déploiement. ERC-721 / Openzeppelin Openzepplin offre des librairies qui implémentent les standards de contrats intélligents sur Ethereum.ERC721 — un contrat de jeton non fongible qui suit EIP-721. Non fongible signifie que chaque jeton est différent, et donc unique. Un jeton ERC721 peut représenter la propriété de cet objet unique.npm install @openzeppelin/contracts => pour installer Ecrire le contrat Ouvrir le projet sur nft_test sur vscode.Dans le dossier “contrats” créer un nouveau fichier “nft_test.sol”..sol c’est l’extension de fichier solidity, qui est le langage de programmation des contrats intelligents sur ethereum. Compiler et deployer le contrat intelligent sur la blockchain locale (ganache) Créer le ficher 2_deploy.js dans le dossier migrations.Insérer le code de migration du contrat “MyNFTH”. Démarrer Ganache truffle console (connection à la blockchain locale (testnet)avec truffle)Configurer le fichier truffle-config.js en fonction de la version de solidity utilisée dans le contrat. deploy (dans le console de truffle). Yeah vous avez déployé votre premier contrat sur Blockchain. Aperçu sur ganache Interagir avec le contrat (truffle) global = thisepitech = await MyNFT.deployed()Avoir le nom du contrat = epitech.name()‘EPITECH’ (resultat)Avoir le symbole du contrat = epitech.symbol()‘NFT’ (resultat) Mint(émettre) un NFT (image) Le fichier doit être mis sur un serveur de manière définitive.On a besoin d’une url qui retour un objet json qui décrit le NFT (metadata)Ici on utilisera en local: http://127.0.0.1:4444/flask/api/v1/epitech/ On a besoin d’une adresse ethereum qui sera celle du propriétaire de ce nft. Pour cet exemple nous prenons l’ adresse du premier compte dans ganache qui a des ethers.Dans la console truffle, effectuer la commande ci-après en remplaçant l’adresse par la votre et l’url selon les cas: epitech.mintNFT("0x479234D0c5D648a0D48FF234802ae90161CC697e", “http://127.0.0.1:4444/flask/api/v1/epitech/“) Tandannnn votre premier “NFT” a été “minté” (créé) Interagir avec le NFT Obtenir le propriétaire du NFT créé qui a été créé, tokenId 1 : await epitech.ownerOf(1) Obtenir l’uri du metadata : await epitech.tokenURI(1) Voilà vous avez inscrit un contrat intelligent sur ethereum et émis votre premier nft. Yeah!!!! 🙂 ⭐ Rating: 1 out of 5. Twitter Share this:FacebookXLike this:Like Loading...