Yadda ake rubuta kwangila mai wayo a Python akan hanyar sadarwar Ontology. Sashe na 3: API ɗin Runtime

Yadda ake rubuta kwangila mai wayo a Python akan hanyar sadarwar Ontology. Sashe na 3: API ɗin Runtime

Wannan shine kashi na 3 a cikin jerin labaran ilimi kan ƙirƙirar kwangiloli masu wayo a Python akan hanyar sadarwar toshewar Ontology. A kasidun da suka gabata mun saba da su

  1. Blockchain & Block API
  2. API ɗin Adanawa.

Yanzu da kuna da ra'ayin yadda ake kiran API ɗin ajiya mai dacewa lokacin haɓaka kwangila mai wayo ta amfani da Python akan hanyar sadarwar Ontology, bari mu matsa zuwa koyon yadda ake amfani da shi. API ɗin Runtime ( API ɗin Ƙimar Kwangila). API ɗin Runtime yana da APIs masu alaƙa guda 8 waɗanda ke ba da musaya gama gari don aiwatar da kwangila da taimakawa masu haɓakawa su dawo, canzawa, da inganta bayanai.

A ƙasa akwai taƙaitaccen bayanin bayanan API 8:

Yadda ake rubuta kwangila mai wayo a Python akan hanyar sadarwar Ontology. Sashe na 3: API ɗin Runtime

Bari mu kalli yadda ake amfani da bayanan API 8. Kafin wannan, zaku iya ƙirƙirar sabuwar kwangila a cikin kayan aikin haɓaka kwangilar wayo na Ontology SmartX kuma bi umarnin da ke ƙasa.

Yadda ake amfani da Runtime API

Akwai hanyoyi guda biyu don shigo da kaya API ɗin Runtime: ontology.interop.System.Runtime и ontology.interop.Ontology.Runtime. Hanyar Ontology ta ƙunshi sabbin APIs da aka ƙara. Layukan da ke ƙasa suna shigo da bayanan API.

from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash

Sanar da API

Aikin Sanarwa yana watsa taron a cikin cibiyar sadarwa. A cikin misalin da ke ƙasa, aikin Sanarwa zai dawo da hex kirtani "hello kalma" kuma ya watsa shi cikin hanyar sadarwa.

from ontology.interop.System.Runtime import Notify
def demo():
    Notify("hello world")

Kuna iya ganin wannan a cikin rajistan ayyukan:

Yadda ake rubuta kwangila mai wayo a Python akan hanyar sadarwar Ontology. Sashe na 3: API ɗin Runtime

API ɗin GetTime

Aikin GetTime yana dawo da tambarin lokaci na yanzu, wanda ke dawo da lokacin Unix wanda aka kira aikin. Naúrar ma'aunin ita ce ta biyu.

from ontology.interop.System.Runtime import GetTime
def demo():
    time=GetTime()
    return time # return a uint num

API ɗin GetCurrentBlockHash

Aikin GetCurrentBlockHash yana dawo da zanta na toshe na yanzu.

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

Serialize da Deserialize

Wannan nau'i-nau'i ne na serialization da ayyukan lalata. Aikin Serialize yana jujjuya abu zuwa abu mai ruɗi, kuma aikin Deserialize yana jujjuya bytearray zuwa ainihin abu. Samfurin lambar da ke ƙasa yana canza sigogi masu shigowa kuma yana adana su a cikin ma'ajiyar kwangilar. Hakanan yana dawo da bayanai daga ma'ajin kwangilar na dindindin kuma ya canza shi zuwa ainihin abu.

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

Base58ToAdireshi da AdireshiToBase58

Wannan nau'i biyu na ayyukan fassarar adireshi. Aikin Base58ToAddress yana canza adireshi na tushe58 zuwa adireshin bytearray, kuma AddressToBase58 yana canza adireshin bytearray zuwa adireshi na tushe58.

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)

Duba Shuhuda

Aikin CheckWitness(fromAcct) yana da ayyuka guda biyu:

  • Tabbatar idan mai kiran aikin na yanzu ya fito dagaAcct. Idan eh (wato, tabbatar da sa hannu ya wuce), aikin zai dawo.
  • Bincika idan abin da ke kiran aikin na yanzu kwangila ne. Idan kwangila ne kuma an aiwatar da aikin daga kwangilar, to an wuce tabbatarwa. Wato, tabbatar idan dagaAcct shine ƙimar dawowar GetCallingScriptHash(). Aikin GetCallingScriptHash() na iya ɗaukar ƙimar kwangilar hash ɗin kwangilar wayo na yanzu.

GetCallingScriptHash():

Karanta ƙari 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

Ana iya samun ƙarin bayani a Guthub. A kasida ta gaba za mu gabatar 'Yan ƙasar APIdon koyon yadda ake canja wurin kadarori a cikin kwangilolin smart na Ontology.

Editoci ne suka fassara labarin Hashrate&Shares musamman ga Ontology na Rasha.

Shin kai mai haɓaka ne? Kasance tare da jama'ar fasahar mu a Zama. Hakanan, duba Cibiyar Haɓakawa Ontology, zaku iya samun ƙarin kayan aiki, takardu da ƙari a can.

Buɗe ayyuka don masu haɓakawa. Kammala aikin kuma sami lada.

Aiwatar don shirin basirar Ontology ga ɗalibai

Ontology

Yanar Gizon Ontology - GitHub - Zama - Telegram Rashanci - Twitter - Reddit

source: www.habr.com

Add a comment