Ontologiya şəbəkəsində Python ilə ağıllı müqavilə hazırlayarkən uyğun davamlı yaddaş API-yə necə zəng etmək barədə bir fikrə sahib olduğunuz üçün, gəlin istifadə etməyi öyrənməyə davam edək. Runtime API (Müqavilənin İcrası API). Runtime API-də müqavilənin icrası üçün ümumi interfeyslər təmin edən və tərtibatçılara məlumatları əldə etməyə, çevirməyə və təsdiq etməyə kömək edən 8 əlaqəli API var.
Aşağıda data 8 API-nin qısa təsviri verilmişdir:
Gəlin bu 8 API-nin necə istifadə olunacağına daha yaxından nəzər salaq. Bundan əvvəl Ontology smart müqavilə inkişaf alətində yeni müqavilə yarada bilərsiniz SmartX və aşağıdakı təlimatlara əməl edin.
Runtime API-dən necə istifadə etmək olar
İdxal etməyin iki yolu var Runtime API: ontology.interop.System.Runtime и ontology.interop.Ontology.Runtime. Ontologiya yolunda yeni əlavə edilmiş API-lər var. Aşağıdakı sətirlər API məlumatlarını idxal edir.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash
API xəbərdar edin
Bildiriş funksiyası hadisəni bütün şəbəkədə yayımlayır. Aşağıdakı nümunədə Xəbərdarlıq funksiyası "salam söz" hex sətirini qaytaracaq və onu bütün şəbəkədə yayımlayacaq.
from ontology.interop.System.Runtime import Notify
def demo():
Notify("hello world")
Bunu qeydlərdə görə bilərsiniz:
GetTime API
GetTime funksiyası funksiyanın çağırıldığı Unix vaxtını qaytaran cari vaxt damğasını qaytarır. Ölçü vahidi ikincidir.
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # return a uint num
GetCurrentBlockHash API
GetCurrentBlockHash funksiyası cari blokun hashını qaytarır.
Bu bir cüt seriallaşdırma və sıradan çıxarma funksiyalarıdır. Serialize funksiyası obyekti bytearray obyektinə, Deserialize funksiyası isə bayt serialını orijinal obyektinə çevirir. Aşağıdakı nümunə kodu daxil olan parametrləri çevirir və onları müqavilənin davamlı yaddaşında saxlayır. O, həmçinin müqavilənin davamlı yaddaşından məlumatları alır və onu orijinal obyektə çevirir.
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 və AddressToBase58
Bu cüt ünvan tərcümə funksiyaları. Base58ToAddress funksiyası baza58 kodlu ünvanını baytarray ünvanına, AddressToBase58 isə baytarray ünvanını base58 kodlu ünvana çevirir.
CheckWitness(fromAcct) funksiyasının iki funksiyası var:
Cari funksiyanı çağıran obyektin fromAcct olub olmadığını yoxlayın. Əgər belədirsə (yəni imza yoxlaması keçib), funksiya geri qayıdır.
Cari funksiyanı çağıran obyektin müqavilə olub olmadığını yoxlayın. Əgər bu müqavilədirsə və funksiya müqavilədən yerinə yetirilirsə, yoxlama aparılır. Yəni, fromAcct-ın GetCallingScriptHash() funksiyasının qaytarılma dəyəri olub olmadığını yoxlayın. GetCallingScriptHash() funksiyası cari ağıllı müqavilənin müqavilə hash dəyərini götürə bilər.
from ontology.interop.System.Runtime import CheckWitness
from ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return res
Daha ətraflı məlumatı bu linkdən əldə edə bilərsiniz Quthub. Növbəti məqalədə təqdim edəcəyik Doğma APIOntology smart müqavilələrində aktivlərin necə köçürülməsini öyrənmək.
Məqalə redaktorlar tərəfindən tərcümə edilib Hashrate və Paylaşımlar xüsusilə Ontologiya Rusiya üçün.
Siz tərtibatçısınız? texnoloji icmamıza qoşulun Diskordur. Həmçinin, bir nəzər salın İnkişaf etdirici Mərkəzi Daha çox alətlər, sənədlər və s. üçün ontologiya.