ඔන්ටොලොජි බ්ලොක්චේන් ජාලයේ පයිතන් හි ස්මාර්ට් කොන්ත්රාත්තු නිර්මාණය කිරීම පිළිබඳ අධ්යාපනික ලිපි මාලාවේ 3 වන කොටසයි මේ. කලින් ලිපි වලින් අපි දැන හඳුනා ගත්තා
ඔන්ටොලොජි ජාලයේ පයිතන් භාවිතයෙන් ස්මාර්ට් කොන්ත්රාත්තුවක් සංවර්ධනය කිරීමේදී සුදුසු ස්ථායී ගබඩා API අමතන්නේ කෙසේදැයි දැන් ඔබට අදහසක් ඇති බැවින්, අපි භාවිතා කරන ආකාරය ඉගෙන ගැනීමට ඉදිරියට යමු ධාවන කාල API (කොන්ත්රාත් ක්රියාත්මක කිරීමේ API). කොන්ත්රාත්තු ක්රියාත්මක කිරීම සඳහා පොදු අතුරුමුහුණත් සපයන සහ දත්ත ලබා ගැනීමට, පරිවර්තනය කිරීමට සහ වලංගු කිරීමට සංවර්ධකයන්ට උපකාර වන සම්බන්ධිත API 8ක් Runtime API සතුව ඇත.
පහත දැක්වෙන්නේ 8 API දත්ත පිළිබඳ කෙටි විස්තරයකි:
8 API දත්ත භාවිතා කරන්නේ කෙසේදැයි අපි සමීපව බලමු. මෙයට පෙර, ඔබට ඔන්ටොලොජි ස්මාර්ට් කොන්ත්රාත් සංවර්ධන මෙවලම තුළ නව කොන්ත්රාත්තුවක් සෑදිය හැක
Runtime API භාවිතා කරන්නේ කෙසේද
ආනයනය කිරීමට ක්රම දෙකක් තිබේ Runtime API: ontology.interop.System.Runtime и ontology.interop.Ontology.Runtime. Ontology මාර්ගයෙහි අලුතින් එකතු කරන ලද API අඩංගු වේ. පහත රේඛා 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
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.Ontology.Runtime import GetCurrentBlockHash
def demo():
block_hash = GetCurrentBlockHash()
return block_hash
Serialize සහ Deserialize
මෙය අනුක්රමික සහ deserialization ශ්රිත යුගලයකි. Serialize ශ්රිතය මඟින් වස්තුවක් bytearray වස්තුවක් බවට පත් කරන අතර Deserialize ශ්රිතය bytearray එකක් මුල් වස්තුව බවට පරිවර්තනය කරයි. පහත කේත නියැදිය එන පරාමිති පරිවර්තනය කර කොන්ත්රාත්තුවේ ස්ථීර ගබඩාවේ ගබඩා කරයි. එය කොන්ත්රාත්තුවේ ස්ථීර ගබඩාවෙන් දත්ත ලබාගෙන එය මුල් වස්තුව බවට පරිවර්තනය කරයි.
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 කේතනය කරන ලද ලිපිනයක් bytearray ලිපිනයක් බවට පරිවර්තනය කරන අතර AddressToBase58 bytearray ලිපිනයක් base58 කේතනය කළ ලිපිනයක් බවට පරිවර්තනය කරයි.
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) ශ්රිතයට ක්රියාකාරීත්ව දෙකක් ඇත:
- වත්මන් ශ්රිතයේ ඇමතුම්කරු Acct වෙතින් දැයි තහවුරු කරන්න. ඔව් නම් (එනම්, අත්සන සත්යාපනය සම්මත කර ඇත), ශ්රිතය නැවත පැමිණේ.
- වත්මන් ශ්රිතය අමතන වස්තුව ගිවිසුමක් දැයි පරීක්ෂා කරන්න. එය කොන්ත්රාත්තුවක් නම් සහ කොන්ත්රාත්තුවෙන් කාර්යය ක්රියාත්මක වන්නේ නම්, සත්යාපනය සම්මත වේ. එනම්, GetCallingScriptHash() හි ප්රතිලාභ අගය fromAct දැයි තහවුරු කරන්න. 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
වැඩි විස්තර සොයා ගත හැක
ලිපිය සංස්කාරකවරුන් විසින් පරිවර්තනය කරන ලදී
Hashrate&Shares විශේෂයෙන්ම ඔන්ටොලොජි රුසියාව සඳහා.
ඔබ සංවර්ධකයෙක්ද? අපගේ තාක්ෂණික ප්රජාවට සම්බන්ධ වන්න
ඕටොවිද්යාව
මූලාශ්රය: www.habr.com