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

اسمارٹ کانٹریکٹس سے ایونٹس کے ذریعے ڈیٹا لاگ کرنا

اسمارٹ کانٹریکٹس
Remix
Solidity
ایونٹس
درمیانی
jdourlens
۳ اپریل، ۲۰۲۰
3 منٹ کی پڑھائی

Solidity میں، ایونٹس وہ بھیجے گئے سگنلز ہیں جو اسمارٹ کانٹریکٹس فائر کر سکتے ہیں۔ Dapps، یا Ethereum JSON-RPC API سے منسلک کوئی بھی چیز، ان ایونٹس کو سن سکتی ہے اور اس کے مطابق عمل کر سکتی ہے۔ ایک ایونٹ کو انڈیکس بھی کیا جا سکتا ہے تاکہ بعد میں ایونٹ کی ہسٹری کو تلاش کیا جا سکے۔

ایونٹس

اس مضمون کو لکھنے کے وقت Ethereum بلاک چین پر سب سے عام ایونٹ Transfer ایونٹ ہے جو ERC20 ٹوکنز کے ذریعے اس وقت خارج (emit) ہوتا ہے جب کوئی ٹوکنز منتقل کرتا ہے۔

event Transfer(address indexed from, address indexed to, uint256 value);

ایونٹ کے دستخط (signature) کو کانٹریکٹ کوڈ کے اندر ڈکلیئر کیا جاتا ہے اور اسے emit کی ورڈ کے ساتھ خارج کیا جا سکتا ہے۔ مثال کے طور پر، ٹرانسفر ایونٹ یہ لاگ کرتا ہے کہ ٹرانسفر کس نے بھیجا (from)، کس کو بھیجا (to) اور کتنے ٹوکنز منتقل کیے گئے (value

اگر ہم اپنے Counter اسمارٹ کانٹریکٹ پر واپس جائیں اور فیصلہ کریں کہ جب بھی ویلیو تبدیل ہو تو اسے لاگ کیا جائے۔ چونکہ یہ کانٹریکٹ ڈیپلائے کرنے کے لیے نہیں ہے بلکہ اسے ایکسٹینڈ کر کے دوسرا کانٹریکٹ بنانے کے لیے بنیاد کے طور پر کام کرتا ہے: اسے ایک ایبسٹریکٹ (abstract) کانٹریکٹ کہا جاتا ہے۔ ہماری کاؤنٹر کی مثال میں، یہ کچھ اس طرح نظر آئے گا:

غور کریں کہ:

  • لائن 5: ہم اپنا ایونٹ ڈکلیئر کرتے ہیں اور یہ بتاتے ہیں کہ اس میں کیا شامل ہے، پرانی ویلیو اور نئی ویلیو۔

  • لائن 13: جب ہم اپنے count ویری ایبل میں اضافہ (increment) کرتے ہیں، تو ہم ایونٹ کو خارج (emit) کرتے ہیں۔

اگر اب ہم کانٹریکٹ کو ڈیپلائے کریں اور increment فنکشن کو کال کریں، تو ہم دیکھیں گے کہ اگر آپ logs نامی ایک سرنی (array) کے اندر نئی ٹرانزیکشن پر کلک کرتے ہیں تو Remix اسے خود بخود ظاہر کر دے گا۔

Remix اسکرین شاٹ

لاگز آپ کے اسمارٹ کانٹریکٹس کی ڈیبگنگ کے لیے واقعی مفید ہیں لیکن یہ اس وقت بھی اہم ہوتے ہیں جب آپ مختلف لوگوں کے زیر استعمال ایپلی کیشنز بناتے ہیں اور یہ تجزیات (analytics) بنانے کو آسان بناتے ہیں تاکہ یہ ٹریک کیا جا سکے اور سمجھا جا سکے کہ آپ کا اسمارٹ کانٹریکٹ کیسے استعمال ہو رہا ہے۔ ٹرانزیکشنز کے ذریعے تیار کردہ لاگز مقبول بلاک ایکسپلوررز میں دکھائے جاتے ہیں اور آپ مثال کے طور پر انہیں مخصوص ایونٹس کو سننے اور ان کے وقوع پذیر ہونے پر کارروائی کرنے کے لیے آف چین (offchain) اسکرپٹس بنانے کے لیے بھی استعمال کر سکتے ہیں۔

صفحہ کی آخری اپ ڈیٹ: ۳ مارچ، ۲۰۲۶

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