第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 !

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。
目录
第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 !

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。