Å Ä« ir treÅ”Ä daļa izglÄ«tojoÅ”o rakstu sÄrijÄ par viedo lÄ«gumu izveidi Python Ontology blokÄ·Ädes tÄ«klÄ. IepriekÅ”Äjos rakstos mÄs iepazinÄmies
Tagad, kad jums ir ideja par to, kÄ izsaukt atbilstoÅ”o pastÄvÄ«gÄs krÄtuves API, izstrÄdÄjot viedo lÄ«gumu, izmantojot Python Ontology tÄ«klÄ, pÄriesim pie lietoÅ”anas mÄcÄ«Å”anÄs Izpildlaika API (LÄ«guma izpildes API). Runtime API ir 8 saistÄ«tas API, kas nodroÅ”ina kopÄjas saskarnes lÄ«gumu izpildei un palÄ«dz izstrÄdÄtÄjiem izgÅ«t, pÄrveidot un apstiprinÄt datus.
TÄlÄk ir sniegts Ä«ss 8 API datu apraksts:
SÄ«kÄk apskatÄ«sim, kÄ izmantot 8 API datus. Pirms tam varat izveidot jaunu lÄ«gumu OntoloÄ£ijas viedÄ lÄ«guma izstrÄdes rÄ«kÄ SmartX un izpildiet tÄlÄk sniegtos norÄdÄ«jumus.
KÄ lietot izpildlaika API
Ir divi importÄÅ”anas veidi Runtime API: ontology.interop.System.Runtime Šø ontology.interop.Ontology.Runtime. OntoloÄ£ijas ceļŔ satur tikko pievienotÄs API. TÄlÄk norÄdÄ«tÄs rindiÅas importÄ API datus.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash
PaziÅot API
Funkcija PaziÅot pÄrraida notikumu visÄ tÄ«klÄ. TÄlÄk esoÅ”ajÄ piemÄrÄ funkcija PaziÅot atgriezÄ«s hex virkni āsveiki vÄrdsā un pÄrraidÄ«s to visÄ tÄ«klÄ.
from ontology.interop.System.Runtime import Notify
def demo():
Notify("hello world")
To var redzÄt žurnÄlos:
GetTime API
Funkcija GetTime atgriež paÅ”reizÄjo laikspiedolu, kas atgriež Unix laiku, kurÄ funkcija tika izsaukta. MÄrvienÄ«ba ir otrÄ.
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # return a uint num
GetCurrentBlockHash API
Funkcija GetCurrentBlockHash atgriež paÅ”reizÄjÄ bloka jaucÄjvÄrtÄ«bu.
Å is ir serializÄcijas un deserializÄcijas funkciju pÄris. Funkcija Serialize pÄrvÄrÅ” objektu par baitu masÄ«vu objektu, un funkcija Deserialize pÄrvÄrÅ” baitu masÄ«vu par sÄkotnÄjo objektu. TÄlÄk sniegtais koda paraugs pÄrvÄrÅ” ienÄkoÅ”os parametrus un saglabÄ tos lÄ«guma pastÄvÄ«gajÄ krÄtuvÄ. Tas arÄ« izgÅ«st datus no lÄ«guma pastÄvÄ«gÄs krÄtuves un pÄrveido tos sÄkotnÄjÄ objektÄ.
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 un AddressToBase58
Å is adreÅ”u tulkoÅ”anas funkciju pÄris. Funkcija Base58ToAddress pÄrvÄrÅ” base58 kodÄtu adresi par baitu matricas adresi, un AddressToBase58 pÄrvÄrÅ” baitu masÄ«va adresi par base58 kodÄtu adresi.
Funkcijai CheckWitness(fromAcct) ir divas funkcijas:
PÄrbaudiet, vai paÅ”reizÄjÄs funkcijas zvanÄ«tÄjs ir fromAcct. Ja jÄ (tas ir, paraksta pÄrbaude ir izturÄta), funkcija atgriežas.
PÄrbaudiet, vai objekts, kas izsauc paÅ”reizÄjo funkciju, ir lÄ«gums. Ja tas ir lÄ«gums un funkcija tiek izpildÄ«ta no lÄ«guma, tad pÄrbaude ir izieta. Tas ir, pÄrbaudiet, vai fromAcct ir GetCallingScriptHash() atgrieÅ”anas vÄrtÄ«ba. Funkcija GetCallingScriptHash() var Åemt paÅ”reizÄjÄ viedÄ lÄ«guma lÄ«guma jaukÅ”anas vÄrtÄ«bu.
from ontology.interop.System.Runtime import CheckWitness
from ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return res
VairÄk informÄcijas var atrast Guthub. NÄkamajÄ rakstÄ mÄs iepazÄ«stinÄsim VietÄjÄ APIlai uzzinÄtu, kÄ pÄrsÅ«tÄ«t aktÄ«vus ontoloÄ£ijas viedajos lÄ«gumos.
Rakstu tulkoja redaktori Hashrate&Akcijas īpaŔi OntologyRussia.
Vai jÅ«s esat izstrÄdÄtÄjs? Pievienojieties mÅ«su tehnoloÄ£iju kopienai vietnÄ NeatbilstÄ«ba. Apskatiet arÄ« IzstrÄdÄtÄju centrs OntoloÄ£ija, tur var atrast vairÄk rÄ«ku, dokumentÄciju un daudz ko citu.