smartcontractkit / full-blockchain-solidity-course-py

Ultimate Solidity, Blockchain, and Smart Contract - Beginner to Expert Full Course | Python Edition
MIT License
10.67k stars 2.89k forks source link
blockchain chainlink dapp ethereum smart-contracts solidity web3

Big Update: New Sepolia Faucet Located Here. \Kovan, Ropsten, and Rinkeby have been deprecated. Goerli Still works but we highly recommend Sepolia as its proof of stake based.

You'll need to verify via Twitter to get ETH & LINK. You can find Backup Faucets here.

Additionally, lesson 7 uses Chainlink VRF v1 instead of v2, you can find the docs for Chainlink VRFv1 here.

YouTube Video


Solidity, Blockchain, and Smart Contract Course ā€“ Beginner to Expert Python Tutorial


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

Table of Contents

Resources For This Course

Questions

Windows Support

Hiccups/Issues from the Video

Lesson 0: Welcome To Blockchain

What is a Blockchain?

Making Your First Transaction

How Do Blockchains Work?

Consensus

The Future

Miscellaneous

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

Deploying to a "Live" network

Lesson 2: Storage Factory

šŸ’» Code: https://github.com/PatrickAlphaC/storage_factory

Inheritance, Factory Pattern, and Interacting with External Contracts

Lesson 3: Fund Me

šŸ’» Code: https://github.com/PatrickAlphaC/fund_me

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

Chainlink Oracles

Importing from NPM and Advanced Solidity

Lesson 4: Web3.py Simple Storage

šŸ’» Code: https://github.com/PatrickAlphaC/web3_py_simple_storage

Installing VSCode, Python, and Web3

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

Interacting with Our Contract in Python & Web3.py

Lesson 5: Brownie Simple Storage

šŸ’» Code: https://github.com/PatrickAlphaC/brownie_simple_storage

Brownie Introduction

Installing Brownie

Brownie Simple Storage Project

Testing Basics

[Brownie console]

Lesson 6: Brownie Fund Me

šŸ’» Code: https://github.com/PatrickAlphaC/brownie_fund_me

Introduction

Dependencies, Deploying, and Networks

Funding and Withdrawing Python Scripts

Testing across networks

Git

Compatibility with Ganache UI

E           ValueError: Execution reverted during call: 'VM Exception while processing transaction: revert'. This transaction will likely revert. If you wish to broadcast, include `allow_revert:True` as a transaction parameter.

More information here.

Lesson 7: SmartContract Lottery

šŸ’» Code: https://github.com/PatrickAlphaC/smartcontract-lottery

Chainlink VRF v1 docs

Introduction

Lottery.sol

Testing Lottery.sol

Lottery.sol Testnet Deployment

Lesson 8: Chainlink Mix

šŸ’» Code: https://github.com/smartcontractkit/chainlink-mix

Brownie Mixes

Lesson 9: ERC20s, EIPs, and Token Standards

šŸ’» Code: https://github.com/PatrickAlphaC/erc20-brownie-py

Lesson 10: Defi & Aave

*NOTE: This repo is now archived as kovan is no longer supported. You can still follow along with the learning, but know the code may not work the same on a different testnet.

šŸ’» Code: https://github.com/PatrickAlphaC/aave_brownie_py_freecode

Defi Intro

Aave UI

Programmatic Interactions with Aave

Testing

Lesson 11: NFTs

šŸ’» Code: https://github.com/PatrickAlphaC/nft-demo

Non-Technical Explainer

Simple NFT

SimpleCollectible Testing

Advanced NFT

Advanced deploy_and_create

Creating Metadata & IPFS

Lesson 12: Upgrades

šŸ’» Code: https://github.com/PatrickAlphaC/upgrades-mix

Introduction to upgrading smart contracts

Upgrades-mix and code

Testing Upgrades

Upgrades on a testnet

Bonus Lesson 13: Full Stack Defi

Note: This section is archived as kovan is now deprecated. If you're looking to learn more Full-stack, check out the full stack portions of the hardhat/javascript video.

Link to hardhat/javascript video with more full-stack examples: https://github.com/smartcontractkit/full-blockchain-solidity-course-js

šŸ’» Code: https://github.com/PatrickAlphaC/defi-stake-yield-brownie-freecode

Defi Stake Yield Brownie Scripts & Tests

Testing our Defi Stake Yield Brownie Dapp

Front End / Full Stack

Shoutout to Matt for the help on the front end!

Closing and Summary

Security

Where do I go now?

Learning More

Community

Hackathons

Be sure to check out project grant programs!

Vyper

From solidity course to vyper

And make today an amazing day!