Lesson 3

بنية عقد الأصول الاصطناعية

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

مؤسسة العقد الذكي

يقع العقد الذكي في صميم كل أصل اصطناعي. لنبدأ بإعداد عقد ذكي أساسي على Remix IDE.

  1. افتح ريمكس IDE.

  2. قم بإنشاء ملف سوليدي جديد باسم Syntheticasset.sol.

  3. في أسيتيتيكسات.سول، قم بلصق التعليمة البرمجية التالية:

الصلابة
//معرف ترخيص SPDX: معهد ماساتشوستس للتكنولوجيا
صلابة البراغما ^0.8.0؛

الأصول الاصطناعية للعقد {
    // Code will go here
}

آلية تتبع الأصول

يعد تتبع سعر الأصل الأساسي أمرًا بالغ الأهمية. سنستخدم آلية أوراكل مبسطة لهذا الغرض.

أضف التعليمة البرمجية التالية إلى Syntheticasset.sol:

الصلابة
uint256 سعر الأصول الأساسية العامة؛

سعر تحديث الوظيفة (uint256 _price) العام {
    underlyingAssetPrice = _price;
}

إدارة الضمانات

دعونا نقدم نظامًا بسيطًا لإدارة الضمانات ضمن عقدنا.

الصلابة
uint256 الضمانات العامة؛

وظيفة ضمان الإيداع (uint256 _amount) العامة {
    collateral += _amount;
}

وظيفة سحب الضمانات (uint256 _amount) العامة {
    require(collateral >= _amount, "Insufficient collateral");
    collateral -= _amount;
}

توليف الأسعار

يتم تحقيق توليف الأسعار من خلال قراءة السعر المحدث للأصل الأساسي.

الصلابة
دالة getSyntheticassetPrice () عوائد العرض العام (uint256) {
    return underlyingAssetPrice;
}

واجهة تفاعل المستخدم

لنقم بإنشاء واجهة بسيطة لتفاعل المستخدم.

الصلابة
الوظيفة: الأصول الاصطناعية (uint256 _amount) العامة {
    // Logic for minting synthetic asset
}

وظيفة استرداد الأصول الاصطناعية (uint256 _amount) عامة {
    // Logic for redeeming synthetic asset
}

الحوكمة وقابلية الترقية (اختياري)

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

تدابير الأمان

دعونا نضيف فحوصات الأمان الأساسية إلى عقدنا.

الصلابة
المُعدِّل أونليونر () {
    require(msg.sender == owner, "Not the contract owner");
    _;
}

عنوان المالك العام؛

المُنشئ () {
    owner = msg.sender;
}

سعر تحديث الوظيفة (uint256 _price) للجمهور فقط المالك {
    underlyingAssetPrice = _price;
}

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

سيبدو الرمز الخاص بك كما يلي:

عندما تتفاعل مع الكود، ستصبح الجوانب النظرية التي تمت مناقشتها سابقًا أكثر واقعية. يبدأ جمال العقود الذكية وتقنية blockchain في الظهور عندما تتعمق في الجانب العملي للأصول الاصطناعية.

في الدرس التالي، سنبني على هذا الأساس وننتقل إلى عملية تنفيذ عقد أصول تركيبية أكثر تعقيدًا في Remix IDE. تصبح الرحلة نحو إتقان الأصول الاصطناعية أكثر إثارة مع كل خطوة. ابقوا معنا!

Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.
Catalog
Lesson 3

بنية عقد الأصول الاصطناعية

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

مؤسسة العقد الذكي

يقع العقد الذكي في صميم كل أصل اصطناعي. لنبدأ بإعداد عقد ذكي أساسي على Remix IDE.

  1. افتح ريمكس IDE.

  2. قم بإنشاء ملف سوليدي جديد باسم Syntheticasset.sol.

  3. في أسيتيتيكسات.سول، قم بلصق التعليمة البرمجية التالية:

الصلابة
//معرف ترخيص SPDX: معهد ماساتشوستس للتكنولوجيا
صلابة البراغما ^0.8.0؛

الأصول الاصطناعية للعقد {
    // Code will go here
}

آلية تتبع الأصول

يعد تتبع سعر الأصل الأساسي أمرًا بالغ الأهمية. سنستخدم آلية أوراكل مبسطة لهذا الغرض.

أضف التعليمة البرمجية التالية إلى Syntheticasset.sol:

الصلابة
uint256 سعر الأصول الأساسية العامة؛

سعر تحديث الوظيفة (uint256 _price) العام {
    underlyingAssetPrice = _price;
}

إدارة الضمانات

دعونا نقدم نظامًا بسيطًا لإدارة الضمانات ضمن عقدنا.

الصلابة
uint256 الضمانات العامة؛

وظيفة ضمان الإيداع (uint256 _amount) العامة {
    collateral += _amount;
}

وظيفة سحب الضمانات (uint256 _amount) العامة {
    require(collateral >= _amount, "Insufficient collateral");
    collateral -= _amount;
}

توليف الأسعار

يتم تحقيق توليف الأسعار من خلال قراءة السعر المحدث للأصل الأساسي.

الصلابة
دالة getSyntheticassetPrice () عوائد العرض العام (uint256) {
    return underlyingAssetPrice;
}

واجهة تفاعل المستخدم

لنقم بإنشاء واجهة بسيطة لتفاعل المستخدم.

الصلابة
الوظيفة: الأصول الاصطناعية (uint256 _amount) العامة {
    // Logic for minting synthetic asset
}

وظيفة استرداد الأصول الاصطناعية (uint256 _amount) عامة {
    // Logic for redeeming synthetic asset
}

الحوكمة وقابلية الترقية (اختياري)

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

تدابير الأمان

دعونا نضيف فحوصات الأمان الأساسية إلى عقدنا.

الصلابة
المُعدِّل أونليونر () {
    require(msg.sender == owner, "Not the contract owner");
    _;
}

عنوان المالك العام؛

المُنشئ () {
    owner = msg.sender;
}

سعر تحديث الوظيفة (uint256 _price) للجمهور فقط المالك {
    underlyingAssetPrice = _price;
}

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

سيبدو الرمز الخاص بك كما يلي:

عندما تتفاعل مع الكود، ستصبح الجوانب النظرية التي تمت مناقشتها سابقًا أكثر واقعية. يبدأ جمال العقود الذكية وتقنية blockchain في الظهور عندما تتعمق في الجانب العملي للأصول الاصطناعية.

في الدرس التالي، سنبني على هذا الأساس وننتقل إلى عملية تنفيذ عقد أصول تركيبية أكثر تعقيدًا في Remix IDE. تصبح الرحلة نحو إتقان الأصول الاصطناعية أكثر إثارة مع كل خطوة. ابقوا معنا!

Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.