Lena ingxenye yesi-3 ochungechungeni lwezihloko ezifundisayo zokudala izinkontileka ezihlakaniphile ePython kunethiwekhi ye-Ontology blockchain. Ezihlokweni ezedlule sajwayelana
Manje njengoba usunombono wokuthi ungayishayela kanjani i-API eqhubekayo yokugcina lapho wenza inkontileka ehlakaniphile usebenzisa i-Python kunethiwekhi ye-Ontology, ake siqhubekele phambili nokufunda indlela yokusebenzisa. I-Runtime API (I-Contract Execution API). I-Runtime API inama-API ahlobene angu-8 anikeza ukuxhumana okuvamile kokwenziwa kwenkontileka nokusiza onjiniyela ukubuyisa, ukuguqula, nokuqinisekisa idatha.
Ngezansi incazelo emfushane yedatha ye-8 API:
Ake sibhekisise indlela yokusebenzisa idatha ye-8 API. Ngaphambi kwalokhu, ungakha inkontileka entsha kuthuluzi lokuthuthukisa inkontileka ehlakaniphile ye-Ontology
Indlela yokusebenzisa i-Runtime API
Kunezindlela ezimbili zokungenisa I-Runtime API: ontology.interop.System.Runtime и ontology.interop.Ontology.Runtime. Indlela ye-Ontology iqukethe ama-API asanda kungezwa. Imigqa engezansi ingenisa idatha ye-API.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash
Notify API
Umsebenzi Wokwazisa usakaza umcimbi kuyo yonke inethiwekhi. Esibonelweni esingezansi, umsebenzi Wazisa uzobuyisela iyunithi yezinhlamvu ye-hex ethi "hello word" futhi isakaze kuyo yonke inethiwekhi.
from ontology.interop.System.Runtime import Notify
def demo():
Notify("hello world")
Ungakubona lokhu kumalogi:
I-GetTime API
Umsebenzi we-GetTime ubuyisela isitembu sesikhathi samanje, esibuyisela isikhathi se-Unix umsebenzi obizwe ngaso. Iyunithi yokulinganisa ingeyesibili.
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # return a uint num
I-GetCurrentBlockHash API
Umsebenzi we-GetCurrentBlockHash ubuyisela i-hash yebhulokhi yamanje.
from ontology.interop.Ontology.Runtime import GetCurrentBlockHash
def demo():
block_hash = GetCurrentBlockHash()
return block_hash
I-serialise futhi i-Deserialize
Lena ipheya yemisebenzi ye-serialization kanye ne-deserialization. Umsebenzi we-Serialize uguqula into ibe into ye-bytearray, futhi umsebenzi we-Deserialize uguqule i-bytearray ibe into yokuqala. Isampula yekhodi engezansi iguqula amapharamitha angenayo futhi iwagcine kusitoreji esiqhubekayo senkontileka. Iphinde ibuyise idatha kusitoreji esiqhubekayo senkontileka futhi iyiguqule ibe into yokuqala.
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
I-Base58ToAddress kanye ne-AddressToBase58
Lokhu kupheya kwekheli kuyasebenza. Umsebenzi we-Base58ToAddress uguqula ikheli elibhalwe nge-base58 libe ikheli le-bytearray, futhi i-AddressToBase58 iguqula ikheli le-bytearray libe ikheli elibhalwe nge-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)
Bheka uFakazi
Umsebenzi we-CheckWitness(fromAcct) unemisebenzi emibili:
- Qinisekisa ukuthi ofonayo womsebenzi wamanje uvela ku-Acct. Uma kunjalo (okungukuthi, ukuqinisekiswa kwesiginesha kuphasisiwe), umsebenzi uyabuya.
- Hlola ukuthi into ebiza umsebenzi wamanje iyinkontileka. Uma kuyinkontileka futhi umsebenzi wenziwa kusukela kunkontileka, khona-ke ukuqinisekiswa kuyaphasiswa. Okungukuthi, qinisekisa ukuthi i- fromAcct iyinani lokubuyisela le-GetCallingScriptHash(). Umsebenzi we-GetCallingScriptHash() ungathatha inani le-hashi lenkontileka lenkontileka ehlakaniphile yamanje.
GetCallingScriptHash():
Okuningi ku
from ontology.interop.System.Runtime import CheckWitness
from ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return res
Olunye ulwazi lungatholakala ku
Isihloko sahunyushwa abahleli
I-Hashrate&Amasheya ikakhulukazi OntologyRussia.
Ingabe ungunjiniyela? Joyina umphakathi wethu wezobuchwepheshe ku
I-Ontology
Source: www.habr.com