Kuidas kirjutada nutilepingut Pythonis Ontology vÔrgus. Osa 3: Runtime API

Kuidas kirjutada nutilepingut Pythonis Ontology vÔrgus. Osa 3: Runtime API

See on kolmas osa Ôpetuste seeriast, mis kÀsitleb nutilepingute loomist Pythonis blockchain vÔrgus Ontology. Eelmistel artiklitel tutvusime

  1. Blockchain & Block API
  2. Storage API.

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:

Kuidas kirjutada nutilepingut Pythonis Ontology vÔrgus. Osa 3: Runtime API

Vaatame lÀhemalt, kuidas neid 8 API-d kasutada. Enne seda vÔite luua uue lepingu Ontology nutilepingute arendustööriistas Adobe Photoshop 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, GetCurrentBlockHash

Notify 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:

Kuidas kirjutada nutilepingut Pythonis Ontology vÔrgus. Osa 3: Runtime API

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 num

GetCurrentBlockHash API

GetCurrentBlockHash funktsioon tagastab praeguse ploki hash'i.

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

Serialize 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 data

Base58ToAddress 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 Guthub

ontoloogia.interop.System.Runtime import CheckWitness
ontoloogia.interop.Ontology.Runtime import Base58ToAddress
def demo():
    addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
    res=CheckWitness(addr)
    return res

Rohkem teavet leiate Guthub. JÀrgmisest artiklist tutvustame Native API, et Ôppida, kuidas varasid Ontology nutitelefonidele edastada.

Artikkel on tÔlgitud toimetuse poolt Hashrate&Shares spetsiaalselt OntologyRussia jaoks.

Oled sa arendaja? Liitu meie tehnilise kogukonnaga Discord. Samuti vaata Arendajate keskus Ontology, kust leiate rohkem tööriistu, dokumentatsiooni ja palju muud.

Ava arendajate jaoks. Kinnita ĂŒlesanne — teenige tasu.

Kandideeri Ontology talentide programmi jaoks ĂŒliĂ”pilastele

Ontology

Ontology veebisait — GitHub — Discord — Telegramm Vene — Twitteris — Reddit

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster