آموزش دستور require در سالیدیتی
فقط یک کلید واژه ضروری دیگر در Solidity باقی مانده، و بعد از آن آمادهایم تا توکن ERC20 خودمان را ایجاد کنیم.
اگرچه میتوانیم از دستور if
برای بررسی معتبر بودن ورودی های یک تابع یا بررسی اینکه آیا msg.sender
صحیح است استفاده کنیم، اما روش رایج تر استفاده از دستور require
است.
در سالیدیتی، دستور require
برای بررسی اعتبار شرایط در حین اجرای قرارداد هوشمند استفاده میشود. اگر شرط مورد نظر برقرار نباشد، اجرای تابع متوقف شده و تراکنش به حالت قبل (revert) بازمیگردد. این دستور معمولاً برای موارد زیر به کار میرود:
-
اطمینان از اینکه ورودیهای تابع معتبر هستند
-
بررسی اینکه فراخواننده تابع (
msg.sender
) مجاز است -
جلوگیری از اجرای ناخواسته یا خطرناک تابع
1 2 3 4 5 6 7 8 9 10 11 |
contract ExampleContract { function mustNotBeFive( uint256 x ) public pure returns (uint256) { require(x != 5, "five is not valid"); return x * 2; } } |
این کد را در محیط Remix امتحان کنید.
توجه داشته باشید که حذف پیام خطا از دستور require
از نظر فنی مجاز است، اما این کار رویه خوبی محسوب نمیشود، چون فهمیدن دلیل شکست یا خطای تراکنش را دشوارتر میکند.
1 2 3 4 5 6 7 8 9 10 11 12 |
contract ExampleContract { function mustNotBeFive( uint256 x ) public pure returns (uint256) { // valid, but bad practice require(x != 5); return x * 2; } } |
msg.sender
همان فرد مورد نظر شماست استفاده کنید، اما تمرین آن را در مسائل بعدی انجام خواهید داد.
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۱۱ اردیبهشت ۱۴۰۴
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- دوره های تخصصی برنامه نویسی
- رپورتاژ
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره آموزش Go
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس