рдпреЛ рдУрдиреНрдЯреЛрд▓рдЬреА рдмреНрд▓рдХрдЪреЗрди рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдкрд╛рдЗрдердирдорд╛ рд╕реНрдорд╛рд░реНрдЯ рд╕рдореНрдЭреМрддрд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рд╢реИрдХреНрд╖рд┐рдХ рд▓реЗрдЦрд╣рд░реВрдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛рдХреЛ рддреЗрд╕реНрд░реЛ рднрд╛рдЧ рд╣реЛред рдЕрдШрд┐рд▓реНрд▓реЛ рд▓реЗрдЦрд╣рд░реВрдорд╛ рд╣рд╛рдореАрд▓реЗ рдЪрд┐рдиреНрдпреМрдВ
рдЕрдм рдЬрдм рддрдкрд╛рдИрдВрд╕рдБрдЧ рдУрдиреНрдЯреЛрд▓рдЬреА рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдкрд╛рдЗрдерди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрдорд╛рд░реНрдЯ рд╕рдореНрдЭреМрддрд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрд╛ рдЙрдкрдпреБрдХреНрдд рдкрд░реНрд╕рд┐рд╕реНрдЯреЗрдиреНрдЯ рд╕реНрдЯреЛрд░реЗрдЬ API рд▓рд╛рдИ рдХрд╕рд░реА рдХрд▓ рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рд╡рд┐рдЪрд╛рд░ рдЫ, рдЖрдЙрдиреБрд╣реЛрд╕реН рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╕рд┐рдХреНрди рдЕрдЧрд╛рдбрд┐ рдмрдвреМрдВред рд░рдирдЯрд╛рдЗрдо API (рдЕрдиреБрдмрдВрдз рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди API)ред рд░рдирдЯрд╛рдЗрдо API рд╕рдБрдЧ 8 рд╕рдореНрдмрдиреНрдзрд┐рдд API рд╣рд░реВ рдЫрдиреН рдЬрд╕рд▓реЗ рд╕рдореНрдЭреМрддрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рдЭрд╛ рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ рд░ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдбреЗрдЯрд╛ рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди, рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди рд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрджрдЫред
рддрд▓ 8 API рдбрд╛рдЯрд╛рдХреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рдЫ:
8 API рдбрд╛рдЯрд╛ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдирдЬрд┐рдХрдмрд╛рдЯ рд╣реЗрд░реМрдВред рдпреЛ рднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ, рддрдкрд╛рдИрдВрд▓реЗ Ontology рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдгрдорд╛ рдирдпрд╛рдБ рд╕рдореНрдЭреМрддрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
Runtime API рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ
рдЖрдпрд╛рдд рдЧрд░реНрди рджреБрдИ рддрд░рд┐рдХрд╛рд╣рд░реВ рдЫрдиреН рд░рдирдЯрд╛рдЗрдо 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 рд▓рд╛рдИ рд╕реВрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН
рд╕реВрдЪрдирд╛ рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рд╕рдореНрдкреВрд░реНрдг рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдШрдЯрдирд╛ рдкреНрд░рд╕рд╛рд░рдг рдЧрд░реНрджрдЫред рддрд▓рдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛, рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рд╣реЗрдХреНрд╕ рд╕реНрдЯреНрд░рд┐рдЩ "рд╣реЗрд▓реЛ рд╢рдмреНрдж" рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдиреЗрдЫ рд░ рдпрд╕рд▓рд╛рдИ рдиреЗрдЯрд╡рд░реНрдХрднрд░ рдкреНрд░рд╕рд╛рд░рдг рдЧрд░реНрдиреЗрдЫред
from ontology.interop.System.Runtime import Notify
def demo():
Notify("hello world")
рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рд▓рдЧрд╣рд░реВрдорд╛ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:
GetTime API
GetTime рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рд╣рд╛рд▓рдХреЛ рдЯрд╛рдЗрдорд╕реНрдЯреНрдпрд╛рдореНрдк рдлрд░реНрдХрд╛рдЙрдБрдЫ, рдЬрд╕рд▓реЗ рдпреБрдирд┐рдХреНрд╕ рд╕рдордп рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдЫ рдЬрд╕рдорд╛ рдкреНрд░рдХрд╛рд░реНрдп рдХрд▓ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдорд╛рдкрдирдХреЛ рдПрдХрд╛рдЗ рджреЛрд╕реНрд░реЛ рд╣реЛред
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
рдХреНрд░рдордмрджреНрдз рд░ рдбрд┐рд╕рд┐рд░рд┐рдпрд▓рд╛рдЗрдЬ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдпреЛ рдХреНрд░рдордмрджреНрдзрддрд╛ рд░ 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 (fromActt) рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рджреБрдИ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдЫрдиреН:
- рдпрджрд┐ рд╣рд╛рд▓рдХреЛ рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рдХрд▓рд░ Acct рдмрд╛рдЯ рд╣реЛ рднрдиреЗ рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпрджрд┐ рд╣реЛ (рддреНрдпреЛ рд╣реЛ, рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреНрд░рдорд╛рдгрд┐рдХрд░рдг рдкрд╛рд░рд┐рдд), рдкреНрд░рдХрд╛рд░реНрдп рдлрд░реНрдХрд╛рдЙрдБрдЫред
- рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рд╣рд╛рд▓рдХреЛ рдкреНрд░рдХрд╛рд░реНрдпрд▓рд╛рдИ рдХрд▓ рдЧрд░реНрдиреЗ рд╡рд╕реНрддреБ рдПрдХ рд╕рдореНрдЭреМрддрд╛ рд╣реЛред рдпрджрд┐ рдпреЛ рдПрдХ рд╕рдореНрдЭреМрддрд╛ рд╣реЛ рд░ рдХрд╛рд░реНрдп рд╕рдореНрдЭреМрддрд╛рдмрд╛рдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкрд╛рд░рд┐рдд рд╣реБрдиреНрдЫред рдЕрд░реНрдерд╛рддреН, рдпрджрд┐ 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
рдердк рдЬрд╛рдирдХрд╛рд░реА рдорд╛ рдкрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ
рд▓реЗрдЦ рд╕рдореНрдкрд╛рджрдХрд╣рд░реВрд▓реЗ рдЕрдиреБрд╡рд╛рдж рдЧрд░реЗрдХрд╛ рдерд┐рдП
рд╣реИрд╕рд░реЗрдЯ рд░ рд╕реЗрдпрд░рд╣рд░реВ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА Ontology рд░реВрд╕ рдХреЛ рд▓рд╛рдЧреАред
рддрдкрд╛рдИрдВ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рд╣реБрдиреБрд╣реБрдиреНрдЫ? рд╣рд╛рдореНрд░реЛ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╕рдореБрджрд╛рдпрдорд╛ рд╕рд╛рдореЗрд▓ рд╣реБрдиреБрд╣реЛрд╕реН
рдУрдиреНрдЯреЛрд▓реЛрдЬреА
рд╕реНрд░реЛрдд: www.habr.com