Skip to content

saoodahmad/full-blockchain-solidity-course-js

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

45 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Welcome to the repository for the Ultimate Web3, Full Stack Solidity, 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

Main Faucet: https://faucets.chain.link

Backup Faucet: https://rinkebyfaucet.com/

Resources For This Course

Questions

Table of Contents

Lesson 0: The Edge of the Rabbit Hole

  • Welcome to the course!
  • Why do you want to embark on this journey?
  • Best Practices

Lesson 1: Blockchain Basics

What is a Blockchain?

Making Your First Transaction

How Do Blockchains Work?

Consensus

πŸ’» Code: https://github.com/PatrickAlphaC/simple-storage-fcc

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

Basic Solidity

  • Versioning
  • Compiling
  • Contract Declaration
  • Types & Declaring Variables
  • 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 3: Remix Storage Factory

πŸ’» Code: https://github.com/PatrickAlphaC/storage-factory-fcc

Lesson 4: Remix Fund Me

πŸ’» Code: https://github.com/PatrickAlphaC/fund-me-fcc

Lesson 5: Ethers.js Simple Storage

Installation & Setup!

Windows Only:

πŸ’» Code: https://github.com/PatrickAlphaC/ethers-simple-storage-fcc

    "[solidity]": {
        "editor.defaultFormatter": "NomicFoundation.hardhat-solidity"
    },

In your .vscode/settings.json file.

More information:

Lesson 6: Hardhat Simple Storage

πŸ’» Code: https://github.com/PatrickAlphaC/hardhat-simple-storage-fcc

Typescript:

yarn add --dev @typechain/ethers-v5 @typechain/hardhat @types/chai @types/node @types/mocha ts-node typechain typescript

Lesson 7: Hardhat Fund Me

πŸ’» Code: https://github.com/PatrickAlphaC/hardhat-fund-me-fcc

Lesson 8: HTML / Javascript Fund Me (Full Stack / Front End)

πŸ’» Code: https://github.com/PatrickAlphaC/html-fund-me-fcc

Lesson 9: Hardhat Smart Contract Lottery

πŸ’» Code: https://github.com/PatrickAlphaC/hardhat-smartcontract-lottery-fcc

  • Install dependencies:
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

Sub-Lesson: Events & Logging

Sub-Lesson: Chainlink VRF

Sub-Lesson: Chainlink Keepers

Recommended LINK amounts for Rinkeby Staging Test:

  • Chainlink VRF: 2 LINK
  • Chainlink Keepers: 8 LINK

Lesson 10: NextJS Smart Contract Lottery (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/

We moving into using NextJS for our front end. NextJS is a React framework for building websites.

Optional Sub-Lesson: Full Stack Development & Other Libraries

The Rest of this Lesson

yarn create next-app .

Lesson 11: Hardhat Starter Kit

πŸ’» Code: https://github.com/smartcontractkit/hardhat-starter-kit

Lesson 12: Hardhat ERC20s

πŸ’» Code: https://github.com/PatrickAlphaC/hardhat-erc20-fcc

Sub-Lesson: What is an ERC20?

Rest of the Lesson

Lesson 13: Hardhat DeFi & Aave

πŸ’» Code: https://github.com/PatrickAlphaC/hardhat-defi-fcc

More DeFi Learnings:

Lesson 14: Hardhat NFTs (EVERYTHING you need to know about NFTs)

πŸ’» Code: https://github.com/PatrickAlphaC/hardhat-nft-fcc

Sublesson: What is an NFT?

Hardhat NFTs Part 1

Sublesson: EVM Opcodes, Encoding, and Calling

Thanks to Alex Roan for his help on this session!

Extra credit:

Lesson 15: NextJS NFT Marketplace (If you finish this lesson, you are a full-stack MONSTER!)

πŸ’» Code:

TheGraph

Lesson 16: Hardhat Upgrades

πŸ’» Code: https://github.com/PatrickAlphaC/hardhat-upgrades-fcc

Types of Upgrades

  1. Parameter
  2. Social Migrate
  3. Proxy
    1. Metamorphic Upgrades
      1. Collisions
      2. opcodes
    2. Transparent
    3. UUPS
    4. Diamond

Lesson 17: Hardhat DAOs

⬆️ Up-to-date code: https://github.com/PatrickAlphaC/dao-template

πŸ’» Code from video: https://github.com/PatrickAlphaC/hardhat-dao-fcc

Lesson 18: Security & Auditing

πŸ’» Code: https://github.com/PatrickAlphaC/hardhat-security-fcc

1. Reentrancy
2. Flash Loans Attacks
3. Top Tools

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
  8. TODO: Explain EIP-1559 at some point... maybe after blockchain explainer, but before coding.

optional JS seciton? Async, Arrow functions, yarn

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy