
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
