Lektion 1Vanliga kontraktsmönster: Ownable, Pausable, ReentrancyGuard, Pull över Push-betalningar, Checks-Effects-Interactions-mönsterUtforska grundläggande smarta kontraktsmönster som förbättrar säkerhet och underhållbarhet. Du implementerar Ownable, Pausable och ReentrancyGuard samt tillämpar Pull över Push och Checks-Effects-Interactions i verkliga betalningsflöden.
Implementera och använda Ownable åtkomstkontrollPausbara kontrakt och nödbromsarReentrancyGuard och försvar mot reentrancy-attackerPull över Push betalningsflödesdesignChecks-Effects-Interactions bästa praxisLektion 2Säker matte och överflödesskydd i Solidity 0.8+: inbyggda kontroller vs explicita bibliotek (OpenZeppelin SafeMath-historia)Studera hur Solidity 0.8+ inbyggda överflödeskontroller förändrade aritmetikens säkerhet. Jämför äldre SafeMath-stil bibliotek med moderna mönster och lär dig när okontrollerade block är säkra för gas-effektiva aritmetiska operationer.
Heltalsöverflöde och underflöde grundernaInbyggda aritmetikkontroller i Solidity 0.8+Äldre SafeMath-bibliotek och migreringAnvända okontrollerade block säkert för gasTesta aritmetikens gränsfall och begränsningarLektion 3Tillståndsvariabler, storage vs memory, events, modifiers och felhantering (require, revert, assert, egna fel)Bemästra hur Solidity lagrar och kommer åt data med tillståndsvariabler, storage, memory och calldata. Lär dig att emitta events, skriva återanvändbara modifiers och tillämpa require, revert, assert och egna fel för tydlig felhantering.
Tillståndsvariabler och storage-platserStorage vs memory vs calldata-användningDesigna och emitta användbara eventsSkriva återanvändbara och säkra modifiersRequire, revert, assert och egna felLektion 4Funktionssynlighet och mutabilitet: public, external, internal, private; view, pure, payableFörtydliga hur funktionssynlighet och mutabilitet påverkar säkerhet, gas och användbarhet. Lär dig när man ska använda public, external, internal och private samt hur view, pure och payable påverkar tillståndsändringar och värdeöverföringar.
Public vs external funktionsavvägningarInternal och private för inkapslingView och pure för skrivskyddad logikPayable funktioner och ETH-överföringarDesigna tydliga och säkra API:erLektion 5Designa insättning/uttagsbokföring: mapping(address => uint256) saldon, events för insättningar/uttag, hantera flera tokens vs enkla token-valvLär dig designa säkra insättnings- och uttagsflöden med mappings, events och token-gränssnitt. Jämför enkla token- och multi-token-valv samt hantera gränsfall som misslyckade överföringar och oväntat token-beteende.
Mapping-saldon och bokföringsinvarianterEmitta events för insättningar och uttagEnkel-token-valvdesign och gränssnittMulti-token-valv och token-identifierareHantera misslyckade överföringar och token-egenskaperLektion 6Testa smarta kontrakt: enhetstestkoncept, fixtures, mocks för ERC-20-tokens och teststruktur (arrange-act-assert)Lär dig testa smarta kontrakt med ett strukturerat tillvägagångssätt. Du skriver enhetstester, använder fixtures och mocks för ERC-20-tokens, följer arrange-act-assert och täcker gränsfall, revert och event-förväntningar.
Testramverk och projektinställningarArrange-Act-Assert teststrukturAnvända fixtures för upprepningsbart tillståndMocka ERC-20-tokens och beteendenTesta revert, events och gränsfallLektion 7Solidity-språkbasics: syntax, typer, synlighet, arv och kompilatorpragmas (0.8.x-specifika)Bygg en solid förståelse av Solidity-syntax, typer och synlighetsregler. Utforska arv, gränssnitt, kompilatorpragmas och 0.8.x-specifika funktioner som egna fel och förbättrad typesäkerhet för modern smart kontraktsutveckling.
Källfiler, kontrakt och grundsyntaxVärdetyp, referenstyp och arrayerFunktions- och tillståndsvariablers synlighetArv, gränssnitt och abstrakta kontraktKompilatorpragmas och 0.8.x-språkförändringarLektion 8Kontraktsuppgraderingsbasics och avvägningar: proxy-mönster (transparent, UUPS) och när man ska undvika uppgraderingar för enkla valvFörstå när och hur man uppgraderar kontrakt med proxy-mönster. Jämför transparenta och UUPS-proxyer, storage-layoutbegränsningar och styrningsrisker samt varför enkla valv kan vara säkrare utan uppgraderbarhet.
Varför uppgradera kontrakt och när undvika detTransparent proxy-arkitektur och rollerUUPS proxy-mönster och uppgraderingsfunktionerStorage-layoutkompatibilitet och fallgroparSäkerhets- och styrningsrisker med uppgraderingarLektion 9Gasoptimeringsbasics: storage-layout, packning, minimera externa anrop och använda calldataLär dig praktiska gasoptimeringsmetoder för Solidity-kontrakt. Du analyserar storage-layout och packning, minskar dyra externa anrop, utnyttjar calldata och mäter gasanvändning för att guida säkra mikrooptimeringar.
Förstå gas-kostnader och återbetalningarStorage-layout och variabelpackningMinimera externa och korskontraktsanropAnvända calldata för billiga skrivskyddade inmatningarMäta och benchmarka gasanvändningLektion 10ERC-20 tokenstandard djupdykning: gränssnitt (IERC20), tilldelningar, approve/transferFrom-semantik, hantera returvärden och icke-standardtokensDyck ner i ERC-20-standarden med fokus på IERC20-gränssnittet, saldon, tilldelningar och approve/transferFrom-flöden. Lär dig hantera returvärden, icke-standardtokens och säkra interaktionsmönster i produktionskontrakt.
IERC20-gränssnitt och nödvändiga funktionerSaldon, totalSupply och decimals-hanteringApprove och transferFrom tilldelningsarbetsflödeHantera icke-standard ERC-20-tokensSäkra ERC-20-interaktioner med hjälpbibliotek