Lesson 1Common contract ways: Ownable, Pausable, ReentrancyGuard, Pull over Push payments, Checks-Effects-Interactions wayLook into basic smart contract ways that make things safer and easier to keep. You go put in place Ownable, Pausable, and ReentrancyGuard, and use Pull over Push and Checks-Effects-Interactions in real money moves.
Putting in and using Ownable access controlPausable contracts and emergency stopsReentrancyGuard and reentrancy attack defencePull 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 moving overUsing unchecked blocks safely 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 usageDesigning and sending useful eventsWriting reusable and safe modifiersRequire, revert, assert, and custom errorsLesson 4Function visibility and changeability: public, external, internal, private; view, pure, payableMake clear how function visibility and changeability affect safety, gas, and ease of 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 wrapping upView and pure for read-only logicPayable functions and ETH movesDesigning clear and safe APIsLesson 5Designing deposit/withdraw money counting: mapping(address => uint256) balances, events for deposits/withdrawals, handling many tokens vs single-token storesLearn how to design safe deposit and withdraw flows using mappings, events, and token links. Compare single-token and multi-token stores, and handle edge cases like failed moves and odd token behaviour.
Mapping balances and money counting rulesSending events for deposits and withdrawalsSingle-token store design and linksMulti-token stores and token namesHandling failed moves and token odditiesLesson 6Testing smart contracts: unit testing ideas, setups, mocks for ERC-20 tokens, and test structure (arrange-act-assert)Learn how to test smart contracts with a good plan. You go write unit tests, use setups 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 setups for repeatable stateMocking ERC-20 tokens and behavioursTesting reverts, events, and edge casesLesson 7Solidity language basics: syntax, types, visibility, inheritance, and compiler rules (0.8.x details)Build a strong hold on Solidity syntax, types, and visibility rules. Look into inheritance, links, 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, links, 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 storesUnderstand when and how to upgrade contracts using proxy ways. Compare transparent and UUPS proxies, storage layout limits, and control risks, and see why simple stores may be safer without upgradability.
Why upgrade contracts and when to avoid itTransparent proxy build and rolesUUPS proxy way and upgrade functionsStorage layout match and pitfallsSafety and control risks of upgradesLesson 9Gas saving basics: storage layout, packing, minimising external calls, and using calldataLearn real gas saving tricks for Solidity contracts. You go look at storage layout and packing, cut down costly external calls, use calldata, and measure gas use to guide safe small improvements.
Understanding gas costs and refundsStorage layout and variable packingMinimising external and cross-contract callsUsing calldata for cheap read-only inputsMeasuring and checking gas useLesson 10ERC-20 token standard deep look: links (IERC20), allowances, approve/transferFrom meanings, return value handling and non-standard tokensGo deep into the ERC-20 standard, focusing on the IERC20 link, balances, allowances, and approve/transferFrom flows. Learn to handle return values, non-standard tokens, and safe interaction ways in real contracts.
IERC20 link and needed functionsBalances, totalSupply, and decimals handlingApprove and transferFrom allowance workflowDealing with non-standard ERC-20 tokensSafe ERC-20 interactions with helper libraries