Lesson 0: Welcome To Blockchain (00:09:05) Lesson 1: Blockchain Basics (00:18:26): The purpose of Smart
Contracts (00:39:17): Your First Transaction (00:59:00): Gas I: Introduction to Gas (01:05:32): How do
Blockchains work? (01:22:56): Signing Transactions (01:30:23): Gas II: Block Rewards & EIP 1559
(01:39:33): High-Level Blockchain Fundamentals (02:01:16) Lesson 2: Welcome to Remix! Simple Storage
(02:05:17): Setting Up Your first Contract (02:12:29): Basic Solidity - Types (02:18:42): Basic Solidity -
Functions (02:35:30): Basic Solidity - Arrays & Structs (02:45:34): Basic Solidity - Errors & Warnings
(02:46:35): Basic Solidity - Memory, Storage & Calldata(Intro) (02:50:17): Basic Solidity - Mappings
(02:53:38): Deploying your First Contract (03:03:08): The EVM & A Recap of Lesson 2 (03:05:34) Lesson 3:
Remix Storage Factory (03:07:29): Importing Contracts into other Contracts (03:16:37): Interacting with other
contracts (03:25:24): Inheritance & Overrides (03:30:31): Lesson 3 Recap (03:31:55) Lesson 4: Remix Fund
Me (03:34:12): Sending Eth Through A function & Reverts (03:42:35): Chainlink & Oracles (04:00:31):
Review - Sending ETH And working with Chainlink (04:01:54): Interfaces & Price Feeds (04:09:10):
Importing from GitHub & NPM (04:11:09): Floating Point Math in Solidity (04:21:59): Basic Solidity - Arrays
& Structs II (04:23:51): Review - Interfaces, GitHub Imports, & Math in Solidity (04:25:03): Libraries
(04:29:54): SafeMath, Overflow Checking, and the "unchecked" keyword (04:34:29): Basic Solidity - For
Loop (04:42:01): Basic Solidity - Resetting an Array (04:42:36): Sending ETH from a Contract (04:50:26):
Basic Solidity Constructor (04:53:20): Basic Solidity Modifiers (04:56:34): Testnet Demo (05:04:33):
Advanced Solidity Concepts (05:05:41): Advanced Solidity - Immutable & Constant (05:12:57): Advanced
Solidity - Custom Errors (05:15:45): Advanced Solidity - Receive & Fallback (05:27:59): Lesson 4 - Recap
(05:30:42) Lesson 5: Ethers.js Simple (05:30:46): Effective Debugging Stratetgies & Getting Help (05:41:53):
How to Debug Anything (05:53:47): Installation & Setup - Moving to local development (06:02:39): Windows
Install (06:12:49): Working with Gitpod (06:17:00): Local Development Introduction (06:34:06): Tiny
Javascript Refresher (06:38:07): Asynchronous programming in Javascript (06:46:16): Compiling our Solidity
(06:55:12): Ganache & Networks (07:00:10): Introduction to Ethers.js (07:08:39): A note on the await
keyword (07:10:24): Adding Transaction Overrides (07:12:18): Transaction Receipts (07:14:56): Sending a
"raw transaction in ethersjs (07:24:57): Interacting with Contracts in Ethersjs (07:34:09): Environment
Variables (07:54:00): Optional Prettier Formatting (07:57:52): Deploying to a Testnet or a Mainnet (08:04:28):
Verifying on Block Explorers (From the UI) (08:14:19): Lesson 5 Recap (08:17:08): Optional: Typescript
(08:20:17) Lesson 6: Hardhat Simple Storage (08:29:42) Hardhat Setup Troubleshooting (08:31:50) Hardhat
Setup Continued (08:33:10): Deploying SimpleStorage from Hardhat (08:41:44): Networks in Hardhat
(08:51:15) Programmatic Verification (09:06:36): Interacting with Contracts in Hardhat (09:09:40) Artifacts
Troubleshooting (09:10:50) Custom Hardhat Tasks (09:18:13) Hardhat Localhost Node (09:23:10) The
Hardhat Console (09:26:13) Running Tests (09:38:11) Hardhat Gas Reporter (09:44:40) Solidity Coverage
(09:47:01) Hardhat Waffle (09:47:37) Lesson 6 Recap (09:52:20) Lesson 6 Typescript (10:00:48) Lesson 7:
Hardhat Fund Me (10:03:41): Hardhat Setup (10:06:21): Linting (10:07:47): Hardhat Setup Continued
(10:09:38): Importing from NPM (10:10:42): Hardhat Deploy (10:21:06): Mocking & helper-hardhat-config
(10:52:51): Utils Folder (10:55:44): Testnet Demo (11:00:10): Solidity Style Guide (11:08:37): Testing Fund
Me (11:30:40): Breakpoints & Debugging (11:33:39): Gas III (11:36:34): console.log & Debugging
(11:37:30): Testing Fund Me II (11:44:34): Storage in Solidity (11:52:38): Gas Optimizations using storage
knowledge (12:05:29): Solidity Chainlink Style Guide (12:09:59): Storage Review (12:11:43): Staging Tests
(12:17:57): Running Scripts on a Local Node (12:22:00): Adding scripts to your package.json (12:25:16):
Pushing to Github (12:32:57) Lesson 8: HTML / Javascript Fund Me (Full Stack / Front End) (12:45:34):
HTML Setup (12:50:11): Connecting HTML to Metamask (12:57:09): javascript in its own file (12:59:13):
ES6 (Front End JS) vs NodeJS (13:07:58): Sending a Transaction from a Website (13:19:01): Resetting an
account in Metamask (13:20:07): Listening for events and Completed Transactions (13:30:42): Input Forms
(13:33:34): Reading from the Blockchain (13:35:51): Withdraw Function (13:38:53): Lesson 8 Recap
(13:41:02) Lesson 9: Hardhat Smart Contract Lottery (13:43:45): Hardhat Setup (13:46:57): Raffle.sol Setup
(13:54:03): Introduction to Events (14:00:49): Events in Raffle.sol (14:02:30): Introduction to Chainlink VRF
(Randomness in Web3) (14:09:53): Implementing Chainlink VRF (Introduction) (14:14:31): Hardhat
Shorthand (14:15:31): Implementing Chainlink VRF - The Request (14:22:57): Implementing Chainlink VRF -
The Fulfill (Modulo) (14:25:32): Implementing Chainlink VRF - The Fulfill (continued) (14:28:27):
Introduction to Chainlink Keepers (14:34:46): Implementing Chainlink Keepers (checkUpKeep) (14:38:52):
Enums (14:42:05): Implementing Chainlink Keepers (checkUpKeep- continued) (14:47:15): Implementing
Chainlink Keepers (performUpKeep) (14:50:37): Code CleanUp (14:56:00): Deploying Raffle.sol (15:04:29):
Deploying Raffle.sol (Mock Chainlink VRF Coordinator) (15:10:47): Deploying Raffle.sol - continued
(15:20:08): Raffle.sol Unit Tests (15:30:20): Testing Events & Chai Matchers (15:31:30): Raffle.sol unit Tests
Continued (15:32:45): Hardhat Methods & "Time Travel" (15:37:10): Raffle.sol unit Tests Continued II
(15:38:23): Callstatic (15:39:59): Raffle.sol unit Tests Continued III (15:52:11): Massive Promise Test
(16:02:32): Fixing spelling error and Run Tests (16:07:25): Raffle.sol unit Tests Continued IV (16:07:44):
Raffle.sol Staging Tests (16:18:19): Testing on a Testnet (16:30:57): Smart Contract Lottery Conclusion
(16:32:40): Typescript (16:34:07) Lesson 10: NextJS Smart Contract Lottery (Full Stack / Front End)
(16:40:37): NextJS setup (16:48:44): Manual Header I (16:58:44): React Hooks (17:01:05): Manual Header II
(17:05:23): useEffect Hook (17:10:29): Local Storage (17:18:24): isWeb3Enable Loading (17:19:26):
web3uikit (17:22:25): Introduction to Calling Functions in NextJS (17:26:30): Automatic Constant Value UI
Updater (17:38:37): runContractFunction (17:45:59): useState (17:49:50): Calling Functions in NextJS
(17:52:58): useNotification (17:58:05): Reading & Displaying Contract Data (18:02:55): A note about
onSuccess (18:03:24): A Challenge to You (18:04:13): Tailwind & Styling (18:12:51): Introduction to Hosting
your site (18:15:15): IPFS (18:18:52): Hosting on IPFS (18:25:45): Hosting on IPFS & Filecoin using Fleek
(18:31:27): Filecoin Overview (18:46:41): Lesson 10 Recap (18:51:36) Lesson 11: Hardhat Starter Kit
(18:59:24) Lesson 12: Hardhat ERC20s (18:59:28): What is an ERC? What is an EIP? (19:01:41): What is am
ERC20? (19:03:04): Manually Creating an ERC20 Token (19:09:24): Creating an ERC20 Token with
Openzeppelin (19:14:27): Lesson 12 Recap (19:16:13) Lesson 13: Hardhat DeFi & Aave (19:16:17): what is
DeFi? (19:19:58): What is Aave? (19:25:48): Programatic Borrowing & Lending (19:30:51): WETH Wrapped
ETH (19:38:12): Forking Mainnet (19:45:21): Depositing into Aave (19:57:42): Borrowing from Aave
(20:12:02): Repaying with Aave (20:14:58): Visualizing the Transactions (And aTokens) (20:17:05): Recap
lesson 13 (20:28:51) Lesson 14: Hardhat NFTs (23:37:03) Lesson 15: NextJS NFT Marketplace (Full Stack /
Front End) (28:53:11) Lesson 16: Hardhat Upgrades (29:45:24) Lesson 17: Hardhat DAOs (31:28:32) Lesson
18: Security & Auditing