Lección 3

Gestion des inscriptions sur la place de marché

Après avoir abordé la création, l'inscription et l'achat d'articles sur notre place de marché décentralisée, nous allons maintenant nous concentrer sur l'amélioration de notre contrat intelligent en ajoutant des fonctionnalités permettant de retirer des articles de la vente et de mettre à jour le prix d'un article.

Améliorer le contrat de marché

Dans cette section, nous présentons deux nouvelles fonctions : removeItemFromSale et updateItemPrice. Ces fonctions permettent au vendeur de retirer son article de la vente et de mettre à jour le prix de son article, respectivement.

Voici le contrat de marché amélioré :

Solidity
// SPDX-License-Identifier : MIT
pragma solidity ^0.8.6 ;

contract Marketplace {
 // Définir une nouvelle structure pour les articles
 struct Item {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

    // Tableau pour contenir tous les articles
 Item[] public items ;

 // Définitions d'événements omises par souci de concision

 // Autres définitions de fonctions omises par souci de concision

 // Fonction permettant de retirer un article de la vente
 function removeItemFromSale(uint _itemId) public {
        Item storage item = items[_itemId];
        require(msg.sender == item.seller, "Only the owner can remove the item from sale");
        item.forSale = false;
    }

    // Fonction permettant de mettre à jour le prix d'un article
 function updateItemPrice(uint _itemId, uint _newPrice) public {
        Item storage item = items[_itemId];
        require(msg.sender == item.seller, "Only the owner can update the price");
        item.price = _newPrice;
    }
}

Dans la fonction removeItemFromSale, nous récupérons d'abord l'article avec l'identifiant _itemId fourni. Nous vérifions ensuite que la personne qui appelle la fonction(msg.sender) est bien le vendeur de l'objet. Si c'est le cas, nous attribuons la valeur false à la propriété forSale de l'article, ce qui a pour effet de le retirer de la vente.

De même, dans la fonction updateItemPrice, nous récupérons l'article avec le _itemId fourni, nous vérifions que msg.sender est le vendeur et, si c'est le cas, nous mettons à jour le prix de l'article avec le _newPrice fourni.

Déployer et interagir avec le contrat de marché amélioré

Après avoir amélioré le contrat Marketplace, compilez-le et déployez-le comme vous l'avez fait dans les leçons précédentes. N'oubliez pas de sélectionner le bon contrat dans le menu déroulant du plugin du compilateur Solidity avant de compiler et de déployer.

Une fois le contrat déployé, il apparaîtra dans la section Contrats déployés du plugin Deploy & Run Transactions. Ici, vous pouvez interagir avec le contrat.

Pour retirer un article de la vente, saisissez l'identifiant de l'article dans la fonction removeItemFromSale et cliquez sur le bouton. Pour mettre à jour le prix d'un article, entrez l'ID de l'article et le nouveau prix dans la fonction updateItemPrice et cliquez sur le bouton.

Vous avez ainsi construit une place de marché décentralisée basique mais fonctionnelle sur la blockchain Ethereum. Vous pouvez créer, lister, acheter, supprimer et mettre à jour des objets avec ce contrat intelligent. Excellent travail !

Dans la prochaine leçon, nous verrons comment gérer les failles de sécurité potentielles dans notre contrat et nous introduirons des modificateurs pour rationaliser davantage notre code. Restez à l'écoute !

Descargo de responsabilidad
* La inversión en criptomonedas implica riesgos significativos. Proceda con precaución. El curso no pretende ser un asesoramiento de inversión.
* El curso ha sido creado por el autor que se ha unido a Gate Learn. Cualquier opinión compartida por el autor no representa a Gate Learn.
Catálogo
Lección 3

Gestion des inscriptions sur la place de marché

Après avoir abordé la création, l'inscription et l'achat d'articles sur notre place de marché décentralisée, nous allons maintenant nous concentrer sur l'amélioration de notre contrat intelligent en ajoutant des fonctionnalités permettant de retirer des articles de la vente et de mettre à jour le prix d'un article.

Améliorer le contrat de marché

Dans cette section, nous présentons deux nouvelles fonctions : removeItemFromSale et updateItemPrice. Ces fonctions permettent au vendeur de retirer son article de la vente et de mettre à jour le prix de son article, respectivement.

Voici le contrat de marché amélioré :

Solidity
// SPDX-License-Identifier : MIT
pragma solidity ^0.8.6 ;

contract Marketplace {
 // Définir une nouvelle structure pour les articles
 struct Item {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

    // Tableau pour contenir tous les articles
 Item[] public items ;

 // Définitions d'événements omises par souci de concision

 // Autres définitions de fonctions omises par souci de concision

 // Fonction permettant de retirer un article de la vente
 function removeItemFromSale(uint _itemId) public {
        Item storage item = items[_itemId];
        require(msg.sender == item.seller, "Only the owner can remove the item from sale");
        item.forSale = false;
    }

    // Fonction permettant de mettre à jour le prix d'un article
 function updateItemPrice(uint _itemId, uint _newPrice) public {
        Item storage item = items[_itemId];
        require(msg.sender == item.seller, "Only the owner can update the price");
        item.price = _newPrice;
    }
}

Dans la fonction removeItemFromSale, nous récupérons d'abord l'article avec l'identifiant _itemId fourni. Nous vérifions ensuite que la personne qui appelle la fonction(msg.sender) est bien le vendeur de l'objet. Si c'est le cas, nous attribuons la valeur false à la propriété forSale de l'article, ce qui a pour effet de le retirer de la vente.

De même, dans la fonction updateItemPrice, nous récupérons l'article avec le _itemId fourni, nous vérifions que msg.sender est le vendeur et, si c'est le cas, nous mettons à jour le prix de l'article avec le _newPrice fourni.

Déployer et interagir avec le contrat de marché amélioré

Après avoir amélioré le contrat Marketplace, compilez-le et déployez-le comme vous l'avez fait dans les leçons précédentes. N'oubliez pas de sélectionner le bon contrat dans le menu déroulant du plugin du compilateur Solidity avant de compiler et de déployer.

Une fois le contrat déployé, il apparaîtra dans la section Contrats déployés du plugin Deploy & Run Transactions. Ici, vous pouvez interagir avec le contrat.

Pour retirer un article de la vente, saisissez l'identifiant de l'article dans la fonction removeItemFromSale et cliquez sur le bouton. Pour mettre à jour le prix d'un article, entrez l'ID de l'article et le nouveau prix dans la fonction updateItemPrice et cliquez sur le bouton.

Vous avez ainsi construit une place de marché décentralisée basique mais fonctionnelle sur la blockchain Ethereum. Vous pouvez créer, lister, acheter, supprimer et mettre à jour des objets avec ce contrat intelligent. Excellent travail !

Dans la prochaine leçon, nous verrons comment gérer les failles de sécurité potentielles dans notre contrat et nous introduirons des modificateurs pour rationaliser davantage notre code. Restez à l'écoute !

Descargo de responsabilidad
* La inversión en criptomonedas implica riesgos significativos. Proceda con precaución. El curso no pretende ser un asesoramiento de inversión.
* El curso ha sido creado por el autor que se ha unido a Gate Learn. Cualquier opinión compartida por el autor no representa a Gate Learn.