قراردادهای هوشمند ERC-20( بخش دوم)
همانطور که در مقاله قبل توضیح دادیم، قراردادهای هوشمند ERC-20 شامل ۳ قانون اختیاری و ۶ قانون اجباری میباشند.
در این مقاله قصد داریم به تفصیل هرکدام بپردازیم.
قوانین اختیاری:
قوانین اختیاری شامل ۱- نام توکن ۲- نماد ۳- دهم (تا حداکثر ۱۸ رقم)
نام توکن:
حتی اگر کارکرد توکن شما مشخص نباشد، باید به آن هویت داده شود.
بدین صورت که
string public constant name= token name
نماد:
نمادها نقش بسیار مهمی در ساخت توکنها دارند.
نمادها همان نام تجاری هستند که کاربران معمولاً بدینوسیله میتوانند توکن شما را از سایرین متمایز کنند.
به عنوان مثال پروژه و نام توکن Omisgo با نماد OMG نشان داده میشود.
string public constant sympol= sym
دهم:
در نهایت برای تعیین توکن خود فاکتور دهم یا اعشار را داریم. این فاکتور میتواند کمترین مقدار و ارزش یک توکن را مشخص کند. بدین ترتیب تقسیمپذیری به ۱ به این معنی است که کمترین ارزش توکن ما ۰.۱ است. درحالی که تقسیمپذیری به ۲ نشان دهنده کمترین مقدار توکن یعنی ۰.۰۱ میباشد.
لازم به ذکر است که تعداد مجاز اعشار برای ارزش یک توکن حداکثر ۱۸ عدد اعشار است.
unit 8 public constant decimal= 18
قوانین اجباری:
عرضه کلی: ( total supply)
این فاکتور همانطور که از نامش مشخص است، تعداد کلی توکنهای ERC-20 ارائه شده را نشان میدهد. و کد آن به صورت زیر است.
تعادل: ( balance)
تابع تعادل و یا balance تعداد توکنهایی را نشان میدهد که در یک آدرس خاص و یا در حساب صاحب قرارداد وجود دارد کد آن به صورت زیر است.
تأیید: ( approve)
زمانی که تعادل قرارداد بررسی میشود، صاحب قرارداد میتواند کاربر خود را، به منظور جمعآوری و ذخیره توکنها، «تأیید» کند. تابع تأیید همچنین این قابلیت را دارد که مقدار تراکنش را با عرضه کلی توکنها مقایسه کرده تا هیچ تقلبی در آن رخ ندهد.
کد تابع تأیید به صورت زیر است.
انتقال به: ( transfer)
اکنون تمام بررسیهای امنیتی انجام شده است و کاربر میتواند توکنها را خریداری کند و شرایط کامل انجام معامله را داراست، صاحب قرارداد میتواند توکنها را با استفاده از تابع انتقال به کاربر مذکور ارسال کند.
کد انتقال به صورت زیر است.
انتقال از: (transfer from)
در این مرحله ممکن است این سؤال پیش بیاید که ما قبلاً تابع انتقال را پوشش دادهایم. پس این تابع نشانگر چیست؟
برای پاسخ به این سؤال بیاید یک مثال بزنیم.
همه ما به صورت ماهانه یک مقدار پول را باید به سازمانهای مختلف ارسال کنیم. این پول میتواند پول قبض، اجاره، شهریه و یا هر چیز دیگری باشد. در این حالت شما میتوانید با سیستم پرداختی بانک خود قراردادی ببندید که این پرداختیها را به صورت اتوماتیک برای شما انجام دهد.
حال این تابع transfer from هم دقیقاً همین کار را بر بستر بلاکچین برای شما انجام میدهد و انتقال خودکار به یک حساب خاص را برای شما امکانپذیر میکند.
کد آن به صورت زیر است.
کمکهزینه: ( allowance)
نکتهای که در این مورد باید بدانید این است که برای انجام یک معامله توسط قراردادهای ERC-20 بر بستر اتریوم، کاربران میباستی که مقدار خاصی توکن را به عنوان تعادل در حساب خود داشته باشند. و این دقیقاً زمانی است که تابع کمکهزینه از راه میرسد.
و کد آن به صورت زیر است.
اشتراک