ERC-20 چیست؟

0
269
ERC20-چیست

ERC-20 یک استاندارد فنی است که برای قراردادهای هوشمند در بلاکچین اتریوم که برای اجرای توکن استفاده می‌شود. اکثر توکن‌های صادر شده در بلاکچین اتریوم مطابق با ERC-20 هستند. تا تاریخ 27 سپتامبر 2019 ، در کل 215،725 توکن سازگار ERC-20 در شبکه اصلی اتریوم یافت می‌شود.

ERC-20 یک لیست متداول از قوانین را برای توکن‌های اتریوم در اکوسیستم بزرگتر اتریوم تعریف می‌کند و به توسعه‌دهندگان اجازه می‌دهد تا تعامل بین نشانه‌ها را به طور دقیق پیش‌بینی کنند. این قوانین شامل نحوه انتقال توکن‌ها بین آدرس ها و نحوه دسترسی به داده‌های هر توکن است.

ERC-20 شش عملکرد متفاوت را که به نفع سایر نشانه‌ها در سیستم اتریوم مشخص می‌کند. اینها معمولاً موارد اساسی عملکرد هستند، از جمله روشی که توکن‌ها منتقل می شوند و نحوه دسترسی کاربران به داده‌های مربوط به یک توکن خاص می‌باشد. این مجموعه عملکردها و سیگنال‌ها تضمین می‌کند که انواع مختلف توکن‌های اتریوم به طور یکنواخت در هر مکانی در سیستم اتریوم انجام شود. به این ترتیب، تقریباً همه کیف پول‌های دیجیتال که از ارز اتر پشتیبانی می‌کنند، از علائم سازگار با ERC-20 نیز پشتیبانی می‌کنند. اما از آنجا که استاندارد ERC-20 به تازگی متداول شده، احتمالاً اشکالاتی وجود دارد که باید اصلاح شوند، زیرا اتریوم به بلوغ خود ادامه می‌دهد.

تاریخچه:

 ERC-20 در 19 نوامبر 2015 توسط Fabian Vogelsteller پیشنهاد شد. که یک لیست مشترک از قوانینی را که یک توکن اتریوم باید اجرا نماید، تعیین می‌کند و به برنامه نویسان این امکان را می‌دهد که نحوه عملکرد توکن‌های جدید در اکوسیستم اتریوم را برنامه ریزی کنند.

ERC مخفف اختصاری Ethereum Request for Comment است و عدد 20 شماره استاندارد اختصاص یافته به آن می‌باشد.

استاندارد توکن ERC-20 به روش زیر نمایش داده می‌شود:

هر عبارت خاصی به همراه توضیحاتی درباره فرآیند آن داخل پرانتز ذکر شده است.

  1. totalSupply (public view returns (uint256 totalSupply) [Get the total token supply]
  2. balanceOf (address_owner) public view returns (uint256 balance) [Get the account balance of another account with address _owner]
  3. transfer (address_to, uint256_value) public returns (bool success) [Send _value amount of tokens to address _to]
  4. transferFrom (address_from, address_to, uint256_value) public returns (bool success)[Send _value amount of tokens from address _from to address _to]
  5. approve (address_spender, uint256_value) public returns (bool success) [Allow _spender to withdraw from your account, multiple times, up to the _value amount. If this function is called again it overwrites the current allowance with _value]
  6. allowance (address_owner, address_spender) public view returns (uint256 remaining) [Returns the amount which _spender is still allowed to withdraw from _owner]

قالب رویدادها:

  1. Transfer (address indexed _from, address indexed _to, uint256 _value). [Triggered when tokens are transferred.]
  2. Approval (address indexed _owner, address indexed _spender, uint256 _value) [Triggered whenever approve(address _spender, uint256 _value) is called.]