UPDATE: Besuchen
Wichtig: Dieses Repo wird nicht mehr aktiv aufrechterhalten, da sich bei Hardhat -Werkzeugen Änderungen vorgenommen haben. Das Video ist nicht mit dem Code synchronisiert, und Sie können das Video weiterhin verfolgen, aber Sie müssen wahrscheinlich die Änderungen in den Werkzeugen und Abhängigkeiten beheben. Beachten Sie auch, dass sich seit diesem Video Best Practices entwickelt haben.
Wenn Sie Ihr Training mit mehr aktuellem Material fortsetzen möchten, können Sie sich Cyfrin auf den Vormarsch werfen. Dieser Inhalt wird mit Liebe von Patrick & Cyfrin <3 entwickelt. Beachten Sie jedoch, dass das Cyfrin -Aufwinde Training Foundry und nicht Hardhat verwendet, sodass Änderungen an Werkzeugen erforderlich sind.
Web3, Full Stack Solidity, Smart Contract & Blockchain - Anfänger zum Experten Ultimate -Kurs | JavaScript Edition

Willkommen im Repository für ultimative Web3, Full Stack Solidity und Smart Contract - Anfänger zum Experten vollständigen Kurs | JavaScript Edition Freecodecamp Kurs!
Link zu Video: https://www.youtube.com/watch?v=gymwxujrbjq
Alle Codereferenzen haben sowohl ein JavaScript- als auch eine TypeScript -Ausgabe.
Empfohlenes TestNet: Sepolia
Wir haben die Repos aktualisiert, um mit Sepolia zusammenzuarbeiten, da Rinkeby und Kovan Sunset sind und Goerli eine Katastrophe ist. Lassen Sie uns wissen, ob eine der Änderungen das Zeug brechen!
Testnet -Wasserhähne
Hauptfaucet: https://faucets.chain.link Backup Faucet: https://sepoliafaucet.com/
Euen Der mit diesem Kurs verbundene Code dient nur für Demo -Zwecke. Sie wurden nicht geprüft und sollten nicht als Produktionsbereitschaft angesehen werden. Bitte verwenden Sie auf eigenes Risiko.
Ressourcen für diesen Kurs
Fragen
- Github -Diskussionen
- Stellen Sie Fragen und chatten Sie hier über den Kurs!
- Stack Exchange Ethereum
- Toller Ort, um technische Fragen zu Ethereum zu stellen
- Stackoverflow
- Toller Ort, um insgesamt technische Fragen zu stellen
Inhaltsverzeichnis
Ressourcen
- Testnet -Wasserhähne
- Ressourcen für diesen Kurs
- Inhaltsverzeichnis
Lektion 0: Die Kante des Kaninchenlochs
- Willkommen auf dem Kurs!
- Best Practices
Lektion 1: Blockchain -Grundlagen
- Was ist eine Blockchain? Was macht eine Blockchain?
- Der Zweck von intelligenten Verträgen
- Andere Blockchain -Vorteile
- Was haben intelligente Verträge bisher gemacht?
- Machen Sie Ihre erste Transaktion
- Gas I: Einführung in Gas
- Wie funktionieren Blockchains?
- Transaktionen signieren
- Gas II
- Hochrangige Blockchain-Grundlagen
Lektion 2: Willkommen bei Remix! Einfacher Speicher
- Einführung
- Richten Sie Ihren ersten Vertrag ein
- Grundlesibilität: Typen
- Grundlesibilität: Funktionen
- Grundlesibilität: Arrays & Strukturen
- Grundlesibilität: Compiler -Fehler und Warnungen
- Speicher, Speicher, CallData (Intro)
- Zuordnungen
- Bereitstellung Ihres ersten Vertrags
- Die EVM & A -Zusammenfassung von Lektion 2
Lektion 3: Remix Storage Factory
- Einführung
- Grundlesibilität: Importieren von Verträgen in andere Verträge importieren
- Grund Solidität: Interaktion mit anderen Verträgen
- Grund Solidität: Vererbung & Überschreiung
- Lektion 3 Zusammenfassung
Lektion 4: Remix finanzieren mich
- Einführung
- Senden von ETH über eine Funktion & Rückkehrungen
- Kettenlink & Orakel
- Überprüfung des Sendens von ETH und der Arbeit mit ChainLink
- Schnittstellen und Preisfeeds
- Importieren von Github & NPM
- Schwimmende Punktmathematik in Solidität
- Grundlesibilität: Arrays & Strukturen II
- Überprüfung von Interfacs, Import von Github und Mathematik in Solidität
- Bibliotheken
- Safemath, Überlaufüberprüfung und die "ungeprüfte" Schlüsselarbeiten
- Grund Solidität: Für Schleife
- Grundlesibilität: Ein Array zurücksetzen
- ETH aus einem Vertrag senden
- Grundlesibilität: Konstruktor
- Grundlesibilität: Modifikatoren
- Testnet -Demo
- Erweiterte Solidität
- Unveränderlich und konstant
- Benutzerdefinierte Fehler
- Erhalten und Fallback -Funktionen
- Lektion 4 Zusammenfassung
Lektion 5: Ethers.js Einfacher Speicher
- Effektive Debugging -Strategien und Hilfe erhalten
- Wie man etwas Video debugg
- Installation & Setup
- Mac & Linux -Setup
- Windows -Setup
- Gitpod
- Lokale Entwicklung Einführung
- Optionale JavaScript -Crash -Kurse
- Tiny JavaScript -Auffrischung
- Asynchrone Programmierung in JavaScript
- Unsere Solidität zusammenstellen
- Ganache & Netzwerke
- Einführung in Ethers.js
- Eine Notiz zum Keyword des Warteditels
- Hinzufügen von Transaktionsvorschriften
- Transaktionsbelege
- Senden einer "rohen" Transaktion in Etherjs
- Interaktion mit Verträgen in Etherjs
- Umgebungsvariablen
- Besseres privates Schlüsselmanagement
- Optionale hübscher Formatierung
- Bereitstellung in einem TestNet oder einem Hauptnetz
- Überprüfen Sie Blockforscher aus der Benutzeroberfläche
- Alchemie Dashboard und das Mempool
- Lektion 5 Zusammenfassung
- Typscript Ethers einfache Speicherung
Lektion 6: Hardhat Einfacher Speicher
- Einführung
- Hardhat -Setup
- Fehlerbehebung Hardaht -Setup
- Hardhat Setup ging weiter
- Bereitstellung von SimpleStorage von Hardhat
- Netzwerke in Hardhat
- Programmatische Überprüfung
- Interaktion mit Verträgen in Hardhat
- Artefakte Fehlerbehebung
- Benutzerdefinierte Hardhat -Aufgaben
- Hardhat Localhost Node
- Die Hardhat -Konsole
- Hardhat -Tests
- Hardhat -Gasreporter
- Soliditätsabdeckung
- Hardhat Waffel
- Lektion 6 Zusammenfassung
- Typscript Hardhat Einfacher Speicher
Lektion 7: Hardhat finanziert mich
- Einführung
- Hardhat Setup - finanzieren Sie mich
- Linie
- Hardhat Setup - finanzieren Sie mich - Fortsetzung
- Importieren von NPM
- Hardhat -Einsatz
- Verspottung
- Utils -Ordner
- Testnet Demo - Hardhat Fonds mich
- Leitfaden für Soliditätsstil
- Tests finanzieren Sie mich
- Haltepunkte & Debugging
- Gas III:
- console.log & debugging
- Prüffonds mich ii ii
- Speicherung in Solidität
- Gasoptimierungen unter Verwendung von Lagerkenntnissen
- Solidity Chainlink Style Guide
- Speicherprüfung
- Inszenierungstests
- Ausführen von Skripten auf einem lokalen Knoten
- Hinzufügen von Skripten zu Ihrem Paket.json
- Drücken nach GitHub
- ? Twittern Sie mich (fügen Sie Ihr Repo hinzu)!
Lektion 8: HTML / JavaScript Fund Me (Full Stack / Front End)
- Einführung
- Wie Websites mit Web3 -Brieftaschen funktionieren
- HTML -Setup
- HTML mit Metamaske anschließen
- JavaScript in seiner eigenen Datei
- ES6 vs Nodejs
- Senden einer Transaktion von einer Website
- Zurücksetzen eines Kontos in Metamask
- Hören auf Ereignisse und abgeschlossene Transaktionen
- Eingangsformen
- Lesen aus der Blockchain
- Funktion abheben
- Lektion 8 Zusammenfassung
Lektion 9: Hardhat Smart Contract Lotterie
- Einführung
- Hardhat Setup - Smart Contract Lotterie
- Verlosung.Sol Setup
- Einführung in Ereignisse
- Ereignisse in tomble.sol
- Einführung in Chainlink VRF
- Sub-Lesson: Chainlink VRF
- Implementierung von ChainLink VRF - Einführung
- Implementierung von ChainLink VRF - die Anfrage
- Implementierung von ChainLink VRF - die Erfüllung
- Einführung in Chainlink Keepers
- Implementierung von ChainLink Keepers - Untersuchung
- Implementierung von ChainLink Keepers - Untersuchung wurde fortgesetzt
- Implementierung von ChainLink Keepers - Performupkeepepe
- Codereinigung
- Verlosung einsetzen.sol
- Mock Chainlink VRF -Koordinator
- Fortsetzung
- Tombola.Sol Unit -Tests
- Testen von Ereignissen und Chai -Mattern
- Fortsetzung i
- Hardhat -Methoden und Zeitreisen
- Callstatic
- Fortsetzung iii
- Massiver Versprechen -Test
- Fortsetzung iv
- Verlosung.Sol -Staging -Tests
- Testen auf einem Testnet
- Empfohlene Linkbeträge für den Sepolia -Staging -Test:
- Abschluss
- TypeScript - Smart Contract Lotterie
Lektion 10: NextJs Smart Contract Lotterie (Full Stack / Frontend)
- Einführung
- Optionales Sub-Lesson: Vollständige Stapelentwicklung und andere Bibliotheken
- NextJS Setup
- Handbuch Header i
- Handbuchkopf II
- Nutzeffekthaken
- Lokale Speicherung
- ISWeb3Enabledloading
- Web3uikit
- Einführung in die Anruffunktionen in NextJs
- Automatischer UI -Updater konstanter Wert
- RunconcontractFunction
- ussten
- Aufrufen von Funktionen in NextJs
- Usenotifizierung
- Lesen und Anzeigen von Vertragsdaten
- Ein Hinweis über
onSuccess - Eine Herausforderung für Sie
- Rückenwind & Styling
- Einführung in die Hosting Ihrer Website
- IPFS
- Hosting auf IPFs
- Hosting auf IPFS & Filecoin mit Fleek
- Filecoin -Übersicht
- Lektion 10 Zusammenfassung
Lektion 11: Hardhat Starter Kit
Lektion 12: Hardhat ERC20S
- Was ist ein ERC? Was ist ein EIP?
- Was ist ein ERC20?
- Manuell ein ERC20 -Token erstellen
- Erstellen eines ERC20 -Tokens mit Openzeppelin
- Lektion 12 Zusammenfassung
Lektion 13: Hardhat Defi & aave
- Was ist Defi?
- Was ist Aave?
- Programmatische Ausleihe und Kredite
- Weth - Wickelte Eth
- Gabeln des Hauptnetzes
- In aave ablegen
- Ausleihen von aave
- Rückzahlung mit aave
- Visualisierung der Transaktionen
- Lektion 13 Zusammenfassung
- Happy Bow-Tie Friday mit Austin Griffith
- Weitere Defi -Erkenntnisse:
Lektion 14: Hardhat NFTs (alles, was Sie über NFTs wissen müssen)
- Was ist ein NFT?
- Codeübersicht
- Hardhat -Setup
- Basic NFT
- Zufällige IPFS NFT
- Mapping ChainLink VRF -Anfragen
- Seltene NFTs schaffen
- Festlegen des NFT -Bildes
- Setzen Sie einen NFT -Münzpreis
- Skript bereitstellen
- Hochladen von Token -Bildern mit Pinata
- Hochladen von Token -URIs (Metadaten) mit Pinata
- Bereitstellung
- Tests
- Dynamisches SVG On-Chain NFT
- Was ist ein SVG?
- Anfangscode
- Base64 Codierung
- Fortgeschrittene: EVM -Opcodes, Codierung und Anruf
- ABI.CODE & ABI.ENCODEPACKED
- Einführung in die Codierungsfunktion Aufrufe direkt
- Einführung in die Codierungsfunktion Aufrufe der Zusammenfassung
- Codierungsfunktion Aufrufe direkt
- Erstellen eines NFT-Tokenuri-Onketten
- Die NFT dynamisch machen
- Skript bereitstellen
- Bereitstellung der NFTs in einem Testnet
- Lektion 14 Zusammenfassung
Lektion 15: NextJS NFT Marketplace (Wenn Sie diese Lektion beenden, sind Sie ein Full-Stack-Monster!)
- Einführung
- Teil I: NFT Marketplace Contracts
- Hardhat -Setup
- Nftmarketplace.sol
- Wiedereinzug
- Nftmarketplace.sol - Fortsetzung
- Nftmarketplace.sol - Skript bereitstellen
- Nftmarketplace.sol - Tests
- Nftmarketplace.sol - Skripte
- Teil II: Moralis Frontend
- Was ist Moralis?
- NextJS Setup
- Hinzufügen von Rückenwind
- Einführung in die Indexierung in Web3
- Verbinden Sie Moralis mit unserem lokalen Hardhat -Knoten
- Moralis Ereignis Synchronisierung
- Lokale Kette zurücksetzen
- Moralis Cloud funktioniert
- Üben Sie das Zurücksetzen der lokalen Kette
- Moralis Cloud Funktionen II
- Abfragen der Moralis -Datenbank
- Rendern der NFT -Bilder
- Aktualisieren Sie das Listenmodal
- Kaufen Sie NFT Listing
- Listing NFTs zum Verkauf
- Teil III: TheGraph Front End
- Einführung
- Was ist die Grafik?
- Aufbau eines Untergraphen
- Bereitstellung unseres Untergraphen
- Lesen aus der Grafik
- Hosting unseres Dapps
Lektion 16: Hardhat -Upgrades
- Aktualisierbare Smart Contracts -Übersicht
- Arten von Upgrades
- Delegatecall
- Kleines Proxy -Beispiel
- Transparenter aufrüstbarer Smart -Vertrag
Lektion 17: Hardhat Daos
- Einführung
- Was ist ein Dao?
- Wie man einen Dao baut
Lektion 18: Sicherheit und Prüfung
- Einführung
- Slide
- Fuzzing- und ETH -Sicherheit Toolbox
- Gedanken schließen
Weitere Ressourcen
- Glückwunsch
- Wohin gehe ich jetzt?
- Mehr lernen
- Gemeinschaft
- Hackathons
Lektion 0: Die Kante des Kaninchenlochs
Willkommen auf dem Kurs!
⌨️ (00:00:00) Lektion 0: Willkommen bei Blockchain
Best Practices
- Folgen Sie dem Repository: Wenn Sie den Kurs durchlaufen, folgen Sie zu 100% mit dem Github -Repository. Wenn Sie in einem Problem treffen, überprüfen Sie die chronologischen Updates im Repo.
- Seien Sie in der Community aktiv: Stellen Sie Fragen und beschäftigen Sie sich mit anderen Entwicklern, die den Kurs auf der Registerkarte Diskussionen durchlaufen, unbedingt Hallo oder GM! Dieser Raum unterscheidet sich von den anderen Branchen, Sie müssen nicht geheim sein. kommunizieren, vernetzen und mit anderen lernen :)
- Lernen Sie in Ihrem eigenen Tempo: Es spielt keine Rolle, ob Sie einen Tag, eine Woche, einen Monat oder sogar ein Jahr brauchen. Fortschritt >>> Perfektion
- Machen Sie Pausen: Sie werden Ihren Geist ausschöpfen und sich weniger erinnern, wenn Sie alles rausgehen und den gesamten Kurs in einer Sitzung beobachten. Die vorgeschlagene Strategie alle 25 Minuten dauert eine 5 -minütige Pause und alle 2 Stunden dauern eine längere Pause von 30 Minuten
- Siehe Dokumentation: Die Dinge werden ständig aktualisiert. Wenn Patrick also eine Dokumentation eröffnet, öffnen Sie sie Ihr Ende und haben Sie möglicherweise sogar das Code -Beispiel neben Ihnen.
Lektion 1: Blockchain -Grundlagen
⌨️ (00:09:05) Lektion 1: Blockchain -Grundlagen
Was ist eine Blockchain? Was macht eine Blockchain?
- Bitcoin Whitepaper
- Ethereum Whitepaper
- Was ist ein intelligenter Vertrag?
- Nick Szabo
- Hybrid intelligente Verträge
- Blockchain -Orakel
- Terminologie
- Web3
- Was ist eine Blockchain
Der Zweck von intelligenten Verträgen
⌨️ (00:18:27) Der Zweck von intelligenten Verträgen
- ? Originalvideo
- ? Mein Eth Denver Talk
- ? McDonalds Skandal
- ⛓ Mehr zur Entwicklung von Vereinbarungen
- ✍️ Was ist ein intelligenter Vertrag?
- ? Wie funktioniert eine Blockchain?
- ? Kettenlink & Orakel
Andere Blockchain -Vorteile
⌨️ (00:30:41) Andere Blockchain -Vorteile
- Dezentral
- Transparenz und Flexibilität
- Geschwindigkeit und Effizienz
- Sicherheit und Unveränderlichkeit
- Entfernung des Gegenparteirisikos
- Vertrauen minimierte Vereinbarungen
Was haben intelligente Verträge bisher gemacht?
⌨️ (00:36:36) Was haben intelligente Verträge bisher abgeschlossen?
- Defi
- Defi Lama
- Warum Defi wichtig ist
- Daos
- Nfts
Machen Sie Ihre erste Transaktion
⌨️ (00:39:17) Machen Sie Ihre erste Transaktion
- Metamask -Download -Link
- Was ist ein privater Schlüssel?
- Was ist ein geheimer Satz?
- Ethercan
- Sepolia Ethercan
- Sepolia Faucet (Überprüfen Sie die Seite "Link Token Contracts).
- HINWEIS: Die ChainLink -Dokumentation hat immer die aktuellsten Wasserhähne auf der Seite "Link Token Contracts". Wenn der obige Wasserhahn unterbrochen ist, überprüfen Sie die ChainLink -Dokumentation für den aktuellsten Wasserhahn.
- Oder verwenden Sie den Sepolia -ETH -Wasserhahn, stellen Sie einfach Ihre Metamaske gegen Sepolia aus!
Gas I: Einführung in Gas
⌨️ (00:58:59) Gas I: Einführung in Gas
- Gas- und Gasgebühren
- Wei, Gwei und Ätherkonverter
- ETH -Tankstelle
Wie funktionieren Blockchains?
⌨️ (01:05:32) Wie funktionieren Blockchains
- Was ist ein Hash?
- Blockchain -Demo
- Zusammenfassung
Transaktionen signieren
⌨️ (01:22:55) Unterzeichnung von Transaktionen
- Öffentliche / private Schlüssel
- Schicht 2 und Rollups
- Dezentrale Blockchain -Orakel
Gas II
⌨️ (01:30:22) Gas II: Block Rewards & EIP 1559
- Blockprämien
- Fortgeschrittener Gas
- EIP 1559
- Gwei, Wei und Eth
Gas II Zusammenfassung
⌨️ (01:36:44) Gas II Zusammenfassung
- Führen Sie Ihren eigenen Ethereum -Knoten aus
Hochrangige Blockchain-Grundlagen
[⌨️ (01:39:32) Blockchain-Grundlagen mit hoher Blockchain] https://www.youtube.com/watch?v=GYMWXUJRBJQ&t=5972S ()
- Konsens
- Beweis des Pfahls
- Arbeitsprobe
- Nakamoto Konsens
- Ethereum 2 (die Zusammenführung)
???????????? Fertige Blockchain -Grundlagen! ????????????
Lektion 2: Willkommen bei Remix! Einfacher Speicher
⌨️ (02:01:16) Lektion 2: Willkommen bei Remix! Einfacher Speicher
Code: https://github.com/patrickalphac/simple-storage-fcc
Einführung
⌨️ (02:03:05) Einführung
- Remix
- Soliditätsdokumentation
Richten Sie Ihren ersten Vertrag ein
⌨️ (02:05:18) Einrichten Ihres ersten Vertrags einrichten
- Versioning
- Machen Sie sich Notizen in Ihrem Code!
- Was ist eine Softwarelizenz
- SPDX -Lizenz
- Kompilieren
- Vertragserklärung
Grundlesibilität: Typen
⌨️ (02:12:28) Grundlegende Soliditätstypen
- Typen und Variablen deklarieren
-
uint256 , int256 , bool , string , address , bytes32 - Soliditätstypen
- Bits und Bytes
- Standardinitialisierungen
- Kommentare
Grundlesibilität: Funktionen
⌨️ (02:18:40) Grundlegende Soliditätsfunktionen
- Funktionen
- Einsatz eines Vertrags
- Intelligente Verträge haben Adressen wie unsere Brieftaschen
- Rufen Sie eine öffentlich-staatliche Funktionsfunktion an
- Sichtweite
- Gas III | Ein Beispiel
- Umfang
- Ansicht und reine Funktionen
Grundlesibilität: Arrays & Strukturen
⌨️ (02:35:30) Grundlegende Soliditätsarrays & Strukturen
- Strukturen
- Intro in die Lagerung
- Arrays
- Dynamische und feste Größe
-
push -Array -Funktion
Grundlesibilität: Compiler -Fehler und Warnungen
⌨️ (02:45:35) Grundlegende Soliditätsfehler und Warnungen
- Gelb: Warnungen sind in Ordnung
- Rot: Fehler sind nicht in Ordnung
Speicher, Speicher, CallData (Intro)
⌨️ (02:46:34) Grundlegender Soliditätspeicher, Speicher und CallData (Intro)
- 6 Orte, an denen Sie Daten speichern und zugreifen können
- Calldata
- Erinnerung
- Lagerung
- Code
- Protokolle
- Stapel
Zuordnungen
⌨️ (02:50:17) Grundlegende Soliditätszuordnungen
Bereitstellung Ihres ersten Vertrags
⌨️ (02:53:38) Bereitstellen Ihres ersten Vertrags
- Ein Testnet oder ein Mainnet
- Metamaske anschließen
- Finden Sie hier einen Wasserhahn
- Sehen Sie die Wasserhähne oben in diesem Readme!
- Interaktion mit implementierten Verträgen
Die EVM & A -Zusammenfassung von Lektion 2
⌨️ (03:03:07) Die EVM & eine Zusammenfassung von Lektion 2
Lektion 3: Remix Storage Factory
⌨️ (03:05:34) Lektion 3: Remix Storage Factory
Code: https://github.com/patrickalphac/storage-factory-fcc
Einführung
⌨️ (03:06:06) Einführung
Grundlesibilität: Importieren von Verträgen in andere Verträge importieren
⌨️ (03:07:29) Importieren von Verträgen in andere Verträge importieren
- Komposition
- Solidität neues Schlüsselwort
- Code in Solidität importieren
Grund Solidität: Interaktion mit anderen Verträgen
⌨️ (03:16:36) mit anderen Verträgen interagieren
- Um zu interagieren, brauchen Sie immer: ABI + Adresse
- Abi
Grund Solidität: Vererbung & Überschreiung
⌨️ (03:25:23) Vererbung & Überschreiung
- Nachlass
- Überschreiben und virtuelles Schlüsselwort
Lektion 3 Zusammenfassung
⌨️ (03:30:29) Lektion 3 Zusammenfassung
Lektion 4: Remix finanzieren mich
⌨️ (03:31:55) Lektion 4: Remix Fund Me Me
Code: https://github.com/patrickalphac/fund-me-fcc
Einführung
Senden von ETH über eine Funktion & Rückkehrungen
- Felder in einer Transaktion
- Mehr zu V, R, s
- zahlbar
- MSG.Value & andere globale Schlüsselwörter
- erfordern
- zurückkehren
Kettenlink & Orakel
- Was ist ein Blockchain -Orakel?
- Was ist das Orakelproblem?
- Kettenlink
- Kettenlink -Preis -Feeds (Datenfutter)
- Kettenlink VRF
- Kettenlink Bewahrer
- Kettenlink -API -Aufrufe
- Importieren von Token in Ihre Metamaske
- Anfordern und Empfangen Sie das Kettenlink -Modell
Überprüfung des Sendens von ETH und der Arbeit mit ChainLink
Schnittstellen und Preisfeeds
- Kettenlink -Preis -Feeds (Datenfutter)
- Kettenlink GitHub
- Schnittstelle
Importieren von Github & NPM
Schwimmende Punktmathematik in Solidität
- Tupel
- Schwimmende Punktzahlen in Solidität
- Geben Sie Casting ein
- Gasschätzung ist fehlgeschlagen
- Jemand sollte einen Artikel erstellen, der diesen Fehler erklärt
Grundlesibilität: Arrays & Strukturen II
Überprüfung von Schnittstellen, Import von Github und Mathematik in Solidität
Bibliotheken
- Bibliothek
- Solidity-by-Example-Bibliothek
Safemath, Überlaufprüfung und das Schlüsselwort "Deaktiviert"
- Openzeppelin Safemath
- Deaktiviert gegen geprüft
Grund Solidität: Für Schleife
- Für Schleife
-
/* */ ist eine andere Möglichkeit, Kommentare abzugeben
Grundlesibilität: Ein Array zurücksetzen
ETH aus einem Vertrag senden
- Übertragen, senden, anrufen
- Dieses Schlüsselwort
Grundlesibilität: Konstruktor
Grundlesibilität: Modifikatoren
- Doppelt gleich
- Modifikator
Testnet -Demo
Erweiterte Solidität
Unveränderlich und konstant
- Unveränderlich
- Konstante
- Aktuelle ETH -Gaspreise
- Stress nicht über Gasoptimierungen! (noch)
- Benennung von Konventionen
Benutzerdefinierte Fehler
- Benutzerdefinierte Fehler Einführung
Erhalten und Fallback -Funktionen
- Soliditätsdokumente Spezielle Funktionen
- Zurückgreifen
- Erhalten
Lektion 4 Zusammenfassung
???????????? Fertigende Soliditätsgrundlagen! ????????????
Lektion 5: Ethers.js Einfacher Speicher
⌨️ (05:30:42) Lektion 5: Ether.js Einfacher Speicher
Code: https://github.com/patrickalphac/ethers-simple-storage-fcc
? Alchemie: https://alchemy.com/?a=673c802981
Effektive Debugging -Strategien und Hilfe erhalten
⌨️ (5:30:46) Effektive Debugging von StateGies und Hilfe
- Problem Bastler und Isolieren
- Nehmen Sie sich für diesen Kurs mindestens 15 Minuten Zeit, um einen Fehler herauszufinden.
- Google / Web suchen das genaue Problem
- Gehen Sie zu diesem GitHub Repo / Diskussionen
- Stellen Sie eine Frage in einem Forum wie Stack Exchange Ethereum oder Stapelüberlauf
- Formatieren Sie Ihre Fragen !!
- Verwenden Sie Markdown
Wie man etwas Video debugg
Installation & Setup
- Visual Studio -Code
- Nodejs
- VSCODE -Schlüsselbindungen
- Git
- Was ist ein Terminal?
Mac & Linux -Setup
Windows -Setup
- WSL
- Verwenden Sie bei der Arbeit in WSL Linux -Befehle anstelle von Windows -Befehlen
- Fehlerbehebung
-
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
Euen Bitte verwenden Sie Gitpod als absolutes letzte Ausweg
Gitpod
- Gitpod
- Wenn Sie dies verwenden, teilen Sie niemals einen privaten Schlüssel mit echtem Geld auf Gitpod mit
- Idealerweise finden Sie jedoch die Installation von MacOS, Linux oder Windows
Lokale Entwicklung Einführung
-
CMD + K oder CTRL + K löscht das Terminal -
mkdir ethers-simple-storage-fcc -
code . So öffnen Sie VSCODE in einem neuen VSCODE -Fenster
Optionale JavaScript -Crash -Kurse
NodeJS -Kurs
JavaScript -Kurs
Importieren Sie Ihren SimpleStorage.sol
Solidität + Hardhat VSCODE -Erweiterung
Formatieren Sie Ihren Soliditätscode mit:
"[solidity]": {
"editor.defaultFormatter": "NomicFoundation.hardhat-solidity"
},
"[javascript]":{
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
In Ihrer Datei .vscode/settings.json .
Tiny JavaScript -Auffrischung
Asynchrone Programmierung in JavaScript
- Asynchrone Programmierung
- asynchrisches Schlüsselwort
- Versprechen in JavaScript
- Keyword warten
Unsere Solidität zusammenstellen
- Garn installieren
- Solc-Js
- Garnskripte
Ganache & Netzwerke
- Ganache
- Netzwerke in Metamask
- RPC -URL
- Geth
- JSON RPC Spec Playplatz
Einführung in Ethers.js
- Ethers.js
- Schöner-Plugin-Solidität
Eine Notiz zum Keyword des Warteditels
Hinzufügen von Transaktionsvorschriften
Transaktionsbelege
Senden einer "rohen" Transaktion in Ethers.js
Interaktion mit Verträgen in ethers.js
- EVM -Dekompiler
- BIGNUMBER
Umgebungsvariablen
Besseres privates Schlüsselmanagement
- Wallet.encrypt
- Das .Env -Versprechen
Optionale hübscher Formatierung
- Hübscher
- Beste Readme -Vorlage
Bereitstellung in einem TestNet oder einem Hauptnetz
- Alchimie
- Holen Sie sich Ihren privaten Schlüssel aus Metamask
-
CTRL + C stoppt jeden Terminalbefehl
Überprüfen Sie Blockforscher aus der Benutzeroberfläche
Alchemie Dashboard und das Mempool
- Besonderer Gast Albert Hu
- Mempool
Lektion 5 Zusammenfassung
Typscript Ethers einfache Speicherung
Lektion 6: Hardhat Einfacher Speicher
⌨️ (08:20:17) Lektion 6: Hardhat einfacher Speicherplatz
Code: https://github.com/patrickalphac/hardhat-storage-fcc
Einführung
⌨️ (08:20:19) Einführung
Hardhat -Setup
⌨️ (08:22:47) Hardhat -Setup
- Hardhat -Dokumentation
- DevDependenzen gegen Abhängigkeiten
- @ Zeichenknotenmodule
Fehlerbehebung Hardhat -Setup
⌨️ (08:29:43) Fehlerbehebung bei Hardhat -Setup
- Besonderer Gast Cami Ramos Garzon
Hardhat Setup ging weiter
⌨️ (08:31:48) Hardhat Setup wurde fortgesetzt
Bereitstellung von SimpleStorage von Hardhat
⌨ Straf
Netzwerke in Hardhat
⌨️ (08:41:44) Netzwerke in Hardhat
- Das Hardhat -Netzwerk
- Hardhat -Konfiguration
- Ketten -ID -Liste
Programmatische Überprüfung
⌨️ (08:51:16) Programmatische Überprüfung
- Ethercan Tutorial überprüfen
- Ethercan -Dokumente
- Hardhat-Etherscan
- Ethercan API -Schlüssel
- JavaScript == vs ===
Interaktion mit Verträgen in Hardhat
⌨️ (09:06:37) mit Verträgen in Hardhat interagieren
Artefakte Fehlerbehebung
⌨️ (09:09:42) Artefakte Fehlerbehebung
Benutzerdefinierte Hardhat -Aufgaben
⌨️ (09:10:52) benutzerdefinierte Hardhat -Aufgaben
- Hardhat -Aufgaben
- JavaScript -Pfeilfunktionen
Hardhat Localhost Node
⌨️ (09:18:12) Hardhat Localhost -Knoten
Die Hardhat -Konsole
⌨️ (09:23:11) Die Hardhat -Konsole
Hardhat -Tests
⌨️ (09:26:13) Hardhat -Tests
- Hardhat -Tests
- Tests im Mokka -Stil
- Chai
- Waffeltests
Hardhat -Gasreporter
⌨️ (09:38:10) Hardhat -Gasreporter
- Hardhat -Gasreporter
- Coinmarketcap -API
Soliditätsabdeckung
⌨️ (09:44:40) Soliditätsabdeckung
Hardhat Waffel
⌨️ (09:47:02) Hardhat Waffle
Lektion 6 Zusammenfassung
⌨️ (09:47:37) Lektion 6 Zusammenfassung
Typscript Hardhat Einfacher Speicher
⌨️ (09:52:15) Typecript Hardhat einfacher Speicher
yarn add --dev @typechain/ethers-v5 @typechain/hardhat @types/chai @types/node @types/mocha ts-node typechain typescript
Lektion 7: Hardhat finanziert mich
⌨️ (10:00:48) Lektion 7: Hardhat Fonds mich
Code: https://github.com/patrickalphac/hardhat-fund-me-fcc
Einführung
⌨️ (10:00:50) Einführung
Hardhat Setup - finanzieren Sie mich
⌨️ (10:03:41) Hardhat Setup - finanzieren Sie mich
Linie
⌨️ (10:06:20) LINTING
- Eslint
- Solhint
- LINTING CODE
Hardhat Setup - finanzieren Sie mich - Fortsetzung
⌨️ (10:07:47) Hardhat Setup - finanzieren Sie mich - Fortsetzung
Importieren von NPM
⌨️ (10:09:38) Importieren von NPM
Hardhat -Einsatz
⌨️ (10:10:43) Hardhat -Bereitstellung
Verspottung
⌨️ (10:21:05) Verspottung
- Verspottung
- Aave Github
- Kettenlink GitHub
- Mehrere Versionen der Solidität
- Tags in Hardhat
Utils -Ordner
⌨️ (10:52:51) Utils -Ordner
Testnet Demo - Hardhat Fonds mich
⌨️ (10:55:45) testNet Demo - Hardhat Fonds mich
- Hardhat -Blockbestätigungen bereitstellen
Typoskript
- Codedatei (Typscript Edition)
- Definieren Sie BlockConfirmations in der Datei
helper-hardhat-config.ts anstelle von hardhat-config.js .
Leitfaden für Soliditätsstil
⌨️ (11:00:10) Leitfadenstil -Leitfaden
Tests finanzieren Sie mich
⌨️ (11:08:36) Testen finanzieren mich
- Unit -Tests
- Hardhat bereitstellen Vorrichtungen
- Ethers.getContract
- erwarten
- Ethers.utils.Parseunits
- Waffel Chai Matcher
Haltepunkte & Debugging
⌨️ (11:30:39) Haltepunkte & Debugging
Gas III
⌨️ (11:33:40) Gas III
- Transaktionsantwort
- Transaktionsbeleg
console.log & debugging
⌨️ (11:36:35) Konsole.log & Debugging
Prüffonds mich ii ii
⌨️ (11:37:31) Testfonds Me II II
Speicherung in Solidität
⌨️ (11:44:34) Speicherung in Solidität
- Speicherlayout
- Zweck des Speicherschlüsselworts
- GetStorageat
Gasoptimierungen unter Verwendung von Lagerkenntnissen
⌨️ (11:52:38) Gasoptimierungen mit Speicherwissen
- Opcodes
- Opcodes von Gas
- Opcodes von Gas
- STAUER
s_ an Speichervariablen anhängen - Gehen Sie
i_ an unveränderliche Variablen an - CAPS Lock und unterstreicht konstante Variablen
Solidity Chainlink Style Guide
⌨️ (12:05:29) Solidity Chainlink Style Guide
- Kettenlink -Soliditätsstil -Handbuch
Speicherprüfung
⌨️ (12:09:59) Speicherprüfung
Inszenierungstests
⌨️ (12:11:43) Inszenierungstests
Ausführen von Skripten auf einem lokalen Knoten
⌨️ (12:17:58) Ausführen von Skripten auf einem lokalen Knoten
Hinzufügen von Skripten zu Ihrem Paket.json
⌨️ (12:22:00) Hinzufügen von Skripten zu Ihrem Paket.json.json
Drücken nach GitHub
⌨️ (12:25:17) nach GitHub drängt
- Github QuickStart
- Was ist Git?
- Der QuickStart, dem wir im Video folgen
- Erfahren Sie mehr über Git und Github
? Twittern Sie mich (fügen Sie Ihr Repo hinzu)!
Lektion 8: HTML / JavaScript Fund Me (Full Stack / Front End)
⌨️ (12:32:57) Lektion 8: HTML / JavaScript Fund Me (Full Stack / Front End)
Code: https://github.com/patrickalphac/html-fund-me-fcc
Einführung
Wie Websites mit Web3 -Brieftaschen funktionieren
- So verbinden Sie Ihre intelligenten Verträge an Metamasking
- Code aus Video: https://github.com/patrickalphac/full-stack-web3-metamask-connectors
- ✍️ Artikel aus Video: https://betterprogramming.pub/everything-you-need-to-about-fullstack-web3-94c0f1b18019?sk=A2764BCBDAE98BF05E1052931DE77982
HTML -Setup
- Live Server: ExtensionID: Ritwickdey.LiveServer
HTML mit Metamaske anschließen
JavaScript in seiner eigenen Datei
ES6 vs Nodejs
- ES6 vs nodesjs
- Ethers Docs für Webbrowser
- Modul vs Text/JavaScript
Senden einer Transaktion von einer Website
- Web3Provider
- Hinzufügen eines Netzwerks zu Metamaske
Zurücksetzen eines Kontos in Metamask
MetaMask - RPC Error:
[ethjs-query] while formatting ouputs from RPC '{"value":{"code":-32603,"data":{"code":-32000,"message":"Nonce too high. Expected nonce to be 2 but got 4. Note that transactions can't be queued when automining."}}}'
Hören auf Ereignisse und abgeschlossene Transaktionen
- Provider.once
- Anonyme Funktion
- JavaScript -Versprechen
Eingangsformen
Lesen aus der Blockchain
Funktion abheben
Lektion 8 Zusammenfassung
Optionale Links:
Lektion 9: Hardhat Smart Contract Lotterie
⌨️ (13:41:02) Lektion 9: Hardhat Smart Contract Lotterie
Code: https://github.com/patrickalphac/hardhat-smartcontract-lottery-fcc
Einführung
Hardhat Setup - Smart Contract Lotterie
⌨️ (13:43:43) Hardhat -Setup
- Abhängigkeiten installieren:
yarn add --dev @nomiclabs/hardhat-ethers@npm:hardhat-deploy-ethers ethers @nomiclabs/hardhat-etherscan @nomiclabs/hardhat-waffle chai ethereum-waffle hardhat hardhat-contract-sizer hardhat-deploy hardhat-gas-reporter prettier prettier-plugin-solidity solhint solidity-coverage dotenv
- Abhängigkeiten installieren (TypeScript -Version):
yarn add --dev @nomiclabs/hardhat-ethers@npm:hardhat-deploy-ethers ethers @nomiclabs/hardhat-etherscan @nomiclabs/hardhat-waffle chai ethereum-waffle hardhat hardhat-contract-sizer hardhat-deploy hardhat-gas-reporter prettier prettier-plugin-solidity solhint solidity-coverage dotenv @typechain/ethers-v5 @typechain/hardhat @types/chai @types/node ts-node typechain typescript
Verlosung.Sol Setup
⌨️ (13:46:55) Verlosung.Sol Setup
- Benutzerdefinierte Fehler in der Solidität
Einführung in Ereignisse
⌨️ (13:54:02) Einführung in Ereignisse
- Events & Protokollierungsvideo
- Ereignisse und Anmeldung in Hardhat
Ereignisse in tomble.sol
⌨️ (14:00:47) Ereignisse in tela
Einführung in Chainlink VRF
⌨️ (14:02:30) Einführung in Chainlink VRF
- Besonderer Gast Stephen Fluin
Sub-Lesson: Chainlink VRF
- Kettenlink Vrfv2 Docs
- Kettenlink Vrfv2 Walkthrough
- Kettenlink -Verträge
Implementierung von ChainLink VRF - Einführung
⌨️ (14:09:53) Implementierung von ChainLink VRF
Hardhat Shorthand
Implementierung von ChainLink VRF - die Anfrage
Implementierung von ChainLink VRF - die Erfüllung
Modulo
Einführung in Chainlink Keepers
- ChainLink Keepers Docs
- Kettenlink -Keepers Walkthrough
Implementierung von ChainLink Keepers - Untersuchung
Aufschwung
Implementierung von ChainLink Keepers - Untersuchung wurde fortgesetzt
Implementierung von ChainLink Keepers - Performupkeepepe
Codereinigung
Verlosung einsetzen.sol
Mock Chainlink VRF -Koordinator
Fortsetzung
Tombola.Sol Unit -Tests
- Wir verwenden
async function in den Beschreibungsblöcken zu Beginn, nehmen sie jedoch später richtig heraus.
Testen von Ereignissen und Chai -Mattern
Fortsetzung i
Hardhat -Methoden und Zeitreisen
- Lassen Sie Hardhat tun, was Sie wollen, was Sie wollen
- Besonderes Debuggen von Hardhat -Methoden
Fortsetzung ii
Callstatic
Fortsetzung iii
Massiver Versprechen -Test
Fortsetzung iv
Verlosung.Sol -Staging -Tests
Testen auf einem Testnet
Empfohlene Linkbeträge für den Sepolia -Staging -Test:
- Kettenlink VRF: 2 Link
- Kettenlink -Keepers: 8 Link
Abschluss
TypeScript - Smart Contract Lotterie
???????????? Hardhat -Grundlagen abgeschlossen! ????????????
Lektion 10: NextJs Smart Contract Lotterie (Full Stack / Frontend)
⌨️ (16:34:07) Lektion 10: NextJs Smart Contract Lotterie (Full Stack / Front End)
Code: https://github.com/patrickalphac/nextjs-smartcontract-lottery-fcc
⚡️⚡️ Live Demo IPFS: IPFS: // QMXWACYJCS8TL7UKYWIMPQMQW9SKZSHUJE4USZBSYQVUEH
⚡️⚡️ Live Demo Fleek: https://fancy-dream-3458.on.fleek.co/
Einführung
Wir bewegen uns in die Verwendung von NextJs für unser vorderster Ende. NextJS ist ein React -Framework zum Erstellen von Websites.
Optionales Sub-Lesson: Vollständige Stapelentwicklung und andere Bibliotheken
- 6 Möglichkeiten, Ihre DAPP an eine Brieftasche zu verbinden
- NEXTJS CRASH COURS
- Andere React -Bibliotheken:
- Web3react
- Wagmi
- React-Moralis
- gebrauchtapp
- Web3Modal
- Usemetamask
- Andere vollständige Stack -Web3 -Vorlagen
- Gerüst
- Ethereum-Boilerplate
- Create-Eth-App
- Reagieren sehr beliebt zu sein
- Warum React React verwenden?
NextJS Setup
- NextJS -Dokumentation
- NEXTJS Minimal Ethers Beispiel für Lotterie
Handbuch Header i
- Was ist eine Komponente?
- JSX
- Moralis
- Reagieren moralis
Reagieren Haken
- Was ist ein React -Haken?
Handbuchkopf II
Nutzeffekthaken
- Nutzeffekthaken
- Mehr zu UseEffect
- Kontext reagieren
- Nutzen Sie zweimal das Brennen
Lokale Speicherung
ISWeb3Enabledloading
Web3uikit
- Web3uikit
- Web3Uikit Interactive Docs
- Web3uikit -Schaltfläche Verbinden
Einführung in die Anruffunktionen in NextJs
Automatischer UI -Updater konstanter Wert
- ETHERS.UTILS.FORMATTTYPES
RunconcontractFunction
- Moralis -Anbieter
- Usemoralis
- analysieren
ussten
Aufrufen von Funktionen in NextJs
Usenotifizierung
- Fügen Sie
onError zu allen Ihren runContractFunction -Aufrufen hinzu
Lesen und Anzeigen von Vertragsdaten
Ein Hinweis über onSuccess
-
onSuccess überprüft nur, ob Metamask die Transaktion sendet, nicht
Eine Herausforderung für Sie
Rückenwind & Styling
- CSS lernen
- Rückenwindcss
- Postcss -Erweiterung
- Rückenwindverlängerung
- Installieren Sie Rückenwind in NextJs
Einführung in die Hosting Ihrer Website
⌨️ (18:12:50) Einführung in die Hosting Ihrer Website
- Vercel
- Moralis
- Netilfy
- IPFS
IPFS
⌨️ (18:15:14) IPFS
Hosting auf IPFs
⌨️ (18:18:51) Hosting auf IPFS
- IPFS -Begleiter
- Tapferer Browser
-
yarn build && yarn next export
Hosting auf IPFS & Filecoin mit Fleek
⌨️ (18:25:45) Hosting auf IPFS & Filecoin mit Fleek
Filecoin -Übersicht
⌨️ (18:31:28) Filecoin -Übersicht
- Besonderer Gast Ally Hairire
- IPFS -URL von Allys Video
Lektion 10 Zusammenfassung
Lektion 11: Hardhat Starter Kit
⌨️ (18:51:36) Lektion 11: Hardhat Starter Kit
Code: https://github.com/smartcontractkit/hardhatstarter-kit
Lektion 12: Hardhat ERC20S
⌨️ (18:59:24) Lektion 12: Hardhat ERC20S
Code: https://github.com/patrickalphac/hardhat-erc20-fcc
Was ist ein ERC? Was ist ein EIP?
- Was ist ein EIP?
- EIPS -Codebasis
Was ist ein ERC20?
- Video (mit Brownie/Python)
- EIP-20
- ERC-677
- EIP-777
Manuell ein ERC20 -Token erstellen
Erstellen eines ERC20 -Tokens mit Openzeppelin
- Openzeppelin
- Openzeppelin -Verträge
- Solmate (Openzeppelin -Alternative)
Lektion 12 Zusammenfassung
Lektion 13: Hardhat Defi & aave
⌨️ (19:16:13) Lektion 13: Hardhat Defi & aave
Code: https://github.com/patrickalphac/hardhat-defi-fcc
Was ist Defi?
Was ist Aave?
- Aave
- Mein vorheriges Aave -Video über das Verknüpfen von Vermögenswerten
Programmatische Ausleihe und Kredite
Weth - Wickelte Eth
- Weth Token Sepolia Ethercan
- Weth Token Mainnet
Gabeln des Hauptnetzes
In aave ablegen
Ausleihen von aave
- Aave liehening faqs
- Gesundheitsfaktor
- Aave Risikoparameter
Rückzahlung mit aave
Visualisierung der Transaktionen
Lektion 13 Zusammenfassung
Happy Bow-Tie Friday mit Austin Griffith
- Besonderer Gast Austin Griffith!
- Speed Run Ethereum
Weitere Defi -Erkenntnisse:
Lektion 14: Hardhat NFTs (alles, was Sie über NFTs wissen müssen)
⌨️ (20:28:51) Lektion 14: Hardhat Nfts
Code: https://github.com/patrickalphac/hardhat-nft-fcc
Was ist ein NFT?
- Video
- Optional: Alle auf der Kette SVG NFT
- EIP-721
Codeübersicht
Hardhat -Setup
Basic NFT
Tests schreiben
Zufällige IPFS NFT
Mapping ChainLink VRF -Anfragen
Seltene NFTs schaffen
Festlegen des NFT -Bildes
Setzen Sie einen NFT -Münzpreis
Skript bereitstellen
Hochladen von Token -Bildern mit Pinata
- Pinata
- Nft.Storage
- Pinata NPM
- Pinata Docs
Hochladen von Token -URIs (Metadaten) mit Pinata
Bereitstellung
Tests
Dynamisches SVG On-Chain NFT
Was ist ein SVG?
Anfangscode
Base64 Codierung
- Base64 Codierung
- Base64-Sol
Fortgeschrittene: EVM -Opcodes, Codierung und Anruf
ABI.CODE & ABI.ENCODEPACKED
- ABI.CODE
- Abi.encodepack dank Alex Roan für seine Hilfe in dieser Sitzung!
- Beispiel für Vertragserstellung Transaktion Was ist wirklich der ABI?
- EVM Opcodes
- Mehr EVM -Opcodes
- Soliditätsbaumblatt
- ABI.CODE vs Abi.encodepacked
Einführung in die Codierungsfunktion Aufrufe direkt
Einführung in die Codierungsfunktion Aufrufe der Zusammenfassung
Codierungsfunktion Aufrufe direkt
- Funktionsauswahl
- Funktionssignatur
Erstellen eines NFT-Tokenuri-Onketten
Die NFT dynamisch machen
Skript bereitstellen
Bereitstellung der NFTs in einem Testnet
Lektion 14 Zusammenfassung
Zusätzliche Gutschrift:
- Dekonstruktion von Solidität
- Kennen und Kontrolle Ihrer intelligenten Vertragsadresse
- Von Solidität zu Byte -Code
Lektion 15: NextJS NFT Marketplace (Wenn Sie diese Lektion beenden, sind Sie ein Full-Stack-Monster!)
⌨ Straf
Großes Update, bitte lesen
Moralis hat kürzlich über seinen eigenen Server auf einen selbst gehosteten Server aktualisiert. Dafür können Sie eine der folgenden:
- Erfahren Sie, wie man selbst einen leitet
- Folgen Sie mit, um die Konzepte dieser interaktiveren App zu erfahren, ohne tatsächlich zu codieren
- Überspringen Sie zu dem Abschnitt, in dem wir mit der Grafik interagieren
TL; DR: TheGraph Code sollte genauso wie das Video funktionieren, der Moralis -Code jedoch nicht.
Code:
- Backend (Verträge): https://github.com/patrickalphac/hardhat-nft-marketplace-fcc
- Frontend (Moralis Indexer): https://github.com/patrickalphac/nextjs-nft-marketplace-moralis-fcc
- Frontend (TheGraph Indexer): https://github.com/patrickalphac/nextjs-nft-marketplace-thegraph-fcc
- Das Diagramm: https://github.com/patrickalphac/graph-nft-marketplace-fcc
Special thanks to Matt Durkin for help with this section.
Einführung
Part I: NFT Marketplace Contracts
Hardhat Setup
NftMarketplace.sol
Reentrancy
- Reentrancy
- Rekt.news
- Openzeppelin NonReentrant
NftMarketplace.sol - Continued
NftMarketplace.sol - Deploy Script
NftMarketplace.sol - Tests
NftMarketplace.sol - Scripts
Part II: Moralis Front End
What is Moralis?
- Special Guest Ivan Liljeqvist
NextJS Setup
Adding Tailwind
Introduction to Indexing in Web3
Connecting Moralis to our Local Hardhat Node
- NextJS Environment Variables
- Reverse Proxy FRP
- Moralis Forum
- Moralis Admin CLI
Moralis Event Sync
- Moralis Add Event Sync From Code
Reset Local Chain
Moralis Cloud Functions
- Moralis Cloud Functions
- Moralis Logging
- Hardhat Network Reference
- Moralis Database only confirms a transaction with a block confirmation - so we need to move blocks on our hardhat local node.
- Moralis Triggers
Practice Resetting the Local Chain
Moralis Cloud Functions II
Querying the Moralis Database
Rendering the NFT Images
- useNFTBalance
- bringen
- next/image
Update Listing Modal
Buy NFT Listing
Listing NFTs for Sale
Part III: TheGraph Front End
Einführung
What is The Graph?
- Special Guest Nader Dabit
Building a Subgraph
- Example Subgraphs
- The Graph Studio
- GraphQL VSCode Extension
- Graphql
Deploying our Subgraph
Reading from The Graph
- @apollo/client
- gql
- The Graph Docs
Hosting our Dapp
???????????? Completed Front End Basics! ????????????
Lesson 16: Hardhat Upgrades
⌨️ (28:53:11) Lesson 16: Hardhat Upgrades
Code: https://github.com/PatrickAlphaC/hardhat-upgrades-fcc
Upgradable Smart Contracts Overview
- Optional Video
- [Links from Video]
Types of Upgrades
- Parameter
- Social Migrate
- Proxy
- Proxy Gotchas
- Function Collisions
- Storage Collisions
- Metamorphic Upgrades
- Transparent
- UUPS
- Diamant
Delegatecall
- delegatecall (solidity-by-example)
- Yul
Small Proxy Example
Transparent Upgradable Smart Contract
- Hardhat-deploy Proxies
- Openzeppelin Upgrades Plugin
- Openzeppelin upgrades tutorial
- hardhat deploy upgrades examples
Lesson 17: Hardhat DAOs
⌨️ (29:45:24) Lesson 17: Hardhat DAOs
⬆️ Up-to-date code: https://github.com/PatrickAlphaC/dao-template
Code from video: https://github.com/PatrickAlphaC/hardhat-dao-fcc
Einführung
What is a DAO?
How to build a DAO
- How to build a DAO
- That's Patrick
- PY Code
- Python Video
- Openzeppelin Governance
- Compound Governance
- Contract Wizard
- CastVoteBySig
Lesson 18: Security & Auditing
⌨️ (31:28:32) Lesson 18: Security & Auditing
Code: https://github.com/PatrickAlphaC/hardhat-security-fcc
Einführung
Slither
- Install python
- Slither
- solc-select
- Fuzz testing
Fuzzing and Eth Security Toolbox
- Echidna
- Docker Install
- Eth-Security-ToolBox
Gedanken schließen
- Best Practices
- Angriffe
- Oracle Attacks
- Re-entrancy Attacks
- Damn Vulnerable Defi
- Ethernaut
- Some Auditors:
- OpenZeppelin
- SigmaPrime
- Trail of Bits
Glückwunsch
???????????? Completed The Course! ????????????
Where do I go now?
Learning More
- CryptoZombies
- Patrick Collins
- Dapp University
- ChainShot
- Cami Ramos Garzon
- Albert Hu
- Ivan Liljeqvist
- Ally Haire
- Stephen Fluin
- Eat the Blocks
- Austin Griffith
- Nader Dabit
- Ethereum.org
Gemeinschaft
- Twitter
- Hardhat Discord
- Ethereum Python Community Discord
- Chainlink Discord
- Ethereum Discord
- Reddit ethdev
Hackathons
- CL Hackathon
- ETHGlobal
- ETHIndia
Be sure to check out project grant programs!
And make today an amazing day!
Danke
Thanks to everyone who is taking, participating in, and working on this course. It's been a passion project and a data dump of everything I've learnt in the web3 space to get you up to speed quickly. Also, a big thank you to Chainlink Labs for encouraging this course to come to light-and to the many Chainlink Labs team members who helped with various assets!