ప్రోహోస్టర్ > బ్లాగ్ > పరిపాలన > ఒంటాలజీ నెట్వర్క్లో పైథాన్లో స్మార్ట్ ఒప్పందాన్ని ఎలా వ్రాయాలి. పార్ట్ 3: రన్టైమ్ API
ఒంటాలజీ నెట్వర్క్లో పైథాన్లో స్మార్ట్ ఒప్పందాన్ని ఎలా వ్రాయాలి. పార్ట్ 3: రన్టైమ్ API
ఒంటాలజీ బ్లాక్చెయిన్ నెట్వర్క్లో పైథాన్లో స్మార్ట్ కాంట్రాక్టులను రూపొందించడంపై విద్యా కథనాల శ్రేణిలో ఇది 3వ భాగం. మునుపటి వ్యాసాలలో మనకు పరిచయం ఏర్పడింది
ఒంటాలజీ నెట్వర్క్లో పైథాన్ని ఉపయోగించి స్మార్ట్ కాంట్రాక్ట్ను అభివృద్ధి చేస్తున్నప్పుడు తగిన పెర్సిస్టెంట్ స్టోరేజ్ APIని ఎలా కాల్ చేయాలనే ఆలోచన మీకు ఇప్పుడు ఉంది, ఎలా ఉపయోగించాలో నేర్చుకుందాం రన్టైమ్ API (కాంట్రాక్ట్ ఎగ్జిక్యూషన్ API). రన్టైమ్ API 8 సంబంధిత APIలను కలిగి ఉంది, ఇవి కాంట్రాక్ట్ అమలు కోసం సాధారణ ఇంటర్ఫేస్లను అందిస్తాయి మరియు డెవలపర్లు డేటాను తిరిగి పొందడం, మార్చడం మరియు ధృవీకరించడంలో సహాయపడతాయి.
క్రింద 8 API డేటా యొక్క సంక్షిప్త వివరణ ఉంది:
8 API డేటాను ఎలా ఉపయోగించాలో నిశితంగా పరిశీలిద్దాం. దీనికి ముందు, మీరు ఒంటాలజీ స్మార్ట్ కాంట్రాక్ట్ డెవలప్మెంట్ టూల్లో కొత్త ఒప్పందాన్ని సృష్టించవచ్చు SmartX మరియు క్రింది సూచనలను అనుసరించండి.
రన్టైమ్ APIని ఎలా ఉపయోగించాలి
దిగుమతి చేసుకోవడానికి రెండు మార్గాలు ఉన్నాయి రన్టైమ్ API: ontology.interop.System.Runtime и ontology.interop.Ontology.Runtime. ఒంటాలజీ మార్గం కొత్తగా జోడించిన APIలను కలిగి ఉంది. దిగువ పంక్తులు API డేటాను దిగుమతి చేస్తాయి.
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash
APIకి తెలియజేయండి
నోటిఫికేషన్ ఫంక్షన్ నెట్వర్క్ అంతటా ఈవెంట్ను ప్రసారం చేస్తుంది. దిగువ ఉదాహరణలో, నోటిఫై ఫంక్షన్ హెక్స్ స్ట్రింగ్ "హలో వర్డ్"ని తిరిగి అందిస్తుంది మరియు నెట్వర్క్ అంతటా ప్రసారం చేస్తుంది.
from ontology.interop.System.Runtime import Notify
def demo():
Notify("hello world")
మీరు దీన్ని లాగ్లలో చూడవచ్చు:
GetTime API
GetTime ఫంక్షన్ ప్రస్తుత టైమ్స్టాంప్ను అందిస్తుంది, ఇది ఫంక్షన్ని పిలిచే Unix సమయాన్ని అందిస్తుంది. కొలత యూనిట్ రెండవది.
from ontology.interop.System.Runtime import GetTime
def demo():
time=GetTime()
return time # return a uint num
GetCurrentBlockHash API
GetCurrentBlockHash ఫంక్షన్ ప్రస్తుత బ్లాక్ యొక్క హాష్ని అందిస్తుంది.
ఇది సీరియలైజేషన్ మరియు డీరియలైజేషన్ ఫంక్షన్ల జత. సీరియలైజ్ ఫంక్షన్ ఆబ్జెక్ట్ను బైటియర్రే ఆబ్జెక్ట్గా మారుస్తుంది మరియు డీసెరియలైజ్ ఫంక్షన్ బైటీర్రేని ఒరిజినల్ ఆబ్జెక్ట్గా మారుస్తుంది. దిగువ కోడ్ నమూనా ఇన్కమింగ్ పారామితులను మారుస్తుంది మరియు వాటిని కాంట్రాక్ట్ యొక్క నిరంతర నిల్వలో నిల్వ చేస్తుంది. ఇది ఒప్పందం యొక్క నిరంతర నిల్వ నుండి డేటాను కూడా తిరిగి పొందుతుంది మరియు దానిని అసలు వస్తువుగా మారుస్తుంది.
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 మరియు AddressToBase58
ఈ జత చిరునామా అనువాద విధులు. Base58ToAddress ఫంక్షన్ బేస్58 ఎన్కోడ్ చేసిన చిరునామాను బైటియర్రే చిరునామాగా మారుస్తుంది మరియు AddressToBase58 బైటీర్రే చిరునామాను బేస్58 ఎన్కోడ్ చేసిన చిరునామాగా మారుస్తుంది.
CheckWitness(fromAcct) ఫంక్షన్ రెండు కార్యాచరణలను కలిగి ఉంది:
ప్రస్తుత ఫంక్షన్ యొక్క కాలర్ Acct నుండి వచ్చారో లేదో ధృవీకరించండి. అవును అయితే (అంటే, సంతకం ధృవీకరణ ఆమోదించబడింది), ఫంక్షన్ తిరిగి వస్తుంది.
ప్రస్తుత ఫంక్షన్కు కాల్ చేస్తున్న ఆబ్జెక్ట్ ఒప్పందమేనా అని తనిఖీ చేయండి. ఇది ఒప్పందం మరియు ఫంక్షన్ ఒప్పందం నుండి అమలు చేయబడితే, ధృవీకరణ ఆమోదించబడుతుంది. అంటే, fromAcct అనేది GetCallingScriptHash() యొక్క రిటర్న్ విలువ కాదా అని ధృవీకరించండి. GetCallingScriptHash() ఫంక్షన్ ప్రస్తుత స్మార్ట్ ఒప్పందం యొక్క కాంట్రాక్ట్ హాష్ విలువను తీసుకోవచ్చు.
from ontology.interop.System.Runtime import CheckWitness
from ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
res=CheckWitness(addr)
return res
మరింత సమాచారం ఇక్కడ చూడవచ్చు గుతుబ్. తదుపరి వ్యాసంలో మేము పరిచయం చేస్తాము స్థానిక APIఒంటాలజీ స్మార్ట్ కాంట్రాక్టులలో ఆస్తులను ఎలా బదిలీ చేయాలో తెలుసుకోవడానికి.
వ్యాసాన్ని సంపాదకులు అనువదించారు హాష్రేట్&షేర్లు ముఖ్యంగా ఒంటాలజీ రష్యా కోసం.
మీరు డెవలపర్లా? మా సాంకేతిక సంఘంలో చేరండి అసమ్మతి. అలాగే, పరిశీలించండి డెవలపర్ సెంటర్ ఒంటాలజీ, మీరు అక్కడ మరిన్ని సాధనాలు, డాక్యుమెంటేషన్ మరియు మరిన్నింటిని కనుగొనవచ్చు.