Spencer-Sch / blockchain-solidity-full-stack-web3-course

Learning full stack web3 through FreeCodeCamp course

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Learn Blockchain, Solidity, and Full Stack Web3 Development with JavaScript

Section 0: Welcome To Blockchain - 00:00:00 - 00:09:05

  • Welcome to the course!
  • Best Practices
  • Section Complete

Section 1: Blockchain Basics - 00:09:05 - 02:01:16

  • What is a Blockchain? What does a blockchain do?
  • The Purpose Of Smart Contracts
  • Other Blockchain Benefits
  • What have Smart Contracts done so far?
  • Making Your First Transaction
  • Gas I: Introduction to Gas
  • How Do Blockchains Work?
  • Signing Transactions
  • Gas II
  • High-Level Blockchain Fundamentals
  • Section Complete

Section 2: Welcome to Remix! Simple Storage - 02:01:16 - 03:05:34

  • Introduction
  • Setting Up Your First Contract
  • Basic Solidity: Types
  • Basic Solidity: Functions
  • Basic Solidity: Arrays & Structs
  • Basic Solidity: Compiler Errors and Warnings
  • Memory, Storage, Calldata (Intro)
  • Mappings
  • Deploying your First Contract
  • The EVM & A Recap of Lesson 2
  • Section Complete

Section 3: Remix Storage Factory - 03:05:34 - 03:31:55

  • Introduction
  • Basic Solidity: Importing Contracts into other Contracts
  • Basic Solidity: Interacting with other Contracts
  • Basic Solidity: Inheritance & Overrides
  • Lesson 3 Recap
  • Section Complete

Section 4: Remix Storage Factory - 03:31:55 - 05:30:42

  • Introduction
  • Sending ETH Through a Function & Reverts
  • Chainlink & Oracles
  • Review of Sending ETH and working with Chainlink
  • Interfaces & Price Feeds
  • Importing from GitHub & NPM
  • Floating Point Math in Solidity
  • Basic Solidity: Arrays & Structs II
  • Review of Interfacs, Importing from GitHub, & Math in Solidity
  • Libraries
  • SafeMath, Overflow Checking, and the "unchecked" keywork
  • Basic Solidity: For Loop
  • Basic Solidity: Resetting an Array
  • Sending ETH from a Contract
  • Basic Solidity: Constructor
  • Basic Solidity: Modifiers
  • Testnet Demo
  • Advanced Solidity
    • Immutable & Constant
    • Custom Errors
    • Receive & Fallback Functions
    • Lesson 4 Recap
  • Section Complete

Section 5: Ethers.js Simple Storage - 05:30:42 - 08:20:19

  • Effective Debugging Strategies & Getting Help
    • How to Debug Anything Video
  • Installation & Setup
    • Mac & Linux Setup
    • Windows Setup
    • Gitpod
  • Local Development Introduction
    • Optional Javascript Crash Courses
  • Tiny Javascript Refresher
  • Asynchronous Programming in Javascript
  • Compiling our Solidity
  • Ganache & Networks
  • Introduction to Ethers.js
    • A Note on the await Keyword
  • Adding Transaction Overrides
  • Transaction Receipts
  • Sending a "raw" Transaction in Ethersjs
  • Interacting with Contracts in Ethersjs
  • Environment Variables
  • Better Private Key Management
  • Optional Prettier Formatting
  • Deploying to a Testnet or a Mainnet
  • Verifying on Block Explorers from the UI
  • Alchemy Dashboard & The Mempool
  • Lesson 5 Recap
    • Typescript Ethers Simple Storage
  • Section Complete

Section 6: Hardhat Simple Storage - 08:20:19 - 10:00:49

  • Introduction
  • Hardhat Setup
    • Troubleshooting Hardaht Setup
  • Hardhat Setup Continued
  • Deploying SimpleStorage from Hardhat
  • Networks in Hardhat
  • Programatic Verification
  • Interacting with Contracts in Hardhat
  • Artifacts Troubleshooting
  • Custom Hardhat Tasks
  • Hardhat Localhost Node
  • The Hardhat Console
  • Hardhat Tests
  • Hardhat Gas Reporter
  • Solidity Coverage
  • Hardhat Waffle
  • Lesson 6 Recap
    • Typescript Hardhat Simple Storage
  • Section Complete

Section 7: Hardhat Fund Me - 10:00:49 - 12:32:57

  • Introduction
  • Hardhat Setup - Fund Me
  • Linting
  • Hardhat Setup - Fund Me - Continued
  • Importing from NPM
  • Hardhat Deploy
  • Mocking
  • Utils Folder
  • Testnet Demo - Hardhat Fund Me
  • Solidity Style Guide
  • Testing Fund Me
  • Breakpoints & Debugging
  • Gas III:
  • console.log & Debugging
  • Testing Fund Me II
  • Storage in Solidity
  • Gas Optimizations using Storage Knowledge
  • Solidity Chainlink Style Guide
  • Storage Review
  • Staging Tests
  • Running Scripts on a Local Node
  • Adding Scripts to your package.json
  • Pushing to GitHub
  • 🐸🐦 Tweet Me (add your repo in)!
  • Section Complete

Section 8: HTML / Javascript Fund Me (Full Stack / Front End) - 12:32:57 - 13:41:05

  • Introduction
  • How Websites work with Web3 Wallets
  • HTML Setup
  • Connecting HTML to Metamask
  • Javascript in it's own file
  • ES6 vs Nodejs
  • Sending a transaction from a Website
  • Resetting an Account in Metamask
  • Listening for Events and Completed Transactions
  • Input Forms
  • Reading from the Blockchain
  • Withdraw Function
  • Lesson 8 Recap
    • Optional Links
  • Section Complete

Section 9: Hardhat Smart Contract Lottery - 13:41:05 - 16:34:09

  • Introduction
  • Hardhat Setup - Smart Contract Lottery
  • Raffle.sol Setup
  • Introduction to Events
  • Events in Raffle.sol
  • Introduction to Chainlink VRF
    • Sub-Lesson: Chainlink VRF
  • Implementing Chainlink VRF - Introduction
    • Hardhat Shorthand
  • Implementing Chainlink VRF - The Request
  • Implementing Chainlink VRF - The FulFill
    • Modulo
  • Introduction to Chainlink Keepers
  • Implementing Chainlink Keepers - checkUpkeep
    • Enums
  • Implementing Chainlink Keepers - checkUpkeep continued
  • Implementing Chainlink Keepers - performUpkeep
  • Code Cleanup
  • Deploying Raffle.sol
    • Mock Chainlink VRF Coordinator
    • Continued
  • Raffle.sol Unit Tests
    • Testing Events & Chai Matchers
    • Continued I
  • Hardhat Methods & Time Travel
    • Continued II
  • Callstatic
    • Continued III
    • Massive Promise Test
    • ontinued IV
  • Raffle.sol Staging Tests
  • Testing on a Testnet
    • Recommended LINK amounts for Sepolia Staging Test:
  • Conclusion
  • Typescript - Smart Contract Lottery
  • Section Complete

Lesson 10: NextJS Smart Contract Lottery (Full Stack / Front End) 16:34:09 - 18:51:38

  • Introduction
    • Optional Sub-Lesson: Full Stack Development & Other Libraries
  • NextJS Setup
  • Manual Header I
    • React Hooks
  • Manual Header II
  • useEffect Hook
  • Local Storage
  • isWeb3EnabledLoading
  • web3uikit
  • Introduction to Calling Functions in Nextjs
    • Automatic Constant Value UI Updater
    • runContractFunction
  • useState
  • Calling Functions in NextJS
  • useNotification
  • Reading & Displaying Contract Data
  • A Note about onSuccess
  • A Challenge to You
  • Tailwind & Styling
  • Introduction to Hosting your Site
  • IPFS
  • Hosting on IPFS
  • Hosting on IPFS & Filecoin using Fleek
  • Filecoin Overview
  • Lesson 10 Recap
  • Section Complete

Lesson 11: Hardhat Starter Kit 18:51:38 - 18:59:25

  • Overview of Hardhat Starter Kit
  • Section Complete

Lesson 12: Hardhat ERC20s 18:51:38 - 19:16:14

  • What is an ERC? What is an EIP?
  • What is an ERC20?
  • Manually Creating an ERC20 Token
  • Creating an ERC20 Token with Openzeppelin
  • Lesson 12 Recap
  • Section Complete

Lesson 13: Hardhat DeFi & Aave 19:16:14 - 20:28:52

  • What is DeFi?
  • What is Aave?
  • Programatic Borrowing & Lending
  • WETH - Wrapped ETH
  • Forking Mainnet
  • Depositing into Aave
  • Borrowing from Aave
  • Repaying with Aave
  • Visualizing the Transactions
  • Lesson 13 Recap
  • Happy Bow-Tie Friday with Austin Griffith
    • More DeFi Learnings:
  • Section Complete

Lesson 14: Hardhat NFTs (EVERYTHING you need to know about NFTs) 20:28:52 - 23:37:03

  • What is an NFT?
  • Code Overview
  • Hardhat Setup
  • Basic NFT
    • Write Tests
  • Random IPFS NFT
    • Mapping Chainlink VRF Requests
    • Creating Rare NFTs
    • Setting the NFT Image
    • Setting an NFT Mint Price
    • Deploy Script
    • Uploading Token Images with Pinata
    • Uploading Token URIs (metadata) with Pinata
    • Deploying
    • Tests
  • Dynamic SVG On-Chain NFT
    • What is an SVG?
    • Initial Code
    • Base64 Encoding
  • Advanced: EVM Opcodes, Encoding, and Calling
    • abi.encode & abi.encodePacked
    • Introduction to Encoding Function Calls Directly
    • Introduction to Encoding Function Calls Recap
    • Encoding Function Calls Directly
    • Creating an NFT TokenURI on-Chain
    • Making the NFT Dynamic
    • Deploy Script
  • Deploying the NFTs to a Testnet
  • Lesson 14 Recap
  • Section Complete

Lesson 15: NextJS NFT Marketplace 23:37:03 - ???

  • Introduction
  • Part I: NFT Marketplace Contracts
    • Hardhat Setup
    • NftMarketplace.sol
  • Reentrancy
    • NftMarketplace.sol - Continued
    • NftMarketplace.sol - Deploy Script
    • NftMarketplace.sol - Tests
    • NftMarketplace.sol - Scripts
  • Part II: Moralis Front End
    • What is Moralis?
    • NextJS Setup
    • Adding Tailwind
    • Introduction to Indexing in Web3
    • Connecting Moralis to our Local Hardhat Node
    • Moralis Event Sync
      • Reset Local Chain
    • Moralis Cloud Functions
      • Practice Resetting the Local Chain
    • Moralis Cloud Functions II
    • Querying the Moralis Database
    • Rendering the NFT Images
    • Update Listing Modal
    • Buy NFT Listing
    • Listing NFTs for Sale
  • Part III: TheGraph Front End
    • Introduction
    • What is The Graph?
    • Building a Subgraph
    • Deploying our Subgraph
    • Reading from The Graph

pick up at 1:04:47:22

About

Learning full stack web3 through FreeCodeCamp course