Skip to content

Latest commit

 

History

History
73 lines (41 loc) · 5.73 KB

5-build-w3a-token.md

File metadata and controls

73 lines (41 loc) · 5.73 KB

إنشاء رمز W3A من النوع ERC20

سنقوم في هذا الدرس بإنشاء رمز من الوع ERC20 بإستخدام لغة Solidity

سنسنخدم منصة Remix من اجل اختبار ونشر العقد الخاص بنا ومحفظة MetaMask لعرض الرمز

Remix

سنقوم بإستخدام عقود OpenZeppelin وهي عبارة عن مكتبة لتطوير العقود الذكية الآمنة. يتضمن أكثر عمليات التنفيذ أمانًا واختبارًا للمعايير المشتركة مثل الرموز المميزة ERC20 و ERC721. كما أنه يوفر أنماطًا آمنة للترقية، مما يسمح لك بنشر العقود الذكية وتحديثها بشكل آمن. بالإضافة إلى ذلك، يتميز بواجهة برمجة تطبيقات مستقرة، مما يعني أن عقودك لن تنكسر بشكل غير متوقع عند الترقية إلى إصدار ثانوي أحدث.

عقد ERC20.sol في OpenZeppelin هو واجهة قياسية للرموز المميزة المتوافقة مع شبكة Ethereum. تحدد مجموعة قياسية من الوظائف والأحداث التي يجب أن تنفذها جميع الرموز المميزة المتوافقة مع ERC20. يتضمن ذلك وظائف لنقل الرموز، والتحقق من أرصدة الرموز، والموافقة على البدلات وتعيينها. بالإضافة إلى ذلك، يتضمن ERC20.sol أيضًا أحداثًا لتسجيل عمليات نقل الرموز والموافقات. هذا يجعل من السهل تتبع عمليات النقل والموافقات الخاصة بـ ERC20 والتحقق منها.

العقد الذكي

قبل كل شيء يفضل ان تقوم بأخذ نظرة كاملة على عقد ERC20 لكي يكون لديك معرفة جيدة في التعامل معه

قم بإنشاء ملف بإنشاء ملف في مجلد contracts بإسم W3ACoin.sol وقم بكتابة هذا

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract W3ACoin is ERC20 {

    constructor() ERC20("Web3Arabs", "W3A") {
        _mint(msg.sender,1000*10**18);
    }

}

يحدد الكود دالة constructor للعقد الذكي ، والذي يتم تنفيذه عند إنشاء العقد لأول مرة. يأخذ constructor معلمتين: اسم رمز ERC20 وهو Web3Arabs ورمزه W3A.

ثم تستدعي الدالة ()mint_ والتي تُستخدم لصك كمية محددة من الرموز المميزة الجديدة ومنحها لعنوان محدد. في هذه الحالة، تقوم بصك 1000 رمز وتخصيصها لعنوان مرسل المعاملة.

Remix Code

ملاحظات على الكسور العشرية

عند التعامل مع العملات المشفرة، قد ترغب في إرسال مبالغ عشوائية، مثل 0.007ETH. للأسف، لا يدعم Solidity و Ethereum Virtual Machine الكسور العشرية. يمكن استخدام الأرقام الصحيحة فقط . هذا يعني أنه لا يمكن إرسال سوى الأعداد الصحيحة (1 ، 2، 4).

ما هو الحل؟

بكل سهولة، يمكن لعقد الرمز المميز استخدام قيم صحيحة أكبر (يدعم EVM الأعداد الصحيحة 256 بت) بحيث الرصيد 1000000000000000000 يمثل 1 ETH مع 18 منزلاً عشريًا ، وبالتالي فإن النقل 7000000000000000 سوف يتوافق مع 0.007ETH الذي يتم إرساله.

نحن نضع في اعتبارنا، عند حساب إجمالي العرض لدينا، علينا أن نأخذ في الاعتبار المبلغ الإجمالي للرموز، بما في ذلك الخانات العشرية التي نريد الحصول عليها.

إذا كنت تريد إجمالي عرض بقيمة 1.000.000.000 رمزًا، مع وجود 18 خانة عشرية ، مثل Ethereum والعديد من العملات المشفرة الأخرى ، فأنت تريد تجاوز 1000000000 * 10 ** 18 أي (1000000000000000000000000000).

نشر الرمز على شبكة Sepolia

سنقوم بربط محفظة MetaMask لنشر العقد الذكي

Remix ENV

بعد ان تم ربط البيئة بالمحفظة يمكننا نشر العقد الذكي الان

Remix Deploy

ملاحظة: يمكنك الحصول على بعض العملات التي تساعدك في اختبار ونشر تطبيقاتك على شبكة Sepolia من صنبور Web3Arabs هنا - قم بتوصيل محفظتك بالصنبور وإنقر على الزر إرسال.

طريقة إظهار الرمز على MetaMask

  • تأكد أولاً انك على شبكة Sepolia
  • قم بفتح إضافة MetaMask على متصفحك
  • قم بنقر على Assets ومن ثم ستجد Import tokens
  • قم بإضافة address العقد الذكي وسيتم إضافة رمز العملة ودقة بالكسور العشرية

MetaMask Coin

إنه يعمل!!