مرکزی مواد پر جائیں

مبتدیان کے لیے ⁦Hello World⁩ سمارٹ کنٹریکٹ

Solidity
Hardhat
Alchemy
سمارٹ کنٹریکٹس
تعیناتی
ابتدائی
ایلان ایچ
۳۱ مارچ، ۲۰۲۱
16 منٹ کا مطالعہ

اگر آپ بلاک چین ڈیولپمنٹ میں نئے ہیں اور نہیں جانتے کہ کہاں سے شروع کریں، یا اگر آپ صرف یہ سمجھنا چاہتے ہیں کہ سمارٹ کنٹریکٹس کو کیسے تعینات کیا جائے اور ان کے ساتھ کیسے تعامل کیا جائے، تو یہ گائیڈ آپ کے لیے ہے۔ ہم ایک ورچوئل والیٹ میٹاماسک (نئے ٹیب میں کھلتا ہے)، Solidity (نئے ٹیب میں کھلتا ہے)، Hardhat (نئے ٹیب میں کھلتا ہے)، اور Alchemy (نئے ٹیب میں کھلتا ہے) کا استعمال کرتے ہوئے Sepolia ٹیسٹ نیٹ ورک پر ایک سادہ سمارٹ کنٹریکٹ بنانے اور تعینات کرنے کے عمل سے گزریں گے (اگر آپ ابھی تک ان میں سے کسی کا مطلب نہیں سمجھتے تو پریشان نہ ہوں، ہم اس کی وضاحت کریں گے)۔

ایک بار جب آپ کا کنٹریکٹ تعینات ہو جائے، تو آپ اس کے لیے ایک یوزر انٹرفیس بنا سکتے ہیں۔

اگر آپ کو کسی بھی موقع پر سوالات ہوں تو بلا جھجھک Alchemy ڈسکارڈ (نئے ٹیب میں کھلتا ہے) میں رابطہ کریں!

مرحلہ 1: ایتھیریم نیٹ ورک سے جڑیں

ایتھیریم چین کو درخواستیں بھیجنے کے کئی طریقے ہیں۔ سادگی کے لیے، ہم Alchemy پر ایک مفت اکاؤنٹ استعمال کریں گے، جو کہ ایک بلاک چین ڈیولپر پلیٹ فارم اور API ہے جو ہمیں اپنے نوڈز چلائے بغیر ایتھیریم چین کے ساتھ بات چیت کرنے کی اجازت دیتا ہے۔ اس پلیٹ فارم میں نگرانی اور تجزیات کے لیے ڈیولپر ٹولز بھی موجود ہیں جن کا ہم اس ٹیوٹوریل میں فائدہ اٹھائیں گے تاکہ یہ سمجھ سکیں کہ ہماری سمارٹ کنٹریکٹ تعیناتی میں اندرونی طور پر کیا ہو رہا ہے۔ اگر آپ کے پاس پہلے سے Alchemy اکاؤنٹ نہیں ہے، تو آپ یہاں مفت سائن اپ کر سکتے ہیں (نئے ٹیب میں کھلتا ہے)۔

مرحلہ 2: اپنی ایپ (اور API کلید) بنائیں

ایک بار جب آپ Alchemy اکاؤنٹ بنا لیتے ہیں، تو آپ ایک ایپ بنا کر API کلید تیار کر سکتے ہیں۔ یہ ہمیں Sepolia ٹیسٹ نیٹ ورک پر درخواستیں بھیجنے کی اجازت دے گا۔ اگر آپ ٹیسٹ نیٹس سے واقف نہیں ہیں، تو یہ صفحہ دیکھیں۔

  1. نیویگیشن بار میں "Select an app" کو منتخب کر کے اور "Create new app" پر کلک کر کے اپنے Alchemy ڈیش بورڈ میں "Create new app" صفحہ پر جائیں۔

Hello world create app

  1. اپنی ایپ کا نام "Hello World" رکھیں، ایک مختصر تفصیل فراہم کریں، اور استعمال کا کیس منتخب کریں، مثلاً، "Infra & Tooling"۔ اس کے بعد، "Ethereum" تلاش کریں اور نیٹ ورک منتخب کریں۔

create app view hello world

  1. آگے بڑھنے کے لیے "Next" پر کلک کریں، پھر "Create app" اور بس! آپ کی ایپ نیویگیشن بار کے ڈراپ ڈاؤن مینو میں ظاہر ہونی چاہیے، جس کے ساتھ کاپی کرنے کے لیے ایک API کلید دستیاب ہوگی۔

مرحلہ 3: ایک ایتھیریم اکاؤنٹ (پتہ) بنائیں

ہمیں ٹرانزیکشنز بھیجنے اور وصول کرنے کے لیے ایک ایتھیریم اکاؤنٹ کی ضرورت ہے۔ اس ٹیوٹوریل کے لیے، ہم میٹاماسک استعمال کریں گے، جو براؤزر میں ایک ورچوئل والیٹ ہے جسے آپ کے ایتھیریم اکاؤنٹ کا پتہ منظم کرنے کے لیے استعمال کیا جاتا ہے۔ ٹرانزیکشنز کے بارے میں مزید جانیں۔

آپ میٹاماسک ڈاؤن لوڈ کر سکتے ہیں اور یہاں (نئے ٹیب میں کھلتا ہے) مفت میں ایک ایتھیریم اکاؤنٹ بنا سکتے ہیں۔ جب آپ اکاؤنٹ بنا رہے ہوں، یا اگر آپ کے پاس پہلے سے اکاؤنٹ ہے، تو یقینی بنائیں کہ نیٹ ورک ڈراپ ڈاؤن مینو کا استعمال کرتے ہوئے "Sepolia" ٹیسٹ نیٹ ورک پر سوئچ کریں (تاکہ ہم حقیقی رقم کے ساتھ کام نہ کر رہے ہوں)۔

اگر آپ کو Sepolia فہرست میں نظر نہیں آتا، تو اوپری دائیں کونے میں مینو کھولیں، "Networks" کو منتخب کریں، اور نیٹ ورک کی فہرست کے نیچے "Show test networks" کو آن کریں (ٹیسٹ نیٹس دیکھنے کے لیے میٹاماسک کی گائیڈ (نئے ٹیب میں کھلتا ہے) دیکھیں)۔ پھر نیٹ ورک کے انتخاب کے مینو میں "Sepolia" کو منتخب کریں۔

metamask sepolia example

مرحلہ 4: فوسٹ سے ایتھر شامل کریں

اپنے سمارٹ کنٹریکٹ کو ٹیسٹ نیٹ ورک پر تعینات کرنے کے لیے، ہمیں کچھ نقلی ETH کی ضرورت ہوگی۔ Sepolia ETH حاصل کرنے کے لیے آپ مختلف فوسٹس کی فہرست دیکھنے کے لیے Sepolia نیٹ ورک کی تفصیلات پر جا سکتے ہیں۔ اگر ایک کام نہیں کرتا، تو دوسرا آزمائیں کیونکہ وہ کبھی کبھی خالی ہو سکتے ہیں۔ کچھ فوسٹس کے اہلیت کے اصول ہوتے ہیں؛ مثال کے طور پر، Alchemy کے Sepolia فوسٹ کے لیے ضروری ہے کہ وصول کرنے والے پتے پر ایتھیریم مین نیٹ پر کم از کم 0.001 ETH موجود ہوں۔ نیٹ ورک ٹریفک کی وجہ سے آپ کا نقلی ETH وصول کرنے میں کچھ وقت لگ سکتا ہے۔ آپ کو جلد ہی اپنے میٹاماسک اکاؤنٹ میں ETH نظر آنا چاہیے!

مرحلہ 5: اپنا بیلنس چیک کریں

یہ دوبارہ چیک کرنے کے لیے کہ ہمارا بیلنس موجود ہے، آئیے Alchemy کے کمپوزر ٹول (نئے ٹیب میں کھلتا ہے) کا استعمال کرتے ہوئے ایک eth_getBalance درخواست کریں۔ یہ ہمارے والیٹ میں ETH کی مقدار واپس کرے گا۔ اپنا میٹاماسک اکاؤنٹ کا پتہ درج کرنے اور “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 انسٹال نہیں ہے، تو Node.js کی انسٹالیشن کی ہدایات (نئے ٹیب میں کھلتا ہے) پر عمل کریں (ہمیں اس ٹیوٹوریل کے لیے Node.js اور npm کی ضرورت ہوگی)۔

npm init

اس سے کوئی خاص فرق نہیں پڑتا کہ آپ انسٹالیشن کے سوالات کے کیا جواب دیتے ہیں، حوالے کے لیے ہم نے اسے اس طرح کیا ہے:

package.json کو منظور کریں۔ Hardhat 3، جسے ہم آگے انسٹال کریں گے، صرف ES ماڈیول پروجیکٹس کو سپورٹ کرتا ہے، اس لیے پروجیکٹ کو اس کے طور پر نشان زد کریں:

npm pkg set type=module

اور ہم تیار ہیں!

مرحلہ 7: Hardhat (نئے ٹیب میں کھلتا ہے) ڈاؤن لوڈ کریں

Hardhat آپ کے ایتھیریم سافٹ ویئر کو مرتب کرنے، تعینات کرنے، ٹیسٹ کرنے اور ڈیبگ کرنے کے لیے ایک ڈیولپمنٹ ماحول ہے۔ یہ لائیو چین پر تعینات کرنے سے پہلے مقامی طور پر سمارٹ کنٹریکٹس اور غیر مرکزی ایپلی کیشنز (dapps) بناتے وقت ڈیولپرز کی مدد کرتا ہے۔

Hardhat 3 کے لیے Node.js v22.13.0 یا اس کے بعد کا ورژن درکار ہے۔ ہمارے hello-world پروجیکٹ کے اندر چلائیں:

npm install --save-dev hardhat

انسٹالیشن کی ہدایات (نئے ٹیب میں کھلتا ہے) پر مزید تفصیلات کے لیے اس صفحہ کو دیکھیں۔

مرحلہ 8: Hardhat پروجیکٹ بنائیں

npx hardhat --init چلانے سے ایک مکمل نمونہ پروجیکٹ تیار ہو جائے گا، لیکن اس ٹیوٹوریل کے لیے ہم چیزوں کو دستی طور پر ترتیب دیں گے تاکہ آپ ہر حصے کو دیکھ سکیں۔ اپنے پروجیکٹ فولڈر کی روٹ میں، مندرجہ ذیل مواد کے ساتھ hardhat.config.js نامی ایک فائل بنائیں:

import { defineConfig } from "hardhat/config"

export default defineConfig({
  solidity: "0.8.34",
})

یہ وہ جگہ ہے جہاں ہم اپنے پروجیکٹ کے لیے تمام سیٹ اپ کی وضاحت کریں گے (مرحلہ 13 پر)۔ فی الحال، یہ صرف Hardhat کو بتاتا ہے کہ Solidity کمپائلر کا کون سا ورژن استعمال کرنا ہے۔

مرحلہ 9: پروجیکٹ فولڈرز شامل کریں

اپنے پروجیکٹ کو منظم رکھنے کے لیے ہم دو نئے فولڈرز بنائیں گے۔ اپنی کمانڈ لائن میں اپنے پروجیکٹ کی روٹ ڈائرکٹری پر جائیں اور ٹائپ کریں:

mkdir contracts
mkdir scripts
  • contracts/ وہ جگہ ہے جہاں ہم اپنی ہیلو ورلڈ سمارٹ کنٹریکٹ کوڈ فائل رکھیں گے
  • scripts/ وہ جگہ ہے جہاں ہم اپنے کنٹریکٹ کو تعینات کرنے اور اس کے ساتھ تعامل کرنے کے لیے سکرپٹس رکھیں گے

مرحلہ 10: اپنا کنٹریکٹ لکھیں

آپ شاید خود سے پوچھ رہے ہوں گے کہ ہم آخر کوڈ کب لکھنے والے ہیں؟؟ خیر، ہم یہاں ہیں، مرحلہ 10 پر۔

اپنے پسندیدہ ایڈیٹر میں hello-world پروجیکٹ کھولیں (ہمیں VSCode (نئے ٹیب میں کھلتا ہے) پسند ہے)۔ سمارٹ کنٹریکٹس Solidity نامی زبان میں لکھے جاتے ہیں جسے ہم اپنا HelloWorld.sol سمارٹ کنٹریکٹ لکھنے کے لیے استعمال کریں گے۔‌

  1. “contracts” فولڈر میں جائیں اور HelloWorld.sol نامی ایک نئی فائل بنائیں۔
  2. نیچے ایتھیریم فاؤنڈیشن کی جانب سے ایک نمونہ Hello World سمارٹ کنٹریکٹ ہے جسے ہم اس ٹیوٹوریل کے لیے استعمال کریں گے۔ نیچے دیے گئے مواد کو کاپی کریں اور اپنی HelloWorld.sol فائل میں پیسٹ کریں، اور یہ سمجھنے کے لیے تبصرے ضرور پڑھیں کہ یہ کنٹریکٹ کیا کرتا ہے:

یہ ایک انتہائی سادہ سمارٹ کنٹریکٹ ہے جو بننے پر ایک پیغام محفوظ کرتا ہے اور update فنکشن کو کال کر کے اسے اپ ڈیٹ کیا جا سکتا ہے۔

مرحلہ 11: میٹاماسک اور Alchemy کو اپنے پروجیکٹ سے جوڑیں

ہم نے ایک میٹاماسک والیٹ، Alchemy اکاؤنٹ بنا لیا ہے، اور اپنا سمارٹ کنٹریکٹ لکھ لیا ہے، اب وقت آ گیا ہے کہ ان تینوں کو جوڑا جائے۔

آپ کے ورچوئل والیٹ سے بھیجی جانے والی ہر ٹرانزیکشن کے لیے آپ کی منفرد نجی کلید کا استعمال کرتے ہوئے ایک دستخط کی ضرورت ہوتی ہے۔ ہمارے پروگرام کو یہ اجازت فراہم کرنے کے لیے، ہم اپنی نجی کلید (اور Alchemy API کلید) کو محفوظ طریقے سے ایک انوائرنمنٹ فائل میں محفوظ کر سکتے ہیں۔

ٹرانزیکشنز بھیجنے کے بارے میں مزید جاننے کے لیے، ٹرانزیکشنز کی دستاویزات دیکھیں۔

ہمارے پروجیکٹ کی روٹ ڈائرکٹری میں ایک .env فائل بنائیں، اور اس میں اپنی میٹاماسک نجی کلید اور HTTP Alchemy API URL شامل کریں۔

get alchemy api key

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 فائل میں ان متغیرات کا حوالہ دیں گے۔ Node.js خود سے .env فائلیں پڑھ سکتا ہے، اس لیے کوئی اضافی پیکیج انسٹال کرنے کی ضرورت نہیں ہے۔

.env کو کمٹ نہ کریں! براہ کرم یقینی بنائیں کہ اپنی .env فائل کو کبھی بھی کسی کے ساتھ شیئر یا ظاہر نہ کریں، کیونکہ ایسا کرنے سے آپ اپنے رازوں کو خطرے میں ڈال رہے ہیں۔ اگر آپ ورژن کنٹرول استعمال کر رہے ہیں، تو اپنی .env کو ایک gitignore فائل میں شامل کریں۔

مرحلہ 12: Ethers.js انسٹال کریں

Ethers.js ایک لائبریری ہے جو معیاری جے سن آر پی سی طریقوں کو زیادہ صارف دوست طریقوں کے ساتھ لپیٹ کر ایتھیریم کے ساتھ تعامل کرنے اور درخواستیں بھیجنے کو آسان بناتی ہے۔

Hardhat اضافی ٹولنگ اور توسیعی فعالیت کے لیے پلگ انز (نئے ٹیب میں کھلتا ہے) کو مربوط کرنا انتہائی آسان بناتا ہے۔ ہم کنٹریکٹ کی تعیناتی کے لیے Ethers پلگ ان (نئے ٹیب میں کھلتا ہے) کا فائدہ اٹھائیں گے (Ethers.js (نئے ٹیب میں کھلتا ہے) میں کنٹریکٹ کی تعیناتی کے کچھ انتہائی صاف طریقے موجود ہیں)۔

اپنی پروجیکٹ ڈائرکٹری میں ٹائپ کریں:

npm install --save-dev @nomicfoundation/hardhat-ethers ethers

ہم اگلے مرحلے میں پلگ ان کو اپنی hardhat.config.js میں بھی شامل کریں گے۔

مرحلہ 13: hardhat.config.js کو اپ ڈیٹ کریں

ہم نے اب تک کئی انحصار (dependencies) اور پلگ انز شامل کیے ہیں، اب ہمیں hardhat.config.js کو اپ ڈیٹ کرنے کی ضرورت ہے تاکہ ہمارے پروجیکٹ کو ان سب کے بارے میں معلوم ہو۔

اپنی hardhat.config.js کو اپ ڈیٹ کریں تاکہ یہ اس طرح نظر آئے:

configVariable Hardhat کو بتاتا ہے کہ ہر قدر کو انوائرنمنٹ متغیر سے صرف اسی وقت پڑھے جب اس کی ضرورت ہو، تاکہ compile جیسی کمانڈز اقدار کے سیٹ ہونے سے پہلے بھی کام کریں۔ اگر آپ اپنی نجی کلید کو سادہ ٹیکسٹ فائل میں نہیں رکھنا چاہتے، تو Hardhat ایک انکرپٹڈ کی اسٹور سے کنفیگریشن متغیرات (نئے ٹیب میں کھلتا ہے) بھی پڑھ سکتا ہے۔

مرحلہ 14: اپنا کنٹریکٹ مرتب کریں

یہ یقینی بنانے کے لیے کہ اب تک سب کچھ کام کر رہا ہے، آئیے اپنے کنٹریکٹ کو مرتب (compile) کریں۔ compile ٹاسک بلٹ ان Hardhat ٹاسکس میں سے ایک ہے۔

کمانڈ لائن سے چلائیں:

npx hardhat compile

جب آپ پہلی بار مرتب کرتے ہیں، تو Hardhat Solidity کمپائلر ڈاؤن لوڈ کرتا ہے۔ اس کے بعد آپ کو کچھ اس طرح نظر آنا چاہیے Compiled 1 Solidity file with solc 0.8.34۔ اگر نہیں، تو آپ ہمیشہ Alchemy ڈسکارڈ (نئے ٹیب میں کھلتا ہے) میں پیغام بھیج سکتے ہیں۔

مرحلہ 15: اپنی تعیناتی کی سکرپٹ لکھیں

اب جب کہ ہمارا کنٹریکٹ لکھا جا چکا ہے اور ہماری کنفیگریشن فائل تیار ہے، تو وقت آ گیا ہے کہ ہم اپنے کنٹریکٹ کی تعیناتی کی سکرپٹ لکھیں۔

scripts/ فولڈر میں جائیں اور deploy.js نامی ایک نئی فائل بنائیں، جس میں مندرجہ ذیل مواد شامل کریں:

آئیے دیکھتے ہیں کہ کوڈ کی ان میں سے ہر ایک لائن کیا کرتی ہے۔

const { ethers } = await network.create()

Hardhat 3 میں، ایک سکرپٹ واضح طور پر نیٹ ورک سے کنکشن کھولتی ہے۔ network.create() اس نیٹ ورک سے جڑتا ہے جسے آپ سکرپٹ چلاتے وقت --network آپشن کے ساتھ منتخب کرتے ہیں، اور hardhat-ethers پلگ ان اس کنکشن میں ایک ethers آبجیکٹ شامل کرتا ہے۔

const HelloWorld = await ethers.getContractFactory("HelloWorld")

ethers.js میں ایک ContractFactory ایک تجرید (abstraction) ہے جسے نئے سمارٹ کنٹریکٹس کو تعینات کرنے کے لیے استعمال کیا جاتا ہے، لہذا یہاں HelloWorld ہمارے ہیلو ورلڈ کنٹریکٹ کی مثالوں کے لیے ایک فیکٹری ہے۔ hardhat-ethers پلگ ان استعمال کرتے وقت ContractFactory اور Contract کی مثالیں پہلے سے طے شدہ طور پر پہلے دستخط کنندہ (signer) سے جڑی ہوتی ہیں۔

const hello_world = await HelloWorld.deploy("Hello World!")

ContractFactory پر deploy() کو کال کرنے سے تعیناتی شروع ہو جائے گی، اور ایک Promise واپس آئے گا جو ایک Contract پر حل ہوتا ہے۔ یہ وہ آبجیکٹ ہے جس میں ہمارے سمارٹ کنٹریکٹ کے ہر فنکشن کے لیے ایک طریقہ (method) موجود ہے۔ جو دلائل آپ deploy() کو پاس کرتے ہیں وہ کنٹریکٹ کے کنسٹرکٹر کو جاتے ہیں، یہاں ابتدائی پیغام۔

waitForDeployment() اس وقت تک انتظار کرتا ہے جب تک کہ تعیناتی کی ٹرانزیکشن ایک بلاک میں شامل نہ ہو جائے، اور getAddress() نئے کنٹریکٹ کا پتہ واپس کرتا ہے۔ مزید تفصیلات کے لیے ethers.js کنٹریکٹ کی دستاویزات (نئے ٹیب میں کھلتا ہے) دیکھیں۔

مرحلہ 16: اپنا کنٹریکٹ تعینات کریں

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

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

اس کے بعد آپ کو کچھ اس طرح نظر آنا چاہیے:

Contract deployed to address: 0x6cd7d44516a20882cEa2DE9f205bF401c0d23570

اگر ہم Sepolia Etherscan (نئے ٹیب میں کھلتا ہے) پر جائیں اور اپنے کنٹریکٹ کا پتہ تلاش کریں تو ہمیں یہ دیکھنے کے قابل ہونا چاہیے کہ اسے کامیابی سے تعینات کر دیا گیا ہے۔ ٹرانزیکشن کچھ اس طرح نظر آئے گی:

etherscan contract

From کا پتہ آپ کے میٹاماسک اکاؤنٹ کے پتے سے میل کھانا چاہیے اور To کے پتے میں “Contract Creation” لکھا ہوگا لیکن اگر ہم ٹرانزیکشن پر کلک کریں تو ہمیں To فیلڈ میں اپنے کنٹریکٹ کا پتہ نظر آئے گا:

etherscan transaction

مبارک ہو! آپ نے ابھی ایتھیریم چین پر ایک سمارٹ کنٹریکٹ تعینات کیا ہے 🎉

یہ سمجھنے کے لیے کہ اندرونی طور پر کیا ہو رہا ہے، آپ ان درخواستوں کو دیکھ سکتے ہیں جو آپ کی "Hello World" ایپ کو آپ کے Alchemy ڈیش بورڈ (نئے ٹیب میں کھلتا ہے) میں موصول ہوئی ہیں۔

وہاں آپ کو مٹھی بھر جے سن آر پی سی کالز نظر آئیں گی جو Hardhat/Ethers نے ہمارے لیے اندرونی طور پر اس وقت کیں جب ہم نے .deploy() فنکشن کو کال کیا۔ یہاں ذکر کرنے کے لیے دو اہم کالز eth_sendRawTransaction ہیں، جو دراصل ہمارے کنٹریکٹ کو Sepolia چین پر لکھنے کی درخواست ہے، اور eth_getTransactionByHash جو ہیش دیے جانے پر ہماری ٹرانزیکشن کے بارے میں معلومات پڑھنے کی درخواست ہے (ٹرانزیکشنز بھیجتے وقت ایک عام نمونہ)۔ ٹرانزیکشنز بھیجنے کے بارے میں مزید جاننے کے لیے، ٹرانزیکشنز کی دستاویزات دیکھیں۔

اس ٹیوٹوریل کے لیے بس اتنا ہی۔ آگے، آپ اپنے کنٹریکٹ کے لیے ایک یوزر انٹرفیس بنا سکتے ہیں۔