mirror of
https://github.com/smartcontractkit/full-blockchain-solidity-course-js.git
synced 2025-06-27 17:27:17 +00:00
Learn Blockchain, Solidity, and Full Stack Web3 Development with Javascript
alchemyblockchainchainlinkdaodefieth-security-toolboxethereumhardhatipfsjavascriptmoralisnextjsnftopenzeppelinreactjsremixsmart-contractssoliditythegraphprotocoltypescript
.outline.md | ||
cronological-updates.txt | ||
README.md |
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
- Github Discussions
- Ask questions and chat about the course here!
- Stack Exchange Ethereum
- Great place for asking technical questions about Ethereum
- StackOverflow
- Great place for asking technical questions overall
Table of Contents
- Resources For This Course
- Table of Contents
- Lesson 0: Welcome To Blockchain
- Lesson 1: Welcome to Remix! Simple Storage
- Lesson 2: Storage Factory
- Lesson 3: Fund Me
- Lesson 4: Web3.js Simple Storage
- Lesson 5: Hardhat Simple Storage
- Lesson 6: Hardhat Fund Me
- Lesson 7: SmartContract Lottery
- Lesson 8: Full Stack Introduction
- Lesson 9: Full Stack Lottery
- Lesson 10: Hardhat Starter Kit
- Lesson 11: ERC20s, EIPs, and Token Standards
- Lesson 12: Defi & Aave
- Lesson 13: NFTs
- Lesson 14: NFT Marketplace
- Lesson 15: Upgrades
- Lesson 16 [DAOs]
- Lesson 17 [Security]
Lesson 0: Welcome To Blockchain
What is a Blockchain?
- Bitcoin Whitepaper
- Ethereum Whitepaper
- Hybrid Smart Contracts
- Blockchain Oracles
- What is a blockchain
Making Your First Transaction
- Metamask
- Etherscan
- Rinkeby Etherscan
- Kovan Etherscan
- Rinkeby Faucet (Check the link token contracts page)
- NOTE: The Chainlink documentation always has the most up to date faucets on their link token contracts page. If the faucet above is broken, check the chainlink documentation for the most up to date faucet.
- OR, use the Kovan ETH Faucet, just be sure to swap your metamask to kovan!
- Gas and Gas Fees
- Wei, Gwei, and Ether Converter
- ETH Gas Station
How Do Blockchains Work?
- Blockchain Demo
- Public / Private Keys
- Layer 2 and Rollups
- Decentralized Blockchain Oracles
- Block Rewards
- Run Your Own Ethereum Node
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
- Payable
- Wei/Gwei/Eth Converter
- msg.sender & msg.value
Chainlink Oracles
- Decentralized Oracle Network Chainlink
- Blockchains can't make API calls
- Centralized Nodes are Points of Failure
- data.chain.link
- Getting External Data with Chainlink Oracles
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
- using keyword
- Libraries
- SafeMath PSA
- 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
- Developer Bootcamp Setup Instructions (metamask, vscode, python, nodejs..)
- VSCode
- VSCode Crash Course
- Extensions
- Short Cuts:
- Python
- Install Troubleshooting
- Terminal
- Making a directory/Folder
- Opening the folder up with VSCode
- Creating a new file
- Syntax Highlights
- Remember to save!
- Setting linting compile version
- VSCode Solidity Settings
- Formatting & Format on Save
- Solidity Prettier
- Python Black
- pip
Our First Python Script with Web3.js - Deploying a Contract
- Reading our solidity file
- Running a Python Script in the Terminal
- MaxOS Shortcuts
- Windows Shortcuts
- Linux Shortcuts
- Compiling in Python
- py-solc-x
- compile_standard
- Colorized Brackets
- JSON ABI
- Saving Compiled Code
- Formatting JSON
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
- Defipulse
- Defillama
- Aave Testnet Site
- Paraswap
- Decentralized Exchange
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
- CryptoZombies
- Dapp University
- ChainShot
- Ivan on Tech
- Eat the Blocks
- Patrick Collins
- Austin Griffith
- Nader Dabit
- Ethereum.org
Community
Hackathons
Be sure to check out project grant programs!
And make today an amazing day!
Improvements from the Python edition:
- Videos are split into 2 -> 15 minute sections
- Javascript & Typescript edition of code
- Deeper explainer of:
- Stackoverflow
- Stack Exchange ETH
- How to ask good questions & get help
- Aave lesson improvements
- Fundme lesson improvements
- Not using sleep to wait for tx to complete
- Front end stuff