Leçon 3

Gestión de listados del mercado

Después de cubrir la creación, listado y compra de artículos en nuestro mercado descentralizado, ahora nos centraremos en mejorar nuestro contrato inteligente agregando funcionalidad para eliminar artículos de la venta y actualizar el precio de un artículo.

Mejora del contrato del mercado

En esta sección, presentaremos dos funciones nuevas: removeItemFromSale y updateItemPrice. Estas funciones permitirán al vendedor retirar su artículo de la venta y actualizar el precio de su artículo, respectivamente.

Aquí está el contrato Marketplace mejorado:

Solidez 
 // Identificador de licencia SPDX: solidez pragma del MIT 
 ^0.8.6; 

 contract Marketplace { 
 // Definir una nueva estructura para los artículos 
 struct Item {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

    // Matriz para contener todos los artículos 
 Item[] public items; 

 // Definiciones de eventos omitidas por brevedad 

 // Otras definiciones de funciones omitidas por brevedad 

 // Función para eliminar un artículo de la venta 
 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;
    }

    // Función para actualizar el precio de un artículo 
 función actualizarItemPrice(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;
    }
}

En la función removeItemFromSale , primero recuperamos el artículo con el _itemId proporcionado. Luego verificamos que la persona que llama a la función (msg.sender) sea el vendedor del artículo. Si este es el caso, configuramos la propiedad forSale del artículo en false, eliminándolo efectivamente de la venta.

De manera similar, en la función updateItemPrice , recuperamos el artículo con el _itemId proporcionado, verificamos que msg.sender sea el vendedor y, de ser así, actualizamos el precio del artículo al _newPrice proporcionado.

Implementación e interacción con el contrato de mercado mejorado

Después de mejorar el contrato Marketplace , compílelo e impleméntelo tal como lo hizo en las lecciones anteriores. Recuerde seleccionar el contrato correcto en el menú desplegable del complemento del compilador Solidity antes de compilar e implementar.

Una vez que se implemente el contrato, aparecerá en la sección Contratos implementados en el complemento Implementar y ejecutar transacciones. Aquí puede interactuar con el contrato.

Para eliminar un artículo de la venta, ingrese el ID del artículo en la función removeItemFromSale y haga clic en el botón. Para actualizar el precio de un artículo, ingrese el ID del artículo y el nuevo precio en la función updateItemPrice y haga clic en el botón.

Con esto, ahora ha creado un mercado descentralizado básico pero funcional en la cadena de bloques Ethereum. Puede crear, enumerar, comprar, eliminar y actualizar artículos con este contrato inteligente. ¡Gran trabajo!

En la próxima lección, analizaremos cómo manejar posibles vulnerabilidades de seguridad en nuestro contrato e introduciremos modificadores para optimizar aún más nuestro código. ¡Manténganse al tanto!

Clause de non-responsabilité
* Les investissements en cryptomonnaies comportent des risques importants. Veuillez faire preuve de prudence. Le cours n'est pas destiné à fournir des conseils en investissement.
* Ce cours a été créé par l'auteur qui a rejoint Gate Learn. Toute opinion partagée par l'auteur ne représente pas Gate Learn.
Catalogue
Leçon 3

Gestión de listados del mercado

Después de cubrir la creación, listado y compra de artículos en nuestro mercado descentralizado, ahora nos centraremos en mejorar nuestro contrato inteligente agregando funcionalidad para eliminar artículos de la venta y actualizar el precio de un artículo.

Mejora del contrato del mercado

En esta sección, presentaremos dos funciones nuevas: removeItemFromSale y updateItemPrice. Estas funciones permitirán al vendedor retirar su artículo de la venta y actualizar el precio de su artículo, respectivamente.

Aquí está el contrato Marketplace mejorado:

Solidez 
 // Identificador de licencia SPDX: solidez pragma del MIT 
 ^0.8.6; 

 contract Marketplace { 
 // Definir una nueva estructura para los artículos 
 struct Item {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

    // Matriz para contener todos los artículos 
 Item[] public items; 

 // Definiciones de eventos omitidas por brevedad 

 // Otras definiciones de funciones omitidas por brevedad 

 // Función para eliminar un artículo de la venta 
 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;
    }

    // Función para actualizar el precio de un artículo 
 función actualizarItemPrice(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;
    }
}

En la función removeItemFromSale , primero recuperamos el artículo con el _itemId proporcionado. Luego verificamos que la persona que llama a la función (msg.sender) sea el vendedor del artículo. Si este es el caso, configuramos la propiedad forSale del artículo en false, eliminándolo efectivamente de la venta.

De manera similar, en la función updateItemPrice , recuperamos el artículo con el _itemId proporcionado, verificamos que msg.sender sea el vendedor y, de ser así, actualizamos el precio del artículo al _newPrice proporcionado.

Implementación e interacción con el contrato de mercado mejorado

Después de mejorar el contrato Marketplace , compílelo e impleméntelo tal como lo hizo en las lecciones anteriores. Recuerde seleccionar el contrato correcto en el menú desplegable del complemento del compilador Solidity antes de compilar e implementar.

Una vez que se implemente el contrato, aparecerá en la sección Contratos implementados en el complemento Implementar y ejecutar transacciones. Aquí puede interactuar con el contrato.

Para eliminar un artículo de la venta, ingrese el ID del artículo en la función removeItemFromSale y haga clic en el botón. Para actualizar el precio de un artículo, ingrese el ID del artículo y el nuevo precio en la función updateItemPrice y haga clic en el botón.

Con esto, ahora ha creado un mercado descentralizado básico pero funcional en la cadena de bloques Ethereum. Puede crear, enumerar, comprar, eliminar y actualizar artículos con este contrato inteligente. ¡Gran trabajo!

En la próxima lección, analizaremos cómo manejar posibles vulnerabilidades de seguridad en nuestro contrato e introduciremos modificadores para optimizar aún más nuestro código. ¡Manténganse al tanto!

Clause de non-responsabilité
* Les investissements en cryptomonnaies comportent des risques importants. Veuillez faire preuve de prudence. Le cours n'est pas destiné à fournir des conseils en investissement.
* Ce cours a été créé par l'auteur qui a rejoint Gate Learn. Toute opinion partagée par l'auteur ne représente pas Gate Learn.