Übung: Schreiben Ihres ersten Vertrags

Abgeschlossen

Als Nächstes wenden Sie das gelernte an, indem Sie einen vollständigen Smart Contract erstellen.

In diesem Beispiel verwenden Sie Solidity, um einen Smart Contract für einen einfachen Onlinemarketplace zu erstellen. Mit diesem Vertrag können Benutzer einen Artikel zum Verkauf anbieten und einen verfügbaren Artikel erwerben. Daran sind zwei Rollen beteiligt: ein Verkäufer und ein Käufer.

Einfaches Beispiel für einen Marketplace

pragma solidity >0.7.0 <0.8.0;

contract Marketplace {
    address public seller;
    address public buyer;
    mapping (address => uint) public balances;

    event ListItem(address seller, uint price);
    event PurchasedItem(address seller, address buyer, uint price);

    enum StateType {
          ItemAvailable,
          ItemPurchased
    }

    StateType public State;

    constructor() public {
        seller = msg.sender;
        State = StateType.ItemAvailable;
    }

    function buy(address seller, address buyer, uint price) public payable {
        require(price <= balances[buyer], "Insufficient balance");
        State = StateType.ItemPurchased;
        balances[buyer] -= price;
        balances[seller] += price;

        emit PurchasedItem(seller, buyer, msg.value);
    }
}    

Im Folgenden werden die Hauptkomponenten des Smart Contracts erläutert:

  • Dabei handelt es sich um:
    • Drei Zustandsvariablen: buyer, seller und balances
    • Zwei Ereignisse: ListItem und PurchasedItem
    • Eine Enumeration mit zwei Werten: ItemAvailable und ItemPurchased
  • Der Konstruktor weist den Verkäufer als msg.sender zu und legt den Anfangszustand auf ItemAvailable fest. Dieser Konstruktor wird aufgerufen, wenn der Vertrag erstellt wird.
  • Die Funktion buy akzeptiert drei Parameter: seller, buyer und price. Sie weist außerdem die Anforderung auf, dass der Käufer über ausreichend Geld für den Kauf verfügen muss. Das Geld wird dann vom Käufer an den Verkäufer übermittelt, und abschließend wird eine Nachricht ausgegeben.

Nächste Schritte

Rufen Sie die Remix-IDE auf, um mehr Beispiele für Smart Contract in Solidity zu untersuchen. Remix ist eine IDE (integrierte Entwicklungsumgebung) im Browser, mit der Sie sofort einsteigen können, ohne ein Konto erstellen oder sich anmelden zu müssen. Sie können Verträge sofort schreiben, testen, kompilieren und bereitstellen.

Kopieren Sie diesen Smart Contract, und fügen Sie ihn in eine neue Datei mit dem Namen Marketplace.sol ein. Kompilieren Sie dann den Vertrag, und stellen Sie ihn bereit. Während der Vertrag über eine Funktion zum Kauf eines verfügbaren Artikels verfügt, werden Sie feststellen, dass es keine Möglichkeit gibt, beim Kauf eine alternative Währung anzugeben. Für eine zusätzliche Herausforderung nutzen Sie Ihre bisherigen Kenntnisse, um eine Funktion zu schreiben, um dem Käufer einen Saldo zu gewähren, wobei Sie eine Kontoadresse und einen Betrag bereitstellen. Wenn Sie ein Beispiel dafür sehen möchten, sehen Sie sich das folgende Video an: Dr. G add a function to initialize a balance for participants (Dr. G: Hinzufügen einer Funktionzum Initialisieren eines Saldos für Teilnehmer).