
See on kolmas osa Ôpetuste seeriast, mis kÀsitleb nutilepingute loomist Pythonis blockchain vÔrgus Ontology. Eelmistel artiklitel tutvusime
- .
NĂŒĂŒd, kui teil on arusaam, kuidas kutsuda sobivat API-d andmete pĂŒsivaks salvestamiseks nutilepingut arendades Pythonis Ontology vĂ”rgus, liikume edasi selle kasutamise tutvustamise juurde Runtime API (Lepingu tĂ€itmise API). Runtime API-l on 8 seotud API-d, mis pakuvad ĂŒhist liidest lepingu tĂ€itmiseks ning aitavad arendajatel andmeid saada, muuta ja kontrollida.
Allpool on lĂŒhikirjeldus neist 8 API-st:

Vaatame lÀhemalt, kuidas neid 8 API-d kasutada. Enne seda vÔite luua uue lepingu Ontology nutilepingute arendustööriistas ja jÀrgida allolevaid juhiseid.
Kuidas kasutada Runtime API-d
On kaks teed Runtime API importimiseks Runtime API: ontology.interop.System.Runtime ja ontology.interop.Ontology.Runtime. Ontology tee sisaldab hiljuti lisatud API-sid. Allpool toodud read importivad neid API-sid.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHashNotify API
Notify funktsioon edastab sĂŒndmuse kogu vĂ”rgus. Allolevas nĂ€ites tagastab Notify funktsioon hex-reana "hello word" ja edastab selle kogu vĂ”rgus.
from ontology.interop.System.Runtime import Notify
def demo():
Notify("hello world")Saate seda nÀha logides:

GetTime API
GetTime funktsioon tagastab praeguse ajamĂ€rgi, mis tagastab Unix-aaja, millal funktsioon kutsuti. Mitu mÔÔtĂŒhikutâ sekund.
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # tagastab uint numGetCurrentBlockHash API
GetCurrentBlockHash funktsioon tagastab praeguse ploki hash'i.
from ontology.interop.Ontology.Runtime import GetCurrentBlockHash
def demo():
block_hash = GetCurrentBlockHash()
return block_hashSerialize ja Deserialize
Need on paar serialiseerimise ja deserialiseerimise funktsiooni. Serialize funktsioon muundab objekti bytearray objektiks ning Deserialize funktsioon muundab bytearray tagasi algseks objektiks. Allolev koodinĂ€idis tegeleb sisendparameetrite muundamisega ja salvestab need lepingu pĂŒsivasse salvestusse. Samuti hankib see andmeid lepingu pĂŒsivast salvestusest ja muundab need tagasi algseks objektiks.
ontoloogia.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
ontoloogia.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 dataBase58ToAddress ja AddressToBase58
Need on paar aadresside teisendamisfunktsioone. Funktsioon Base58ToAddress teisendab base58 kodeeritud aadressi bytearray vormis aadressiks, samas kui AddressToBase58 teisendab bytearray vormis aadressi base58 kodeeritud aadressiks.
ontoloogia.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58
def demo():
base58_addr="AV1GLfVzw28vtK3d1kVGxv5xuWU59P6Sgn"
addr=Base58ToAddress(base58_addr)
Log(addr)
base58_addr=AddressToBase58(addr)
Log(base58_addr)CheckWitness
Funktsioon CheckWitness(fromAcct) on kahe funktsiooniga:
- Kontrollib, kas hetkel funktsiooni kutsuv objekt on fromAcct. Kui jah (st allkiri on kontrollitud), tagastab funktsioon.
- Kontrollib, kas hetkel funktsiooni kutsuv objekt on leping. Kui see on leping ja funktsioon kÀivitatakse lepingust, siis on kontroll lÀbitud. See tÀhendab, et kontrollib, kas fromAcct on GetCallingScriptHash() tagastatud vÀÀrtus. Funktsioon GetCallingScriptHash() saab kasutada hetkelise nutitelefoni lepinguhashi vÀÀrtuse hankimiseks.
GetCallingScriptHash():
Lisainformatsiooni leiate
ontoloogia.interop.System.Runtime import CheckWitness
ontoloogia.interop.Ontology.Runtime import Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return resRohkem teavet leiate . JÀrgmisest artiklist tutvustame Native API, et Ôppida, kuidas varasid Ontology nutitelefonidele edastada.
Artikkel on tÔlgitud toimetuse poolt spetsiaalselt OntologyRussia jaoks.
Oled sa arendaja? Liitu meie tehnilise kogukonnaga . Samuti vaata Ontology, kust leiate rohkem tööriistu, dokumentatsiooni ja palju muud.
Kinnita ĂŒlesanne â teenige tasu.
Ontology talentide programmi jaoks ĂŒliĂ”pilastele
Ontology
â â â â â
Allikas: habr.com
