تابع بازگشتی (Fallback Function) در قراردادهای هوشمند Solidity

تابع بازگشتی (Fallback Function) در قراردادهای هوشمند Solidity زمانی اجرا می شود که یک قرارداد اتر را بدون هیچ داده اضافی دریافت کند. برای اینکه قرارداد شما اتر را دریافت کند و به کل موجودی قرارداد اضافه شود، باید یک تابع بازگشتی وجود داشته باشد و باید به عنوان قابل پرداخت اعلام شود. اگر این تابع وجود نداشته باشد، قرارداد نمی تواند اتر را دریافت کند و یک استثنا ایجاد می کند. اگر این تابع را ندارید و قرارداد اتر دریافت می کند، برای فرستنده بازگردانده می شود.
تابع بازگشتی تنها می تواند به مقدار کمی گس در دسترس (2300 gwei) تکیه کند که فضای کمی برای انجام هر عملیات دیگری به جز ثبت اولیه ایجاد می کند. عملیات زیر بیشتر از سهمیه گس 2300 گس مصرف می کند:
- نوشتن در بلاکچین
- ایجاد یک قرارداد هوشمند
- فراخوانی یک تابع خارجی که مقدار زیادی گس مصرف می کند
- ارسال تراکنش اتر
یک قرارداد می تواند یک تابع بدون نام داشته باشد. این تابع نمی تواند هیچ آرگومانی داشته باشد، نمی تواند چیزی را برگرداند و باید به صورت external تعریف شود. این تابع زمانی اجرا می شود که هیچ یک از توابع دیگر با شناسه تابع داده شده مطابقت نداشته باشد (یا هیچ داده ای در پیام تراکنش ارائه نشده باشد).
مانند هر تابع Solidity دیگر، تابع بازگشتی می تواند تا زمانی که گس کافی برای انجام تراکنش وجود داشته باشد، عملیات پیچیده را اجرا کند.
تابع بازگشتی (Fallback Function) در قراردادهای هوشمند Solidity
تابع بازگشتی زمانی فراخوانی می شود که تابعی را فراخوانی کنیم که در قرارداد وجود ندارد یا زمانی که اتر را به یک قرارداد با دستور Send یا Transfer یا Call می فرستیم.
تابع بازگشتی:
- نمی تواند نام داشته باشد.
- هیچ ورودی و خروجی نمی تواند داشته باشد
- باید به عنوان external اعلام شود
- برای دریافت اتر باید به عنوان Payable اعلام شود
- برای دریافت اتر، تابع باید به عنوان Payable اعلام شود
- 2300 گس از Transfer و Send دریافت می کند و در هنگام استفاده از روش Call می تواند گس بیشتری دریافت کند
نمونه ای از یک تابع بازگشتی در زیر آمده است. اضافه کردن آن به قرارداد هوشمند بسیار ساده است.
Function () external payable {
}

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