Einfach Solidity Lernen: Einen Solidity Smart Contract Erstellen

Einfach Solidity Lernen: Einen Solidity Smart Contract Erstellen
Solidity ist eine Vertragsorientierte Programmiersprache für Ethereum. Im ersten Schritt zeige ich dir, wie du ganz einfach einen Solidity Smart Contract erstellen kannst. Dafür müssen wir Solidity zum Anfang erstmal angeben, dass wir überhaupt Solidity verwenden möchten und natürlich auch welche Version wir benötigen.

Solidity Smart Contract Erstellen

Dafür benutzten wir zu Beginn „pragma solidity“ und dann die Version die wir nutzen möchten.


pragma solidity ^0.4.0;

contract MyFirstContract {
      string name;
}

Danach bestimmen wir einen Vertrag vom Typ „Contract“. Nun müssen wir unserem Vertrag noch einen Namen geben. Hier kannst du dir jeden beliebigen Namen aussuchen, den du möchtest. In unserem Fall heißt unser Vertrag „MyFirstContract“.

Hierbei ist zu beachten, dass wir uns schon zu Beginn beim Anlegen von Variablen, Klassen, Methoden etc. an die richtige Notationen halten wollen. Das heißt, wir unterscheiden hierbei zwischen Camel Case und Pascal Case.

PascalCase bedeutet, dass wenn wir unseren Variablen Namen geben, beginnen wir jedes Wort mit einem Großbuchstaben. Das gilt aber nur für Klassennamen(z.B. Unserem Contract) und Methoden. Als Beispiel können wir unseren Vertrag MyFirstContract nehmen, wobei jedes neue Wort mit einem Großbuchstaben anfängt. Beim camelCase beginnt hingegen jeder Name mit einem kleinen Buchstaben. Dieser wird jedoch nur bei Namen für Variablen (also zB. uint) und Argumenten von Methoden verwendet. 

Benenne dein Smart Contract

Danach müssen wir bestimmen, was alles in unseren Smart Contract hineinkommt. Als Erstes legen wir ein Feld (sprich Variable) vom Typ „string“ für den Namen des Vertrags an.


pragma solidity ^0.4.0;

contract MyFirstContract {

     string name;
}

Datentypen festlegen

Du kannst diese Variable noch auf Private stellen. Dadurch wird gewährleistet, dass niemand Zugriff von außen auf dieses Feld hat. Dieser wird jedoch nicht wie bei Java am Anfang des Feldes gesetzt, sondern zwischen dem Datentyp und dem Namen des Feldes. Das sieht dann wie folgt aus:


pragma solidity ^0.4.0;

contract MyFirstContract {

     string private _name;
}

Des Weiteren brauchen wir für unseren Smart Contract ein Alter. Dafür benutzten wir „uint private _age“. Der Syntax sieht dann wie folgt aus:


pragma solidity ^0.4.0;

contract MyFirstContract {

     string private _name;

     uint private _age;
}

Erstelle eine Set und Get Funktion

Weil nun alle Felder auf private gestellt sind, haben sie noch keine richtige Funktion. Deshalb erstellen wir nun eine set und get Funktion für „_name“ und „_age“. Dabei werden unsere beiden Felder nun zu einer Eigenschaft. Das heißt, wenn wir im späteren Verlauf von Eigenschaften reden, sprechen wir über Felder mit entweder einer set oder einer get- Funktion (oder natürlichen mit beidem). Aber was erreichen wir nun dadurch? Nun mit Hilfe einer get-Funktionen können wir von außen auf unsere Variable zugreifen und zum Beispiel auf unserem Bildschirm ausgeben lassen. Jedoch bezieht sich das nur auf das Ausgeben und nicht auf das Zuweisen. Dafür kommt nun die set-Funktion zum Tragen. Über diese können wir einen Zugriff auf unsere Eigenschaften gewährleisten.

Nutzung der Set und Get Funktion

Über gewisse Plausibilitätsprüfungen können wir nun unzulässige Werte vorher abfangen. Zum Beispiel darf unsere Eigenschaft „Age“ nicht kleiner als 0 sein oder unser String „Name“ muss mindestens x Zeichen enthalten. Das können wir wie in JavaSkript erstellen. Dafür geben wir in die Konsole einfach „function“ ein. Danach erscheint das Keyword „set“ gefolgt von unserer Eigenschaft die wir verändern wolle, in unserem Fall also „Name“. Danach müssen wir wie bei einer Methode, in runden Klammern einen Parameter deklarieren. Dieser eingegebenen Wert (string) wird dann von der Konsole gespeichert. In unserem Fall legen wir wieder eine Variable namens „newName“ vom gleichen Typ wie bei „_name“ an (Achtung hier camelCase benutzen). Dieser wird innerhalb unserer set-Funktion dann unserer privaten Variable zugewiesen.

Das sieht dann wie folgt aus:


pragma solidity ^0.4.0;

contract MyFirstContract {

     string private _name;
     uint private _age;

     function setName(string newName) {
         _name = newName;
     }
}

Also alles, was wir in die Konsole eingeben, wird über die Funktion „setName“, den Namen unseres Vertrags verändern.

Damit wir nun den Namen auf dem Bildschirm ausgeben können, schreiben wir für diesen noch eine get-Funktion. Das funktioniert wie mit der set-Funktion. Nur schreiben wir ein „get“ gefolgt von „Name“.

Der einzige Unterschied hierbei ist, dass wir keine Zuweisung haben, sondern lediglich ein Return, da wir ja nur den Wert angezeigt bekommen wollen.


pragma solidity ^0.4.0;

contract MyFirstContract {

     string private _name;
     uint private _age;

     function setName(string newName) {
         _name = newName;
     }

    function getName() returns (string) {
         return _name;
    }
}

Das Ganze machen wir jetzt noch für die Variable _age. Das sollte wie folgt aussehen:


pragma solidity ^0.4.0;

contract MyFirstContract {

     string private _name;
     uint private _age;

     function setName(string newName) {
         _name = newName;
     }

    function getName() returns (string) {
         return _name;
    }

     function setAge(unit newAge) {
         _age= newAge;
     }

    function getAge() returns (unit) {
         return _age;
    }
}

Erstelle einen Plausibilitätscheck

Zum Schluss können wir zu den beiden Set-Funktionen noch eine Plausibilitätsprüfungen hinzufügen. Für das Alter sagen wir naiver weise einfach, dass das eingegebene nicht kleiner 0 sein darf. Beim Namen wollen wir eine Eingabe mit mindestens einem Zeichen und dass dieser ungleich null sein soll.

Nun haben wir unsere zwei Methoden und können ganz einfach testen ob unser einfacher Smart Contract funktioniert. Dafür müssen wir einfach auf „Create“ drücken und wenn wir alles richtig gemacht haben können wir sowohl den Namen als auch das Alter eingeben. Wichtig dabei ist, das du bei String-Eingabe Anführungszeichen setzt.
Du hast nun deinen ersten sehr einfachen Smart Contract in Solidity erstellt.

 

Dir gefiel unser Artikel „Einfach Solidity Lernen: Einen Solidity Smart Contract Erstellen“? Hier lernst du alles über Solidity Vererbung.
Wenn du über die neusten Artikel informiert werden möchtest, folge uns auf Facebook, Pinterest und Steemit.

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.