این مجموعه از رابط ها ، قراردادها و برنامه های کاربردی همه مربوط به استاندارد توکن ERC20 است.
| برای مرور کلی از نشانه های ERC20 و پیاده روی در مورد نحوه ایجاد یک قرارداد توکن ، راهنمای ERC20 ما را بخوانید. |
چند قرارداد اصلی وجود دارد که رفتار مشخص شده در EIP را پیاده سازی می کنند:
- IERC20: رابط همه پیاده سازی های ERC20 باید با آن مطابقت داشته باشد
- ERC20: اجرای پایه رابط ERC20
- ERC20Detailed: شامل نام ، نماد و اعشار با پسوند استاندارد اختیاری به رابط پایه است
علاوه بر این چندین پسوند سفارشی وجود دارد ، از جمله:
- تعیین آدرس هایی که می توانند منبع توکن (ERC20Mintable) ایجاد کنند ، با حداکثر کلاه اختیاری (ERC20Capped)
- تخریب نشانه های خود (ERC20Buable)
- تعیین آدرس هایی که می توانند عملیات توکن را برای همه کاربران مکث کنند (ERC20PABLE).
سرانجام ، برخی از برنامه های کاربردی برای تعامل با قراردادهای ERC20 به روش های مختلف وجود دارد.
- Safeerc20 یک بسته بندی در اطراف رابط است که نیاز به رسیدگی به مقادیر بازگشت بولی را از بین می برد.
- Tokentimelock می تواند تا زمان مشخصی نشانه ها را برای یک ذینفع نگه دارد.
| این صفحه ناقص است. ما در حال تلاش برای بهبود آن برای نسخه بعدی هستیم. گوش به زنگ باشید! |
هسته
IERC20
رابط استاندارد ERC20 همانطور که در EIP تعریف شده است. توابع اختیاری را شامل نمی شود. برای دسترسی به آنها به ERC20Detailed مراجعه کنید.
کارکرد
- totalsupply ()
- تعادل (حساب)
- انتقال (گیرنده ، مقدار)
- کمک هزینه (مالک ، اسپندر)
- تصویب (اسپندر ، مبلغ)
- TransferFrom (فرستنده ، گیرنده ، مقدار)
مناسبت ها
- انتقال (از ، به ، مقدار)
- تأیید (مالک ، اسپندر ، ارزش)
totalsupply () → uint256 خارجی
میزان نشانه های موجود را برمی گرداند.
تعادل (حساب آدرس) → uint256 خارجی
مبلغ نشانه های متعلق به حساب را برمی گرداند.
انتقال (دریافت کننده آدرس ، مقدار UINT256) → BOOL EXTERNAT
تعداد نشانه ها را از حساب تماس گیرنده به گیرنده منتقل می کند.
یک مقدار بولی را نشان می دهد که نشان می دهد آیا این عملیات موفق شده است یا خیر.
کمک هزینه (مالک آدرس ، آدرس اسپندر) → uint256 خارجی
تعداد باقیمانده توکن هایی را که اسپندر مجاز است از طریق TransfermFrom برای نمایندگی از مالک هزینه کند ، باز می گرداند. این به طور پیش فرض صفر است.
این مقدار هنگام تأیید یا انتقال از آن تغییر می کند.
تأیید (آدرس اسپندر ، مبلغ UINT256) → BOOL EXTERNAL
مقدار را به عنوان کمک هزینه اسپندر بر روی نشانه های تماس گیرنده تعیین می کند.
یک مقدار بولی را نشان می دهد که نشان می دهد آیا این عملیات موفق شده است یا خیر.
| مراقب باشید که تغییر کمک هزینه با این روش این خطر را ایجاد می کند که ممکن است شخص با سفارش معاملات ناگوار از آن استفاده کند. یک راه حل ممکن برای کاهش این شرایط مسابقه این است که ابتدا کمک هزینه اسپندر 0 را کاهش دهید و مقدار مورد نظر را پس از آن تنظیم کنید: https://github.com/ethereum/eips/issues/20#issuecomment-263524729 |
یک رویداد تأیید را منتشر می کند.
TransferFrom (فرستنده آدرس ، گیرنده آدرس ، مبلغ UINT256) → BOOL EXTERNAL
با استفاده از مکانیسم کمک هزینه ، تعداد قابلمه ها را از فرستنده به گیرنده منتقل می کند. سپس مبلغ از کمک هزینه تماس گیرنده کسر می شود.
یک مقدار بولی را نشان می دهد که نشان می دهد آیا این عملیات موفق شده است یا خیر.
انتقال (آدرس ، آدرس به ، مقدار UINT256) رویداد
هنگامی که نشانه های ارزش از یک حساب (از) به دیگری (به) منتقل می شوند ساطع می شوند.
توجه داشته باشید که مقدار ممکن است صفر باشد.
تأیید (مالک آدرس ، آدرس Spender ، ارزش UINT256) رویداد
هنگامی که کمک هزینه یک اسپندر برای یک مالک با یک تماس برای تأیید تنظیم می شود ، منتشر می شود. مقدار کمک هزینه جدید است.
ERC20
اجرای رابط IERC20.
این اجرای به روش ایجاد نشانه ها آگنوستیک است. این بدان معنی است که یک مکانیسم تأمین باید در یک قرارداد مشتق شده با استفاده از _mint اضافه شود. برای یک مکانیسم عمومی به ERC20Mintable مراجعه کنید.
| برای نوشتن دقیق ، به راهنمای ما نحوه اجرای مکانیسم های عرضه مراجعه کنید. |
ما دستورالعمل های عمومی OpenZeppelin را دنبال کرده ایم: توابع به جای بازگشت کاذب در هنگام شکست ، برمی گردند. با این وجود این رفتار متعارف است و با انتظارات برنامه های ERC20 مغایرت ندارد.
علاوه بر این ، یک رویداد تصویب در تماس با انتقال از انتقال منتشر می شود. این به برنامه ها اجازه می دهد تا فقط با گوش دادن به رویدادهای مذکور ، کمک هزینه برای همه حساب ها را بازسازی کنند. سایر پیاده سازی های EIP ممکن است این رویدادها را منتشر نکند ، زیرا به مشخصات آن احتیاج ندارد.
سرانجام ، عملکردهای غیر استاندارد و عملکردهای افزایشی و افزایشی برای کاهش مسائل شناخته شده پیرامون تنظیم کمک هزینه ها اضافه شده است. به IERC20 مراجعه کنید.
کارکرد
- totalsupply ()
- تعادل (حساب)
- انتقال (گیرنده ، مقدار)
- کمک هزینه (مالک ، اسپندر)
- تصویب (اسپندر ، مبلغ)
- TransferFrom (فرستنده ، گیرنده ، مقدار)
- نهایت
- DecreaseAllowance (spender ، subtractedValue)
- _transfer (فرستنده ، گیرنده ، مقدار)
- _mint (حساب ، مقدار)
- _bu (حساب ، مقدار)
- _APPROWE (مالک ، اسپندر ، مقدار)
- _bufrom (حساب ، مقدار)
حساب اسلامي...
ما را در سایت حساب اسلامي دنبال می کنید
برچسب :
نویسنده : کامران فیوضات
بازدید : <-PostHit->
تاريخ : پنجشنبه
8 تير
1402 ساعت: 11:45