رویدادها (Events) در قراردادهای هوشمند Solidity

رویدادها در قراردادهای هوشمند Solidity برای اطلاع رسانی در مورد وضعیت فعلی قرارداد هوشمند استفاده می شوند. همانطور که تراکنشها در بلاکچین رخ میدهند، رویدادها ثبت میشوند و این اطلاعات برای برنامههایی که میخواهند به تغییرات وضعیت جدید در قرارداد، حساب، اطلاعات زنجیرهای یا جستجوی رویدادهای تاریخی گوش دهند، ارزشمند است.
رویدادها (event) راهی برای ثبت فعالیت هایی هستند که در یک قرارداد هوشمند رخ می دهند. این رویدادها در لاگ تراکنش های بلاکچین ثبت می شوند و جدا از تراکنش ها و بلوک ها هستند. تا زمانی که آدرس در بلاک چین وجود داشته باشد (قراردادها را می توان از بین برد) گزارش رویدادها با استفاده از Web3 و آدرس قرارداد قابل دسترسی است.
از آنجایی که این رویدادها به طور جداگانه در زنجیره بلوک ذخیره می شوند، از داخل یک قرارداد هوشمند حتی قراردادهایی که آنها را ایجاد کرده اند قابل دسترسی نیستند.
فراموش نکنید
- رویدادها با استفاده از کلمه کلیدی “event” اعلام می شوند.
- برای انتشار یک رویداد در یک تابع از کلمه کلیدی “emit” استفاده کنید.
- رویدادها در لاگ تراکنش های بلاکچین ثبت می شوند.
- رویدادها برای ذخیره لز متغیرها ارزانتر هستند.
- قراردادهای هوشمند نمی توانند مستقیماً به گزارش رویدادها دسترسی داشته باشند.
مثال از نحوه اعلام رویدادها در قراردادهای هوشمند Solidity
pragma solidity ^0.7.0;
//contract name is MyFirstContract
contract MyFirstContract {
//create a variable called name
string private name;
//declare an event
event nameEvent(string newName);
اجازه دهید این مثال را یک قدم جلوتر ببریم و یک رویداد را اعلام کنیم و سپس هنگام فراخوانی یک تابع، رویداد را منتشر کنیم. این منجر به ثبت رویداد منتشر شده می شود.
pragma solidity ^0.7.0;
//contract name is MyFirstContract
contract MyFirstContract {
//create a variable called name
string private name;
//declare an event
event nameEvent(string newName);
//set name and emit an event
function setName(string memory newName) public {
name = newName;
//emit an event to the log when this function is called
emit nameEvent(name);
}
}

در صورتی که تجربه خاصی در خصوص برنامهنویسی ندارید میتوانید از دورههای رایگان سایت ما “فرازمان“، استفاده کنید. همچنین اگر به دورههای پیشرفتهتری در این خصوص نیاز داشته باشید، ما با آموزش های حرفه ای که در سایتمان قرار دادیم می توانید به سطح دلخواهتان با تلاش و پشتکار برسید.
نقشه راه
راهنما آکادمی فرازمان
برای یادگیری برنامه نویسی بلاکچین…
در این باره بیشتر بخوانید
دیدگاهتان را بنویسید