---
title: "உங்களின் முதல் திறன் ஒப்பந்தத்தை நிலைநிறுத்துதல்"
description: "எத்திரியம் சோதனைப் பிணையத்தில் உங்களின் முதல் திறன் ஒப்பந்தத்தை நிலைநிறுத்துவதற்கான ஓர் அறிமுகம்"
author: "jdourlens"
tags: ["திறன் ஒப்பந்தங்கள்", "Remix", "Solidity", "நிலைநிறுத்துதல்"]
skill: beginner
breadcrumb: "முதல் ஒப்பந்தத்தை நிலைநிறுத்துக"
lang: ta
published: 2020-04-03
source: EthereumDev
sourceUrl: https://ethereumdev.io/deploying-your-first-smart-contract/
address: "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE"
---

எத்திரியம் தொகுதிச்சங்கிலியில் உங்களின் முதல் [திறன் ஒப்பந்தத்தை](/developers/docs/smart-contracts/) [நிலைநிறுத்தவும்](/developers/docs/smart-contracts/deploying/) அதனுடன் ஊடாடவும் எங்களைப் போலவே நீங்களும் ஆர்வமாக உள்ளீர்கள் என நினைக்கிறேன்.

கவலைப்பட வேண்டாம், இது நமது முதல் திறன் ஒப்பந்தம் என்பதால், இதை ஒரு [உள்ளூர் சோதனைப் பிணையத்தில்](/developers/docs/networks/) நிலைநிறுத்துவோம், எனவே இதை நிலைநிறுத்த உங்களுக்கு எந்தச் செலவும் ஆகாது, மேலும் நீங்கள் விரும்பும் அளவுக்கு இதைப் பயன்படுத்திப் பார்க்கலாம்.

## நமது ஒப்பந்தத்தை எழுதுதல் {#writing-our-contract}

முதல் படியாக [Remix-க்குச் சென்று](https://remix.ethereum.org/) ஒரு புதிய கோப்பை உருவாக்க வேண்டும். Remix இடைமுகத்தின் மேல் இடது புறத்தில் ஒரு புதிய கோப்பைச் சேர்த்து, நீங்கள் விரும்பும் கோப்பின் பெயரை உள்ளிடவும்.

![Adding a new file in the Remix interface](./remix.png)

புதிய கோப்பில், பின்வரும் குறியீட்டை ஒட்டுவோம்.

```solidity
// SPDX-License-Identifier: MIT
pragma solidity >=0.5.17;

contract Counter {

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

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

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

}
```

உங்களுக்கு நிரலாக்கம் (programming) பழக்கமானதாக இருந்தால், இந்த நிரல் என்ன செய்கிறது என்பதை நீங்கள் எளிதாக யூகிக்க முடியும். இதோ வரியாக வரியான விளக்கம்:

- வரி 4: `Counter` என்ற பெயரில் ஒரு ஒப்பந்தத்தை வரையறுக்கிறோம்.
- வரி 7: நமது ஒப்பந்தம் 0-வில் தொடங்கும் `count` என்ற பெயரிலான ஒரு குறியிலா முழு எண்ணை (unsigned integer) சேமிக்கிறது.
- வரி 10: முதல் சார்பு (function) ஒப்பந்தத்தின் நிலையை மாற்றியமைக்கும், மேலும் நமது `count` மாறியை (variable) `increment()` செய்யும்.
- வரி 15: இரண்டாவது சார்பு, திறன் ஒப்பந்தத்திற்கு வெளியே `count` மாறியின் மதிப்பைப் படிக்க உதவும் ஒரு getter மட்டுமே. நமது `count` மாறியை public என வரையறுத்துள்ளதால் இது அவசியமில்லை, ஆனால் ஒரு எடுத்துக்காட்டாகக் காட்டப்பட்டுள்ளது என்பதைக் கவனத்தில் கொள்ளவும்.

நமது முதல் எளிய திறன் ஒப்பந்தத்திற்கு இவ்வளவுதான். உங்களுக்குத் தெரிந்திருக்கலாம், இது Java அல்லது C++ போன்ற OOP (பொருள்-நோக்கு நிரலாக்கம்) மொழிகளில் உள்ள ஒரு class-ஐப் போலவே தோற்றமளிக்கிறது. இப்போது நமது ஒப்பந்தத்தைப் பயன்படுத்திப் பார்ப்பதற்கான நேரம் வந்துவிட்டது.

## நமது ஒப்பந்தத்தை நிலைநிறுத்துதல் {#deploying-our-contract}

நமது முதல் திறன் ஒப்பந்தத்தை எழுதிவிட்டதால், இப்போது அதைப் பயன்படுத்திப் பார்க்க அதைத் தொகுதிச்சங்கிலியில் நிலைநிறுத்துவோம்.

[திறன் ஒப்பந்தத்தைத் தொகுதிச்சங்கிலியில் நிலைநிறுத்துவது](/developers/docs/smart-contracts/deploying/) என்பது, எந்தவொரு பெறுநரையும் குறிப்பிடாமல் தொகுக்கப்பட்ட (compiled) திறன் ஒப்பந்தத்தின் குறியீட்டைக் கொண்ட ஒரு பரிவர்த்தனையை அனுப்புவதாகும்.

முதலில் இடது புறத்தில் உள்ள compile ஐகானைக் கிளிக் செய்வதன் மூலம் [ஒப்பந்தத்தைத் தொகுப்போம் (compile)](/developers/docs/smart-contracts/compiling/):

![The compile icon in the Remix toolbar](./remix-compile-button.png)

பின்னர் compile பட்டனைக் கிளிக் செய்யவும்:

![The compile button in the Remix solidity compiler](./remix-compile.png)

உரைத் திருத்தியில் (text editor) உள்ளடக்கத்தைச் சேமிக்கும்போது ஒப்பந்தம் எப்போதும் தொகுக்கப்படும் வகையில் “Auto compile” விருப்பத்தைத் தேர்ந்தெடுக்கலாம்.

பின்னர் "deploy and run transactions" திரைக்குச் செல்லவும்:

![The deploy icon in the Remix toolbar](./remix-deploy.png)

"deploy and run transactions" திரைக்கு வந்ததும், உங்கள் ஒப்பந்தத்தின் பெயர் தோன்றுகிறதா என்பதை இருமுறை சரிபார்த்து, Deploy என்பதைக் கிளிக் செய்யவும். பக்கத்தின் மேற்புறத்தில் நீங்கள் பார்ப்பது போல, தற்போதைய சூழல் “JavaScript VM” ஆகும், அதாவது எந்தக் கட்டணமும் இல்லாமல் விரைவாகச் சோதிக்க, நமது திறன் ஒப்பந்தத்தை ஒரு உள்ளூர் சோதனைத் தொகுதிச்சங்கிலியில் நிலைநிறுத்தி அதனுடன் ஊடாடுவோம்.

![The deploy button in the Remix solidity compiler](./remix-deploy-button.png)

“Deploy” பட்டனைக் கிளிக் செய்தவுடன், உங்கள் ஒப்பந்தம் கீழே தோன்றுவதைக் காண்பீர்கள். நமது ஒப்பந்தத்தின் உள்ளடக்கத்தைப் பார்க்க, இடதுபுறத்தில் உள்ள அம்புக்குறியைக் கிளிக் செய்து அதை விரிவுபடுத்தவும். இது நமது மாறி `counter`, நமது `increment()` சார்பு மற்றும் getter `getCounter()` ஆகும்.

நீங்கள் `count` அல்லது `getCount` பட்டனைக் கிளிக் செய்தால், அது ஒப்பந்தத்தின் `count` மாறியின் உள்ளடக்கத்தை மீட்டெடுத்துக் காண்பிக்கும். நாம் இன்னும் `increment` சார்பை அழைக்கவில்லை என்பதால், அது 0-வைக் காட்ட வேண்டும்.

![The function button in the Remix solidity compiler](./remix-function-button.png)

இப்போது பட்டனைக் கிளிக் செய்வதன் மூலம் `increment` சார்பை அழைப்போம். சாளரத்தின் கீழே செய்யப்படும் பரிவர்த்தனைகளின் பதிவுகள் (logs) தோன்றுவதை நீங்கள் காண்பீர்கள். `increment` பட்டனுக்குப் பதிலாகத் தரவை மீட்டெடுப்பதற்கான பட்டனை அழுத்தும்போது பதிவுகள் வித்தியாசமாக இருப்பதை நீங்கள் காண்பீர்கள். ஏனெனில் தொகுதிச்சங்கிலியில் தரவைப் படிக்க எந்தப் பரிவர்த்தனைகளோ (எழுதுதல்) கட்டணங்களோ தேவையில்லை. தொகுதிச்சங்கிலியின் நிலையை மாற்றியமைக்க மட்டுமே ஒரு பரிவர்த்தனையைச் செய்ய வேண்டும்:

![A log of transactions](./transaction-log.png)

நமது `increment()` சார்பை அழைப்பதற்கான ஒரு பரிவர்த்தனையை உருவாக்கும் increment பட்டனை அழுத்திய பிறகு, நாம் மீண்டும் count அல்லது getCount பட்டன்களைக் கிளிக் செய்தால், count மாறி 0-வை விடப் பெரியதாக இருக்கும் நமது திறன் ஒப்பந்தத்தின் புதிதாகப் புதுப்பிக்கப்பட்ட நிலையைப் படிப்போம்.

![Newly updated state of the smart contract](./updated-state.png)

அடுத்த பயிற்சியில், [உங்கள் திறன் ஒப்பந்தங்களில் நிகழ்வுகளை எவ்வாறு சேர்க்கலாம்](/developers/tutorials/logging-events-smart-contracts/) என்பதைப் பார்ப்போம். நிகழ்வுகளைப் பதிவு செய்வது (Logging events) உங்கள் திறன் ஒப்பந்தத்தில் உள்ள பிழைகளைக் கண்டறியவும் (debug), ஒரு சார்பை அழைக்கும்போது என்ன நடக்கிறது என்பதைப் புரிந்துகொள்ளவும் ஒரு வசதியான வழியாகும்.