मुख्य आशयावर जा

नवशिक्यांसाठी हॅलो वर्ल्ड स्मार्ट कॉन्ट्रॅक्ट

Solidity
Hardhat
Alchemy
स्मार्ट कॉन्ट्रॅक्ट
डिप्लॉयिंग
नवशिक्या
elanh
31 मार्च, 2021
12 मिनिट वाचन

जर तुम्ही ब्लॉकचेन डेव्हलपमेंटमध्ये नवीन असाल आणि कुठून सुरुवात करावी हे माहित नसेल, किंवा जर तुम्हाला फक्त स्मार्ट कॉन्ट्रॅक्ट कसे उपयोजित करायचे आणि त्यांच्याशी संवाद कसा साधायचा हे समजून घ्यायचे असेल, तर हा मार्गदर्शक तुमच्यासाठी आहे. आपण व्हर्च्युअल वॉलेट MetaMask (opens in a new tab), Solidity (opens in a new tab), Hardhat (opens in a new tab), आणि Alchemy (opens in a new tab) वापरून सेपोलिया टेस्ट नेटवर्कवर एक साधे स्मार्ट कॉन्ट्रॅक्ट तयार करण्याची आणि उपयोजित करण्याची प्रक्रिया पाहू (यापैकी कशाचाही अर्थ तुम्हाला अजून समजत नसेल, तर काळजी करू नका, आम्ही ते स्पष्ट करू).

या ट्युटोरियलच्या भाग २ (opens in a new tab) मध्ये, एकदा आपले स्मार्ट कॉन्ट्रॅक्ट येथे उपयोजित झाल्यावर आपण त्याच्याशी संवाद कसा साधू शकतो हे पाहू, आणि भाग ३ (opens in a new tab) मध्ये आपण ते Etherscan वर कसे प्रकाशित करायचे हे पाहू.

तुम्हाला कोणत्याही वेळी प्रश्न पडल्यास Alchemy Discord (opens in a new tab) मध्ये मोकळेपणाने संपर्क साधा!

पायरी १: Ethereum नेटवर्कशी कनेक्ट करा

Ethereum चेनला विनंत्या करण्याचे अनेक मार्ग आहेत. सोपेपणासाठी, आपण Alchemy वर एक विनामूल्य खाते वापरू, जो एक ब्लॉकचेन डेव्हलपर प्लॅटफॉर्म आणि API आहे, ज्यामुळे आपल्याला आपले स्वतःचे नोड्स चालवल्याशिवाय Ethereum चेनशी संवाद साधता येतो. या प्लॅटफॉर्ममध्ये मॉनिटरिंग आणि ॲनालिटिक्ससाठी डेव्हलपर साधने देखील आहेत, ज्यांचा आपण या ट्युटोरियलमध्ये फायदा घेऊ, जेणेकरून आपल्या स्मार्ट कॉन्ट्रॅक्टच्या उपयोजनात पडद्यामागे काय चालले आहे हे समजेल. जर तुमचे आधीच Alchemy खाते नसेल, तर तुम्ही येथे विनामूल्य साइन अप करू शकता (opens in a new tab).

पायरी २: तुमचे ॲप (आणि API की) तयार करा

एकदा तुम्ही Alchemy खाते तयार केल्यावर, तुम्ही ॲप तयार करून API की तयार करू शकता. हे आम्हाला Sepolia चाचणी नेटवर्कवर विनंत्या करण्याची परवानगी देईल. जर तुम्ही टेस्टनेटशी परिचित नसाल, तर हे पृष्ठ पहा.

  1. तुमच्या Alchemy डॅशबोर्डमधील "Create new app" पृष्ठावर जाण्यासाठी नेव्ह बारमध्ये "Select an app" निवडा आणि "Create new app" वर क्लिक करा.

हॅलो वर्ल्ड ॲप तयार करा

  1. तुमच्या ॲपला “Hello World” असे नाव द्या, एक छोटे वर्णन द्या, आणि एक उपयोग-केस निवडा, उदा., "Infra & Tooling." पुढे, "Ethereum" साठी शोधा आणि नेटवर्क निवडा.

ॲप व्ह्यू हॅलो वर्ल्ड तयार करा

  1. पुढे जाण्यासाठी "Next" वर क्लिक करा, नंतर “Create app” आणि बस्स! तुमचे ॲप नेव्ह बार ड्रॉपडाउन मेन्यूमध्ये दिसले पाहिजे, जिथे कॉपी करण्यासाठी API की उपलब्ध असेल.

पायरी ३: एक Ethereum खाते (पत्ता) तयार करा

आम्हाला व्यवहार पाठवण्यासाठी आणि प्राप्त करण्यासाठी Ethereum खात्याची आवश्यकता आहे. या ट्यूटोरियलसाठी, आम्ही MetaMask वापरू, जे ब्राउझरमधील एक व्हर्च्युअल वॉलेट आहे, जे तुमचा Ethereum खाते पत्ता व्यवस्थापित करण्यासाठी वापरले जाते. व्यवहारांविषयी अधिक.

तुम्ही MetaMask डाउनलोड करू शकता आणि येथे (opens in a new tab) विनामूल्य Ethereum खाते तयार करू शकता. तुम्ही खाते तयार करत असताना, किंवा तुमचे खाते आधीच असल्यास, नेटवर्क ड्रॉपडाउन मेनू वापरून "Sepolia" टेस्ट नेटवर्कवर स्विच केल्याची खात्री करा (जेणेकरून आपण खऱ्या पैशांशी व्यवहार करणार नाही).

जर तुम्हाला Sepolia सूचीबद्ध दिसत नसेल, तर मेन्यूमध्ये जा, नंतर Advanced मध्ये जाऊन खाली स्क्रोल करा आणि "Show test networks" चालू करण्यासाठी टॉगल करा. नेटवर्क निवड मेन्यूमध्ये, टेस्टनेटची सूची शोधण्यासाठी "Custom" टॅब निवडा आणि "Sepolia" निवडा.

metamask sepolia उदाहरण

पायरी ४: फॉसेटमधून इथर मिळवा

आपले स्मार्ट कॉन्ट्रॅक्ट टेस्ट नेटवर्कवर उपयोजित करण्यासाठी, आपल्याला काही बनावट Eth ची आवश्यकता असेल. Sepolia ETH मिळवण्यासाठी, विविध फॉसेटची सूची पाहण्यासाठी तुम्ही Sepolia नेटवर्क तपशील वर जाऊ शकता. एक काम करत नसल्यास, दुसरा प्रयत्न करा, कारण ते कधीकधी रिकामे होऊ शकतात. नेटवर्क ट्रॅफिकमुळे तुमचा बनावट ETH मिळण्यास थोडा वेळ लागू शकतो. त्यानंतर लवकरच तुमच्या MetaMask खात्यात ETH दिसेल!

पायरी ५: तुमची शिल्लक तपासा

आपली शिल्लक आहे की नाही, हे पुन्हा तपासण्यासाठी, चला Alchemy च्या कंपोझर टूल (opens in a new tab) वापरून एक eth_getBalance विनंती करूया. हे आमच्या वॉलेटमधील ETH ची रक्कम परत करेल. तुम्ही तुमच्या MetaMask खात्याचा पत्ता इनपुट केल्यानंतर आणि “Send Request” वर क्लिक केल्यानंतर, तुम्हाला असा प्रतिसाद दिसेल:

{ "jsonrpc": "2.0", "id": 0, "result": "0x2B5E3AF16B1880000" }

टीप: हा निकाल ETH मध्ये नसून wei मध्ये आहे. Wei हे इथरचे सर्वात लहान एकक म्हणून वापरले जाते. wei चे ETH मध्ये रूपांतर असे आहे: 1 eth = 1018 wei. म्हणून जर आपण 0x2B5E3AF16B1880000 चे दशांश मध्ये रूपांतर केले, तर आपल्याला 5*10¹⁸ मिळतात जे 5 ETH च्या बरोबर आहे.

हुश्श! आपले बनावट पैसे पूर्णपणे तिथे आहेत .

पायरी ६: आपला प्रकल्प सुरू करा

प्रथम, आपल्याला आपल्या प्रोजेक्टसाठी एक फोल्डर तयार करण्याची आवश्यकता असेल. तुमच्या कमांड लाइनवर नेव्हिगेट करा आणि टाइप करा:

mkdir hello-world
cd hello-world

आता आपण आपल्या प्रोजेक्ट फोल्डरमध्ये आहोत, आपण प्रोजेक्ट सुरू करण्यासाठी npm init वापरू. जर तुमच्याकडे आधीपासून npm इंस्टॉल केलेले नसेल, तर या सूचनांचे (opens in a new tab) पालन करा (आपल्याला Node.js ची देखील आवश्यकता असेल, म्हणून ते देखील डाउनलोड करा!).

npm init

तुम्ही इन्स्टॉलेशनच्या प्रश्नांची उत्तरे कशी देता हे खरोखर महत्त्वाचे नाही, संदर्भासाठी आम्ही ते कसे केले ते येथे आहे:

package.json ला मंजूर करा आणि आपण पुढे जाण्यास तयार आहोत!

पायरी ७: Hardhat (opens in a new tab) डाउनलोड करा

Hardhat हे तुमचे Ethereum सॉफ्टवेअर संकलित (compile), उपयोजित (deploy), चाचणी (test) आणि डीबग (debug) करण्यासाठी एक विकास वातावरण आहे. हे डेव्हलपर्सना थेट चेनवर उपयोजित करण्यापूर्वी स्थानिक पातळीवर स्मार्ट कॉन्ट्रॅक्ट्स आणि dApps तयार करताना मदत करते.

आपल्या hello-world प्रोजेक्टमध्ये चालवा:

npm install --save-dev hardhat

इन्स्टॉलेशन सूचनांविषयी (opens in a new tab) अधिक तपशीलांसाठी हे पेज पहा.

पायरी ८: Hardhat प्रोजेक्ट तयार करा

आपल्या प्रोजेक्ट फोल्डरमध्ये चालवा:

npx hardhat

त्यानंतर तुम्हाला एक स्वागत संदेश आणि तुम्हाला काय करायचे आहे यासाठी पर्याय दिसेल. “create an empty hardhat.config.js” निवडा:

यामुळे आपल्यासाठी hardhat.config.js फाईल तयार होईल, जिथे आपण आपल्या प्रोजेक्टसाठी सर्व सेटअप निर्दिष्ट करू (पायरी १३ वर).

पायरी ९: प्रोजेक्ट फोल्डर्स जोडा

आपला प्रोजेक्ट सुव्यवस्थित ठेवण्यासाठी आपण दोन नवीन फोल्डर्स तयार करू. तुमच्या कमांड लाइनमधील प्रोजेक्टच्या मूळ डिरेक्टरीवर नेव्हिगेट करा आणि टाइप करा:

mkdir contracts
mkdir scripts
  • contracts/ मध्ये आपण आपली हॅलो वर्ल्ड स्मार्ट कॉन्ट्रॅक्ट कोड फाईल ठेवू
  • scripts/ मध्ये आपण आपले कॉन्ट्रॅक्ट उपयोजित करण्यासाठी आणि त्याच्याशी संवाद साधण्यासाठी स्क्रिप्ट्स ठेवू

पायरी १०: आपले कॉन्ट्रॅक्ट लिहा

तुम्ही स्वतःला विचारत असाल, की आपण कोड कधी लिहिणार आहोत?? तर, आपण पायरी १० वर आलो आहोत.

hello-world प्रोजेक्ट तुमच्या आवडत्या एडिटरमध्ये उघडा (आम्हाला VSCode (opens in a new tab) आवडते). स्मार्ट कॉन्ट्रॅक्ट्स Solidity नावाच्या भाषेत लिहिले जातात, जी आपण आपले HelloWorld.sol स्मार्ट कॉन्ट्रॅक्ट लिहिण्यासाठी वापरू.‌

  1. "contracts" फोल्डरमध्ये नेव्हिगेट करा आणि HelloWorld.sol नावाची नवीन फाईल तयार करा
  2. खाली Ethereum फाउंडेशनकडून एक नमुना Hello World स्मार्ट कॉन्ट्रॅक्ट आहे, जो आपण या ट्युटोरियलसाठी वापरणार आहोत. खालील मजकूर तुमच्या HelloWorld.sol फाईलमध्ये कॉपी आणि पेस्ट करा, आणि हे कॉन्ट्रॅक्ट काय करते हे समजून घेण्यासाठी कमेंट्स नक्की वाचा:

हे एक अत्यंत सोपे स्मार्ट कॉन्ट्रॅक्ट आहे जे तयार झाल्यावर एक संदेश संग्रहित करते आणि update फंक्शनला कॉल करून अपडेट केले जाऊ शकते.

पायरी ११: तुमच्या प्रोजेक्टला MetaMask आणि Alchemy कनेक्ट करा

आपण MetaMask वॉलेट, Alchemy खाते तयार केले आहे आणि आपले स्मार्ट कॉन्ट्रॅक्ट लिहिले आहे, आता या तिन्हीना जोडण्याची वेळ आली आहे.

तुमच्या व्हर्च्युअल वॉलेटमधून पाठवलेल्या प्रत्येक व्यवहारासाठी तुमच्या युनिक प्रायव्हेट की वापरून स्वाक्षरी आवश्यक आहे. आमच्या प्रोग्रामला ही परवानगी देण्यासाठी, आम्ही आमची प्रायव्हेट की (आणि Alchemy API की) एका एन्व्हायर्नमेंट फाइलमध्ये सुरक्षितपणे संग्रहित करू शकतो.

व्यवहार पाठवण्याबद्दल अधिक जाणून घेण्यासाठी, वेब3 वापरून व्यवहार पाठवण्यावरील हे ट्यूटोरियल पहा.

प्रथम, तुमच्या प्रोजेक्ट डिरेक्टरीमध्ये 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"

हे प्रत्यक्षात आपल्या कोडशी जोडण्यासाठी, आपण या व्हेरिएबल्सचा संदर्भ आपल्या hardhat.config.js फाईलमध्ये पायरी १३ वर देऊ.

.env कमिट करू नका! कृपया तुमची .env फाईल कोणासोबतही शेअर किंवा उघड करू नका, कारण असे केल्याने तुम्ही तुमची गुपिते धोक्यात आणत आहात याची खात्री करा. जर तुम्ही व्हर्जन कंट्रोल वापरत असाल, तर तुमची .env फाईल gitignore फाईलमध्ये जोडा.

पायरी १२: Ethers.js इंस्टॉल करा

Ethers.js ही एक लायब्ररी आहे जी अधिक वापरकर्ता-अनुकूल पद्धतींसह प्रमाणित JSON-RPC पद्धती गुंडाळून Ethereum शी संवाद साधणे आणि विनंत्या करणे सोपे करते.

Hardhat अतिरिक्त टूलिंग आणि विस्तारित कार्यक्षमतेसाठी प्लगइन्स (opens in a new tab) समाकलित करणे खूप सोपे करते. आम्ही कॉन्ट्रॅक्ट डिप्लॉयमेंटसाठी 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 ची आवश्यकता देखील दर्शवू.

पायरी १३: hardhat.config.js अद्ययावत करा

आतापर्यंत आपण अनेक डिपेंडेंसी आणि प्लगइन जोडले आहेत, आता आपल्याला hardhat.config.js अद्यतनित करण्याची आवश्यकता आहे जेणेकरून आपल्या प्रोजेक्टला त्या सर्वांबद्दल माहिती मिळेल.

तुमचे hardhat.config.js याप्रमाणे दिसण्यासाठी अद्यतनित करा:

पायरी १४: आपले कॉन्ट्रॅक्ट कंपाईल करा

आतापर्यंत सर्व काही कार्यरत आहे याची खात्री करण्यासाठी, चला आमचा कॉन्ट्रॅक्ट संकलित करूया. compile कार्य हे बिल्ट-इन हार्डहॅट कार्यांपैकी एक आहे.

कमांड लाइनमधून चालवा:

npx hardhat compile

तुम्हाला SPDX license identifier not provided in source file बद्दल एक चेतावणी मिळू शकते, परंतु त्याबद्दल काळजी करण्याची गरज नाही — आशा आहे की इतर सर्व काही ठीक दिसेल! नसल्यास, तुम्ही नेहमी Alchemy discord (opens in a new tab) मध्ये संदेश पाठवू शकता.

पायरी १५: आमची डिप्लॉय स्क्रिप्ट लिहा

आता आमचा कॉन्ट्रॅक्ट लिहिला आहे आणि आमची कॉन्फिगरेशन फाइल तयार आहे, आता आमच्या कॉन्ट्रॅक्टची उपयोजन स्क्रिप्ट लिहिण्याची वेळ आली आहे.

scripts/ फोल्डरवर नेव्हिगेट करा आणि deploy.js नावाची एक नवीन फाइल तयार करा, त्यात खालील सामग्री जोडा:

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() कॉल केल्याने उपयोजन सुरू होईल, आणि एक Promise परत येईल जो Contract मध्ये रिझॉल्व्ह होईल. हे ते ऑब्जेक्ट आहे ज्यामध्ये आमच्या प्रत्येक स्मार्ट कॉन्ट्रॅक्ट फंक्शनसाठी एक पद्धत आहे.

पायरी १६: आपले कॉन्ट्रॅक्ट उपयोजित करा

आम्ही अखेरीस आमचा स्मार्ट कॉन्ट्रॅक्ट उपयोजित करण्यास तयार आहोत! कमांड लाइनवर नेव्हिगेट करा आणि चालवा:

npx hardhat run scripts/deploy.js --network sepolia

तुम्हाला त्यानंतर असे काहीतरी दिसेल:

Contract deployed to address: 0x6cd7d44516a20882cEa2DE9f205bF401c0d23570

जर आपण Sepolia etherscan (opens in a new tab) वर गेलो आणि आपल्या कॉन्ट्रॅक्ट पत्त्यासाठी शोधले तर ते यशस्वीरित्या उपयोजित झाले आहे हे आपण पाहू शकू. व्यवहार असा काहीतरी दिसेल:

etherscan कॉन्ट्रॅक्ट

From पत्ता तुमच्या MetaMask खात्याच्या पत्त्याशी जुळला पाहिजे आणि To पत्त्यावर “Contract Creation” असे दिसेल, परंतु जर आपण व्यवहारात क्लिक केले तर आपल्याला To फील्डमध्ये आपला कॉन्ट्रॅक्ट पत्ता दिसेल:

एथरस्कॅन व्यवहार

अभिनंदन! तुम्ही नुकतेच Ethereum चेनवर एक स्मार्ट कॉन्ट्रॅक्ट उपयोजित केले आहे 🎉

पडद्यामागे काय चालले आहे हे समजून घेण्यासाठी, चला आमच्या Alchemy dashboard (opens in a new tab) मधील Explorer टॅबवर नेव्हिगेट करूया. तुमच्याकडे अनेक Alchemy ॲप्स असल्यास, ॲपनुसार फिल्टर केल्याची खात्री करा आणि “Hello World” निवडा. हॅलो वर्ल्ड एक्सप्लोरर

येथे तुम्हाला मुठभर JSON-RPC कॉल्स दिसतील जे Hardhat/Ethers ने .deploy() फंक्शन कॉल केल्यावर पडद्याआड आपल्यासाठी केले. येथे दोन महत्त्वाचे मुद्दे म्हणजे eth_sendRawTransaction (opens in a new tab), जे प्रत्यक्षात सेपोलिया चेनवर आपले कॉन्ट्रॅक्ट लिहिण्याची विनंती आहे, आणि eth_getTransactionByHash (opens in a new tab) जे हॅश दिल्यावर आपल्या व्यवहाराबद्दल माहिती वाचण्याची विनंती आहे (व्यवहार करताना एक सामान्य नमुना). व्यवहार पाठविण्याबद्दल अधिक जाणून घेण्यासाठी, Web3 आणि Alchemy वापरून व्यवहार पाठविण्यावरील हे ट्युटोरियल पहा.

या ट्युटोरियलच्या भाग १ साठी एवढेच, भाग २ मध्ये आपण आपला सुरुवातीचा संदेश अपडेट करून आपल्या स्मार्ट कॉन्ट्रॅक्टशी संवाद साधू (opens in a new tab) आणि भाग ३ मध्ये आपण आपले स्मार्ट कॉन्ट्रॅक्ट 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

हे ट्युटोरियल उपयुक्त होते का?