
Šī ir 3. daļa no pamācību sērijas par viedo līgumu izveidi Python valodā Ontology blokķēdes tīklā. Iepriekšējos rakstos mēs uzzinājām par
- .
Tagad, kad jums ir priekšstats par to, kā izsaukt atbilstošo API pastāvīgai glabāšanai, izstrādājot viedlīgumu ar Python Ontology tīklā, pāriesim pie tā lietošanas apguves. Izpildlaika API (Līguma izpildes API). Izpildes laika API ir astoņas saistītas API, kas nodrošina kopīgas saskarnes līgumu izpildei un palīdz izstrādātājiem izgūt, pārveidot un validēt datus.
Zemāk ir sniegts īss šo 8 API apraksts:

Aplūkosim tuvāk, kā izmantot šīs 8 API. Pirms sākam, varat izveidot jaunu līgumu Ontology viedlīgumu izstrādes rīkā. un izpildiet tālāk sniegtos norādījumus.
Kā lietot izpildlaika API
Ir divi importēšanas veidi Izpildes laika API: ontology.interop.System.Runtime и ontoloģija.interop.Ontoloģija.Izpildes laiksOntoloģijas ceļā ir nesen pievienotas API. Šajās rindās tiek importēti API dati.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHashPaziņojumu API
Funkcija Notify pārraida notikumu visā tīklā. Tālāk redzamajā piemērā funkcija Notify atgriezīs heksadecimālo virkni "sveiks 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 laika zīmogu, kas ir Unix laiks, kurā funkcija tika izsaukta. Mērvienība ir sekundes.
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # return a uint numGetCurrentBlockHash API
Funkcija GetCurrentBlockHash atgriež pašreizējā bloka jaucējkodu.
from ontology.interop.Ontology.Runtime import GetCurrentBlockHash
def demo():
block_hash = GetCurrentBlockHash()
return block_hashSerializēt un deserializēt
Šis ir serializācijas un deserializācijas funkciju pāris. Funkcija Serialize konvertē objektu par bytearray, un funkcija Deserialize konvertē bytearray atpakaļ par tā sākotnējo objektu. Zemāk redzamais koda paraugs konvertē ienākošos parametrus un saglabā tos līguma pastāvīgajā atmiņā. Tā arī izgūst datus no līguma pastāvīgās atmiņas un konvertē tos atpakaļ par tā sākotnējo objektu.
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 dataBase58ToAddress un AddressToBase58
Šis adrešu konvertēšanas funkciju pāris. Base58ToAddress konvertē base58 kodētu adresi par bytearray adresi, un AddressToBase58 konvertē bytearray adresi par base58 kodētu adresi.
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)CheckWitness
Funkcijai CheckWitness(fromAcct) ir divas iespējas:
- Pārbaudiet, vai pašreizējās funkcijas izsaucējs ir fromAcct. Ja tā (t. i., paraksta pārbaude ir veiksmīga), funkcija atgriež vērtību.
- 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 iekšienes, tad verifikācija ir pabeigta. Tas ir, pārbaudiet, vai fromAcct ir GetCallingScriptHash() atgrieztā vērtība. Funkcija GetCallingScriptHash() var izmantot pašreizējā viedlīguma līguma jaucējvērtību.
GetCallingScriptHash():
Lasīt vairāk vietnē
from ontology.interop.System.Runtime import CheckWitness
from ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return resVairāk informācijas var atrast vietnē Nākamajā rakstā mēs iepazīstināsim Vietējā APIlai uzzinātu, kā pārskaitīt aktīvus Ontology viedlīgumos.
Rakstu tulkoja redaktori speciāli OntologyRussia.
Vai jūs esat izstrādātājs? Pievienojieties mūsu tehnoloģiju kopienai vietnē . Apskatiet arī Ontoloģija, tur var atrast vairāk rīku, dokumentāciju un daudz ko citu.
Pabeidziet uzdevumu un saņemiet atlīdzību.
ontoloģijas talantu programmai studentiem
Ontoloģiju
Sākot no Sākot no Sākot no Sākot no Sākot no
Avots: www.habr.com
