درک ERC20

این مقاله فرض می کند خواننده در حال حاضر حداقل با مفاهیم زیر آشنا شده است: بلاک چین Ethereum ، dapps ، اتر ، قراردادهای هوشمند & ICO ها.

برای سریع جلوه دادن مجدد ، بلاکچین Ethereum یک پلت فرم محاسباتی مبتنی بر بلاکچین منبع باز و توزیع شده است. این پلت فرم محاسباتی ، شبکه Ethereum ، میزبان برنامه های غیرمتمرکز (dapps) است که با چند کد به نام قراردادهای هوشمند اجرا می شوند. تمام معاملات در شبکه Ethereum و همچنین هزینه های محاسبات اجرای قراردادهای هوشمند در Etherum ارز رمزنگاری شده پرداخت می شود.

برخی از این dapp ها (برنامه های غیرمتمرکز) به یک ارز اضافی درون dapp نیاز دارند – این dapp ها ارز جدید خود را با نام token معرفی می کنند و از طریق پیشنهاد اولیه سکه (ICO) سرمایه جمع می کنند.

پلت فرم بلاکچین Ethereum به گونه ای ساخته شده است که dapps را از هر نوع تشویق می کند – از جمله مواردی که به ایجاد ، نگهداری نیاز دارند & انتقال دارایی های دیجیتال. این نشانه های Ethereum مخصوص Dapp را می توان به منظور ایجاد شبکه ای از dapp ها با موارد استفاده معنادار مانند فاکتور فاکتور, پرداختهای سراسر مرورگر, & یک کارت بدهی ارز رمزنگاری شده.

تمام ایده هایی که قبلاً ذکر شد در حال حاضر به صورت داپ توکن های مبتنی بر Ethereum هستند که از یک استاندارد برنامه نویسی رمز عادی پیروی می کنند. در حقیقت ، 99٪ از کل نشانه های مستقر Ethereum از این استاندارد ، استاندارد ERC20 پیروی می کنند.

استاندارد توکن ERC20 ، مخفف Ethereum Requests for Comment ، یک مجموعه استاندارد از “قوانین” برنامه نویسی است که انتظار می رود تمام توکن های مبتنی بر Ethereum از آن پیروی کنند. توسعه دهندگان در مورد این شش عملکرد توافق کردند & دو رویداد به عنوان حداقل رمز مناسب برای عادی سازی رفتارهای مورد انتظار هنگام برقراری ارتباط از طریق شبکه Ethereum – با ایجاد این پروتکل ، توسعه دهندگان Ethereum قادر به کار با قراردادهای هوشمند خارجی هستند.

معرفی جامدادی

در حالی که محبوب ترین Ethereum است مشتری در حال حاضر در نوشته شده است Google’s GO, انتخاب های یک زبان قرارداد هوشمند سازگار با آن فراوان است. توسعه دهندگان می توانند از بین زبانهایی مانند وایپر, بامبو, مار & جامدادی.

برای ادامه این مقاله ما برجسته خواهیم کرد & نحو جامدادی.

Solidity یک زبان برنامه نویسی سطح بالا قرارداد محور است که برای اجرای قراردادهای هوشمند استفاده می شود. نحو Solidity ، برای کسانی که با برنامه نویسی آشنا هستند ، مخلوط جاوا اسکریپت ، پایتون است, & مفاهیم C ؛ از نوع استاتیک تایپ شده است ، از ارث پشتیبانی می کند & درست از ابتدا میزبان کتابخانه است. برای کسب اطلاعات بیشتر در مورد جامدادی ، باید به اسنادی که در اینجا یافت می شود مراجعه کنید: https://solidity.readthedocs.io/fa/develop/#

پیاده روی رابط ERC20

ما می خواهیم کمی دقیق تر در مورد آنچه شروع می شود حفاری کنیم & نحوه پیاده سازی این استاندارد در شبکه Ethereum – همانطور که قبلاً ذکر شد ، ما این را به طور خاص در نحو Solidity خواهیم داشت.

در Ethereum-land ، همه چیز شروع می شود & به پایان می رسد با قراردادها. اسناد جامدادی قراردادها را به عنوان “مجموعه ای از کد (آن کارکرد) & داده (آن است دولت) که در یک آدرس خاص در بلاک چین Ethereum قرار دارند. ” قراردادهای Ethereum از وراثت پشتیبانی می کنند – بنابراین یک قرارداد می تواند نمونه ای از قرارداد دیگر باشد.

با توجه به این منطق ، یک قرارداد انتزاعی ، که کاملاً برای وراثت استفاده می شود ، همچنین می تواند با تعریف آنچه که در یک قرارداد جدید وجود دارد ، ناکام باشد باید حاوی به منظور تدوین. این قراردادهای انتزاعی به نام قراردادهای رابط.

این بدان معنی است که هر قرارداد توکن که نمونه ای از ERC20 باشد بدون موارد زیر تنظیم نمی شود. در مقابل ، این بدان معناست که توسعه دهندگان Ethereum اکنون می دانند چه عملکردی دارند & رفتارهایی که می توانند هنگام تعامل با هر نشانه ERC20 انتظار داشته باشند.

استاندارد ERC20 یک قرارداد رابط کاربری است که در مجموع شامل شش عملکرد قابل اجرا است & دو رویداد ورود به سیستم.

کمک هزینه

تابع Allowance به دو آدرس امکان ایجاد انتقال یک جهته مکرر را می دهد. آدرس کیف پول توکن صاحب & یک لحظه فروشنده کیف پول به عنوان دو کیف پول تعریف شده است که در معاملات مکرر شرکت می کنند. به طور خاص ، مخرج کیف پول پس خواهد گرفت مقداری مبلغی از رمز کیف پول صاحب در مقداری فاصله – هر دو این متغیرهایی هستند که بعداً مشخص می شوند.

تایید

برای عملکرد تأیید ، به تابع Allowance ما مراجعه کنید: این تابع اجازه می دهد تا دو آدرس به طور مکرر به صورت یک طرفه خارج شوند. عملکرد تأیید ، که به درستی نامگذاری شده است ، یک عملکرد استاندارد ساده است که مالک کیف پول را به “تأیید” معامله ای که قرار است از طرف وی در چارچوب یک کمک هزینه انجام شود ، فرا می خواند. این عملکرد نیاز به دو ورودی دارد ، آدرس مخزن دهنده & مقدار نشانه های ارسال شده خروجی یک بول عمومی را برمی گرداند که حکایت از تأیید یا رد تأیید دارد.

تعادل

BalanceOf یک عملکرد بصری است که یک پارامتر ورودی آدرس را قبول می کند (آدرس tokenOwner) & یک ثابت عمومی را برمی گرداند (تعادل uint). مقدار بازگشتی ثابت ، تعادل ، نشانگر مقدار نشانه هایی است که آدرس پرسش شده در اختیار دارد – به یاد داشته باشید ، معاملات در یک بلاکچین معمولاً عمومی هستند ، Ethereum تفاوتی ندارد.

TotalSupply

تابع totalSupply ، همانطور که احتمالاً از نامش حدس می زنید ، یک عملکرد سازنده ناشناس است که در اولین لحظه استقرار در شبکه زنده Ethereum فقط یک بار اجرا شده است. این تابع یک عدد صحیح ثابت ثابت و عمومی (uint) را برمی گرداند که به عنوان کل توکن برای باقی مانده از قرارداد عمل می کند. این ثابت totalSupply معمولاً به یکی از دو روش تعریف می شود: رمزعبور متغیر یا تأمین اعتبار از یک کیف پول مبدأ.

منتقل کردن

عملکرد Transfer عملکرد اصلی هر رمز ERC20 است. تعریف می کند & مستقیم را پیاده سازی می کند صاحب کیف پول به نظیر انتقال رمز از آنجا که دارندگان کیف پول این تماس را برقرار می کنند ، فقط دو پارامتر لازم است: آدرس گیرنده & مقدار نشانه های ارسال شده این دو پارامتر معمولاً به صورت (آدرس به) تنظیم می شوند & (نشانه های uint). مقدار برگشتی انتقال به سادگی بولی است که تأیید می کند آیا گیرنده (آدرس “به”) توکن های ارسال شده را دریافت کرده است یا خیر..

انتقال از

عملکرد TransferFrom امکان پذیر است یک قرارداد هوشمند برای انجام انتقال با پارامترهای عبور داده شده از طرف صاحب کیف پول. با احتیاط با قبلی تفاوت قائل شوید انتقالتابع r. عملکرد قبلی برای صاحب کیف پول ارسال مستقیم نشانه ها به آدرس این انتقال از اجازه می دهد تا برای قرارداد هوشمند برای ارسال توکن از طرف دارندگان کیف پول ، مانند پر کردن سفارش در صرافی ، آزاد سازی به موقع وجوه یا پرداخت برنده های ما در یک بازی شانس.

انتقال از تابع دارای سه پارامتر ورودی است ، آدرس صاحب کیف پول ، آدرس کیف پول گیرنده, & مقدار نشانه های ارسالی آنها اغلب در نحو زیر شروع می شوند: (آدرس از ، آدرس به ، نشانه های uint). خروجی عملکرد دقیقاً همان خروجی Transfer است: یک بول واحد عمومی که جزئیات موفقیت یا شکست تراکنش را بیان می کند.

خلاصه

شش عملکردی که در بالا شرح داده شده شش عملکرد اصلی است که در 99٪ کل نشانه های ERC20 که در حال حاضر زندگی می کنند وجود دارد. به استثنای چند مورد استثنا (با نگاه کردن به شما گولم) ، توسعه دهندگان Ethereum می توانند احساس امنیت کنند زیرا می توانند ضمن ایجاد قراردادهای داخلی یا تعامل با قراردادهای عمومی خارجی در طبیعت ، کاملاً انتظار این عملکردهای اصلی را داشته باشند..