Kā uzrakstÄ«t viedo lÄ«gumu Python ontoloÄ£ijas tÄ«klā. 3. daļa: izpildlaika API

Kā uzrakstÄ«t viedo lÄ«gumu Python ontoloÄ£ijas tÄ«klā. 3. daļa: izpildlaika API

Å Ä« 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

  1. Blockchain & Block API
  2. Krātuves API.

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:

Kā uzrakstÄ«t viedo lÄ«gumu Python ontoloÄ£ijas tÄ«klā. 3. daļa: izpildlaika API

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:

Kā uzrakstÄ«t viedo lÄ«gumu Python ontoloÄ£ijas tÄ«klā. 3. daļa: izpildlaika API

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.

from ontology.interop.Ontology.Runtime import GetCurrentBlockHash
def demo():
    block_hash = GetCurrentBlockHash()
    return block_hash

Serializēt un deserializēt

Å 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.

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)

Pārbaudiet liecinieku

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.

GetCallingScriptHash()):

Vairāk par Guthub

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.

Atvērtie uzdevumi izstrādātājiem. Pabeidziet uzdevumu un saņemiet atlīdzību.

Piesakies ontoloģijas talantu programmai studentiem

Ontoloģiju

Ontoloģijas vietne Sākot no GitHub Sākot no Neatbilstība Sākot no Telegramma krievu valodā Sākot no Twitter Sākot no Reddit

Avots: www.habr.com

Pievieno komentāru