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