Le nxalenye ye-3 kuluhlu lwamanqaku emfundo ekudaleni iikontraki ezihlakaniphile kwiPython kwinethiwekhi ye-blockchain ye-Ontology. Kumanqaku angaphambili siye saqhelana nawo
Ngoku ekubeni unombono wendlela yokubiza i-API efanelekileyo yokugcina eqhubekayo xa uphuhlisa ikontrakthi ehlakaniphile usebenzisa iPython kwinethiwekhi ye-Ontology, masiqhubele phambili ekufundeni indlela yokusebenzisa. Runtime API (Contract Execution API). I-Runtime API inee-API ezisi-8 ezinxulumeneyo ezibonelela ngojongano oluqhelekileyo lokwenziwa kwekhontrakthi nokunceda abaphuhlisi bafumane, baguqule, kwaye baqinisekise idatha.
Ngezantsi inkcazo emfutshane yedatha ye-8 API:
Makhe sijonge ngakumbi indlela yokusebenzisa idatha ye-8 API. Ngaphambi koku, unokwenza ikhontrakthi entsha kwisixhobo sophuhliso lwekhontrakthi ehlakaniphile ye-Ontology
Uyisebenzisa njani i-Runtime API
Kukho iindlela ezimbini zokungenisa Runtime API: ontology.interop.System.Runtime ΠΈ i-ontology.interop.Ontology.Ixesha lokuqhuba. Indlela ye-Ontology iqulethe ii-APIs ezisanda kongezwa. Imigca engezantsi yokungenisa idatha ye-API.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash
Yazisa API
Umsebenzi Wazisa usasaza isiganeko kuthungelwano lonke. Kulo mzekelo ungezantsi, umsebenzi Wazisa uya kubuyisela umtya we-hex "hello word" kwaye usasaze kuwo wonke umsebenzi womnatha.
from ontology.interop.System.Runtime import Notify
def demo():
Notify("hello world")
Ungakubona oku kwiilog:
GetTime API
Umsebenzi we-GetTime ubuyisela isitampu sexesha sangoku, esibuyisela ixesha le-Unix apho umsebenzi ubizwe khona. Iyunithi yokulinganisa yeyesibini.
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # return a uint num
GetCurrentBlockHash API
Umsebenzi we-GetCurrentBlockHash ubuyisela i-hash yebhloko yangoku.
from ontology.interop.Ontology.Runtime import GetCurrentBlockHash
def demo():
block_hash = GetCurrentBlockHash()
return block_hash
Yenza uthotho kunye neDeserialize
Oku kubini kokulandelelana kunye nemisebenzi ye-deserialization. Umsebenzi we Serialize uguqulela into ibe yi-bytearray into, kwaye i-Deserialize umsebenzi uguqulela uluhlu lwe-bytear ukuya kwinto yoqobo. Isampulu yekhowudi engezantsi iguqula iiparameters ezingenayo kwaye igcine kwi-contract yogcino oluqhubekayo. Ikwafumana kwakhona idatha kwi-contract yogcino oluqhubekayo kwaye iguqule ibe yinto 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 kunye nedilesiToBase58
Le dilesi yomsebenzi wokuguqulela idilesi. Umsebenzi we-Base58ToAddress uguqula idilesi ekhowudiweyo ye-base58 ibe yidilesi ye-bytearray, kwaye i-AddressToBase58 iguqula idilesi ye-bytearray kwidilesi ekhowudiweyo ye-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)
Jonga iNgqina
Umsebenzi weCheckWitness(ukusuka kuAcct) unemisebenzi emibini:
- Qinisekisa ukuba umnxeba womsebenzi wangoku usuka kwi-Acct. Ukuba ewe (oko kukuthi, uqinisekiso lotyikityo lupasisiwe), umsebenzi uyabuya.
- Khangela ukuba into ebiza umsebenzi wangoku sisivumelwano. Ukuba ikhontrakthi kwaye umsebenzi wenziwa kwikhontrakthi, ngoko ukuqinisekiswa kudluliselwe. Oko kukuthi, qinisekisa ukuba ukusuka kwi-Acct lixabiso lembuyekezo ye-GetCallingScriptHash(). Umsebenzi we-GetCallingScriptHash () unokuthatha ixabiso lekhontrakthi ye-hash yekhontrakthi ehlakaniphile yangoku.
GetCallingScriptHash():
Okungakumbi kwi
from ontology.interop.System.Runtime import CheckWitness
from ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return res
Ulwazi oluninzi lunokufumaneka apha
Eli nqaku laguqulelwa ngabahleli
Hashrate&Shares ngakumbi kwi-Ontology yaseRashiya.
Ngaba ungumphuhlisi? Joyina uluntu lwethu lwetekhnoloji ku
Intology
umthombo: www.habr.com