Lesson 1Common contract ways: Ownable, Pausable, ReentrancyGuard, Pull over Push payments, Checks-Effects-Interactions wayLook into basic smart contract ways that make safety and keeping better. You go put Ownable, Pausable, and ReentrancyGuard, and use Pull over Push and Checks-Effects-Interactions in real money flows.
Putting and using Ownable access controlPausable contracts and emergency stopsReentrancyGuard and reentrancy attack defensePull over Push payment flow designChecks-Effects-Interactions best waysLesson 2Safe math and overflow protections in Solidity 0.8+: built-in checks vs. clear libraries (OpenZeppelin SafeMath history)Study how Solidity 0.8+ built-in overflow checks changed number safety. Compare old SafeMath-style libraries with new ways, and learn when unchecked blocks are safe for gas-saving number work.
Number overflow and underflow basicsBuilt-in number checks in Solidity 0.8+Old SafeMath libraries and movingUsing unchecked blocks safe for gasTesting number edge cases and limitsLesson 3State variables, storage vs memory, events, modifiers, and error handling (require, revert, assert, custom errors)Master how Solidity keeps and gets data using state variables, storage, memory, and calldata. Learn to send events, write reusable modifiers, and use require, revert, assert, and custom errors for clear error handling.
State variables and storage slotsStorage vs memory vs calldata useDesigning and sending useful eventsWriting reusable and safe modifiersRequire, revert, assert, and custom errorsLesson 4Function visibility and change: public, external, internal, private; view, pure, payableMake clear how function visibility and change affect safety, gas, and use. Learn when to use public, external, internal, and private, and how view, pure, and payable change state and value moves.
Public vs external function trade-offsInternal and private for wrappingView and pure for read-only logicPayable functions and ETH movesDesigning clear and safe APIsLesson 5Designing deposit/withdraw counting: mapping(address => uint256) balances, events for deposits/withdrawals, handling many tokens vs single-token vaultsLearn how to design safe deposit and withdraw flows using mappings, events, and token parts. Compare single-token and many-token vaults, and handle edge cases like failed moves and unexpected token ways.
Mapping balances and counting rulesSending events for deposits and withdrawalsSingle-token vault design and partsMany-token vaults and token namesHandling failed moves and token odd waysLesson 6Testing smart contracts: unit testing ideas, fixtures, mocks for ERC-20 tokens, and test structure (arrange-act-assert)Learn how to test smart contracts with a good way. You go write unit tests, use fixtures and mocks for ERC-20 tokens, follow arrange-act-assert, and cover edge cases, reverts, and event hopes.
Testing tools and project setupArrange-Act-Assert test structureUsing fixtures for repeatable stateMocking ERC-20 tokens and waysTesting reverts, events, and edge casesLesson 7Solidity language basics: syntax, types, visibility, inheritance, and compiler rules (0.8.x details)Build a strong hold of Solidity syntax, types, and visibility rules. Look into inheritance, parts, compiler rules, and 0.8.x details like custom errors and better type safety for modern smart contract work.
Source files, contracts, and basic syntaxValue types, reference types, and arraysFunction and state variable visibilityInheritance, parts, and abstract contractsCompiler rules and 0.8.x language changesLesson 8Contract upgradability basics and trade-offs: proxy ways (transparent, UUPS) and when to avoid upgrades for simple vaultsUnderstand when and how to upgrade contracts using proxy ways. Compare transparent and UUPS proxies, storage layout limits, and rule risks, and see why simple vaults may be safer without upgradability.
Why upgrade contracts and when to avoidTransparent proxy build and rolesUUPS proxy way and upgrade functionsStorage layout match and pitfallsSafety and rule risks of upgradesLesson 9Gas saving basics: storage layout, packing, less external calls, and using calldataLearn real gas saving ways for Solidity contracts. You go look at storage layout and packing, cut costly external calls, use calldata, and measure gas use to guide safe small savings.
Understanding gas costs and refundsStorage layout and variable packingLess external and cross-contract callsUsing calldata for cheap read-only inputsMeasuring and checking gas useLesson 10ERC-20 token standard deep look: parts (IERC20), allowances, approve/transferFrom meanings, return value handling and non-standard tokensGo deep into ERC-20 standard, focus on IERC20 part, balances, allowances, and approve/transferFrom flows. Learn to handle return values, non-standard tokens, and safe talk ways in production contracts.
IERC20 part and needed functionsBalances, totalSupply, and decimals handlingApprove and transferFrom allowance workDealing with non-standard ERC-20 tokensSafe ERC-20 talks with helper libraries