Erstellen einer dezentralen Library mit Solidität | Rahul Agarwal | Skillshare

Playback-Geschwindigkeit


1.0x


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

Erstellen einer dezentralen Library mit Solidität

teacher avatar Rahul Agarwal, Flutter Developer & Trainer

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.

      KURSEINFÜHRUNG

      0:53

    • 2.

      Erstellen eines neuen Hardhat Projekts

      7:39

    • 3.

      Alchemie und Metamask

      9:04

    • 4.

      Library erstellen

      6:54

    • 5.

      Funktionalität zum Abrufen von Büchern

      12:45

    • 6.

      Erstellen einer neuen Testdatei

      13:14

    • 7.

      Einheitstest zum Hinzufügen und Abrufen von Büchern

      13:59

    • 8.

      Führen Sie die Tests aus

      5:05

    • 9.

      Verfassen des deployment

      4:54

    • 10.

      Arbeiten am Next js Frontend

      9:46

    • 11.

      Funktionalität zur Konnet MetaMaske

      11:18

    • 12.

      Funktionalität zum Hinzufügen eines Buches

      16:32

    • 13.

      Funktionalität zum Abrufen von Büchern

      9:29

    • 14.

      Erstellen einer Buchkomponente

      18:52

    • 15.

      Funktionalität zur Änderung des Book

      5:10

    • 16.

      Testen der vollständigen Anwendung

      4:40

  • --
  • 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.

48

Teilnehmer:innen

1

Projekt

Über diesen Kurs

Blockchain ist eine Schlüsseltechnologie hinter Web3. Es ist am häufigsten mit der Kryptowährung Bitcoin verbunden und ist die Technologie, die es untermauert. Die Bitcoin-Blockchain ist ein öffentliches is des bitcoin Bitcoin ist aber nicht im Besitz einer einzigen Firma oder Person und wird nicht von einer zentralen Behörde wie einer Zentralbank ausgestellt. Stattdessen wird es dezentralisiert und das Netzwerk wird von einer globalen Gruppe von Personen gepflegt, die spezialisierte Computer ausführen.

In diesem Kurs lernen wir, wie du eine komplette dezentralisierte Persönliche Library von Grund auf erstellen kannst. Wir werden Solidität für den Smart Contract, Hardhat für Test- und Einsatzzwecke verwenden, Ethers js für die Kommunikation mit dem Vertrag, Metamask für die Unterzeichnung der Transaktion, Next js für das Frontend und Alchemy als blockchain verwenden. Am Ende des Kurses verstehen Sie alle Konzepte, die für die Bewerbung für einen developer oder sogar die Erstellung Ihrer eigenen Bewerbung auf der Ethereum-Blockchain erforderlich sind.

Unser Stapel

  • Solidität (Um unseren Smart Contracts zu schreiben)

  • Hardat (Build, Test und deployment für die Bereitstellung)

  • React / Nächste js (So erstellen unser Frontend)

  • Ethers (Web3-Bibliothek für die Interaktion mit der Blockchain und unserem Smart Contract)

  • Alchemie (Ethereum node

Triff deine:n Kursleiter:in

Teacher Profile Image

Rahul Agarwal

Flutter Developer & Trainer

Kursleiter:in

Hello, I'm Rahul. I am skilled in building cross platform application using Flutter. I am freelance developer as well as conduct workshops to share my knowledge with the community.

Vollständiges Profil ansehen

Level: Intermediate

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. KURSEINFÜHRUNG: Blockchain ist die treibende Kraft der nächsten Generation, die auch als Verbbaum bezeichnet wird. Blockchain erfindet die Art und Weise, wie Daten gespeichert und verwaltet werden, neu. Der Webbaum umfasst Dezentralisierung und wird im Besitz seiner Nutzer gebaut und gehört. Da es viele neue Möglichkeiten für Entwickler wie uns in dieser Dominanz gibt. In diesem Kurs lernen wir, wie man eine vollständige dezentrale Promi-Management-Anwendung von Grund auf neu erstellt Wir werden Solidarität für das intelligente Vertragsentwicklungsparadigma für Test- und Bereitstellungsteil durstig uns, mit dem Vertrag zu kommunizieren, MetaMask, um die Transaktion zu unterzeichnen, React JS für die Finanzierung und Alchemie ist, dass Blockchain sie zur Verfügung stellen wird. Am Ende des Kurses werden Sie die Konzepte verstehen, die erforderlich sind, um sich für eine Stelle zu bewerben oder sogar Ihre eigene Bewerbung für die akkadische Blockchain zu erstellen , ohne mehr Zeit zu verschwenden. Melden Sie sich jetzt an und fangen wir an. 2. Erstelle ein neues hardhat: Hallo, willkommen zum allerersten Video des Kurses, in dem wir lernen werden, wie man eine dezentrale Bibliotheksverwaltungsanwendung erstellt . Also verschwende ich Ihre Zeit nicht zu erklären, was Web Three ist, was Dezentralisierung ist und so. Wenn Sie möchten, können Sie auf eigene Faust googeln. Ich gehe einfach statisch zum Kurscurriculum oder zur Kurs-Roadmap. Der Kurs ist also in D7-Schritte unterteilt. Der erste Schritt wird darin bestehen, die Entwicklungsumgebung einzurichten. Dann werden wir einen intelligenten Vertrag erstellen. Dann schreiben wir Unit-Test. Dann werden wir Smart Contract einsetzen. Nach all diesen Tests sind erfolgreich. Dann werden wir ein Framework, React Framework, das als nächste zwei Jahre bekannt ist, verwenden React Framework, das als nächste zwei Jahre bekannt ist , um ein Frontend aufzubauen. Und dann werden wir Ether-Stühle im Front-End verwenden Ether-Stühle im Front-End um mit dem Smart Contract zu interagieren. Und schließlich werden wir die gesamte Anwendung testen , ob alles gut funktioniert oder nicht. Bevor ich vorankomme, möchte ich nur sicherstellen, dass Sie Matter Mask installiert haben und einige wissenschaftliche Testinteressen in Ihrem Konto haben. Ich werde mich nicht wieder mit einrichten. Bitte schauen Sie sich ein Tutorial an und fahren Sie mit dem Kurs fort. Es wird kaum fünf Minuten Tech machen, das war's. Bevor Sie an der Anwendung arbeiten, sollten Sie diesen Tech-Stack zumindest kennen. Offensichtlich verwenden wir eine Titan-Blockchain. Und Solidität ist diese Programmiersprache um intelligente Verträge zu schreiben. Dann verwenden wir Hard-Hat als Bereitstellungstool. Dann MetaMask Wallet. Dann ist Alchemie ein Anbieter von versteckten Knoten. Es sagt Ihnen, dass dies ein Labor ist , um mit dem intelligenten Vertrag zu kommunizieren, dann mit HTML, CSS und schließlich React JS, oder Sie können Next JS sagen. Das war's. Beginnen wir mit der Entwicklungsumgebung. Erstellen Sie zuerst einen Ordner. Name ist Bibliotheksmanagement. Das okay, wenn du willst, kannst du es irgendetwas nennen und dann ein Terminal darin anhängen. Um Hearted zu installieren, müssen Sie zuerst ein NPM-Paket erstellen indem Sie den Befehl und die VM darin ausführen. Warum? Es wird ein leeres NPM-Paket initialisiert. Das war's. Sie können also sehen, dass diese paket.json-Datei da ist. Dann stylen Hardhead. Dieser Befehl ist npm. Installieren, Dash, Dash, Speichern, Tab, Schutzhelm, und drücken Sie die Eingabetaste. Okay. Die Hardhead-Pakete sind die schwierigere Abhängigkeit wird installiert. Um kein Hardhat-Projekt zu erstellen, verwenden wir diesen Befehl , der uns eine minimale Struktur gibt , also NP-Schutzhelm. Drücken Sie dann Enter. Wählen Sie dann das erste aus, das ein B6-Beispielprojekt erstellt, und drücken Sie erneut die Eingabetaste, dann erneut die Eingabetaste und dann die Eingabetaste. Das war's. Jetzt werden nur wenige Ordner und Dateien erstellt. Das Beispielprojekt wird Sie auffordern, hart zu installieren, angeführt von einem voll härteren Terroristen und wenigen anderen Abhängigkeiten , die Hardhead kompatibel mit Test machen , fehlschlagen und es hat Berühmtheit, einfach zu kopieren diese Zeile und füge sie ein und drücke die Eingabetaste. Es wird alle für das Projekt erforderlichen Abhängigkeiten herunterladen . Okay. Lassen Sie Abhängigkeiten, die ich erfolgreich installiert habe. Hängen Sie jetzt einfach den VS-Code Editor und hängen Sie Ihren Projektordner darin an. Dies sind die Dummy-Dateien , die uns Hardhead zur Verfügung stellen. Im nächsten Video werden wir Alchemie- und Meta-Maskenschlüssel in die Bereitstellung der Hardhead-Konfiguration aufnehmen . Danke. 3. Alchemie und Metamask: Hi. Ein Schutzhelm gibt uns also ein paar Ordner und Dateien. Wir werden all diese Schritt für Schritt verstehen. Aber zuerst gehen wir zur hartköpfigen Konfliktpunkt-JS-Datei. Und stellen Sie sicher, dass wir unser Netzwerk darauf hinweisen , das Itanium-Testnetzwerk zu korrelieren. Und damit das funktioniert, brauchen wir eine frühe Itanium-Knoten-URL und eine Wallet-Adresse. Vr verwendet lockig und raubt Stone oder irgendein anderes nicht , weil diese Netzwerke in Alchemy abgeschrieben werden. Also richtig, nicht die beste Wahl wäre , das kaudale Netzwerk zu nutzen. Da ich bereits ein Konto in Alchemy habe, erstelle ich kein neues Konto, sondern gehe einfach zu alchemy.com. Und ich klicke auf Login. Du musst dich selbst registrieren. Es ist sehr einfach. Verbinden Sie einfach Ihr Google-Konto und alles. Nichts Ausgefallenes. Und dann, nachdem Sie ein neues Konto in Alchemie erstellt haben, werden Sie zu diesem Dashboard-Bildschirm weitergeleitet. Klicken Sie hier einfach auf die Schaltfläche „App erstellen“. Und jetzt füllen wir diese Informationen auf. Mein App-Name lautet Bibliotheksverwaltung, Tab. Dann wird die Kette Langeweile haben, aber das Netzwerk wird göttlich sein. Und wie gesagt, wird dies abgeschrieben, abgeschrieben. Es ist also besser, nur ein kaltes Netzwerk zu verwenden und dann auf App erstellen zu klicken. Sie haben also erfolgreich eine App in der Alchemie erstellt. Der nächste Schritt besteht darin, den privaten Schlüssel von MetaMask zu erhalten. Sie können Meta-Maske installieren, indem Sie auf Ihrer Website zu Madame Maskottchen gehen und die Erweiterung für Ihren Browser installieren. Da ich es bereits habe, können Sie das Video einfach anhalten und sich die Einrichtung einer neuen Brieftasche ansehen und wie Sie Testesser in Ihr Konto bringen. Denn um es zum Laufen zu bringen, müssen Sie unbedingt einen Test machen. Ein Test wie dieser. Das ist mein Portemonnaie. Und logge dich einfach ein. Dann siehst du, ich habe so viel auf dem Test. Esser und sorge dafür, dass du albern bist. Sie wählen das Netzwerk mündlich aus den Optionen aus. Um den privaten Schlüssel zu erhalten, müssen Sie dann auf Kontodetails klicken, privaten Schlüssel exportieren und Ihr Passwort eingeben. Das war's. Dann bekommst du deinen privaten Schlüssel. Und das, diese 0 x a d, Dieses Ding ist dein öffentlicher Schlüssel , der momentan nicht benötigt wird, aber zumindest solltest du es wissen. Jetzt müssen Sie ein paar Abhängigkeiten installieren , um diese Schlüssel zu schreiben. Weil wir Alchemie-URL und MetaMask Private Key in unsere Hardhead-Konfiguration schreiben Alchemie-URL und MetaMask Private Key werden. Und dafür werden wir die Abhängigkeit namens dot ENV installieren und verwenden da es nicht empfohlen wird, diese sensiblen Informationen direkt in unserem Code zu übergeben . Hängen Sie also einfach Ihr Terminal an und schreiben Sie npm install dot ENV. Aber auch ich installiere von Penn Zeplin hängt ein Flugzeug an, heißt eine Bibliothek von modularen, wiederverwendbaren, intelligenten Verträgen, die solide zurückkommen. Es ist also einfach vorgeschriebener Code , den Sie direkt verwenden können. Sonst nichts. Ich werde einfach schreiben npm install a Direct Append Zeplin Slash Contracts und dann Raum D, O, D E und V dot ENV. Dies ist eine andere Abhängigkeit. Das bedeutet, dass es zwei Abhängigkeiten gibt. Und dann drücken wir einfach die Eingabetaste. Also ist es fertig. Jetzt. Benutze zuerst diesen Punkt ENV. Ich erstelle eine neue Datei im Stammverzeichnis unter dem Namen dot ENV. Das ist so. Sie können sehen, dass es sich im Stammverzeichnis befindet. Und dann werde ich hier einen sehr gut erstellen. Oder Sie können etwas sagen , das den Wert speichert. Alchemie-URL ist gleich dieser, und lass g ist gleich diesem. Denken Sie daran, dass es noch nichts gibt, was Kohlebergwerk noch direkt ist . Ich schreibe es. Um nun die Alchemie-URL zu erhalten, gehen Sie einfach zu Ihrer App und klicken Sie auf Ansichtstaste. Dann sehen Sie, dass dieses HTTP-Cookie einfach kopiert wird und es so in Ihre Alchemie-URL einfügen. Und um den privaten Schlüssel der Brieftasche zu erhalten , fügen Sie die Methodenmaske an. Dann hier die Kontodaten, exportieren Sie den privaten Schlüssel und das gültige Passwort von Dario und bestätigen Sie. Kopieren Sie diesen Schlüssel und fügen Sie ihn hier in den violetten privaten Schlüssel ein. Das war's. Speichern Sie es und schließen Sie es. Jetzt wollen wir diesen Schlüssel in unserer Hardhead-Konfiguration. Dafür wurde gerade eine hartköpfige Konfigurationsdatei geöffnet. Und innerhalb der Module oder im Export, oder? Netzwerke, dann geschweifte Klammern. Dann verwende ich, wie der Netzwerkname, Girly. Dann wieder geschweifte Klammern. Dann ist eine Eigenschaft URL, die wir diese Punkt-ENV-Dateidaten verwenden. Wir müssen Prozesspunkt-ENV-Alchemie-URL schreiben. Und damit es ganz oben funktioniert, müssen wir das erste Paket des Punkt-ENV-Pakets benötigen. Das ist Dot ENV Dot Config wie diese. Auf diese Weise können wir auf die Punkt-ENV-Datei zugreifen. Und dann wird die URL angegeben. Und den zweiten Parameter müssen wir diese Konten senden. Es ist in der NA, wir müssen einfach Prozess Punkt ENV, Dot Wallet, Private Key schreiben . Das war's. Das war's für die Hardhead-Dosenfertigation. Jetzt weist unser Projekt auf das Alchemie-Korrelierungs-Schreibtisch-Netzwerk hin. Im nächsten Video werden wir an der Vertragserstellung arbeiten. Danke. 4. Erstellen von Library: Jetzt ist es an der Zeit, an unserem Smart Contract zu arbeiten. Erstellen Sie eine neue Datei im Ordner „ Contracts“ und nennen Sie sie Library dot Soul. Dann müssen wir zuerst einen Vertrag tun, Delta-Lizenz und Umleitung von solidem, solidem DVR unter Verwendung des richtigen Vertrags und des Vertragsnamens. Wir geben dem Vertrag mit der Bezeichnung Bibliothek. Jetzt bin ich Wesley Library wird Bücher haben. Das erste, was wir tun werden, ist eine Buchstruktur zu erstellen. Das heißt, ein Buch wird einige Ideen haben, solchen Namen. Schreib einfach ein Buch. Dann. Es wird einen Buchausweis haben. Dann der Buchname. Dann ja, veröffentliche. Wer ist dann der Arthur? Und schließlich, ob wir dieses Buch fertig gelesen haben oder nicht, denn dieses Konzept wird darin bestehen, dass wir eine eigene Bibliothek haben werden , in der wir schreiben können. Dieses Buch ist noch zu lesen. Ich habe dieses Buch schon so gelesen. Die Struktur ist also fertig. Jetzt erstelle ich eine Variable von Buchlisten, die eine Liste des Buchtyps sein wird. Das heißt, es wird die Buchstruktur enthalten. Es wird ein Privat sein und ich nenne es einfach Sänger. Dann ordnen wir diese Buch-ID der Wallet-Adresse des Benutzers zu , der dieses Buch hinzufügt. Damit wir später das Buch der Benutzer ohne Probleme direkt abrufen können . Also schreibe ich einfach Mapping. Dann werden Sie am Ende 56 der Adresse zugeordnet, und es wird einfach an den Eigentümer gebucht. Auch hier sage ich, dass es sich um eine Zuordnung der Buch-ID zur Wallet-Adresse des Besitzers handelt. Das war's. Dann wird die erste Funktion, die wir erstellen, darin, ein Buch hinzuzufügen. Also füge einfach Masse hinzu. Dann wird diese Funktion eine externe Funktion sein. Es wird sich von außen erinnern. Und es akzeptiert einige Werte wie String mammary name you in 16 Jahren. Dann String Brustarterie. Dann ein boolescher Wert von fertig. Diese Dinge wird es akzeptieren. Um nun ein Buch hinzuzufügen, müssen wir eine Buch-ID haben, die eindeutig sein sollte. Der Dienst verwendet derzeit einfach keine externe Abhängigkeit. Ich gebe der ID einfach die Länge unserer Broschüren. Das ist das hier. Da es offensichtlich nach dem Hinzufügen eines Buches immer wieder inkrementiert wird. Das wird also immer einzigartig sein. Es nimmt an, das erste Ding, wir fangen bei 0 an, dann wird die Buch-ID 0 sein, dann eins, dann zwei wie diese. Dann werden wir in der Buchliste den Wert der Struktur erhöhen. Das heißt, das Strukturbuch wird es vorantreiben. Und das erste, was es braucht, ist ein Buchausweis. Dann nenne das hier. Dann ist es so fertig. Also das werden wir drin drängen. So wird die Länge automatisch von 0 auf eins erhöht. Dann mache ich im Mapping auch die Zuordnung des Buches. Id gehört so zum Absender der Nachricht. Dieses Buch gehört also dazu, demjenigen, der diese Funktion aufruft. Und am Ende möchte ich eine Veranstaltung ausstrahlen. Die Veranstaltung wird ein Buch hinzugefügt. Einfach. Es wird nach Empfänger, Empfänger und Buch-ID gefragt . Das wird also einfach in dieser Blockchain eingeloggt. Irgendwann können wir es lesen, sind Informationen. Sieh es einfach als Login-Funktion an. Buchveranstaltung hinzufügen. Der Empfänger Absender der Nachricht und die Buch-ID ist die Buch-ID. Ich hoffe also, Sie haben verstanden, dass dies ein sehr grundlegender Code ist. Wenn Sie aus einer anderen Programmiersprache kommen, verstehen Sie das Konzept. Offensichtlich sind diese Dinge etwas Neues. Wenn Sie immer noch Zweifel haben, können Sie einfach über Mapping und Ereignisse lesen. Und im nächsten Video werden wir an anderen Funktionalitäten in unserem Smart Contract arbeiten . Danke. 5. Funktionalität zum Abholen von Büchern: Lassen Sie uns nun an der Funktionalität arbeiten, um alle Bücher dieses bestimmten Benutzers zu erhalten. Also würde ich es nennen, einfach eine Buchliste holen. Es wird eine private Funktion sein. Ich sage dir warum. Es gibt Ihnen nur die Information, dass ich das Schlüsselwort view verwende, und es wird dieses Zeug-Buch zurückgeben, das so ist. Vielleicht denken Sie darüber nach, warum das privat ist, weil ich nur Argumente wie Boolean beendet übergeben möchte . Das heißt, ob wir danach fragen, ob wir nach den Büchern fragen, die fertig sind oder die wir nicht gelesen haben. Mit dieser einen Funktion können wir also zwei Funktionalitäten aufrufen oder implementieren. Fangen wir an zu arbeiten. Du wirst alles verstehen. Okay? Funktion, die es falsch buchstabiert. Okay? Jetzt würde ich als erstes eine Variable erstellen, sie benennen. Dann wird es eine neue Liste von Büchern geben. Und dieses Land wäre Sänger, dunkles Land wie dieses. Okay, jetzt werden wir zuerst zählen, wie viele Bücher dieser Benutzer hat. Denn in dieser Buchliste wird es viele Bücher verschiedener, unterschiedlicher Benutzer geben. Das erste, was wir durch diese Liste iterieren oder durchlaufen müssen, um den Besitzer von zu finden. Definieren Sie also die Bücher, die sich im Besitz dieses Benutzers befinden. Steht dafür. Erstellen Sie einfach eine for-Schleife. Es wird sein, wenn ich gleich 0 bin. Ich bin weniger als Buchliste, Buchliste, Land I plus plus, so. Dann müssen wir zuerst prüfen, ob Buchbesitzer, diese Buch-ID zu diesem Nachrichtenpunkt-Absender gehört oder nicht. Das ist es. Da wir wissen, beginnt die Buch-ID bei 0. Und deshalb haben wir das ab 0 angefangen. Und wir haben gefragt, dass das Mapping mit dieser Adresse vorhanden ist, also können wir einfach prüfen, ob es zu diesem Absender gehört. Und eine andere Bedingung, die wir überprüfen werden, ist die Buchliste. I. Fertig gleich, gleich fertig. So. Das heißt einfach, was bedeutet, dass dieser Buchlistenpunkt fertig ist. Das ist diese Eigenschaft. Ob es der Variablen entspricht, die wir senden, ist dieser boolesche Wert, ob sie gleich ist oder nicht. Wenn es da ist, fügen Sie in dieser temporären Variablen einfach an dieser Zählerposition diesen Wert ein, einfach an dieser Zählerposition diesen Wert ein, der Buchwert ist. Dann inkrementiere diesen Zähler so. Okay? Jetzt haben wir zweifellos alle Bücher, die dem Benutzer gehören , in dieser Variablen, aber diese Länge ist größer definiert, die gesamte Buchliste. Es könnte ein 100 sein. Und nur fünf Bücher werden da sein. Um nur etwas Speicher und Speicherplatz zu sparen. Es wird eine andere Variable erstellen. Das heißt, all dies sind temporäre Variablen , die das Endergebnis sind. Und das wird es wieder sein. Ein neuer Bereich von Büchern, aber diesmal zählte die Länge dieses tatsächliche Land. Und ich werde die for-Schleife verwenden, um einfach alle Daten aus diesen beiden verschiedenen Daten abzurufen. Jetzt wieder benutzt new int I ist gleich 0. Ich widerspreche weniger als ich plus plus. Hier einfach im Ergebnis-Array. Kopieren Sie alles aus diesem temporären Array. Das war's. Es ist einfach zu kopieren. Und schließlich kehrte er zurück. Das ist so. Also noch einmal möchte ich zuerst erklären, dies eine private Funktion ist, die nur ansieht. Es macht nichts in der Blockchain. In dieser Funktion senden wir einen Parameter namens finished , also ob wahr oder falsch. Also schicken wir es. Dann. Als erstes haben wir eine Variable mit dem Namen temporär erstellt . Es ist ein leeres Array. Damit ist die Größe des Arrays, die der Größe des Booklets entspricht, stabil. Angenommen, es könnte 500 sein. Dann haben wir diesen Zähler erstellt, der bei 0 beginnt. Und denk einfach drüber nach. Wie viele Bücher gehören dem Benutzer? Wenn es im Besitz ist und es wird implementiert. Und wie ich weiß, beginne es bei 0, deshalb schicke ich es in der temporären Zeit einfach an die 0 Position. Oder wie wir einen Wert darin senden werden. Wenn du willst, kannst du auch das Temporäre zurückgeben, aber die Länge ist sehr viel Schwein. Um es zu entfernen, habe ich gerade ein neues Array mit dieser Zählerlänge erstellt ein neues Array mit dieser Zählerlänge , also zum Beispiel zehn und Stunden. Und kopieren Sie einfach alles aus temporären zwei Tagen, Ergebnis, Variable und geben Sie das Ergebnis zurück. Nun, der Zweck, es privat zu machen bestand darin, diese beiden zu verwenden, weil wir erstellen, um zu funktionieren. Zuerst wird der Funktionsname beendet. Bücher. externe Ansicht gibt den Buchspeicher zurück. Und es wird einfach diese Funktion zurückgeben, die Buchliste mit dem fertigen Wert erhält , auf „true“. Und eine andere Funktion, die wir erstellen und benennen werden, fertig werden. Bücher. externe Ansicht gibt ein Array von Bücherstruktur zurück. Und es wird dasselbe zurückgeben, das heißt, Buchliste abrufen, aber definitiv Wert mit false. Mit dieser einen Funktion können wir also zwei weitere Funktionen schreiben oder wir müssen Wunsch schreiben, wir müssen möglicherweise getrennt, getrennt schreiben. Es wird wieder sein, dass der Code wiederholt wird und alles. Es ist also sehr einfach. Sie werden es Schritt für Schritt verstehen oder pausieren Sie bitte das Video und versuchen Sie, die Logik dahinter zu verstehen. Nun, die letzte Funktionalität, die wir benötigen, besteht darin , diesen fertigen Wert von false festzulegen. Das heißt, von wahr zu falsch und alles. Denn wenn sie das Buch lesen verwenden, möchte er es vielleicht aktualisieren. Also schreibe einfach Funktion. Bestraft. Dann wird es eine externe Funktion sein. Jetzt fragt diese Funktion nach dieser Buch-ID und einem booleschen Wert. Fertig. Als erstes prüfen wir, ob der Benutzer Eigentümer dieses Buches ist oder nicht, da er nur seine eigenen Bücher lesen oder sehen kann. Gehört diese Buch-ID zum Absender des Nachrichtenpunkts? Dieses Ding wird so hier sein. Dann buchen Sie einfach die Liste. Buch-ID, Punkt beendet wird dieser Wert sein. Und danach möchte ich wieder eine Veranstaltung machen. Genau wie das Ereignisset beendet ist, wird es nach Buch-ID gefragt. Und der boolesche Wert. Hier. Lasst uns das Set fertig ausstrahlen. Und wir senden diese Buch-ID und den fertigen Wert. Das war's also. Für unsere Bibliothek Smart Contract. Wir haben alles geschrieben. Im nächsten Video werden wir einen Unit-Test schreiben , um sicherzustellen, dass alles ordnungsgemäß funktioniert. Danke. 6. Erstellen einer neuen Testdatei: Hi, willkommen zurück. Da Blockchain unveränderlich ist, wir vor der Bereitstellung unseres intelligenten Vertrags Komponententests schreiben, müssen wir vor der Bereitstellung unseres intelligenten Vertrags Komponententests schreiben, um sicherzustellen, dass alle unsere Funktionen und Variablen in unseren Verträgen ordnungsgemäß funktionieren. Und die richtigen Werte zurückgeben. Wir werden Mocha Chai für diesen Zweck verwenden. also in diesem Testordner Erstellen Sie also in diesem Testordner eine neue Datei und nennen Sie sie Library Dot Test, sorry, Library Dot js. Nun, lasst uns richtig, das Notwendige sind Importe und all die Bibliothek, die wir verwenden werden, ist Chai, das ist so, wir müssen schreiben. Und das nächste, was wir brauchen werden, ist Esser gleich sind , dass es notwendig ist. Wir haben diese Abhängigkeiten , als wir ein neues Hardhead-Projekt erstellt haben. Also lasst uns unseren Schreibtisch erstellen. Und wir werden einen Bibliotheksvertrag schreiben. Dann drin. Ich hoffe, du weißt, wie man Test mit Hard Hat schreibt. Bevor wir also die Funktionalitäten und alle ausführen, müssen wir einige Daten oder einige Variablen schreiben. Wie vor allem sollten wir auf jeden Fall unseren Bibliotheksvertrag haben und so weiter. Schreiben wir diese Variablen. Dann der Eigentümer, der den Vertrag bereitstellt. Diese zweite Bibliothek, die Kleinbuchstaben ist, wird wie ein Objekt und eine Überprüfung unseres Vertrags sein. Und das wird eine Fabrik sein, kann man sagen. Dann müssen wir zunächst einige Dummy-Daten zu unserer Bibliothek hinzufügen. Also werden wir einfach schreiben, dass die Anzahl der fertigen Buch gleich fünf ist. Nur Dummy-Daten. Und zweitrangig haben wir num, fertiges Buch, Rechtschreibfehler. Wenn Nischenbuch gleich drei ist. Dann lasst uns die unvollendete Buchliste und eine weitere fertige Buchliste fertiggestellt haben. Mark II verwendet also Hooks, um die Struktur zu organisieren. Dieses Desk Cries Keyword wird verwendet, um alle unsere Tests zu gruppieren und wir können als Nest MLL gehen. Wir können es verschachteln. Das heißt, wir können diesen Graphen wieder schreiben. Auch hier können wir so machen, damit wir alles verschachteln können. Dann gibt es IT-Koch, es sind die Testfälle und alles , was wir später verwenden werden. Dann haben wir vor h, Es ist ein Haken. Das heißt, wir haben das. Wir haben das auch vor jedem Haken. Es ist also ein Hook, der vor dem ganzen Schreiber läuft und er funktioniert. In einfachen Worten, was auch immer Sie vorher in diesem schreiben, wird ausgeführt, wenn unsere Testfälle auf vier separaten Schreibtisch basieren. Okay, jetzt lasst uns vorwärts gehen. Fangen wir mit vor jedem Haken an. Darin gewinnen sie eine sinc-Funktion. Jetzt werden wir dieses Library-Schlüsselwort verwenden, also die Bibliotheksvariable. Und wir werden einfach schreiben, warten Ether, Dot Get, Vertragsfabrik. Und unser Vertragsname ist das. Ausarbeitung. Okay, dann werden wir das haben. Lassen Sie die Bibliothek, auf die warten wird , den Bibliothekspunkt bereitstellen. Warten Sie noch einmal darauf. Wir müssen nicht direkt schreiben. Wir können jetzt den Unterzeichner so kriegen. Der Eigentümer ist gleich erwarten. Beginne. Hol Unterzeichner wie diese. Okay. Genau richtig, ich überprüfe es nur. Ich hab alles. Alles ist da. Jetzt. Dies ist die Struktur. Das heißt, es wird eine Liste von Werten haben. Der erste Wert wird in diese Variable fließen. Dies ist, dies ist die Bedeutung dieser Aussage. Lassen Sie uns nun diesen unmöblierten Sänger zu dieser leeren Liste und dem freundlichsten Ort dieser leeren Liste initialisieren . Was wir nun tun werden, ist, dass wir fünf Dummy-Daten in diese unvollendete Buchliste und drei Dummy-Daten in diese fertige Buchliste einfügen. Dafür verwende ich eine for-Schleife, die weit führend ist. Ich bin gleich 0. Ich bin weniger als die Anzahl des unvollendeten Buches I plus, plus. So erstelle ich einfach ein Buchobjekt. Objekt oder du kannst so sagen. Dann wird es einen Namen haben. Es wird Jahr haben. Es wird haben, wird einen Wert von fertig haben. Das wird falsch sein. Holen Sie sich jetzt zufällige Namenswerte hier in Arthur, da es sich durchlaufen wird. Ich erstelle hier eine grundlegende Zufallsfunktion. So wie das. Funktion. Erhalte eine zufällige Ganzzahl. Jetzt setze ich einfach die minimalen und maximalen Ziffern und alles und gebe einfach Math-Punktboden zurück. Dann nicht zufällig. Multiplizieren Sie mit maximalem Minus Minimum. So wie das. Dies ist eine sehr grundlegende Taubfunktion. Wenn Sie komplexere Zahlen verwenden , wenn Sie komplexere Zahlen wünschen, sollten Sie einige andere Bibliotheken verwenden. Aber im Moment wird das diesen Job machen. Dies ist nur ein Testzweck. Ich bekomme einfach eine zufällige Ganzzahl. Ich brauche, ist es von eins bis 10 Tausend? Und ich schaffe es einfach, so eine Zeichenfolge zu machen. Wieder für das Jahr. Es wird alles zwischen 1800 sein, annehmen bis 2022. Dann wäre unsere dritte nur diese Zufallszahl. Denken Sie daran, das ist nur zum Testen. Ich möchte ein paar Daten auf dieser Seite haben. Jetzt, nach diesem Buchobjekt, schreibe ich einfach „Wait“, „ Bibliothek“, „Punkt“, füge Buch und Buch hinzu. Buch, Punktname, Buch, Punktohr, Haken Unser drittes Buch ist fertig. Und dann werde ich diese Informationen ausführlich weitergeben , diese unvollendete Liste. Das ist dieser Buchwert wie dieser. Also einfach, nochmal, bevor h vor jedem definierten Test läuft, definieren wir hier die Summe für den Komponententest. Und vor jedem Test wird dieser Code ausgeführt. Hier stellen wir zuerst unseren Vertrag bereit und holen dann die Instanz davon und fügen dann etwas Dummy-Box hinzu. In ähnlicher Weise müssen wir auch Daten für dieses fertige Buch hinzufügen . Nach diesem unvollendeten Buch werden wir wieder etwas dasselbe schreiben. Was ich also machen werde, ist, dass ich es kopiere und hier einfüge. Dann werde ich zuerst diese Anzahl fertiggestellten Buches besorgen. Hier. Ich bin gleich 0 weniger als die Anzahl des fertigen Buches. Andererseits werden dies die Bücher sein und das hier wird der Definitionswert wahr sein. Dann schreibe ich Wait Library Dot, füge Buch hinzu, Buchpunktnamen. Dann werde ich diese Informationen hier in diese fertige Buchliste schieben . Das war's. Endlich, jetzt sind wir damit vor jedem Hook fertig. Im nächsten Video schreiben wir den Unit-Test, um ein Buch hinzuzufügen und alle Bücher zu erhalten. Danke. 7. Einheitstest zum Hinzufügen und Abholen von Büchern: Lassen Sie uns jetzt unseren ersten Test schreiben, um ein Buch hinzuzufügen. Danach vor jeder Klausel. Lassen Sie uns noch einmal schreiben, die Gruppe beschreiben und Buch hinzufügen. Dies wird eine Funktion sein. Dann benutze es drin. Das ist das kommt auch aus der Bibliothek. Dies sind die Testfälle. Der erste Testfall wird, wir sollten uns treffen und eine Veranstaltung buchen. Schreib es einfach auf. Wenn Sie es nicht verstehen, Sie am Ende des Tests definitiv werden Sie am Ende des Tests definitiv verstehen, was diese Linie bedeutet. Lassen Sie uns noch einmal ein zufälliges Buch erstellen. Dafür. Copy, dieses Buchobjekt. Hier. Alles ist in Ordnung. schreibe einfach await x wieder rein, sofort wieder hinein. Bibliothekspunkt, hinzufügen, buchen. Dann schreib diese Dinge hinein. Kopieren Sie einfach und fügen Sie es ein, wenn Sie möchten. Dann emittiert dies einen Wert, der emittiert werden soll. Dann unsere Bibliotheksinstanz, das ist eine Vertragsinstanz. Dass es dann ein Ereignis namens Buch hinzufügen mit Argumenten oder NOR Adresse emittiert mit Argumenten . Dann Anzahl und fertiges Buch plus Nummer des fertigen Buches wie dieses. Was meine ich mit diesem Code, da wir am Ende unserer Werbebuchfunktion in diesem Bibliotheksvertrag dies aussenden, oder? Diese Veranstaltung ist also das, was Empfänger ist , also wer ist der Besitzer des Buches. Und dieser Buchausweis. Und da die Buch-ID die Länge der Buchliste ist. Und in unserem, vor jedem Buch, haben wir bereits diese Anzahl von Büchern, die 53 sind, in die Liste aufgenommen. Diese Zitrone fängt bei 0 an. Mit einfachen Worten, was ich meine ist, dass wir bereits eine Aufgabe haben, die diese Dummy-Aufgabe in dieser Liste ist. Und dies wird die neun Aufgabe sein, die wir sind, das sind neun Bücher, die wir hinzufügen, die eine ID Acht haben wird. Dies wird einen Index acht haben , da der Index in der E-Mail-Liste bei 0 beginnt. Dieses Buch wird also eine ID Acht haben. Das war's. So. Dieses Buch wird eine ID Acht haben. Wir werden nur prüfen , ob die Veranstaltung diese Informationen emittiert oder nicht. Das war's. Und um die Gleichheitsprüfung durchzuführen oder erwarteten Ergebnisse mit dem tatsächlichen Ergebnis zu vergleichen , können wir Chai verwenden, was uns drei Behauptungen gibt, das heißt, dass es auch ein Drittel gibt und es gibt sollte auch, aber wir werden nur erwarten. Jetzt. Dies fügt hinzu, dass ein Buchtest abgeschlossen ist. Danach werden wir einen weiteren Komponententest schreiben, bei dem Bücher gekauft werden sollen. Lass es uns schreiben. Es wird wieder eine Funktion sein. Im ersten Testfall sollten wir wirklich sollten wir die richtige Anzahl zurückgeben , die korrekt ist. Unvollendete Bücher. Es wird eine sinc-Funktion geben. Lasst uns jetzt die Bücher aus unserem Vertrag holen. Das sind Bücher von Chained. Diese Blockchain wird ein Library-Instanzpunkt sein. Holen Sie sich ein unfertiges Buch, das hier ist. Hol dir unvollendete Bücher wie diese. Was wir dann erwarten, ist, dass Bücher aus Kettenpunktlänge zuerst der Anzahl unvollendeter Bücher entsprechen sollten . Und was wir dann tun werden ist, dass wir auch überprüfen werden, dass Bücher in diesem Array den Büchern in dieser Buchliste ihres Vertrags entsprechen . Dafür müssen wir eine Funktion erstellen, die Bücher verifiziert und einfach aufschreibt. Der Code, den ich gerade schreibe. Die erste Funktion wird ein einzelnes Buch überprüfen, okay? Es wird Buchkette und Buch brauchen. Wir werden also erwarten, dass der Buchpunktname gleich dem Blockchain-Punktnamen ist. Dann werden wir noch eine andere Erwartung haben. Buch. Punkt ir Punkt zwei String ist gleich Blockchain-Punkt, Punkt zu String. Dann erwarten wir ein Buch. Unser dritter sollte gleich sein wie n gleich dem Blockchain-Punkt Arthur. Und jetzt haben wir eine andere Funktion, überprüfen Sie die Buchliste. Es werden also Bücher aus der Kette- und Buchliste sein. Erwarten wir zuerst Bücher von Chain. Die Länge sollte nicht gleich sein, sie ist nicht gleich. Es ist nicht gleich 0. Dann wird das zweite Mal erwartet, dass die Kettenlänge der Buchliste Kettenlänge ist Punktlänge der Buchliste ist. Da wir dann viele Bücher haben, das ist auch in diesem Bereich und in diesem Bereich werden wir viele Bücher haben. Also müssen wir jedes Buch durchlaufen und dann nachsehen. Also haben wir, wir werden eine Balkenschleife haben. Dann. Es beginnt bei I gleich 0, ich bin weniger als Buchliste Punktlänge I plus plus. Also schreibe einfach const. Buchkette ist gleich Büchern aus der Kette. Ich nehme an, 0 Index zuerst Index wie diesen. Dann wird das Buch eine Buchliste sein, die hier ist, das kein Test ist. Und dann werden wir dieses überprüfbare verwenden, dass dies ein einzelnes Buch überprüft. In diesem speziellen Buch werden wir diesen Namen überprüfen oder ob sowohl der Name als auch der Autor, Eric Color, in der Blockchain und dem Buch nicht so sind. Wir vergleichen also einfach Bücher, die in diesem Vertrag gespeichert sind , und Bücher die in der lokalen Variablen dieses Tests gespeichert sind. Das war's. Also nochmal, geh hier runter. Was ich diese Verifikationsbuchliste schreiben werde. Dann schicke ich einfach Bücher von der Kette. Und dann unvollendete Buchliste. Also sollte es uns auf jeden Fall eine unvollendete Buchliste aus dieser Kette geben . Und dann unvollendete Buchlisten von hier aus, die in diesem Test enthalten sind. Und in ähnlicher Weise werden wir eine andere Bedingung haben , um die richtige Anzahl der fertigen Bücher zu erhalten. Hier. Damit werden wir das Buch fertigstellen, Bücher. Dann sind Bücher von Jane gleich der Anzahl der fertiggestellten. Dies werden fertige Bücher gleich sein. Und dann überprüfe Booklets, das sind Bücher von Jane. Und diese fertigen Buchlisten, ob es gleich ist oder nicht. Das war's also. Wir haben erfolgreich einen Unit-Test erstellt, um ein Buch hinzuzufügen und sogar unsere Bücher abzurufen. Es holt Bücher, die unvollendet sind, und holt Bücher ab, die fertig sind. Das war's für dieses Video. Wir sehen uns in der nächsten Sitzung. Danke. 8. Führe die Tests durch.: In diesem Video werden wir einfach unseren letzten Testfall schreiben und dann unseren gesamten Test ausführen und sehen, ob es so ist, ob er richtig funktioniert oder nicht. Schließlich wird der Test darin bestehen, ein Buch fertig zu stellen, das ist ein unvollendetes Buch. Lasst es uns auf „Fertig“ ändern. Also lasst uns das nochmal mögen, dieses Grau. Stellen Sie dann die fertige Funktion ein. diesem Testfall sollten wir wirklich ein fertiges Ereignis einstellen. Dann schreibe unsere Funktion. Angenommen, lassen Sie uns diese Buch-ID als 0 nehmen. Das ist das erste Buch. Dann warf ich einen Blick. Buch. Fertig ist gleich wahr. Dann schreibe einfach „warten“, erwarte. Dann beendete Bibliothekspunktsatz die Funktion. Wir schicken den Buchausweis. Und das ist die Dezimalzahl , welche Gene zutreffen. Dann wird es emittieren. Es emittiert eine Funktion oder ein Ereignis, das als set bezeichnet wird. Kapitalisten wurden mit Argumenten, Argumenten, Buch-ID und einem Wert abgeschlossen , der wahr ist. Wenn wir dieses Set also hier als fertig bezeichnen, können Sie sehen, dass es ein Ereignis ausstrahlt , das die Buch-ID und einen fertigen Booleschen Wert hat. Das war's. Davon sprechen wir hier. Wir werden prüfen, ob es sich um eine Besprechung handelt oder nicht. Jetzt ist es soweit. Wir führen unseren Test durch. Stellen Sie sicher, dass Sie alle Ihre Dateien speichern. dann in Ihrem Projektverzeichnis einfach Ihr Terminal auf und rechts und px, Hardhat, testen Sie und drücken Sie die Eingabetaste. Denken Sie daran, dass Sie nach Abschluss des Hinzufügens oder nach dem Beheben dieses Fehlers jemals einen Fehler erhalten , verwenden Sie NP x hardhead clean und führen Sie den Test dann erneut aus. Das wird diesen Test erneut ausführen. Unser Bibliotheksvertrag hasst einige Probleme aus. Du siehst es. Okay. Lasst uns nachsehen. Wir haben ein paar Probleme. Ich melde mich mit einer Lösung bei dir. Also habe ich die Lösung bekommen. Die Fehler, die ich gemacht habe, waren der erste Fehler , das heißt, in der vierten Zeile sollte ich diesen Schutzhelm haben, keine Testbibliothek. Diese Briefe sollten aus der Howard Head Library stammen. Und ein zweiter Fehler war, dass diese Erwartung aus der Kinderbibliothek kommen sollte, aber es sollte kein Kapital sein, es sollte Kleinbuchstabe sein, der CHA ist, klein. Lasst es uns retten. Und wieder besorge ich mir ein neues Terminal. Ich werde lesen und px. Ich hatte sauber gehabt. Dann füge ich hinzu, dass NP x Test hatte. Mal sehen. Jetzt funktioniert alles richtig oder nicht. Schließlich können Sie sehen, dass alle Testfälle angezeigt werden, okay, das bedeutet, dass wir bereit sind zu gehen. Im nächsten Modul werden wir unseren Smart Contract in die Blockchain hochladen . Danke. 9. Verfassen des deployment: Hi, willkommen zurück. In diesem Video schreiben wir diese Bereitstellungsskripte für unseren intelligenten Vertrag. Gehen Sie einfach in den Script-Ordner und erstellen Sie eine neue Datei mit dem Namen deploy dot js. Jetzt fangen wir an, daran zu arbeiten. Benötigen wir das Ethers-Paket von der Hardhead-Abhängigkeit. Schreiben Sie jetzt einfach diesen Code, der für den Bereitstellungszweck benötigt wird. Zuallererst werden wir eine Vertragsfabrik schaffen. Und ich erwarte, dass Esser eine Vertragsfabrik bekommen. Name ist Bibliothek. Erstellen Sie dann eine Instanz, die Kontrakt für Trade Dot ist. Bereitstellen. Ein Gewichtsvertrag wurde eingesetzt. Wir werden nur warten, bis sicherstellen, dass der Vertrag eingesetzt wird. Und nach Tag. Danach werden wir die Protokolldow-Vertragsadresse konsolen, was sehr wichtig ist. Wir werden diese Vertragsanschrift später im Frontend verwenden. Schreiben Sie einfach eine Vertragsanschrift. Und dann schreiben wir eine andere Funktion. Um die obige Funktion so auszuführen. Versuchen Sie es, Block zu fangen. Wir meinen dann verarbeite den Ausgang 0, wenn alles in Ordnung ist. Und wenn wir etwas Adder haben, dann lesen Sie Konsolenpunktprotokoll, vielleicht protokollierter Fehler. Und wir werden Prozess-Exit schreiben. Eins. Wir können bearbeiten ist Exit Button Adder. Und schließlich werden wir hier Main schreiben und laufen, sagen wir mal. Dies ist also das Bereitstellungsskript. Heb einfach alles auf. Um dann einfach angehängtes Terminal im Stammordner bereitzustellen. Und tippe einfach NP x ein. Heart hatte Skripte ausgeführt. Stellen Sie dot js bereit. Netzwerk ist göttlich und drücke Enter. Mal sehen, ob alles in Ordnung ist, dann bekommen wir unsere Vertragsanschrift. Wie unser Vertrag erfolgreich eingesetzt wurde. Kopieren Sie einfach diese Adresse und holen Sie sich einfach ein Komma, das heißt Command. Und speichern Sie es einfach, damit wir diese Informationen nicht verlieren. Wenn Sie möchten, können Sie den Vertrag auch überprüfen. Informationen in. Göttlich. Ethers können einfach auf diese Website gehen und einfach Ihre Vertragsadresse einfügen und einfach suchen. Sehen Sie, wir haben diesen hochgeladenen Vertrag vor 52 Sekunden bereitgestellt. Sie können einfach überprüfen, dass ja, unser Vertrag erfolgreich eingesetzt wurde , kein Problem darin. Das war's also für dieses Video. Im nächsten Modul werden wir am Frontend arbeiten und dann mit unserem diploiden Vertrag interagieren. Danke. 10. Arbeiten an Next js Frontend: Hi. In diesem Modul werden wir am Frontend unserer Anwendung arbeiten und wir werden das nächste JS verwenden, das ein Bereich noch Framework ist. jetzt im Projektordner Schreiben Sie jetzt im Projektordner einfach den Befehl npm. Erstellen Sie, nächste App. Dann werden wir auch die Lebenden dort benutzen. Schreibe einfach tailwind css und ich nenne es Client und drücke die Eingabetaste. Es wird eine grundlegende nächste JS-Anwendung erstellen. Okay, also unsere nächste Stuhl-Anwendung erfolgreich erstellt. Um mit unserem bereitgestellten Smart Contract interagieren zu können, benötigen wir zwei Dinge. Vertragsanschrift und das ABI. Um den ABI zu erhalten, kopieren Sie einfach die Bibliothekspunkt-JSON-Datei, die sich in Artefakten und Contracts Ordner und dann in der Bibliothek befindet. Dann haben wir auch diese Bibliothekspunkt-JSON-Datei. Dieser Kunde. Und dieser Client erstellt einen neuen Ordner namens ABI. Neuer Ordner hier, ABI. Und fügen Sie dann in diesen Ordner einfach die JSON-Datei der Bibliothekspunkte ein. Das heißt, dies ist der ABI, der für die Aufgabe, also für diese Vertragsanschrift, benötigt wird. Erstellen Sie einfach eine neue Datei namens config dot js im Clientverzeichnis. Direkt darin erstellen Sie eine neue Datei namens config dot js. Und innen schreibe einfach Export, Const Task. Oder Sie können einfach sagen, dass Sie keinen Vertrag abschließen, Sie können einfach einen Vertrag schreiben. Die Adresse ist gleich und kopieren Sie diese Adresse direkt hier und speichern Sie sie. Wir werden das später benutzen. Wenn du willst, kannst du es einfach entfernen. Die Adresse hier. Das war's. Jetzt werden wir auch einige Abhängigkeiten für unser nächstes JS-Projekt installieren müssen . Gehen Sie also einfach in das Clientverzeichnis im Terminal, es ist CD-Client. Und schreibe einfach npm, installiere Esser, tippe gestaltete Komponenten ein und drücke die Eingabetaste. Esser sind also eine ziemliche Interaktion mit dem intelligenten Vertrag. Typen werden die Requisiten überprüfen und sehen, was ich falsch gemacht habe. Ich habe keine Komponenten etwas ausgebreitet. Kombo. Nance Typen überprüfen, ob die Requisiten an Ihre Komponenten weitergegeben werden und Ihren Bedingungen entsprechen. Und stellen Sie sicher, dass die Daten, die Sie erhalten, gültig sind. Vielleicht Typen, bei denen nur sichergestellt wird dass Daten, die an die Komponente gesendet werden, gültig Diese Stilkomponenten ermöglichen es uns, Komponenten zu erstellen und Stile mit ES6-Tag, Vorlage anzuhängen Literale, die Stile , die CSS zurückgeben. In einfachen Worten, es ist ein Paket eines Drittanbieters, mit dem wir eine Komponente als JavaScript-Variable erstellen können eine Komponente als JavaScript-Variable , die bereits mit CSS-Code gestaltet ist. Du wirst es später verstehen. Also jetzt einfach ausführen, unsere Anwendung ist npm run dev. Okay, jetzt lasst uns einfach dazu gehen. Es ist lokaler Host und sehen Sie unsere nächste JS-Anwendung erfolgreich geschrieben wurde. Das war's also. Wieder werde ich was tun? Ich mache das einfach klein. Es ist so. Die Vertragsanschrift, nur die CamelCase späteren Briefe, die ich mag, gefällt mir so. Das nächste, was wir tun werden, ist, an der Indexdatei zu arbeiten, die sich innerhalb der Seiten befindet. Hier. Wir haben diese Indexpunkt-TypeScript-Datei. Und ich werde alles von hier entfernen und einfach von Grund auf neu schreiben. Als erstes werde ich dich bleiben und Affekt Leute von React benutzen. Dann habe ich eine Vertragsanschrift. Vertragsadresse aus der Konfigurationsdatei, die sich außerhalb dieser befindet, also diese Konfigurationsdatei. Dann importiere ich Ethers, Ethers Paket. Dann importiere ich unsere ABA, dass diese Bibliothek aus der ABA Slash Library dot json ist. Dann importiere ich die nächste Seite von der nächsten Seite. Dann werde ich auch einfach Lead Window deklarieren. So dass es später keine Fehler gibt. Das ist großartig. Unsere Komponente, die für die Verspätung zu Hause erforscht wird für die Verspätung zu Hause erforscht . Jetzt haben wir unsere Komponente abgestrahlt, wenn unsere nächste Anwendung fertig ist. Im nächsten Video werden wir daran arbeiten, wie Sie sie MetaMask Wallet in unserer Anwendung verbinden können. Danke. 11. Funktionalität zur connet MetaMask: Hi. In diesem Video werden wir an dieser Funktionalität arbeiten, um unseren Liam zu verbinden gültig es ist die Molmasse mit unserer Anwendung. Also lasst uns zuerst an der Funktion arbeiten und sie connect nennen. Oder lassen Sie es. Lasst uns alles darin einpacken. Versuchen Sie es zu fangen. Block wird einfach console.log Adder schreiben console.log , der sich mit meinem Thermostat verbindet. Und einfach werden wir das hinzuschreiben. Jetzt bekommen wir zuerst das Stadionobjekt, das in unseren Browser injiziert wird. Dann werden wir sehen, ob wir ein TDM haben oder nicht. Wenn wir kein TDM haben, schreiben wir einfach console.log. Möglicherweise maskieren Sie nicht erkannt und kehren zurück. Und wenn wir das getan haben, dann werden wir prüfen, ob es mit dem richtigen Netzwerk verbunden ist , also Garlin-Netzwerk oder nicht, werden einfach die Anfrage für sie bekommen , die bekannt ist als Kettenunterstützung. Und dann wissen wir, dass wir wissen, dass Girly ID 0, X5 ist , das ist Knorpel und ID. Also werden wir es vergleichen, wenn Shane AD nicht gleich der Korrelationskette AD entspricht. In diesem Fall warnen Sie einfach darauf, dass Sie nicht mit einem Netzwerk verbunden sind nicht mit einem Netzwerk verbunden und einfach von hier zurückgekehrt sind. Und wenn das auch in Ordnung ist, dann wird das einfach gezählt werden. Dies ist eine Anfrage. Diese Anfrage und wir werden die Bitte hören, dass mein drittes, das als Anforderungskonten bezeichnet wird , wie diese. Und dann sollten wir einen Zustand haben, der hier variabel ist. Ich nenne es Girokonto. Um es zu ändern, setze ich einfach ein Girokonto ein. Ich hoffe, du weißt, dass du Hook in React angeben kannst. Bedeutet einfach, dass dies eine Variable ist und ihr Anfangswert leer ist. Dies ist eine Funktion, die verwendet wird , um dieser Variablen einen Wert zuzuweisen. Das war's. So kopiere ich diese Funktion, lege sie dann hierher und schreibe einfach Konten. Der erste. Genau so haben wir mehrere Konten in MetaMask, holen Sie sich einfach das erste. Dies ist die Funktion, die die Funktion zum Verbinden von Wallet ist . Lasst uns nun am HTML-Teil arbeiten. Gib einfach ein div zurück. Geben wir ihm ein paar Klassennamen von CSS. Flex, Flex nannte Items. Wenn du willst, kannst du einfach kopieren, was das alles bedeutet. Weil dies ein Rückenwind CSS-Code ist, F3, F6 für. Dann. Das ist nur ein grundlegendes Styling. Das war's. Sonst nichts. 68508. Hauptsächlich wird Mama in dieser Polsterung unten 20 sein. Dann nimm noch eine Klasse. Hab mir den Klassennamen gegeben. Übergang über Datum. Als es gab. Dann über Skala, wenn 05, Übergang, Dauer 500. Einfach rein, raus. Dann nicht drin. Draußen. Angesichts von H2. Ist das Decks C x fett, und B ist Rand unten. Um eine Marge hinzuzufügen, oben 12. Und nenne es. Verwalten Sie Ihre persönliche Bibliothek. So. Dann kommt jetzt unser Teil, das heißt, wir werden prüfen, ob das Girokonto leer ist, dann haben wir einen Button oder sonst haben wir etwas anderes. Okay? Mal sehen. Wenn es leer ist, haben wir einen Knopf. Der Name der Schaltfläche lautet connect. Lasst es. Jetzt lasst uns etwas Styling geben. Der Name der Klasse. Text, Schrift getragen. Indem ich meine drei hinzufüge. Wetten x 12. Hintergrund. Eins, C , 232, großer Rand, unten. Dann skaliere 105, Übergang. Und im OnClick-Ereignis schreiben wir einfach connect, naja IT-Funktion. Wir werden es diesen n zuweisen , wenn sie bereits verbunden sind. Dann haben wir ein div-Tag, das dafür einen Vorteil haben wird. Dann ist Wallet, Wallet verbunden und ihre Wallet Adresse dieses Girokonto. Und lassen Sie uns auch etwas Styling geben. Als Nächstes Excel. An Tag 12, Punkt verwalten. Lasst es uns retten. Ich möchte ein C. hinzufügen Wir haben diese schöne Brieftasche mit vollem Knopf und Hals. Wenn ich darauf klicke, wird mein MetaMask angezeigt. Und meine Aufgabe ist bereits mit dem Golgi-Netzwerk verbunden. Ich schreibe einfach als nächstes, verbinde mich und sage, gut es ist verbunden, das ist meine öffentliche Adresse. Also haben wir erfolgreich Steadies geschaffen. Wir haben erfolgreich an der Funktionalität gearbeitet , um unser My Thomas Wallet mit der Anwendung zu verbinden . In den kommenden Videos arbeiten wir am Front-End und der Funktionalität zum Hinzufügen und Löschen von Büchern und allem. Das war's also. Wir sehen uns im nächsten Video. 12. Funktionalität, um ein Buch hinzuzufügen: Hi. In diesem Video werden wir an einer Farm arbeiten, die es dem Benutzer ermöglicht, ein Buch einzureichen. Und ich sage, wir müssen eine Funktion schreiben , die diese Informationen in diese Blockchain einfügt. So laut, Fangen wir mit der Funktion an. Damit die Funktion funktioniert. Erstens sollten wir einige Staaten haben. Es sind einige Variablen. Du kannst Const sagen, Buchname. Lesen Sie also definitiv das Buch wird einen Namen haben. Und um diese Variable zu aktualisieren, haben wir diesen festgelegten Buchnamen. Du bist ganz am Anfang geblieben. Es wird leer sein. Dann werden wir einen Buchautor haben. Und dann wird es eingestellt sein. Buch ist nach Nutzungszustand. Auch hier wird es sein und dann wird dieses Buch ein Jahr haben. Es ist reiches Ohr , dieses Buch wurde veröffentlicht. Buchen Sie hier. Sie geben MD an. Und dann werden wir endlich das Buch fertigstellen lassen. Genau so ist dieses Buch fertig oder nicht. Das Buch ist fertig. Ganz am Anfang wird es also nein sein. Wenn wir ein Buch hinzufügen, sollte der Standardwert bekannt sein, wenn wir ein Buch hinzufügen. Dann lasst uns an ihrer Funktion arbeiten und benennen sie. Buch einreichen. Es wird eine sinc-Funktion sein. Dann erstellen wir das Book-Objekt. Simulieren. Der Schlüssel heißt BlockName. Dann dein Boss. Müssen wir es nicht in Integer ändern, diese Zeichenfolge. Das ist umso sperriger. Dann haben wir das dritte Buch. Dann haben wir den Wert beendet. Wenn der Wert des Buchs „Ja“ lautet, dann ist er wahr oder falsch. Sie werden das verstehen, wovon ich spreche, denn dies ist eine persönliche Bibliothek. Vielleicht möchten Sie Ihr Buch einfügen , das bereits rot ist, aber Sie möchten es in die Blockchain hinzufügen. Das ist okay. lasst uns den Try-Catch-Block machen. Versuch, Block zu fangen. Wir haben console.log und senden ein neues Buch ein. Und dann schreibe den Herausgeber, bring Durchfall mit. Und was wir tun werden, ist, dass wir zuerst das Stadion aus diesem Fenster holen werden . Wenn wir es dann haben KTM-Objekt, dann schreiben wir const. Der Anbieter ist den Anbietern neuer Esser gleich. Provider von Web drei. Und wir werden dieses Itanium-Objekt passieren. Dann kriegen wir den Unterzeichner. Unterzeichner wird Provider Dot sein, Unterzeichner wie folgt erhalten. Und dann haben wir eine Vertragsinstanz. Bibliothek. Vertrag ist gleich dem neuen Vertrag, dieser Vertragsanschrift, dann sollten wir die ABA, ABA haben, und dann müssen wir den Unterzeichner geben. Und jetzt müssen wir die Funktion Buch hinzufügen von ihnen aufrufen. Ähm, Blockchain. Jetzt lassen Sie Bibliotheks-Transaktion gleich auf Laborvertrag warten. Library Contract Dot Buch hinzufügen. Dies ist die Rückgabe des intelligenten Vertrags. Wir schicken Buch, Punktname, Buch, dieses Ohrbuch. Unser Buch. So fertig. Und dann werden wir einfach diese Transaktion, also Bibliotheks-Transaktion , konsolen . Und wenn es Tanium-Objekt nicht verfügbar ist , wird dies nicht der Fall sein. Aber da wir kein Risiko eingehen, wird es schreiben, wir werden es aufschreiben. Check existiert nicht. Das war's also. Dass dies die Funktion ist, um ein Buch einzureichen. Wir benennen diese Funktion einfach Buch einreichen. Jetzt arbeiten wir am HTML-Teil. Lass uns nach unten gehen. Hier. Das heißt, in dieser Brieftasche verbunden. Sie möchten, dass das Formular angezeigt wird, da der Benutzer es zunächst mit einer Moschee-Wallet verbinden muss. Darunter werden wir zuerst haben, was ich tun werde , ist, dieses Ding in ein div zu wickeln. Dave, warte einfach, ich überlege nur, was getan werden kann? Ja. Gib ihm einfach ein Div. Schließe dieses div. Okay. Jetzt, nachdem diese Wallet verbunden ist, Dave, schreiben wir das Formular , das schnell ist. Neues div. Ich gebe ein paar Rückenwind, CSS dazu. Diese Dinge werden Text, Schriftart, halb fett sein und Duan De Margin, Top Vier sein. Dann lasst uns unsere Eingabefelder haben. Die erste Eingabe Text des Eingabetyps, dann wird der Platzhalter Buchname sein. Und dieser Wert wird die oben erwähnte Variable sein. Und OnChange. Was wir haben werden. Wenn wir den Wert bekommen. Das ist was auch immer es da ist, wir werden den Buchnamen festlegen. Wir legen einfach den Buchnamen fest und übergeben den Wert für den Punkt, Punkt, den Punktwert. So. Lassen Sie uns auch etwas Styling geben. Also gebe ich einfach einen Klassennamen an. Wird Excel nicht an Bord schreiben. Rand, unterer Rand, oberer Rand. So. Dann gebe ich ihm ein BR, Tag. Zeilenumbruch. Und dann werde ich noch ein Eingabefeld haben. Also kopiere es einfach und füge es hier ein. Ist das Styling gleich. Nur der Platzhalter wird Buch sein. Der Wert wird Buch und unverändert sein. Es wird ein gesetztes Buch sein. So. Andererseits habe ich das gleiche Eingabefeld. Also kopiere ich nur den BR, das ist auch Zeilenumbruch. Das dritte wird der Buchwert sein wird das Buch Ohr sein. Unverändert, sagte Buch hier, so. Okay? Dann habe einfach ein BR-Tag, dann ein Label. Einfach richtig? Hast du dieses Buch fertig gelesen? Dann? Wir werden einige haben, wir haben die Möglichkeit, dieses ausgewählte HTML-Tag auszuwählen. Der Wert wird buchfertig sein. Dann wird Onchange ähnlich sein. Wie auch immer wir bekommen, werden wir es ändern, um das Buch fertig zu stellen. E Punkt, Punkt, Punkt, Punkt. In diesem Select-Tag sollten wir Optionen haben. Die erste Option wird wertvoll sein. Ja, das ist das ich dieses Buch gelesen habe. Und die zweite Option, werden wir es wissen? Das heißt, offensichtlich ist dieses Buch für ihn nicht richtig. Hol dir. Jetzt, nach diesem Label, sollten wir einen Knopf haben. Ich füge diesen Code nur ein, weil ich diesen Kurs zuletzt aufgenommen habe und gerade einen kleinen Fehler hatte. Sie können also sehen, dass dies eine Schaltfläche mit einem Klassennamen von Text, Excel, Schriftart, fett durch drei, Padding bei x2 ist. Dann Hintergrund, Farbe aus, Hash F1, C, 232, gerundet, großer Rand, untere zehn, Rand links fünf. Dann schweben, skalieren. 105, dann Übergang. Dauer 500, einfach rein, raus. Und onclick. Ich weise nur die Funktion „ Absenden“ zu und gebe ihr einen Namen des Buches. Das war's. Wenn du also rennst, kannst du das Video einfach anhalten und aufschreiben. Es ist nur eine Codezeile. Speichern Sie es jetzt und gehen Sie zu Ihrer Anwendung. Klicken Sie einfach auf Wallet verbinden. Sehen Sie, das Formular ist hier. Du kannst es alles nennen. Ich habe bereits ein Buch, weil ich es getan habe, wie ich es gesagt habe , dass ich es getestet habe. Also lerne Hardhead-Buch oder sie Das stimmt. Bill Gates. Ich weiß nicht, dass er daran interessiert ist oder nicht und gab es 2019. Dann füge ein Buch hinzu. Thomas wird um Zustimmung bitten. Bestätigen Sie es einfach. Mal sehen, ob wir in der Konsole unsere Transaktion erhalten oder nicht. Ich überprüfe nur, es steht noch aus. Es ist fertig. Klicken Sie nun auf Inspect. Und in dieser Konsole haben wir dieses Objekt, das ist die vollständige Transaktion C. Also das war's für dieses Video. Die Funktionalität zum Hinzufügen eines Buches funktioniert einwandfrei. Im nächsten Video werden wir daran arbeiten, wie wir diese Bücher aus der Blockchain holen können. Danke. 13. Funktionalität zum Abholen von Büchern: Lassen Sie uns nun an der Funktionalität arbeiten , um Bücher aus der Blockchain zu holen. Zuallererst brauchen wir einige Staaten. Schreib einfach const books. Fertig und sagte Box. Fertig ist gleich dem Verwendungsstatus. Es wird ein Array sein. In ähnlicher Weise werden wir eine andere Box haben. Und fertig besagte Bücher und Fertigwaren. Sie benutzen Datum. Auch hier wird es ein leeres Array sein. Arbeiten wir nun mit der Funktion unter dieser Funktion zum Absenden des Buches. Ich schreibe const, bekomme Bücher ist gleich einem Waschbecken. Dann bekomme ich einen, ähnlicher Weise werden wir einen Versuch Catch Block haben. Wenn ein Fehler auftritt, konsolere ich einfach console.log. In diesem Versuchs-Bereich. Auch hier werden wir diese Codezeile haben. Kopiere einfach so viel auf Urlaub. Ich kopiere einfach drinnen. Ich werde entfernen, was nicht notwendig ist. Ich werde diese beiden Zeilen einfach entfernen da wir den Itanium-Bibliotheksvertrag benötigen. Die Vertragsinstanz, die arbeitet , um die Funktion aus der Blockchain abzurufen. Jetzt holen wir uns einfach Bücher. Möbliert ist gleich erwarten. Library Contract Dot get. Jetzt lasst uns nachsehen. Werden Sie fertig. Holen Sie sich fertige Bücher. Und in ähnlicher Weise werden wir Bücher unmöbliert lassen, Vertragspunkt unvollendet werden lassen. Und dann legen wir einfach den Wert des Staates fest. Das sind gesetzte Bücher fertig. Das Buch ist fertig. Und unvollendete gesetzte Bücher werden der Liste entsprechen, die aus unvollendeten Büchern stammt. So haben wir auch unsere gebuchte Funktion. Um es jetzt im Frontend zu zeigen, erstellen wir eine separate Komponente. Also in diesem Pages-Ordner namens Come on Nance, Gumbo, Nance. Und darin erstellen Sie eine Datei namens Book JS. Das war's. Es wird sich also nur ein separates, separates Buch vorstellen. Wir geben einfach eine for-Schleife und es wird diese Komponente zurückgeben. Also hier verwende ich etwas Styling, wenn du willst. Auch hier sage ich, dass Sie diese Eigenschaften, die wir am Anfang installiert haben, diese Abhängigkeiten, Requisitentypen, selbst diese Eigenschaften, die wir am Anfang installiert haben , diese Abhängigkeiten, Requisitentypen, ausführen und dann gestaltete Schlüsselbilder aus Stilkomponenten importieren gestaltete Schlüsselbilder können. Nun, lasst uns richtig sein, ein paar Styling Key-Frames. Und das. Dann werden wir drinnen haben, du kannst diesen Code einfach gleich schreiben denn wie ich immer wieder sage, ist mir das Styling egal. Nur um zu lecken, nur um anständig auszusehen. Zumindest gebe ich diesen Stilen Transformation. Skalierung 0,5. Dann lies Prozent. Auch hier kopiere ich einfach diese beiden Zeilen. Eingefügt. Skaliere eins. Und dann skalieren wir eins. Okay? Dann habe ich mit Komponenten im Staubstil einen Behälter. Dies ist also nur, dass wir einer Komponente direkt einen Stil geben. Darum geht es um Abhängigkeiten von Stilkomponenten . Ich bleibe das. Dave, schreiben wir es auf. Eine nach dem anderen Animation. Schieben Sie 0,82 kubische Bezier darin. Stimmt's? W 0,390.5750,5651. Dann Raster anzeigen. Dann werden Rastervorlagenspalten 38 Prozent, 20 Prozent, fünf Jahre, Prozentsatz, 37 Prozent betragen. Dann fügen wir zwei REMs hinzu, 0.1881.625168, Datum REM, border, solid, ein Pixel. Grenze, Radius. Für große Zellen. Linie, Höhe. Normal. Übergang zurück Boden, 0,40 als linear. Marge. Hell. Erstens habe ich eine Rate auf 50 Pixel. Inline-Block anzeigen. Das war's. Das war's also für den Styling-Teil. Wenn du willst, kannst du dieses Video einfach anhalten und es nochmal aufschreiben. Wenn ich ein bisschen schnell bin. Im nächsten Video werden wir also an der Buchkomponente arbeiten. Danke. 14. Erstellen einer Buchkomponente: Lassen Sie uns nun diese Buchkomponente erstellen. Unterhalb dieses Codeabschnitts. Sagen wir, const book ist dem gleich. Und in dieser Komponente akzeptieren wir einige Requisiten wie id, name. Hier werden bestraft, und eine Funktion, die Click-Buch sein wird. So fertig. Lasst uns zurückkehren. Lass uns zurückkehren, lass es uns dann diesen Container , der schon so gestylt ist. Deshalb verwenden wir diese Stilkomponenten so , dass sie, wenn wir sie verwendet haben, bereits vordefiniert ist und funktioniert so, als würde es wie eine Komponente funktionieren. Sie können sehen, eine Art Containerkomponente. Du nennst es, du nennst ihn Container und wir können ihn so benutzen. Jetzt lass uns gehen. Das ist Dave, Name. Dann. Dann sind wir hier. Dann werden wir dieses Span-Tag einfach sagen, wenn es fertig ist, gleich Pause. Wenn das Buch nicht fertig ist, haben wir etwas oder anderes, sonst haben wir einfach ein p-Tag. Dann haben wir einen Knopf. Dann dieses p-Tag später. Also hier, wenn wir das haben, haben sie einen Knopf. Und lass uns dem Button etwas Styling geben. Schrift, fett, Hochzeit bei x, y, aufbrechen. Ash, F, F, 77, F. Dann werden wir Dexter White haben. Dann gerundet. Große Marge, Top Fünf. Unsere Skala 105. Übergang. Dauer. 500 ist in dieser Last. In diesem Button werden wir dann werden wir auch die on-Click-Methode haben. Es ist, ist drin, hier draußen. Lass uns das auf Klick haben. Wenn der Benutzer auf einen Klick klickt, wird diese lustige Funktion ausgeführt, die Glick Book eingerichtet ist. Und wir müssen den Ausweis schicken. Das ist ein reiches Buch. Wir müssen es löschen und einfach benennen. Nischenbuch wie dieses. Dies wird also sein, wenn die Eigenschaft falsch ist und wenn es wahr ist, dann können wir einfach einen Absatz geben und ihm etwas Styling geben. Schrift. Ball, fett, Text, Höhe 0 d, 71 E. Und es wird Buch fertig geschrieben. Sagen wir mal. Also. Jetzt, nach dieser Komponente, werden wir einige Requisitentypen haben , die wirklich sicherstellen, dass diese Eigenschaften in dieser Reihenfolge aufsteigen. Requisite mal ist es, wir haben einige Bedingungen, die zuerst erfüllt werden sollten. Das heißt, das ist die Sache, bei der es ist als ob ID so erworben wird. Requisitentypen Punktnummer, die nummeriert sein sollte und erforderlich ist. Das ist ein Name. Prop-Typen. String, Punkt ist erforderlich. Prop-Typen B Capital String ist erforderlich als das, was wir haben. Wir haben unser Talent fertig. Also haben wir gerade kopiert. Wir haben wir fertig. So. Es, dieses Ding ist eine Zahl. Und schließlich werden wir einfach Standardbuch wie dieses exportieren. Buchkomponente ist fertig. Lassen Sie uns dieses Buch auf der Indexseite zeigen , dass es nicht so ist , dass Homepages es zeigen. Danach. Wir haben diese Schaltfläche „Hinzufügen“. Dann haben wir diesen Dave. Wir haben diese Debatte um 132 für Tag, für Tag ist Dave. Wir werden ein anderes div haben, das enthält, das die Buchliste enthält. Lassen Sie uns auch etwas Styling geben. Flex, Flex, Spalte, Ausrichtung, zentrieren, Elemente zentrieren sich so. Andererseits haben wir einen Dave-Klassennamen. Sind kein halbfett gedruckter Text, großer Text, Mitte, Verwaltung der unteren vier. Und ich nenne es Bücherliste. Okay? Dann haben wir einen, dann haben wir einen Knopf. Dann haben wir einen Knopf und es wird Bücher abrufen. Und diese Schaltfläche wird wieder Klassen wie Excel an Bord haben , wie diese. Und wenn Sie mit Tailwind CSS gut sind, können Sie es auch ändern. Dies sind nur ein grundlegendes Styling. Dann rund, abgerundet, Rand unten. Dann ist unsere Skala, wenn 05 , Übergangsdauer , 500 rein ist. Das ist also der Knopf. Und unter diesem Button werden wir unsere Logik machen. Einfach. Was wir tun werden, sind unvollendete Bücher. Dieses Land. Wenn es größer als 0 ist , haben wir ein div. Wenn die Länge 0 ist, dann haben wir es div, was, während ich gehe, einfach ein Buch unvollendet schreiben wird. Und darin wird es eine Reihe von Büchern geben. Das heißt, Bücher unvollendet, nicht so landen. Und lassen Sie uns dem etwas grundlegendes Styling geben. Schrift. Halb fett Text, Mitte, Rand, unten. Für Marge, Top Fünf. Und wenn nicht, haben wir einfach ein leeres div. So. Zeigt keinen Weg dorthin, weil es so sein wird, es sieht nicht gut aus. Dann, darunter, lass es mich einfach sehen. Lassen Sie uns unten einen anderen div-Klassennamen verwenden flex sein wird. Flex-Zeile richtet die Mitte aus, Elemente zentrieren. Und hier werden wir solche Bücher haben, unvollendet, Karte, wie diese. Und hier kriegen wir einzelne Bücher. Und in diesen einzelnen Büchern werden wir die Buchkomponente nennen. Lassen Sie uns hier eine Doppelkomponente importieren. Importieren Sie Komponenten wie folgt. Jetzt wird dies einige Eigenschaften akzeptieren. Schlüsselbuch diese ID, ID, parse int. Wir sagen einfach Buch. Wir sorgen dafür, dass es ein Ausweis ist. Das heißt, es ist die N-Zahlenrate. Nehmen wir an, der Redakteur wird später weitermachen. Buchpunktname ist gleich Balken. Buch, das Ohr. String, so so sind schrecklich. Buch. Nicht. Dann fertig. Buch. Dot, fertig, Punkt zwei. String. Klicken Sie dann auf Buch. Fertig wird die Funktion klicken, klicken Sie auf Buch eingerichtet. Wir müssen diese Funktion erstellen. Nehmen wir an , wir haben diese Buchkomponente. Okay, hier. Das wird das sein. Mal sehen. Gibt es einen Redakteur? Wir nennen diese Komponente einfach Dieses Klickbuch abgeschlossen. Hier. Klicken Sie auf Okay, die Schreibweise, schätze ich, hat C. Okay beendet. Jetzt funktionieren diese einwandfrei. Sie können sehen, dass wir auch eine Funktion für das Flipbook erstellen müssen. Und für diese roten Linien und alles, wenn Sie möchten, können Sie einfach zur Datei ts config dot JS gehen , das ist hier. Und dann ändern Sie hier den strikten Wert auf falsch. Der Bezirk ist falsch, das war's. Wenn du das tust, werden diese roten Linien und diese Dinge gelöst. C, Die sind jetzt gelöst. Das war's also für dieses Video. Im nächsten Video werden wir unter der Funktionalität arbeiten, werden wir unter der Funktionalität arbeiten um die Buchhandlung auf fertig zu stellen. Danke. 15. Funktionalität, um den Status des Buches zu ändern: Also willkommen zurück. Arbeiten wir an unserer Anwendung. V4. Gut, um diese Funktion zuzuweisen, also Bücher zu holen. Dieser Knopf. Der Button hier, der ist das. Also schreibe einfach aufKlick und das ist ein gutes Buch. Und in ähnlicher Weise wird dies alle Bücher zeigen, die fertig sind. Ebenso werden wir haben müssen, wir Bücher zeigen müssen, welche sind, die auf diese Weise fertig sind. Dies sind Bücher, die noch nicht fertig sind und wir müssen Bücher zeigen , die fertig sind. Was ich also tun werde, ist einfach dieses Stück Zeilen zu kopieren. Nehmen wir an, als erstes werde ich das kopieren und hier einfügen. Es wird Bücher schreiben sein. Bücher, fertig. Bücher, fertig. Punktlänge statt dasselbe und es ist wirklich buchfertig, das war's. Und dann mache ich das Mapping wieder so. Also kopiere es einfach und füge es hier ein. Ich werde dieses Mapping mit Büchern machen, fertig, Dot Map. Und heutzutage werden Bücher fertig sein. Und jetzt werden wir hier an der Funktion arbeiten und wir werden sie benennen. Buch, fertiggestellt, kopiert und eingefügt auch hier. Dies wird die Funktion sein , die wir jetzt erstellen werden. See-Buch ist fertig. Geh hier hoch. Kreative Funktion. Const gefällt das. Ein Waschbecken. Es wird eine ID akzeptieren, wie diese. Okay? Jetzt werden wir also wieder Try-Fang haben und alles. wie immer Da wir uns wie immer mit dem bereits bereitgestellten Smart Contract verbinden müssen , bereits bereitgestellten Smart Contract verbinden müssen , schreiben Sie einfach console.log und ändern den Buchstatus. Drucken Sie einfach auch die Kopfzeile aus. Dann werden wir in diesem Try-Block einfach, von hier kopieren, kopieren. Kopiere einfach diese Zeilen. Füge es hier ein. Okay, wir haben den Anbieter. Dann wird der Bibliotheksübergang sein, es wird einfach eingestellt. Beendet ID so, sagen wir Konsolenpunktprotokoll. Das ist also die Funktion. Und die meisten Funktionen sind etwas ähnlich. Nichts so ausgefallenes. Wir nennen das nur , das hier fertig werden soll. Dieser braucht eine Buch-ID und einen fertigen booleschen Wert. Also schicken wir einfach die ID und den Booleschen Wert, das war's. Schließlich haben wir all diese Codes für die Anwendung geschrieben. Ich bin froh, dass Sie sich jetzt etwas angesehen haben, im nächsten Modul werden wir unsere Anwendung testen ob alles richtig funktioniert oder nicht. Und wenn wir einen Fehler bekommen, werden wir ihn so schnell wie möglich lösen. Danke. 16. Teste die komplette Anwendung: Hi. In diesem Video haben wir das Funktionieren unserer Anwendung wirklich getestet. Wir haben aus den letzten Videos zitiert , aber im Moment ist es an der Zeit zu testen, ist es an der Zeit zu testen ob alle Funktionalitäten funktionieren oder nicht. Das erste, was ich tun werde, sind Gene als das Netzwerk meiner Tomaten von Gormley zu vermuten. Und dann klicke ich auf Connect Wallet. Sehen Sie, Sie sind nicht verbunden, um es Netzwerk zu nennen, daher werden wir aufgefordert, unser Netzwerk zu wechseln. Das funktioniert gut. Lass uns ins Cholin gehen. Wenn ich dann auf Violett verbinden klicke, hängt MetaMask an und dann weiter und verbinde dich. Okay. Jetzt haben wir diese Bücher. Wenn Sie sich erinnern, haben wir bereits früher ein blaues Buch hinzugefügt. Wenn ich also auf Bücher abrufen klicke, haben wir zwei unfertige Bücher. Siehst du, das ist einer, lerne Webbaum und der andere ist Learn Hard Hat. Das sieht also sehr gut aus. Und auch wenn ich lerne schreibe, gibt es ein Handelstermin, der als nächstes kommt. Js. Mark Zuckerberg und 2018. Angenommen, wenn ich einfach weiter schreibe, wenn ich es auf ja ändere, Mal sehen, was passiert. können sich Warnungen bilden. Lassen Sie uns sehen, ob die Transaktion noch ausstehend ist. Es wird einige Zeit dauern. Es ist fertig. Wenn ich jetzt auf Bücher abrufen klicke, sehe ich, dass Bücher fertig sind. Aber mir geht's einfach gut. Dieser Fehler. Ich habe verstanden, warum es zwei sind , weil wir hier vergessen haben, uns zu ändern. fertig gestellten Bücher werden also so lang sein. Sagen wir das, das ist ein sehr kleiner Fehler. Es ist, es ist korrigiert. Bücher haben eins beendet. Und wenn ich auf dieses fertige Buch klicke, lerne einen Schutzhelm. Schon wieder. Zeigt dies an und klicke dann auf Bestätigen. Hauptmotiv dieses Kurses bestand darin, die Grundlagen der Blockchain zu verstehen. Technologie ist nicht diese Benutzeroberfläche. Wenn Sie möchten, können Sie jedes Front-End-UI-Tool verwenden und es sehr schön machen. Weil Sie vielleicht denken, dass dies sehr einfach ist, aber die Hauptsache ist diese Funktionalität. Jetzt ist es Ausgaben eingestellt beendet Funktion. Diese Ausgaben. Jetzt ist es fertig. Wenn ich auf „Bücher abrufen“ klicke. Sehen Sie, dies ist auch im fertigen Abschnitt und jetzt haben wir ein unfertiges Buch und ein fertiges Buch. vollständige Anwendung funktioniert also großartig. Und ich denke, wir sind stolz auf uns selbst, dass wir eine dezentrale Anwendung von Grund auf neu erstellt haben. Ich hoffe, dass Ihnen der Kurs gefallen hat. Stellen Sie sicher, dass Sie sich auch andere Kurse von mir ansehen. Danke. Hab einen schönen Tag.