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 智能合约开发,以及使用 JavaScript(同时提供 TypeScript 版本)构建全栈 Web3 应用。由 FreeCodeCamp 制作。
这是智能合约库还是完整课程?这是一个课程仓库,包含配套的视频讲解,以及逐课的代码(Remix、Hardhat、HTML/JS、NextJS 项目),而不是可复用的库。
我该如何开始学习这门课程?观看课程视频链接,并按课程顺序使用本仓库中的代码逐课跟做。每一课(Remix、Ethers.js、Hardhat、NextJS 等)都有各自的文件夹,大多数课程还有对应的 TypeScript 版本。
开始前我需要准备什么(钱包、测试网资金、工具)?你需要 Node.js、一个 MetaMask 钱包,以及从水龙头领取的测试网资金。由于 Rinkeby 和 Kovan 已停止服务,Goerli 也存在问题,本课程现在以 Sepolia 测试网为目标。
这门课程还是最新的吗?不是了。由于 Hardhat 工具已经变化,课程不再积极维护,视频与代码已不同步,你很可能需要自己排查依赖和工具变化带来的问题。更新的版本在 Cyfrin Updraft 上。
这门课程适合谁?适合几乎没有区块链基础的初学者,目标是从零开始,学会编写、测试和部署 Solidity 智能合约,以及全栈 Web3 前端。
这门课程的代码可以安全地部署到主网吗?不可以。仓库明确警告,所有课程代码仅用于演示,未经审计,不应视为可用于生产环境。
这门课程会依次讲解哪些内容?从 Remix 中的区块链基础和 Solidity 入门开始,接着学习 Ethers.js 和 Hardhat 项目(Fund Me,以及 Chainlink VRF 彩票),然后是部署在 IPFS/Filecoin 上的 NextJS 全栈前端,最后讲解 ERC20 代币和 DeFi/Aave 借贷。
README 顶部提到的 Cyfrin Updraft 是什么?它是同一位讲师(Patrick Collins 与 Cyfrin)推出的后续课程,仍在积极维护。如果你希望获得比这个已归档仓库更新的 Web3/Solidity 培训,它是推荐的选择。
这门课程用到了哪些 Chainlink 服务?Fund Me 项目涉及 Chainlink Price Feeds/Oracles;构建可验证随机的智能合约彩票时,涉及 Chainlink VRF 和 Chainlink Keepers。
Size
4.1 MB
Stars
14K
Updated
CommitMay 23
Age
4y
Commits · 90 Days