انشر عقد الصلابة الأول الخاص بك على شبكة الكثبان الرملية

بفضل David Declerck.

TL؛ DR هذا برنامج تعليمي خطوة بخطوة يشرح كيفية نشر عقود Solidity الذكية والتفاعل معها على Dune Network blockchain.

كما أعلن في هذا المنشور غير الفني ، وصلت لغة Solidity إلى شبكة الكثبان الرملية. الميزة لا تزال في المرحلة التجريبية وتحت اختبار مكثف. ومع ذلك ، يمكنك بالفعل نشر عقود الصلابة الخاصة بك على شبكة تطوير Dune (Devnet). في هذا المنشور ، نشرح كيفية تحقيق هذه المهمة من خلال برنامج تعليمي خطوة بخطوة.

تحذير : تم تصميم Devnet لفريق تطوير Dune Network ويتم إعادة تعيينه بشكل متكرر. ننصحك بشدة بعدم بدء مشروع طويل الأجل عليها.

ستحتاج إلى أحدث إصدار من Dune Network بامتداد Solidity ، المتوفر في GitLab في فرع Solidity . جميع التعليمات الخاصة بإنشاء المصادر موجودة في ملف INSTALL.md . إذا كان لديك opam مثبتًا ، فيجب أن يكون بهذه البساطة:

العقد الذكي

سننشر عقد Solidity الذكي التالي على Devnet:

ينشئ مُنشئ هذا العقد الرئيسي مثيلين من العقد Player ، يُطلق عليهما ping و pong ، ومثيل Main . تتم تهيئة كل لاعب بعنوان خصمه ، ويمكنه الاتصال به. يسجل كل لاعب عدد المرات التي استدعاه فيها خصمه.

يحتوي

الرئيسي على نقطتي إدخال ، call_ping و call_pong ، يسألان ping أو pong لاستدعاء الخصم. على سبيل المثال ، إذا اتصلت بنقطة إدخال call_ping ، فإن ping سيستدعي الوظيفة get لعقد pong . نتيجة لذلك ، سيتم زيادة حقل فحص الاتصال في العقد الأخير بمقدار 1.

ملحوظة: يبدأ العقد الذكي أعلاه بتوجيه #solidity بدلاً من pragma المعتاد. هذا هو العنوان الوحيد المستخدم في Dune Network للإشارة إلى لغة العقد. على سبيل المثال ، تبدأ عقود الحب بـ #love .

< المنشأ

أولاً ، ستحتاج إلى بعض DUNs "المزيفة" للبدء. قم بتنزيل حساب faucet (ملف JSON به بعض البيانات) وقم بتنشيطه على Devnet على النحو التالي:

للتحقق مما إذا كان التنشيط صحيحًا (أي أنك حصلت على بعض رموز DUN) ، اطلب رصيد حسابك الذي تم تنشيطه حديثًا على النحو التالي:

في حالة نجاح التنشيط ، يمكنك إنشاء العقد عن طريق تشغيل الأمر التالي (بافتراض تخزين عقدك في ملف يسمى test.sol ):

تم تعيين خيار الحد الأقصى للاحتراق على حظر عمليات الإنشاء التي قد تكلف أكثر من وسيطة الخيار (هنا ، يتم تعيين الحد الأقصى لتكلفة الإنشاء على 4 DUN ، وهو ما يكفي لعقدنا الصغير).

إذا سارت الأمور على ما يرام ، فيجب أن تحصل على شيء مثل هذا في النهاية (بالطبع ، ستكون عناوين العقد مختلفة عن العناوين أدناه):

في حالتي ، معرّف العقد الرئيسي الخاص بي هو

مثيلات Ping و Pong هي على التوالي (المعلومات التي تمت قراءتها من إخراج السجل):

الآن بعد نشر العقد (العقود) ، يمكنك التحقق منها على DunScan من خلال زيارة الصفحات الخاصة بكل منها على: https://devnet.dunscan.io/'the_KT1_address_of_your_contract ".

أدركت DunScan أن عقدنا الأساسي نشأ عن عقد لاعبين. يمكننا التحقق من النص الأصلي.

نشأ العقدان الآخران ، "ping" و "pong" أيضًا مع مساحة التخزين الخاصة بهما.


التعامل مع العقد

الصيغة العامة لاستدعاء نقطة دخول لعقد Solidity الذكي هي:

على سبيل المثال ، يمكن تنفيذ استدعاء نقطة دخول call_ping لعقدنا الرئيسي على النحو التالي:

إذا سارت الأمور على ما يرام ، فمن المفترض أن ترى هذه الرسالة معروضة في السجلات:

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

ابق محصورًا في الجزء الثاني: الاختلافات بين Solidity على Ethereum & amp؛ الكثبان الرملية!

تواصل معنا:

الفتنة: https://discord.gg/JBUGqFg
Telegram: https://t.me/dune_network
الوسيط: https://medium.com/dune-network
Twitter: https://twitter.com/dune_network
Reddit: https: //www.reddit.com/r/dune_network/
Gitlab: https://gitlab.com/dune-network
موقع الويب: https: / /dune.network
البريد الإلكتروني: [email protected]