Այժմ, երբ դուք ունեք պատկերացում, թե ինչպես կարելի է զանգահարել համապատասխան մշտական պահպանման API՝ Python-ի միջոցով Ontology ցանցում խելացի պայմանագիր մշակելիս, եկեք անցնենք սովորելու, թե ինչպես օգտագործել: Runtime API (Պայմանագրի կատարման API): Runtime API-ն ունի 8 առնչվող API, որոնք ապահովում են ընդհանուր ինտերֆեյսներ պայմանագրի կատարման համար և օգնում են մշակողներին առբերել, վերափոխել և վավերացնել տվյալները:
Ստորև բերված է 8 API տվյալների համառոտ նկարագրությունը.
Եկեք ավելի սերտ նայենք, թե ինչպես օգտագործել 8 API-ի տվյալները: Մինչ այս, դուք կարող եք ստեղծել նոր պայմանագիր Ontology խելացի պայմանագրերի մշակման գործիքում SmartX և հետևեք ստորև ներկայացված հրահանգներին:
Ինչպես օգտագործել Runtime API-ը
Ներմուծման երկու եղանակ կա Runtime API՝ ontology.interop.System.Runtime и ontology.interop.Ontology.Runtime. Ontology ուղին պարունակում է նոր ավելացված API-ներ: Ստորև բերված տողերը ներմուծում են 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 API
GetTime ֆունկցիան վերադարձնում է ընթացիկ ժամադրոշմը, որը վերադարձնում է Unix-ի ժամանակը, երբ կանչվել է ֆունկցիան: Չափման միավորը երկրորդն է։
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # return a uint num
GetCurrentBlockHash API
GetCurrentBlockHash ֆունկցիան վերադարձնում է ընթացիկ բլոկի հեշը:
Սա սերիալացման և ապասերիալիզացիայի զույգ ֆունկցիաներ է: Serialize ֆունկցիան օբյեկտը փոխակերպում է բայթերի զանգվածի օբյեկտի, իսկ Deserialize ֆունկցիան փոխակերպում է բայթերի զանգվածը սկզբնական օբյեկտի: Ստորև բերված կոդի նմուշը փոխակերպում է մուտքային պարամետրերը և պահում դրանք պայմանագրի մշտական պահեստում: Այն նաև առբերում է տվյալներ պայմանագրի մշտական պահեստից և փոխակերպում դրանք սկզբնական օբյեկտի:
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 կոդավորված հասցեն բայթերի հասցեի, իսկ AddressToBase58-ը փոխակերպում է բայթերի հասցեը base58 կոդավորված հասցեի:
CheckWitness (fromAcct) ֆունկցիան ունի երկու գործառույթ.
Ստուգեք, արդյոք ընթացիկ ֆունկցիայի զանգահարողը Acct-ից է: Եթե այո (այսինքն՝ ստորագրության ստուգումն անցել է), ֆունկցիան վերադառնում է:
Ստուգեք, արդյոք ընթացիկ ֆունկցիան կանչող օբյեկտը պայմանագիր է: Եթե դա պայմանագիր է, և գործառույթը կատարվում է պայմանագրից, ապա ստուգումն անցնում է։ Այսինքն՝ ստուգեք, արդյոք fromAcct-ը 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
Լրացուցիչ տեղեկություններ կարելի է գտնել այստեղ Գութուբ. Հաջորդ հոդվածում կներկայացնենք Մայրենի APIսովորել, թե ինչպես փոխանցել ակտիվները Ontology-ի խելացի պայմանագրերում:
Հոդվածը թարգմանվել է խմբագիրների կողմից Hashrate&Shares հատկապես OntologyRussia-ի համար:
Դուք ծրագրավորող եք: Միացեք մեր տեխնոլոգիական համայնքին Discord. Բացի այդ, նայեք Մշակողների կենտրոն Օնտոլոգիա, այնտեղ կարող եք գտնել ավելի շատ գործիքներ, փաստաթղթեր և շատ ավելին: