In diesem Abschnitt werden wir den Prozess des Schreibens eines grundlegenden Smart Contracts mit Solidity diskutieren. Wir werden wesentliche Komponenten wie Variablen, Funktionen und Modifikatoren behandeln. Anschließend werden wir anhand eines Beispiels die Implementierung eines einfachen Token-Vertrags durchgehen.
Variablen, Funktionen und Modifikatoren
Beispiel1: Implementierung eines einfachen Token-Vertrags
Lassen Sie uns einen einfachen Tokenvertrag mit Solidity erstellen. Dieser Vertrag ermöglicht es Benutzern, Token zwischen Konten zu übertragen und den Token-Saldo eines beliebigen Kontos zu überprüfen.
TypeScriptpragma Solidität ^0.8.0;Vertrag SimpleToken { // Deklariere Zustandsvariablen Adresse öffentlich Besitzer; Abbildung(Adresse => uint256) öffentliche Salden; // Initialisiere den Tokenvertrag Konstruktor(uint256 initialSupply) { Besitzer = msg.sender; Salden[Besitzer] = initialSupply; } // Funktion zum Übertragen von Token Funktion übertragen(Adresse an, uint256 Betrag) öffentlich { erfordern(Salden[msg.sender] >= Betrag, "Unzureichendes Guthaben"); Salden[msg.sender] -= Betrag; Salden[an] += Betrag; } // Funktion zum Überprüfen des Token-Guthabens eines Kontos Funktion balanceOf(Adresse Konto) öffentlich view returns (uint256) { return Salden[Konto]; }}
In diesem Vertrag haben wir:
Eigentümer
undGuthaben
um die Adresse des Vertragsbesitzers und die Token-Guthaben aller Adressen jeweils zu speichern.Konstruktor
Funktion, die das anfängliche Token-Angebot festlegt und sie dem Vertragsinhaber zuweist.Übertragung
Funktion, die es Benutzern ermöglicht, Tokens an andere Konten zu übertragen. Es verwendet die erfordern
Aussage, um sicherzustellen, dass der Absender genügend Token zum Transferieren hat.Kontostand
Funktion, die den Token-Guthaben eines bestimmten Kontos zurückgibt.Beispiel2: Implementierung eines einfachen Wahlsystems
TypeScriptpragma Solidität ^0.8.0;Vertragsabstimmungssystem { Abbildung (bytes32 => uint256) öffentliche StimmenEmpfangen; bytes32[] öffentliche Kandidatenliste; Konstruktor(bytes32[] Speicher Kandidatennamen) { Kandidatenliste = Kandidatennamen; } Funktion StimmeFürKandidaten(bytes32 Kandidat) öffentlich { erfordern gültigerKandidat(Kandidat), "Ungültiger Kandidat."; StimmenEmpfangen[Kandidat] += 1; } Funktion gesamtStimmenFür(bytes32 Kandidat) öffentlich anzeigen gibt (uint256) { erfordern gültigerKandidat(Kandidat), "Ungültiger Kandidat."; return StimmenEmpfangen[Kandidat]; } Funktion gültigerKandidat(bytes32 Kandidat) öffentlich anzeigen gibt (bool) { für (uint256 i = 0; i < Kandidatenliste.length; i++) { wenn (Kandidatenliste[i] == Kandidat) { return wahr; } } return falsch; }}
In diesem Beispiel, das Abstimmungssystem
Der Vertrag ermöglicht es den Benutzern, durch Aufrufen des Vertrags für einen von mehreren Kandidaten zu stimmen.StimmeFürKandidaten
Funktion. Der Vertrag verfolgt die Anzahl der erhaltenen Stimmen für jeden Kandidaten mithilfe eines erhaltene Stimmen
Zuordnung, wobei der Schlüssel der Name des Kandidaten und der Wert die Anzahl der Stimmen ist. Kandidatenliste
Die Variable speichert die Liste der gültigen Kandidaten. The GesamtstimmenFür
Die Funktion kann aufgerufen werden, um die Anzahl der Stimmen zu überprüfen, die ein bestimmter Kandidat erhalten hat, und die gültiger Kandidat
Die Funktion überprüft, ob ein Kandidat gültig ist. Dies ist ein einfaches Beispiel dafür, wie Solidität verwendet werden kann, um dezentrale Anwendungen mit komplexer Logik zu erstellen.
Höhepunkte
Variablen, Funktionen und Modifier sind wesentliche Bestandteile in Solidity Smart Contracts.
Solidity hat zwei Arten von Variablen: Zustandsvariablen und lokale Variablen.
Funktionen werden verwendet, um Aufgaben auszuführen und können Eingabeparameter und Rückgabewerte haben.
Modifier werden verwendet, um das Verhalten einer Funktion zu ändern und die Code Lesbarkeit und Verwaltbarkeit zu verbessern.
Der SimpleToken-Vertrag ermöglicht es Benutzern, Tokens zu übertragen und Token-Guthaben zu überprüfen.
Der SimpleToken-Vertrag zeigt die Verwendung von Zustandsvariablen, einer Konstruktionsfunktion und Funktionen wie Übertragung und Kontostand.
Der VotingSystem-Vertrag ermöglicht es Benutzern, für Kandidaten zu stimmen und die Stimmenanzahl zu verfolgen.
Der VotingSystem-Vertrag zeigt die Verwendung von Zuordnungen, Arrays und Funktionen wie voteForCandidate, totalVotesFor und validCandidate.
In diesem Abschnitt werden wir den Prozess des Schreibens eines grundlegenden Smart Contracts mit Solidity diskutieren. Wir werden wesentliche Komponenten wie Variablen, Funktionen und Modifikatoren behandeln. Anschließend werden wir anhand eines Beispiels die Implementierung eines einfachen Token-Vertrags durchgehen.
Variablen, Funktionen und Modifikatoren
Beispiel1: Implementierung eines einfachen Token-Vertrags
Lassen Sie uns einen einfachen Tokenvertrag mit Solidity erstellen. Dieser Vertrag ermöglicht es Benutzern, Token zwischen Konten zu übertragen und den Token-Saldo eines beliebigen Kontos zu überprüfen.
TypeScriptpragma Solidität ^0.8.0;Vertrag SimpleToken { // Deklariere Zustandsvariablen Adresse öffentlich Besitzer; Abbildung(Adresse => uint256) öffentliche Salden; // Initialisiere den Tokenvertrag Konstruktor(uint256 initialSupply) { Besitzer = msg.sender; Salden[Besitzer] = initialSupply; } // Funktion zum Übertragen von Token Funktion übertragen(Adresse an, uint256 Betrag) öffentlich { erfordern(Salden[msg.sender] >= Betrag, "Unzureichendes Guthaben"); Salden[msg.sender] -= Betrag; Salden[an] += Betrag; } // Funktion zum Überprüfen des Token-Guthabens eines Kontos Funktion balanceOf(Adresse Konto) öffentlich view returns (uint256) { return Salden[Konto]; }}
In diesem Vertrag haben wir:
Eigentümer
undGuthaben
um die Adresse des Vertragsbesitzers und die Token-Guthaben aller Adressen jeweils zu speichern.Konstruktor
Funktion, die das anfängliche Token-Angebot festlegt und sie dem Vertragsinhaber zuweist.Übertragung
Funktion, die es Benutzern ermöglicht, Tokens an andere Konten zu übertragen. Es verwendet die erfordern
Aussage, um sicherzustellen, dass der Absender genügend Token zum Transferieren hat.Kontostand
Funktion, die den Token-Guthaben eines bestimmten Kontos zurückgibt.Beispiel2: Implementierung eines einfachen Wahlsystems
TypeScriptpragma Solidität ^0.8.0;Vertragsabstimmungssystem { Abbildung (bytes32 => uint256) öffentliche StimmenEmpfangen; bytes32[] öffentliche Kandidatenliste; Konstruktor(bytes32[] Speicher Kandidatennamen) { Kandidatenliste = Kandidatennamen; } Funktion StimmeFürKandidaten(bytes32 Kandidat) öffentlich { erfordern gültigerKandidat(Kandidat), "Ungültiger Kandidat."; StimmenEmpfangen[Kandidat] += 1; } Funktion gesamtStimmenFür(bytes32 Kandidat) öffentlich anzeigen gibt (uint256) { erfordern gültigerKandidat(Kandidat), "Ungültiger Kandidat."; return StimmenEmpfangen[Kandidat]; } Funktion gültigerKandidat(bytes32 Kandidat) öffentlich anzeigen gibt (bool) { für (uint256 i = 0; i < Kandidatenliste.length; i++) { wenn (Kandidatenliste[i] == Kandidat) { return wahr; } } return falsch; }}
In diesem Beispiel, das Abstimmungssystem
Der Vertrag ermöglicht es den Benutzern, durch Aufrufen des Vertrags für einen von mehreren Kandidaten zu stimmen.StimmeFürKandidaten
Funktion. Der Vertrag verfolgt die Anzahl der erhaltenen Stimmen für jeden Kandidaten mithilfe eines erhaltene Stimmen
Zuordnung, wobei der Schlüssel der Name des Kandidaten und der Wert die Anzahl der Stimmen ist. Kandidatenliste
Die Variable speichert die Liste der gültigen Kandidaten. The GesamtstimmenFür
Die Funktion kann aufgerufen werden, um die Anzahl der Stimmen zu überprüfen, die ein bestimmter Kandidat erhalten hat, und die gültiger Kandidat
Die Funktion überprüft, ob ein Kandidat gültig ist. Dies ist ein einfaches Beispiel dafür, wie Solidität verwendet werden kann, um dezentrale Anwendungen mit komplexer Logik zu erstellen.
Höhepunkte
Variablen, Funktionen und Modifier sind wesentliche Bestandteile in Solidity Smart Contracts.
Solidity hat zwei Arten von Variablen: Zustandsvariablen und lokale Variablen.
Funktionen werden verwendet, um Aufgaben auszuführen und können Eingabeparameter und Rückgabewerte haben.
Modifier werden verwendet, um das Verhalten einer Funktion zu ändern und die Code Lesbarkeit und Verwaltbarkeit zu verbessern.
Der SimpleToken-Vertrag ermöglicht es Benutzern, Tokens zu übertragen und Token-Guthaben zu überprüfen.
Der SimpleToken-Vertrag zeigt die Verwendung von Zustandsvariablen, einer Konstruktionsfunktion und Funktionen wie Übertragung und Kontostand.
Der VotingSystem-Vertrag ermöglicht es Benutzern, für Kandidaten zu stimmen und die Stimmenanzahl zu verfolgen.
Der VotingSystem-Vertrag zeigt die Verwendung von Zuordnungen, Arrays und Funktionen wie voteForCandidate, totalVotesFor und validCandidate.