ஆரம்பநிலையாளர்களுக்கான ஹலோ வேர்ல்ட் ஸ்மார்ட் ஒப்பந்தம்
நீங்கள் பிளாக்செயின் மேம்பாட்டிற்குப் புதியவராக இருந்து, எங்கு தொடங்குவது என்று தெரியவில்லை என்றால், அல்லது ஸ்மார்ட் ஒப்பந்தங்களை எவ்வாறு செயல்படுத்துவது (deploy) மற்றும் அவற்றுடன் தொடர்புகொள்வது என்பதைப் புரிந்துகொள்ள விரும்பினால், இந்த வழிகாட்டி உங்களுக்கானது. MetaMask (opens in a new tab) என்ற மெய்நிகர் வாலட், Solidity (opens in a new tab), Hardhat (opens in a new tab) மற்றும் Alchemy (opens in a new tab) ஆகியவற்றைப் பயன்படுத்தி Sepolia சோதனை நெட்வொர்க்கில் ஒரு எளிய ஸ்மார்ட் ஒப்பந்தத்தை உருவாக்கி செயல்படுத்துவது குறித்துப் பார்ப்போம் (இவை எதைக் குறிக்கின்றன என்று உங்களுக்கு இன்னும் புரியவில்லை என்றால் கவலைப்பட வேண்டாம், நாங்கள் அதை விளக்குவோம்).
இந்தப் பயிற்சியின் பகுதி 2 (opens in a new tab)-இல், நமது ஸ்மார்ட் ஒப்பந்தம் இங்கு செயல்படுத்தப்பட்டவுடன் அதனுடன் எவ்வாறு தொடர்புகொள்ளலாம் என்பதைப் பார்ப்போம், மேலும் பகுதி 3 (opens in a new tab)-இல் அதை Etherscan-இல் எவ்வாறு வெளியிடுவது என்பதைப் பற்றிப் பார்ப்போம்.
எந்த நேரத்திலும் உங்களுக்குக் கேள்விகள் இருந்தால், Alchemy Discord (opens in a new tab)-இல் தயங்காமல் தொடர்புகொள்ளவும்!
படி 1: எத்தேரியம் நெட்வொர்க்குடன் இணைக்கவும்
எத்தேரியம் செயினுக்குக் கோரிக்கைகளை அனுப்பப் பல வழிகள் உள்ளன. எளிமைக்காக, Alchemy-இல் ஒரு இலவசக் கணக்கைப் பயன்படுத்துவோம், இது ஒரு பிளாக்செயின் டெவலப்பர் தளம் மற்றும் API ஆகும், இது நமது சொந்த நோடுகளை இயக்காமலேயே எத்தேரியம் செயினுடன் தொடர்புகொள்ள அனுமதிக்கிறது. இந்தத் தளத்தில் கண்காணிப்பு மற்றும் பகுப்பாய்விற்கான டெவலப்பர் கருவிகளும் உள்ளன, நமது ஸ்மார்ட் ஒப்பந்தச் செயலாக்கத்தில் என்ன நடக்கிறது என்பதைப் புரிந்துகொள்ள இந்தப் பயிற்சியில் அவற்றைப் பயன்படுத்திக்கொள்வோம். உங்களிடம் ஏற்கனவே Alchemy கணக்கு இல்லையென்றால், இங்கே இலவசமாகப் பதிவு செய்யலாம் (opens in a new tab).
படி 2: உங்கள் பயன்பாட்டை (மற்றும் API கீயை) உருவாக்கவும்
நீங்கள் Alchemy கணக்கை உருவாக்கியவுடன், ஒரு பயன்பாட்டை உருவாக்குவதன் மூலம் API கீயை உருவாக்கலாம். இது Sepolia சோதனை நெட்வொர்க்கிற்குக் கோரிக்கைகளை அனுப்ப அனுமதிக்கும். உங்களுக்கு டெஸ்ட்நெட்கள் பற்றித் தெரியவில்லை என்றால், இந்தப் பக்கத்தைப் பார்க்கவும்.
- உங்கள் Alchemy டேஷ்போர்டில் உள்ள நேவிகேஷன் பாரில் "Select an app" என்பதைத் தேர்ந்தெடுத்து, "Create new app" என்பதைக் கிளிக் செய்வதன் மூலம் "Create new app" பக்கத்திற்குச் செல்லவும்.
- உங்கள் பயன்பாட்டிற்கு “Hello World” என்று பெயரிட்டு, ஒரு சிறிய விளக்கத்தை அளித்து, பயன்பாட்டு வகையைத் தேர்ந்தெடுக்கவும், எ.கா., "Infra & Tooling." அடுத்து, "Ethereum" என்று தேடி நெட்வொர்க்கைத் தேர்ந்தெடுக்கவும்.
- தொடர "Next" என்பதைக் கிளிக் செய்து, பின்னர் “Create app” என்பதைக் கிளிக் செய்யவும், அவ்வளவுதான்! உங்கள் பயன்பாடு நேவிகேஷன் பார் கீழ்தோன்றும் மெனுவில் தோன்றும், அதனுடன் நகலெடுக்கக்கூடிய ஒரு API கீயும் இருக்கும்.
படி 3: ஒரு எத்தேரியம் கணக்கை (முகவரியை) உருவாக்கவும்
பரிவர்த்தனைகளை அனுப்பவும் பெறவும் நமக்கு ஒரு எத்தேரியம் கணக்கு தேவை. இந்தப் பயிற்சிக்காக, உங்கள் எத்தேரியம் கணக்கு முகவரியை நிர்வகிக்கப் பயன்படும் உலாவியில் உள்ள மெய்நிகர் வாலட்டான MetaMask-ஐப் பயன்படுத்துவோம். பரிவர்த்தனைகள் பற்றி மேலும் அறிய.
நீங்கள் MetaMask-ஐப் பதிவிறக்கம் செய்து, இங்கே (opens in a new tab) இலவசமாக ஒரு எத்தேரியம் கணக்கை உருவாக்கலாம். நீங்கள் ஒரு கணக்கை உருவாக்கும்போது, அல்லது உங்களிடம் ஏற்கனவே கணக்கு இருந்தால், நெட்வொர்க் கீழ்தோன்றும் மெனுவைப் பயன்படுத்தி "Sepolia" சோதனை நெட்வொர்க்கிற்கு மாறுவதை உறுதிசெய்து கொள்ளவும் (இதனால் நாம் உண்மையான பணத்தைக் கையாள மாட்டோம்).
Sepolia பட்டியலிடப்பட்டிருப்பதை நீங்கள் காணவில்லை என்றால், மெனுவிற்குச் சென்று, பின்னர் Advanced-க்குச் சென்று கீழே ஸ்க்ரோல் செய்து "Show test networks" என்பதை ஆன் செய்யவும். நெட்வொர்க் தேர்வு மெனுவில், டெஸ்ட்நெட்களின் பட்டியலைக் கண்டறிய "Custom" தாவலைத் தேர்ந்தெடுத்து "Sepolia" என்பதைத் தேர்ந்தெடுக்கவும்.
படி 4: ஒரு ஃபாசெட்டிலிருந்து ஈதரைச் சேர்க்கவும்
நமது ஸ்மார்ட் ஒப்பந்தத்தைச் சோதனை நெட்வொர்க்கில் செயல்படுத்த, நமக்குச் சில போலி ETH தேவைப்படும். Sepolia ETH-ஐப் பெற, பல்வேறு ஃபாசெட்களின் பட்டியலைக் காண Sepolia நெட்வொர்க் விவரங்கள் பக்கத்திற்குச் செல்லலாம். ஒன்று வேலை செய்யவில்லை என்றால், மற்றொன்றை முயற்சிக்கவும், ஏனெனில் அவை சில நேரங்களில் காலியாகிவிடலாம். நெட்வொர்க் டிராஃபிக் காரணமாக உங்கள் போலி ETH-ஐப் பெறச் சிறிது நேரம் ஆகலாம். சிறிது நேரத்திலேயே உங்கள் MetaMask கணக்கில் ETH-ஐக் காண முடியும்!
படி 5: உங்கள் இருப்பைச் சரிபார்க்கவும்
நமது இருப்பு உள்ளதா என்பதை மீண்டும் சரிபார்க்க, Alchemy-இன் கம்போஸர் கருவியைப் (opens in a new tab) பயன்படுத்தி ஒரு eth_getBalance கோரிக்கையை அனுப்புவோம். இது நமது வாலட்டில் உள்ள ETH அளவைத் திருப்பித் தரும். உங்கள் MetaMask கணக்கு முகவரியை உள்ளிட்டு “Send Request” என்பதைக் கிளிக் செய்த பிறகு, இது போன்ற ஒரு பதிலைக் காண்பீர்கள்:
1{ "jsonrpc": "2.0", "id": 0, "result": "0x2B5E3AF16B1880000" }குறிப்பு: இந்த முடிவு wei-இல் உள்ளது, ETH-இல் அல்ல. ஈதரின் மிகச்சிறிய மதிப்பாக Wei பயன்படுத்தப்படுகிறது. wei-லிருந்து ETH-க்கு மாற்றுவது: 1 eth = 1018 wei. எனவே 0x2B5E3AF16B1880000 என்பதை தசமமாக மாற்றினால் 5*10¹⁸ கிடைக்கும், இது 5 ETH-க்குச் சமம்.
அப்பாடா! நமது போலிப் பணம் முழுவதும் அங்கேயே உள்ளது .
படி 6: நமது திட்டத்தைத் தொடங்கவும்
முதலில், நமது திட்டத்திற்காக ஒரு கோப்புறையை உருவாக்க வேண்டும். உங்கள் கமாண்ட் லைனுக்குச் சென்று தட்டச்சு செய்யவும்:
1mkdir hello-world2cd hello-worldஇப்போது நாம் நமது திட்டக் கோப்புறைக்குள் இருப்பதால், திட்டத்தைத் தொடங்க npm init என்பதைப் பயன்படுத்துவோம். உங்களிடம் ஏற்கனவே npm நிறுவப்படவில்லை என்றால், இந்த வழிமுறைகளைப் (opens in a new tab) பின்பற்றவும் (நமக்கு Node.js-உம் தேவைப்படும், எனவே அதையும் பதிவிறக்கம் செய்யவும்!).
1npm initநிறுவல் கேள்விகளுக்கு நீங்கள் எவ்வாறு பதிலளிக்கிறீர்கள் என்பது முக்கியமல்ல, குறிப்புக்காக நாங்கள் அதை எவ்வாறு செய்தோம் என்பது இங்கே:
1package name: (hello-world)2version: (1.0.0)3description: hello world smart contract4entry point: (index.js)5test command:6git repository:7keywords:8author:9license: (ISC)10About to write to /Users/.../.../.../hello-world/package.json:11
12{13 "name": "hello-world",14 "version": "1.0.0",15 "description": "hello world smart contract",16 "main": "index.js",17 "scripts": {18 "test": "echo \\"Error: no test specified\\" && exit 1"19 },20 "author": "",21 "license": "ISC"22}package.json-ஐ அங்கீகரிக்கவும், நாம் தொடங்குவதற்குத் தயாராகிவிட்டோம்!
படி 7: Hardhat (opens in a new tab)-ஐப் பதிவிறக்கவும்
Hardhat என்பது உங்கள் எத்தேரியம் மென்பொருளைத் தொகுக்க, செயல்படுத்த, சோதிக்க மற்றும் பிழைத்திருத்தம் செய்வதற்கான ஒரு மேம்பாட்டுச் சூழலாகும். லைவ் செயினில் செயல்படுத்துவதற்கு முன்பு, ஸ்மார்ட் ஒப்பந்தங்கள் மற்றும் டாப்களை உள்ளூரில் உருவாக்கும்போது இது டெவலப்பர்களுக்கு உதவுகிறது.
நமது hello-world திட்டத்திற்குள் இதை இயக்கவும்:
1npm install --save-dev hardhatநிறுவல் வழிமுறைகள் (opens in a new tab) குறித்த கூடுதல் விவரங்களுக்கு இந்தப் பக்கத்தைப் பார்க்கவும்.
படி 8: Hardhat திட்டத்தை உருவாக்கவும்
நமது திட்டக் கோப்புறைக்குள் இதை இயக்கவும்:
1npx hardhatநீங்கள் ஒரு வரவேற்புச் செய்தியையும், நீங்கள் என்ன செய்ய விரும்புகிறீர்கள் என்பதைத் தேர்ந்தெடுப்பதற்கான விருப்பத்தையும் காண்பீர்கள். “create an empty hardhat.config.js” என்பதைத் தேர்ந்தெடுக்கவும்:
1888 888 888 888 8882888 888 888 888 8883888 888 888 888 88848888888888 8888b. 888d888 .d88888 88888b. 8888b. 8888885888 888 "88b 888P" d88" 888 888 "88b "88b 8886888 888 .d888888 888 888 888 888 888 .d888888 8887888 888 888 888 888 Y88b 888 888 888 888 888 Y88b.8888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y8889
10👷 Welcome to Hardhat v2.0.11 👷?11
12What do you want to do? …13Create a sample project14❯ Create an empty hardhat.config.js15Quitஇது நமக்காக ஒரு hardhat.config.js கோப்பை உருவாக்கும், அங்குதான் நமது திட்டத்திற்கான அனைத்து அமைப்புகளையும் குறிப்பிடுவோம் (படி 13-இல்).
படி 9: திட்டக் கோப்புறைகளைச் சேர்க்கவும்
நமது திட்டத்தை ஒழுங்கமைக்க இரண்டு புதிய கோப்புறைகளை உருவாக்குவோம். உங்கள் கமாண்ட் லைனில் உங்கள் திட்டத்தின் ரூட் டைரக்டரிக்குச் சென்று தட்டச்சு செய்யவும்:
1mkdir contracts2mkdir scriptscontracts/என்பது நமது ஹலோ வேர்ல்ட் ஸ்மார்ட் ஒப்பந்தக் குறியீட்டுக் கோப்பை வைத்திருக்கும் இடமாகும்scripts/என்பது நமது ஒப்பந்தத்தைச் செயல்படுத்தவும் அதனுடன் தொடர்புகொள்ளவும் ஸ்கிரிப்ட்களை வைத்திருக்கும் இடமாகும்
படி 10: நமது ஒப்பந்தத்தை எழுதவும்
நாம் எப்போதுதான் குறியீட்டை எழுதப் போகிறோம் என்று நீங்கள் உங்களைக் கேட்டுக்கொள்ளலாம்?? இதோ, படி 10-க்கு வந்துவிட்டோம்.
உங்களுக்குப் பிடித்த எடிட்டரில் hello-world திட்டத்தைத் திறக்கவும் (எங்களுக்கு VSCode (opens in a new tab) பிடிக்கும்). ஸ்மார்ட் ஒப்பந்தங்கள் Solidity எனப்படும் மொழியில் எழுதப்படுகின்றன, அதைத்தான் நமது HelloWorld.sol ஸ்மார்ட் ஒப்பந்தத்தை எழுதப் பயன்படுத்துவோம்.
- “contracts” கோப்புறைக்குச் சென்று HelloWorld.sol என்ற புதிய கோப்பை உருவாக்கவும்
- இந்தப் பயிற்சிக்காக நாம் பயன்படுத்தப் போகும் எத்தேரியம் அறக்கட்டளையின் மாதிரி ஹலோ வேர்ல்ட் ஸ்மார்ட் ஒப்பந்தம் கீழே கொடுக்கப்பட்டுள்ளது. கீழே உள்ள உள்ளடக்கங்களை நகலெடுத்து உங்கள் HelloWorld.sol கோப்பில் ஒட்டவும், மேலும் இந்த ஒப்பந்தம் என்ன செய்கிறது என்பதைப் புரிந்துகொள்ளக் கருத்துகளைப் படிக்க மறக்காதீர்கள்:
1// செமாண்டிக் பதிப்பாக்கத்தைப் பயன்படுத்தி, Solidity-இன் பதிப்பைக் குறிப்பிடுகிறது.2// மேலும் அறிய: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma3pragma solidity ^0.7.0;4
5// `HelloWorld` என்ற பெயரிலான ஒரு ஒப்பந்தத்தை (contract) வரையறுக்கிறது.6// ஒரு ஒப்பந்தம் என்பது செயல்பாடுகள் (functions) மற்றும் தரவுகளின் (அதன் நிலை) தொகுப்பாகும். ஒருமுறை பதிவேற்றப்பட்டவுடன் (deployed), ஒரு ஒப்பந்தம் Ethereum பிளாக்செயினில் ஒரு குறிப்பிட்ட முகவரியில் தங்கியிருக்கும். மேலும் அறிய: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html7contract HelloWorld {8
9 // `string` வகையிலான `message` என்ற நிலை மாறியை (state variable) அறிவிக்கிறது.10 // நிலை மாறிகள் (State variables) என்பவை ஒப்பந்த சேமிப்பகத்தில் நிரந்தரமாக சேமிக்கப்படும் மதிப்புகளைக் கொண்ட மாறிகள் ஆகும். `public` என்ற சிறப்புச்சொல் (keyword) மாறிகளை ஒப்பந்தத்திற்கு வெளியேயும் அணுகக்கூடியதாக மாற்றுகிறது, மேலும் பிற ஒப்பந்தங்கள் அல்லது வாடிக்கையாளர்கள் (clients) மதிப்பை அணுகுவதற்கு அழைக்கக்கூடிய ஒரு செயல்பாட்டையும் உருவாக்குகிறது.11 string public message;12
13 // பல வகுப்பு அடிப்படையிலான பொருள் சார்ந்த மொழிகளைப் போலவே (class-based object-oriented languages), கன்ஸ்ட்ரக்டர் (constructor) என்பது ஒப்பந்தம் உருவாக்கப்படும் போது மட்டுமே செயல்படுத்தப்படும் ஒரு சிறப்புச் செயல்பாடாகும்.14 // ஒப்பந்தத்தின் தரவைத் துவக்க (initialize) கன்ஸ்ட்ரக்டர்கள் பயன்படுத்தப்படுகின்றன. மேலும் அறிய:https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors15 constructor(string memory initMessage) {16
17 // `initMessage` என்ற சரம் அளபுருவை (string argument) ஏற்றுக்கொண்டு, அந்த மதிப்பை ஒப்பந்தத்தின் `message` சேமிப்பக மாறியில் அமைக்கிறது).18 message = initMessage;19 }20
21 // ஒரு சரம் அளபுருவை (string argument) ஏற்றுக்கொண்டு `message` சேமிப்பக மாறியைப் புதுப்பிக்கும் ஒரு பொதுச் செயல்பாடு (public function).22 function update(string memory newMessage) public {23 message = newMessage;24 }25}இது மிகவும் எளிமையான ஸ்மார்ட் ஒப்பந்தமாகும், இது உருவாக்கப்பட்டவுடன் ஒரு செய்தியைச் சேமிக்கிறது மற்றும் update செயல்பாட்டை அழைப்பதன் மூலம் புதுப்பிக்கப்படலாம்.
படி 11: MetaMask மற்றும் Alchemy-ஐ உங்கள் திட்டத்துடன் இணைக்கவும்
நாம் ஒரு MetaMask வாலட், Alchemy கணக்கை உருவாக்கி, நமது ஸ்மார்ட் ஒப்பந்தத்தை எழுதியுள்ளோம், இப்போது மூன்றையும் இணைக்க வேண்டிய நேரம் இது.
உங்கள் மெய்நிகர் வாலட்டிலிருந்து அனுப்பப்படும் ஒவ்வொரு பரிவர்த்தனைக்கும் உங்கள் தனிப்பட்ட பிரைவேட் கீயைப் பயன்படுத்திக் கையொப்பம் தேவை. நமது நிரலுக்கு இந்த அனுமதியை வழங்க, நமது பிரைவேட் கீயை (மற்றும் Alchemy API கீயை) ஒரு environment கோப்பில் பாதுகாப்பாகச் சேமிக்கலாம்.
பரிவர்த்தனைகளை அனுப்புவது பற்றி மேலும் அறிய, web3-ஐப் பயன்படுத்திப் பரிவர்த்தனைகளை அனுப்புவது குறித்த இந்தப் பயிற்சியைப் பார்க்கவும்.
முதலில், உங்கள் திட்ட டைரக்டரியில் dotenv தொகுப்பை நிறுவவும்:
1npm install dotenv --saveபின்னர், நமது திட்டத்தின் ரூட் டைரக்டரியில் ஒரு .env கோப்பை உருவாக்கி, அதில் உங்கள் MetaMask பிரைவேட் கீ மற்றும் HTTP Alchemy API URL-ஐச் சேர்க்கவும்.
- உங்கள் பிரைவேட் கீயை எக்ஸ்போர்ட் செய்ய இந்த வழிமுறைகளைப் (opens in a new tab) பின்பற்றவும்
- HTTP Alchemy API URL-ஐப் பெறக் கீழே பார்க்கவும்
Alchemy API URL-ஐ நகலெடுக்கவும்
உங்கள் .env இதுபோன்று இருக்க வேண்டும்:
1API_URL = "https://eth-sepolia.g.alchemy.com/v2/your-api-key"2PRIVATE_KEY = "your-metamask-private-key"இவற்றை நமது குறியீட்டுடன் இணைக்க, படி 13-இல் உள்ள நமது hardhat.config.js கோப்பில் இந்த மாறிகளைக் குறிப்பிடுவோம்.
.env-ஐ கமிட் செய்ய வேண்டாம்! உங்கள் .env கோப்பை யாருடனும் பகிரவோ அல்லது வெளிப்படுத்தவோ வேண்டாம் என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள், ஏனெனில் அவ்வாறு செய்வதன் மூலம் உங்கள் ரகசியங்களை நீங்கள் சமரசம் செய்கிறீர்கள். நீங்கள் பதிப்புக் கட்டுப்பாட்டைப் பயன்படுத்தினால், உங்கள் .env-ஐ ஒரு gitignore கோப்பில் சேர்க்கவும்.படி 12: Ethers.js-ஐ நிறுவவும்
Ethers.js என்பது நிலையான JSON-RPC முறைகளை பயனர் நட்பு முறைகளுடன் இணைப்பதன் மூலம் எத்தேரியத்துடன் தொடர்புகொள்வதையும் கோரிக்கைகளை அனுப்புவதையும் எளிதாக்கும் ஒரு லைப்ரரியாகும்.
கூடுதல் கருவிகள் மற்றும் நீட்டிக்கப்பட்ட செயல்பாட்டிற்கான செருகுநிரல்களை (opens in a new tab) ஒருங்கிணைப்பதை Hardhat மிகவும் எளிதாக்குகிறது. ஒப்பந்தச் செயலாக்கத்திற்கு Ethers செருகுநிரலைப் (opens in a new tab) பயன்படுத்திக்கொள்வோம் (Ethers.js (opens in a new tab)-இல் சில மிகச் சிறந்த ஒப்பந்தச் செயலாக்க முறைகள் உள்ளன).
உங்கள் திட்ட டைரக்டரியில் தட்டச்சு செய்யவும்:
1npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0"அடுத்த படியில் நமது hardhat.config.js-இல் ethers-உம் தேவைப்படும்.
படி 13: hardhat.config.js-ஐப் புதுப்பிக்கவும்
இதுவரை பல சார்புகளையும் செருகுநிரல்களையும் சேர்த்துள்ளோம், இப்போது hardhat.config.js-ஐப் புதுப்பிக்க வேண்டும், இதனால் நமது திட்டத்திற்கு அவை அனைத்தையும் பற்றித் தெரியும்.
உங்கள் hardhat.config.js-ஐ இதுபோன்று புதுப்பிக்கவும்:
1require('dotenv').config();2
3require("@nomiclabs/hardhat-ethers");4const { API_URL, PRIVATE_KEY } = process.env;5
6/**7* @type import('hardhat/config').HardhatUserConfig8*/9module.exports = {10 solidity: "0.7.3",11 defaultNetwork: "sepolia",12 networks: {13 hardhat: {},14 sepolia: {15 url: API_URL,16 accounts: [`0x${PRIVATE_KEY}`]17 }18 },19}படி 14: நமது ஒப்பந்தத்தைத் தொகுக்கவும்
இதுவரை எல்லாம் சரியாக வேலை செய்கிறதா என்பதை உறுதிப்படுத்த, நமது ஒப்பந்தத்தைத் தொகுப்போம். compile பணி என்பது உள்ளமைக்கப்பட்ட hardhat பணிகளில் ஒன்றாகும்.
கமாண்ட் லைனிலிருந்து இதை இயக்கவும்:
1npx hardhat compileSPDX license identifier not provided in source file என்பது பற்றிய எச்சரிக்கையை நீங்கள் பெறலாம், ஆனால் அதைப் பற்றிக் கவலைப்படத் தேவையில்லை — மற்ற அனைத்தும் நன்றாக இருக்கும் என்று நம்புகிறோம்! இல்லையென்றால், நீங்கள் எப்போதும் Alchemy discord (opens in a new tab)-இல் செய்தி அனுப்பலாம்.
படி 15: நமது டெப்ளாய் ஸ்கிரிப்டை எழுதவும்
இப்போது நமது ஒப்பந்தம் எழுதப்பட்டு, நமது உள்ளமைவுக் கோப்பு தயாராக உள்ளதால், நமது ஒப்பந்த டெப்ளாய் ஸ்கிரிப்டை எழுத வேண்டிய நேரம் இது.
scripts/ கோப்புறைக்குச் சென்று deploy.js என்ற புதிய கோப்பை உருவாக்கி, அதில் பின்வரும் உள்ளடக்கங்களைச் சேர்க்கவும்:
1async function main() {2 const HelloWorld = await ethers.getContractFactory("HelloWorld");3
4 // Start deployment, returning a promise that resolves to a contract object5 const hello_world = await HelloWorld.deploy("Hello World!");6 console.log("Contract deployed to address:", hello_world.address);}7
8main()9 .then(() => process.exit(0))10 .catch(error => {11 console.error(error);12 process.exit(1);13 });Hardhat அவர்களின் ஒப்பந்தங்கள் பயிற்சியில் (opens in a new tab) இந்தக் குறியீட்டின் ஒவ்வொரு வரியும் என்ன செய்கிறது என்பதை விளக்குவதில் ஒரு அற்புதமான வேலையைச் செய்கிறது, அவர்களின் விளக்கங்களை நாங்கள் இங்கே ஏற்றுக்கொண்டோம்.
1const HelloWorld = await ethers.getContractFactory("HelloWorld");ethers.js-இல் உள்ள ContractFactory என்பது புதிய ஸ்மார்ட் ஒப்பந்தங்களைச் செயல்படுத்தப் பயன்படும் ஒரு சுருக்கமாகும், எனவே இங்குள்ள HelloWorld என்பது நமது ஹலோ வேர்ல்ட் ஒப்பந்தத்தின் நிகழ்வுகளுக்கான ஒரு தொழிற்சாலையாகும். hardhat-ethers செருகுநிரலைப் பயன்படுத்தும்போது ContractFactory மற்றும் Contract நிகழ்வுகள் இயல்பாகவே முதல் கையொப்பமிடுபவருடன் இணைக்கப்படும்.
1const hello_world = await HelloWorld.deploy();ContractFactory-இல் deploy()-ஐ அழைப்பது செயலாக்கத்தைத் தொடங்கும், மேலும் Contract-க்குத் தீர்வு காணும் ஒரு Promise-ஐத் திருப்பித் தரும். இது நமது ஒவ்வொரு ஸ்மார்ட் ஒப்பந்தச் செயல்பாடுகளுக்கும் ஒரு முறையைக் கொண்ட பொருளாகும்.
படி 16: நமது ஒப்பந்தத்தைச் செயல்படுத்தவும்
இறுதியாக நமது ஸ்மார்ட் ஒப்பந்தத்தைச் செயல்படுத்தத் தயாராகிவிட்டோம்! கமாண்ட் லைனுக்குச் சென்று இதை இயக்கவும்:
1npx hardhat run scripts/deploy.js --network sepoliaநீங்கள் இது போன்ற ஒன்றைக் காண வேண்டும்:
1Contract deployed to address: 0x6cd7d44516a20882cEa2DE9f205bF401c0d23570நாம் Sepolia etherscan (opens in a new tab)-க்குச் சென்று நமது ஒப்பந்த முகவரியைத் தேடினால், அது வெற்றிகரமாகச் செயல்படுத்தப்பட்டிருப்பதைக் காண முடியும். பரிவர்த்தனை இதுபோன்று இருக்கும்:
From முகவரி உங்கள் MetaMask கணக்கு முகவரியுடன் பொருந்த வேண்டும் மற்றும் To முகவரி “Contract Creation” என்று கூறும், ஆனால் நாம் பரிவர்த்தனையைக் கிளிக் செய்தால் To புலத்தில் நமது ஒப்பந்த முகவரியைக் காண்போம்:
வாழ்த்துகள்! நீங்கள் எத்தேரியம் செயினில் ஒரு ஸ்மார்ட் ஒப்பந்தத்தை வெற்றிகரமாகச் செயல்படுத்திவிட்டீர்கள் 🎉
பின்னணியில் என்ன நடக்கிறது என்பதைப் புரிந்துகொள்ள, நமது Alchemy டேஷ்போர்டில் (opens in a new tab) உள்ள Explorer தாவலுக்குச் செல்வோம். உங்களிடம் பல Alchemy பயன்பாடுகள் இருந்தால், பயன்பாட்டின் அடிப்படையில் வடிகட்டி “Hello World” என்பதைத் தேர்ந்தெடுப்பதை உறுதிசெய்யவும்.

நாம் .deploy() செயல்பாட்டை அழைத்தபோது Hardhat/Ethers நமக்காகப் பின்னணியில் செய்த சில JSON-RPC அழைப்புகளை இங்கே காண்பீர்கள். இங்கே குறிப்பிட வேண்டிய இரண்டு முக்கியமானவை eth_sendRawTransaction (opens in a new tab), இது நமது ஒப்பந்தத்தை Sepolia செயினில் எழுதுவதற்கான கோரிக்கையாகும், மற்றும் eth_getTransactionByHash (opens in a new tab) இது ஹாஷைக் கொண்டு நமது பரிவர்த்தனை பற்றிய தகவல்களைப் படிப்பதற்கான கோரிக்கையாகும் (பரிவர்த்தனைகளின் போது இது ஒரு பொதுவான முறை). பரிவர்த்தனைகளை அனுப்புவது பற்றி மேலும் அறிய, Web3-ஐப் பயன்படுத்திப் பரிவர்த்தனைகளை அனுப்புவது குறித்த இந்தப் பயிற்சியைப் பார்க்கவும்.
இந்தப் பயிற்சியின் பகுதி 1-க்கு அவ்வளவுதான், பகுதி 2-இல் நமது ஆரம்பச் செய்தியைப் புதுப்பிப்பதன் மூலம் நமது ஸ்மார்ட் ஒப்பந்தத்துடன் தொடர்புகொள்வோம் (opens in a new tab), மேலும் பகுதி 3-இல் நமது ஸ்மார்ட் ஒப்பந்தத்தை Etherscan-இல் வெளியிடுவோம் (opens in a new tab), இதனால் அதனுடன் எவ்வாறு தொடர்புகொள்வது என்பதை அனைவரும் அறிந்துகொள்வார்கள்.
Alchemy பற்றி மேலும் அறிய விரும்புகிறீர்களா? எங்கள் இணையதளத்தைப் (opens in a new tab) பார்க்கவும். எந்தவொரு புதுப்பிப்பையும் தவறவிட விரும்பவில்லையா? எங்கள் செய்திமடலுக்கு இங்கே (opens in a new tab) குழுசேரவும்! எங்கள் Discord (opens in a new tab)-இலும் சேர மறக்காதீர்கள்..
பக்கம் கடைசியாகப் புதுப்பிக்கப்பட்டது: 3 மார்ச், 2026





