
Hii ni sehemu ya 3 ya mfululizo wa mafunzo kuhusu kuunda mikataba mahiri katika Python kwenye mtandao wa blockchain wa Ontology. Katika makala zilizopita, tulijifunza kuhusu
- .
Sasa kwa kuwa una wazo la jinsi ya kupiga API inayofaa kwa uhifadhi unaoendelea wakati wa kuunda mkataba mzuri na Python kwenye mtandao wa Ontology, wacha tuendelee kujifunza jinsi ya kutumia. API ya wakati wa kukimbia (API ya Utekelezaji wa Mkataba). API ya Runtime ina API nane zinazohusiana ambazo hutoa miingiliano ya kawaida ya utekelezaji wa kandarasi na kusaidia wasanidi kupata, kubadilisha na kuthibitisha data.
Hapo chini kuna maelezo mafupi ya API hizi 8:

Wacha tuangalie kwa karibu jinsi ya kutumia API hizi 8. Kabla hatujaanza, unaweza kuunda mkataba mpya katika zana ya uundaji wa mkataba mahiri wa Ontology. na ufuate maagizo hapa chini.
Jinsi ya kutumia API ya Runtime
Kuna njia mbili za kuagiza API ya wakati wa kukimbia: ontology.interop.System.Runtime и ontology.interop.Ontology.Muda.wakati wa kukimbiaNjia ya ontolojia ina API zilizoongezwa hivi majuzi. Mistari ifuatayo huingiza data ya API.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHashNotify API
Kitendaji cha Arifa hutangaza tukio katika mtandao mzima. Katika mfano ulio hapa chini, kipengele cha Kuarifu kitarudisha kamba ya heksi "hello neno" na kuitangaza kwenye mtandao wote.
from ontology.interop.System.Runtime import Notify
def demo():
Notify("hello world")Unaweza kuona hii kwenye kumbukumbu:

API ya GetTime
Chaguo za kukokotoa za GetTime hurejesha muhuri wa muda wa sasa, ambao ni wakati wa Unix ambapo chaguo la kukokotoa liliitwa. Sehemu ya kipimo ni sekunde.
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # return a uint numGetCurrentBlockHash API
Kitendaji cha GetCurrentBlockHash kinarudisha heshi ya kizuizi cha sasa.
from ontology.interop.Ontology.Runtime import GetCurrentBlockHash
def demo():
block_hash = GetCurrentBlockHash()
return block_hashKusasisha na Deserialize
Hii ni jozi ya usanifu na uondoaji wa vipengele. Chaguo za kukokotoa za Serialize hubadilisha kipengee hadi safu ya nyuma, na chaguo za kukokotoa za Deserialize hubadilisha mpangilio wa bytearray kurudi kwa kitu chake asili. Sampuli ya msimbo iliyo hapa chini hubadilisha vigezo vinavyoingia na kuvihifadhi kwenye hifadhi endelevu ya mkataba. Pia hurejesha data kutoka kwa hifadhi endelevu ya mkataba na kuibadilisha kuwa kitu chake asili.
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 dataBase58ToAdress na AddressToBase58
Jozi hii ya ubadilishaji wa anwani hufanya kazi. Base58ToAddress hubadilisha anwani iliyosimbwa kwa base58 kuwa anwani ya bytearray, na AddressToBase58 inabadilisha anwani ya bytearray kuwa anwani iliyosimbwa ya base58.
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)CheckShahidi
Kitendaji cha CheckWitness(kutoka kwaAcct) kina utendakazi mbili:
- Thibitisha ikiwa mpigaji simu wa kitendakazi cha sasa anatoka kwaAcct. Ikiwa ndivyo (yaani, hundi ya saini inapita), chaguo la kukokotoa linarudi.
- Angalia ikiwa kitu kinachoita kazi ya sasa ni mkataba. Ikiwa ni mkataba na kazi inatekelezwa kutoka ndani ya mkataba, basi uthibitishaji unapitishwa. Hiyo ni, thibitisha ikiwa kutoka kwaAcct ndio thamani ya kurudi ya GetCallingScriptHash(). Kitendaji cha GetCallingScriptHash() kinaweza kuchukua thamani ya hashi ya mkataba ya mkataba mahiri wa sasa.
GetCallingScriptHash():
Soma zaidi kwenye
from ontology.interop.System.Runtime import CheckWitness
from ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return resHabari zaidi inaweza kupatikana kwa Katika makala inayofuata tutawasilisha API asilikujifunza jinsi ya kuhamisha mali katika mikataba mahiri ya Ontology.
Makala hiyo ilitafsiriwa na wahariri haswa kwa Ontolojia ya Urusi.
Je, wewe ni msanidi programu? Jiunge na jumuiya yetu ya teknolojia kwa . Pia, angalia Ontolojia, unaweza kupata zana zaidi, nyaraka na mengi zaidi huko.
Kamilisha kazi na upate zawadi.
kwa mpango wa vipaji vya Ontolojia kwa wanafunzi
Ontolojia
- - - - -
Chanzo: mapenzi.com
