Lektion 3

Verwalten von Marktplatzeinträgen

Nachdem wir uns mit der Erstellung, Auflistung und dem Kauf von Artikeln auf unserem dezentralen Marktplatz befasst haben, konzentrieren wir uns nun auf die Verbesserung unseres Smart Contracts, indem wir Funktionen zum Entfernen von Artikeln aus dem Verkauf und zum Aktualisieren des Preises eines Artikels hinzufügen.

Erweiterung des Marktplatzvertrags

In diesem Abschnitt stellen wir zwei neue Funktionen vor: removeItemFromSale und updateItemPrice. Mit diesen Funktionen kann der Verkäufer seinen Artikel aus dem Verkauf nehmen bzw. den Preis seines Artikels aktualisieren.

Hier ist der erweiterte Marketplace Vertrag:

Solidity 
 // SPDX-License-Identifier: MIT 
 Pragma Solidity ^0.8.6; 

 Contract Marketplace { 
 // Definiere eine neue Struktur für Artikel 
 struct Item {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

    // Array zur Aufnahme aller Artikel 
 Item[] public items; 

 // Ereignisdefinitionen wurden der Kürze halber weggelassen 

 // Andere Funktionsdefinitionen wurden der Kürze halber weggelassen 

 // Funktion zum Entfernen eines Artikels aus dem Verkauf 
 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;
    }

    // Funktion zum Aktualisieren des Preises eines Artikels 
 Funktion 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;
    }
}

In der Funktion removeItemFromSale rufen wir zunächst den Artikel mit der bereitgestellten _itemId ab. Anschließend prüfen wir, ob die Person, die die Funktion (msg.sender) aufruft, der Verkäufer des Artikels ist. Wenn dies der Fall ist, setzen wir die forSale Eigenschaft des Artikels auf false und nehmen ihn so effektiv aus dem Verkauf.

In ähnlicher Weise rufen wir in der Funktion updateItemPrice den Artikel mit der bereitgestellten _itemId ab, überprüfen, ob msg.sender der Verkäufer ist, und aktualisieren in diesem Fall den Preis des Artikels auf den bereitgestellten _newPrice.

Bereitstellung und Interaktion mit dem Enhanced Marketplace-Vertrag

Nachdem Sie den Marketplace Vertrag erweitert haben, kompilieren und implementieren Sie ihn wie in den vorherigen Lektionen. Denken Sie daran, vor dem Kompilieren und Bereitstellen den richtigen Vertrag aus dem Dropdown-Menü im Solidity-Compiler-Plugin auszuwählen.

Sobald der Vertrag bereitgestellt wurde, wird er im Abschnitt „Bereitgestellte Verträge“ im Plugin „Transaktionen bereitstellen und ausführen“ angezeigt. Hier können Sie mit dem Vertrag interagieren.

Um einen Artikel aus dem Verkauf zu entfernen, geben Sie die Artikel-ID in die Funktion removeItemFromSale ein und klicken Sie auf die Schaltfläche. Um den Preis eines Artikels zu aktualisieren, geben Sie die Artikel-ID und den neuen Preis in die Funktion updateItemPrice ein und klicken Sie auf die Schaltfläche.

Damit haben Sie nun einen einfachen, aber funktionalen dezentralen Marktplatz auf der Ethereum-Blockchain aufgebaut. Mit diesem Smart Contract können Sie Artikel erstellen, auflisten, kaufen, entfernen und aktualisieren. Gut gemacht!

In der nächsten Lektion besprechen wir den Umgang mit potenziellen Sicherheitslücken in unserem Vertrag und führen Modifikatoren ein, um unseren Code weiter zu optimieren. Bleiben Sie dran!

Haftungsausschluss
* Kryptoinvestitionen sind mit erheblichen Risiken verbunden. Bitte lassen Sie Vorsicht walten. Der Kurs ist nicht als Anlageberatung gedacht.
* Der Kurs wird von dem Autor erstellt, der Gate Learn beigetreten ist. Vom Autor geteilte Meinungen spiegeln nicht zwangsläufig die Meinung von Gate Learn wider.
Katalog
Lektion 3

Verwalten von Marktplatzeinträgen

Nachdem wir uns mit der Erstellung, Auflistung und dem Kauf von Artikeln auf unserem dezentralen Marktplatz befasst haben, konzentrieren wir uns nun auf die Verbesserung unseres Smart Contracts, indem wir Funktionen zum Entfernen von Artikeln aus dem Verkauf und zum Aktualisieren des Preises eines Artikels hinzufügen.

Erweiterung des Marktplatzvertrags

In diesem Abschnitt stellen wir zwei neue Funktionen vor: removeItemFromSale und updateItemPrice. Mit diesen Funktionen kann der Verkäufer seinen Artikel aus dem Verkauf nehmen bzw. den Preis seines Artikels aktualisieren.

Hier ist der erweiterte Marketplace Vertrag:

Solidity 
 // SPDX-License-Identifier: MIT 
 Pragma Solidity ^0.8.6; 

 Contract Marketplace { 
 // Definiere eine neue Struktur für Artikel 
 struct Item {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

    // Array zur Aufnahme aller Artikel 
 Item[] public items; 

 // Ereignisdefinitionen wurden der Kürze halber weggelassen 

 // Andere Funktionsdefinitionen wurden der Kürze halber weggelassen 

 // Funktion zum Entfernen eines Artikels aus dem Verkauf 
 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;
    }

    // Funktion zum Aktualisieren des Preises eines Artikels 
 Funktion 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;
    }
}

In der Funktion removeItemFromSale rufen wir zunächst den Artikel mit der bereitgestellten _itemId ab. Anschließend prüfen wir, ob die Person, die die Funktion (msg.sender) aufruft, der Verkäufer des Artikels ist. Wenn dies der Fall ist, setzen wir die forSale Eigenschaft des Artikels auf false und nehmen ihn so effektiv aus dem Verkauf.

In ähnlicher Weise rufen wir in der Funktion updateItemPrice den Artikel mit der bereitgestellten _itemId ab, überprüfen, ob msg.sender der Verkäufer ist, und aktualisieren in diesem Fall den Preis des Artikels auf den bereitgestellten _newPrice.

Bereitstellung und Interaktion mit dem Enhanced Marketplace-Vertrag

Nachdem Sie den Marketplace Vertrag erweitert haben, kompilieren und implementieren Sie ihn wie in den vorherigen Lektionen. Denken Sie daran, vor dem Kompilieren und Bereitstellen den richtigen Vertrag aus dem Dropdown-Menü im Solidity-Compiler-Plugin auszuwählen.

Sobald der Vertrag bereitgestellt wurde, wird er im Abschnitt „Bereitgestellte Verträge“ im Plugin „Transaktionen bereitstellen und ausführen“ angezeigt. Hier können Sie mit dem Vertrag interagieren.

Um einen Artikel aus dem Verkauf zu entfernen, geben Sie die Artikel-ID in die Funktion removeItemFromSale ein und klicken Sie auf die Schaltfläche. Um den Preis eines Artikels zu aktualisieren, geben Sie die Artikel-ID und den neuen Preis in die Funktion updateItemPrice ein und klicken Sie auf die Schaltfläche.

Damit haben Sie nun einen einfachen, aber funktionalen dezentralen Marktplatz auf der Ethereum-Blockchain aufgebaut. Mit diesem Smart Contract können Sie Artikel erstellen, auflisten, kaufen, entfernen und aktualisieren. Gut gemacht!

In der nächsten Lektion besprechen wir den Umgang mit potenziellen Sicherheitslücken in unserem Vertrag und führen Modifikatoren ein, um unseren Code weiter zu optimieren. Bleiben Sie dran!

Haftungsausschluss
* Kryptoinvestitionen sind mit erheblichen Risiken verbunden. Bitte lassen Sie Vorsicht walten. Der Kurs ist nicht als Anlageberatung gedacht.
* Der Kurs wird von dem Autor erstellt, der Gate Learn beigetreten ist. Vom Autor geteilte Meinungen spiegeln nicht zwangsläufig die Meinung von Gate Learn wider.