Learn Blockchain, Solidity, and Full Stack Web3 Development with Javascript
Go to file
2022-03-26 11:52:33 -04:00
.outline.md wip 2022-03-06 23:31:25 -05:00
cronological-updates.txt added updates file 2022-03-26 11:52:33 -04:00
README.md added rec testnet 2022-03-26 11:48:53 -04:00

Welcome to the repository for the Ultimate Solidity, Blockchain, and Smart Contract - Beginner to Expert Full Course | Javascript Edition FreeCodeCamp course!

All code references have both a javascript and a typescript edition.

Recommended Testnet: Rinkeby

Resources For This Course

Questions

Table of Contents

Lesson 0: Welcome To Blockchain

What is a Blockchain?

Making Your First Transaction

How Do Blockchains Work?

Consensus

Lesson 1: Welcome to Remix! Simple Storage

💻 Code: https://github.com/PatrickAlphaC/simple_storage

Everything in this section can be read about in the Solidity Documentation

Remix

Basic Solidity

  • Versioning
  • Compiling
  • Contract Declaration
  • Types & Declaring Variables
    • uint256, int256, bool, string, address, bytes32
  • Default Initializations
  • Comments
  • Functions
  • Deploying a Contract
  • Calling a public state-changing Function
  • Visibility
  • Scope
  • View & Pure Functions
  • Structs
  • Intro to Storage
  • Arrays - Dynamic & Fixed sized
  • Compiler Errors and Warnings
  • Memory, storage, calldata
  • Mappings
  • SPDX License
  • Recap

Deploying to a "Live" network

  • A testnet or mainnet
  • Find a faucet here
  • Connecting Metamask
  • Interacting with Deployed Contracts
  • The EVM

Lesson 2: Storage Factory

💻 Code: https://github.com/PatrickAlphaC/storage_factory

Inheritance, Factory Pattern, and Interacting with External Contracts

  • Factory Pattern
  • Imports
  • Deploy a Contract From a Contract
  • Interact With a Deployed Contract
  • Recap

Lesson 3: Fund Me

💻 Code: https://github.com/PatrickAlphaC/fund_me

Payable, msg.sender, msg.value, Units of Measure

Importing from NPM and Advanced Solidity

  • Decimals/Floating Point Numbers in Solidity
  • latestRoundData
  • Importing from NPM in Remix
  • Interfaces
    • Introduction to ABIs
  • Getting Price Feed Addresses
  • getPrice
  • Tuples
    • Unused Tuple Variables
  • Matching Units (WEI/GWEI/ETH)
  • getConversionRate
  • Matching Units (Continued)
  • SafeMath & Integer Overflow
  • Setting a Threshold
  • Require
  • Revert
  • Withdraw Function
  • Transfer
  • Balance
  • this
  • Contract Owners
  • Constructor
  • ==
  • Modifiers
  • Resetting
  • for loop
  • Array Length
  • Forcing a Transaction
  • Recap

Lesson 4: Web3.js Simple Storage

💻 Code:

Installing VSCode, Python, and Web3

Our First Python Script with Web3.js - Deploying a Contract

Interacting with Our Contract in Javascript & Web3.js

Lesson 5: Hardhat Simple Storage

Hardhat Introduction

Installing Hardhat

Testing Basics

[Hardhat console]

  • brownie console

Lesson 6: Hardhat Fund Me

Introduction

  • Setup

Dependencies, Deploying, and Networks

Funding and Withdrawing Javascript Scripts

Testing across networks

Git

  • Tweet it out!

Lesson 7: SmartContract Lottery

💻 Code:

Introduction

  • Add a README.md
  • Defining the project
  • Is it decentralized?

Lottery.sol

Lesson 8: Full Stack Introduction

Lesson 9: Full Stack Lottery

Lesson 10: Hardhat Starter Kit

💻 Code: https://github.com/smartcontractkit/hardhat-starter-kit

Lesson 11: ERC20s, EIPs, and Token Standards

💻 Code:

Lesson 12: Defi & Aave

💻 Code:

Defi Intro

Lesson 13: NFTs

💻 Code

Lesson 14: NFT Marketplace

Lesson 15: Upgrades

💻 Code: https://github.com/PatrickAlphaC/upgrades-mix

Lesson 16 [DAOs]

Lesson 17 [Security]

Where do I go now?

Learning More

Community

Hackathons

Be sure to check out project grant programs!

And make today an amazing day!

Improvements from the Python edition:

  1. Videos are split into 2 -> 15 minute sections
  2. Javascript & Typescript edition of code
  3. Deeper explainer of:
    1. Stackoverflow
    2. Stack Exchange ETH
    3. How to ask good questions & get help
  4. Aave lesson improvements
  5. Fundme lesson improvements
  6. Not using sleep to wait for tx to complete
  7. Front end stuff