GithubHelp home page GithubHelp logo

full-blockchain-solidity-course-js's Introduction

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

Testnet Faucets: https://faucets.chain.link

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

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

Lesson 13: Hardhat DeFi & Aave

๐Ÿ’ป Code: https://github.com/PatrickAlphaC/hardhat-defi-fcc

  • 5 minute speedrun ethereum ft. XXX

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

๐Ÿ’ป Code: https://github.com/PatrickAlphaC/hardhat-nft-fcc

1. IPFS / SVG On-Chain
2. Randomization
3. Trading Cards / Stats
4. Challenge

Lesson 15: NextJS NFT Marketplace

๐Ÿ’ป Code: (In Progress)

1. Using Moralis
2. Using Graph Protocol

Lesson 16: Hardhat Upgrades

๐Ÿ’ป Code: https://github.com/PatrickAlphaC/hardhat-upgrades-fcc

1.  Parameter
2.  Social Migrate
3.  Proxy
    1.  [Metamorphic Upgrades](https://github.com/PatrickAlphaC/hardhat-metamorphic-upgrades-fcc)
        1. Collisions
        2. [opcodes](https://etherscan.io/opcode-tool)
    2.  Transparent
    3.  UUPS
    4.  Diamond
4.  Low level `delegatecall`
5.  Gas optimizations

Lesson 17: Hardhat DAOs

๐Ÿ’ป Code: https://github.com/PatrickAlphaC/hardhat-dao-fcc

1. Encode data
2. Function selectors & signatures
3. abi.encodePacked, vs abi.encode etc
4. Challenge

Lesson 18: Security & Auditing

๐Ÿ’ป Code: https://github.com/PatrickAlphaC/hardhat-security-fcc

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

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.