الدرس رقم 3

Gerenciando listagens do Marketplace

Depois de abordar a criação, listagem e compra de itens em nosso mercado descentralizado, vamos agora nos concentrar em aprimorar nosso contrato inteligente, adicionando funcionalidades para remover itens da venda e atualizar o preço de um item.

Aprimorando o contrato de mercado

Nesta seção, apresentaremos duas novas funções: removeItemFromSale e updateItemPrice. Essas funções permitirão ao vendedor retirar seu item da venda e atualizar o preço do item, respectivamente.

Aqui está o contrato aprimorado Marketplace :

Solidez 
 // Identificador de licença SPDX: solidez do pragma MIT 
 ^0.8.6; 

 contract Marketplace { 
 // Define uma nova estrutura para os itens 
 struct Item {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

    // Array para conter todos os itens 
 Item[] public items; 

 // Definições de eventos omitidas por questões de brevidade 

 // Outras definições de funções omitidas por questões de brevidade 

 // Função para remover um item da venda 
 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;
    }

    // Função para atualizar o preço de um item 
 função updateItemPrice(uint _itemId, uint _newPrice) público {
        Item storage item = items[_itemId];
        require(msg.sender == item.seller, "Only the owner can update the price");
        item.price = _newPrice;
    }
}

Na função removeItemFromSale , primeiro recuperamos o item com o _itemId fornecido. Em seguida, verificamos se a pessoa que chama a função (msg.sender) é o vendedor do item. Se for esse o caso, definimos a propriedade forSale do item como false, efetivamente removendo-o da venda.

Da mesma forma, na função updateItemPrice , recuperamos o item com o _itemId fornecido, verificamos se msg.sender é o vendedor e, em caso afirmativo, atualizamos o preço do item para o _newPrice fornecido.

Implantando e interagindo com o contrato do Marketplace aprimorado

Depois de aprimorar o contrato Marketplace , compile-o e implante-o como fez nas lições anteriores. Lembre-se de selecionar o contrato correto no menu suspenso do plugin do compilador Solidity antes de compilar e implantar.

Assim que o contrato for implantado, ele aparecerá na seção Contratos Implantados no plug-in Deploy & Run Transactions. Aqui você pode interagir com o contrato.

Para remover um item da venda, insira o ID do item na função removeItemFromSale e clique no botão. Para atualizar o preço de um item, insira o ID do item e o novo preço na função updateItemPrice e clique no botão.

Com isso, você construiu um mercado descentralizado básico, mas funcional, no blockchain Ethereum. Você pode criar, listar, comprar, remover e atualizar itens com este contrato inteligente. Bom trabalho!

Na próxima lição, discutiremos como lidar com possíveis vulnerabilidades de segurança em nosso contrato e introduzir modificadores para simplificar ainda mais nosso código. Fique atento!

إخلاء المسؤولية
* ينطوي الاستثمار في العملات الرقمية على مخاطر كبيرة. فيرجى المتابعة بحذر. ولا تهدف الدورة التدريبية إلى تقديم المشورة الاستثمارية.
* تم إنشاء الدورة التدريبية من قبل المؤلف الذي انضم إلى مركز التعلّم في Gate. ويُرجى العلم أنّ أي رأي يشاركه المؤلف لا يمثّل مركز التعلّم في Gate.
الكتالوج
الدرس رقم 3

Gerenciando listagens do Marketplace

Depois de abordar a criação, listagem e compra de itens em nosso mercado descentralizado, vamos agora nos concentrar em aprimorar nosso contrato inteligente, adicionando funcionalidades para remover itens da venda e atualizar o preço de um item.

Aprimorando o contrato de mercado

Nesta seção, apresentaremos duas novas funções: removeItemFromSale e updateItemPrice. Essas funções permitirão ao vendedor retirar seu item da venda e atualizar o preço do item, respectivamente.

Aqui está o contrato aprimorado Marketplace :

Solidez 
 // Identificador de licença SPDX: solidez do pragma MIT 
 ^0.8.6; 

 contract Marketplace { 
 // Define uma nova estrutura para os itens 
 struct Item {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

    // Array para conter todos os itens 
 Item[] public items; 

 // Definições de eventos omitidas por questões de brevidade 

 // Outras definições de funções omitidas por questões de brevidade 

 // Função para remover um item da venda 
 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;
    }

    // Função para atualizar o preço de um item 
 função updateItemPrice(uint _itemId, uint _newPrice) público {
        Item storage item = items[_itemId];
        require(msg.sender == item.seller, "Only the owner can update the price");
        item.price = _newPrice;
    }
}

Na função removeItemFromSale , primeiro recuperamos o item com o _itemId fornecido. Em seguida, verificamos se a pessoa que chama a função (msg.sender) é o vendedor do item. Se for esse o caso, definimos a propriedade forSale do item como false, efetivamente removendo-o da venda.

Da mesma forma, na função updateItemPrice , recuperamos o item com o _itemId fornecido, verificamos se msg.sender é o vendedor e, em caso afirmativo, atualizamos o preço do item para o _newPrice fornecido.

Implantando e interagindo com o contrato do Marketplace aprimorado

Depois de aprimorar o contrato Marketplace , compile-o e implante-o como fez nas lições anteriores. Lembre-se de selecionar o contrato correto no menu suspenso do plugin do compilador Solidity antes de compilar e implantar.

Assim que o contrato for implantado, ele aparecerá na seção Contratos Implantados no plug-in Deploy & Run Transactions. Aqui você pode interagir com o contrato.

Para remover um item da venda, insira o ID do item na função removeItemFromSale e clique no botão. Para atualizar o preço de um item, insira o ID do item e o novo preço na função updateItemPrice e clique no botão.

Com isso, você construiu um mercado descentralizado básico, mas funcional, no blockchain Ethereum. Você pode criar, listar, comprar, remover e atualizar itens com este contrato inteligente. Bom trabalho!

Na próxima lição, discutiremos como lidar com possíveis vulnerabilidades de segurança em nosso contrato e introduzir modificadores para simplificar ainda mais nosso código. Fique atento!

إخلاء المسؤولية
* ينطوي الاستثمار في العملات الرقمية على مخاطر كبيرة. فيرجى المتابعة بحذر. ولا تهدف الدورة التدريبية إلى تقديم المشورة الاستثمارية.
* تم إنشاء الدورة التدريبية من قبل المؤلف الذي انضم إلى مركز التعلّم في Gate. ويُرجى العلم أنّ أي رأي يشاركه المؤلف لا يمثّل مركز التعلّم في Gate.
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.