ProHoster > Blog > Administrasi > Kumaha cara nyerat kontrak pinter dina Python dina jaringan Ontology. Bagian 3: Runtime API
Kumaha cara nyerat kontrak pinter dina Python dina jaringan Ontology. Bagian 3: Runtime API
Ieu mangrupikeun bagian ka-3 dina séri tulisan atikan ngeunaan nyiptakeun kontrak pinter dina Python dina jaringan blockchain Ontology. Dina artikel saméméhna urang wawuh jeung
Ayeuna anjeun gaduh ide kumaha nyauran API panyimpenan pengkuh anu pas nalika ngembangkeun kontrak pinter nganggo Python dina jaringan Ontology, hayu urang teraskeun diajar kumaha ngagunakeun Runtime API (API Palaksanaan Kontrak). Runtime API boga 8 API patali nu nyadiakeun interfaces umum pikeun palaksanaan kontrak jeung mantuan pamekar meunangkeun deui, transformasi jeung sangkan méré konfirmasi data.
Di handap ieu pedaran ringkes data 8 API:
Hayu urang tingali kumaha ngagunakeun data 8 API. Sateuacan ieu, anjeun tiasa nyiptakeun kontrak énggal dina alat pamekaran kontrak pinter Ontology SmartX tur turutan parentah di handap.
Kumaha ngagunakeun Runtime API
Aya dua cara pikeun ngimpor Runtime API: ontology.interop.System.Runtime и ontology.interop.Ontology.Runtime. Jalur Ontology ngandung API anu nembe ditambahkeun. Garis handap ngimpor data API.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash
Ngabéjaan API
Fungsi Bewara nyiarkeun acara ka sakuliah jaringan. Dina conto di handap ieu, fungsi Bewara bakal ngabalikeun senar hex "hallo kecap" sareng disiarkeun sapanjang jaringan.
from ontology.interop.System.Runtime import Notify
def demo():
Notify("hello world")
Anjeun tiasa ningali ieu dina log:
GetTime API
Fungsi GetTime mulih timestamp ayeuna, nu mulih waktos Unix di mana fungsi ieu disebut. Unit pangukuran nyaéta kadua.
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # return a uint num
GetCurrentBlockHash API
Fungsi GetCurrentBlockHash mulihkeun hash tina blok ayeuna.
Ieu sapasang fungsi serialization jeung deserialization. Fungsi Serialize ngarobah hiji obyék kana objék bytearray, sarta fungsi Deserialize ngarobah hiji bytearray kana objék aslina. Sampel kode di handap ngarobah parameter asup tur nyimpen aranjeunna dina gudang pengkuh kontrak urang. Ogé retrieves data ti gudang pengkuh kontrak sarta transforms kana objék aslina.
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 sareng AddressToBase58
Pasangan ieu fungsi tarjamah alamat. Fungsi Base58ToAddress ngarobah alamat base58 disandikeun kana alamat bytearray, sarta AddressToBase58 ngarobah alamat bytearray kana alamat base58 disandikeun.
Parios upami panelepon fungsi ayeuna tiAcct. Upami enya (nyaéta, verifikasi tandatangan lulus), fungsina balik deui.
Pariksa lamun obyék nelepon fungsi ayeuna kontrak. Upami éta kontrak sareng fungsina dieksekusi tina kontrak, maka verifikasina lulus. Hartina, pariksa lamun fromAcct teh nilai balik GetCallingScriptHash (). Fungsi GetCallingScriptHash () tiasa nyandak nilai Hash kontrak tina kontrak pinter ayeuna.
from ontology.interop.System.Runtime import CheckWitness
from ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return res
Inpo nu leuwih lengkep bisa kapanggih dina Guthub. Dina artikel salajengna urang bakal ngawanohkeun API Aslipikeun diajar kumaha cara nransferkeun aset dina kontrak pinter Ontology.
Artikel ieu ditarjamahkeun ku éditor Hashrate & Bagikeun hususna keur OntologyRussia.
Anjeun pamekar? Gabung komunitas tech kami di Discord. Ogé, nyandak katingal di Puseur pamekar Ontologi, anjeun tiasa mendakan langkung seueur alat, dokuméntasi sareng seueur deui di dinya.