اونٹولوجی نیٹ ورک پر ازگر میں سمارٹ کنٹریکٹ کیسے لکھیں۔ حصہ 3: رن ٹائم API

اونٹولوجی نیٹ ورک پر ازگر میں سمارٹ کنٹریکٹ کیسے لکھیں۔ حصہ 3: رن ٹائم API

یہ اونٹولوجی بلاکچین نیٹ ورک پر پائیتھون میں سمارٹ کنٹریکٹس بنانے سے متعلق تعلیمی مضامین کی سیریز کا تیسرا حصہ ہے۔ پچھلے مضامین میں ہم سے واقفیت ہوئی۔

  1. بلاکچین اور بلاک API
  2. اسٹوریج API.

اب جب کہ آپ کو اندازہ ہے کہ اونٹولوجی نیٹ ورک پر پائتھون کا استعمال کرتے ہوئے اسمارٹ کنٹریکٹ تیار کرتے وقت مناسب مستقل اسٹوریج API کو کس طرح کال کرنا ہے، آئیے استعمال کرنے کا طریقہ سیکھتے ہیں۔ رن ٹائم API (کنٹریکٹ ایگزیکیوشن API)۔ Runtime API میں 8 متعلقہ APIs ہیں جو معاہدے پر عمل درآمد کے لیے عام انٹرفیس فراہم کرتے ہیں اور ڈیولپرز کو ڈیٹا کی بازیافت، تبدیلی اور توثیق کرنے میں مدد کرتے ہیں۔

ذیل میں 8 API ڈیٹا کی ایک مختصر تفصیل ہے:

اونٹولوجی نیٹ ورک پر ازگر میں سمارٹ کنٹریکٹ کیسے لکھیں۔ حصہ 3: رن ٹائم 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")

آپ اسے نوشتہ جات میں دیکھ سکتے ہیں:

اونٹولوجی نیٹ ورک پر ازگر میں سمارٹ کنٹریکٹ کیسے لکھیں۔ حصہ 3: رن ٹائم API

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.Ontology.Runtime import GetCurrentBlockHash
def demo():
    block_hash = GetCurrentBlockHash()
    return block_hash

سیریلائز اور ڈی سیریلائز کریں۔

یہ سیریلائزیشن اور ڈیسیریلائزیشن افعال کا ایک جوڑا ہے۔ سیریلائز فنکشن ایک آبجیکٹ کو بائٹ رے آبجیکٹ میں تبدیل کرتا ہے، اور ڈیسیریلائز فنکشن بائٹ رے کو اصل آبجیکٹ میں تبدیل کرتا ہے۔ ذیل میں کوڈ کا نمونہ آنے والے پیرامیٹرز کو تبدیل کرتا ہے اور انہیں معاہدے کے مستقل اسٹوریج میں اسٹور کرتا ہے۔ یہ معاہدے کے مستقل اسٹوریج سے ڈیٹا بھی بازیافت کرتا ہے اور اسے اصل چیز میں تبدیل کرتا ہے۔

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 انکوڈ ایڈریس میں تبدیل کرتا ہے۔

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)

گواہ چیک کریں۔

CheckWitness(fromAcct) فنکشن میں دو فعالیتیں ہیں:

  • تصدیق کریں کہ آیا موجودہ فنکشن کا کالر ایکٹ سے ہے۔ اگر ہاں (یعنی دستخط کی توثیق گزر گئی)، فنکشن واپس آجاتا ہے۔
  • چیک کریں کہ کیا موجودہ فنکشن کو کال کرنے والا شے ایک معاہدہ ہے۔ اگر یہ ایک معاہدہ ہے اور فنکشن کو معاہدے سے انجام دیا جاتا ہے، تو تصدیق منظور ہو جاتی ہے۔ یعنی، تصدیق کریں کہ آیا fromAcct GetCallingScriptHash() کی واپسی کی قیمت ہے۔ 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. اس کے علاوہ، پر ایک نظر ڈالیں ڈویلپر سینٹر اونٹولوجی، آپ کو وہاں مزید ٹولز، دستاویزات اور بہت کچھ مل سکتا ہے۔

ڈویلپرز کے لیے کام کھولیں۔ کام مکمل کریں اور انعام حاصل کریں۔

درخواست دیں طلباء کے لیے آنٹولوجی ٹیلنٹ پروگرام کے لیے

علم

آنٹولوجی ویب سائٹ - GitHub کے - Discord - ٹیلیگرام روسی - ٹویٹر - اٹ

ماخذ: www.habr.com

نیا تبصرہ شامل کریں