
Ez a harmadik része annak a sorozatnak, amely oktatási cikkeket tartalmaz a smart contractok létrehozásáról Pythonban az Ontology blockchain hálózaton. Az előző cikkekben megismerkedtünk
- .
Most, hogy van egy elképzelése arról, hogyan lehet a megfelelő API-t hívni a tartós tároláshoz az Ontology hálózatán történő smart contract fejlesztés során, nézzük meg, hogyan használhatjuk Runtime API (Szerződés Végrehajtási API). A Runtime API 8 kapcsolódó API-t tartalmaz, amelyek általános interfészeket nyújtanak a szerződés végrehajtásához és segítenek a fejlesztőknek adatokat szerezni, átalakítani és ellenőrizni.
Íme egy rövid összefoglaló a 8 API-ról:

Nézzük meg részletesebben, hogyan használhatjuk a 8 API-t. Előtte létrehozhat egy új szerződést az Ontology smart contract fejlesztői eszközében, és kövesse az alábbi utasításokat.
Hogyan használjuk a Runtime API-t
Két módja van a Runtime API importálásának: ontology.interop.System.Runtime és ontology.interop.Ontology.Runtime. Az Ontology útvonal tartalmazza az újonnan hozzáadott API-kat. Az alábbi sorok importálják ezeket az API-kat.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHashNotify API
A Notify funkció eseményt közvetít az egész hálózaton. Az alábbi példában a Notify funkció hex-ot ad vissza az "hello world" szöveggel és eljuttatja azt az egész hálózaton.
from ontology.interop.System.Runtime import Notify
def demo():
Notify("hello world")Ezt láthatja a naplóban:

GetTime API
A GetTime funkció a hívás idején aktuális Unix-időbélyeget ad vissza. Az egység— másodperc.
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # a uint szám visszaadásaGetCurrentBlockHash API
A GetCurrentBlockHash funkció a jelenlegi blokk hash-ét adja vissza.
from ontology.interop.Ontology.Runtime import GetCurrentBlockHash
def demo():
block_hash = GetCurrentBlockHash()
return block_hashSerialize és Deserialize
Ezek a pár funkció a sorozat és desorozás számára. A Serialize funkció egy objektumot bytearray-ra alakít, míg a Deserialize funkció a bytearray-t az eredeti objektummá alakítja. Az alábbi kódminta átalakítja a bemeneti paramétereket, és azokat a szerződés tartós tárolójában menti. Ez a funkció emellett kinyeri az adatokat a szerződés tartós tárolójából és visszaalakítja azokat az eredeti objektummá.
ontológia.interop.System.Runtime importálása GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
ontológia.interop.System.Storage importálása Put, Get, GetContext
def Main(művelet, args):
ha a művelet == 'serialize_to_bytearray':
data = args[0]
return serialize_to_bytearray(data)
ha a művelet == '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 és AddressToBase58
Ez a két függvény címtípus átalakítására szolgál. A Base58ToAddress függvény a base58 kódolt címet átalakítja bytearray formájú címmé, míg az AddressToBase58 függvény a bytearray formájú címet átalakítja base58 kódolt címmé.
ontológia.interop.Ontology.Runtime importálása Base58ToAddress, AddressToBase58
def demo():
base58_addr="AV1GLfVzw28vtK3d1kVGxv5xuWU59P6Sgn"
addr=Base58ToAddress(base58_addr)
Log(addr)
base58_addr=AddressToBase58(addr)
Log(base58_addr)CheckWitness
A CheckWitness(fromAcct) függvénynek két funkciója van:
- Ellenőrzi, hogy a jelenlegi funkciót hívó objektum fromAcct-e. Ha igen (tehát a aláírás ellenőrizve van), a függvény visszatér.
- Ellenőrzi, hogy a jelenlegi funkciót hívó objektum egy szerződés-e. Ha ez egy szerződés, és a függvényt szerződésből hívják, akkor az ellenőrzés teljesül. Azaz, ellenőrzi, hogy a fromAcct egyenlő-e a GetCallingScriptHash() visszatérítési értékével. A GetCallingScriptHash() függvény az aktuális okos szerződés hash értékét kaphatja meg.
GetCallingScriptHash():
További információk
ontológia.interop.System.Runtime importálása CheckWitness
ontológia.interop.Ontology.Runtime importálása Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return resTovábbi információk találhatók . A következő cikkben bemutatjuk Native API, hogy elsajátítsuk, hogyan lehet eszközöket átadni az Ontology okos szerződésein belül.
A cikket a szerkesztőség fordította le kifejezetten az OntologyRussia számára.
Fejlesztő vagy? Csatlakozz a technikai közösségünkhöz a . Ezen kívül nézd meg a Ontology, ahol több eszközt, dokumentációt és sok mást találhatsz.
Zárd le a feladatot — szerezz jutalmat.
az Ontology tehetségprogramjára diákok számára
Ontology
— — — — —
Forrás: habr.com
