
هذا هو الجزء الثالث من سلسلة من الدروس حول إنشاء عقود ذكية في Python على شبكة Ontchain blockchain. في المقالات السابقة ، التقينا
- Blockchain & Block API
- API التخزين
الآن بعد أن أصبح لديك فكرة عن كيفية استدعاء واجهة برمجة التطبيقات المناسبة للتخزين الثابت عند تطوير عقد ذكي باستخدام Python على شبكة Ontology ، دعنا نتعرف على كيفية استخدام
واجهة برمجة تطبيقات Runtime API (واجهة تنفيذ العقد). يحتوي Runtime API على 8 واجهات برمجة تطبيقات ذات صلة توفر واجهات شائعة لتنفيذ العقد وتساعد المطورين على تلقي البيانات وتحويلها والتحقق من صحتها.
فيما يلي وصف موجز لبيانات واجهة برمجة تطبيقات 8:

دعونا نلقي نظرة فاحصة على كيفية استخدام هذه 8 واجهات برمجة التطبيقات. قبل ذلك ، يمكنك إنشاء عقد جديد في أداة تطوير العقد الذكية Ontology
SmartX واتباع الإرشادات أدناه.
كيفية استخدام وقت التشغيل API
هناك طريقتان لاستيراد
API Runtime: ontology.interop.System.Runtime و
ontology.interop.Ontology.Runtime . يحتوي مسار الأنطولوجيا على واجهات برمجة التطبيقات المضافة حديثًا. الأسطر أدناه استيراد بيانات API.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash
إخطار API
تقوم وظيفة Notify ببث الحدث عبر الشبكة. في المثال أدناه ، تقوم دالة Notify بإرجاع السلسلة السداسية "كلمة الترحيب" وإرسالها عبر الشبكة.
from ontology.interop.System.Runtime import Notify def demo(): Notify("hello world")
يمكنك أن ترى هذا في السجلات:

واجهة برمجة تطبيقات GetTime
تقوم دالة GetTime بإرجاع الطابع الزمني الحالي ، والذي يقوم بإرجاع وقت يونكس الذي تم استدعاء الوظيفة فيه. الوحدة الثانية.
from ontology.interop.System.Runtime import GetTime def demo(): time=GetTime() return time
GetCurrentBlockHash API
ترجع الدالة GetCurrentBlockHash تجزئة الكتلة الحالية.
from ontology.interop.Ontology.Runtime import GetCurrentBlockHash def demo(): block_hash = GetCurrentBlockHash() return block_hash
تسلسل وإلغاء التسلسل
هذه هي اثنين من وظائف التسلسل وإلغاء التسلسل. تقوم دالة Serialize بتحويل الكائن إلى كائن bytearray ، وتحويل الدالة Deserialize إلى bytearray إلى الكائن الأصلي. نموذج التعليمات البرمجية التالي يحول المعلمات الواردة ويخزنها في التخزين الدائم للعقد. كما أنه يستخرج البيانات من التخزين الدائم للعقد ويحولها إلى الكائن الأصلي.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize from ontology.interop.System.Storage import Put, Get, GetContext def Main(operation, args): if operation == 'serialize_to_bytearray': data = args[0] return serialize_to_bytearray(data) if operation == 'deserialize_from_bytearray': key = args[0] return deserialize_from_bytearray(key) return False def serialize_to_bytearray(data): sc = GetContext() key = "1" byte_data = Serialize(data) Put(sc, key, byte_data) def deserialize_from_bytearray(key): sc = GetContext() byte_data = Get(sc, key) data = Deserialize(byte_data) return data
Base58ToAddress و AddressToBase58
هذا الزوج من وظائف ترجمة العنوان. تقوم دالة Base58ToAddress بتحويل العنوان المرمز لـ base58 إلى عنوان في شكل bytearray ، وتحول AddressToBase58 العنوان في شكل bytearray إلى عنوان encoded لـ base58.
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58 def demo(): base58_addr="AV1GLfVzw28vtK3d1kVGxv5xuWU59P6Sgn" addr=Base58ToAddress(base58_addr) Log(addr) base58_addr=AddressToBase58(addr) Log(base58_addr)
CheckWitness
وظيفة CheckWitness (fromAcct) لها وظيفتان:
- تحقق مما إذا كان الكائن fromAcct يستدعي الوظيفة الحالية. إذا كانت الإجابة بنعم (أي ، تحقق التحقق من التوقيع) ، فتُرجع الدالة.
- تحقق مما إذا كان الكائن الذي يستدعي الوظيفة الحالية عقدًا أم لا. إذا كان عقدًا وتم تنفيذ الوظيفة من العقد ، فسيتم تمرير التحقق. بمعنى ، تحقق مما إذا كان fromAcct قيمة الإرجاع GetCallingScriptHash (). يمكن أن تأخذ الدالة GetCallingScriptHash () قيمة التجزئة لعقد العقد الذكي الحالي.
GetCallingScriptHash () :
المزيد عن
جوثب from ontology.interop.System.Runtime import CheckWitness from ontology.interop.Ontology.Runtime import Base58ToAddress def demo(): addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z") res=CheckWitness(addr) return res
مزيد من المعلومات يمكن الاطلاع على
جوثب . في المقالة التالية ، سنقدم
واجهة برمجة تطبيقات Native للتعرف على كيفية نقل الأصول في العقود الذكية لـ Ontology.
تمت ترجمة المقال بواسطة Hashrate & Shares خصيصًا لـ OntologyRussia.
هل أنت مطور؟ انضم إلى مجتمع التكنولوجيا الخاص بنا على
Discord . تحقق أيضًا
من مركز Ontology
Developer Center لمزيد من الأدوات والوثائق والمزيد.
المهام المفتوحة للمطورين. أغلق المهمة - احصل على مكافأة.
التقديم لبرنامج موهبة الطالب الأنطولوجيا
علم الوجود
موقع الأنطولوجيا -
جيثب -
ديسفر -
برقية روسية -
تويتر -
رديت