Solidity-Tutorial für Anfänger – Vollständiger Kurs | Lhoussaine Ait Aissa | Skillshare
Suchen

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Solidity-Tutorial für Anfänger – Vollständiger Kurs

teacher avatar Lhoussaine Ait Aissa, Smart Contract Developer

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Willkommen bei Solidity: Ihre Reise beginnt hier!

      2:23

    • 2.

      Was ist Solidity? Die Möglichkeiten für die Erstellung von DApps nutzen

      6:24

    • 3.

      Praxisorientiert: Aufbau Ihres ersten Solidity-Smart-Vertrags

      6:22

    • 4.

      Solidity-Grundlagen: Variablen, Funktionen und Arrays erklärt

      16:14

    • 5.

      Einen Rechner in Sepolia Testnet erstellen und bereitstellen

      12:19

    • 6.

      Solidity Mittelstufe: Mappings und Strukturen beherrschen

      5:20

    • 7.

      DApp im Kurs: Ihr erstes Solidity-Projekt für die Zwischenstufe

      17:03

    • 8.

      Loops in Solidity beherrschen (einfach gemacht)

      2:22

    • 9.

      Solidity-Loops: Praxisübungen für Anfänger

      8:59

    • 10.

      Solidity-Modifikatoren und Requirements entmystifiziert

      5:31

    • 11.

      Modifikatoren und Anforderungen: Übungsherausforderungen in Solidity

      11:14

    • 12.

      Solidity-Events: Wie sie funktionieren und warum sie wichtig sind

      3:23

    • 13.

      Events in Aktion: Interaktive Solidity-Übungen

      6:02

    • 14.

      Vererbung und Schnittstellen: Intelligentere Verträge erstellen

      14:29

    • 15.

      Kurs-DApp fertigstellen: Vererbung und Schnittstellen hinzufügen

      14:05

    • 16.

      Die ultimative Solidity-Challenge: FundMe DApp

      5:28

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

10

Teilnehmer:innen

1

Projekte

Über diesen Kurs

Solidity-Grundlagenkurs

Ich habe diesen Kurs mit viel ❤️ erstellt, weil ich so etwas gerne hätte, als ich als Blockchain-Entwickler angefangen habe.

Ich hoffe, es gefällt dir!

Was du in diesem Kurs lernen wirst:

  • Soliditätsgrundlagen: Beginne mit dem Aufbau einer starken Grundlage in Variablen, Funktionen und Arrays. Außerdem erstellen Sie einen Basisrechnervertrag, um Ihr Wissen anzuwenden.

  • Vertragsabwicklung und -verifizierung: Lerne, wie du Solidity-Verträge im Sepolia-Testnet bereitstellst und in Sepolia Scan verifizierst, um öffentliche Transparenz für deine Arbeit zu gewährleisten.

  • Ausführliche Solidity-Konzepte: Expertise in Schlüsselkonzepten wie Mappings, Structs, Modifikatoren, Require Statements und Event-Handling, um die Vertragsfunktionalität zu verbessern.

  • Kursvertragsentwicklung: Einen vollständigen Kursvertrag mit praxisnahen Funktionen wie Teilnehmerregistrierung, Datensatzverwaltung und dynamischen Updates aufbauen.

  • Fortgeschrittene Solidity-Techniken: Komplexe Themen wie Loops, Vererbung und Vertragsinteraktionen für skalierbare dezentrale Anwendungen beherrschen.

  • Capstone-Challenge-Projekt: Stelle deine Fähigkeiten auf die Probe, indem du einen FundMe-Vertrag abschließt. Erweiterte Funktionen wie kostenpflichtige Funktionen, Empfangs-/Fallback-Funktionen und Chainlink Oracle-Integration implementieren, um reale Daten direkt in Chain abzurufen.

Am Ende dieses Kurses hast du die Fähigkeiten und das Selbstvertrauen, um Smart Contracts und Blockchain-Projekte von Grund auf zu entwickeln. Perfekt für aufstrebende Entwickler und Blockchain-Enthusiasten, die ihre Karriere voranbringen möchten!

Triff deine:n Kursleiter:in

Teacher Profile Image

Lhoussaine Ait Aissa

Smart Contract Developer

Kursleiter:in

Hello,

I'm Lhoussaine Ait Aissa, a passionate Smart Contract Developer and Security Researcher with expertise in blockchain technology. My skills focus on developing secure, efficient, and scalable smart contracts, auditing DeFi projects, and discovering vulnerabilities in complex systems.

In addition to blockchain development, I am a dedicated problem-solver who enjoys exploring innovative solutions to enhance the reliability of Web3 applications. On Skillshare, I aim to share my knowledge and experience to help aspiring developers and security researchers master the art of blockchain programming and security.

When I'm not coding or auditing, I enjoy exploring new technologies and contributing to the growth of the blockchain ecosystem. Let's build a secure and d... Vollständiges Profil ansehen

Level: Beginner

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

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.