full-blockchain-solidity-course-js README

The project's README from github.com/smartcontractkit/full-blockchain-solidity-course-js. As one markdown file: README.md.

Update: Head to Cyfrin Updraft

ℹ️ Important: This repo is no longer actively maintained as there have been changes in Hardhat tooling. The video is out of sync with the code, and you can still follow along with the video, but you will likely need to troubleshoot the changes in the tooling and dependencies. Note also that best practices have evolved since this video was made.
If you'd like to continue your training with more up-to-date material, you can take a look at Cyfrin Updraft. That content is developed with love by Patrick & Cyfrin <3. However note that Cyfrin Updraft training uses Foundry, not Hardhat, so there will be tooling changes involved.

Web3, Full Stack Solidity, Smart Contract & Blockchain - Beginner to Expert ULTIMATE Course | Javascript Edition


Solidity, Blockchain, and Smart Contract Course – Beginner to Expert Javascript Tutorial


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

Link to video: https://www.youtube.com/watch?v=gyMwXuJrbJQ

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

Recommended Testnet: Sepolia

We have updated the repos to work with Sepolia due to Rinkeby and Kovan being sunset, and Goerli being a disaster. Let us know if any of the changes break stuff!

Testnet Faucets

Main Faucet: https://faucets.chain.link Backup Faucet: https://sepoliafaucet.com/

⚠️ All code associated with this course is for demo purposes only. They have not been audited and should not be considered production ready. Please use at your own risk.

Resources For This Course

Questions

Table of Contents

Resources
  1. Testnet Faucets
  2. Resources For This Course
  3. Table of Contents
Lesson 0: The Edge of the Rabbit Hole
  1. Welcome to the course!
  2. Best Practices
Lesson 1: Blockchain Basics
  1. What is a Blockchain? What does a blockchain do?
  2. The Purpose Of Smart Contracts
  3. Other Blockchain Benefits
  4. What have Smart Contracts done so far?
  5. Making Your First Transaction
  6. Gas I: Introduction to Gas
  7. How Do Blockchains Work?
  8. Signing Transactions
  9. Gas II
  10. High-Level Blockchain Fundamentals
Lesson 2: Welcome to Remix! Simple Storage
  1. Introduction
  2. Setting Up Your First Contract
  3. Basic Solidity: Types
  4. Basic Solidity: Functions
  5. Basic Solidity: Arrays & Structs
  6. Basic Solidity: Compiler Errors and Warnings
  7. Memory, Storage, Calldata (Intro)
  8. Mappings
  9. Deploying your First Contract
  10. The EVM & A Recap of Lesson 2
Lesson 3: Remix Storage Factory
  1. Introduction
  2. Basic Solidity: Importing Contracts into other Contracts
  3. Basic Solidity: Interacting with other Contracts
  4. Basic Solidity: Inheritance & Overrides
  5. Lesson 3 Recap
Lesson 4: Remix Fund Me
  1. Introduction
  2. Sending ETH Through a Function & Reverts
  3. Chainlink & Oracles
  4. Review of Sending ETH and working with Chainlink
  5. Interfaces & Price Feeds
  6. Importing from GitHub & NPM
  7. Floating Point Math in Solidity
  8. Basic Solidity: Arrays & Structs II
  9. Review of Interfacs, Importing from GitHub, & Math in Solidity
  10. Libraries
  11. SafeMath, Overflow Checking, and the "unchecked" keywork
  12. Basic Solidity: For Loop
  13. Basic Solidity: Resetting an Array
  14. Sending ETH from a Contract
  15. Basic Solidity: Constructor
  16. Basic Solidity: Modifiers
  17. Testnet Demo
  18. Advanced Solidity
Lesson 5: Ethers.js Simple Storage
  1. Effective Debugging Strategies & Getting Help
  2. Installation & Setup
  3. Local Development Introduction
  4. Tiny Javascript Refresher
  5. Asynchronous Programming in Javascript
  6. Compiling our Solidity
  7. Ganache & Networks
  8. Introduction to Ethers.js
  9. Adding Transaction Overrides
  10. Transaction Receipts
  11. Sending a "raw" Transaction in Ethersjs
  12. Interacting with Contracts in Ethersjs
  13. Environment Variables
  14. Better Private Key Management
  15. Optional Prettier Formatting
  16. Deploying to a Testnet or a Mainnet
  17. Verifying on Block Explorers from the UI
  18. Alchemy Dashboard & The Mempool
  19. Lesson 5 Recap
Lesson 6: Hardhat Simple Storage
  1. Introduction
  2. Hardhat Setup
  3. Hardhat Setup Continued
  4. Deploying SimpleStorage from Hardhat
  5. Networks in Hardhat
  6. Programatic Verification
  7. Interacting with Contracts in Hardhat
  8. Artifacts Troubleshooting
  9. Custom Hardhat Tasks
  10. Hardhat Localhost Node
  11. The Hardhat Console
  12. Hardhat Tests
  13. Hardhat Gas Reporter
  14. Solidity Coverage
  15. Hardhat Waffle
  16. Lesson 6 Recap
Lesson 7: Hardhat Fund Me
  1. Introduction
  2. Hardhat Setup - Fund Me
  3. Linting
  4. Hardhat Setup - Fund Me - Continued
  5. Importing from NPM
  6. Hardhat Deploy
  7. Mocking
  8. Utils Folder
  9. Testnet Demo - Hardhat Fund Me
  10. Solidity Style Guide
  11. Testing Fund Me
  12. Breakpoints & Debugging
  13. Gas III:
  14. console.log & Debugging
  15. Testing Fund Me II
  16. Storage in Solidity
  17. Gas Optimizations using Storage Knowledge
  18. Solidity Chainlink Style Guide
  19. Storage Review
  20. Staging Tests
  21. Running Scripts on a Local Node
  22. Adding Scripts to your package.json
  23. Pushing to GitHub
  24. 🐸🐦 Tweet Me (add your repo in)!
Lesson 8: HTML / Javascript Fund Me (Full Stack / Front End)
  1. Introduction
  2. How Websites work with Web3 Wallets
  3. HTML Setup
  4. Connecting HTML to Metamask
  5. Javascript in it's own file
  6. ES6 vs Nodejs
  7. Sending a transaction from a Website
  8. Resetting an Account in Metamask
  9. Listening for Events and Completed Transactions
  10. Input Forms
  11. Reading from the Blockchain
  12. Withdraw Function
  13. Lesson 8 Recap
Lesson 9: Hardhat Smart Contract Lottery
  1. Introduction
  2. Hardhat Setup - Smart Contract Lottery
  3. Raffle.sol Setup
  4. Introduction to Events
  5. Events in Raffle.sol
  6. Introduction to Chainlink VRF
  7. Implementing Chainlink VRF - Introduction
  8. Implementing Chainlink VRF - The Request
  9. Implementing Chainlink VRF - The FulFill
  10. Introduction to Chainlink Keepers
  11. Implementing Chainlink Keepers - checkUpkeep
  12. Implementing Chainlink Keepers - checkUpkeep continued
  13. Implementing Chainlink Keepers - performUpkeep
  14. Code Cleanup
  15. Deploying Raffle.sol
  16. Raffle.sol Unit Tests
  17. Hardhat Methods & Time Travel
  18. Callstatic
  19. Raffle.sol Staging Tests
  20. Testing on a Testnet
  21. Conclusion
  22. Typescript - Smart Contract Lottery
Lesson 10: NextJS Smart Contract Lottery (Full Stack / Front End)
  1. Introduction
  2. NextJS Setup
  3. Manual Header I
  4. Manual Header II
  5. useEffect Hook
  6. Local Storage
  7. isWeb3EnabledLoading
  8. web3uikit
  9. Introduction to Calling Functions in Nextjs
  10. useState
  11. Calling Functions in NextJS
  12. useNotification
  13. Reading & Displaying Contract Data
  14. A Note about onSuccess
  15. A Challenge to You
  16. Tailwind & Styling
  17. Introduction to Hosting your Site
  18. IPFS
  19. Hosting on IPFS
  20. Hosting on IPFS & Filecoin using Fleek
  21. Filecoin Overview
  22. Lesson 10 Recap
Lesson 11: Hardhat Starter Kit
Lesson 12: Hardhat ERC20s
  1. What is an ERC? What is an EIP?
  2. What is an ERC20?
  3. Manually Creating an ERC20 Token
  4. Creating an ERC20 Token with Openzeppelin
  5. Lesson 12 Recap
Lesson 13: Hardhat DeFi & Aave
  1. What is DeFi?
  2. What is Aave?
  3. Programatic Borrowing & Lending
  4. WETH - Wrapped ETH
  5. Forking Mainnet</

full-blockchain-solidity-course-js (smartcontractkit/full-blockchain-solidity-course-js)

Searching Database…

Что это такое?Бесплатный полноценный курс, который обучает концепциям блокчейна, разработке смарт-контрактов на Solidity и созданию full-stack Web3-приложений на JavaScript (также доступна версия на TypeScript). Курс создан при участии FreeCodeCamp.
Это библиотека смарт-контрактов или полноценный курс?Это репозиторий курса: связанное видео с пошаговым объяснением плюс код по урокам (проекты на Remix, Hardhat, HTML/JS, NextJS), а не библиотека для повторного использования.
Как начать курс?Посмотрите связанное видео курса и повторяйте за ним урок за уроком, используя код из этого репозитория; у каждого урока (Remix, Ethers.js, Hardhat, NextJS и т. д.) есть своя папка, и у большинства из них есть соответствующая версия на TypeScript.
Что нужно подготовить перед началом (кошелёк, тестовые средства, инструменты)?Понадобятся Node.js, кошелёк MetaMask и тестовые средства из крана (faucet). Сейчас курс использует тестовую сеть Sepolia, так как Rinkeby и Kovan были выведены из эксплуатации, а с Goerli возникали проблемы.
Курс до сих пор актуален?Нет. Курс больше не поддерживается, так как инструменты Hardhat изменились: видео не соответствует коду, и, скорее всего, вам придётся самостоятельно разбираться с изменениями в зависимостях и инструментах. Более новая версия доступна на Cyfrin Updraft.
Для кого этот курс?Для новичков, которые почти не знакомы с блокчейном и хотят пройти путь от нуля до написания, тестирования и развёртывания смарт-контрактов на Solidity и full-stack Web3-фронтендов.
Можно ли развернуть код из этого курса в mainnet?Нет. В репозитории прямо указано, что весь код курса предназначен только для демонстрации, не прошёл аудит и не считается готовым для продакшена.
Какие темы проходит курс?Курс начинается с основ блокчейна и Solidity в Remix, затем переходит к проектам на Ethers.js и Hardhat (Fund Me, лотерея на Chainlink VRF), далее к full-stack фронтенду на NextJS, размещённому в IPFS/Filecoin, и завершается токенами ERC20 и DeFi-кредитованием через Aave.
Что такое Cyfrin Updraft, о котором говорится в начале README?Это преемник курса, который продолжает активно поддерживаться тем же автором (Patrick Collins и Cyfrin). Его рекомендуют всем, кто хочет более актуальное обучение Web3 и Solidity, чем в этом архивном репозитории.
Какие сервисы Chainlink используются в курсе?В курсе рассматриваются Chainlink Price Feeds/Oracles для проекта Fund Me, а также Chainlink VRF и Chainlink Keepers для создания смарт-контрактной лотереи с проверяемой случайностью.
Size
4.1 MB
Stars
14K
Updated
CommitMay 23
Age
4y
Commits · 90 Days