
Ky është pjesa e 3-të e një serie artikujsh mësimorë për krijimin e kontratave të mençura në Python në rrjetin blockchain Ontology. Në artikujt e mëparshëm, u njohëm me
- .
Tani, kur keni një ide se si të thërrisni API-në e duhur për depozitimin e qëndrueshëm gjatë zhvillimit të një kontrate të mençur me Python në rrjetin Ontology, le të kalojmë te njohja se si të përdorim Runtime API (Contract Execution API). API e Runtime ka 8 API të lidhura që ofrojnë ndërfaqe të zakonshme për ekzekutimin e kontratave dhe ndihmojnë zhvilluesit të marrin, konvertojnë dhe verifikojnë të dhënat.
Më poshtë është një përshkrim i shkurtër i këtyre 8 API-ve:

Le të shqyrtojmë më në detaje se si të përdorim këto 8 API. Para kësaj, mund të krijoni një kontratë të re në mjetin e zhvillimit të kontratave të mençura Ontology dhe të ndiqni udhëzimet e mëposhtme.
Si të përdorni API-në e Runtime
Ka dy mënyra për të importuar API-në e Runtime: ontology.interop.System.Runtime dhe ontology.interop.Ontology.Runtime. Rruga Ontology përmban API-të që janë shtuar së fundmi. Rreshtat e mëposhtëm importojnë këto API.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHashNotify API
Funksioni Notify transmeton ngjarjen për gjithë rrjetin. Në shembullin më poshtë, funksioni Notify do të kthejë një string hex "hello world" dhe do ta transmetojë për gjithë rrjetin.
from ontology.interop.System.Runtime import Notify
def demo():
Notify("hello world")Ju mund ta shihni këtë në të dhënat:

GetTime API
Funksioni GetTime kthen vulĂ«n aktuale tĂ« kohĂ«s, e cila kthen kohĂ«n Unix kur funksioni u thirr. NjĂ«si matĂ«se â sekonda.
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # kthe një numër uintGetCurrentBlockHash API
Funksioni GetCurrentBlockHash kthen hash-in e bllokut aktual.
from ontology.interop.Ontology.Runtime import GetCurrentBlockHash
def demo():
block_hash = GetCurrentBlockHash()
return block_hashSerialize dhe Deserialize
Këto janë dy funksione përseritëse dhe anullimi. Funksioni Serialize konverton një objekt në një objekt bytearray dhe funksioni Deserialize konverton bytearray në objektin fillestar. Shembulli i mëposhtëm i kodit realizon konvertimin e parametrave të ardhshëm dhe i ruan ato në depozitimin e qëndrueshëm të kontratës. Ai gjithashtu nxjerr të dhënat nga depozitimi i qëndrueshëm të kontratës dhe i konverton ato në objektin fillestar.
nga ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
nga 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 dataBase58ToAddress dhe AddressToBase58
Kjo çift funksionesh realizon konvertimin e adresave. Funksioni Base58ToAddress konverton adresën e koduar base58 në një adresë në formën e bytearray, ndërsa AddressToBase58 konverton adresën në formën e bytearray në një adresë të koduar base58.
nga 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)KontrolloDëshminë
Funksioni CheckWitness(fromAcct) ka dy funksionalitete:
- Verifikon nëse objekti që thërret funksionin aktual është fromAcct. Nëse po (dmth, testi i nënshkrimit është kaluar), funksioni kthehet.
- Kontrollon nëse objekti që thërret funksionin aktual është një kontratë. Nëse kjo është një kontratë dhe funksioni ekzekutohet nga kontrata, atëherë verifikimi është kaluar. Domethënë, verifikoni nëse fromAcct është vlera e kthyer nga GetCallingScriptHash(). Funksioni GetCallingScriptHash() mund të marrë vlerën e hash-it të kontratës së smart kontratës aktuale.
GetCallingScriptHash():
Më shumë informacion në
nga ontology.interop.System.Runtime import CheckWitness
nga ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return resMë shumë informacion mund të gjendet në . Në artikullin e ardhshëm ne do të paraqesim API Nativ, për të mësuar se si të transferoni asete në smart kontratat Ontology.
Artikulli është përkthyer nga redaksia veçanërisht për OntologyRussia.
Are you a developer? Join our technical community on . Additionally, check out the Ontology, where you can find more tools, documentation, and much more.
Close the task â receive a reward.
for the Ontology talent program for students.
Ontology
â â â â â
Burimi: habr.com
