Nú þegar þú hefur hugmynd um hvernig á að kalla á viðeigandi viðvarandi geymslu API þegar þú þróar snjallsamning með Python á Ontology netinu, skulum við halda áfram að læra hvernig á að nota Runtime API (Contract Execution API). Runtime API hefur 8 tengd API sem veita sameiginleg viðmót fyrir framkvæmd samninga og hjálpa forriturum að sækja, umbreyta og sannreyna gögn.
Hér að neðan er stutt lýsing á 8 API gögnum:
Við skulum skoða nánar hvernig á að nota 8 API gögnin. Fyrir þetta geturðu búið til nýjan samning í Ontology snjallsamningsþróunarverkfærinu SmartX og fylgdu leiðbeiningunum hér að neðan.
Hvernig á að nota Runtime API
Það eru tvær leiðir til að flytja inn Runtime API: ontology.interop.System.Runtime и verufræði.interop.Ontology.Runtime. Verufræðislóðin inniheldur nýlega bætt við API. Línurnar fyrir neðan flytja inn API gögnin.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash
Tilkynna API
Notify aðgerðin sendir viðburðinn út um netið. Í dæminu hér að neðan mun tilkynna aðgerðin skila sexkantsstrengnum „halló orð“ og senda hann út um netið.
from ontology.interop.System.Runtime import Notify
def demo():
Notify("hello world")
Þú getur séð þetta í logs:
GetTime API
GetTime aðgerðin skilar núverandi tímastimpli, sem skilar Unix tímanum sem aðgerðin var kölluð á. Mælieiningin er önnur.
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # return a uint num
GetCurrentBlockHash API
GetCurrentBlockHash aðgerðin skilar kjötkássa núverandi blokkar.
Þetta er par af serialization og deserialization virka. Serialize aðgerðin breytir hlut í bytearray hlut og Deserialize aðgerðin breytir bytearray í upprunalega hlutinn. Kóðasýnishornið hér að neðan breytir innkomnum breytum og geymir þær í viðvarandi geymslu samningsins. Það sækir einnig gögn úr viðvarandi geymslu samningsins og umbreytir þeim í upprunalegan hlut.
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 og AddressToBase58
Þetta par af heimilisfangaþýðingaraðgerðum. Base58ToAddress aðgerðin breytir base58 kóðuðu heimilisfangi í bytearray vistfang og AddressToBase58 breytir bytearray vistfangi í base58 kóðað heimilisfang.
Staðfestu hvort sá sem hringir í núverandi aðgerð er frá Acct. Ef já (þ.e. staðfesting á undirskrift hefur staðist) skilar fallið.
Athugaðu hvort hluturinn sem kallar á núverandi fall sé samningur. Ef það er samningur og aðgerðin er framkvæmd út frá samningnum, þá er staðfestingin samþykkt. Það er að segja, athugaðu hvort fromAcct sé skilagildi GetCallingScriptHash(). GetCallingScriptHash() aðgerðin getur tekið kjötkássagildi samnings núverandi snjallsamnings.
from ontology.interop.System.Runtime import CheckWitness
from ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return res
Frekari upplýsingar má finna á Guthub. Í næstu grein munum við kynna Innfæddur APItil að læra hvernig á að flytja eignir í Ontology snjallsamningum.
Greinin var þýdd af ritstjórum Hashrate&Shares sérstaklega fyrir OntologyRussia.
Ertu verktaki? Vertu með í tæknisamfélaginu okkar á Discord. Skoðaðu líka Þróunarmiðstöð Verufræði, þú getur fundið fleiri verkfæri, skjöl og margt fleira þar.