நிகழ்வுகளுடன் ஸ்மார்ட் ஒப்பந்தங்களிலிருந்து தரவைப் பதிவுசெய்தல்
Solidity-யில், நிகழ்வுகள் என்பவை ஸ்மார்ட் ஒப்பந்தங்கள் வெளிப்படுத்தக்கூடிய அனுப்பப்பட்ட சிக்னல்கள் ஆகும். Dapps, அல்லது Ethereum JSON-RPC API உடன் இணைக்கப்பட்ட எதுவும், இந்த நிகழ்வுகளைக் கேட்டு அதற்கேற்ப செயல்படலாம். ஒரு நிகழ்வையும் அட்டவணைப்படுத்தலாம், இதனால் நிகழ்வு வரலாற்றை பின்னர் தேட முடியும்.
நிகழ்வுகள்
இந்தக் கட்டுரையை எழுதும் நேரத்தில் Ethereum பிளாக்செயினில் மிகவும் பொதுவான நிகழ்வானது, யாராவது டோக்கன்களை மாற்றும்போது ERC20 டோக்கன்களால் வெளியிடப்படும் பரிமாற்ற நிகழ்வு ஆகும்.
1event Transfer(address indexed from, address indexed to, uint256 value);நிகழ்வு கையொப்பம் ஒப்பந்தக் குறியீட்டிற்குள் அறிவிக்கப்படுகிறது மற்றும் emit என்ற முக்கியச் சொல்லைக் கொண்டு வெளியிடப்படலாம். எடுத்துக்காட்டாக, பரிமாற்ற நிகழ்வானது, பரிமாற்றத்தை யார் அனுப்பினார்கள் (from), யாருக்கு (to) மற்றும் எவ்வளவு டோக்கன்கள் மாற்றப்பட்டன (value) என்பதைப் பதிவுசெய்கிறது.
நமது கவுண்டர் ஸ்மார்ட் ஒப்பந்தத்திற்குத் திரும்பி, ஒவ்வொரு முறையும் மதிப்பு மாற்றப்படும்போது பதிவுசெய்ய முடிவு செய்தால். இந்த ஒப்பந்தம் பயன்படுத்தப்பட வேண்டியதல்ல, ஆனால் அதை நீட்டிப்பதன் மூலம் மற்றொரு ஒப்பந்தத்தை உருவாக்குவதற்கான அடிப்படையாகச் செயல்படுவதால்: இது ஒரு சுருக்க ஒப்பந்தம் என்று அழைக்கப்படுகிறது. நமது கவுண்டர் உதாரணத்தைப் பொறுத்தவரை, இது இப்படி இருக்கும்:
1pragma solidity 0.5.17;23contract Counter {45 event ValueChanged(uint oldValue, uint256 newValue);67 // எண்ணிக்கையை வைத்திருக்க கையொப்பமிடப்படாத முழு எண் வகையின் தனிப்பட்ட மாறி8 uint256 private count = 0;910 // நமது கவுண்டரை அதிகரிக்கும் செயல்பாடு11 function increment() public {12 count += 1;13 emit ValueChanged(count - 1, count);14 }1516 // எண்ணிக்கை மதிப்பைப் பெற கெட்டர்17 function getCount() public view returns (uint256) {18 return count;19 }2021}அனைத்தையும் காட்டுஇதைக் கவனிக்கவும்:
-
வரி 5: நமது நிகழ்வையும், அது எதைக் கொண்டுள்ளது என்பதையும், அதாவது பழைய மதிப்பு மற்றும் புதிய மதிப்பையும் அறிவிக்கிறோம்.
-
வரி 13: நமது எண்ணிக்கை மாறியை அதிகரிக்கும்போது, நாம் நிகழ்வை வெளியிடுகிறோம்.
நாம் இப்போது ஒப்பந்தத்தைப் பயன்படுத்தி, இன்கிரிமென்ட் செயல்பாட்டை அழைத்தால், logs எனப் பெயரிடப்பட்ட ஒரு வரிசையினுள் உள்ள புதிய பரிவர்த்தனையை நீங்கள் கிளிக் செய்தால், Remix அதைத் தானாகவே காண்பிக்கும் என்பதைப் பார்ப்போம்.
உங்கள் ஸ்மார்ட் ஒப்பந்தங்களைப் பிழைதிருத்தம் செய்வதற்குப் பதிவுகள் மிகவும் பயனுள்ளதாக இருக்கும், ஆனால் வெவ்வேறு நபர்களால் பயன்படுத்தப்படும் பயன்பாடுகளை நீங்கள் உருவாக்கினால் அவையும் முக்கியமானவை. மேலும் உங்கள் ஸ்மார்ட் ஒப்பந்தம் எவ்வாறு பயன்படுத்தப்படுகிறது என்பதைக் கண்காணிக்கவும் புரிந்துகொள்ளவும் பகுப்பாய்வுகளைச் செய்வதை எளிதாக்குகின்றன. பரிவர்த்தனைகளால் உருவாக்கப்பட்ட பதிவுகள் பிரபலமான தொகுதி ஆய்வு கருவிகளில் காட்டப்படுகின்றன. மேலும், குறிப்பிட்ட நிகழ்வுகளைக் கேட்டு, அவை நிகழும்போது நடவடிக்கை எடுப்பதற்கு ஆஃப்செயின் ஸ்கிரிப்ட்களை உருவாக்கவும் நீங்கள் அவற்றைப் பயன்படுத்தலாம்.
பக்கத்தின் கடைசி புதுப்பிப்பு: 12 பிப்ரவரி, 2025
