שיעור 1דפוסי חוזים נפוצים: Ownable, Pausable, ReentrancyGuard, תשלומי Pull over Push, דפוס Checks-Effects-Interactionsחקורו דפוסי חוזים חכמים בסיסיים שמשפרים בטיחות ותחזוקה. תממשו Ownable, Pausable ו-ReentrancyGuard, ותיישמו Pull over Push ו-Checks-Effects-Interactions בזרימות תשלום אמיתיות.
Implementing and using Ownable access controlPausable contracts and emergency stopsReentrancyGuard and reentrancy attack defensePull over Push payment flow designChecks-Effects-Interactions best practicesשיעור 2חישוב בטוח והגנה מפני שחלוף בסולידיות 0.8+: בדיקות מובנות לעומת ספריות מפורשות (היסטוריית OpenZeppelin SafeMath)למדו כיצד בדיקות שחלוף מובנות של סולידיות 0.8+ שינו את הבטיחות החישובית. השוו ספריות SafeMath ישנות עם דפוסים מודרניים, ולמדו מתי בלוקים לא בטוחים בטוחים לאופטימיזציית גז.
Integer overflow and underflow fundamentalsBuilt-in arithmetic checks in Solidity 0.8+Legacy SafeMath libraries and migrationUsing unchecked blocks safely for gasTesting arithmetic edge cases and limitsשיעור 3משתני מצב, אחסון לעומת זיכרון, אירועים, מודיפיקטורים וטיפול בשגיאות (require, revert, assert, שגיאות מותאמות)שלטו באופן שבו סולידיות מאחסנת ומגישה נתונים באמצעות משתני מצב, אחסון, זיכרון ו-calldata. למדו להפיק אירועים, לכתוב מודיפיקטורים חוזרים לשימוש, ליישם require, revert, assert ושגיאות מותאמות אישית לטיפול שגיאות ברור.
State variables and storage slotsStorage vs memory vs calldata usageDesigning and emitting useful eventsWriting reusable and safe modifiersRequire, revert, assert, and custom errorsשיעור 4נראות ומוטביליות פונקציות: public, external, internal, private; view, pure, payableבארו כיצד נראות פונקציות ומוטביליות משפיעות על אבטחה, גז ושימושיות. למדו מתי להשתמש ב-public, external, internal ו-private, וכיצד view, pure ו-payable משפיעים על שינויי מצב והעברות ערך.
Public vs external function trade-offsInternal and private for encapsulationView and pure for read-only logicPayable functions and ETH transfersDesigning clear and safe APIsשיעור 5עיצוב חשבונאות הפקדה/משיכה: מיפוי(address => uint256) יתרות, אירועים להפקדות/משיכות, טיפול בכמה טוקנים לעומת כספות טוקן יחידלמדו לעצב זרימות הפקדה/משיכה בטוחות באמצעות מיפויים, אירועים וממשקי טוקנים. השוו כספות טוקן יחיד וכמה-טוקנים, וטפלו במקרי קצה כמו העברות כושלות והתנהגות טוקן בלתי צפויה.
Mapping balances and accounting invariantsEmitting events for deposits and withdrawalsSingle-token vault design and interfacesMulti-token vaults and token identifiersHandling failed transfers and token quirksשיעור 6בדיקת חוזים חכמים: מושגי בדיקת יחידה, פייקסטורות, מוקים לטוקני ERC-20, ומבנה בדיקות (arrange-act-assert)למדו לבדוק חוזים חכמים בגישה מובנית. תכתבו בדיקות יחידה, תשתמשו בפייקסטורות ומוקים לטוקני ERC-20, תעקבו אחר arrange-act-assert, ותכסו מקרי קצה, חזרות ואירועים.
Testing frameworks and project setupArrange-Act-Assert test structureUsing fixtures for repeatable stateMocking ERC-20 tokens and behaviorsTesting reverts, events, and edge casesשיעור 7יסודות שפת סולידיות: תחביר, סוגים, נראות, ירושה ופרגמות קומפיילר (ספציפיקות 0.8.x)בנו הבנה מוצקה של תחביר סולידיות, סוגים וכללי נראות. חקרו ירושה, ממשקים, פרגמות קומפיילר וספציפיקות 0.8.x כמו שגיאות מותאמות ובטיחות סוגים משופרת לפיתוח חוזים חכמים מודרני.
Source files, contracts, and basic syntaxValue types, reference types, and arraysFunction and state variable visibilityInheritance, interfaces, and abstract contractsCompiler pragmas and 0.8.x language changesשיעור 8יסודות שדרוגיות חוזים ומסחרות: דפוסי פרוקסי (שקוף, UUPS) ומתי להימנע משדרוגים לכספות פשוטותהבינו מתי וכיצד לשדרג חוזים באמצעות דפוסי פרוקסי. השוו פרוקסי שקופים ו-UUPS, מגבלות פריסת אחסון וסיכוני ממשל, וראו מדוע כספות פשוטות עשויות להיות בטוחות יותר ללא שדרוגיות.
Why upgrade contracts and when to avoid itTransparent proxy architecture and rolesUUPS proxy pattern and upgrade functionsStorage layout compatibility and pitfallsSecurity and governance risks of upgradesשיעור 9יסודות אופטימיזציית גז: פריסת אחסון, אריזה, מזעור שיחות חיצוניות ושימוש בcalldataלמדו טכניקות אופטימיזציית גז מעשיות לחוזי סולידיות. תנתחו פריסת אחסון ואריזה, תפחיתו שיחות חיצוניות יקרות, תנצלו calldata, תמדדו שימוש גז ותדריכו מיקרו-אופטימיזציות בטוחות.
Understanding gas costs and refundsStorage layout and variable packingMinimizing external and cross-contract callsUsing calldata for cheap read-only inputsMeasuring and benchmarking gas usageשיעור 10צלילה עמוקה לתקן טוקן ERC-20: ממשקים (IERC20), אישורים, סמנטיקת approve/transferFrom, טיפול בערכי החזרה וטוקנים לא סטנדרטייםצללו לעומק לתקן ERC-20, תוך התמקדות בממשק IERC20, יתרות, אישורים וזרימות approve/transferFrom. למדו לטפל בערכי החזרה, טוקנים לא סטנדרטיים ודפוסי אינטראקציה בטוחים בחוזים ייצור.
IERC20 interface and required functionsBalances, totalSupply, and decimals handlingApprove and transferFrom allowance workflowDealing with non-standard ERC-20 tokensSafe ERC-20 interactions with helper libraries