Kounye a ke ou gen yon lide sou ki jan yo rele API depo ki pèsistan ki apwopriye a lè w ap devlope yon kontra entelijan lè l sèvi avèk Python sou rezo Ontoloji a, ann ale nan aprann kijan pou itilize. Runtime API (API Egzekisyon Kontra). Runtime API a gen 8 API ki gen rapò ki bay koòdone komen pou egzekisyon kontra epi ede devlopè yo rekipere, transfòme, ak valide done yo.
Anba a se yon deskripsyon tou kout sou done 8 API yo:
Ann pran yon gade pi pre sou fason pou itilize done 8 API yo. Anvan sa, ou ka kreye yon nouvo kontra nan zouti devlopman kontra entelijan Ontology SmartX epi swiv enstriksyon ki anba yo.
Ki jan yo sèvi ak Runtime API a
Gen de fason yo enpòte Runtime API: ontology.interop.System.Runtime и ontology.interop.Ontology.Runtime. Chemen Ontoloji a gen API ki fèk ajoute yo. Liy ki anba yo enpòte done API yo.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash
Notifye API
Fonksyon Notify la emèt evènman an nan tout rezo a. Nan egzanp ki anba a, fonksyon Notify la pral retounen fisèl hex "bonjou mo" epi difize li nan tout rezo a.
from ontology.interop.System.Runtime import Notify
def demo():
Notify("hello world")
Ou ka wè sa nan mòso bwa yo:
GetTime API
Fonksyon GetTime a retounen timestamp aktyèl la, ki retounen tan Unix kote yo te rele fonksyon an. Inite mezi a se dezyèm.
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # return a uint num
GetCurrentBlockHash API
Fonksyon GetCurrentBlockHash la retounen hash nan blòk aktyèl la.
Sa a se yon pè fonksyon serializasyon ak deserializasyon. Fonksyon Serialize konvèti yon objè nan yon objè bytearray, ak fonksyon Deserialize konvèti yon bytearray nan objè orijinal la. Echantiyon kòd ki anba a konvèti paramèt k ap rantre yo epi estoke yo nan depo ki pèsistan nan kontra a. Li tou rekipere done nan depo ki pèsistan kontra a epi transfòme li nan objè orijinal la.
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 ak AddressToBase58
Pè sa a nan fonksyon tradiksyon adrès. Fonksyon Base58ToAddress konvèti yon adrès kode base58 nan yon adrès bytearray, epi AddressToBase58 konvèti yon adrès kode bytearray nan yon adrès kode baz58.
Fonksyon CheckWitness(fromAcct) gen de fonksyonalite:
Verifye si moun kap rele fonksyon aktyèl la soti nan Akt. Si wi (sa vle di, verifikasyon siyati pase), fonksyon an retounen.
Tcheke si objè ki rele fonksyon aktyèl la se yon kontra. Si se yon kontra ak fonksyon an egzekite nan kontra a, Lè sa a, verifikasyon an pase. Sa vle di, verifye si fromAcct se valè retounen GetCallingScriptHash(). Fonksyon GetCallingScriptHash() ka pran valè hash kontra nan kontra entelijan aktyèl la.
from ontology.interop.System.Runtime import CheckWitness
from ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return res
Ou ka jwenn plis enfòmasyon nan Guthub. Nan pwochen atik la nou pral prezante Natif Natal APIpou aprann kijan pou transfere byen nan kontra entelijan Ontoloji.
Atik la te tradui pa editè yo Hashrate&Aksyon espesyalman pou OntologyRussia.
Èske w se yon pwomotè? Antre nan kominote teknoloji nou an nan Dezakò. Epitou, pran yon gade nan Sant Developer Ontoloji, ou ka jwenn plis zouti, dokimantasyon ak plis ankò la.