آموزش Modifiers در سالیدیتی

در این مقاله با مفهوم Modifiers در سالیدیتی آشنا می‌شوید و یاد می‌گیرید چگونه با استفاده از آن‌ها منطق اجرای توابع را کنترل کرده و امنیت قراردادهای هوشمند خود را افزایش دهید.

Modifiers در سالیدیتی چیست؟

Modifier در سالیدیتی، یا تغییر‌دهنده تابع، سازوکاری است که به شما اجازه می‌دهد قبل یا بعد از اجرای یک تابع، منطق خاصی را اجرا کنید؛ بدون آنکه مجبور باشید این منطق را در همه توابع به‌صورت تکراری بنویسید.

به بیان ساده، Modifier ها روشی برای اعمال محدودیت یا بررسی شرایط بر روی توابع هستند. یکی از کاربردهای رایج آن‌ها، بررسی مالکیت (مثلاً فقط صاحب قرارداد بتواند یک تابع خاص را اجرا کند) است.

آموزش Modifiers در سالیدیتی

ساختار onlyOwner آن‌قدر رایج است که بخش جداگانه‌ای را به آن اختصاص می‌دهیم.

مثال زیر را در نظر بگیرید:

بیایید به بخش اصلی ماجرا نگاهی بیندازیم:

این به این معنی است: «کد قبل از زیرخط (_) را اجرا کن، سپس تابع را اجرا کن.»

این یک روش مفید برای «تغییر» رفتار تابع است، به همین دلیل نام آن «modifiers» (تغییردهنده) است.

دقت کنید با اینکه HoldFunds از Ownable ارث بری کرده، هیچ تابعی را بازنویسی نکرده است. در سالیدیتی، وراثت بیشتر برای افزودن قابلیت‌ها و رفتارها به کار می‌رود، نه برای پیاده سازی چندریختی (polymorphism). (اگر با این مفهوم آشنا نیستید، نگران نباشید.)

پس در این حالت، اگر می‌خواهید قرارداد هوشمند شما توابع کاربردی مفیدی داشته باشد، می‌توانید قراردادی دیگر را وارد کنید که این قابلیت‌ها را ارائه می‌دهد.

استفاده از قراردادهای جداگانه برای سازماندهی کد ضروری نیست و می‌توان تمام منطق را در یک قرارداد واحد پیاده‌سازی کرد، اما این کار موجب کاهش خوانایی و نگهداری سخت‌تر کد می‌شود.

از modifiers می‌توان برای اهداف مختلفی استفاده کرد، اما متداول‌ترین کاربرد آن‌ها بررسی مالکیت در توابع حساس است.

اگرچه زبان سالیدیتی اجازه تغییر وضعیت قرارداد در درون modifiers را می‌دهد، این عمل توصیه نمی‌شود؛ چراکه موجب پیچیده‌تر شدن تحلیل و درک رفتار قرارداد خواهد شد.

5/5 - (1 امتیاز)

راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.

پکیج جامع و پروژه محور ASP.NET MVC + طراحی فروشگاه اینترنتی فروش فایل
  • انتشار: ۱۷ اردیبهشت ۱۴۰۴

دسته بندی موضوعات

آخرین محصولات فروشگاه

مشاهده همه

نظرات

بازخوردهای خود را برای ما ارسال کنید