Somo 1Mifumo ya kawaida ya mikataba: Ownable, Pausable, ReentrancyGuard, Malipo ya Kuvuta kuliko Kusukuma, Mfumo wa Ukaguzi-Athari-MwingilianoChunguza mifumo ya msingi ya mikataba ya akili inayoboresha usalama na uwezo wa kudumisha. Utaweka kwenye utendaji Ownable, Pausable, na ReentrancyGuard, na kutumia Malipo ya Kuvuta kuliko Kusukuma na Ukaguzi-Athari-Mwingiliano katika mtiririko halisi wa malipo.
Kutekeleza na kutumia udhibiti wa ufikiaji wa OwnableMikataba inayoweza kusimamishwa na vituo vya dharuraReentrancyGuard na ulinzi dhidi ya shambulio la reentrancyMuundo wa mtiririko wa malipo ya Kuvuta kuliko KusukumaMazoea bora ya Ukaguzi-Athari-MwingilianoSomo 2Hesabu salama na ulinzi dhidi ya uleteamu katika Solidity 0.8+: ukaguzi uliojaa dhidi ya maktaba za wazi (Historia ya OpenZeppelin SafeMath)Soma jinsi ukaguzi uliojaa wa uleteamu wa Solidity 0.8+ ulivyobadilisha usalama wa hesabu. Linganisha maktaba za zamani za mtindo wa SafeMath na mifumo ya kisasa, na jifunze wakati mabango ya unchecked ni salama kwa shughuli za hesabu zenye ufanisi wa gesi.
Misingi ya uleteamu na upungufu wa nambari nzimaUkaguzi wa hesabu uliojaa katika Solidity 0.8+Maktaba za SafeMath za zamani na uhamishoKutumia mabango ya unchecked kwa usalama wa gesiKujaribu hali za ukingo na mipaka ya hesabuSomo 3Vigeuza vya hali, uhifadhi dhidi ya kumbukumbu, matukio, vigeuza, na utaratibu wa makosa (require, revert, assert, makosa ya kibinafsi)Dhibiti jinsi Solidity inavyohifadhi na kufikia data kwa kutumia vigeuza vya hali, uhifadhi, kumbukumbu, na calldata. Jifunze kutoa matukio, kuandika vigeuza vinavyoweza kutumika tena, na kutumia require, revert, assert, na makosa ya kibinafsi kwa utaratibu wazi wa makosa.
Vigeuza vya hali na nafasi za uhifadhiUhifadhi dhidi ya kumbukumbu dhidi ya calldataKubuni na kutoa matukio yenye manufaaKuandika vigeuza salama vinavyoweza kutumika tenaRequire, revert, assert, na makosa ya kibinafsiSomo 4Mwonekano wa kazi na uwezo wa kubadilisha: umma, nje, ndani, faragha; angalia, safi, inayolipaFafanua jinsi mwonekano wa kazi na uwezo wa kubadilisha unavyoathiri usalama, gesi, na uwezo wa kutumia. Jifunze wakati wa kutumia umma, nje, ndani, na faragha, na jinsi angalia, safi, na inayolipa inavyoathiri mabadiliko ya hali na uhamisho wa thamani.
Faida na hasara za kazi za umma dhidi ya njeNdani na faragha kwa kufungaAngalia na safi kwa mantiki ya kusoma tuKazi zinazolipa na uhamisho wa ETHKubuni API wazi na salamaSomo 5Kubuni uhasibu wa amana/kuondoa: mapping(address => uint256) salio, matukio kwa amana/kuondoa, kushughulikia tokeni nyingi dhidi ya amana za tokeni mojaJifunze jinsi ya kubuni mtiririko salama wa amana na kuondoa kwa kutumia ramani, matukio, na miunganisho ya tokeni. Linganisha amana za tokeni moja na tokeni nyingi, na kushughulikia hali za ukingo kama uhamisho ulioshindwa na tabia isiyotarajiwa ya tokeni.
Ramani za salio na kanuni za uhasibu zisizobadilikaKutoa matukio kwa amana na kuondoaMuundo wa amana ya tokeni moja na miunganishoAmana za tokeni nyingi na vitambulisho vya tokeniKushughulikia uhamisho ulioshindwa na tabia za tokeniSomo 6Kujaribu mikataba ya akili: dhana za majaribio ya kitengo, vifaa, mifano kwa tokeni za ERC-20, na muundo wa jaribio (panga-tenda-thibitisha)Jifunze jinsi ya kujaribu mikataba ya akili kwa mbinu iliyopangwa. Utaandika majaribio ya kitengo, kutumia vifaa na mifano kwa tokeni za ERC-20, kufuata panga-tenda-thibitisha, na kushughulikia hali za ukingo, kurudi, na matarajio ya matukio.
Muundo wa majaribio na usanidi wa mradiMuundo wa jaribio la Panga-Tenda-ThibitishaKutumia vifaa kwa hali inayoweza kurudiwaKufanya mifano ya tokeni za ERC-20 na tabiaKujaribu kurudi, matukio, na hali za ukingoSomo 7Misingi ya lugha ya Solidity: sintaksia, aina, mwonekano, urithi, na kanuni za mkusanyaji (maelezo maalum ya 0.8.x)Jenga uelewa thabiti wa sintaksia ya Solidity, aina, na sheria za mwonekano. Chunguza urithi, miunganisho, kanuni za mkusanyaji, na maelezo maalum ya 0.8.x kama makosa ya kibinafsi na usalama bora wa aina kwa maendeleo ya mikataba ya akili ya kisasa.
Faili za chanzo, mikataba, na sintaksia ya msingiAina za thamani, aina za marejeo, na safuMwonekano wa kazi na vigeuza vya haliUrithi, miunganisho, na mikataba ya kufikirikaKanuni za mkusanyaji na mabadiliko ya lugha ya 0.8.xSomo 8Misingi ya uwezo wa kuboresha mikataba na faida hasara: mifumo ya proksi (wazi, UUPS) na wakati wa kuepuka uboreshaji kwa amana rahisiElewa wakati na jinsi ya kuboresha mikataba kwa kutumia mifumo ya proksi. Linganisha proksi wazi na UUPS, vikwazo vya mpangilio wa uhifadhi, na hatari za utawala, na uone kwa nini amana rahisi zinaweza kuwa salama bila uwezo wa kuboresha.
Kwa nini uboresha mikataba na wakati wa kuepukaMuundo wa proksi wazi na majukumuMfumo wa proksi UUPS na kazi za uboreshajiUwezo wa mpangilio wa uhifadhi na makosaHatari za usalama na utawala za uboreshajiSomo 9Misingi ya uboreshaji wa gesi: mpangilio wa uhifadhi, upakiaji, kupunguza simu za nje, na kutumia calldataJifunze mbinu za vitendo za uboreshaji wa gesi kwa mikataba ya Solidity. Utauchambua mpangilio wa uhifadhi na upakiaji, kupunguza simu za nje ghali, kutumia calldata, na kupima matumizi ya gesi kuongoza uboreshaji mdogo salama.
Kuelewa gharama za gesi na marejeshoMpangilio wa uhifadhi na upakiaji wa vigeuzaKupunguza simu za nje na mikatabaKutumia calldata kwa pembejeo za kusoma za bei nafuuKupima na kulinganisha matumizi ya gesiSomo 10Uchunguzi wa kina wa kiwango cha tokeni cha ERC-20: miunganisho (IERC20), idhini, semantiki za approve/transferFrom, utaratibu wa thamani inayorudiwa na tokeni zisizo za kawaidaIngia kwa undani katika kiwango cha ERC-20, ukizingatia miunganisho ya IERC20, salio, idhini, na mtiririko wa approve/transferFrom. Jifunze kushughulikia thamani zinazorudiwa, tokeni zisizo za kawaida, na mifumo salama ya mwingiliano katika mikataba ya uzalishaji.
Miunganisho ya IERC20 na kazi zinazohitajikaSalio, totalSupply, na utaratibu wa desimaliMtiririko wa idhini na transferFrom allowanceKushughulikia tokeni za ERC-20 zisizo za kawaidaMwingiliano salama wa ERC-20 na maktaba za msaada