முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்

உங்கள் முதல் ஸ்மார்ட் ஒப்பந்தத்தை செயல்படுத்துதல்

ஸ்மார்ட் ஒப்பந்தங்கள்
Remix
Solidity
செயல்படுத்துதல்
தொடக்கநிலையாளர்
jdourlens
3 ஏப்ரல், 2020
3 நிமிட வாசிப்பு

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

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

நமது ஒப்பந்தத்தை எழுதுதல்

முதல் படி Remix-க்குச் சென்று (opens in a new tab) ஒரு புதிய கோப்பை உருவாக்குவது. Remix இடைமுகத்தின் மேல் இடது பகுதியில் ஒரு புதிய கோப்பைச் சேர்த்து, நீங்கள் விரும்பும் கோப்பின் பெயரை உள்ளிடவும்.

Remix இடைமுகத்தில் புதிய கோப்பைச் சேர்த்தல்

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

1// SPDX-License-Identifier: MIT
2pragma solidity >=0.5.17;
3
4contract Counter {
5
6 // எண்ணிக்கையை வைத்திருக்க unsigned int வகையிலான பொது மாறி
7 uint256 public count = 0;
8
9 // நமது எண்ணியை அதிகரிக்கும் செயற்கூறு
10 function increment() public {
11 count += 1;
12 }
13
14 // எண்ணிக்கை மதிப்பை பெற அவசியமில்லாத getter
15 function getCount() public view returns (uint256) {
16 return count;
17 }
18
19}

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

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

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

நமது ஒப்பந்தத்தை செயல்படுத்துதல்

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

பிளாக்செயினில் ஸ்மார்ட் ஒப்பந்தத்தை செயல்படுத்துவது என்பது உண்மையில் எந்த பெறுநர்களையும் குறிப்பிடாமல் தொகுக்கப்பட்ட (compiled) ஸ்மார்ட் ஒப்பந்தத்தின் குறியீட்டைக் கொண்ட ஒரு பரிவர்த்தனையை அனுப்புவதாகும்.

இடதுபுறத்தில் உள்ள compile ஐகானைக் கிளிக் செய்வதன் மூலம் முதலில் ஒப்பந்தத்தைத் தொகுப்போம் (compile):

Remix கருவிப்பட்டியில் உள்ள compile ஐகான்

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

Remix solidity கம்பைலரில் உள்ள compile பொத்தான்

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

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

Remix கருவிப்பட்டியில் உள்ள deploy ஐகான்

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

Remix solidity கம்பைலரில் உள்ள deploy பொத்தான்

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

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

Remix solidity கம்பைலரில் உள்ள function பொத்தான்

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

பரிவர்த்தனைகளின் பதிவு

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

ஸ்மார்ட் ஒப்பந்தத்தின் புதிதாகப் புதுப்பிக்கப்பட்ட நிலை

அடுத்த டுடோரியலில், உங்கள் ஸ்மார்ட் ஒப்பந்தங்களில் நிகழ்வுகளை (events) எவ்வாறு சேர்க்கலாம் என்பதைப் பார்ப்போம். நிகழ்வுகளைப் பதிவு செய்வது (Logging events) உங்கள் ஸ்மார்ட் ஒப்பந்தத்தை பிழைதிருத்தம் (debug) செய்வதற்கும், ஒரு செயல்பாட்டை அழைக்கும்போது என்ன நடக்கிறது என்பதைப் புரிந்துகொள்வதற்கும் ஒரு வசதியான வழியாகும்.

பக்கம் கடைசியாகப் புதுப்பிக்கப்பட்டது: 3 மார்ச், 2026

இந்த வழிகாட்டி பயனுள்ளதாக இருந்ததா?