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

ایونٹس کے ساتھ سمارٹ کنٹریکٹس سے ڈیٹا لاگ کرنا

سمارٹ کنٹریکٹس
Remix
Solidity
ایونٹس
درمیانی
jdourlens
۳ اپریل، ۲۰۲۰
3 منٹ کا مطالعہ
صفحہ میں ترمیم کریں (opens in a new tab)

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

ایونٹس

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

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

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

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

نوٹ کریں کہ:

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

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

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

Remix screenshot

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

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