ஸ்மார்ட் ஒப்பந்த நூலகங்கள்
பக்கம் கடைசியாகப் புதுப்பிக்கப்பட்டது: 21 ஆகஸ்ட், 2025
உங்கள் திட்டத்தில் உள்ள ஒவ்வொரு ஸ்மார்ட் ஒப்பந்தத்தையும் நீங்கள் புதிதாக எழுத வேண்டியதில்லை. உங்கள் திட்டத்திற்கு மீண்டும் பயன்படுத்தக்கூடிய கட்டுமானத் தொகுதிகளை வழங்கும் பல திறந்த மூல (open source) ஸ்மார்ட் ஒப்பந்த நூலகங்கள் உள்ளன, இவை நீங்கள் மீண்டும் முதலிலிருந்து தொடங்குவதைத் தவிர்க்க உதவும்.
முன்நிபந்தனைகள்
ஸ்மார்ட் ஒப்பந்த நூலகங்களுக்குள் நுழைவதற்கு முன், ஸ்மார்ட் ஒப்பந்தத்தின் கட்டமைப்பைப் பற்றி நன்கு புரிந்துகொள்வது நல்லது. நீங்கள் இன்னும் அதைச் செய்யவில்லை என்றால், ஸ்மார்ட் ஒப்பந்த உடற்கூறியல் பகுதிக்குச் செல்லவும்.
நூலகத்தில் என்ன இருக்கிறது
ஸ்மார்ட் ஒப்பந்த நூலகங்களில் நீங்கள் பொதுவாக இரண்டு வகையான கட்டுமானத் தொகுதிகளைக் காணலாம்: உங்கள் ஒப்பந்தங்களில் நீங்கள் சேர்க்கக்கூடிய மீண்டும் பயன்படுத்தக்கூடிய நடத்தைகள் (behaviors) மற்றும் பல்வேறு தரநிலைகளின் செயலாக்கங்கள் (implementations).
நடத்தைகள்
ஸ்மார்ட் ஒப்பந்தங்களை எழுதும்போது, ஒரு ஒப்பந்தத்தில் பாதுகாக்கப்பட்ட செயல்பாடுகளைச் செய்ய ஒரு admin முகவரியை ஒதுக்குவது அல்லது எதிர்பாராத சிக்கல் ஏற்பட்டால் அவசரகால pause பொத்தானைச் சேர்ப்பது போன்ற ஒத்த வடிவங்களை நீங்கள் மீண்டும் மீண்டும் எழுதுவதற்கான வாய்ப்புகள் அதிகம்.
ஸ்மார்ட் ஒப்பந்த நூலகங்கள் பொதுவாக இந்த நடத்தைகளின் மீண்டும் பயன்படுத்தக்கூடிய செயலாக்கங்களை நூலகங்களாக (opens in a new tab) அல்லது Solidity-இல் மரபுரிமை (inheritance) (opens in a new tab) வழியாக வழங்குகின்றன.
உதாரணமாக, OpenZeppelin Contracts நூலகத்திலிருந்து (opens in a new tab) பெறப்பட்ட Ownable ஒப்பந்தத்தின் (opens in a new tab) எளிமைப்படுத்தப்பட்ட பதிப்பு கீழே கொடுக்கப்பட்டுள்ளது, இது ஒரு முகவரியை ஒப்பந்தத்தின் உரிமையாளராகக் குறிப்பிடுகிறது, மேலும் அந்த உரிமையாளருக்கு மட்டுமே ஒரு முறையை அணுகுவதைக் கட்டுப்படுத்துவதற்கான மாற்றியமைப்பானை (modifier) வழங்குகிறது.
1contract Ownable {2 address public owner;34 constructor() internal {5 owner = msg.sender;6 }78 modifier onlyOwner() {9 require(owner == msg.sender, "Ownable: caller is not the owner");10 _;11 }12}அனைத்தையும் காட்டுஉங்கள் ஒப்பந்தத்தில் இது போன்ற ஒரு கட்டுமானத் தொகுதியைப் பயன்படுத்த, நீங்கள் முதலில் அதை இறக்குமதி (import) செய்ய வேண்டும், பின்னர் அதை உங்கள் சொந்த ஒப்பந்தங்களில் நீட்டிக்க (extend) வேண்டும். இது உங்கள் சொந்த செயல்பாடுகளைப் பாதுகாக்க அடிப்படை Ownable ஒப்பந்தத்தால் வழங்கப்பட்ட மாற்றியமைப்பானைப் பயன்படுத்த உங்களை அனுமதிக்கும்.
1import ".../Ownable.sol"; // இறக்குமதி செய்யப்பட்ட நூலகத்திற்கான பாதை23contract MyContract is Ownable {4 // பின்வரும் செயல்பாட்டை உரிமையாளரால் மட்டுமே அழைக்க முடியும்5 function secured() onlyOwner public {6 msg.sender.transfer(1 ether);7 }8}மற்றொரு பிரபலமான உதாரணம் SafeMath (opens in a new tab) அல்லது DsMath (opens in a new tab). இவை (அடிப்படை ஒப்பந்தங்களுக்கு மாறாக) நிரலாக்க மொழியால் வழங்கப்படாத, ஓவர்ஃப்ளோ (overflow) சரிபார்ப்புகளுடன் கூடிய எண்கணித செயல்பாடுகளை வழங்கும் நூலகங்களாகும். பேரழிவு விளைவுகளை ஏற்படுத்தக்கூடிய ஓவர்ஃப்ளோக்களிலிருந்து உங்கள் ஒப்பந்தத்தைப் பாதுகாக்க, சொந்த எண்கணித செயல்பாடுகளுக்குப் பதிலாக இந்த நூலகங்களில் ஏதேனும் ஒன்றைப் பயன்படுத்துவது ஒரு நல்ல நடைமுறையாகும்!
தரநிலைகள்
தொகுக்கக்கூடிய தன்மை மற்றும் இயங்குதன்மைக்கு வசதியாக, எத்தேரியம் சமூகம் ERC-களின் வடிவத்தில் பல தரநிலைகளை வரையறுத்துள்ளது. தரநிலைகள் பிரிவில் அவற்றைப் பற்றி மேலும் படிக்கலாம்.
உங்கள் ஒப்பந்தங்களின் ஒரு பகுதியாக ஒரு ERC-ஐச் சேர்க்கும்போது, நீங்களே சொந்தமாக உருவாக்க முயற்சிப்பதை விட நிலையான செயலாக்கங்களைத் தேடுவது நல்லது. பல ஸ்மார்ட் ஒப்பந்த நூலகங்கள் மிகவும் பிரபலமான ERC-களுக்கான செயலாக்கங்களை உள்ளடக்கியுள்ளன. எடுத்துக்காட்டாக, எங்கும் காணக்கூடிய ERC20 பூஞ்சையக்கூடிய டோக்கன் தரநிலையை HQ20 (opens in a new tab), DappSys (opens in a new tab) மற்றும் OpenZeppelin (opens in a new tab) ஆகியவற்றில் காணலாம். கூடுதலாக, சில ERC-கள் ERC-இன் ஒரு பகுதியாகவே நியமனச் செயலாக்கங்களையும் (canonical implementations) வழங்குகின்றன.
சில ERC-கள் தனித்தன்மை வாய்ந்தவை அல்ல, ஆனால் மற்ற ERC-களின் சேர்த்தல்களாகும் என்பதைக் குறிப்பிடுவது மதிப்பு. எடுத்துக்காட்டாக, ERC2612 (opens in a new tab) அதன் பயன்பாட்டினை மேம்படுத்துவதற்காக ERC20-க்கு ஒரு நீட்டிப்பைச் சேர்க்கிறது.
ஒரு நூலகத்தை எவ்வாறு சேர்ப்பது
உங்கள் திட்டத்தில் ஒரு நூலகத்தை எவ்வாறு சேர்ப்பது என்பது குறித்த குறிப்பிட்ட வழிமுறைகளுக்கு, நீங்கள் சேர்க்கும் நூலகத்தின் ஆவணங்களை எப்போதும் பார்க்கவும். பல Solidity ஒப்பந்த நூலகங்கள் npm ஐப் பயன்படுத்தி தொகுக்கப்பட்டுள்ளன, எனவே நீங்கள் அவற்றை npm install செய்யலாம். ஒப்பந்தங்களை தொகுப்பதற்கான (compiling) பெரும்பாலான கருவிகள் ஸ்மார்ட் ஒப்பந்த நூலகங்களுக்காக உங்கள் node_modules-ஐப் பார்க்கும், எனவே நீங்கள் பின்வருவனவற்றைச் செய்யலாம்:
1// இது உங்கள் node_modules இலிருந்து @openzeppelin/contracts நூலகத்தை ஏற்றும்2import "@openzeppelin/contracts/token/ERC721/ERC721.sol";34contract MyNFT is ERC721 {5 constructor() ERC721("MyNFT", "MNFT") public { }6}நீங்கள் பயன்படுத்தும் முறையைப் பொருட்படுத்தாமல், ஒரு நூலகத்தைச் சேர்க்கும்போது, எப்போதும் நிரலாக்க மொழி பதிப்பைக் கவனத்தில் கொள்ளுங்கள். உதாரணமாக, நீங்கள் உங்கள் ஒப்பந்தங்களை Solidity 0.5-இல் எழுதினால், Solidity 0.6-க்கான நூலகத்தைப் பயன்படுத்த முடியாது.
எப்போது பயன்படுத்த வேண்டும்
உங்கள் திட்டத்திற்கு ஸ்மார்ட் ஒப்பந்த நூலகத்தைப் பயன்படுத்துவதில் பல நன்மைகள் உள்ளன. முதலாவதாக, நீங்களே குறியீடு எழுதுவதற்குப் பதிலாக, உங்கள் கணினியில் நீங்கள் சேர்க்கக்கூடிய பயன்படுத்தத் தயாராக உள்ள கட்டுமானத் தொகுதிகளை வழங்குவதன் மூலம் இது உங்கள் நேரத்தை மிச்சப்படுத்துகிறது.
பாதுகாப்பும் ஒரு முக்கிய நன்மையாகும். திறந்த மூல ஸ்மார்ட் ஒப்பந்த நூலகங்களும் பெரும்பாலும் கடுமையாக ஆராயப்படுகின்றன. பல திட்டங்கள் அவற்றைச் சார்ந்திருப்பதால், அவற்றை தொடர்ந்து மதிப்பாய்வு செய்ய சமூகத்தால் வலுவான ஊக்கத்தொகை வழங்கப்படுகிறது. மீண்டும் பயன்படுத்தக்கூடிய ஒப்பந்த நூலகங்களை விட பயன்பாட்டுக் குறியீட்டில் பிழைகளைக் கண்டறிவது மிகவும் பொதுவானது. சில நூலகங்கள் கூடுதல் பாதுகாப்பிற்காக வெளிப்புற தணிக்கைகளுக்கும் (external audits) (opens in a new tab) உட்படுத்தப்படுகின்றன.
இருப்பினும், ஸ்மார்ட் ஒப்பந்த நூலகங்களைப் பயன்படுத்துவது உங்களுக்குப் பரிச்சயமில்லாத குறியீட்டை உங்கள் திட்டத்தில் சேர்க்கும் அபாயத்தைக் கொண்டுள்ளது. ஒரு ஒப்பந்தத்தை இறக்குமதி செய்து அதை நேரடியாக உங்கள் திட்டத்தில் சேர்ப்பது தூண்டுதலாக இருக்கும், ஆனால் அந்த ஒப்பந்தம் என்ன செய்கிறது என்பதைப் பற்றிய நல்ல புரிதல் இல்லாமல், எதிர்பாராத நடத்தை காரணமாக உங்கள் கணினியில் கவனக்குறைவாக ஒரு சிக்கலை நீங்கள் அறிமுகப்படுத்தலாம். நீங்கள் இறக்குமதி செய்யும் குறியீட்டின் ஆவணங்களை எப்போதும் படிக்கவும், பின்னர் அதை உங்கள் திட்டத்தின் ஒரு பகுதியாக மாற்றுவதற்கு முன் குறியீட்டையே மதிப்பாய்வு செய்யவும்!
கடைசியாக, ஒரு நூலகத்தைச் சேர்க்கலாமா என்று முடிவெடுக்கும்போது, அதன் ஒட்டுமொத்த பயன்பாட்டைக் கவனியுங்கள். பரவலாக ஏற்றுக்கொள்ளப்பட்ட ஒன்று, ஒரு பெரிய சமூகத்தைக் கொண்டிருப்பதன் நன்மைகளையும், சிக்கல்களைக் கண்டறிய அதிகக் கண்களையும் கொண்டுள்ளது. ஸ்மார்ட் ஒப்பந்தங்களுடன் உருவாக்கும்போது பாதுகாப்பு உங்கள் முதன்மை மையமாக இருக்க வேண்டும்!
தொடர்புடைய கருவிகள்
OpenZeppelin Contracts - பாதுகாப்பான ஸ்மார்ட் ஒப்பந்த மேம்பாட்டிற்கான மிகவும் பிரபலமான நூலகம்.
DappSys - ஸ்மார்ட் ஒப்பந்தங்களுக்கான பாதுகாப்பான, எளிமையான, நெகிழ்வான கட்டுமானத் தொகுதிகள்.
HQ20 - நிஜ உலகத்திற்கான முழு அம்சமான விநியோகிக்கப்பட்ட பயன்பாடுகளை உருவாக்க உங்களுக்கு உதவும் ஒப்பந்தங்கள், நூலகங்கள் மற்றும் எடுத்துக்காட்டுகளைக் கொண்ட ஒரு Solidity திட்டம்.
thirdweb Solidity SDK - தனிப்பயன் ஸ்மார்ட் ஒப்பந்தங்களை திறமையாக உருவாக்கத் தேவையான கருவிகளை வழங்குகிறது
தொடர்புடைய பயிற்சிகள்
- எத்தேரியம் உருவாக்குநர்களுக்கான பாதுகாப்புக் கருத்தாய்வுகள் – நூலகப் பயன்பாடு உட்பட ஸ்மார்ட் ஒப்பந்தங்களை உருவாக்கும்போது பாதுகாப்புக் கருத்தாய்வுகள் குறித்த பயிற்சி.
- ERC-20 டோக்கன் ஸ்மார்ட் ஒப்பந்தத்தைப் புரிந்து கொள்ளுங்கள் - பல நூலகங்களால் வழங்கப்படும் ERC20 தரநிலை குறித்த பயிற்சி.
மேலும் படிக்க
உங்களுக்கு உதவிய சமூக வளம் பற்றி தெரியுமா? இந்தப் பக்கத்தைத் திருத்தி அதைச் சேர்க்கவும்!