ప్రారంభకుల కోసం హలో వరల్డ్ స్మార్ట్ కాంట్రాక్ట్
మీరు బ్లాక్చైన్ డెవలప్మెంట్కు కొత్త అయితే మరియు ఎక్కడ ప్రారంభించాలో తెలియకపోతే, లేదా స్మార్ట్ కాంట్రాక్ట్లను ఎలా డిప్లాయ్ చేయాలో మరియు వాటితో ఎలా ఇంటరాక్ట్ అవ్వాలో అర్థం చేసుకోవాలనుకుంటే, ఈ గైడ్ మీ కోసమే. వర్చువల్ వాలెట్ 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 డిస్కార్డ్ (opens in a new tab) లో సంప్రదించడానికి సంకోచించకండి!
దశ 1: ఎథీరియం నెట్వర్క్కు కనెక్ట్ అవ్వండి
ఎథీరియం చైన్కు అభ్యర్థనలు చేయడానికి అనేక మార్గాలు ఉన్నాయి. సరళత కోసం, మేము Alchemy లో ఉచిత ఖాతాను ఉపయోగిస్తాము, ఇది మన స్వంత నోడ్లను రన్ చేయాల్సిన అవసరం లేకుండా ఎథీరియం చైన్తో కమ్యూనికేట్ చేయడానికి అనుమతించే బ్లాక్చైన్ డెవలపర్ ప్లాట్ఫారమ్ మరియు API. ఈ ప్లాట్ఫారమ్లో పర్యవేక్షణ మరియు విశ్లేషణల కోసం డెవలపర్ సాధనాలు కూడా ఉన్నాయి, మన స్మార్ట్ కాంట్రాక్ట్ డిప్లాయ్మెంట్లో అంతర్గతంగా ఏమి జరుగుతుందో అర్థం చేసుకోవడానికి ఈ ట్యుటోరియల్లో వాటిని ఉపయోగించుకుంటాము. మీకు ఇప్పటికే Alchemy ఖాతా లేకపోతే, మీరు ఇక్కడ ఉచితంగా సైన్ అప్ చేయవచ్చు (opens in a new tab).
దశ 2: మీ యాప్ను (మరియు API కీని) సృష్టించండి
మీరు Alchemy ఖాతాను సృష్టించిన తర్వాత, యాప్ను సృష్టించడం ద్వారా మీరు API కీని రూపొందించవచ్చు. ఇది Sepolia టెస్ట్ నెట్వర్క్కు అభ్యర్థనలు చేయడానికి మనల్ని అనుమతిస్తుంది. మీకు టెస్ట్నెట్ల గురించి తెలియకపోతే, ఈ పేజీని చూడండి.
- నావ్ బార్లో "Select an app" ఎంచుకుని, "Create new app" క్లిక్ చేయడం ద్వారా మీ Alchemy డాష్బోర్డ్లోని "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” క్లిక్ చేసిన తర్వాత, మీరు ఇలాంటి ప్రతిస్పందనను చూడాలి:
{ "jsonrpc": "2.0", "id": 0, "result": "0x2B5E3AF16B1880000" }
గమనిక: ఈ ఫలితం Wei లో ఉంది, ETH లో కాదు. ఈథర్ యొక్క అతిచిన్న విలువగా Wei ఉపయోగించబడుతుంది. Wei నుండి ETH కి మార్పిడి: 1 eth = 1018 Wei. కాబట్టి మనం 0x2B5E3AF16B1880000 ని దశాంశానికి మార్చినట్లయితే మనకు 5*10¹⁸ వస్తుంది, ఇది 5 ETH కి సమానం.
హమ్మయ్య! మన నకిలీ డబ్బు అంతా అక్కడే ఉంది .
దశ 6: మన ప్రాజెక్ట్ను ప్రారంభించండి
ముందుగా, మన ప్రాజెక్ట్ కోసం ఒక ఫోల్డర్ను సృష్టించాలి. మీ కమాండ్ లైన్కి వెళ్లి ఇలా టైప్ చేయండి:
mkdir hello-world
cd hello-world
ఇప్పుడు మనం మన ప్రాజెక్ట్ ఫోల్డర్ లోపల ఉన్నాము కాబట్టి, ప్రాజెక్ట్ను ప్రారంభించడానికి npm init ని ఉపయోగిస్తాము. మీకు ఇప్పటికే npm ఇన్స్టాల్ చేయబడి ఉండకపోతే, ఈ సూచనలను (opens in a new tab) అనుసరించండి (మనకు Node.js కూడా అవసరం కాబట్టి దాన్ని కూడా డౌన్లోడ్ చేసుకోండి!).
npm init
ఇన్స్టాలేషన్ ప్రశ్నలకు మీరు ఎలా సమాధానం ఇస్తారనేది పెద్దగా పట్టింపు లేదు, సూచన కోసం మేము దీన్ని ఎలా చేశామో ఇక్కడ ఉంది:
package name: (hello-world)
version: (1.0.0)
description: hello world smart contract
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to /Users/.../.../.../hello-world/package.json:
{
"name": "hello-world",
"version": "1.0.0",
"description": "hello world smart contract",
"main": "index.js",
"scripts": {
"test": "echo \\"Error: no test specified\\" && exit 1"
},
"author": "",
"license": "ISC"
}
package.json ని ఆమోదించండి మరియు మనం ముందుకు వెళ్లడానికి సిద్ధంగా ఉన్నాము!
దశ 7: Hardhat (opens in a new tab) ని డౌన్లోడ్ చేయండి
Hardhat అనేది మీ ఎథీరియం సాఫ్ట్వేర్ను కంపైల్ చేయడానికి, డిప్లాయ్ చేయడానికి, పరీక్షించడానికి మరియు డీబగ్ చేయడానికి ఒక డెవలప్మెంట్ వాతావరణం. లైవ్ చైన్కు డిప్లాయ్ చేయడానికి ముందు స్థానికంగా స్మార్ట్ కాంట్రాక్ట్లు మరియు డాప్లను (dapps) నిర్మించేటప్పుడు ఇది డెవలపర్లకు సహాయపడుతుంది.
మన hello-world ప్రాజెక్ట్ లోపల దీన్ని రన్ చేయండి:
npm install --save-dev hardhat
ఇన్స్టాలేషన్ సూచనల (opens in a new tab) గురించి మరిన్ని వివరాల కోసం ఈ పేజీని చూడండి.
దశ 8: Hardhat ప్రాజెక్ట్ను సృష్టించండి
మన ప్రాజెక్ట్ ఫోల్డర్ లోపల దీన్ని రన్ చేయండి:
npx hardhat
ఆ తర్వాత మీరు స్వాగత సందేశాన్ని మరియు మీరు ఏమి చేయాలనుకుంటున్నారో ఎంచుకోవడానికి ఒక ఎంపికను చూడాలి. “create an empty hardhat.config.js” ని ఎంచుకోండి:
888 888 888 888 888
888 888 888 888 888
888 888 888 888 888
8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888
888 888 "88b 888P" d88" 888 888 "88b "88b 888
888 888 .d888888 888 888 888 888 888 .d888888 888
888 888 888 888 888 Y88b 888 888 888 888 888 Y88b.
888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888
👷 Welcome to Hardhat v2.0.11 👷?
What do you want to do? …
Create a sample project
❯ Create an empty hardhat.config.js
Quit
ఇది మన కోసం hardhat.config.js ఫైల్ను రూపొందిస్తుంది, ఇక్కడే మనం మన ప్రాజెక్ట్ కోసం సెటప్ అంతా పేర్కొంటాము (దశ 13 లో).
దశ 9: ప్రాజెక్ట్ ఫోల్డర్లను జోడించండి
మన ప్రాజెక్ట్ను క్రమబద్ధంగా ఉంచడానికి మనం రెండు కొత్త ఫోల్డర్లను సృష్టిస్తాము. మీ కమాండ్ లైన్లో మీ ప్రాజెక్ట్ యొక్క రూట్ డైరెక్టరీకి వెళ్లి ఇలా టైప్ చేయండి:
mkdir contracts
mkdir scripts
contracts/అనేది మన హలో వరల్డ్ స్మార్ట్ కాంట్రాక్ట్ కోడ్ ఫైల్ను ఉంచే ప్రదేశంscripts/అనేది మన కాంట్రాక్ట్ను డిప్లాయ్ చేయడానికి మరియు దానితో ఇంటరాక్ట్ అవ్వడానికి స్క్రిప్ట్లను ఉంచే ప్రదేశం
దశ 10: మన కాంట్రాక్ట్ను రాయండి
మనం కోడ్ ఎప్పుడు రాస్తాము అని మీరు ఆశ్చర్యపోతుండవచ్చు?? సరే, మనం ఇక్కడ 10వ దశలో ఉన్నాము.
మీకు ఇష్టమైన ఎడిటర్లో (మాకు VSCode (opens in a new tab) ఇష్టం) hello-world ప్రాజెక్ట్ను తెరవండి. స్మార్ట్ కాంట్రాక్ట్లు Solidity అనే భాషలో వ్రాయబడతాయి, మన HelloWorld.sol స్మార్ట్ కాంట్రాక్ట్ను రాయడానికి మనం దీన్నే ఉపయోగిస్తాము.
- “contracts” ఫోల్డర్కి వెళ్లి HelloWorld.sol అనే కొత్త ఫైల్ను సృష్టించండి
- ఈ ట్యుటోరియల్ కోసం మనం ఉపయోగించబోయే ఎథీరియం ఫౌండేషన్ నుండి ఒక నమూనా హలో వరల్డ్ స్మార్ట్ కాంట్రాక్ట్ క్రింద ఉంది. క్రింది కంటెంట్లను కాపీ చేసి మీ HelloWorld.sol ఫైల్లో పేస్ట్ చేయండి మరియు ఈ కాంట్రాక్ట్ ఏమి చేస్తుందో అర్థం చేసుకోవడానికి వ్యాఖ్యలను తప్పకుండా చదవండి:
// సెమాంటిక్ వెర్షనింగ్ను ఉపయోగించి, Solidity యొక్క వెర్షన్ను నిర్దేశిస్తుంది.
// మరింత తెలుసుకోండి: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma
pragma solidity ^0.7.0;
// `HelloWorld` పేరుతో ఉన్న ఒక కాంట్రాక్ట్ను నిర్వచిస్తుంది.
// కాంట్రాక్ట్ అనేది ఫంక్షన్లు మరియు డేటా (దాని స్థితి) యొక్క సమూహం. ఒకసారి డిప్లాయ్ చేసిన తర్వాత, కాంట్రాక్ట్ ఎథీరియం బ్లాక్చైన్లోని ఒక నిర్దిష్ట చిరునామా వద్ద ఉంటుంది. మరింత తెలుసుకోండి: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html
contract HelloWorld {
// `string` రకానికి చెందిన `message` (సందేశం) అనే స్టేట్ వేరియబుల్ను ప్రకటిస్తుంది.
// స్టేట్ వేరియబుల్స్ అంటే వాటి విలువలు కాంట్రాక్ట్ స్టోరేజ్లో శాశ్వతంగా నిల్వ చేయబడే వేరియబుల్స్. `public` కీవర్డ్ వేరియబుల్స్ను కాంట్రాక్ట్ వెలుపల నుండి యాక్సెస్ చేయడానికి వీలు కల్పిస్తుంది మరియు విలువను యాక్సెస్ చేయడానికి ఇతర కాంట్రాక్ట్లు లేదా క్లయింట్లు కాల్ చేయగల ఒక ఫంక్షన్ను సృష్టిస్తుంది.
string public message;
// అనేక క్లాస్-ఆధారిత ఆబ్జెక్ట్-ఓరియెంటెడ్ భాషల మాదిరిగానే, కన్స్ట్రక్టర్ అనేది కాంట్రాక్ట్ సృష్టించినప్పుడు మాత్రమే అమలు చేయబడే ఒక ప్రత్యేక ఫంక్షన్.
// కాంట్రాక్ట్ యొక్క డేటాను ఇనిషియలైజ్ చేయడానికి కన్స్ట్రక్టర్లు ఉపయోగించబడతాయి. మరింత తెలుసుకోండి:https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors
constructor(string memory initMessage) {
// `initMessage` అనే స్ట్రింగ్ ఆర్గ్యుమెంట్ను అంగీకరిస్తుంది మరియు కాంట్రాక్ట్ యొక్క `message` (సందేశం) స్టోరేజ్ వేరియబుల్లో విలువను సెట్ చేస్తుంది).
message = initMessage;
}
// స్ట్రింగ్ ఆర్గ్యుమెంట్ను అంగీకరించి, `message` (సందేశం) స్టోరేజ్ వేరియబుల్ను అప్డేట్ చేసే ఒక పబ్లిక్ ఫంక్షన్.
function update(string memory newMessage) public {
message = newMessage;
}
}
ఇది చాలా సులభమైన స్మార్ట్ కాంట్రాక్ట్, ఇది సృష్టించబడినప్పుడు ఒక సందేశాన్ని నిల్వ చేస్తుంది మరియు update ఫంక్షన్ను కాల్ చేయడం ద్వారా అప్డేట్ చేయబడుతుంది.
దశ 11: మీ ప్రాజెక్ట్కి MetaMask & Alchemy ని కనెక్ట్ చేయండి
మనం MetaMask వాలెట్, Alchemy ఖాతాను సృష్టించాము మరియు మన స్మార్ట్ కాంట్రాక్ట్ను రాశాము, ఇప్పుడు ఈ మూడింటినీ కనెక్ట్ చేసే సమయం వచ్చింది.
మీ వర్చువల్ వాలెట్ నుండి పంపబడే ప్రతి లావాదేవీకి మీ ప్రత్యేకమైన ప్రైవేట్ కీని ఉపయోగించి సంతకం అవసరం. మన ప్రోగ్రామ్కు ఈ అనుమతిని అందించడానికి, మనం మన ప్రైవేట్ కీని (మరియు Alchemy API కీని) ఎన్విరాన్మెంట్ ఫైల్లో సురక్షితంగా నిల్వ చేయవచ్చు.
లావాదేవీలను పంపడం గురించి మరింత తెలుసుకోవడానికి, Web3 ఉపయోగించి లావాదేవీలను పంపడంపై ఈ ట్యుటోరియల్ని చూడండి.
ముందుగా, మీ ప్రాజెక్ట్ డైరెక్టరీలో dotenv ప్యాకేజీని ఇన్స్టాల్ చేయండి:
npm install dotenv --save
తర్వాత, మన ప్రాజెక్ట్ యొక్క రూట్ డైరెక్టరీలో .env ఫైల్ను సృష్టించండి మరియు దానికి మీ MetaMask ప్రైవేట్ కీ మరియు HTTP Alchemy API URL ని జోడించండి.
- మీ ప్రైవేట్ కీని ఎగుమతి చేయడానికి ఈ సూచనలను (opens in a new tab) అనుసరించండి
- HTTP Alchemy API URL ని పొందడానికి క్రింద చూడండి
Alchemy API URL ని కాపీ చేయండి
మీ .env ఇలా ఉండాలి:
API_URL = "https://eth-sepolia.g.alchemy.com/v2/your-api-key"
PRIVATE_KEY = "your-metamask-private-key"
వీటిని వాస్తవానికి మన కోడ్కి కనెక్ట్ చేయడానికి, మనం 13వ దశలో మన hardhat.config.js ఫైల్లో ఈ వేరియబుల్స్ను సూచిస్తాము.
.env ని కమిట్ చేయకండి! దయచేసి మీ .env ఫైల్ను ఎవరితోనూ పంచుకోకుండా లేదా బహిర్గతం చేయకుండా చూసుకోండి, ఎందుకంటే అలా చేయడం ద్వారా మీరు మీ రహస్యాలను రాజీ పడుతున్నారు. మీరు వెర్షన్ కంట్రోల్ని ఉపయోగిస్తుంటే, మీ .env ని gitignore ఫైల్కి జోడించండి.దశ 12: Ethers.js ని ఇన్స్టాల్ చేయండి
Ethers.js అనేది ప్రామాణిక జేసన్-ఆర్పీసీ పద్ధతులను మరింత యూజర్ ఫ్రెండ్లీ పద్ధతులతో చుట్టడం ద్వారా ఎథీరియంతో ఇంటరాక్ట్ అవ్వడాన్ని మరియు అభ్యర్థనలు చేయడాన్ని సులభతరం చేసే లైబ్రరీ.
అదనపు టూలింగ్ మరియు విస్తరించిన కార్యాచరణ కోసం ప్లగిన్లను (opens in a new tab) ఏకీకృతం చేయడాన్ని Hardhat చాలా సులభతరం చేస్తుంది. కాంట్రాక్ట్ డిప్లాయ్మెంట్ కోసం మనం Ethers ప్లగిన్ను (opens in a new tab) ఉపయోగించుకుంటాము (Ethers.js (opens in a new tab) లో కొన్ని చాలా స్పష్టమైన కాంట్రాక్ట్ డిప్లాయ్మెంట్ పద్ధతులు ఉన్నాయి).
మీ ప్రాజెక్ట్ డైరెక్టరీలో ఇలా టైప్ చేయండి:
npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0"
తదుపరి దశలో మన hardhat.config.js లో కూడా మనకు ethers అవసరం.
దశ 13: hardhat.config.js ని అప్డేట్ చేయండి
మనం ఇప్పటివరకు అనేక డిపెండెన్సీలు మరియు ప్లగిన్లను జోడించాము, ఇప్పుడు మనం hardhat.config.js ని అప్డేట్ చేయాలి, తద్వారా మన ప్రాజెక్ట్కి వాటన్నింటి గురించి తెలుస్తుంది.
మీ hardhat.config.js ని ఇలా కనిపించేలా అప్డేట్ చేయండి:
require('dotenv').config();
require("@nomiclabs/hardhat-ethers");
const { API_URL, PRIVATE_KEY } = process.env;
/**
* @type import('hardhat/config').HardhatUserConfig
*/
module.exports = {
solidity: "0.7.3",
defaultNetwork: "sepolia",
networks: {
hardhat: {},
sepolia: {
url: API_URL,
accounts: [`0x${PRIVATE_KEY}`]
}
},
}
దశ 14: మన కాంట్రాక్ట్ను కంపైల్ చేయండి
ఇప్పటివరకు అంతా సరిగ్గా పనిచేస్తుందో లేదో నిర్ధారించుకోవడానికి, మన కాంట్రాక్ట్ను కంపైల్ చేద్దాం. compile టాస్క్ అనేది అంతర్నిర్మిత hardhat టాస్క్లలో ఒకటి.
కమాండ్ లైన్ నుండి దీన్ని రన్ చేయండి:
npx hardhat compile
మీకు SPDX license identifier not provided in source file గురించి హెచ్చరిక రావచ్చు, కానీ దాని గురించి చింతించాల్సిన అవసరం లేదు — మిగతావన్నీ బాగానే ఉన్నాయని ఆశిస్తున్నాము! లేకపోతే, మీరు ఎల్లప్పుడూ Alchemy డిస్కార్డ్ (opens in a new tab) లో మెసేజ్ చేయవచ్చు.
దశ 15: మన డిప్లాయ్ స్క్రిప్ట్ను రాయండి
ఇప్పుడు మన కాంట్రాక్ట్ వ్రాయబడింది మరియు మన కాన్ఫిగరేషన్ ఫైల్ సిద్ధంగా ఉంది కాబట్టి, మన కాంట్రాక్ట్ డిప్లాయ్ స్క్రిప్ట్ను రాసే సమయం వచ్చింది.
scripts/ ఫోల్డర్కి వెళ్లి deploy.js అనే కొత్త ఫైల్ను సృష్టించండి, దానికి క్రింది కంటెంట్లను జోడించండి:
async function main() {
const HelloWorld = await ethers.getContractFactory("HelloWorld");
// Start deployment, returning a promise that resolves to a contract object
const hello_world = await HelloWorld.deploy("Hello World!");
console.log("Contract deployed to address:", hello_world.address);}
main()
.then(() => process.exit(0))
.catch(error => {
console.error(error);
process.exit(1);
});
ఈ కోడ్ లైన్లలో ప్రతి ఒక్కటి ఏమి చేస్తుందో వివరించడంలో Hardhat వారి కాంట్రాక్ట్ల ట్యుటోరియల్లో (opens in a new tab) అద్భుతమైన పని చేస్తుంది, మేము వారి వివరణలను ఇక్కడ స్వీకరించాము.
const HelloWorld = await ethers.getContractFactory("HelloWorld");
ethers.js లోని ContractFactory అనేది కొత్త స్మార్ట్ కాంట్రాక్ట్లను డిప్లాయ్ చేయడానికి ఉపయోగించే ఒక అబ్స్ట్రాక్షన్, కాబట్టి ఇక్కడ HelloWorld అనేది మన హలో వరల్డ్ కాంట్రాక్ట్ ఇన్స్టాన్స్ల కోసం ఒక ఫ్యాక్టరీ. hardhat-ethers ప్లగిన్ను ఉపయోగిస్తున్నప్పుడు ContractFactory మరియు Contract ఇన్స్టాన్స్లు అప్రమేయంగా మొదటి సంతకందారుకి కనెక్ట్ చేయబడతాయి.
const hello_world = await HelloWorld.deploy();
ContractFactory పై deploy() ని కాల్ చేయడం డిప్లాయ్మెంట్ను ప్రారంభిస్తుంది మరియు Contract కి రిజాల్వ్ అయ్యే Promise ని తిరిగి ఇస్తుంది. ఇది మన స్మార్ట్ కాంట్రాక్ట్ ఫంక్షన్లలో ప్రతిదానికీ ఒక పద్ధతిని కలిగి ఉన్న ఆబ్జెక్ట్.
దశ 16: మన కాంట్రాక్ట్ను డిప్లాయ్ చేయండి
మనం చివరగా మన స్మార్ట్ కాంట్రాక్ట్ను డిప్లాయ్ చేయడానికి సిద్ధంగా ఉన్నాము! కమాండ్ లైన్కి వెళ్లి దీన్ని రన్ చేయండి:
npx hardhat run scripts/deploy.js --network sepolia
ఆ తర్వాత మీరు ఇలాంటిది చూడాలి:
Contract deployed to address: 0x6cd7d44516a20882cEa2DE9f205bF401c0d23570
మనం Sepolia Etherscan (opens in a new tab) కి వెళ్లి మన కాంట్రాక్ట్ చిరునామా కోసం వెతికితే, అది విజయవంతంగా డిప్లాయ్ చేయబడిందని మనం చూడగలగాలి. లావాదేవీ ఇలా కనిపిస్తుంది:
From చిరునామా మీ MetaMask ఖాతా చిరునామాతో సరిపోలాలి మరియు To చిరునామా “Contract Creation” అని చెబుతుంది కానీ మనం లావాదేవీలోకి క్లిక్ చేస్తే To ఫీల్డ్లో మన కాంట్రాక్ట్ చిరునామాను చూస్తాము:
అభినందనలు! మీరు ఇప్పుడే ఎథీరియం చైన్కు ఒక స్మార్ట్ కాంట్రాక్ట్ను డిప్లాయ్ చేసారు 🎉
అంతర్గతంగా ఏమి జరుగుతుందో అర్థం చేసుకోవడానికి, మన Alchemy డాష్బోర్డ్లోని (opens in a new tab) ఎక్స్ప్లోరర్ ట్యాబ్కి వెళ్దాం. మీకు బహుళ Alchemy యాప్లు ఉంటే, యాప్ ద్వారా ఫిల్టర్ చేసి “Hello World” ని ఎంచుకునేలా చూసుకోండి.

మనం .deploy() ఫంక్షన్ను కాల్ చేసినప్పుడు Hardhat/Ethers మన కోసం అంతర్గతంగా చేసిన కొన్ని జేసన్-ఆర్పీసీ కాల్లను ఇక్కడ మీరు చూస్తారు. ఇక్కడ పేర్కొనవలసిన రెండు ముఖ్యమైనవి 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) సభ్యత్వం పొందండి! మా డిస్కార్డ్లో (opens in a new tab) కూడా తప్పకుండా చేరండి..





