
See on kolmas osa õppematerjalide sarjast nutilepingute loomisest Pythonis Ontology plokiahelas. Eelnevad artiklid tutvustasid meile
- .
Nüüd, kui teil on arusaam, kuidas kutsuda sobivat API alalist salvestust kasutades nutilepingu arendamisel Pythonis Ontology võrgus, liikuge edasi tutvuma, kuidas kasutada Runtime API (Lepingu täitmise API). Runtime API-l on 8 seotud API-d, mis pakuvad üldisi liideseid lepingu täitmiseks ning aitavad arendajatel andmeid saada, töödelda ja kontrollida.
Allpool on lühikirjeldus nende 8 API-st:

Vaadakem lähemalt, kuidas neid 8 API-d kasutada. Enne seda saate luua uusi lepingut Ontology nutilepingute arendusvahendis ja järgida alltoodud juhiseid.
Kuidas kasutada Runtime API-d
On kaks teed Runtime API importimiseks: ontology.interop.System.Runtime ja ontology.interop.Ontology.Runtime. Ontology tee sisaldab hiljuti lisatud API-sid. Allolevad read importivad neid API-sid.
ontology.interop.System.Runtime'ist impordi GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
ontology.interop.Ontology.Runtime'ist impordi Base58ToAddress, AddressToBase58, GetCurrentBlockHashNotify API
Notify funktsioon edastab sündmuse kogu võrgus. Allpool toodud näites tagastab Notify funktsioon hex-märgi "hello word" ja saadab selle üle kogu võrgu.
ontology.interop.System.Runtime'ist impordi Notify
def demo():
Notify("hello world")Saate seda logidest näha:

GetTime API
GetTime funktsioon tagastab praeguse ajatempli, mis näitab Unix-aega, millal funktsiooni kutsuti. Ühik on – sekund.
ontology.interop.System.Runtime'ist impordi GetTime
def demo():
time=GetTime()
return time # tagastab uint numbriGetCurrentBlockHash API
GetCurrentBlockHash funktsioon tagastab praeguse ploki hashi.
ontology.interop.Ontology.Runtime'ist impordi GetCurrentBlockHash
def demo():
block_hash = GetCurrentBlockHash()
return block_hashSerialize ja Deserialize
See on paar serialiseerimise ja deserialiseerimise funktsiooni. Funktsioon Serialize muudab objekti bytearray objektiks, samas kui funktsioon Deserialize muudab bytearray algseks objektiks. Allpool olev koodinäide teostab sisendparameetrite ümberkujundamise ja salvestab need lepingu püsivasse salvestusse. Samuti tõmbab see andmeid püsivast salvestusest ning muudab need algseks objektiks.
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 dataBase58ToAddress ja AddressToBase58
See on paar aadresside konverteerimise funktsiooni. Funktsioon Base58ToAddress muudab base58 kodeeritud aadressi bytearray kujule, samas kui AddressToBase58 muudab bytearray kujul oleva aadressi base58 kodeeritud aadressiks.
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
Funtsioon CheckWitness(fromAcct) omab kahte funktsionaalsust:
- Kinnitada, kas käivitav objekti fromAcct. Kui jah (st allkirja kontroll on läbitud), tagastatakse funktsioon.
- Kontrollida, kas käivitav objekt on leping. Kui see on leping ja funktsioon käivitatakse lepingust, siis on kinnitamine läbitud. See tähendab, et kinnita, kas fromAcct on funktsiooni GetCallingScriptHash() tagastatud väärtus. Funktsioon GetCallingScriptHash() võib võtta teadmiseks praeguse nutilepingu lepinguhash'i.
GetCallingScriptHash():
Lisateavet
from ontology.interop.System.Runtime import CheckWitness
from ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return resRohkem teavet võib leida . Järgmises artiklis tutvustame Native API, et õppida, kuidas varasid Ontology nutilepingutes edastada.
Artikkel on tõlgitud toimetuse eriti OntologyRussia jaoks.
Kas oled arendaja? Liitu meie tehnilise kogukonnaga . Lisaks vaadake Ontology, kus leiate rohkem tööriistu, dokumentatsiooni ja palju muud.
Sulge ülesanne — saa tasu.
Ontology Talent Programmi ridadesse üliõpilastele
Ontology
— — — — —
Allikas: habr.com
