Ichi ndicho chikamu chechitatu munhevedzano yezvinyorwa zvekudzidzisa pakugadzira smart zvibvumirano muPython pane Ontology blockchain network. Muzvinyorwa zvakapfuura takajairana nazvo
Iye zvino zvawava neruzivo rwekuti ungadaidza sei API yakakodzera inoshingirira kuchengetedza paunenge uchigadzira kondirakiti yakangwara uchishandisa Python paOntology network, ngatienderere mberi nekudzidza mashandisiro. Runtime API (API yeContract Execution). Iyo Runtime API ine 8 ine hukama maAPIs ayo anopa akajairwa machinjiro ekuita kondirakiti uye anobatsira vanogadzira kutora, kushandura, uye kusimbisa data.
Pazasi pane tsananguro pfupi ye8 API data:
Ngatitarisei zvakanyanya mashandisiro eiyo 8 API data. Izvi zvisati zvaitika, unogona kugadzira kondirakiti nyowani muOntology smart contract yekuvandudza chishandiso
Maitiro ekushandisa iyo Runtime API
Pane nzira mbiri dzekuunza kunze kwenyika Purogiramu inonzi Runtime: ontology.interop.System.Runtime ΠΈ ontology.interop.Ontology.Runtime. Iyo Ontology nzira ine ichangobva kuwedzerwa APIs. Mitsetse iri pazasi inopinza iyo API data.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash
Notify API
The Notify function inotepfenyura chiitiko munetwork yese. Mumuenzaniso uri pazasi, iyo Notify basa inodzosera hex tambo "hello izwi" uye iitepfenyura mukati metiweki.
from ontology.interop.System.Runtime import Notify
def demo():
Notify("hello world")
Iwe unogona kuona izvi mumatanda:
GetTime API
Iyo GetTime basa inodzosera yazvino timestamp, iyo inodzosera iyo Unix nguva iyo basa rakadaidzwa. Chiyero chekuyera chikamu chechipiri.
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # return a uint num
GetCurrentBlockHash API
Iyo GetCurrentBlockHash basa inodzosa hashi yeiyo yazvino block.
from ontology.interop.Ontology.Runtime import GetCurrentBlockHash
def demo():
block_hash = GetCurrentBlockHash()
return block_hash
Seriize uye Deserialize
Iyi iviri ye serialization uye deserialization mabasa. Basa reSerialize rinoshandura chinhu kuita bytearray chinhu, uye Deserialize basa rinoshandura bytearray kuchinhu chekutanga. Sample yekodhi pazasi inoshandura iyo inouya paramita uye inoichengeta mukondirakiti inoenderera chengetedzo. Iyo zvakare inotora data kubva muchibvumirano chinoramba ichichengeterwa uye ichichishandura kuita icho chekutanga chinhu.
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 uye KeroToBase58
Peya iyi yekushandura kero inoshanda. Iyo Base58ToAddress basa rinoshandura base58 encoded kero kuita bytearray kero, uye AddressToBase58 inoshandura bytearray kero kuita base58 encoded kero.
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)
Tarisa Chapupu
Iyo CheckWitness(kubva kuAcct) basa rine maviri mashandiro:
- Tarisa kana arikufona webasa razvino ari kubva kuAcct. Kana hongu (ndiko kuti, siginecha verification yapfuura), basa rinodzoka.
- Tarisa kana chinhu chinodaidza basa razvino iri kondirakiti. Kana iri chibvumirano uye basa racho richiitwa kubva muchibvumirano, ipapo kuvimbiswa kunopfuudzwa. Kureva kuti, simbisa kana kubva kuAcct iriyo kukosha kwekudzoka kweGetCallingScriptHash(). Iyo GetCallingScriptHash () basa rinogona kutora kontrakiti hashi kukosha kweikozvino smart kontrakiti.
GetCallingScriptHash():
Verenga zvimwe
from ontology.interop.System.Runtime import CheckWitness
from ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return res
Rumwe ruzivo runogona kuwanikwa pa
Chinyorwa chakaturikirwa nevapepeti
Hashrate&Shares kunyanya yeOntologyRussia.
Iwe uri mugadziri? Joinha tekinoroji yedu munharaunda pa
Ontology
Source: www.habr.com