Maktaba za mikataba mahiri
Ukurasa ulihaririwa mwisho: 21 Agosti 2025
Huhitaji kuandika kila mkataba mahiri katika mradi wako kuanzia mwanzo. Kuna maktaba nyingi za mikataba mahiri za programu huria zinazopatikana ambazo hutoa vizuizi vya ujenzi vinavyoweza kutumika tena kwa mradi wako ambavyo vinaweza kukuepusha na kulazimika kuunda tena gurudumu.
Mahitaji ya awali
Kabla ya kurukia maktaba mahiri za mikataba, ni wazo nzuri kuwa na ufahamu mzuri wa muundo wa mkataba mahiri. Nenda kwenye muundo wa mkataba-erevu ikiwa bado hujafanya hivyo.
Kuna nini ndani ya maktaba
Kwa kawaida unaweza kupata aina mbili za vizuizi vya ujenzi katika maktaba mahiri za mikataba: tabia zinazoweza kutumika tena unazoweza kuongeza kwenye kandarasi zako, na utekelezaji wa viwango mbalimbali.
Mienendo
Unapoandika mikataba-erevu, kuna uwezekano mkubwa utajikuta ukiandika mifumo inayofanana mara kwa mara, kama vile kugawa anwani ya admin ili kutekeleza shughuli zilizolindwa katika mkataba, au kuongeza kitufe cha dharura cha pause iwapo kutatokea suala lisilotarajiwa.
Maktaba za mikataba-erevu kwa kawaida hutoa utekelezaji unaoweza kutumika tena wa mienendo hii kama maktaba (opens in a new tab) au kupitia urithi (opens in a new tab) katika Solidity.
Kwa mfano, ifuatayo ni toleo lililorahisishwa la mkataba wa Ownable (opens in a new tab) kutoka maktaba ya Mikataba ya OpenZeppelin (opens in a new tab), ambayo huteua anwani kama mmiliki wa mkataba, na hutoa kirekebishaji cha kuzuia ufikiaji wa mbinu kwa mmiliki huyo pekee.
1contract Ownable {2 address public owner;34 constructor() internal {5 owner = msg.sender;6 }78 modifier onlyOwner() {9 require(owner == msg.sender, "Ownable: anayepiga simu si mmiliki");10 _;11 }12}Onyesha yoteIli kutumia jengo kama hili katika mkataba wako, utahitaji kwanza kuagiza, na kisha kupanua kutoka humo katika mikataba yako mwenyewe. Hii itakuruhusu kutumia kirekebishaji kilichotolewa na mkataba msingi wa Ownable ili kulinda utendakazi wako mwenyewe.
1import ".../Ownable.sol"; // Njia ya kuelekea maktaba iliyoingizwa23contract MyContract is Ownable {4 // Utendakazi ufuatao unaweza kuitwa tu na mmiliki5 function secured() onlyOwner public {6 msg.sender.transfer(1 ether);7 }8}Mfano mwingine maarufu ni SafeMath (opens in a new tab) au DsMath (opens in a new tab). Hizi ni maktaba (kinyume na kandarasi za msingi) ambazo hutoa utendakazi wa hesabu na ukaguzi wa ziada, ambao haujatolewa na lugha. Ni utaratibu mzuri kutumia mojawapo ya maktaba hizi badala ya shughuli za hesabu asilia ili kulinda mkataba wako dhidi ya mafuriko, ambayo yanaweza kuwa na matokeo mabaya!
Viwango
Ili kuwezesha utunzi na ushirikiano, jumuiya ya Ethereum imefafanua viwango kadhaa katika mfumo wa ERCs. Unaweza kusoma zaidi kuzihusu katika sehemu ya viwango.
Unapojumuisha ERC kama sehemu ya kandarasi zako, ni vyema utafute utekelezaji wa kawaida badala ya kujaribu kuzindua yako. Maktaba nyingi za mikataba mahiri hujumuisha utekelezaji wa ERC maarufu zaidi. Kwa mfano, kiwango cha tokeni inayoweza kubadilishwa cha ERC20 kinachopatikana kila mahali kinaweza kupatikana katika HQ20 (opens in a new tab), DappSys (opens in a new tab) na OpenZeppelin (opens in a new tab). Zaidi ya hayo, baadhi ya ERC pia hutoa utekelezaji wa kisheria kama sehemu ya ERC yenyewe.
Inafaa kutaja kwamba baadhi ya ERCs hazijitegemei, lakini ni nyongeza kwa ERC zingine. Kwa mfano, ERC2612 (opens in a new tab) inaongeza kiendelezi kwa ERC20 ili kuboresha utumiaji wake.
Jinsi ya kuongeza maktaba
Daima rejelea hati za maktaba unayojumuisha kwa maagizo maalum ya jinsi ya kuijumuisha kwenye mradi wako. Maktaba kadhaa za mikataba ya Solidity zimefungashwa kwa kutumia npm, kwa hivyo unaweza kuzisakinisha kwa npm install. Zana nyingi za kukusanya mikataba zitaangalia ndani ya node_modules yako kwa maktaba za mikataba-erevu, kwa hivyo unaweza kufanya yafuatayo:
1// Hii itapakia maktaba ya @openzeppelin/contracts kutoka kwa node_modules zako2import "@openzeppelin/contracts/token/ERC721/ERC721.sol";34contract MyNFT is ERC721 {5 constructor() ERC721("MyNFT", "MNFT") public { }6}Bila kujali mbinu unayotumia, unapojumuisha maktaba, daima angalia toleo la lugha. Kwa mfano, huwezi kutumia maktaba kwa Solidity 0.6 ikiwa unaandika mikataba yako katika Solidity 0.5.
Wakati wa kutumia
Kutumia maktaba ya mkataba mahiri kwa mradi wako kuna manufaa kadhaa. Kwanza kabisa, inakuokoa wakati kwa kukupa vizuizi vya ujenzi ambavyo tayari kutumia unaweza kujumuisha kwenye mfumo wako, badala ya kulazimika kuziandika mwenyewe.
Usalama pia ni nyongeza kuu. Maktaba huria za mikataba mahiri pia mara nyingi huchunguzwa sana. Ikizingatiwa miradi mingi inaitegemea, kuna motisha kubwa kutoka kwa jamii ya kuiweka chini ya ukaguzi wa kila wakati. Ni kawaida zaidi kupata makosa katika nambari ya maombi kuliko katika maktaba za mkataba zinazoweza kutumika tena. Baadhi ya maktaba pia hupitia ukaguzi wa nje (opens in a new tab) kwa ajili ya usalama wa ziada.
Hata hivyo, kutumia maktaba za mikataba mahiri kuna hatari ya kujumuisha msimbo usioufahamu katika mradi wako. Inajaribu kuagiza mkataba na kuujumuisha moja kwa moja kwenye mradi wako, lakini bila kuelewa vizuri mkataba huo hufanya nini, unaweza kuwa unaanzisha suala katika mfumo wako bila kukusudia kutokana na tabia isiyotarajiwa. Daima hakikisha umesoma hati za msimbo unaoingiza, na kisha uhakiki msimbo wenyewe kabla ya kuufanya kuwa sehemu ya mradi wako!
Mwisho, unapoamua kujumuisha maktaba, zingatia matumizi yake kwa jumla. Ile iliyopitishwa na wengi ina manufaa ya kuwa na jumuiya kubwa na macho zaidi kuiangalia kwa masuala. Usalama unapaswa kuwa lengo lako la msingi wakati wa kujenga na mikataba smart!
Zana zinazohusiana
OpenZeppelin Contracts - Maktaba maarufu zaidi kwa maendeleo salama ya mikataba-erevu.
DappSys - Vizuizi salama, rahisi na vinavyoweza kunyumbulika vya mikataba-erevu.
HQ20 - Mradi wa Solidity wenye mikataba, maktaba na mifano ya kukusaidia kujenga programu-tumizi zilizotawanywa zilizo na vipengele kamili kwa ajili ya ulimwengu halisi.
thirdweb Solidity SDK - Hutoa zana zinazohitajika ili kujenga mikataba-erevu maalum kwa ufanisi
Mafunzo yanayohusiana
- Mazingatio ya usalama kwa wasanidi programu wa Ethereum – Mafunzo kuhusu mazingatio ya usalama wakati wa kujenga mikataba-erevu, ikijumuisha matumizi ya maktaba.
- Elewa mkataba-erevu wa tokeni ya ERC-20 -Mafunzo kuhusu kiwango cha ERC20, yanayotolewa na maktaba nyingi.
Masomo zaidi
Unajua rasilimali ya jamii iliyokusaidia? Hariri ukurasa huu na uiongeze!_