- Beginner Solidity Tutorial
- Development Environment
- Fixed Size Datatypes
- Set up Foundry
- Arithmetic
- If Statements
- For loops
- Introduction to arrays and strings
- Nested Arrays
- Storage Variables
- Arrays in Storage
- Mappings
- Nested Mappings
- msg.sender and address(this)
- Constructor
- Require
- ERC-20 Tokens
- Tuples
- Application binary interface (ABI encoding)
- Contracts calling other contracts
- Token Exchange Mini Project
- Payable functions
- Receive
- Block.timestamp and block.number
- Emitting Events
- Inheritance
- Modifiers
- Immutable variables
- Constants
- Deploying an ERC-721 to OpenSea
- Launch and verify and NFT with Foundry
- Units of Ethereum: wei, gwei, and ether
- Structs
- Strings
- Unit Testing in Solidity
- Your First Solidity Projects
- Professional Solidity Style Guide
- Common Solidity Beginner Mistakes
- Solidity Beginner Projects
- Intermediate Topics
- Detecting if an address is a smart contract
- Solidity Function Selector
- ERC-721 design and security issues
- ERC-4626
- ERC-721 Enumerable
- ERC-1363
- Uint256 Max Value
- Signed Integers
- Solidity Staticcall EIP-214
- OpenZeppelin Ownable2Step
- Testing internal functions
- Solidity events
- Solidity gasleft()
- Where to find reentrancy attacks
- Generate a random number in Solidity
- DeFi Primitives
- The staking algorithm of MasterChef and Synthetix
- Fixed Point Arithmetic
- Flashloans
- Chainlink Price Feeds
- How DeFi Interest Rates Work
- Uniswap V2 Walkthrough
- Architecture
- Price Impact of a Swap
- Swap Function
- Mint and Burn Functions
- Protocol mintFee
- TWAP Oracle
- UniswapV2Library
- Routers
- Building a Uniswap V2 Clone