ProHoster > blog > Utawala > Jinsi ya kuandika mkataba mzuri katika Python kwenye mtandao wa Ontology. Sehemu ya 3: API ya Muda wa Kuendesha
Jinsi ya kuandika mkataba mzuri katika Python kwenye mtandao wa Ontology. Sehemu ya 3: API ya Muda wa Kuendesha
Hii ni sehemu ya 3 katika mfululizo wa makala za elimu kuhusu kuunda mikataba mahiri katika Python kwenye mtandao wa blockchain wa Ontology. Katika makala zilizopita tulifahamiana
Sasa kwa kuwa una wazo la jinsi ya kupiga API ya uhifadhi endelevu wakati wa kutengeneza mkataba mzuri kwa kutumia 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 8 zinazohusiana ambazo hutoa miingiliano ya kawaida ya utekelezaji wa mkataba na kusaidia wasanidi kupata, kubadilisha na kuthibitisha data.
Hapo chini kuna maelezo mafupi ya data 8 ya API:
Hebu tuangalie kwa karibu jinsi ya kutumia data 8 API. Kabla ya hili, unaweza kuunda mkataba mpya katika zana ya uundaji wa mkataba mahiri wa Ontology SmartX 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 kukimbia. Njia ya Ontolojia ina API mpya zilizoongezwa. Mistari iliyo hapa chini inaleta data ya API.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash
Notify API
Kitendaji cha Arifa hutangaza tukio kwenye 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 hurejesha muda wa Unix ambapo chaguo la kukokotoa liliitwa. Kitengo cha kipimo ni cha pili.
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # return a uint num
GetCurrentBlockHash API
Kitendaji cha GetCurrentBlockHash kinarudisha heshi ya kizuizi cha sasa.
Hii ni jozi ya usanifu na uondoaji wa vipengele. Chaguo za kukokotoa za Serialize hubadilisha kipengee kuwa kipengee cha bytearray, na chaguo za kukokotoa za Deserialize hubadilisha mpangilio hadi kitu asilia. 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 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 data
Base58ToAdress na AddressToBase58
Jozi hii ya anwani ya tafsiri hufanya kazi. Chaguo za kukokotoa za Base58ToAddress hubadilisha anwani iliyosimbwa ya base58 kuwa anwani ya bytearray, na AddressToBase58 inabadilisha anwani ya bytearray kuwa anwani ya msingi58 iliyosimbwa.
Kitendaji cha CheckWitness(kutoka kwaAcct) kina utendakazi mbili:
Thibitisha ikiwa mpigaji simu wa kitendakazi cha sasa anatoka kwaAcct. Ikiwa ndio (hiyo ni, uthibitishaji wa saini umepitishwa), chaguo la kukokotoa linarudi.
Angalia ikiwa kitu kinachoita kazi ya sasa ni mkataba. Ikiwa ni mkataba na kazi inatekelezwa kutoka kwa 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.
from ontology.interop.System.Runtime import CheckWitness
from ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return res
Habari zaidi inaweza kupatikana kwa Guthub. Katika makala inayofuata tutatambulisha API asilikujifunza jinsi ya kuhamisha mali katika mikataba mahiri ya Ontology.
Makala hiyo ilitafsiriwa na wahariri Hashrate & Hisa haswa kwa Ontolojia ya Urusi.
Je, wewe ni msanidi programu? Jiunge na jumuiya yetu ya teknolojia kwa Ugomvi. Pia, angalia Kituo cha Wasanidi Programu Ontolojia, unaweza kupata zana zaidi, nyaraka na mengi zaidi huko.