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

  1. Blockchain & Block API
  2. API ya Uhifadhi.

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:

Jinsi ya kuandika mkataba mzuri katika Python kwenye mtandao wa Ontology. Sehemu ya 3: API ya Muda wa Kuendesha

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:

Jinsi ya kuandika mkataba mzuri katika Python kwenye mtandao wa Ontology. Sehemu ya 3: API ya Muda wa Kuendesha

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.

from ontology.interop.Ontology.Runtime import GetCurrentBlockHash
def demo():
    block_hash = GetCurrentBlockHash()
    return block_hash

Kusasisha na Deserialize

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.

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)

Cheki Shahidi

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.

GetCallingScriptHash():

Soma zaidi juu Guthub

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.

Fungua kazi kwa watengenezaji. Kamilisha kazi na upate zawadi.

Omba kwa mpango wa vipaji vya Ontolojia kwa wanafunzi

Ontolojia

Tovuti ya Ontolojia - GitHub - Ugomvi - Telegraph ya Kirusi - Twitter - Reddit

Chanzo: mapenzi.com

Kuongeza maoni