
рдкрд░рд┐рдЪрдп
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдУрдВрдЯреЛрд▓реЙрдЬреА рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдкреЗрд╢ рдХрд┐рдпрд╛ рд╣реИ
рднрд╛рдЧ 1: рдмреНрд▓реЙрдХрдЪреЗрди рдФрд░ рдмреНрд▓реЙрдХ рдПрдкреАрдЖрдИ рдФрд░
рднрд╛рдЧ 2: рднрдВрдбрд╛рд░рдг рдПрдкреАрдЖрдИрдЕрдм рдЬрдм рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЕрдВрджрд╛рдЬрд╛ рд╣реИ рдХрд┐ рдСрдиреНрдЯреЛрд▓реЙрдЬреА рдкрд░ рдкрд╛рдЗрдерди рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рд▓рдЧрд╛рддрд╛рд░ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдПрдкреАрдЖрдИ рдХреЛ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рдЪрд▓рд┐рдП
рд░рдирдЯрд╛рдЗрдо рдПрдкреАрдЖрдИ (рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдПрдХреНрдЬрд╝реАрдХреНрдпреВрд╢рди рдПрдкреАрдЖрдИ) рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рд░рдирдЯрд╛рдЗрдо рдПрдкреАрдЖрдИ рдореЗрдВ 8 рд╕рдВрдмрдВрдзрд┐рдд рдПрдкреАрдЖрдИ рд╣реИрдВ рдЬреЛ рдЕрдиреБрдмрдВрдз рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЗрдВрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ, рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдФрд░ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдЗрди 8 рдПрдкреАрдЖрдИ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдЖрдЗрдП рдЗрди 8 рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк
рдУрдиреНрдЯреЛрдЧреЛрд▓реЙрдЬреА рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг
рд╕реНрдорд╛рд░реНрдЯрдПрдХреНрд╕ рдореЗрдВ рдПрдХ рдирдпрд╛ рдЕрдиреБрдмрдВрдз рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдореИрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░реВрдВрдЧрд╛ред
рд░рдирдЯрд╛рдЗрдо рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ
Runtime API,
ontology.interop.System.Runtime рдФрд░
ontology.interop.Ontology.Runtime рдХреЛ рдЗрдореНрдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ 2 рд░рд╛рд╕реНрддреЗ рд╣реИрдВред рдУрдиреНрдЯреЛрд▓реЛрдЬреА рдкрде рдореЗрдВ рдирдП рдЬреЛрдбрд╝реЗ рдЧрдП рдПрдкреАрдЖрдИ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЗрди API рдХреЛ рдЖрдпрд╛рдд рдХрд░рддреА рд╣реИрдВред
from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash
рдПрдкреАрдЖрдИ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ
рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ рдлрд╝рдВрдХреНрд╢рди рдкреВрд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ,
рдиреЛрдЯрд┐рдлрд╝ рдлрд╝рдВрдХреНрд╢рди рдПрдХ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рд╣реЗрдХреНрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рдПрдЧрд╛ рдФрд░ рдкреВрд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ред
from ontology.interop.System.Runtime import Notify def demo(): Notify("hello world")
рдЖрдк рдЗрд╕реЗ
рд▓реЙрдЧ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

рдЧреЗрдЯрдЯрд╛рдЗрдо рдПрдкреАрдЖрдИ
рдЧреЗрдЯрдЯрд╛рдЗрдо рдлрд╝рдВрдХреНрд╢рди рд╡рд░реНрддрдорд╛рди рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬреЛ рдпреВрдирд┐рдХреНрд╕ рд╕рдордп рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрдХрд╛рдИ рджреВрд╕рд░реА рд╣реИред
from ontology.interop.System.Runtime import GetTime def demo(): time=GetTime() return time
GetCurrentBlockHash API
GetCurrentBlockHash рдлрд╝рдВрдХреНрд╢рди рд╡рд░реНрддрдорд╛рди рдмреНрд▓реЙрдХ рдХрд╛ рд╣реИрд╢ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
from ontology.interop.Ontology.Runtime import GetCurrentBlockHash def demo(): block_hash = GetCurrentBlockHash() return block_hash
рд╕реАрд░рд┐рдпрд▓ рдФрд░ рд╡рд░реНрдгрди рдХрд░реЗрдВ
рдпрд╣ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди рдФрд░ рдбрд┐рд╕рд┐рдПрд░рд▓рд╛рдЗрдЬреЗрд╢рди рдлрдВрдХреНрд╢рдиреНрд╕ рдХреА рдЬреЛрдбрд╝реА рд╣реИред
Serialize рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрд╛рдЗрдЯ рд╕рд░рдгреА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ
рдХреНрд░рдорд╛рдВрдХрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░
Deserialize рдлрд╝рдВрдХреНрд╢рди рдореВрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрд╛рдЗрдЯ рд╕рд░рдгреА рдХреЛ deserializesред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдирдореВрдирд╛ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдХреНрд░рдорд╛рдВрдХрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрдмрдВрдз рдХреЗ рд▓рдЧрд╛рддрд╛рд░ рднрдВрдбрд╛рд░рдг рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЕрдиреБрдмрдВрдз рдХреЗ рд▓рдЧрд╛рддрд╛рд░ рднрдВрдбрд╛рд░рдг рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рднреА рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИред
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 рдПрдиреНрдХреЛрдбреЗрдб рдкрддреЗ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред
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
CheckWitness (fromAcct) рдлрд╝рдВрдХреНрд╢рди рдХреА рджреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдПрдБ рд╣реИрдВ:
- рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╡рд░реНрддрдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓рд░ fromAcct рд╣реИред рдпрджрд┐ рд╣рд╛рдБ (рдпрд╛рдиреА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕рддреНрдпрд╛рдкрди рдкрд╛рд╕ рд╣реЛ рдЧрдпрд╛), рддреЛ рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред
- рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╡рд░реНрддрдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓рд░ рдПрдХ рдЕрдиреБрдмрдВрдз рд╣реИред рдпрджрд┐ рдпрд╣ рдПрдХ рдЕрдиреБрдмрдВрдз рд╣реИ, рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрдиреБрдмрдВрдз рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рддреНрдпрд╛рдкрди рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ fromAcct GetCallingScriptHash () рдХрд╛ рд░рд┐рдЯрд░реНрди рдорд╛рди рд╣реИред GetCallingScriptHash () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡рд░реНрддрдорд╛рди рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХрд╛ рдЕрдиреБрдмрдВрдз рд╣реИрд╢ рдорд╛рди рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред
GetCallingScriptHash () H
рдУрдиреНрдЯреЛрд▓реЙрдЬреА рдкрд╛рдЗрдерди рд╕рдВрдХрд▓рдХ
from ontology.interop.System.Runtime import CheckWitness from ontology.interop.Ontology.Runtime import Base58ToAddress def demo(): addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z") res=CheckWitness(addr) return res
рдкреВрд░реНрдг рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓
рдпрд╣рд╛рдБ рдЦреЛрдЬреЗрдВред
рд╕рд╛рд░рд╛рдВрд╢
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдУрдВрдЯреЛрд▓реЙрдЬреА рдмреНрд▓реЙрдХрдЪреИрди рдХрд╛
рд░рдирдЯрд╛рдЗрдо рдПрдкреАрдЖрдИ рдкреЗрд╢ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдУрдиреНрдЯреЛрд▓реЙрдЬреА рдкрд╛рдЗрдерди рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдореЗрдВ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП
рдореВрд▓ рдПрдкреАрдЖрдИ рдкрд░ рдЧреМрд░ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ рдУрдиреНрдЯреЛрд▓реЛрдЬреА рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдореЗрдВ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдпрд╣ рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИ рдЬрд┐рд╕реЗ рдкрд╣рд▓реЗ рдУрдиреНрдЯреЛрд▓реЛрдЬреА рдореАрдбрд┐рдпрдо рдмреНрд▓реЙрдЧ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдХреНрдпрд╛ рдЖрдк рдПрдХ рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ? рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╣рдорд╛рд░реЗ рддрдХрдиреАрдХреА рд╕рдореБрджрд╛рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЧрдП рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░
рдбреЗрд╡рд▓рдкрд░ рдХреЗрдВрджреНрд░ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ, рд╡рд╣рд╛рдВ рдЖрдк рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓, рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдСрдиреНрдХреЛрд▓реЙрдЬреА рдХреЛ рдХрд╣реАрдВ рдФрд░ рдЦреЛрдЬреЗрдВ
рдУрдВрдЯреЛрд▓реЙрдЬреА рд╡реЗрдмрд╕рд╛рдЗрдЯрдЧрд┐рддреВрдм /
рдХрд▓рд╣рдЯреЗрд▓реАрдЧреНрд░рд╛рдо
рдЕрдВрдЧреНрд░реЗрдЬреА /
рд░реВрд╕реАрдЯреНрд╡рд┐рдЯрд░ /
рд░реЗрдбрд┐рдЯ