Pehea e kākau ai i kahi ʻaelike akamai ma Python ma ka pūnaewele Ontology. Mahele 3: API no ka holo

Pehea e kākau ai i kahi ʻaelike akamai ma Python ma ka pūnaewele Ontology. Mahele 3: API no ka holo

ʻO kēia ka ʻāpana ʻekolu o nā ʻatikala hoʻonaʻauao e pili ana i ka hana ʻana i nā ʻaelike akamai ma Python ma ka pūnaewele blockchain Ontology. Ma nā ʻatikala mua a mākou i kamaʻāina ai

  1. Blockchain & Block API
  2. API no ka mālama ʻana.

I kēia manawa ua loaʻa iā ʻoe kahi manaʻo pehea e kāhea ai i ka API mālama hoʻomau kūpono i ka wā e hoʻomohala ai i kahi ʻaelike akamai me ka hoʻohana ʻana iā Python ma ka pūnaewele Ontology, e neʻe mākou i ke aʻo ʻana pehea e hoʻohana ai. API no ka manawa holo (API Hoʻokō ʻaelike). Loaʻa i ka Runtime API nā API pili 8 e hāʻawi i nā pilina maʻamau no ka hoʻokō ʻana i ka ʻaelike a kōkua i nā mea hoʻomohala e kiʻi, hoʻololi, a hōʻoia i ka ʻikepili.

Aia ma lalo iho kahi wehewehe pōkole o ka ʻikepili 8 API:

Pehea e kākau ai i kahi ʻaelike akamai ma Python ma ka pūnaewele Ontology. Mahele 3: API no ka holo

E nānā pono kākou i ka hoʻohana ʻana i ka ʻikepili 8 API. Ma mua o kēia, hiki iā ʻoe ke hana i kahi ʻaelike hou i ka Ontology smart contract development tool SmartX a hahai i nā kuhikuhi ma lalo nei.

Pehea e hoʻohana ai i ka Runtime API

ʻElua ala e lawe mai ai API no ka holo ana: ontology.interop.System.Runtime и ontology.interop.Ontology.Runtime. Aia ma ke ala Ontology nā API i hoʻohui hou ʻia. Hoʻokomo nā laina ma lalo i ka ʻikepili API.

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

Hoʻomaopopo iā API

Hoʻolaha ka hana Notify i ka hanana ma ka pūnaewele. Ma ka laʻana ma lalo nei, e hoʻihoʻi ka hana Notify i ke kaula hex "hello word" a hoʻolaha iā ia ma ka pūnaewele.

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

Hiki iā ʻoe ke ʻike i kēia ma nā logs:

Pehea e kākau ai i kahi ʻaelike akamai ma Python ma ka pūnaewele Ontology. Mahele 3: API no ka holo

GetTime API

Hoʻihoʻi ka hana GetTime i ka timestamp o kēia manawa, kahi e hoʻihoʻi ai i ka manawa Unix i hea ʻia ai ka hana. ʻO ka ʻāpana o ke ana ka lua.

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

GetCurrentBlockHash API

Hoʻihoʻi ka hana GetCurrentBlockHash i ka hash o ka poloka o kēia manawa.

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

Serialize a me Deserialize

He mau hana serialization a deserialization kēia. Hoʻololi ka hana Serialize i kahi mea i kahi mea bytearray, a hoʻololi ka hana Deserialize i kahi bytearray i ka mea kumu. Hoʻololi ka laʻana code ma lalo i nā ʻāpana e hiki mai ana a mālama iā lākou i loko o ka waihona hoʻomau mau o ka ʻaelike. Hoʻihoʻi hou ia i ka ʻikepili mai ka waiho mau ʻana o ka ʻaelike a hoʻololi iā ia i mea kumu.

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 a me AddressToBase58

He mau hana unuhi kēia ʻelua. Hoʻololi ka hana Base58ToAddress i kahi helu helu base58 i kahi helu bytearray, a hoʻololi ʻo AddressToBase58 i kahi helu bytearray i kahi helu helu 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)

E nana Hoike

ʻElua mau hana o ka CheckWitness(fromAcct):

  • E hōʻoia inā noAcct ka mea kelepona o kēia manawa. Inā ʻae (ʻo ia hoʻi, ua hala ka hōʻoia pūlima), hoʻi ka hana.
  • E nānā inā he ʻaelike ka mea e kāhea ana i ka hana o kēia manawa. Inā he ʻaelike a ua hoʻokō ʻia ka hana mai ka ʻaelike, a laila ua hala ka hōʻoia. ʻO ia, e hōʻoia inā maiAcct ka waiwai hoʻihoʻi o GetCallingScriptHash (). Hiki i ka hana GetCallingScriptHash() ke lawe i ka waiwai hash aelike o ka aelike akamai o keia manawa.

GetCallingScriptHash():

ʻEʻe hou aku 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

Hiki ke loaʻa nā ʻike hou aku ma Guthub. Ma ka ʻatikala aʻe e hoʻolauna mākou API ʻōiwie aʻo pehea e hoʻoili ai i nā waiwai i nā ʻaelike akamai Ontology.

Ua unuhi ʻia ka ʻatikala e nā mea hoʻoponopono Hashrate&Mahele no ka OntologyRussia.

He mea hoʻomohala ʻoe? E hui pū me kā mākou kaiaulu ʻenehana ma Ka wehewehe. Eia kekahi, e nānā i Keena hoʻomohala Ontology, hiki iā ʻoe ke ʻike i nā mea hana hou aku, palapala a me nā mea hou aku ma laila.

Wehe nā hana no nā mea hoʻomohala. E hoʻopau i ka hana a loaʻa ka uku.

E noi no ka papahana talena Ontology no nā haumāna

Ontology

Paena pūnaewele ontology - GitHub - Ka wehewehe - Telegram Lūkini - Twitter - LIKE

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka