كيفية إنشاء وتنفيذ رموز ERC-20 على blockchain Ethereum

كل ما يجب أن تعرفه عن رموز ERC على Ethereum - أكاديمية AAX

كيفية إنشاء وتنفيذ رموز ERC-20 على blockchain Ethereum. بمعدل التطور الحالي، تغزو تقنية blockchain العالم تدريجيًا. البيتكوين، الأكثر شعبية العملات المشفرة، هو نتاج تقنية blockchain الأولى والأكثر شهرة في العالم. Ethereum هو منتج ثانوي لـ blockchain وقد ولد عندما بدأت Bitcoin في الازدهار.

الأثير

في حين أن بيتكوين لم تتجه إلا نحو العملة، فقد ذهبت إيثريوم إلى أبعد من ذلك من خلال رؤيتها المتمثلة في توفير الأجهزة الافتراضية (EVMs) والعقود الذكية التي تسمح للمستخدمين بإنشاء الرموز المميزة على الشبكة.

يمكن أن تمثل الرموز النقود والذهب وتذاكر اليانصيب... يمكنك تطوير جميع أنواع الرموز المميزة على blockchain Ethereum، ولكن سيركز هذا البرنامج التعليمي على إنشاء ونشر الرموز المميزة ERC-20.

قبل إنشاء رمز مميز، يجب أن يكون لديك على الأقل فهم أساسي لتقنية blockchain ولغة الصلابة وكيفية عمل Ethereum.

ما هو blockchain و طريقة كيف تعمل؟

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

المعاملة هي عملية تحويل عملة أو مبلغ معين من مستخدم إلى آخر على الشبكة. لنفترض أن أليس تنقل 30BLC إلى بوب. تتم تجزئة هذه المعاملة بشكل مشفر بواسطة عقدة معينة على الشبكة ويتم تسجيلها في دفتر الأستاذ العام.

ترسل هذه العقدة المعاملة إلى العقد الأخرى في الشبكة، أي أنها تنشر المعاملة على الشبكة. تتلقى العقد الأخرى المعاملة، وتراجعها باستخدام الطريقة القياسية، ثم تضيفها إلى دفتر الأستاذ.

تتلقى العقد الموجودة على الشبكة المعاملة المنقولة حديثًا على الشبكة ثم تضيف المعاملة إلى دفتر الأستاذ. تمتلك كل عقدة على الشبكة أو تمتلك نسخة من دفتر الأستاذ. وهذا يؤدي إلى الطابع اللامركزي لـ blockchain.

كلمة "blockchain" مشتقة من حقيقة أن المعاملات أو السجلات داخل دفتر الأستاذ مرتبطة لتشكل سلسلة. وكما نعلم جميعاً فإن المعاملة تمثل تبادل العملات بين طرفين في العقدة، والتي يمكن تمثيلها بصيغة JSON على النحو التالي:

{
  "إلى": "0xalice",
  "من عند": "0xbob",
  "كمية": "30 بي إل سي"
}

هذا سجل أو معاملة بسيطة. قام بوب بنقل 30BLC إلى أليس.

يتم تسجيل هذه المعاملة في كتلة مكتوبة باستخدام تنسيق بيانات JSON التالي:

[
  {
    "إلى": "0xalice",
    "من عند": "0xbob",
    "كمية": "30 بي إل سي"
  }
]

تشبه الكتلة التسلسل الذي يحتوي على العديد من كائنات المعاملات. لذلك يمكن أن تحتوي هذه الكتلة على عدة معاملات:

[
  {
    "إلى": "0xalice",
    "من عند": "0xbob",
    "كمية": "30 بي إل سي"
  },
  {
    "إلى": "0xتيريزا",
    "من عند": "0xarinze",
    "كمية": "5 بي إل سي"
  }
]

يمكنك رؤية موقع الكتلة التي ستتم إضافة المعاملة إليها. تتكون السلاسل من كتل مترابطة. تبدأ كل blockchain بكتلة Genesis، والتي يضيفها المنشئ ويوزعها على الشبكة.

تحتوي كل كتلة أيضًا على تجزئة تشفير تعمل كمعرف فريد على الشبكة. لا يوجد كتلتين لهما نفس التجزئة.

عندما يتم التحقق من الكتلة بواسطة العقد وإضافتها إلى الشبكة، يكون لديها مؤشر إلى تجزئة الكتلة الأخيرة على الشبكة.

[
  {
    "تجزئة": "0x0",
    "التجزئة السابقة": "",
    "تكسنس": [
      {
        "إلى": "0xalice",
        "من عند": "0xbob",
        "كمية": "30 بي إل سي"
      },
      {
        "تجزئة": "0x1",
        "التجزئة السابقة": "0x0",
        "إلى": "0xتيريزا",
        "من عند": "0xarinze",
        "كمية": "5 بي إل سي"
      }
    ]
  },
  {
    "تجزئة": "0x1",
    "التجزئة السابقة": "0x0",
    "تكسنس": [
      {
        "إلى": "0xalice",
        "من عند": "0xbob",
        "كمية": "30 بي إل سي"
      },
      {
        "إلى": "0xتيريزا",
        "من عند": "0xarinze",
        "كمية": "5 بي إل سي"
      }
    ]
  }
]

الكتلة الأولى ذات التجزئة 0x0 هي الكتلة الأصلية. الكتلة التالية ذات التجزئة 0x1 تحتوي على prevHash الذي يشير إلى 0x0، أي إلى الكتلة الأولى في الشبكة.

وبهذه الطريقة، تشير كل كتلة جديدة يتم إدراجها في الشبكة إلى الكتلة الأحدث المجاورة أولاً. يؤدي هذا إلى إنشاء "سلسلة" في blockchain.

ما هو اثيروم

Ethereum عبارة عن blockchain مع عملتها الرقمية الخاصة التي تسمى ETH. تمامًا مثل سلاسل الكتل الأخرى، يتم تخزين المعاملات في دفتر الأستاذ.

ما يميز Ethereum عن سلاسل الكتل الأخرى هو مرونته. في حين أن العديد من منصات blockchain تدعم فقط تحويلات الأموال، فإن Ethereum يسمح بنقل جميع البيانات عبر blockchain ويتم دفع الرسوم في ETH.

كيف يعمل Ethereum؟

كما ذكرنا أعلاه، يمكننا نقل أي بيانات في blockchain Ethereum ودفع الرسوم في ETH.

تمامًا مثل معاملة BLC في المثال أعلاه، تدعم شبكة Ethereum blockchain معاملات ETH. لنفترض أن أليس قامت بتحويل 1 ETH إلى بوب. يتم التحقق من صحة هذه المعاملة من خلال العقد الموجودة في الشبكة وإضافتها إلى الكتلة الموجودة في blockchain.

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

عندما يتم تشغيل معاملة في blockchain Ethereum، تقوم عقدة التعدين في الشبكة بإصدار هذه المعاملة. يجب أن يوافق مرسل المعاملة على دفع مبلغ معين من ETH لهذه العقدة. وهذا ما يعرف بسعر الغاز.

ما هو العقد الذكي؟

العقد الذكي هو أداة تحتوي على تعليمات برمجية يتم تشغيلها على سلسلة كتل الإيثريوم. تتم كتابة العقود الذكية بلغة Solidity ويتم تجميعها في كود ABI. يتم توفير رمز ABI هذا على blockchain Ethereum. يأخذ العقد الذكي العنوان الخارجي للمرسل ويمزجه مع nonce (رقم فريد) لتشكيل عنوان على blockchain Ethereum.

العقود الذكية تمكن من إنشاء العقود الرقمية. مثل العقود الحقيقية، تساعد العقود الرقمية في إعداد معاملة بين طرفين أو أكثر داخل سلسلة كتل الإيثيريوم.

العقد الذكي هو نوع من أنواع الحسابات في الإيثيريوم، مما يعني أنه لا يتحكم فيه المستخدم ويمكنه إرسال المعاملات على blockchain. نظرًا لأنه حساب، فإن العقد الذكي يحتوي على رصيد ويحتوي على رمز EVM.

ما هي رموز ERC-20؟
البرنامج التعليمي لرمز ERC20 | توبتال

الجهاز الظاهري لـ Ethereum (EVM) هو جهاز افتراضي يقوم بتشغيل كود Solidity ABI المترجم. أصبحت العقود الذكية في Ethereum هي المعيار العالمي لإنشاء مجموعة من الرموز المميزة. تُعرف هذه المعايير باسم معيار طلب Ethereum للتعليق (ERC).

الايثيريوم لديه الكثير الافتراضي، ولكن الأكثر استخدامًا والأكثر استخدامًا هي ERC-20 وERC-721. يتم استخدام ERC-20 لإنشاء الرمز المميز بينما يتم استخدام ERC-721 لتطوير NFT.

ERC-20 هو المعيار الذي اقترحه Fabian Vogelsteller، وهو عقد ذكي يحتوي على عدد من واجهات برمجة التطبيقات. ERC20 عبارة عن مجموعة من القواعد التي تنطبق على جميع الرموز المميزة التي تختار معيار ERC-20.

كما ذكرنا سابقًا، يمكن استخدام ERC-20 لإنشاء عملات افتراضية مثل Bitcoin وETH. بعض الرموز الأكثر شهرة التي تم إنشاؤها وفقًا لمعيار ERC-20 هي Binance Coin (BNB) وShiba Shabu (KOBE).

يمكن للمستخدمين إرسال واستقبال رموز ERC-20. هذه الرموز قابلة للاستبدال، مما يعني أن قيمتها هي نفسها في كل مكان على blockchain.

اتباع Blockchain.comتستخدم المحافظ والبورصات هذا المعيار لدمج العديد من رموز ERC-20 في النظام الأساسي وتسهيل تبادلها والعديد من العملات المشفرة الأخرى.

الآن بعد أن فهمنا ما هو معيار ERC-20، دعنا نلقي نظرة على محتويات رمز ERC-20.

محتوى الرمز المميز ERC-20

يحتوي رمز ERC-20 على الأساليب والأحداث التي يجب أن يمتلكها رمز ERC-20.

يجب أن تكون رموز ERC-20 قادرة على:

  • نقل الرموز من حساب إلى آخر
  • إرجاع رصيد الحساب
  • إرجاع إجمالي عدد الرموز المميزة المتوفرة في الرموز المميزة
  • نقل الرموز إلى حسابك

في الواقع، إذا تمت كتابته بلغة Solidity، فسيبدو ERC-20 كما يلي:

وظيفة الاسم() جمهور عرض عائدات (سلسلة)

وظيفة رمز() جمهور عرض عائدات (سلسلة)

وظيفة الكسور العشرية() جمهور عرض عائدات (uint8)

وظيفة إجمالي العرض() جمهور عرض عائدات (uint256)

وظيفة توازن من(عنوان_المالك) جمهور عرض عائدات (رصيد uint256)

وظيفة تحويل(وجه الى, uint256 _value) جمهور عائدات (منطقي تحقيق النجاح )

وظيفة تحويل من(العنوان_من, وجه الى, uint256 _value) جمهور عائدات (منطقي تحقيق النجاح )

وظيفة الموافقة على(عنوان _spender, uint256 _value) جمهور عائدات (منطقي تحقيق النجاح )

وظيفة بدل(عنوان_المالك, عنوان _spender) جمهور عرض عائدات (uint256 المتبقية)

يمكن أن يحتوي رمز ERC-20 على الطرق التالية:

  • الاسم - يُرجع اسم الرمز المميز (مثل عملة Binance)
  • الرمز – يُرجع رمز الرمز المميز (على سبيل المثال BNB)
  • المنازل العشرية - إرجاع عدد المنازل العشرية التي يستخدمها الرمز المميز
  • TotalSupply – يقوم بإرجاع كامل المخزون الأولي من الرمز المميز
  • BalanceOf – إرجاع رصيد الحساب
  • نقل - نقل كمية معينة من الرموز إلى عنوان
  • TransferFrom - ينقل عددًا معينًا من الرموز المميزة من عنوان المستلم إلى عنوان المستلم
  • الموافقة - سحب الرموز المميزة حتى عدد معين من الرموز المميزة من عنوان المالك
  • الإعفاء – يُرجع مقدار الرموز المميزة التي يمكن سحبها من حساب المالك

يمكن أيضًا تسجيل الأحداث على الرمز المميز ليتم التقاطها في الوقت المناسب عند إرسال الإشارة. تحتوي رموز ERC-20 على الأحداث التالية:

نقل الحدث (العنوان المفهرس _from، العنوان المفهرس _to، uint256 _value)

الموافقة على الحدث (العنوان المفهرس _owner، العنوان المفهرس _spender، uint256 _value)

  • النقل - يتم تفعيله عند نقل الرموز المميزة
  • الموافقة - يتم تفعيلها عندما تتم الموافقة على الحساب لتلقي عدد معين من الرموز المميزة

إنشاء رمز ERC 20

لتسهيل الفهم في هذا القسم، توضح المقالة كيفية كتابة رمز بسيط وتسميته عملة ND.

// معرف ترخيص SPDX: GPL-3.0
صلابة براغما >=0.7.0 <0.9.0;

عقد NDCoinERC20 {

    حدث توصيل(عنوان مفهرسة تبدأ من, العنوان المفهرس ل, UINT رموز);
    حدث موافقة(عنوان مفهرسة tokenOwner, عنوان المنفق المفهرس, UINT رموز);

    سلسلة جمهور اسم ثابت = "عملة ND";
    سلسلة جمهور رمز ثابت = "إن دي إن";
    uint8 جمهور الكسور العشرية الثابتة = 18;

    رسم الخرائط(العنوان => uint256) أرصدة;

    رسم الخرائط(العنوان => رسم الخرائط (العنوان => uint256)) سمح;

    uint256 إجمالي العرض_;

    منشئ(إجمالي uint256) {
      العرض الإجمالي_ = مجموع;
      أرصدة[MSG.مرسل] = العرض الإجمالي_;
    }

    وظيفة إجمالي العرض() جمهور عرض عائدات (uint256) {
      عائد أعلى العرض الإجمالي_;
    }

    وظيفة توازن من(رمز العنوانالمالك) جمهور عرض عائدات (UINT) {
        عائد أعلى أرصدة[tokenOwner];
    }

    وظيفة تحويل(استقبال العنوان, UINT numTokens) جمهور عائدات (منطقي) {
        تطلب(numTokens <= أرصدة[MSG.مرسل]) ؛
        أرصدة[MSG.مرسل] -= numTokens;
        أرصدة[المتلقي] += numTokens;
        تنبعث منها توصيل(MSG.مرسل, المتلقي, numTokens);
        عائد أعلى صحيح;
    }

    وظيفة الموافقة على(العنوان مندوب, UINT numTokens) جمهور عائدات (منطقي) {
        مسموح\[رسالة.مرسل\][مندوب] = numTokens;
        تنبعث منها موافقة(MSG.مرسل, مندوب, numTokens);
        عائد أعلى صحيح;
    }

    وظيفة بدل(صاحب العنوان, العنوان مندوب) جمهور عرض عائدات (UINT) {
        عائد أعلى مسموح\[مالك\][مندوب];
    }

    وظيفة تحويل من(صاحب العنوان, عنوان المشتري, UINT numTokens) جمهور عائدات (منطقي) {
        تطلب(numTokens <= أرصدة[كاتوا ديلز]) ؛
        تطلب(numTokens <= مسموح\[مالك\][MSG.مرسل]) ؛

        أرصدة[كاتوا ديلز] -= numTokens;
        مسموح\[مالك\][MSG.مرسل] -= numTokens;
        أرصدة[مشتر] += numTokens;
        تنبعث منها توصيل(كاتوا ديلز, مشتر, numTokens);
        عائد أعلى صحيح;
    }
}

كيفية إنشاء وتنفيذ رموز ERC-20 على blockchain Ethereum

كل ما يجب أن تعرفه عن رموز ERC على Ethereum - أكاديمية AAX

كيفية إنشاء وتنفيذ رموز ERC-20 على blockchain Ethereum. بمعدل التطور الحالي، تغزو تقنية blockchain العالم تدريجيًا. البيتكوين، الأكثر شعبية العملات المشفرة، هو نتاج تقنية blockchain الأولى والأكثر شهرة في العالم. Ethereum هو منتج ثانوي لـ blockchain وقد ولد عندما بدأت Bitcoin في الازدهار.

الأثير

في حين أن بيتكوين لم تتجه إلا نحو العملة، فقد ذهبت إيثريوم إلى أبعد من ذلك من خلال رؤيتها المتمثلة في توفير الأجهزة الافتراضية (EVMs) والعقود الذكية التي تسمح للمستخدمين بإنشاء الرموز المميزة على الشبكة.

يمكن أن تمثل الرموز النقود والذهب وتذاكر اليانصيب... يمكنك تطوير جميع أنواع الرموز المميزة على blockchain Ethereum، ولكن سيركز هذا البرنامج التعليمي على إنشاء ونشر الرموز المميزة ERC-20.

قبل إنشاء رمز مميز، يجب أن يكون لديك على الأقل فهم أساسي لتقنية blockchain ولغة الصلابة وكيفية عمل Ethereum.

ما هو blockchain و طريقة كيف تعمل؟

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

المعاملة هي عملية تحويل عملة أو مبلغ معين من مستخدم إلى آخر على الشبكة. لنفترض أن أليس تنقل 30BLC إلى بوب. تتم تجزئة هذه المعاملة بشكل مشفر بواسطة عقدة معينة على الشبكة ويتم تسجيلها في دفتر الأستاذ العام.

ترسل هذه العقدة المعاملة إلى العقد الأخرى في الشبكة، أي أنها تنشر المعاملة على الشبكة. تتلقى العقد الأخرى المعاملة، وتراجعها باستخدام الطريقة القياسية، ثم تضيفها إلى دفتر الأستاذ.

تتلقى العقد الموجودة على الشبكة المعاملة المنقولة حديثًا على الشبكة ثم تضيف المعاملة إلى دفتر الأستاذ. تمتلك كل عقدة على الشبكة أو تمتلك نسخة من دفتر الأستاذ. وهذا يؤدي إلى الطابع اللامركزي لـ blockchain.

كلمة "blockchain" مشتقة من حقيقة أن المعاملات أو السجلات داخل دفتر الأستاذ مرتبطة لتشكل سلسلة. وكما نعلم جميعاً فإن المعاملة تمثل تبادل العملات بين طرفين في العقدة، والتي يمكن تمثيلها بصيغة JSON على النحو التالي:

{
  "إلى": "0xalice",
  "من عند": "0xbob",
  "كمية": "30 بي إل سي"
}

هذا سجل أو معاملة بسيطة. قام بوب بنقل 30BLC إلى أليس.

يتم تسجيل هذه المعاملة في كتلة مكتوبة باستخدام تنسيق بيانات JSON التالي:

[
  {
    "إلى": "0xalice",
    "من عند": "0xbob",
    "كمية": "30 بي إل سي"
  }
]

تشبه الكتلة التسلسل الذي يحتوي على العديد من كائنات المعاملات. لذلك يمكن أن تحتوي هذه الكتلة على عدة معاملات:

[
  {
    "إلى": "0xalice",
    "من عند": "0xbob",
    "كمية": "30 بي إل سي"
  },
  {
    "إلى": "0xتيريزا",
    "من عند": "0xarinze",
    "كمية": "5 بي إل سي"
  }
]

يمكنك رؤية موقع الكتلة التي ستتم إضافة المعاملة إليها. تتكون السلاسل من كتل مترابطة. تبدأ كل blockchain بكتلة Genesis، والتي يضيفها المنشئ ويوزعها على الشبكة.

تحتوي كل كتلة أيضًا على تجزئة تشفير تعمل كمعرف فريد على الشبكة. لا يوجد كتلتين لهما نفس التجزئة.

عندما يتم التحقق من الكتلة بواسطة العقد وإضافتها إلى الشبكة، يكون لديها مؤشر إلى تجزئة الكتلة الأخيرة على الشبكة.

[
  {
    "تجزئة": "0x0",
    "التجزئة السابقة": "",
    "تكسنس": [
      {
        "إلى": "0xalice",
        "من عند": "0xbob",
        "كمية": "30 بي إل سي"
      },
      {
        "تجزئة": "0x1",
        "التجزئة السابقة": "0x0",
        "إلى": "0xتيريزا",
        "من عند": "0xarinze",
        "كمية": "5 بي إل سي"
      }
    ]
  },
  {
    "تجزئة": "0x1",
    "التجزئة السابقة": "0x0",
    "تكسنس": [
      {
        "إلى": "0xalice",
        "من عند": "0xbob",
        "كمية": "30 بي إل سي"
      },
      {
        "إلى": "0xتيريزا",
        "من عند": "0xarinze",
        "كمية": "5 بي إل سي"
      }
    ]
  }
]

الكتلة الأولى ذات التجزئة 0x0 هي الكتلة الأصلية. الكتلة التالية ذات التجزئة 0x1 تحتوي على prevHash الذي يشير إلى 0x0، أي إلى الكتلة الأولى في الشبكة.

وبهذه الطريقة، تشير كل كتلة جديدة يتم إدراجها في الشبكة إلى الكتلة الأحدث المجاورة أولاً. يؤدي هذا إلى إنشاء "سلسلة" في blockchain.

ما هو اثيروم

Ethereum عبارة عن blockchain مع عملتها الرقمية الخاصة التي تسمى ETH. تمامًا مثل سلاسل الكتل الأخرى، يتم تخزين المعاملات في دفتر الأستاذ.

ما يميز Ethereum عن سلاسل الكتل الأخرى هو مرونته. في حين أن العديد من منصات blockchain تدعم فقط تحويلات الأموال، فإن Ethereum يسمح بنقل جميع البيانات عبر blockchain ويتم دفع الرسوم في ETH.

كيف يعمل Ethereum؟

كما ذكرنا أعلاه، يمكننا نقل أي بيانات في blockchain Ethereum ودفع الرسوم في ETH.

تمامًا مثل معاملة BLC في المثال أعلاه، تدعم شبكة Ethereum blockchain معاملات ETH. لنفترض أن أليس قامت بتحويل 1 ETH إلى بوب. يتم التحقق من صحة هذه المعاملة من خلال العقد الموجودة في الشبكة وإضافتها إلى الكتلة الموجودة في blockchain.

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

عندما يتم تشغيل معاملة في blockchain Ethereum، تقوم عقدة التعدين في الشبكة بإصدار هذه المعاملة. يجب أن يوافق مرسل المعاملة على دفع مبلغ معين من ETH لهذه العقدة. وهذا ما يعرف بسعر الغاز.

ما هو العقد الذكي؟

العقد الذكي هو أداة تحتوي على تعليمات برمجية يتم تشغيلها على سلسلة كتل الإيثريوم. تتم كتابة العقود الذكية بلغة Solidity ويتم تجميعها في كود ABI. يتم توفير رمز ABI هذا على blockchain Ethereum. يأخذ العقد الذكي العنوان الخارجي للمرسل ويمزجه مع nonce (رقم فريد) لتشكيل عنوان على blockchain Ethereum.

العقود الذكية تمكن من إنشاء العقود الرقمية. مثل العقود الحقيقية، تساعد العقود الرقمية في إعداد معاملة بين طرفين أو أكثر داخل سلسلة كتل الإيثيريوم.

العقد الذكي هو نوع من أنواع الحسابات في الإيثيريوم، مما يعني أنه لا يتحكم فيه المستخدم ويمكنه إرسال المعاملات على blockchain. نظرًا لأنه حساب، فإن العقد الذكي يحتوي على رصيد ويحتوي على رمز EVM.

ما هي رموز ERC-20؟
البرنامج التعليمي لرمز ERC20 | توبتال

الجهاز الظاهري لـ Ethereum (EVM) هو جهاز افتراضي يقوم بتشغيل كود Solidity ABI المترجم. أصبحت العقود الذكية في Ethereum هي المعيار العالمي لإنشاء مجموعة من الرموز المميزة. تُعرف هذه المعايير باسم معيار طلب Ethereum للتعليق (ERC).

الايثيريوم لديه الكثير الافتراضي، ولكن الأكثر استخدامًا والأكثر استخدامًا هي ERC-20 وERC-721. يتم استخدام ERC-20 لإنشاء الرمز المميز بينما يتم استخدام ERC-721 لتطوير NFT.

ERC-20 هو المعيار الذي اقترحه Fabian Vogelsteller، وهو عقد ذكي يحتوي على عدد من واجهات برمجة التطبيقات. ERC20 عبارة عن مجموعة من القواعد التي تنطبق على جميع الرموز المميزة التي تختار معيار ERC-20.

كما ذكرنا سابقًا، يمكن استخدام ERC-20 لإنشاء عملات افتراضية مثل Bitcoin وETH. بعض الرموز الأكثر شهرة التي تم إنشاؤها وفقًا لمعيار ERC-20 هي Binance Coin (BNB) وShiba Shabu (KOBE).

يمكن للمستخدمين إرسال واستقبال رموز ERC-20. هذه الرموز قابلة للاستبدال، مما يعني أن قيمتها هي نفسها في كل مكان على blockchain.

اتباع Blockchain.comتستخدم المحافظ والبورصات هذا المعيار لدمج العديد من رموز ERC-20 في النظام الأساسي وتسهيل تبادلها والعديد من العملات المشفرة الأخرى.

الآن بعد أن فهمنا ما هو معيار ERC-20، دعنا نلقي نظرة على محتويات رمز ERC-20.

محتوى الرمز المميز ERC-20

يحتوي رمز ERC-20 على الأساليب والأحداث التي يجب أن يمتلكها رمز ERC-20.

يجب أن تكون رموز ERC-20 قادرة على:

  • نقل الرموز من حساب إلى آخر
  • إرجاع رصيد الحساب
  • إرجاع إجمالي عدد الرموز المميزة المتوفرة في الرموز المميزة
  • نقل الرموز إلى حسابك

في الواقع، إذا تمت كتابته بلغة Solidity، فسيبدو ERC-20 كما يلي:

وظيفة الاسم() جمهور عرض عائدات (سلسلة)

وظيفة رمز() جمهور عرض عائدات (سلسلة)

وظيفة الكسور العشرية() جمهور عرض عائدات (uint8)

وظيفة إجمالي العرض() جمهور عرض عائدات (uint256)

وظيفة توازن من(عنوان_المالك) جمهور عرض عائدات (رصيد uint256)

وظيفة تحويل(وجه الى, uint256 _value) جمهور عائدات (منطقي تحقيق النجاح )

وظيفة تحويل من(العنوان_من, وجه الى, uint256 _value) جمهور عائدات (منطقي تحقيق النجاح )

وظيفة الموافقة على(عنوان _spender, uint256 _value) جمهور عائدات (منطقي تحقيق النجاح )

وظيفة بدل(عنوان_المالك, عنوان _spender) جمهور عرض عائدات (uint256 المتبقية)

يمكن أن يحتوي رمز ERC-20 على الطرق التالية:

  • الاسم - يُرجع اسم الرمز المميز (مثل عملة Binance)
  • الرمز – يُرجع رمز الرمز المميز (على سبيل المثال BNB)
  • المنازل العشرية - إرجاع عدد المنازل العشرية التي يستخدمها الرمز المميز
  • TotalSupply – يقوم بإرجاع كامل المخزون الأولي من الرمز المميز
  • BalanceOf – إرجاع رصيد الحساب
  • نقل - نقل كمية معينة من الرموز إلى عنوان
  • TransferFrom - ينقل عددًا معينًا من الرموز المميزة من عنوان المستلم إلى عنوان المستلم
  • الموافقة - سحب الرموز المميزة حتى عدد معين من الرموز المميزة من عنوان المالك
  • الإعفاء – يُرجع مقدار الرموز المميزة التي يمكن سحبها من حساب المالك

يمكن أيضًا تسجيل الأحداث على الرمز المميز ليتم التقاطها في الوقت المناسب عند إرسال الإشارة. تحتوي رموز ERC-20 على الأحداث التالية:

نقل الحدث (العنوان المفهرس _from، العنوان المفهرس _to، uint256 _value)

الموافقة على الحدث (العنوان المفهرس _owner، العنوان المفهرس _spender، uint256 _value)

  • النقل - يتم تفعيله عند نقل الرموز المميزة
  • الموافقة - يتم تفعيلها عندما تتم الموافقة على الحساب لتلقي عدد معين من الرموز المميزة

إنشاء رمز ERC 20

لتسهيل الفهم في هذا القسم، توضح المقالة كيفية كتابة رمز بسيط وتسميته عملة ND.

// معرف ترخيص SPDX: GPL-3.0
صلابة براغما >=0.7.0 <0.9.0;

عقد NDCoinERC20 {

    حدث توصيل(عنوان مفهرسة تبدأ من, العنوان المفهرس ل, UINT رموز);
    حدث موافقة(عنوان مفهرسة tokenOwner, عنوان المنفق المفهرس, UINT رموز);

    سلسلة جمهور اسم ثابت = "عملة ND";
    سلسلة جمهور رمز ثابت = "إن دي إن";
    uint8 جمهور الكسور العشرية الثابتة = 18;

    رسم الخرائط(العنوان => uint256) أرصدة;

    رسم الخرائط(العنوان => رسم الخرائط (العنوان => uint256)) سمح;

    uint256 إجمالي العرض_;

    منشئ(إجمالي uint256) {
      العرض الإجمالي_ = مجموع;
      أرصدة[MSG.مرسل] = العرض الإجمالي_;
    }

    وظيفة إجمالي العرض() جمهور عرض عائدات (uint256) {
      عائد أعلى العرض الإجمالي_;
    }

    وظيفة توازن من(رمز العنوانالمالك) جمهور عرض عائدات (UINT) {
        عائد أعلى أرصدة[tokenOwner];
    }

    وظيفة تحويل(استقبال العنوان, UINT numTokens) جمهور عائدات (منطقي) {
        تطلب(numTokens <= أرصدة[MSG.مرسل]) ؛
        أرصدة[MSG.مرسل] -= numTokens;
        أرصدة[المتلقي] += numTokens;
        تنبعث منها توصيل(MSG.مرسل, المتلقي, numTokens);
        عائد أعلى صحيح;
    }

    وظيفة الموافقة على(العنوان مندوب, UINT numTokens) جمهور عائدات (منطقي) {
        مسموح\[رسالة.مرسل\][مندوب] = numTokens;
        تنبعث منها موافقة(MSG.مرسل, مندوب, numTokens);
        عائد أعلى صحيح;
    }

    وظيفة بدل(صاحب العنوان, العنوان مندوب) جمهور عرض عائدات (UINT) {
        عائد أعلى مسموح\[مالك\][مندوب];
    }

    وظيفة تحويل من(صاحب العنوان, عنوان المشتري, UINT numTokens) جمهور عائدات (منطقي) {
        تطلب(numTokens <= أرصدة[كاتوا ديلز]) ؛
        تطلب(numTokens <= مسموح\[مالك\][MSG.مرسل]) ؛

        أرصدة[كاتوا ديلز] -= numTokens;
        مسموح\[مالك\][MSG.مرسل] -= numTokens;
        أرصدة[مشتر] += numTokens;
        تنبعث منها توصيل(كاتوا ديلز, مشتر, numTokens);
        عائد أعلى صحيح;
    }
}
تمت الزيارة 68 مرة، 2 زيارة اليوم

اترك تعليق