يثير قطاع البلوكتشين اهتمامًا كبيرًا مع المستجدات المستمرة في مجال البلوكتشين والبيتكوين والإيثيريوم والعملات الرقمية وعروض العملات الأولية. وقد دفعني هذا إلى كتابة هذا البرنامج التعليمي، الأول في سلسلة مصممة لمساعدة الأفراد على فهم كيفية استخدام تكنولوجيا البلوكتشين والعملات الرقمية لإنشاء تطبيقات ذات تأثير.
في هذا البرنامج التعليمي، أهدف إلى إرشادك خلال العملية بأكملها، بدءًا من إعداد حسابك إلى إصدار رمزك الأول على شبكة اختبار Ethereum باستخدام عقد ذكي واحد وميتاماسك. سيعمل هذا الرمز كرمز ERC20 قياسي على شبكة اختبار Ethereum، مجهزًا بالميزات الأساسية التي يمكن أن تكون أساسًا متعدد الاستخدامات لتطبيقات أكثر تعقيدًا من مجرد التحويلات البسيطة.
في عام 2015، ساهم المطور الألماني فابيان فوغلستيلر في تاريخ الإثيريوم من خلال التعليق على صفحة GitHub للمشروع. وقد أشار هذا إلى تعليقه العشرين، حيث ذكر لأول مرة ERC-20. مع توسع الإثيريوم بسرعة، تم تقديم ERC-20 كحل لتحديات توسع الشبكة.
تم التعرف الرسمي واعتماد ERC-20 كمقترح لتحسين Ethereum (EIP-20)، المشارك في كتابته فيغلستيلر ومؤسس إيثيريوم فيتاليك بوتيرين، في نهاية عام 2017.
قبل معيار ERC-20 ، كان على مبتكري الرموز أن يبدؤوا من الصفر ، مما أدى إلى تباينات بين الرموز المختلفة. كان على المطورين أن يفهموا تمامًا كود العقد الذكي للرموز الأخرى بسبب عدم وجود هيكل موحد ، مما يعقد الأمور بالنسبة للمحافظ والمنصات التي يتعين عليها مراجعة كود كل رمز لدعمه. أصبحت إضافة رموز جديدة إلى التطبيقات مهمة معقدة.
مع إدخال معيار ERC-20، فإن ميزاته الموحدة وقابلية التشغيل المشترك والقابلية للتحويل قد سمحت للمحافظ والبورصات بدمج عدة رموز وتسهيل التبادلات بينها بسهولة. يمكن للعقود الذكية المستخدمة في رموز ERC-20 تنفيذ وفرض المعاملات المالية المعقدة تلقائيًا، وهو أمر أساسي لمنصات الديفي. على هذه المنصات، يمكن أن تمثل الرموز مختلف الأدوات المالية، مثل القروض أو الحصص في حوامل السيولة.
يحدد المعيار ERC-20 ست وظائف إلزامية وثلاث وظائف اختيارية يجب تنفيذها في العقود الذكية.
هنا توجد الوظائف المطلوبة ووصفها:
العرض الإجمالي: طريقة تعريف الإمداد الإجمالي للرموز المميزة؛ إذا تم الوصول إلى هذا الحد، فإن العقد الذكي لن ينشئ رموزًا جديدة.- balanceOf: طريقة تعيد عدد الرموز المميزة التي تحملها عنوان محفظة معين.- نقل: طريقة تخصم مبلغ محدد من الرموز من إجمالي العرض وتخصصها للمستخدم.- transferFrom: طريقة بديلة لنقل الرموز بين المستخدمين.- الموافقة: طريقة للتحقق مما إذا كان العقد الذكي يسمح بتخصيص عدد معين من الرموز للمستخدم، مع مراعاة إجمالي العرض الكلي.- البدل: شبيهة بالطريقة الموافقة، ولكن تتحقق مما إذا كان لدى مستخدم واحد رصيد كافٍ لإرسال مبلغ معين من الرموز إلى مستخدم آخر.بالإضافة إلى الوظائف الأساسية المذكورة سابقًا، هناك وظائف اختيارية إضافية يمكن أن تحسن من قابلية استخدام الرمز المميز:
الاسم: طريقة لاسترداد اسم الرمز.- رمز: طريقة لاسترجاع رمز الرمز.- العشريات: طريقة تشير إلى عدد الأماكن العشرية للرمز المميز. يحدد هذا الوحدة الصغرى للرمز المميز. على سبيل المثال، إذا كان لدى رمز ERC-20 قيمة عشريات تبلغ 6، فإن ذلك يعني أنه يمكن تقسيم الرمز المميز إلى ستة أماكن عشرية.إذا كنت تعرف البرمجة الموجهة نحو الكائنات، يمكنك أن تفكر في ERC-20 على أنه واجهة. لجعل رمزك رمزًا ERC-20، يجب عليك تنفيذ واجهة ERC-20، مما يتطلب منك تضمين هذه الوظائف الست الأساسية. أساسًا، تعمل واجهة ERC-20 كقالب، ويجب على أي عقد يهدف إلى أن يصنف كرمز ERC-20 تصميم وتنفيذ وظائفه باستخدام هذا القالب.
لسهولة وأمان، سنستخدم ERC-20 OpenZeppelinعقد لإنشاء رمزنا في هذا الدليل. مع OpenZeppelin، لا نحتاج إلى كتابة واجهة ERC-20 بأكملها ؛ نقوم ببساطة بإستيراد عقد المكتبة واستخدام وظائفها. في هذا المثال، سنصدر 1 مليون رمز ERC-20 بإسم MNT.
بعد ذلك، انتقل إلى البوابةإثيريوم ريمكسIDE (البيئة المتكاملة لتطوير إثريوم التي تدعم لغة برمجة Solidity) وإنشاء ملف Solidity جديد، مثل MyNewToken.sol.

يرجى لصق الرمز التالي في نص Solidity الجديد الخاص بك:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20;
استيراد "@openzeppelin/contracts/token/ERC20/ERC20.sol”;
يتم تنفيذ عقد MyNewToken بواجهة ERC20 {constructor() ERC20(“MyNewToken”, “MNT”) {_mint(msg.sender, 1000000 *(10 **uint256(decimals())); } }

ها هو ما يفعل الكود:
تعليق SPDX-License-Identifier يشير إلى الترخيص الذي تم بموجبه إصدار العقد.
توجيه Pragma يحدد إصدار المترجم الذي سيتم استخدامه.
يتم استيراد عقد ERC20 من OpenZeppelin ويعمل كأساس لرمزك الخاص.
MyNewToken هو اسم عقدك، الذي يرث من عقد ERC20.
تقوم وظيفة المُنشئ بتهيئة رمز الخاص بك بالاسم ("MyNewToken") والرمز ("MNT").
تقوم وظيفة _mint داخل المنشئ بإنشاء الإمداد الأولي للرموز. في هذه الحالة ، يتم إصدار 1 مليون رمز وتعيينه إلى العنوان الذي ينشئ العقد. يتم ضبط إجمالي عدد الرموز وفقًا لقيمة الأعشار ، والتي تكون افتراضية بقيمة 18 في تنفيذ OpenZeppelin.
لأننا قمنا بتوريث عقد ERC20 الذكي من OpenZeppelin ويورث عقد MyNewToken منه، فلا حاجة لتعريف جميع الوظائف بأنفسنا. جميع الوظائف المعرفة في عقد ERC20 مضمنة في عقد MyNewToken. إذا كنت ترغب في رؤية نسخة أكثر تفصيلاً من الشفرة الكاملة لـ ERC-20، يمكنك الرجوع إلىهذا الملف.
الآن، خذ بعض الوقت لتخصيص العقد الذكي ليتناسب مع احتياجاتك. يمكنك أيضًا تغيير اسم الرمز والرمز الرمزي عن طريق تعديل هذا القسم: ERC20(“MyNewToken”، “MNT”).
الخطوة 1: انقر فوق زر مترجم الصلابة. تحقق من إصدار المترجم وتأكد من اختيار العقد الصحيح. نظرًا لأن عقدك الذكي يتضمن سطر pragma solidity ^0.8.20 ، يجب أن يكون إصدار المترجم على الأقل 0.8.20. بعد ذلك ، انقر فوق زر ترجم MyNewToken.sol. إذا كان كل شيء ناجحًا ، سترى علامة صح على زر الترجمة.
تجميع العقد الذكي
Compilation Successful (Green Checkmark)
الخطوة 2: توجه إلى علامة التبويب 'نفذ وقم بتشغيل المعاملات'. تحت قسم البيئة، اختر الخيار 'مزود المستندات المعززة' للنشر. قبل المتابعة، تأكد من تعيين MetaMask الخاص بك على شبكة اختبار Sepolia وتحديد عقد MyNewToken للنشر. أخيرًا، انقر على زر النشر لنشر عقدك.
اختر موفر المحفظة المحلي الخاص بك Injected كمحفظة Web3 (MetaMask)
ربط محفظة Web3 الخاصة بك
تأكيد نشر العقد واختيار الشبكة (هذه شبكة اختبار)
إذا لم تكن متأكدًا من كيفية التبديل بين الشبكات، قم بفتح تطبيق MetaMask، انقر فوق محدد الشبكة في الزاوية اليسرى العليا، واختر سيبوليا. إذا لم تكن مرئية، تأكد من تمكين خيار "إظهار الشبكات التجريبية". للحصول على تعليمات حول إضافة عنوان URL ل QuickNode RPC إلى MetaMask، يرجى التحقق من دليل QuickNode.

تهانينا! تم نشر عقد الرمز الخاص بك بنجاح الآن على شبكة اختبار إيثريوم سيبوليا، وأنت تمتلك رسميًا رمزك الأول!
* لا يُقصد من المعلومات أن تكون أو أن تشكل نصيحة مالية أو أي توصية أخرى من أي نوع تقدمها منصة Gate أو تصادق عليها .
* لا يجوز إعادة إنتاج هذه المقالة أو نقلها أو نسخها دون الرجوع إلى منصة Gate. المخالفة هي انتهاك لقانون حقوق الطبع والنشر وقد تخضع لإجراءات قانونية.





