
في وقت سابق ، أدخلت العقد الأنطوني الذكي في
الجزء 1: Blockchain وبلوك API و
الجزء 2: التخزين APIالجزء 3: API وقت التشغيلاليوم ، دعنا نتحدث عن كيفية استدعاء عقد ذكي أصلي لـ Ontology من خلال
واجهة برمجة تطبيقات Native API . واحدة من أكثر وظائف نموذجية لاستدعاء العقد الأصلي هو نقل الأصول.
مقدمة
واجهة برمجة تطبيقات Native API لها واجهة برمجة تطبيقات واحدة فقط. عندما تستخدم وظيفة Invoke ، فأنت بحاجة إلى استخدام وظيفة الحالة المدمجة لمساعدتك في تغليف المعلمات. انظر أدناه لمعرفة كيفية استخدام الوظائف.

الآن دعنا نذهب إلى مزيد من التفاصيل حول كيفية استخدام واجهات برمجة التطبيقات هذه. قبل ذلك ، يمكنك إنشاء عقد جديد في أداة تطوير العقد الذكية لـ Ontology
SmartX واتباع الإرشادات أدناه. كالعادة ، في نهاية المقالة ، سأقدم رابطًا إلى الكود المصدري.
كيفية استخدام API الأصلي
كالعادة ، تحتاج إلى استيراد الدالتين كما يلي قبل استخدامها.
from ontology.interop.Ontology.Native import Invoke from ontology.builtins import state
قائمة الأنطولوجيا العقد الأصلي
يوجد حاليًا 6 عقود أصلية لأنطولوجيا متاحة للمطورين. فيما يلي قائمة بالعقود المحلية الستة التي يمكن الاحتجاج بها بواسطة واجهة برمجة التطبيقات الأصلية.

في العقد ، ما عليك سوى تحويل عنوان العقد إلى تنسيق إضافي واستدعاءه.
على سبيل المثال ، عندما تحتاج إلى استدعاء عقد ONT Token ، يمكنك أولاً تحويل عنوان عقد ONT Token إلى تنسيق bytearray ، ثم استدعاء وظيفة Invoke. عند استدعاء دالة Invoke ، تكون المعلمات المستوردة هي رقم الإصدار وعنوان العقد وطريقة العقد التي يتم استدعاءها والمعلمات المتعلقة بالنقل التي يتم تضمينها بواسطة وظيفة الحالة.
هناك نقطة معينة تجدر الإشارة إليها هنا وهي أنه عند إجراء نقل لعقد ONG ، تكون الكمية المعبأة 10 أضعاف الكمية الفعلية. وهذا هو ، إذا كنت بحاجة إلى نقل 10 ONG ، فإن الكمية التي يجب تعبئتها هي 10¹⁰. عند استخدام محفظة ، مثل ONTO أو Cyano للنقل ، فإن الكمية التي تدخلها هي مبلغ التحويل.
contract_address_ONT = bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01') param = state(from_acct, to_acct, ont_amount) res = Invoke(1, contract_address_ONT, 'transfer', [param])
نقل رمز العقد
فيما يلي مثال تفصيلي لكيفية استخدام Python
لنقل ONT و ONG . في الكود أدناه ، يعد نوع معلمة حساب الإرسال والمستلم المستورد سلسلة. بالإضافة إلى ذلك ، يمكن أيضًا تسليمها مع نوع عنوان حساب المعلمة ، وبالتالي توفير رسوم الغاز لاستدعاء العقد. العملية هي كما يلي:
- تحديد متغيرات عنوان العقد contract_address_ONT و contract_address_ONG ؛
- تحويل عنوان الإرسال والاستلام من تنسيق base58 إلى تنسيق bytearray ؛
- تحقق من التوقيع وتأكد من أن عنوان الإرسال هو نفسه عنوان استدعاء العقد ؛
- تغلف وظيفة الحالة المعلمات المتعلقة بالنقل ؛
- استدعاء الدالة Invoke العقد الأصلي ONT Token و ONG Token؛
- تحديد ما إذا كان النقل ناجحًا من خلال إرجاع الدقة. إذا كانت قيمة الإرجاع هي b '\ x01' ، فسيتم النقل بنجاح وسيتم دفع حدث "النقل بنجاح".
from ontology.interop.System.Runtime import Notify, CheckWitness from ontology.interop.Ontology.Runtime import Base58ToAddress from ontology.interop.Ontology.Native import Invoke from ontology.builtins import state
تدرب على SmartX
يمكنك أيضًا ترجمة وتشغيل نموذج التعليمات البرمجية أعلاه على
SmarX باتباع الخطوات التالية:
- ترجمة العقد. أولاً ، قم بإنشاء مشروع على SmartX وتجميع التعليمات البرمجية في هذا المشروع.

- نشر العقد. إذا كنت بحاجة إلى رمز اختبار لنشر العقد ، قدم هنا . نتيجة النشر هي كما يلي:

- قم بتشغيل وظيفة النقل. قبل تشغيل وظيفة النقل ، تحتاج إلى تكوين المعلمات كما هو مطلوب. في المثال أدناه ، تحتاج إلى إدخال عنوان الإرسال ، وتلقي عنوان ، ونقل ONT ومبلغ ONG:

- نجح النقل. بعد تكوين المعلمات بشكل صحيح ، سيكون النقل ناجحًا عند تشغيل وظيفة النقل. سيتم عرض الرمز المميز المنقول في عنوان الاستقبال أعلاه:

ملخص
في هذه المقالة ، قدمنا
واجهة برمجة تطبيقات Native block of Ontology. يمكن للمطورين استخدام واجهة برمجة التطبيقات (API) هذه لاستدعاء عقود Ontology. في المقالة التالية ، سوف نقدم
واجهة برمجة تطبيقات Upgrade لاستكشاف كيفية ترقية العقد في العقود الذكية لـ Ontology.
العثور على البرنامج التعليمي على جيثب
هنا .
هذا هو البرنامج التعليمي الرسمي الذي تم نشره مسبقًا على مدونة Ontology Medium
هل أنت مطور؟ تأكد من انضمامك إلى مجتمع التكنولوجيا الخاص بنا على
Discord . أيضًا ، ألق نظرة على
مركز Developer على موقعنا ، حيث يمكنك العثور على أدوات مطور البرامج والوثائق وغير ذلك الكثير.
البحث عن الأنطولوجيا في مكان آخر
موقع علم الوجودجيثب /
الشقاقبرقية
إنجليزي /
روسيتويتر /
رديت