اہم مواد پر جائیں

JavaScript میں Ethereum بلاک چین استعمال کرنے کے لئے web3.js سیٹ اپ کریں

web3.js
javascript
ابتدائی
jdourlens
11 اپریل، 2020
4 منٹ کی پڑھائی

اس ٹیوٹوریل میں، ہم دیکھیں گے کہ Ethereum بلاک چین کے ساتھ تعامل کرنے کے لئے web3.jsopens in a new tab کے ساتھ کیسے شروعات کی جائے۔ Web3.js کو فرنٹ اینڈز اور بیک اینڈز دونوں میں بلاک چین سے ڈیٹا پڑھنے، ٹرانزیکشنز کرنے اور یہاں تک کہ سمارٹ کنٹریکٹس ڈیپلائے کرنے کے لیے استعمال کیا جا سکتا ہے۔

پہلا قدم اپنے پروجیکٹ میں web3.js کو شامل کرنا ہے۔ اسے ویب پیج میں استعمال کرنے کے لیے، آپ JSDeliver جیسے CDN کا استعمال کرتے ہوئے لائبریری کو براہ راست امپورٹ کر سکتے ہیں۔

1<script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>

اگر آپ لائبریری کو اپنے بیک اینڈ یا فرنٹ اینڈ پروجیکٹ میں استعمال کرنے کے لیے انسٹال کرنا چاہتے ہیں جو بلڈ کا استعمال کرتا ہے تو آپ اسے npm کا استعمال کرتے ہوئے انسٹال کر سکتے ہیں:

npm install web3 --save

پھر Web3.js کو Node.js اسکرپٹ یا Browserify فرنٹ اینڈ پروجیکٹ میں امپورٹ کرنے کے لیے، آپ JavaScript کی مندرجہ ذیل لائن استعمال کر سکتے ہیں:

1const Web3 = require("web3")

اب جب کہ ہم نے پروجیکٹ میں لائبریری کو شامل کر لیا ہے، ہمیں اسے انیشلائز کرنے کی ضرورت ہے۔ آپ کے پروجیکٹ کو بلاک چین کے ساتھ کمیونیکیٹ کرنے کے قابل ہونا چاہیے۔ زیادہ تر Ethereum لائبریریاں RPC کالز کے ذریعے ایک نوڈ کے ساتھ کمیونیکیٹ کرتی ہیں۔ اپنے Web3 پرووائیڈر کو شروع کرنے کے لیے، ہم پرووائیڈر کے URL کو کنسٹرکٹر کے طور پر پاس کرتے ہوئے ایک Web3 انسٹینس بنائیں گے۔ اگر آپ کے کمپیوٹر پر کوئی نوڈ یا ganache انسٹینس چل رہا ہےopens in a new tab تو یہ اس طرح نظر آئے گا:

1const web3 = new Web3("http://localhost:8545")

اگر آپ براہ راست کسی ہوسٹڈ نوڈ تک رسائی حاصل کرنا چاہتے ہیں تو آپ نوڈز ایز اے سروس پر آپشنز تلاش کر سکتے ہیں۔

1const web3 = new Web3("https://cloudflare-eth.com")

یہ جانچنے کے لیے کہ ہم نے اپنے Web3 انسٹینس کو صحیح طریقے سے کنفیگر کیا ہے، ہم getBlockNumber فنکشن کا استعمال کرتے ہوئے تازہ ترین بلاک نمبر حاصل کرنے کی کوشش کریں گے۔ یہ فنکشن ایک پیرامیٹر کے طور پر کال بیک کو قبول کرتا ہے اور بلاک نمبر کو ایک انٹیجر کے طور پر واپس کرتا ہے۔

1var Web3 = require("web3")
2const web3 = new Web3("https://cloudflare-eth.com")
3
4web3.eth.getBlockNumber(function (error, result) {
5 console.log(result)
6})

اگر آپ اس پروگرام کو چلاتے ہیں، تو یہ صرف تازہ ترین بلاک نمبر پرنٹ کرے گا: یعنی بلاک چین کا سب سے اوپر والا حصہ۔ آپ اپنے کوڈ میں نیسٹنگ کال بیکس سے بچنے کے لیے await/async فنکشن کالز کا بھی استعمال کر سکتے ہیں:

1async function getBlockNumber() {
2 const latestBlockNumber = await web3.eth.getBlockNumber()
3 console.log(latestBlockNumber)
4 return latestBlockNumber
5}
6
7getBlockNumber()

آپ Web3 انسٹینس پر دستیاب تمام فنکشنز کو web3.js کی آفیشل ڈاکومنٹیشنopens in a new tab میں دیکھ سکتے ہیں۔

زیادہ تر Web3 لائبریریاں ایسنکرونس ہوتی ہیں کیونکہ بیک گراؤنڈ میں لائبریری نوڈ کو JSON-RPC کالز کرتی ہے جو نتیجہ واپس بھیجتا ہے۔

اگر آپ براؤزر میں کام کر رہے ہیں، تو کچھ والیٹس براہ راست ایک Web3 انسٹینس انجیکٹ کرتے ہیں اور آپ کو جب بھی ممکن ہو اسے استعمال کرنے کی کوشش کرنی چاہیے، خاص طور پر اگر آپ ٹرانزیکشنز کرنے کے لیے صارف کے Ethereum ایڈریس کے ساتھ تعامل کرنے کا ارادہ رکھتے ہیں۔

یہاں یہ پتہ لگانے کے لیے سنیپٹ ہے کہ آیا MetaMask والیٹ دستیاب ہے اور اگر ہے تو اسے فعال کرنے کی کوشش کریں۔ یہ بعد میں آپ کو صارف کا بیلنس پڑھنے اور انہیں ان ٹرانزیکشنز کی توثیق کرنے کے قابل بنائے گا جو آپ ان سے Ethereum بلاک چین پر کروانا چاہتے ہیں:

1if (window.ethereum != null) {
2 state.web3 = new Web3(window.ethereum)
3 try {
4 // Request account access if needed
5 await window.ethereum.enable()
6 // Accounts now exposed
7 } catch (error) {
8 // User denied account access...
9 }
10}
سب دکھائیں

web3.js کے متبادل جیسے Ethers.jsopens in a new tab موجود ہیں اور عام طور پر استعمال بھی ہوتے ہیں۔ اگلے ٹیوٹوریل میں ہم دیکھیں گے کہ بلاک چین پر نئے آنے والے بلاکس کو آسانی سے کیسے سنا جائے اور دیکھیں کہ ان میں کیا ہےopens in a new tab۔

صفحہ کی آخری تازہ کاری: 21 اگست، 2025

کیا یہ ٹیوٹوریل کارآمد تھا؟