اب جب کہ آپ کو اندازہ ہے کہ اونٹولوجی نیٹ ورک پر پائتھون کا استعمال کرتے ہوئے اسمارٹ کنٹریکٹ تیار کرتے وقت مناسب مستقل اسٹوریج API کو کس طرح کال کرنا ہے، آئیے استعمال کرنے کا طریقہ سیکھتے ہیں۔ رن ٹائم API (کنٹریکٹ ایگزیکیوشن API)۔ Runtime API میں 8 متعلقہ APIs ہیں جو معاہدے پر عمل درآمد کے لیے عام انٹرفیس فراہم کرتے ہیں اور ڈیولپرز کو ڈیٹا کی بازیافت، تبدیلی اور توثیق کرنے میں مدد کرتے ہیں۔
ذیل میں 8 API ڈیٹا کی ایک مختصر تفصیل ہے:
آئیے 8 API ڈیٹا کو استعمال کرنے کے طریقے پر گہری نظر ڈالیں۔ اس سے پہلے، آپ اونٹولوجی سمارٹ کنٹریکٹ ڈویلپمنٹ ٹول میں ایک نیا معاہدہ بنا سکتے ہیں۔ اسمارٹ ایکس اور نیچے دی گئی ہدایات پر عمل کریں۔
رن ٹائم API کا استعمال کیسے کریں۔
درآمد کرنے کے دو طریقے ہیں۔ رن ٹائم API: ontology.interop.System.Runtime и ontology.interop.Ontology.Runtime. آنٹولوجی پاتھ میں نئے شامل کردہ APIs شامل ہیں۔ نیچے کی لائنیں API ڈیٹا درآمد کرتی ہیں۔
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash
API کو مطلع کریں۔
نوٹیفائی فنکشن پورے نیٹ ورک میں ایونٹ کو براڈکاسٹ کرتا ہے۔ نیچے دی گئی مثال میں، Notify فنکشن ہیکس سٹرنگ "ہیلو ورڈ" واپس کرے گا اور اسے پورے نیٹ ورک پر نشر کرے گا۔
from ontology.interop.System.Runtime import Notify
def demo():
Notify("hello world")
آپ اسے نوشتہ جات میں دیکھ سکتے ہیں:
GetTime API
گیٹ ٹائم فنکشن موجودہ ٹائم اسٹیمپ لوٹاتا ہے، جو یونکس کا وہ وقت لوٹاتا ہے جس پر فنکشن بلایا گیا تھا۔ پیمائش کی اکائی دوسری ہے۔
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 فنکشن ایک base58 انکوڈ شدہ ایڈریس کو بائٹ رے ایڈریس میں تبدیل کرتا ہے، اور AddressToBase58 بائٹ رے ایڈریس کو بیس58 انکوڈ ایڈریس میں تبدیل کرتا ہے۔
تصدیق کریں کہ آیا موجودہ فنکشن کا کالر ایکٹ سے ہے۔ اگر ہاں (یعنی دستخط کی توثیق گزر گئی)، فنکشن واپس آجاتا ہے۔
چیک کریں کہ کیا موجودہ فنکشن کو کال کرنے والا شے ایک معاہدہ ہے۔ اگر یہ ایک معاہدہ ہے اور فنکشن کو معاہدے سے انجام دیا جاتا ہے، تو تصدیق منظور ہو جاتی ہے۔ یعنی، تصدیق کریں کہ آیا 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آنٹولوجی سمارٹ کنٹریکٹس میں اثاثوں کی منتقلی کا طریقہ سیکھنے کے لیے۔
مضمون کا ترجمہ ایڈیٹرز نے کیا تھا۔ حشرات اور شیئرز خاص طور پر اونٹولوجی روس کے لیے۔
کیا آپ ایک ڈویلپر ہیں؟ پر ہماری ٹیک کمیونٹی میں شامل ہوں۔ Discord. اس کے علاوہ، پر ایک نظر ڈالیں ڈویلپر سینٹر اونٹولوجی، آپ کو وہاں مزید ٹولز، دستاویزات اور بہت کچھ مل سکتا ہے۔