This repo are learning notes of an online course of Learning Solidity from 0 to 1 (Chinese) on Hahow.
Lecturer: XiXi Huang
This course includes the introduction to blockchain, Bitcoin, Ethereum. Each student can learn the fundamental skills of Solidity and practical tips of saving Gas fees and security methods.
Classes | Description | Material Links |
---|---|---|
Class 1 - 5 | Introduction to Blockchain | |
Class 6 | Cyber security and key pairs | |
Class 7 | Crypto ecosystems, crypto exchanges, crypto wallets | |
Class 8 - 13 | Introduction to Ethereum, EVM, Ether, EIP, ERC | |
Class 14 - 19 | Introduction to Smart Contract | 14.sol / 17.sol / 18.js |
Class 20 | Basic Solidity: Data type (Integer, Float, boolean, Address, Bytes, String | 20.sol |
Class 21 | Basic Solidity: Storage (mapping, array, struct) | 21.sol |
Class 22 | Basic Solidity: Functions | 22.sol |
Class 23 | Basic Solidity: Events | 23.sol / 23_erc.sol |
Class 24 | Basic Solidity: Transaction and blockchain info (sender, ETH, time, difficulty, block height | 24.sol |
Class 25 | Basic Solidity: Callback, Payble, Fallback | 25.sol |
Class 26 | Basic Solidity: ERC20 tokens | 26_erc20.sol |
Assignment 1 | Create your own ERC20 tokens | RLC tokens |
Class 27 | Intermediate Solidity: Exception (Revert, Assert, Require) | 27.sol |
Class 28 | Intermediate Solidity: Modifier | 28.sol |
Class 29 | Intermediate Solidity: Unit conversion (Ether & Time) | 29.sol |
Class 30 | Intermediate Solidity: Structures of contracts & Hash | 30.sol |
Class 31 | Intermediate Solidity: Libraries (Import & using) | 31.sol |
Class 32 | Intermediate Solidity: address() & Self Destruct | 32.sol |
Class 33 | Intermediate Solidity: Reference Types (Memory & Storage) | 33.sol |
Class 34 | Intermediate Solidity: Encapsulation and Constants | 34.sol |
Class 35 | Intermediate Solidity: Abstract contracts, Inherited contract, Polymorphism | 35_erc20.sol |
Class 36 | Intermediate Solidity: Function Types (Public, External, Internal, Private) | 36.sol |
Class 37 | Advanced Solidity: Interface | 37.sol |
Class 38 | Advanced Solidity: ERC721 | 38_erc721.sol |
Assignment 2 | Create Animal Capsule Toys | Animal Capsule Toys |
Class 39 | Advanced Solidity: Call API (Oraclize) | 39.sol |
Class 40 | Advanced Solidity: ECRecover and Signature Verification | 40.sol |
Class 41 | Advanced Solidity: Interaction between contracts | 41.sol |
Class 42 | Advanced Solidity: EVM Opcodes | 42.sol |
Class 43 | Advanced Solidity: Overflow | 43-1.sol / 43-2.sol |
Class 44 | Advanced Solidity: getting random numbers | 44.sol / 44_attack.sol / 45_oraclize.sol |
Assignment 3 | Create a game of rock-paper-scissors | |
Class 45 | Advanced Solidity: Attacks samples by invalidating contracts | 45-1.sol / 45-2.sol |
Class 46 | Advanced Solidity: Re-entrancy attack | 46.sol / 46_attack.sol |
Class 47 | Advanced Solidity: Saving Gas fees by compress data | 47.sol |
Class 48 | Advanced Solidity: Saving Gas fees by optimizing the sequence of declaring variables, avoiding repeatitive functions | 48.sol |
Class 49 | Install Ganache and test smart contracts | |
Class 50 | Instantiate EC2 on AWS and deploy a website | index_50.html (Demo) |
Class 51 - 52 | Introduction to frontend and JavaScripts | index_51.html (Demo) / index_52.html (Demo) |
Class 53 | Introduction to Web3.js | index_53.html (Demo) |
Class 54 | Call a wallet to read wallet address, balances | index_54.html (Demo) / index_54_v2.html (Demo) |
Class 55 | Using Infura to read public parameters | index_55.html (Demo) |
Assignment 4 | Create a game of Greedy599 (similar to Fomo3D) | |
The assignment and solutions are only for reference purposes to support new learners who may get stuck in assignments. Learning is a long-term journey. Never give up and you will make it!!