---
title: "நிகழ்வுகளுடன் திறன் ஒப்பந்தங்களிலிருந்து தரவைப் பதிவு செய்தல்"
description: "திறன் ஒப்பந்த நிகழ்வுகள் மற்றும் தரவைப் பதிவு செய்ய அவற்றை எவ்வாறு பயன்படுத்தலாம் என்பதற்கான அறிமுகம்"
author: "jdourlens"
tags:
  - திறன் ஒப்பந்தங்கள்
  - remix
  - solidity
  - நிகழ்வுகள்
skill: intermediate
breadcrumb: "நிகழ்வுப் பதிவு"
lang: ta
published: 2020-04-03
source: EthereumDev
sourceUrl: https://ethereumdev.io/logging-data-with-events/
address: "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE"
---

Solidity-இல், [நிகழ்வுகள்](/developers/docs/smart-contracts/anatomy/#events-and-logs) என்பவை திறன் ஒப்பந்தங்கள் அனுப்பக்கூடிய சமிக்ஞைகள் ஆகும். பரவலாக்கப்பட்ட செயலிகள் (dapps) அல்லது எத்திரியம் ஜேசன்-ஆர்பிசி API உடன் இணைக்கப்பட்ட எதுவும் இந்த நிகழ்வுகளைக் கவனித்து அதற்கேற்ப செயல்பட முடியும். ஒரு நிகழ்வை அட்டவணைப்படுத்தவும் முடியும், இதனால் நிகழ்வு வரலாற்றை பின்னர் தேடலாம்.

## நிகழ்வுகள் {#events}

இந்தக் கட்டுரையை எழுதும் நேரத்தில் எத்திரியம் தொகுதிச்சங்கிலியில் மிகவும் பொதுவான நிகழ்வு, யாராவது டோக்கன்களைப் பரிமாற்றம் செய்யும் போது ERC20 டோக்கன்களால் வெளியிடப்படும் பரிமாற்ற நிகழ்வு ஆகும்.

```solidity
event Transfer(address indexed from, address indexed to, uint256 value);
```

நிகழ்வு கையொப்பம் ஒப்பந்தக் குறியீட்டிற்குள் அறிவிக்கப்படுகிறது மற்றும் emit திறவுச்சொல்லுடன் வெளியிடப்படலாம். எடுத்துக்காட்டாக, பரிமாற்ற நிகழ்வு யார் பரிமாற்றத்தை அனுப்பினார் (_from_), யாருக்கு (_to_) மற்றும் எவ்வளவு டோக்கன்கள் பரிமாற்றம் செய்யப்பட்டன (_value_) என்பதைப் பதிவு செய்கிறது.

நமது Counter திறன் ஒப்பந்தத்திற்குத் திரும்பி, ஒவ்வொரு முறையும் மதிப்பு மாற்றப்படும்போது பதிவு செய்ய முடிவு செய்தால். இந்த ஒப்பந்தம் நிலைநிறுத்தப்படுவதற்காக அல்லாமல், இதை நீட்டிப்பதன் மூலம் மற்றொரு ஒப்பந்தத்தை உருவாக்குவதற்கான அடிப்படையாகச் செயல்படுவதால்: இது சுருக்க ஒப்பந்தம் (abstract contract) என்று அழைக்கப்படுகிறது. நமது counter எடுத்துக்காட்டில், இது இப்படி இருக்கும்:

```solidity
pragma solidity 0.5.17;

contract Counter {

    event ValueChanged(uint oldValue, uint256 newValue);

    // எண்ணிக்கையை வைத்திருக்க unsigned int வகையிலான தனிப்பட்ட மாறி
    uint256 private count = 0;

    // நமது எண்ணியை அதிகரிக்கும் செயல்பாடு
    function increment() public {
        count += 1;
        emit ValueChanged(count - 1, count);
    }

    // எண்ணிக்கை மதிப்பைப் பெறுவதற்கான Getter
    function getCount() public view returns (uint256) {
        return count;
    }

}
```

கவனிக்கவும்:

- **வரி 5**: நமது நிகழ்வு மற்றும் அதில் என்ன உள்ளது, பழைய மதிப்பு மற்றும் புதிய மதிப்பு ஆகியவற்றை நாங்கள் அறிவிக்கிறோம்.

- **வரி 13**: நமது count மாறியை அதிகரிக்கும் போது, நாங்கள் நிகழ்வை வெளியிடுகிறோம்.

இப்போது நாம் ஒப்பந்தத்தை நிலைநிறுத்தி, increment சார்பை அழைத்தால், logs எனப்படும் அணிவரிசைக்குள் உள்ள புதிய பரிவர்த்தனையைக் கிளிக் செய்தால் Remix தானாகவே அதைக் காண்பிப்பதை நாம் காண்போம்.

![Remix screenshot](./remix-screenshot.png)

உங்கள் திறன் ஒப்பந்தங்களை பிழைத்திருத்தம் செய்வதற்குப் பதிவுகள் மிகவும் பயனுள்ளதாக இருக்கும், ஆனால் வெவ்வேறு நபர்களால் பயன்படுத்தப்படும் பயன்பாடுகளை நீங்கள் உருவாக்கினால் அவை முக்கியமானவை, மேலும் உங்கள் திறன் ஒப்பந்தம் எவ்வாறு பயன்படுத்தப்படுகிறது என்பதைக் கண்காணிக்கவும் புரிந்துகொள்ளவும் பகுப்பாய்வுகளை எளிதாக்குகிறது. பரிவர்த்தனைகளால் உருவாக்கப்படும் பதிவுகள் பிரபலமான தொகுதி எக்ஸ்ப்ளோரர்களில் காட்டப்படும், மேலும் எடுத்துக்காட்டாக குறிப்பிட்ட நிகழ்வுகளைக் கவனிப்பதற்கும் அவை நிகழும்போது நடவடிக்கை எடுப்பதற்கும் புறச்சங்கிலி ஸ்கிரிப்ட்களை உருவாக்க அவற்றைப் பயன்படுத்தலாம்.