Transkripte
1. Einführung: Willkommen zum ultimativen
Solidity Smart-Contra-Kurs für absolute Anfänger In diesem Kurs werde ich
Sie Schritt für Schritt anleiten, damit Sie bei
Null anfangen und Ihre Karriere
als Solidity-Entwickler beginnen Also, das ist Tauchen. Wir werden mit
den Grundlagen
von Solidität beginnen , wie
Variablen, Funktionen
und Arrays, und dann werden
wir
ein kleines Projekt
wie einen Taschenrechner erstellen ein kleines Projekt
wie einen Taschenrechner damit Sie üben können, was Als Nächstes befassen wir uns Themen für
Fortgeschrittene wie
Mapping, Strap, Loops und Modifikatoren und verwenden all diese
dann in einem Textkomplex
, der sich durch ein Projekt auszeichnet Die Klasse Smart stellt
all diese in SupoyaTSNT zusammen und setzt sie ein. Dann gehen wir zu den fortgeschrittenen Themen wie Requise-Statement und Events über
. Sie werden also lernen wie dezentrale Anwendungen
wie Opens mit
der Blockchain kommunizieren und die Updates und
Wörter in Echtzeit
mithilfe von Solidity-Ereignissen
abrufen Wörter in Echtzeit
mithilfe von Solidity-Ereignissen Wir werden uns auch mit
der Vererbung befassen und untersuchen ,
wie man Verträge abschließen kann, indem man ein
sogenanntes Interface Am Ende des Kurses gebe
ich dir
eine Übungsaufgabe, damit du alles anwenden
kannst, was du in diesem Kurs gelernt
hast. Okay, es ist eingetaucht in die
Welt der Blockaden von Entwicklung, CEO und den ersten Lektionen Sala
2. Solidität verstehen: Was sie ist und was du aufbauen kannst: T. Solidity ist eine
Programmiersprache , die heftige Kontroversen hervorruft
und ihnen beibringt, wie sie sich verhalten sollen Das ist es. Und der Lebenszyklus
eines SMAT-Vertrags: Zuerst erstellen
wir einen Code mit Solidity,
einem normalen Code, kompilieren ihn bis zum P-Code
01 und führen ihn dann auf der virtuellen EVM
Etherium-Maschine Okay? Es ist im Grunde
ein Server, der Ihren Code erstellt und Ihren Code ausführt. Also, was können Sie mit Solidity
bauen? Eigentlich erstaunliche Dinge. Zuerst Tupfer. Also, was ist Deps. Um Dabs besser zu verstehen, gebe
ich Ihnen einen Überblick darüber was eine traditionelle
Anwendung ist Herkömmliche Anwendungen
verlassen sich in Bezug auf ihre
Funktionalität und Datenspeicherung auf
eine einzige, eine einzige Entität oder Organisation Und das bedeutet,
sogenannte Zentralisierungs-Arrays zu erstellen . Wenn der
Server ausfällt, die Daten verloren und
die Anwendung schlägt fehl Oder wenn ein Angreifer den Server
hackt, sodass er Zugriff auf das Netzwerk erhält und
die Daten blockiert Deshalb übertragen wir es auf die Tabs, die dezentralen
Anwendungen. Dezentrale
Anwendungen speichern die Daten also in mehreren Knoten in der
Blockchain auf der ganzen Welt, was bedeutet, dass Ihre Daten sicher sind, und wenn einige Notizen ausfallen, die Daten sicher, da mehrere Nuts dieselben Daten haben. Und ein Angreifer kann nur dann vollen Zugriff auf
das Netzwerk
erhalten , wenn er erfolgreich alle Nüsse im Netzwerk
umarmt, und das ist fast unmöglich Eine andere Sache sind
dezentrale soziale Medien. Im Grunde ist es ein soziales Medium wie Facebook, aber dezentralisiert Eine andere Sache sind DoS, dezentrale Autonomieorganisationen. In Taos handelt es sich im Grunde genommen Anwendungen, die
durch
einen SMAT-Vertrag verwaltet werden, nicht durch eine zentrale Autorität,
was bedeutet, dass die Leute, die Mitglieder, den Vorschlag erstellen Sag zum Beispiel: Hey, bitte füge diese
Funktion Und über diesen Vorschlag stimmen
die Inhaber ab, und wenn
der Vorschlag angenommen wird, erstellen die Inhaber einen SMAT-Vertrag und fügen
ihn den Anwendungen hinzu Gegensatz zu den
herkömmlichen Anwendungen , bei denen der CEO oder die Organisation alles
entscheidet und die
gesamte Entscheidung
der Anträge kontrolliert die
gesamte Entscheidung
der Anträge Noch ein Masern-Ding. Das ist der größte
NFT-Token, nicht fungible. NFTs sind ein digitaler Vermögenswert. Schaffen Sie das Eigentum an
bestimmten Artikeln. Das ist es. Und der größte Fall von NTs ist digitale Kunst, auch in Spielen. In Spielen gibt das NFT
oder die Blockchain den Spielern also die
Möglichkeit ihre Gegenstände
zu handeln oder zu verkaufen Natürlich können Sie Ihre Krypto
erstellen,
z. B. die oder die Wettmünze, die
Dash-Münze oder die Net-Münze Und das Gute dabei ist, wenn du zum Beispiel
eine Plattform oder Decks hast , sodass du deine eigene
Krypto für deine eigene Plattform erstellen kannst Das ist unglaublich. Tatsächlich werden
wir
in den kommenden Lektionen
unseren eigenen Stable Coin kreieren Okay, das Gehalt. Blocking Developer kriegt
etwa 110.250.000 pro Jahr. Und der Solidity-Entwickler
bekommt einen, bekommt 120.000 bis 200.000. Lassen Sie uns
also
den Unterschied zwischen Web Two und Web Three untersuchen Okay. Web drei. Bevor wir drei also die
App benutzen, die Anwendungen wie Face speichern
die Anwendungen wie Face
und die Anwendung die Daten einem Server und
irgendwo in der Cloud, also in der Datenbank. Aber ein einzelner Server, was bedeutet, dass ein anderer Server
nicht dieselben Daten hat. Bei Web Free verwenden
Benutzer jedoch eine Crypt-Wallet, der
der Brieftasche
ihr privater Schlüssel gespeichert Und die Brieftasche verwendet DAPs,
dezentrale Anwendungen. Dann die Anwendung, die
die Daten auf mehreren Servern
in der Blockchain
auf der ganzen Welt speichert die Daten auf mehreren Servern , was bedeutet, dass Ihre Daten mehreren
Servern auf der ganzen Welt
gespeichert sind
und Sie selbst
diese Daten kontrollieren Lassen Sie uns also unseren
ersten SMAT-Kontakt erstellen.
3. Praxisorientiert: Aufbau Ihres ersten Solidity Smart Contracts: Also gehen wir zu Remix, der Online-ID für die
Erstellung von Okay, RmxRMx Hier ist es. Okay, hier ist die
Remix-Online-ID. Er gab uns eine wunderschöne Oberfläche die wir mit
dem SMAT-Vertrag interagieren Das ist die Funktionalität,
und sie wird
sogar im Block Sheet bereitgestellt . Okay, hier gibt es einen Ordner Ich wurde erschaffen. Es ist also ein Solidity-Tutorial. Ok, wir werden eine weitere Datei
erstellen, nennen wir sie zum Beispiel Datei Dieses Symbol für das Verzeichnis. Diese vier Dateien, okay? Lass uns Hallo sagen. Okay, Punkt SOT. Punkt SOT gibt der ID Bescheid,
das ist eine Solidity-Datei Okay. Wir beginnen mit einem Befehl namens PDX, Speed x, License Obermaterial vereinheitlichen. Okay? T. Im Grunde ist
das zu spezifisch für
die Lizenz, okay? Sagen wir IT, was Open Source
bedeutet, sodass jeder
es klonen und verwenden kann. Du kannst einen anderen Typ
wie Lizenz oder so verwenden, dann ist das Schlüsselwort Vertrag
auf Dact Hello Hallo Vertrag, okay? Okay. Stärke. Stärke.
Sagen wir, Kopf gleich? Okay, hohe Festigkeit. Kinder mit Haaren, nicht wahr? Ja, er sagt, Sears Fine
spezifiziert nicht, dass die
Compiler-Version erforderlich Erwägen Sie, Pragma Solidität hinzuzufügen. Ja. Das hat mir gesagt, dass Sie den Compiler für die
benötigte Version spezifizieren In der Solidity-Datei müssen
Sie der ID also mitteilen, welche Version von Solidity kompilieren
möchte.
Okay? Um das zu tun, schreiben wir
Pagan Solnit zu sagen. Also ist es okay, Also danach
spezifizieren wir, also die ID. Hallo, unser Vertrag, bitte
halten Sie sich
an die Nullpunkt-Version von Solidity Und das und das, es ist diese Version,
0820 steht oben Dieser hier oben. Also zum Beispiel Null Punkt acht Punkt 29, ja, wir
können es damit vergleichen. Und dieses Icon muss den Solidity
Compiler kompilieren. Okay, ich vermarkte Auto, also lass uns diese Funktion deaktivieren Wir können es kompilieren, erfolgreich
kompilieren. Okay, sieh dir das an. Das ist die Version, die wir angeben, um
unseren Kontakt zu kompilieren, okay? Und außerdem hier, das und höher. Und dieses Symbol muss Transaktionen bereitstellen
und ausführen. Also für die Umsetzung unseres Vertrags. Okay, hier ist die
virtuelle Maschine RMx. Okay, zum Testen, eine Blockchain zum Testen, um Ihre Daten
bereitzustellen,
nur zum Testen Hier ist ein Konto mit einem
gefälschten Äther zum Probieren. Und ja, hier
wählen wir aus, welchen Vertrag
wir einsetzen möchten. Es ist ein Hallo, weil wir
natürlich nur eins sind. Und klicken Sie unten, stellen Sie
die Transaktion bereit und gehen Sie durch. Und hier unten haben
wir unseren Vertrag. Nehmen wir an, wir müssen das öffentlich
vermarkten. Obanoc und der Punkt. Nein, du musst es vergleichen und diesen und diesen
löschen Okay, hier ist unsere Variable. Hallo. Innen hohe Festigkeit Also herzlichen Glückwunsch. Sie erstellen Ihren
ersten SMAT-Vertrag. Okay. Mach dir keine Sorgen. Falls du nicht verstehst, was
diese Zeichenfolge ist, öffentlich? Hallo. Was ist hier
los? Mach dir keine Sorgen. Wir gehen Schritt für Schritt vor, bis
Sie Ihre Besten erstellt haben, nicht nur einen einfachen
Vertrag wie diesen Okay, kommen wir zurück
zur Präsentation.
4. Grundlagen( Variablen und Funktionen und Arrays ): Also Variablen. Eine Variable ist im Grunde ein Leerzeichen
, in das Sie Ihren Wert eingeben können. Zum Beispiel
ist das Leerzeichen, okay, im Speicher, und das Café
ist der Wert. Das ist es. Platz zum Speichern Ihres Wertes. Okay, es gibt verschiedene Typen. Okay, es gibt eine Adresse,
Stärke, Mobbing
und du unterrichtest Das ist der größte, okay? Okay, Adresse, wir beginnen
mit dem Schlüsselwort Adresse, dem Namen der Adresse, und die Adresse steht für
eine EIM-Adresse. Es gibt zwei Arten von
Adressen: externe Hot-Adresse, das heißt die Adresse der
Brieftasche, der Ehre, der Person. Und die Smart-Contract-Adresse. Und warum wir
die Adresse brauchen. Okay? Die Adresse ist in
der Eastern Blockchain sehr wichtig ,
um das Geld zu
bekommen, die Daten
zu bekommen und sich für die Anwendungen anzumelden. Mit den Adressen können Sie viele Dinge tun. Und die Zeichenfolge. Wir beginnen mit dem
Schlüsselwort string, Namen der Zeichenfolge und der Eingabe. Im Grunde ist es also
nur eine Zeichenfolge. Ja, nur eine Schnur. Und die Bola ist im Grunde wahr oder falsch Du fängst mit dem Ball
und dem Namen Bola an
und dann wahr oder falsch Okay, Integer, der größte. U Integer-Variablen. Also Integer, es gibt zwei
Typen Integer und U Integer. Integer akzeptiert negative
Zahlen und positive Zahlen. Und die Ganzzahl akzeptiert
nur positive Werte. Das ist es. So deklariert man im Grunde Gleichheit
zwischen Schlüsselwort Win und Max
Supply. Der Name der
Variablen und der Wert. Und hier sind acht, und
hier ist noch einer. Du gewinnst 256. Das ist
die Anzahl der Di-Byte. Also die Größe und der Speicher Okay, wenn die Zahl klein ist, so nimmt diese Zahl eine
kleine Größe im Speicher an. Wenn sie groß ist und wir nicht wissen, wie
sich das auf den Speicher auswirkt, wählen
wir eine große Größe für. Zum Beispiel acht,
im Grunde sind es acht Byte. Und 256 Byte. Und was
glaubst du, ist ein Tag? Wir wissen es nicht. Vielleicht 1.000, vielleicht 2000 Sekunden, natürlich. Deshalb wählen wir
die größte Zahl, nämlich 256
, um diese Zahl zu
speichern. Denn wenn wir
zum Beispiel acht wählen,
ist es ein Byte, vielleicht einen
Tag mehr als das, als der Bereich von
dir acht geworden ist. Also gibt es ein
Problem. Okay, hier, mit der Zeit, ist der Tag 86400 An zweiter Stelle. Deshalb
haben wir mit diesem angefangen. Du bist 256 gegangen. Hier ist eine Tabelle mit
denen, weil ich es bin, nicht nur acht oder 256. Okay, du hast 88 Byte verwendet. Der Bereich liegt zwischen 0 und 255, was mehr bedeutet, du musst
ein anderes verwenden, mehr Byte Und du hast zum Beispiel
16, sechs Byte, 026 Du bist 1802802 gegangen,
bla, bla, bla. Du warst 250 602, der größte. Milliarde oder Billion
oder was ist das? Okay, das ist es.
Und manchmal stellt man fest, dass man einfach nass
ohne spezifische DVTE findet In diesem Fall
ist also standardmäßig die größte
, also Sie haben 256 gewählt Und das war's mit den Siegen. Ich hoffe, das macht
Sinn. Tut es nicht. Wir werden weitere Beispiele
im Taschenrechner-Projekt
sowie im
Klassenzimmer-Projekt sehen . Okay, bitte immer, immer, wenn du nicht weißt, wie
die Nummer sein wird. Zum Beispiel ein Tag, ein Jahr, eine Woche. Sie wissen zum Beispiel nicht, wie weit Sie
in einer Woche an zweiter Stelle stehen. Wähle also immer, immer
die größte Größe dafür. Denn wenn du das nicht tust, wählst
du zum Beispiel
eine kleine, als ob du acht genommen
hättest. Du bist 16 geworden. Wir nehmen das auf, wir nehmen das Maximum davon, zum Beispiel, du gewinnst 8255, und dann ist der
Rest weg Das ist ein Problem,
ein großes Problem. Und viele Entwickler
machen diesen Fehler. Was ist also eine Funktion? Im Grunde
sind Funktionen eine wiederholbare Aufgabe, was bedeutet, dass
wir zum Beispiel eine Zahl erhöhen wollen Also erstellen wir eine Logik, Sanktionen. Und jedes Mal, wenn wir sie erhöhen
wollen, nennen wir
das einfach Sanktionen Okay? Das ist eine
wiederholbare Aufgabe. Das ist es Gehen wir also zur Struktur
der Funktionen über.
Okay, im Grunde. Wenn Sie also einen
Hintergrund in Java haben, erstellen Sie Python, eine beliebige
Programmiersprache. Okay, es ist dasselbe. Aber wenn
du keine hast, ist es nichts. Okay, es ist in Ordnung. Wir erklären alles. Okay? Zuerst beginnen wir mit
den Funktionsschlüsselwörtern. Dann der Name der Funktionen, dann spezifizieren wir den Typ, die Sichtbarkeit und den
Typ der Funktionen. Und zuletzt spezifizieren wir
den Typ des Routers. Das ist also die
Sichtbarkeit, im Grunde entscheiden
wir, ob diese Fraktionen öffentlich sind, das heißt für alle sichtbar . Jeder
kann es nennen Vertrag selbst,
externer Vertrag, noch ein Wallet, jeder kann
das Funktionen oder privat nennen , wir wollen, dass diese Funktionen innerhalb des Vertrags
oder intern
aufgerufen werden,
es gibt ein gegenseitiges. Also erstens
kann sie, wie gesagt, öffentlich sein,
intern und extern genutzt werden. Also zum Beispiel
bei Funktionen. Wir können es intern
die Funktionen,
den Vertrag und extern nennen . Also jeder Vertrag kann diese Funktionen
aufrufen, jeder jede Wallet kann diese Funktionen
aufrufen. Oder privat
kann grundsätzlich innerhalb des Kontakts verwendet werden. Wenn es also eine Variable gibt, privat oder Funktionen,
was bedeutet, dass diese Variable oder Funktionen nur innerhalb
der Funktionen sichtbar sind. Es tut mir leid, innerhalb des Kontakts. Der Kontakt selbst kann also diese Variable
oder diese Funktionen
aufrufen. Intern. Okay, intern kann es grundsätzlich innerhalb
des Vertrags verwendet
werden, okay, wie private und andere
Erbverträge,
was bedeutet, innerhalb des Vertrags,
das ist klar, aber bei
anderen Erbschaften, nicht bei anderen Verträgen, wie öffentlich. Nein.
Erbvertrag. Es gibt zum Beispiel diesen
Basisrechner Okay, das Hinzufügen von
Funktionen ist intern, und Advance Calculatorre Im Grunde okay. Erkläre, was Camulons
innewohnt. Sehen Sie sich hier den
fortgeschrittenen Taschenrechner an und
erben Sie die gesamte Logik des
Basisrechners Und ja,
hier gibt es Funktionen und Subtraktion. Warum? Weil es intern ist. Und extern kann
nur über einen
externen
Vertrag oder ein externes Konto aufgerufen werden . Im Grunde ist es das
Gegenteil von privat. Die Werbefunktion ist zum Beispiel extern, was
bedeutet, dass wir sie nicht
innerhalb des Vertrags aufrufen können. Nur externe
Geldbörse oder anderes Verhalten. Und das war's.
View-Funktionen sind also Funktionen zum Einlesen des Zustands
in die Blockchain, nicht zum Aktualisieren des Zustands. Nur um sie zu lesen. Zum
Beispiel sind die Git-Funktionen nur für den
Wert des Ergebnisses bestimmt. Und das Ergebnis wird
in der Blockchain gespeichert. Und wenn wir diese Funktionen aufrufen, zeigen
wir einfach den Wert
des Ergebnisses an. Das ist es. Und pro Funktionen
und pro Funktionen. Functions dient nicht zum
Lesen und nicht zum Aktualisieren von Stcs, nicht zum Auslesen des
Werts. Es dient nur einer Logik,
unabhängig von der
Blockchain, wie zum Beispiel AT-Funktionen . Holen Sie sich im Grunde zwei Variablen
A und B und den Router. Sie sind zusätzlich.
Ein Plus B. Das war's. A speichert also
erst, wenn es bläst. Nein, es ist lokal, nicht
global. Das ist es. Und diese Funktionen sind kostenlos. Das Blochen, aber das
Aktualisieren des Status, zum Beispiel, fügt dem Ergebnis eine
Variable hinzu Und das aktualisiert den
Status des Blochings. In diesem Fall müssen Sie eine Gebühr
zahlen. Das ist es. Okay, Array. Sagen wir also, was ein Array ist. Array ist im Grunde eine
Liste von sechs. Das ist es. Wie zum Beispiel
eine Liste von Boxen. Jede Box hat Daten und
einen Index, die Zahl. Okay, zum Beispiel Feld eins, zwei, drei, vier und so weiter. Und es gibt eine
Reihe, zum Beispiel
NAS, Victoria, Dan
und Harry Potter. Je wichtiger das Haar ist hier
der Index, okay? Der Index. Dieser Index ist nützlich
, wenn Sie
auf einige Daten in einem Array zugreifen möchten . Und der Adix
beginnt immer mit Null, wie jede Programmiersprache Beginne mit Null, nicht mit Eins, Null. Null ist also NAS. Eins ist Victoria und
so , wie man ein
Array in SMAT-Kontakt erstellt Es gibt mehrere Möglichkeiten, ein Array
in einem SMAT-Kontakt deklariert zu
bekommen Zuerst beginnen wir mit dem Typ. Dann heißt es
String-Adresse, Bytes und so weiter. In diesem Fall ist es also eine
feuchte eckige Klammer und es geht um öffentliche Sichtbarkeit
und natürlich um das Knie. Es gibt noch einen anderen Weg, wenn Sie dieses Array
mit einigen Daten, z. B. Kalibrationen, initialisieren
möchten mit einigen Daten, z. B. Kalibrationen Eins, zwei, drei, eine Liste von Dingen. In diesem Fall eine Liste von Zahlen. Und natürlich
können Sie die Größe bestimmen. Das heißt, sagen wir, hey, ich möchte das in diesem Array
speichern, max.
1010 Elemente. Das ist es. Im Speicher erstellen
Sie also ein Array mit zehn Elementen,
besetzt mit Null Sagen wir, alle Elemente sind auf
Null initialisiert und die Zeichenfolge fünf Dieses Array akzeptiert also fünf Namen. Und nahm ein Element, ein Array, sagst
du, es gibt ein
Array, die Werte. Und hier hat jeder
Wert einen Index. Setzen Sie also im Grunde den
Index des Werts in ein Array und Sie erhalten den
Wert in diesem Index. Aber ja, function, get UN, I Public VU gibt Ns zurück, array, I R. Und
wenn es dir leid tut. Im Grunde genommen
müssen Sie im Gegenzug spezifische Kalibrationen vornehmen,
was bedeutet, dass ich ein
vollständiges Array bekommen und
das N zurückgeben möchte . Das ist Andernfalls, wenn Sie dem Array einige Elemente
hinzufügen möchten. Bei Array-Beispielen
handelt es sich beispielsweise um ein dynamisches Array. Es kann in der Größe angepasst werden, was bedeutet, dass es jedes
Mal,
wenn Sie ein Element hinzufügen, größer wird, wenn Sie die Größe
nicht angeben es jedes
Mal,
wenn Sie ein Element hinzufügen, größer wird, wenn Sie Zum Beispiel ist es zuerst leer, also
versehentlich ein, ein Element Fügen Sie zwei Elemente hinzu, sodass
die Größe zwei, drei usw. beträgt Das Gegenteil ist der Fall
, wenn Sie die Größe korrigieren. In diesem Fall handelt es sich beispielsweise ein Array mit fester Größe. Sie gewinnen fünf,
öffentlich, mit fester Größe. Es kann nicht in der Größe verändert werden, was bedeutet, wenn dieses Array
fehlerhaft ist, wenn
es zum Beispiel fünf Elemente enthält, können
Sie kein weiteres hinzufügen Das Gegenteil ist der Fall, wenn Sie ein dynamisches
Array deklarieren. Und versuche es mit einem Element. Im Grunde der Name
und der Punkt-Push-Wert. Fügt ein neues Element am Ende
des Arrays hinzu. Es ist also zum Beispiel wie ein Zug. Da ist eine Leiche. Schieb noch
eins. Okay, füge noch einen hinzu. D Tack, Tack, Tack und so weiter. Sie können es also nicht
in der Mitte oder unten hinzufügen. Und wenn Sie für die Funktion die Länge des dynamischen Arrays ermitteln möchten , die Größe,
möchten Sie die Größe ermitteln. Im Grunde genommen ist der Name
Punktlänge im Bein. Das ist natürlich nützlich für
dynamische Arrays, weil das feste Array, das
fest ist, also immer fünf bekommt.
5. Einfaches Projekt (Rechner) + Bereitstellung(Sepoliatestnet): Okay, lassen Sie uns zum Remix oder zur Erstellung
des intelligenten Kontakts für
den Taschenrechner zurückkehren und alle Grundlagen
von Soliditätsvariablen und Funktionen
üben alle Grundlagen
von Soliditätsvariablen und Funktionen
üben.
Ja, das ist es Also lass uns einen Ordner erstellen, ihm einen
Namen geben. Grundlagen. Darin erstellen wir eine
Datei namens Calculator, Cal. Das war's Und wir gehen für diesen Kurs zum
Tab-Repo. Okay, und benutze deinen Namen
Hussein Seite 2001, den ultimativen
Solidity-Smart-Vertrag für Repositorien. Natürlich. Und hier. Okay. Er ist Übungen,
Lösung, Rhythmus. Okay, ich
kann nur empfehlen, das zu erstellen, um
diese Rechnung zu überdenken
, bevor wir es getan haben Okay? Wo ist. Ist er. Hier ist Übung und
Lösung. Übung. Okay, lass uns das kopieren, okay. Das ist es. Okay, mach einen
Contra-Colt-Taschenrechner, das ist es Erstellen Sie eine
Ergebnisvariable, um das Ergebnis zu speichern. Das ist es auch. Es ist öffentlich und kann mit einer
Funktion hinzugefügt werden, okay? Funktionen erstellen und hinzufügen. Lassen Sie uns diese Funktion erstellen. Füge hinzu, du hast Scharnier 566 genommen,
dann, wenn es extern ist Okay, machen wir es privat. Privat und Ergebnis
sind gleich Ergebnis plus neun. Perfekt. Hier sind die
ersten Funktionen. Sie können diese Zeile erstellen und so
ändern, ohne die Ergebnisvariable zu wiederholen. Mach das einfach plus gleich. Das ist es. Wie Python und C
plus Plus auch. Okay. Und hier ist der Compiler Okay, es ist Auto-Compiler. Lassen Sie uns
auch kompilieren und bereitstellen. Okay, hier ist die
virtuelle Maschine, das Konto, unser
Vertrag, die Bereitstellung Okay, im Parameter
hier ist unser SMAT-Vertrag Aber zeige einfach das
Ergebnis an und nicht das Hinzufügen. Warum? Weil das Ergebnis
öffentlich und die Anzeige privat ist, was bedeutet, dass wir Funktionen hinzufügen können ist
es nur
innerhalb des Vertrags nutzbar, was bedeutet, dass wir es extern
aufrufen können. Übrigens hat
die öffentliche Variable standardmäßig
Git und hat
die öffentliche Variable standardmäßig die
Git-Funktion. Okay, und es sollte Null sein. Standardmäßig ist Null. Okay, lassen Sie uns das
auf öffentlich oder extern ändern. Wenn es auch
intern ist, können
wir es natürlich nicht extern aufrufen. Lassen Sie uns also extern vermarkten
und kopieren und erneut einsetzen. Zuerst löschen wir diese Datei,
entfernen sie aus der Liste und stellen sie bereit. Transaktionen werden durchgeführt. Okay, hier ist es. Okay, überprüfe zuerst
das Ergebnis. Mama, hm. Standardmäßig ist es Null.
Lass uns um fünf Uhr sein. Transaktionen werden durchgeführt. Erwartet fünf. Ja, es sind fünf. Glückwunsch. Okay,
lassen Sie uns die Funktionen hinzufügen. Subtrahiere und multipliziere. Funktion, Schlüsselwörter. S. Subtrahieren ergab 206 externe Punktzahlen, Ergebnisse minus gleich Noch eins, es ist multipliziert. Toxische Keywords, Milt,
du hast 206 Namen gewählt,
es ist ewig und die Ergebnisse
sind Die letzte Funktion ist,
eine Funktion zu erstellen, um ein Ergebnis zu erhalten. Da das Ergebnis jedoch öffentlich ist, benötigen
wir es nicht,
da
diese Variable standardmäßig eine Get-Funktion hat. Aber manchmal
wollen wir eine Variable, wir wollen, dass sie privat ist, wie Passwort, Benutzername, Besitzer Deshalb ändern wir diese Einstellung
auf privat. Und in diesem Fall benötigen
wir dieses eine Git
ohne Parameter, extern. Extern. Ja. Okay? Wir
spezifizieren die Rückgabearten. B, wir müssen diese Nummer
zurückgeben. Okay, kehre zurück. Kehrt
nicht einfach zurück. Gibt win en zurück, weil
es die Ergebnisse sind. Und den Preis zurückgeben. Ret Ergebnisse hinzufügen. Das ist es. Es gibt eine
Warnung. Was ist es? Ist dieser Funktionsstatus, kann
Vutability auf die Anzeige
beschränkt werden Das ist es. Weil diese
Funktionen im Grunde nur dazu dienen, einige Daten
im Blockblatt zu lesen ,
nicht die Daten zu aktualisieren,
also müssen wir den Markt also müssen wir Und das kostet kein Benzin. Es ist kostenlos. Lesen und
Blockieren? Es ist kostenlos. Setze diesen am wenigsten ein. Die Transaktion ist abgeschlossen. Okay. Hier ist. Unsere Funktion. Zuerst ist es um fünf. Das ist es. Seine Aktionen
gehen durch. Fünf. Multiplizieren wir mit zwei. Wir haben zehn erwartet. Git. Das ist es zehn minus drei. Wir haben sieben erwartet. Herzlichen Glückwunsch.
Sieben. Lassen Sie uns das nun in SepulatNT
einsetzen Erstens, Voraussetzung. Du musst
die Metask installieren und
die
Erweiterung in der Crew aushängen die
Erweiterung in der Crew Außerdem musst du
dein Konto einrichten und dir
etwas dickes Geld verdienen
SuplaFacet . Um das zu tun. Okay, ich werde nicht darauf eingehen, wie Sie Ihr Konto
erstellen
und wie Sie bestehen sollen. Okay, es gibt eine Menge
Wiederholungen. Einfach gesagt. Okay? Und Sepolia Sepolia Faucet Um etwas Falschgeld zu gebissen. Okay, also okay, hier ist quasi die Kopie deiner
Adresse und du bekommst null.05 Sepolieter Und wenn du
es hast, lass uns abschmecken. Okay, Batful, das
ist in der Ätherminute. Sie müssen
dieses Show-Testnetzwerk einschalten
und SePolia wählen Okay, hier ist es. Okay, kommen wir zurück zum Remix. Lass uns das in Real Lock einsetzen. Schau es dir an, Mamask. Okay, hier ist Pola, hier ist das Netzwerk und
da sind meine anderen Schau Null X, drei, vier, vier. Schau. Das Gleiche hier. Es ist verbunden. Vielleicht bitte ich dich, eine Verbindung herzustellen, bestätige
einfach die Verbindungen
und du bekommst das. Okay, lassen Sie uns
diesen bereitstellen. Stellen Sie es bereit. Wir müssen eine Gebühr
für die Bereitstellung von Gas zahlen, 0,00 17, acht und so weiter. Lassen Sie uns das bestätigen. Rechner für ausstehende Transaktionen
öffnen. Okay, es dauert einige Zeit
, bis die Transaktion bestätigt ist. Okay 22. Wie Sie wissen,
ist das Blockieren nicht schnell. Okay, keine Transaktion
wurde bestätigt. Sehen wir uns das im Poli Scan an. Hier ist diese PolaCant
und hör auf damit. Okay, hier ist unser Vertrag. Okay, das ist nur Upcode. Aber du bytest den Code,
weil er noch nicht verifiziert ist. Lassen Sie uns überprüfen, ob diese
Funktionen funktionieren. Intelligenter Zähler. Okay, natürlich ist es nur
Single Fi, die Version. Okay, unsere Version könnte diese
1826 plus sein , was mehr
bedeutet als das Unser Lizenzöffner verwendet
Ciscopys dort Verifiziert und bemerkenswert. Zu diesem Zeitpunkt. Okay, verifizieren und veröffentlichen. Das ist es. Das ist in Ordnung.
Lass uns einen Blick darauf werfen. Okay, das Häkchen. Okay, ist es. Es sind
dieselben Strive-Funktionen. Es ist ABI. Okay, die rote Fraktion Okay, das sind Gate-Rechts-Funktionen, das heißt die Aktualisierungen des Zustands in
den Funktionen Blockieren, At-Multiplizieren und
Sutra, Subtrahieren, Subtrahieren Okay, lassen Sie uns zu diesem zurückkehren. Okay. Fügen wir eine Zahl vier hinzu. Okay, unser Ergebnis, was ist es? Eine Null. Okay, ich muss Transaktionen bestätigen denn alles, was Sie mit der Blockchain tun wollen
, müssen
Sie dafür eine
Gebühr zahlen. Das ist nicht schnell. Die Transaktion ist bestätigt. Okay. Und wir bekommen vier. Wenn wir auf Gt klicken, müssen wir
keine Gebühr zahlen. Prüfe es. Ja, weil ich auf
die Weiterentwicklungen doppelklicke. Und das war's für
dieses Mal. Grasia
6. Mittelstufe (Mappings und Struktur): Ein anderes Thema sind Mappings. Also Mappings sind unglaublich solide Dinge
und es ist cool Ich persönlich liebe es. Also unsere Arbeit im Grunde genommen, okay, auf den Wert hingewiesen. Das ist es. Sobald Sie den Wert erhalten haben, sollte das K sein. Rufen Sie das K auf, erhalten Sie den Wert wie Schüler IA. Jeder Student
gibt seinen Studentenausweis an, Null, hol dir NAs. Ruf das Mapping an und bring Bonny zu Larissa Und die coolen Dinge
hier, Zerfall, ist nicht zum
Beispiel etwas, hier 013. Die folgende Zahl
muss zum Beispiel nicht drei sein. Nein, vielleicht vier für meinen Namen. Zum Beispiel, vielleicht ist
es zum Beispiel eine Zehn nach
Victoria. Das unterscheidet sich zwischen
den Mappings und Arrays. Zum Beispiel in diesen Adressen. Also das ist anders als
das hier. Okay? Die Adresse
zeigte auf den Namen. Sie haben die Adresse,
Sie haben den Namen. Um also ein Mapping
im SMAT-Vertrag zu erstellen, verwenden
wir die
Mapping-Schlüsselwörter und den spezifischen Typ des Schlüssels und dann den Typ des
Werts und die Sichtbarkeit Also hier ist standardmäßig privat. Man kann aber
zum Beispiel öffentliche
oder externe S. vermarkten . Also Studenten den Namen. Wenn Sie also ein Element
hinzufügen möchten, im Grunde den Schlüssel
schülerspezifisch angeben und den Wert hinterlegen wollen, dann ist das alles. Sie wollen einen Wert erhalten, im Grunde die
Adresse des Studenten, genauer gesagt das K. Sie haben also den Wert. Okay, eine andere Sache ist Struktur. Strack, im Grunde ist
es nützlich, wenn du etwas beschreiben willst Zum Beispiel Auto eine Summe. Modelliert also so, dass jede Karte eine Farbe für das Modelljahr
hat. In diesem Fall ist das Modell Y, Jahr
ist 2023, die Farbe, tut mir leid. Du hast Di. Okay, Struct. Strat
ist sehr nützlich, wenn Sie etwas beschreiben
möchten.
Zum Beispiel ein Auto Er, jedes Auto hat ein
Modell, einen Erben und eine Farbe. Dieser Fall ist zum Beispiel Y, 2050 heute und blau. Und das
ist übrigens sehr nützlich. Wenn Sie also zum Beispiel einen Schüler hinzufügen
möchten, okay, das sehen wir
im Klassenraum Pro. Ein Schüler hat also eine ID und einen
Namen, ein Ergebnis und andere
Dinge sind vorhanden oder nicht, okay, alles, was Sie
bearbeiten und hinzufügen können, wie man Daten hinzufügt. In diesem Trakt und anderen nützlichen
Dingen in diesem Trakt gibt
es eine Gruppe von Variablen
mit unterschiedlichen Typen. Beispiel: Zeichenfolge, Sie haben sich für einen booleschen Wert
entschieden und so. Okay, hier ist eine Tis-Lastruktur. Wir beginnen mit diesem
Tract-Tisla-String-Modell, Sie haben 256,
Saitenfarbe und so weiter gewählt Und hier ist eine Reihe von Strukturen. Um also atract Tis la hinzuzufügen, also den Namen der
Struktur, Speicher, speichern
wir das im Speicher, nicht im Speicher,
weil das viel Speicherplatz ist, also viel Gas gekostet Und das neue Tis la, das ist lokal, also
innerhalb der Funktionen, gleich Tisla und Modellen Also Zerfall, der Wert sind Modelle. Wir erhalten es in den
Parametern Jahr, Jahr, Farbe, Farbe und so weiter. Dann übertragen wir das neue Tisla in
das Tis Ls-Array.
7. Zwischenprojekt (Kurs): Gehe zum
Github-Repository dieses Kurses. GitHub.com, wir haben pH und 202 001
gesehen. Und dann im Repository
und im ultimativen soliden
Smart-Contract-Kurs Und dann kopieren wir das. Geh und erstelle eine Datei, einen Ordner. Sagen wir, Kumpel, Solidität. Kurs Solidität. Nein, nein. Lass uns die Basis öffnen, also kopiere das und hol dir Loon. Also haben wir Schließ das, geh zum Remix. Remix. Okay, erstelle einen neuen Workspace. Neuen Workspace hinzufügen. Sagen wir, eine Solidität. Natürlich. Natürlich. Erstellen Sie einen Ordnernamen contact. Und laden Sie dann einen Ordner hoch. Laden Sie einen Ordner hoch, keine Datei. Wo ist Solidität? The Solid natürlich, okay? Dieser. Aber Handlung, okay? Ist. So wie die Übungen wie die Lösungen. Okay, zuerst, trainiere. Also laut Taschenrechner haben wir das gemacht. Und erstellen Sie einem Studenten
diesen Vertrag. Definieren Sie das Studententrakt mit der ID, geben Sie dem Ergebnis einen Namen, erstellen Sie ein
Mapping, erstellen Sie ein Array. Lassen Sie uns also eine Struktur erstellen. Handeln. Nennen Sie es. Was? Student? Ja, Student. Student Student und älter als 26, ID, das, dann die Namenszeichenfolge. Name. Das Ergebnis ist acht. Es ist acht. Weil das Ergebnis 0-20 ist. Und Erfolg oder nicht? Oh, es ist ein Ja. Erfolg. Warnung. Warum, warum, warum. Das ist Data, der Name. Okay? Du sagtest,
du hast denselben Namen Okay. Jetzt ist die Warnung gut. Okay. Lassen Sie uns einen
MPI Mapping QR, MPI hinzufügen Der Schlüssel, was ist das? Der Schlüssel ist im Grunde die ID
des Studentenausweistyps UID. Student ist strukturiert. Okay, UT sechs, Anruf-ID. Nein, tut mir leid. Für Studenten. Studierende. Und lass uns an die Öffentlichkeit gehen oder nicht. Okay, sagen wir zu diesem Zeitpunkt
öffentlich. Okay, nein, Ausweis zwei. Studenten. Das ist es. Okay, lassen Sie uns ein Array hinzufügen. Eine Reihe von Schülern. Also ein Array mit dieser Struktur. Es ist Student. Okay. Studenten. Eckige Klammer, Größe dynamisch. Wir legen die Größe nicht fest. Weil wir nicht wissen,
wie viele Schüler in dieser Klasse sein
werden. Nehmen wir an, es ist öffentlich und die Schüler
sagen, dass die Schüler gut sind. Okay, das war's
für diese Übung. Die zweite Übung, was ist das? Okay. Der zweite Kopf
ist ein Konstruktor Stellen Sie den Besitzer ein. Wer?
Wer setzt das ein? Und die Ehrungen privat. Also fügt die Übung die
getroffenen Punkte dem Array hinzu. Der Schlag wird dem Array hinzugefügt. Okay,
die Funktion Schüler hinzufügen. Okay, lassen Sie uns Funktionen für
Studierende hinzufügen. Schüler zu Marpin hinzufügen. Erstellen Sie eine Funktion für Schüler. Erstellen Sie im Grunde eine Funktion. Stellen Sie sich ein oder lassen Studentenanzeigen Okay,
ID, Name, Ergebnisse erscheinen Sagen wir zunächst, Ausweis. Du 286 IE. Nächste Zeichenfolge. Im Speicher. Sydney beginnt mit der Erinnerung. Okay. Es ist Int, Int, okay? Kunst. Weißt du, warum wir
das Int vermarkten, weil der Speicher, das Ergebnis negativ sein kann. Zum Glück können sie
negativ sein. Okay, das Ergebnis Also Ergebnis. Und Erfolg. Also bulle, Erfolg. Okay, extern natürlich, keiner. Und äußerlich, so
wenig, nein, Angst, nein. Okay. Mm hmm. Die Klassen haben sich auswendig gelernt. Das Set setzt die Schüler gleich was? Studierende. Sorry T und so. Also ID ID, dann ist es ID. Das NK As a Name-Kit ist ein Namenswert. Und das Lied von SotarSultr. Und dann Bola, Erfolg. Tut mir leid. Das ist nicht. Das würde mir
gefallen. Zuerst ja. Im Grunde ist es einfach Komm schon. Perfekt. Was? Sag mal, nicht gefunden oder nicht. Schießen Sie nicht. Macht keinen Spaß. Zu stark beult. Also ist es meine Schuld. Ja, ich meine. , sehen Sie, wir drücken das Zeug Studenten Student. Das ist okay.
Lass uns sichergehen. Okay, und passe dich
auch im Gedächtnis an. Entschuldigung, im Mapping. Okay, so wie das. Ausweis, spezifisch
für Ausweis und neuen Schüler. Das ist es. Das ist es das? Caperton dürr und biglot, Studenten für Studenten. Was ist das? Studenten, ja. Okay, das ist es. Okay, es wird eine
Funktion für Studenten eingerichtet. Git-Studenten. Perimeter sind natürlich extern, und es ist eine Ansicht, weil
wir Daten
im Blockchain-Tool
lesen wollen im Blockchain-Tool Studierende. Natürlich ist es Erinnerung,
beginnend im Gedächtnis. Im Grunde genommen im Speicher,
Zeichenketten im Speicher, Strukturen im Speicher,
Arrays im Zahlen? Nein, wirst du nicht. In diesem Fall
haben Sie zwei Möglichkeiten. Sie können das
Studenten-Array oder das Mapping verwenden. Lassen Sie uns das Mapping verwenden. Okay, ich habe zwei Schüler, eckige Klammer und
speziell
ich . Lassen Sie uns diesen kompilieren. Okay, du kannst
das automatisch kompilieren lassen. Es wird also zu der Zeit kompiliert. Es wird bereitgestellt und es wird geprüft
, ob es sich um eine PIN handelt. Die Transaktion wird durchgeführt. Der Partner, es gibt Schläge. Okay. Nehmen wir an, ich bin die Nummer eins. Mein Name ist natürlich RusinArsult,
20. Erfolg ist wahr. Und es handelt sich um Transaktionen. Das ist es Okay, lassen Sie uns
einen weiteren Benutzer hinzufügen. Okay? Es ist ID Ten. Es ist zum Beispiel Bob und zehn. Okay, zwei. Ja.
Und noch einer hat, sagen
wir, die ID fünf. Sagen wir Alice. Tut mir leid, Alice. 24. Transaktion hinzufügen.
Okay, mein Ausweis ist eins. Ist es Cob? Ja, das ist es Okay, eins, Mäuse, zwei und drei. Lass uns Ale beißen. Zu vielleicht? Nein, fünf. Okay, fünf, Ax, zwei und vier.
Das ist großartig Okay, in der Kartierung sagen wir
zum Beispiel Bob. Zehn vielleicht. Hä? Zehn?
Ja, es ist Bob. Okay, es ist Bob und wirf den Studentenindex
hier in den Index. Also Bob Dex, was ist es? Mein Index ist Null. Der Bob-Index ist eins, Push und der Alex-Index ist zwei. Mein Index ist also Null S Null. Okay, Mann. Sie würden
sagen, zwei ist Alice. Wir haben Alice erwartet. Das ist es. Alice. Er ist Alice. Okay, herzlichen Glückwunsch.
8. Loops: Schleifen. Loops und die Programmierung. Es gibt also eine Vier. Wir haben mit der
Initialisierung, den
Condon-Updates, dem
Anfangszustand, den
Updates usw. aufgehört Condon-Updates, dem
Anfangszustand, Updates usw. Zuerst gewinnen wir, wenn ich gleich Null bin. Dann stellen wir sicher, dass der
Zustand behoben ist. Also weniger als fünf, und wir erhöhen diese Variable In diesem Fall
erhöhen wir um eins Sie können eine Grundgröße um fünf,
ich plus fünf plus
zehn wählen , wie Sie möchten Und die Logik, wir
führen diese Logik aus. Zum Beispiel, also bin ich gleich Null. Zuerst ist die Bedingung erfüllt, führe diese Logik hier aus. Dann aktualisiere das I
Ecrement um eins. Zwei Bedingungen sind wahr. Logik. Ausrüstung,
drei, durchgehend, Logik. E Guiment Vier. Vier ist weniger als fünf.
Das ist es. Also führe diese Logik aus. Und dann inkrementieren Sie 425. Die Logik ist nicht wahr. Ist nicht weniger als fünf
gleich fünf, also raus. Und sein Erbe bei der Veranstaltung. Zum Beispiel Funktion,
Aufzählung, Gewicht,
Limit, Publikumsrate pro
Rückgabe, Ereignis. Sie haben also entweder Summe gleich Null oder Wind gleich Eins gewählt. Die Bedingung um eins, zwei, drei, wie du willst. Und die Bedingung, diese
sollte weniger als begrenzt sein. Limit, wir haben es
in den Parametern. Weniger oder gleich, und
wir erhöhen um eins. Also dann addieren wir
dieses e zur Summe. Bis wir fertig sind, bis
die Bedingung falsch ist, dann kehre zu su zurück. Hoppla
9. Loops-Übung: Loops zu unserem Klassenvertrag. Okay. Und in dieser Übung fügen Sie dem Erfolg eine Funktion hinzu. Okay, wir überprüfen gerne, ob der
Schüler erfolgreich ist oder nicht. Okay? Also, Funktion. Okay. Krank sagt Student. Also externe Parameter. Ja, extern. Es ist eine Ansicht und gibt Rs zurück. Ein Array von Strukturen. Es tut mir leid. Student. Student. Ein Array. Und mir tut mir leid. Ich Murray. Ja. Also stoppen wir zuerst die Länge
des Arrays des Studenten. Also, wie viele Schüler haben wir? Okay, 200. Okay. Länge entspricht
sudenTTT-Länge. Das ist es. Und dann kreieren wir zuerst. Okay. Lassen Sie uns die Gruppe
der Schüler erstellen. Ein weiteres Array, um nur
den erfolgreichen Schüler zu speichern und ihn dann zurückzugeben. Okay? Es ist Student. F, es sind Studenten, und es ist ein Array. Erinnerung. Und sagen wir, Erfolg, Erfolg, Equal New. Okay, das Beispiel
von Student Ray. Dann tut mir leid, der Student Struct Student
Calibrate, und das war's Das ist ein Fehler. Okay? Falsches Argument, zähle dem Argument Null, das angegeben
, aber eins erwartet wurde. Okay? Weil das so ist, fangen wir im
Speicher an, nicht im Speicher. Wenn Sie also ein
Array im Speicher sortieren, müssen
Sie die Site angeben,
besonders wenn es sich um eine Strat Wenn es sich um ein Strat-Array handelt, müssen
Sie die Größe angeben Also welche Größe
ist in diesem Fall die Zahl des
erfolgreichen Studenten Wie viele Erfolge haben wir nicht. Also erstellen wir eine Schleife, um diese Schüler zu
zählen. Also
muss 4156 gleich Null kleiner sein als die
Länge, die die Schüler anordnen. Ich sage, weniger als die Länge. Und dann erhöhen wir um eins. Also erstellen wir ein Konto,
Zähler, tut mir leid, Zähler zählen Also bei einem erfolgreichen Schüler ist
der Erfolg immer durch. Das ist okay. Fügen Sie eine If-Aussage hinzu
, wenn die Schüler indexieren. Nehmen wir an, Schüler
Null, Index Null, Schüler eins, sechs Erfolg, die Variable von str
successequal, Dieser Student ist also erfolgreich. Also schleudern wir die
Zählung plus plus plus. Also und dann, wenn die
Loops fertig sind, was bedeutet, dass das I
gleich der Länge ist Warum machen wir das nicht gleich? Weil das,
ja, gleich Null ist. Wir initialisieren mit Null. Nehmen wir an, die Länge ist zum Beispiel fünf, wir
haben fünf Schüler Das I ist Null ist eins ist zwei, ist drei ist vier. Okay, vier ist weniger als fünf, aber es gibt fünf Schüler. Deshalb sind wir nicht gleich oder
gleichwertig. Das ist es. Also, wenn das Konto fertig ist, haben wir die Nummer
des erfolgreichen Studenten. Also legen wir die Größe des
Tract-Arrays per Rabatt fest. Das ist es. Und dann erstellen wir
dieselbe Schleife,
dieselbe, aber in dieser Zeit fügen
wir diesen Schüler hinzu. Wir treiben es auf Erfolgskurs. Okay, so. Also Sechsen. Sechsen zum Schieben. Student Hey. Es ist kein mündliches. Unterweist Schüler. Außerhalb des Lagers. Ja. Okay. Wir
erstellen keinen Push. Wir müssen so etwas erschaffen. Schüler sagen das Gleiche. Und dann endlich dieser Erfolg. Okay, lass uns kompilieren. Okay. ist
es Autocompiler, also wurde es erfolgreich
kompiliert Lassen Sie uns dann diesen Vertrag bereitstellen
und sagen, was ist passiert? Okay, Student. Fügen wir einen Schüler wie einen hinzu. Ist Bob. Bob ist der erste, der 1510 Kinder
hat. Tut mir leid. Stimmt. Dann gibt es eine Zehn, es
sei denn, lass uns Zwilling werden. Es ist Zeit. Es ist natürlich wahr. Noch einer. Fünf. Sagen wir, Victoria, Victoria. Nehmen wir an, es sind nur vier. Es tut uns leid. Also vier, es sind
vier. Das ist es. Lass uns jetzt sechs als Leute nehmen. Okay. Okay, hier ist es. Da ist einer, Bob, 15, durch. Zehn, Alice, 20,
durch. Das ist es. Okay. Wir werden
diese Funktionen erstellen. Herzlichen Glückwunsch. Okay?
Das ist die Übung. Lass uns mit dem nächsten Schritt fortfahren.
10. Modifikatoren und Anforderungen: Das ist das Coole. Eine weitere coole Sache, und
die Solidität sind Modifikatoren. Modifikatoren sind im Grunde
ein Stück Code. Innerhalb von Fraktionen. Sie
haben zum Beispiel einen Code. Du musst
diesen Code jedes Mal
in allen Fraktionen erstellen diesen Code jedes Mal
in allen Fraktionen Und das ist Cosa Gas, Zeit und so weiter Sie müssen also
einen Modifikator erstellen und jedes Mal, wenn Sie diese Logik ausführen
möchten, rufen Sie
einfach diesen Modifikator auf. Das ist es. Okay, sagen wir, Modifikator ist Funktionen. Das kannst du sehen. Okay, Modifikator. Stellen Sie sicher, dass nur der Besitzer Funktionen zum Ändern des Besitzers
programmieren kann. Es gibt also eine
Funktion zum Besitzerwechsel, um den Besitzer zu ändern. Also der Besitzer, wer ist der
Besitzer? Es gibt einen Konstruktor Das heißt die Funktion, die Sie aufrufen, wenn Sie
den Vertrag bereitstellen Sobald Sie also den
Vertrag bereitgestellt haben, der Absender der Nachricht. Also, wer hat dieses Contra eingesetzt? Ich zum Beispiel. Also
setze ich diesen Vertrag um. Also bin ich der Absender der Nachrichten. Dieser Absender wird in
der Honor-Variablen gespeichert. Ich bin also der Besitzer
dieses SMRT-Vertrags. Das ist es. Aber es gibt eine
Funktion, um den Besitzer zu wechseln. Ändern Sie den Besitzer. Also, wenn jemand diese Funktion sieht,
Oh, ändere den Besitzer. Vielleicht kann er diese
Funktion mit seiner Adresse aufrufen und er erstellt den Besitzer, den Administrator des Vertrags. Und das ist das Risiko. Also was wir getan haben, was
wir tun müssen, ist
sicherzustellen , dass diese Funktionen
nur vom Besitzer aufgerufen werden. Das ist es, was wir bei der Ehre mit diesem einen
Modifikator hinzugefügt haben. Hier ist also Message
Send Equal Honor gefragt. Wenn die Nachricht vom Absender ist
, wer hat diese Funktion aufgerufen? Hier ist ein Modifikator zur Ehre. Das ist Execute, dann
der Renn-Erklärungsbuchstabe. Das nenne ich nur Ehre, ich
nenne die Funktionen. Ich bin nicht der Besitzer. Ich habe die Funktionen
aufgerufen. Dann wird die Nachricht gesendet. Also Botschaft gleich Ehre,
nein, ich bin nicht die Ehre. Also umgekehrt, und die
Ehre ist sicher. Andernfalls, wenn der Besitzer diese Funktionen
aufgerufen hat, ihnen eine neue Ehre einräumt, also hat er diese Funktionen genannt.
Das ist Sander, Das ist Sander, der Eigentümer, der
diese Funktionen aufgerufen Er hat den
Besitzer angerufen, das stimmt, also tausche die Ehre in die neue Ehre
um Und hier ist dieses Symbol hier, ist der Code für das Handgelenk, okay? Führe das zuerst aus und
dann den Handgelenkcode. Ich hoffe, das ergibt Sinn. Wenn nicht,
erklären wir das Schritt für
Schritt im Klassenprojekt. Wir machen viele dieser Übungen diese Weise. Was können Sie benötigen? Wir haben es in den
Modifikatoren gesehen, wir erklären es jetzt. Der Modifikator
ist im Grunde eine Bedingung. Wenn es sich befindet, als ob es sich um ein Segment handelt. Stellen Sie sicher, dass der Zustand abgeschlossen ist. Wenn die Bedingung erfüllt ist
, fahren Sie fort. Andernfalls kehren Sie zurück. Das ist es. Also schaffst du diesen Zustand. Und die restlichen
SMAT-Konten machen den Rest weiter oder kehren
je nach In diesen Funktionen
gibt es zum Beispiel eine MAX-Genehmigung.
Drei Funktionen
bedeuten, gibt es zum Beispiel eine MAX-Genehmigung.
Drei Funktionen dass Sie 256 öffentliche Gewinne erzielen.
Okay erforderlich. Der Betrag ist kleiner oder
gleich der MAX-Genehmigung. Falls ja, wenn diese
Bedingung erfüllt ist. Also mach weiter, was bedeutet, du kannst es mit
dem Rest der Logik machen. Das heißt, ich meinte diesen Betrag. Wenn es nicht zurückkehrt und es mehr
als den zulässigen Wert
anzeigt Ich
rufe zum Beispiel die Fraktionen und habe den Betrag zwei gesagt,
also zwei ist weniger als drei Okay, ich meine diesen Betrag. Ich nenne es zum Beispiel wieder mit dem FOB für weniger
oder gleich maximale Genehmigung. Nein. Es sind mehr als drei. Also die Transaktion leber
und zeig mir das hier. Nicht mehr als drei, erlaube es. Dies ist nicht
nur eine Option , um zu wissen, was
das Problem im Code ist Zeig es im Konzept.
11. Modifikatoren und Anforderungen ( Übungen): Fügen wir unserem
Smart Contract für Klassenzimmer einen Modifikator hinzu. Okay, erste Übung: Erstellen Sie eine Funktion zum Löschen von Schülern, erstellen Sie nur den Eigentümer-Modifikator und
implementieren Sie den Modifikator, damit nur der Eigentümer die Factits
aufrufen Lassen Sie uns zunächst die Modifikatoren erstellen
. Beginnen Sie mit dem Schlüsselwort modifier. Und der Name an. Tut mir leid. Ana. Auf Onur.This und hier fügen wir die Require Require Statements hinzu und kommen rein und hören zu, okay? Und mach das so. Das ist es. Dieses ikonische Haar ist im Grunde der Rest der Logik und der Fraktion. Okay, hier ist ein kleiner Auszug aus dem
Code des Modifikators. Und dann wird
dir das dem Compiler sagen, okay, führe diesen zuerst und gehe dann zum restlichen
Code der Funktion kannst du nicht machen.
Sag, okay, führe zuerst den Code
der Funktionen aus, dann führe diese aus. Das ist also im Grunde
Funktionslogik. Okay. Erstellen Sie eine
Funktion, um diese unterste Funktion zu löschen. Okay? Das, spät zum Ausweis, natürlich extern, also machen
wir dasselbe in diesem. Wir vergleichen die ID, weil
wir sie löschen
wollen nur
um zu erraten, wir wollen diesen Studenten
im Array und im Mapping löschen . Lassen Sie uns zuerst
diesen aus dem Array löschen. Um ein Element im Array zu löschen. Gehen Sie im Grunde zum letzten Element über und passen Sie
die Größe des Arrays an. Also Studenten. Studenten. Aber wir
kennen den Ausweis nicht. Wir wissen nicht, welches Geschlecht die Studentin
hat, für die wir einen Look erstellen
müssen. Okay. Zuerst
wurde die Größe Längenvariable gleich
der Länge Schlüssels festgelegt, dann 44206 entspricht, tut mir leid, entspricht zehn, weniger
als Länge Sorry, ich plus plus plus plus Wenn. Wenn Schüler A nun ID gleich gleich ID
gleich, gleich ID gleich,
gleich ID zehn Schüler hinzufügen. Der letzte Wert ist Länge, der letzte Index minus eins ist gleich. Studierende. Studierende. Wir fangen damit an. Wir bringen diesen Schüler zum
letzten Element des Arrays. Und dann setzen wir im Grunde Schüler mit Pop Pop
auf die letzten Elemente. Und entferne es im Mapping. Wir verwenden das späte T-Wort. Okay. Ich mache das Mapping und
spezifiziere die ID. Und das war's. Diese
Funktion ist also ein Risiko. Also, wenn wir den Modifikator nicht
implementieren, kann jeder
jeden Schüler löschen, jeden Deshalb müssen wir den Modifikator
implementieren,
nur der Besitzer kann
die Funktionen aufrufen Also fügen
wir in der Übung
Require Require diese Zeile hinzu, okay? Fahren wir also mit Require
Require Exers fort. Die erforderliche Übung. Oh, sagte, implementiere eine
Änderung, um zu überprüfen ob der Benutzer mit dem
Anrufer oder dem Benutzer einverstanden ist Er ist der Eigentümer des Vertrags. Im Grunde der einzige Besitzer. Wir benötigen eine Nachricht
, dass der Absender, der
diese Funktionen aufruft , dem Eigentümer entspricht oder
diesen Vertrag bereitstellt oder nicht. Falls ja, fahren Sie fort. Nicht beim Zurücksetzen von Transaktionen
und beim Loggen dieser. Nur der Besitzer kann diese Methode aufrufen. Und beachten Sie. Und das war's. Okay, das ist bevor
wir es einsetzen. Wir machen dann den letzten und setzen ihn ein. Okay? Geh hier durch den einen. Okay, sagen wir bei Quan Kemi
sagen Sagen wir Null. Okay. Noch eins, zehn, S, Bob, 20 und drei. Und wir wollen
jemanden löschen. Aber vergewissere dich. Dieser Account, wer hat
diesen Vertrag umgesetzt? Also dieser Account, dieser Typ
hier ist der Besitzer davon. Also der Absender der Nachricht, der Besitzer ist dieser. Lassen Sie uns zunächst diese
Funktion zusammen mit den anderen aufrufen. Da es der Besitzer ist, wird der Student sagen wir mal eins
löschen. Transaktionen werden durchgeführt,
besorgen Sie sich den Studentenausweis. Nein, es ist Null, Null Fehler, das
heißt im Tupel Zuerst habe ich die
ID Null mit Namen, sehen
Sie, und durch und durch und durch
und durch. Aber das ist okay, lassen Sie uns das Okay hier
klären. Aber wenn wir danach
löschen und diese Funktion aufrufen, erhalten
wir Null und leer, und im Ergebnis Null und
falsch, was Null bedeutet. Sagen wir mal,
okay, wir haben noch einen. Das ist BG the Bobo, zehn, Bob, 20 durch.
Es ist dieses Auto löschen Aber es ist nicht der Besitzer
, der dieses löscht. Nein, noch einer. Sag das. Versuche Bob zu löschen.
Ist das möglich? Nehmen wir an, wir haben eine
Rückkehr erwartet. Es ist also Big Löschen. Okay, es ist umgekehrt. Warum? Siehst du, warum es umgekehrt ist. Im Grunde genommen, diese
Aktion,
okay, sieh sie dir an, nur der Besitzer
kann diese Methode aufrufen.
12. Veranstaltungen: Ist im Grunde eine Benachrichtigung von der Sperrung. Und
das ist sehr nützlich. Sehr, sehr, sehr nützlich. Es ist ein Protokoll zum Blockieren. Okay, es gibt Funktionen.
Es gibt eine Logik, am Ende gibt es ein
Ereignis aus der Blockchain. Das könnte also erfolgreich
ausgeführt werden, dann teilt das Blockieren dieser Funktion mit und
benachrichtigt
sie, sie wird aufgerufen und erfolgreich
ausgeführt Hier ist ein klares Beispiel:
Smart Contract. Okay,
hier gibt es eine Registerkarte, eine Funktion, den
sogenannten Smart Contract,
und es gibt ein Ereignis. Wir nennen also Fehlfunktionen, und diese Funktionen haben ein Ereignis Also Ereignisse, es sind die Blockchains. Und diese App
listet Event-Listener in der
Blockchain auf Wenn überhaupt, aktualisieren Sie
die Blockchain. Die Blockchain
benachrichtigt die App also über dieses Ereignis. Zum Beispiel gibt
es eine Funktion zum Hinzufügen einer
Studentenfunktion in der App. Funktion zum Hinzufügen
des Schülers. Okay. Diese Funktion hat eine Event
- und Sperrveranstaltung für Studierende
mit Studentenausweis und dem
Namen des Studenten. Das ist es. Und am kommenden Tag wird jemand, den irgendein Student diese Funktionen
nennt. Mit seinen Informationen dann
und dem Blockkinn hinzugefügt. Also die Blockchain, wenn
er diesen Schüler empfängt, benachrichtigt
er die Apps und sagt,
Hallo, es wurde ein neuer Student zu deinem App-Tag
hinzugefügt. Hier sind sein Ausweis und sein Name. Das ist es. Also Ereignisse, erstelle
Ereignisse und Ereignisse. In Smart Contract erstellen
wir also Ereignisse wie dieses
mit dem Schlüsselwort Ereignisse, dem Namen der Ereignisse. Und diese Seite, die Daten, willst du dich einloggen, okay? Du bist zu 256 gegangen, um Daten
eins zu indexieren und Daten zwei zu sequenzieren. Dieser Index ist also
nützlich, wenn Sie die Daten filtern möchten . Um zu beschleunigen und es einfacher zu machen. Nein. Das ist also sehr nützlich, wenn Sie Ihre Funktionen
testen möchten. Das sehen wir im
Foundry-Framework. Gießerei-Kurs, tut mir leid. Also Funktionen,
Funktionen , einige
Funktionen. Okay, öffentlich. Finden Sie die Logik heraus und
geben Sie dann dieses Ereignis mit den Daten eins und den Daten aus,
um die Namenslogik,
den Namen der
Ereignisse und die Daten auszugeben .
13. Übungen zu Veranstaltungen: Gehen wir zum Vertrag über. Als Trainingsereignisse. Okay, Ereignisse, erstelle ein
Ereignis mit vier Argumenten. ID, Benennen Sie das Ergebnis erfolgreich mit dem
Namen Student hinzugefügt und geben Sie dann dieses Ereignis
in der Funktion „Student hinzufügen“ aus. Erstellen Sie ein Ereignis mit
zwei Argumenten, ID, aufgerufenem Namen und gelöschtem Schüler, und geben Sie dieses Ereignis in den
verzögerten Funktionen Student aus. Okay, lassen Sie uns zuerst das Schlüsselwort c.
Event löschen . Der Name Student. Okay? Schüler. Also dieser. Okay. Und dann, zuerst, der Ausweis. Die ID steht für Win 66. Ausweis. Keine Stärke. Name. Das Ergebnis endet, nicht endet. Also das Ergebnis Sixspola. Okay. Wir wollen den Schüler nach ID und N filtern , was bedeutet, dass dies die
wichtigsten Daten sind. Also machen wir diesen einen Index daraus. Und natürlich ist
der Name Index. Der andere ist nicht einfach. Und er sagte, erschaffe noch
einen, der Student Delay heißt. Okay? Wie immer hat Student sogar
Himmelswörter gelöscht. Die ID 256 ist indexiert und die ID. Dann der Name String Index, das war's und der Name Lassen Sie uns also diese Ereignisse aussenden. Senden Sie zunächst dieses Ereignis aus
und fügen Sie Fraktionen hinzu. Sie also D aus und geben Sie den Namen
eines Studenten aus, dass der erste Teil ID ist, also ID und Name Kate Nims, ein Typ, Ergebnisse Dann ist Bola erfolgreich. Sirk Erfolg. Die Werbefunktion ist, dass diese
Veranstaltung sehr schlecht ist. Also dieses intelligente Klassenzimmer,
er hört sich die
Blockliste bis zu dieser Veranstaltung an. Wenn jemand
diese Anzeige Student nennen würde. Also der Block Chin,
sagen wir, hey, Klassenzimmer, da ist ein anderer
Student hinter seinem Ausweis, seinem Namen, seinem Ergebnis und Erfolg hin oder her. Okay, das ist der
Zweck der Veranstaltungen. Und natürlich inhaftieren wir diesen
in That's it. Der Name für diesen. Wir
werden den Namen hier beginnen. Okay? Speichern Sie zuerst den
Namen, um ihn hier auszulösen. Und das ist alles. Das ist eigentlich B.
Das ist nicht so. Es ist so.
Das ist die Filiale. Bewahren Sie diesen und den letzten auf. Nein. Letzter in der aktuellen. Okay, lass uns Kuchen machen. Es ist ein Fehler aufgetreten. Was? Problem hinzugefügt. Ereignisse. Wurde erwartungsgemäß bekommen. Ah, ich verstehe dich. Dieses Semicon? Das ist es. Es wurde erfolgreich
kompiliert. Es heißt bereitstellen und die Ereignisse sehen. Laut oder nicht? Es ist ein. Okay. Lass uns jemanden hinzufügen. Fünf. Mein Freund Bob zehn und über
Transactions. Mag ich es ihr zeigen oder nicht? Okay. Hier ist. Hier ist es im Logbuch. Hier ist unser Mann. Da drin natürlich. Ja, Heats. Sogar
Studenten streiten sich. Der Index ist wahr. Also einer. Aber wie lautet der
Name? Ja, Herits. Okay. Die ID ist fünf oben
und zehn und durch.
14. Vererbung und Interaktionen (Schnittstellen): Erbschaft. Also Erbschaft,
hier ist ein Beispiel, hier ist ein blaues Auto und ein blauer Truck. Das blaue Auto hat also
einige Funktionen. Fahren Sie und fahren Sie rückwärts und halten Sie an. Das ist also ein allgemeines Auto. Und das grüne Auto hat einige zusätzliche
Funktionen ,
da
es die meiste Zeit abschleppen und abseits der Straße fahren kann. also gleichzeitig diese Funktionen: Fahren, hat also gleichzeitig diese Funktionen: Fahren,
Rückwärtsfahren und Stoppen. Dieses grüne Auto
erbt also im Grunde die Funktionalität des normalen Autos und fügt
einige eigene Funktionen hinzu Das ist es. Lassen Sie uns also weitermachen und sagen, wie das
im SMAT-Kontakt passieren kann Inherited und Smart
Contracts verwenden das Schlüsselwort
is, um einen Kontakt zu erben
. Zum Beispiel gibt es
einen Kontakt, der Elternteil int hat diese variablen übergeordneten
Daten. Es ist öffentlich. Der Kindervertrag
erbt von den Eltern. Das Kontaktkind ist also Elternteil, das heißt, erbt
den Inhalt
der Eltern und hat
variable Kinderdaten Also, der Konstruktor
und der Konstruktor des die Daten für das Kind fest Und das Erbe in der realen
Welt ist ein echter Vertrag. Die Azuki-Kontaktpersonen erben
die Ehrenwerte und die ERC
721 A- und Retrinc-Karte
von den Importen. Okay,
es gibt eine offene Zeppln-Bibliothek . Also die Ehrenwerten, das heißt, alle Inhalte, Variablen und Funktionen mit
interner, interner und öffentlicher
Sichtbarkeit zu erben Variablen und Funktionen mit
interner, interner und öffentlicher
Sichtbarkeit . Das Private kann nicht vererbt werden. Schauen wir uns also an, wie man Interaktionen miteinander vereinbaren
kann Interaktionen abschließen. Also hier sind der
Vertragsbenutzer und G. Also diese beiden Kontakte tatsächlich eine Menge
Interaktionen, weil der Schlüssel, die Benutzer, die das G spielen.
Also in den Vertragsbenutzern,
diese Funktionen, Benutzer erstellen, den verspäteten Benutzer, erhöhen das Level. Und im Spiel ist Vertrag
ein Spiel starten und schwul spielen. Im Grunde können die
Interaktionen
passieren, das sogenannte
Struct-Spiel, das sofort einen Benutzer erzeugt, was bedeutet, dass ein Vertrag zerstört wird,
der als Create-Benutzer bezeichnet wird ,
oder das Spiel ist vorbei, zum Beispiel der verspätete
Benutzer oder der Benutzerzuwachs Also dieser Vertrag, sprechen Sie mit
diesem einen Benutzervertrag. Okay, in intelligenten
Verträgen
ist zum Beispiel Vertrag A mit den
Daten und den eingestellten Daten. Und hier ist ein Vertrag, Vertrag B, die Schnittstelle,
wir sehen, was die Schnittstellenschicht ist. Diese Schnittstelle hat also
die gleichen Funktionen, festgelegten Daten und die variablen
Daten. Es ist auch eine Funktion. In Vertrag B
gibt es also einen Konstruktor, der die Schnittstelle an der Adresse
des Vertrags A anpasst und hier
, und so werden die Verbindungen
tatsächlich hergestellt. Auf diese Weise werden
die Verbindungen zwischen dem A und
dem Vertrag B hergestellt. Und im Grunde genommen, wenn diese
Verbindung hergestellt ist, können Sie die eingestellten Daten aufrufen
und die Datenvariable in
Vertrag D
so einstellen ,
wie Sie wollen, so wie Okay, diese Funktion
setzt Daten in Kontakt A, Sie warten auf 8.256 externe Daten Okay, Contract A Punkt setzt Daten, ruft diese Funktionen im
Parameter Put This Data Also das hier ändert sich dadurch. Also, wo ist die Schnittstelle? Die Schnittstelle
ist im Grunde ein blaues Elternteil. Okay, es gibt mehrere Zimmer. Es sind spielähnliche Funktionen. Okay? Also in der realen Welt, im Smart Contract, hier ist ein Vertrag A, Win 256 öffentliche
Daten und Datenfunktionen wie wir sie verkaufen, und in der Schnittstelle, seiner Funktion, siehe
Daten in der Schnittstelle, müssen
Sie
Funktionen ohne Definitionen deklarieren. Das k, der Parameter, ihrer. Das gleiche k muss mit dem Namen der
Funktionen im Vertrag A übereinstimmen.
Und das ist hier eine Variable Aus dem Grund, warum wir unsere Funktionen erstellen. Im Grunde, weil die Funktionen wie
eine Git-Funktion sind. Und die variable öffentliche Variable hat standardmäßig
Gitter-Funktionen, hier ist sie. Okay. Und das ist nützlich,
wenn es zum Beispiel eine Funktion gibt, wenn es einen
Vertrag mit vielen Funktionen gibt. Zum Beispiel Benutzerdaten, Benutzer, Änderung der Datei, Eigentümer und so weiter Und in Ihrem Vertrag erstellen
Sie einen Vertrag Du willst, du willst nicht all
diese Fraktionen erben. Du willst nur ein paar von ihnen. Okay? Es ist ein
Besitzerwechsel und setz dich auf Sitauser Das ist es. Sie
müssen also eine Schnittstelle mit derselben Deklaration
ohne Definition erstellen. Und im Konstruktor
deklarieren Sie diese Schnittstelle, und dann ordnen Sie
diese Schnittstelle der Adresse dieses Kontakts Okay. Das ist es. Das sehen wir also in den Übungen. Im Remix gibt es hier ARC RC
20-Token, die einige Funktionen haben. Diese Symbole, Symbol,
Name und Unterschrift, Gesamtlieferant und
Bilanz und Übertragung, Genehmigung und viele Funktionen Und ich möchte einen Vertrag abschließen. Okay.
Lexi-Test abschließen. Testen Sie einfach Mm. Okay, Biggs Ole sint beide Fritteusen. Mm hmm. Und in meinem Geschmackskontrakt möchte
ich
vielleicht diese
Minzfraktionen verwenden oder Fraktionen benennen Also was ich tun werde,
ich möchte nicht
alle Funktionen des ART nutzen alle Funktionen des ART Ich will nur Namen und Minze. Also was ich tun werde,
ein Interface erstellen und Interface okay. Schnittstelle.
Schnittstelle, beschränke ARC auf T. Und du gehst zum Namen
dieses Namens, Namen und Brüche Wir kopieren die Signatur
dieser Fraktionen. Kopiere diesen Vergangenes Publikum, also
jubeln Sie dem Externen zu. Wie ich dir schon sagte, die gesamte Funktion in der Schnittstelle
ist extern Es gibt eine Ansicht und ohne
Definitionen. Das ist es. Und Funktionen, die ich nicht
verwenden werde, sind, sagen wir, sagen
wir, Mint W ist neuwertig. Ja, das ist das externe interne
System von Mint. Mach intern. Ändere es auf extern,
wie ich dir gesagt habe. Extern. Und ja. Und ich werde diesen deklarieren. CC 20. Ist öffentlich und RC Constructor für die Adresse des RCT Nehmen wir an, ARC zwei entspricht ARC und ändern Sie diese
Adresse in Und so werden die
Verbindungen hergestellt. Nun, mein Airc ist dieselbe Adresse wie
der ARC, mit der
ich interagieren möchte Sagen wir im Grunde genommen Funktionen. Name. Sagen wir String-Speicher. Den Speicher starten. Nun, sagen wir den Namen. Okay, es ist öffentlich vorsichtig und ARC 20 Punkt N. Nein, ohne
Parameter. Okay? Und dann komm einfach zurück. Kehren Sie zurück. RTs. Was? Belastung.
Und der Memory Sub Return Ko. Das war's. dich ist es Mac. Und das ist es. Ich gebe den Namen des ARC zurück. Nein, nein, nein, virtuell. Ich tue dir übel. Okay, und
die Mintiafaction Fiction Mint. Das Gleiche hier Adessen, Okay, ARC 20 Mint Count Ein Nein. Das ist es. Das ist,
wie man Verträge abschließt, interagiert und
über die Schnittstelle interagiert.
15. Kursraumprojekt ergänzen ( Iheritance und Benutzeroberfläche hinzufügen): Wenn Sie jetzt buchen, handelt es sich um einen Vertrag für Eltern. Erstellt Inherit student
contact from Astral, Q.
Lass uns das machen. A zu erben
und Studenten Das war's Und er sagte, erstelle eine Funktion, um zu überprüfen, ob der
Student erfolgreich ist oder nicht Okay. Jetzt hat der Elternteil alle Funktionen
des Schülers. Zusätzlich hat er
eine weitere Funktion namens Checks the Parent, er möchte überprüfen, ob der
Schüler erfolgreich ist oder nicht. Sagen wir Funktion. Okay? Überprüfe Success, es heißt einfach
Erfolg, okay? Erfolg, du kaufst Ausweise. Okay, Six Force oder
Public, irgendwas? Und Richards. Was ist was? Bula.
Wahr oder falsch Also einfach Bolt. Durch Tools, verkauft und es sind reine Fraktionen weil wir
überprüfen wollen, ob wahr oder falsch.
Okay , ich IT-Studenten, die
IT S sagt gleich wahr Sonst. Es tut mir leid. Wie. FOS zurückgeben. Ja. Ja, im Grunde
kannst du das einfach so machen, okay. Zurück Tut mir leid. Geben Sie die IT an die Schüler zurück
. Sie haben erfolgreich unterrichtet. Das ist es. Und diese
Rückgabe ist wahr oder falsch. Das führt zu Verkäufen. Das ist nur für Nein, das ist ein Mädchen. Nicht zu wissen, nur drei oder vier. Nein, um zu überprüfen, ob
es Erfolg gibt oder nicht. Vielleicht kannst du hier etwas
Logik hinzufügen, okay? Der Bonus oder
ich kann hier irgendwas machen. Aber wenn du einfach
zurückkehrst, nein, vielleicht ist es das. Okay. Ich finde es sehr gut. Aber du hast die Wahl. Okay, lassen Sie uns diesen C-Chat bereitstellen. Ohne diesen zu löschen. B. Den isst du nicht.
Die Eltern. Ja, die Eltern. Lass uns das Elternteil einsetzen. Okay, jetzt erstellen wir einen Elternvertrag und
erben die Schüler, dann fügen wir zusätzliche Funktionen was ein voller Erfolg ist Okay, der Elternteil hat jetzt
den Ausweis seiner Schüler. Also überprüfe, ob wahr oder falsch. Also, wenn wir diesen bereitstellen, können wir ihn trotzdem behalten und erneut bereitstellen Wow, wir bekommen alle Funktionen
im Studentenvertrag Zusätzlich
überprüfen wir, ob es erfolgreich war. Fügen wir fünf Poke hinzu. Immer mein Freund Bob. Und dann zehn. Durch. Der Typ ist gut.
Immer durch. Dann überprüfen wir fünf Oh,
durch. Das ist es. Füge noch einen hinzu.
Wände. Okay. Es sind zwei weniger Sorry, Alice, nochmal. Fünf. Und falscher Rest, überprüfe die Eltern von Alice. Okay, Übung mit dieser
Schnittstelle, TT T. Okay,
die brauchst du nicht. Eigentlich brauchen
wir sie nicht Schick ihm eine Erinnerung. Du musst diesen nehmen. Okay. Weil die Schnittstelle da
drüben in B Student ist, erstelle ich zwei
Funktionen in Ad Student Gehen wir also zur Anzeige
Student. Er ist Student. Okay, lass uns das kopieren. Und warum brauchen wir diesen
nur für diesen Typ? Das liegt daran, dass ich diese
Haare habe und Student werde. Also in diesem Vertrag
ist das noch nicht definiert, deshalb kopiere ich
die Studentenstruktur und füge sie in
den Studentenkontakt ein. Okay, hier ist die Funktion. Okay, lassen Sie uns
das Zeile für Zeile löschen. Verstehe, wie das läuft. Okay. Zuerst, sagte er, füge Funktionen zum Hinzufügen von Schülern hinzu. Also fügen wir die
Funktionssignatur hinzu. Gehen wir zu Student Student. Er ist auf Veranstaltungen. Okay, lass uns das kopieren. Hier, F. Und das war's
ohne Definition. Und G-Student, holen wir uns die Unterschrift von
G-Student. Nur Unterschrift. Oder hier ist eine Unterschrift. Das ist es. Das habe ich getan. Jetzt
haben wir also zwei Funktionen. Hauptstudent, werde Student. Und wir kreieren, ich sagte, okay, lass uns all diese Dinge tun, um das Zeile für Zeile zu
beantworten. Okay. Okay, erstelle
einen Kontakt für Lehrer. Hier ist es. Erstellen Sie einen Konstruktor für den Studentenvertrag und
umgehen Sie ihn als Parameter Okay, machen die Globe-Studenten. Ich sagte, es ist öffentlich
und kompakt für Studierende. Und Konstruktor
Constructor, wenn man
die Adresse eines Studentenvertrags
und eines Studentenvertrags weitergibt die Adresse eines Studentenvertrags ,
entspricht ich Student entspricht ich Wandle das in Interface um und
hol dir Student . Das ist es. Jetzt stellen wir die
Verbindung zwischen
dem Lehrervertrag
und dem Studentenvertrag her. Jetzt haben wir die Möglichkeit , die Hinzufügen-Funktion
des Schülers aufzurufen. Also erstellen wir eine Funktion.
Nennen wir es „Sit my Student“ oder „Add My
Student“, wie Sie möchten, mit demselben Parameter. Okay. Sie können beliebige
Funktionen hinzufügen. Und nenne diese Funktion zuerst
Student Contact. Aber, aber was? Hier
ist die Möglichkeit, Funktionen
hinzuzufügen und dem
Schüler eine Funktion zu geben. Okay? Gib die ID, den Namen, das
Ergebnis, den Erfolg weiter. Okay, was ist Erfolg hier,
also fügen wir Apola Success hinzu. Das ist es. Die Namensergebnisse sind fertig. Dann noch eine Funktion, es ist
Funktion, hol meinen Schüler. Sie führen ID für ID durch. Es ist äußere Macht, die
Aussicht und die Rückkehr. Sie müssen dieses
Interface spezifizieren, weil es dieses Okay zurückgeben
wird. Das ist also nicht so, dass die Schüler
nicht vom Schüler abgelenkt werden. Nein, es lenkt
von der Benutzeroberfläche ab. Deshalb fügen wir
das und den Punkt Student hinzu. Nehmen wir Literatur. Was ist. Okay, Liter Student Dot Git Student und gib
den Ausweis weiter. Okay. Das ist es. Okay, Kontaktanrufe. Lassen Sie uns diesen kompilieren. Okay, es
wurde erfolgreich kompiliert. Häkchen setzen. Lassen Sie uns zuerst das
Interface bereitstellen. Hm, ich kann nicht. Was? Niemand
kann diesen einsetzen. Wow. Okay, wir setzen
zuerst die Schüler ein, dann setzen wir sie ein. Okay? Dieses
Häkchen. Ich liebe es. Und die Parameter unseres
Studentenvertrags. Dann lassen Sie uns diesen einsetzen. Es
wurde erfolgreich kompiliert. Deploy. Es tut uns leid. Wir geben zuerst
die Adresse des Studenten weiter. Okay? Und der Konstruktor Denn sobald Sie den Vertrag
bereitgestellt haben, wird er direkt als Konstruktor bezeichnet Also geben wir die Adresse
des Studenten weiter, dann sind wir fertig. Mm hmm. Und das ist mein Student
und werde Student. Der Vertrag ist eingerichtet und wir fügen einen Schüler und einen Lehrer hinzu. Stimmt. Bob ist mein Student. Bob-Ergebnisse. Sagen wir zehn. Okay, stimmt. Das ist Scheckmatten. Das ist es. Sagen wir drei. Meine Studentin Alice. Geh Job, Alas 20. Stimmt. Behalten wir meinen zweiten Schüler. Hier sind es zwei, Bob, zehn, durch. Und was? Ja, drei in Alice. Studentin Alice. Das ist es. Und die Werbung der Studentin
Cuts 0d60 CD sechs und vier. Das war's für diese Lizenz. Okay, wir beenden diesen.
16. FINAL: FUNDME Challenge Projekt: Endlich das Fund-Me-Projekt. Dieses Projekt ist also komplexer und es gibt ein neues
Konzept. Sie müssen es wissen, bevor
Sie dieses Projekt starten. Okay, Pike arbeitet im Grunde, wenn Sie eine bezahlbare
Adresse vermarkten, akzeptiert
diese Adresse acht Gelder Falls nicht, geben Sie einfach normale Adresse an, die
nicht akzeptiert werden kann. Und bei jeder Wiederholung dieser
Adresse geht sie verloren. Eine weitere Sache, die Sie
kostenpflichtig vermarkten können, Funktionen, Funktionen,
Konstruktorfunktionen, Receive-Fallback, all diese Funktionen können
Sie Sobald Sie eine
kostenpflichtige Funktion vermarkten , sodass diese Funktionen Ether akzeptieren
können,
was bedeutet, dass Sie, wenn Sie diese Funktionen
aufrufen, etwas Äther
an diese Funktion senden können Es ist eine Nachricht an den
Absender, was bedeutet, dass Sie die Adresse dessen haben, wer
diese Funktionen hat. Punktwert der Nachricht sind
die Daten, das Geld, das Sie
mit diesem Anruf senden, genau, Ihr Anruf funktioniert und Sie senden etwas Ether. Der Punktwert der Nachricht ist also das
Geld, das Sie erhalten, das Sie senden. Aus diesem Grund
gibt es in Schritt drei eine unterhaltsame Funktion, mit
der der Benutzer es senden kann. In diesem Fall ist es also der Mr.
Dot-Wert. Also bei Funktionen gibt
es einen zweiten Schritt, Besitzer. Okay, der Besitzer,
derjenige, der diesen Vertrag umgesetzt hat. Der Mindestbeitrag
ist wie eine Schwelle. Okay. Der Mindestbetrag Sie für diesen Vertrag zahlen müssen, die Funktionen für Kleinkinder, kann
ein Benutzer senden,
was bedeutet, dass Sie die Funktionen kostenpflichtig
vermarkten müssen. Und dann speichern sie diesen
Betrag in einem Mapping. Zuordnung von Adresse zu Betrag. Adresse an, Sie sind gegangen, also
die Miss
GSander, die gesendet
hat, die diese Funktionen aufgerufen und diesen Esser geschickt hat,
und die
Esserin , die den Betrag
geschickt hat,
was bedeutet, dass der Name angeboren ist, zum Beispiel Balance,
Balance Miss Sender,
gleicher Geizhals Balance Miss Sender,
gleicher Und bei der oben genannten Anforderung.
Das ist es. Und scep, um
es zu deklarieren und Funktionen zurückzuziehen. Die Funktionen zum Abheben können
nur vom Eigentümer erstellt werden, also nur auf dem Feuer
und der Beitrag. Also diese Auszahlung, der
gesamte Restbetrag des
Vertrags an den Eigentümer überweisen,
dann das Mapping zurücksetzen, auf Null
zurücksetzen, was
wiederum bedeutet, dass das Spiel vorbei ist Überweisen Sie also den gesamten Äther
in diesem Vertrag zum Ausgleich an den Besitzer
und lassen Sie den Restbetrag auszahlen. Und ja, also wie man den ganzen Vertrag
schickt, ist im Grunde
die Adresse, die Adresse. Das ist die Adresse
des Vertrags. Adressieren Sie diese
Punktwaage. Das ist es. Wie zum Beispiel ein Benutzer, zum Beispiel Adresse Benutzer,
Adresse Punkt Balance. Router, der Saldo
dieser Adresse. Und der Modifikator CP fünf, den
ich eingestellt habe, und CP sechs, ein Vertrag kann nicht akzeptiert werden Äther, bis Sie zwei Funktionen haben, C oder Fallback-Funktionen Andernfalls geht der Äther weg. Empfangen ist also ein Trigger , der ausgelöst wird, sobald ein
Vertrag den Äther verlässt, Fullback-Trigger,
sobald der Auftragnehmer Äther oder Daten
akzeptiert Im Fondskurs werden wir zwei weitere
Funktionen erläutern. Um Ether zu halten. Das ist es. Und S Four wird
im Support eingesetzt, ein Bonus. Okay, oder der Hauptbeitragende. Das ist es.
Herzlichen Glückwunsch. Ein großes Dankeschön für diesen Kurs. Und ich freue mich sehr
, Ihnen
den ersten Schritt beizubringen , um in die Blockchain
einzusteigen und diese
mächtige Sprache zu lernen. Also Solidität, okay, ich persönlich
liebe es. Es ist eine wunderschöne Sprache. Und mehr noch, wenn
man die Solidität lernt,
also die Solidität hat und
diesen Code in der Gießerei probiert,
das ist erstaunlich . Das ist unglaublich. Im nächsten Kurs
über das Projekt werde
ich Ihnen die
Lösung für dieses Projekt mit zusätzlichen
Konzepten wie Zahlung,
Empfang und Ausweichlösung vorstellen, je nachdem, was wir hinzufügen Wir wissen, was Chili ist, C-Chili und vieles mehr Also, wir sehen uns im Me-Projekt. Nochmals vielen Dank.