Lesson 3

Gerir Anúncios de Marketplace

Depois de cobrir a criação, listagem e compra de artigos no nosso mercado descentralizado, vamos agora concentrar-nos em melhorar o nosso contrato inteligente adicionando funcionalidade para remover itens de venda e atualizar o preço de um item.

Reforçar o Contrato de Marketplace

Nesta seção, vamos introduzir duas novas funções: RemoveITemFromMoe e UpdateITemprice. Estas funções permitirão ao vendedor remover o seu artigo da venda e atualizar o preço do seu artigo, respectivamente.

Eis o contrato avançado de Marketplace:

Solidez
//SPDX-Identificador da licença: MIT
solidez pragma ^0.8.6;

contrato Marketplace {
 //Definir uma nova estrutura para os Itens
 struct Item {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

    //Matriz para segurar todos os itens
 O item [] itens públicos;

 //Definições de eventos omitidas por brevidade

 //Outras definições de função omitidas por brevidade

 //Função para remover um item da venda
 função RemoveITemFromsale (uint _Itemid) pública {
        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 atualizaçãoTemprice (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;
    }
}

Na função RemoveItemFromMoe, primeiro recuperamos o item com o _ITEMID fornecido. Verificamos então que a pessoa que liga a função (msg.sender) é a vendedora do item. Se for esse o caso, definimos a propriedade ForSALe do item como falsa, removendo-a efetivamente da venda.

Da mesma forma, na função UpdateItemPrice, recuperamos o item com o _ITEMID fornecido, verificamos que msg.sender é o vendedor e, se sim, atualizamos o preço do item para o _NewPrice fornecido.

Implementar e interagir com o Contrato de Marketplace Enhanced

Depois de aprimorar o contrato Marketplace, compile-o e implemente-o tal como fez nas lições anteriores. Lembre-se de selecionar o contrato correto no menu suspenso do plug-in do compilador Soliity antes de compilar e implementar.

Assim que o contrato for implementado, aparecerá na seção Contratos Implementados do plugin Implantar & Transações. Aqui, pode interagir com o contrato.

Para remover um item da venda, insira a identificação do item na função RemoveITemFromMoe e clique no botão. Para atualizar o preço de um item, insira a identificação do item e o novo preço na função UpdateItePrice e clique no botão.

Com isto, construiu agora um mercado descentralizado básico mas funcional na cadeia de blocos Ethereum. Pode criar, listar, comprar, remover e atualizar itens com este contrato inteligente. Ótimo trabalho!

Na próxima lição, vamos discutir como lidar com potenciais vulnerabilidades de segurança no nosso contrato e introduzir modificadores para simplificar ainda mais o nosso código. Fique atento!

Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.
Catalog
Lesson 3

Gerir Anúncios de Marketplace

Depois de cobrir a criação, listagem e compra de artigos no nosso mercado descentralizado, vamos agora concentrar-nos em melhorar o nosso contrato inteligente adicionando funcionalidade para remover itens de venda e atualizar o preço de um item.

Reforçar o Contrato de Marketplace

Nesta seção, vamos introduzir duas novas funções: RemoveITemFromMoe e UpdateITemprice. Estas funções permitirão ao vendedor remover o seu artigo da venda e atualizar o preço do seu artigo, respectivamente.

Eis o contrato avançado de Marketplace:

Solidez
//SPDX-Identificador da licença: MIT
solidez pragma ^0.8.6;

contrato Marketplace {
 //Definir uma nova estrutura para os Itens
 struct Item {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

    //Matriz para segurar todos os itens
 O item [] itens públicos;

 //Definições de eventos omitidas por brevidade

 //Outras definições de função omitidas por brevidade

 //Função para remover um item da venda
 função RemoveITemFromsale (uint _Itemid) pública {
        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 atualizaçãoTemprice (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;
    }
}

Na função RemoveItemFromMoe, primeiro recuperamos o item com o _ITEMID fornecido. Verificamos então que a pessoa que liga a função (msg.sender) é a vendedora do item. Se for esse o caso, definimos a propriedade ForSALe do item como falsa, removendo-a efetivamente da venda.

Da mesma forma, na função UpdateItemPrice, recuperamos o item com o _ITEMID fornecido, verificamos que msg.sender é o vendedor e, se sim, atualizamos o preço do item para o _NewPrice fornecido.

Implementar e interagir com o Contrato de Marketplace Enhanced

Depois de aprimorar o contrato Marketplace, compile-o e implemente-o tal como fez nas lições anteriores. Lembre-se de selecionar o contrato correto no menu suspenso do plug-in do compilador Soliity antes de compilar e implementar.

Assim que o contrato for implementado, aparecerá na seção Contratos Implementados do plugin Implantar & Transações. Aqui, pode interagir com o contrato.

Para remover um item da venda, insira a identificação do item na função RemoveITemFromMoe e clique no botão. Para atualizar o preço de um item, insira a identificação do item e o novo preço na função UpdateItePrice e clique no botão.

Com isto, construiu agora um mercado descentralizado básico mas funcional na cadeia de blocos Ethereum. Pode criar, listar, comprar, remover e atualizar itens com este contrato inteligente. Ótimo trabalho!

Na próxima lição, vamos discutir como lidar com potenciais vulnerabilidades de segurança no nosso contrato e introduzir modificadores para simplificar ainda mais o nosso código. Fique atento!

Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.