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