प्रमुख मजकुराकडे जा
Change page

JavaScript API लायब्ररी

पृष्ठ अखेरचे अद्यतन: २५ फेब्रुवारी, २०२६

वेब ॲपला Ethereum ब्लॉकचेनशी संवाद साधण्यासाठी (म्हणजे, ब्लॉकचेन डेटा वाचणे आणि/किंवा नेटवर्कवर व्यवहार पाठवणे), ते Ethereum नोडशी कनेक्ट करणे आवश्यक आहे.

या उद्देशासाठी, प्रत्येक Ethereum क्लायंट JSON-RPC तपशील लागू करतो, त्यामुळे पद्धतींचा एकसमान संच आहे ज्यावर ॲप्लिकेशन्स अवलंबून राहू शकतात.

तुम्हाला Ethereum नोडशी कनेक्ट करण्यासाठी JavaScript वापरायचे असल्यास, व्हॅनिला JavaScript वापरणे शक्य आहे परंतु इकोसिस्टममध्ये अनेक सोयीस्कर लायब्ररी अस्तित्वात आहेत ज्यामुळे हे बरेच सोपे होते. या लायब्ररीजच्या मदतीने, डेव्हलपर इथेरियमशी संवाद साधणाऱ्या JSON-RPC विनंत्या (पडद्याआड) सुरू करण्यासाठी सहज, एका ओळीच्या पद्धती लिहू शकतात.

कृपया लक्षात घ्या की द मर्ज पासून, Ethereum सॉफ्टवेअरचे दोन जोडलेले भाग - एक एक्झिक्युशन क्लायंट आणि एक कन्सेंसस क्लायंट - नोड चालवण्यासाठी आवश्यक आहेत. कृपया खात्री करा की तुमच्या नोडमध्ये एक्झिक्युशन आणि कन्सेंसस क्लायंट दोन्ही समाविष्ट आहेत. जर तुमचा नोड तुमच्या स्थानिक मशीनवर नसेल (उदा. तुमचा नोड AWS इंस्टन्सवर चालत असेल) तर ट्यूटोरियलमधील IP पत्ते त्यानुसार अपडेट करा. नोड चालवण्यावर अधिक माहितीसाठी कृपया आमचे पेज पहा.

पूर्वतयारी

JavaScript समजून घेण्याबरोबरच, Ethereum स्टॅक आणि Ethereum क्लायंट समजून घेणे उपयुक्त ठरू शकते.

लायब्ररी का वापरावी?

या लायब्ररीज इथेरियम नोडशी थेट संवाद साधण्यातील बरीचशी गुंतागुंत दूर करतात. त्या उपयुक्तता कार्ये (utility functions) देखील प्रदान करतात (उदा. ETH चे Gwei मध्ये रूपांतर करणे), त्यामुळे एक डेव्हलपर म्हणून तुम्ही इथेरियम क्लायंटच्या गुंतागुंतीमध्ये कमी वेळ घालवून तुमच्या ॲप्लिकेशनच्या अद्वितीय कार्यक्षमतेवर अधिक लक्ष केंद्रित करू शकता.

लायब्ररी वैशिष्ट्ये

Ethereum नोड्सशी कनेक्ट करा

प्रोव्हायडर वापरून, या लायब्ररी तुम्हाला JSON-RPC, INFURA, Etherscan, Alchemy किंवा MetaMask द्वारे Ethereum शी कनेक्ट करण्याची आणि त्याचा डेटा वाचण्याची परवानगी देतात.

चेतावणी: Web3.js 4 मार्च 2025 रोजी संग्रहित केले गेले. घोषणा वाचा (opens in a new tab). नवीन प्रकल्पांसाठी ethers.js (opens in a new tab) किंवा viem (opens in a new tab) सारख्या पर्यायी लायब्ररी वापरण्याचा विचार करा.

Ethers उदाहरण

1// ब्राउझरप्रोव्हायडर एक मानक Web3 प्रोव्हायडरला रॅप करतो, जो आहे
2// जे MetaMask प्रत्येक पेजमध्ये window.ethereum म्हणून इंजेक्ट करते
3const provider = new ethers.BrowserProvider(window.ethereum)
4
5// MetaMask प्लगइन देखील व्यवहार साइन करण्याची परवानगी देतो
6// ब्लॉकचेनमध्ये इथर पाठवण्यासाठी आणि स्थिती बदलण्यासाठी पैसे देण्यासाठी.
7// यासाठी, आम्हाला खाते साइनरची आवश्यकता आहे...
8const signer = provider.getSigner()

Web3js उदाहरण

1var web3 = new Web3("http://localhost:8545")
2// किंवा
3var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"))
4
5// प्रोव्हायडर बदला
6web3.setProvider("ws://localhost:8546")
7// किंवा
8web3.setProvider(new Web3.providers.WebsocketProvider("ws://localhost:8546"))
9
10// node.js मध्ये IPC प्रोव्हायडर वापरणे
11var net = require("net")
12var web3 = new Web3("/Users/myuser/Library/Ethereum/geth.ipc", net) // mac os पाथ
13// किंवा
14var web3 = new Web3(
15 new Web3.providers.IpcProvider("/Users/myuser/Library/Ethereum/geth.ipc", net)
16) // mac os पाथ
17// विंडोजवर पाथ आहे: "\\\\.\\pipe\\geth.ipc"
18// लिनक्सवर पाथ आहे: "/users/myuser/.ethereum/geth.ipc"
सर्व दाखवा

एकदा सेट झाल्यावर तुम्ही ब्लॉकचेनला यासाठी क्वेरी करू शकाल:

  • ब्लॉक क्रमांक
  • गॅस अंदाज
  • स्मार्ट कॉन्ट्रॅक्ट इव्हेंट्स
  • नेटवर्क आयडी
  • आणि बरेच काही...

वॉलेट कार्यक्षमता

या लायब्ररी तुम्हाला वॉलेट तयार करण्यासाठी, की व्यवस्थापित करण्यासाठी आणि व्यवहार साइन करण्यासाठी कार्यक्षमता देतात.

येथे Ethers मधील एक उदाहरण आहे

1// मेमोनिकमधून वॉलेट इंस्टन्स तयार करा...
2mnemonic =
3 "announce room limb pattern dry unit scale effort smooth jazz weasel alcohol"
4walletMnemonic = Wallet.fromPhrase(mnemonic)
5
6// ...किंवा खासगी की मधून
7walletPrivateKey = new Wallet(walletMnemonic.privateKey)
8
9walletMnemonic.address === walletPrivateKey.address
10// खरे
11
12// साइनर API नुसार पत्ता प्रॉमिस म्हणून
13walletMnemonic.getAddress()
14// { Promise: '0x71CB05EE1b1F506fF321Da3dac38f25c0c9ce6E1' }
15
16// वॉलेटचा पत्ता समकालिकपणे देखील उपलब्ध आहे
17walletMnemonic.address
18// '0x71CB05EE1b1F506fF321Da3dac38f25c0c9ce6E1'
19
20// अंतर्गत क्रिप्टोग्राफिक घटक
21walletMnemonic.privateKey
22// '0x1da6847600b0ee25e9ad9a52abbd786dd2502fa4005dd5af9310b7cc7a3b25db'
23walletMnemonic.publicKey
24// '0x04b9e72dfd423bcf95b3801ac93f4392be5ff22143f9980eb78b3a860c4843bfd04829ae61cdba4b3b1978ac5fc64f5cc2f4350e35a108a9c9a92a81200a60cd64'
25
26// वॉलेट मेमोनिक
27walletMnemonic.mnemonic
28// {
29// locale: 'en',
30// path: 'm/44\'/60\'/0\'/0/0',
31// phrase: 'announce room limb pattern dry unit scale effort smooth jazz weasel alcohol'
32// }
33
34// टीप: खासगी की सह तयार केलेल्या वॉलेटमध्ये
35// मेमोनिक नसते (व्युत्पन्नता ते प्रतिबंधित करते)
36walletPrivateKey.mnemonic
37// null
38
39// संदेश साइन करणे
40walletMnemonic.signMessage("Hello World")
41// { Promise: '0x14280e5885a19f60e536de50097e96e3738c7acae4e9e62d67272d794b8127d31c03d9cd59781d4ee31fb4e1b893bd9b020ec67dfa65cfb51e2bdadbb1de26d91c' }
42
43tx = {
44 to: "0x8ba1f109551bD432803012645Ac136ddd64DBA72",
45 value: utils.parseEther("1.0"),
46}
47
48// व्यवहार साइन करणे
49walletMnemonic.signTransaction(tx)
50// { Promise: '0xf865808080948ba1f109551bd432803012645ac136ddd64dba72880de0b6b3a7640000801ca0918e294306d177ab7bd664f5e141436563854ebe0a3e523b9690b4922bbb52b8a01181612cec9c431c4257a79b8c9f0c980a2c49bb5a0e6ac52949163eeb565dfc' }
51
52// कनेक्ट पद्धत नवीन इंस्टन्स परत करते
53// प्रोव्हायडरशी कनेक्ट केलेले वॉलेट
54wallet = walletMnemonic.connect(provider)
55
56// नेटवर्कला क्वेरी करणे
57wallet.getBalance()
58// { Promise: { BigNumber: "42" } }
59wallet.getTransactionCount()
60// { Promise: 0 }
61
62// इथर पाठवणे
63wallet.sendTransaction(tx)
सर्व दाखवा

संपूर्ण दस्तऐवज वाचा (opens in a new tab)

एकदा सेट झाल्यावर तुम्ही हे करू शकाल:

  • खाती तयार करा
  • व्यवहार पाठवा
  • व्यवहारांवर सही करा
  • आणि बरेच काही...

स्मार्ट कॉन्ट्रॅक्ट फंक्शन्सशी संवाद साधा

JavaScript क्लायंट लायब्ररी तुमच्या ॲप्लिकेशनला संकलित कॉन्ट्रॅक्टचा ॲप्लिकेशन बायनरी इंटरफेस (ABI) वाचून स्मार्ट कॉन्ट्रॅक्ट फंक्शन्स कॉल करण्याची परवानगी देतात.

ABI मूलत: कॉन्ट्रॅक्टची फंक्शन्स JSON स्वरूपात स्पष्ट करते आणि तुम्हाला ते सामान्य JavaScript ऑब्जेक्टप्रमाणे वापरण्याची परवानगी देते.

म्हणून खालील Solidity कॉन्ट्रॅक्ट:

1contract Test {
2 uint a;
3 address d = 0x12345678901234567890123456789012;
4
5 constructor(uint testInt) { a = testInt;}
6
7 event Event(uint indexed b, bytes32 c);
8
9 event Event2(uint indexed b, bytes32 c);
10
11 function foo(uint b, bytes32 c) returns(address) {
12 Event(b, c);
13 return d;
14 }
15}
सर्व दाखवा

याचा परिणाम खालील JSON मध्ये होईल:

1[{
2 "type":"constructor",
3 "payable":false,
4 "stateMutability":"nonpayable"
5 "inputs":[{"name":"testInt","type":"uint256"}],
6 },{
7 "type":"function",
8 "name":"foo",
9 "constant":false,
10 "payable":false,
11 "stateMutability":"nonpayable",
12 "inputs":[{"name":"b","type":"uint256"}, {"name":"c","type":"bytes32"}],
13 "outputs":[{"name":"","type":"address"}]
14 },{
15 "type":"event",
16 "name":"Event",
17 "inputs":[{"indexed":true,"name":"b","type":"uint256"}, {"indexed":false,"name":"c","type":"bytes32"}],
18 "anonymous":false
19 },{
20 "type":"event",
21 "name":"Event2",
22 "inputs":[{"indexed":true,"name":"b","type":"uint256"},{"indexed":false,"name":"c","type":"bytes32"}],
23 "anonymous":false
24}]
सर्व दाखवा

याचा अर्थ तुम्ही हे करू शकता:

  • स्मार्ट कॉन्ट्रॅक्टला व्यवहार पाठवा आणि त्याची पद्धत कार्यान्वित करा
  • EVM मध्ये कार्यान्वित केल्यावर पद्धतीच्या अंमलबजावणीसाठी किती गॅस लागेल याचा अंदाज घेण्यासाठी कॉल करा
  • कॉन्ट्रॅक्ट तैनात करा
  • आणि बरेच काही...

उपयुक्तता फंक्शन्स

युटिलिटी फंक्शन्स तुम्हाला सुलभ शॉर्टकट देतात ज्यामुळे Ethereum सह बिल्डिंग थोडे सोपे होते.

ETH मूल्ये डीफॉल्टनुसार Wei मध्ये असतात. १ ETH = १,०००,०००,०००,०००,०००,००० WEI – याचा अर्थ तुम्ही खूप मोठ्या संख्यांशी व्यवहार करत आहात! web3.utils.toWei तुमच्यासाठी इथरला Wei मध्ये रूपांतरित करते.

आणि ethers मध्ये ते असे दिसते:

1// खात्याची शिल्लक मिळवा (पत्त्याद्वारे किंवा ENS नावाद्वारे)
2balance = await provider.getBalance("ethers.eth")
3// { BigNumber: "2337132817842795605" }
4
5// अनेकदा तुम्हाला वापरकर्त्यासाठी आउटपुट स्वरूपित करण्याची आवश्यकता असेल
6// जे (wei ऐवजी) इथरमध्ये मूल्ये पाहणे पसंत करतात
7ethers.utils.formatEther(balance)
8// '2.337132817842795605'

उपलब्ध लायब्ररीज

Web3.js - Ethereum JavaScript API.

Ethers.js - JavaScript आणि TypeScript मध्ये संपूर्ण Ethereum वॉलेट अंमलबजावणी आणि उपयुक्तता.

द ग्राफ - Ethereum आणि IPFS डेटा अनुक्रमित करण्यासाठी आणि GraphQL वापरून क्वेरी करण्यासाठी एक प्रोटोकॉल.

Alchemy SDK - वर्धित apis सह Ethers.js भोवती रॅपर.

viem - Ethereum साठी TypeScript इंटरफेस.

Drift - अंगभूत कॅशिंग, हुक आणि चाचणी मॉक्ससह TypeScript मेटा-लायब्ररी.

पुढील वाचन

तुम्हाला मदत केलेल्या सामुदायिक संसाधनाबद्दल माहिती आहे का? हे पृष्ठ संपादित करा आणि ते जोडा!_

हा लेख उपयुक्त होता का?