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

рдЖрдЗрдП рдЗрди 8 рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк
рдУрдиреНрдЯреЛрд▓реЙрдЬреА рд╕реНрдорд╛рд░реНрдЯрдПрдХреНрд╕ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рдореЗрдВ рдПрдХ рдирдпрд╛ рдЕрдиреБрдмрдВрдз рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд░рдирдЯрд╛рдЗрдо рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ
Runtime API рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ
: ontology.interop.System.Runtime рдФрд░
ontology.interop.Ontology.Runtime ред рдСрдиреНрдХреЛрд▓реЙрдЬреА рдкрде рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдПрдкреАрдЖрдИ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдиреАрдЪреЗ рджреА рдЧрдИ рд▓рд╛рдЗрдиреЗрдВ рдПрдкреАрдЖрдИ рдбреЗрдЯрд╛ рдЖрдпрд╛рдд рдХрд░рддреА рд╣реИрдВред
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
рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдФрд░ рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ
рдпреЗ рдХреНрд░рдордмрджреНрдзрддрд╛ рдФрд░ рдбреАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рд╣реИрдВред рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдлрд╝рдВрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рдмреАрдЯрдЕрд░реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдбреЗрд╕рд┐рд░рд┐рдЕрд▓рд╛рдЗрдЬрд╝ рдлрд╝рдВрдХреНрд╢рди рдореВрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрд╛рдпрд░реЗрдпрд░ рдХреЛ рдХрдирд╡рд░реНрдЯ рдХрд░рддрд╛ рд╣реИред рдирд┐рдореНрди рдХреЛрдб рдирдореВрдирд╛ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрдмрдВрдз рдХреЗ рд╕реНрдерд╛рдпреА рднрдВрдбрд╛рд░рдг рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЕрдиреБрдмрдВрдз рдХреЗ рд╕реНрдерд╛рдпреА рднрдВрдбрд╛рд░рдг рд╕реЗ рдбреЗрдЯрд╛ рднреА рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдореВрд▓ рд╡рд╕реНрддреБ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред
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 рдЖрдзрд╛рд░ рдХреЗ рдПрдирдХреЛрдбреЗрдб рдкрддреЗ рдХреЗ рд▓рд┐рдП рдкрддреЗ рдХреЛ рдмрд╛рдпрдЯрд┐рдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред
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) рдлрд╝рдВрдХреНрд╢рди рдХреЗ рджреЛ рдХрд╛рд░реНрдп рд╣реИрдВ:
- рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЪрд╛рд▓реВ рд╕реЗ рдХрд╛рд░реНрдп рд╡рд░реНрддрдорд╛рди рдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рд╣рд╛рдБ (рдЬреЛ рдХрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдмреАрдд рдЪреБрдХрд╛ рд╣реИ), рддреЛ рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред
- рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд░реНрддрдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдПрдХ рдЕрдиреБрдмрдВрдз рд╣реИред рдпрджрд┐ рдпрд╣ рдПрдХ рдЕрдиреБрдмрдВрдз рд╣реИ рдФрд░ рдЕрдиреБрдмрдВрдз рд╕реЗ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рддреНрдпрд╛рдкрди рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╣реИ рдХрд┐, 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
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА
рдЧреБрдердм рдкрд░ рдорд┐рд▓
рд╕рдХрддреА рд╣реИ ред рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо
рдореВрд▓ рдПрдкреАрдЖрдИ рдХреЛ рдкрд░рд┐рдЪрдп рджреЗрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ рдУрдиреНрдЯреЛрд▓реЙрдЬреА рд╡рд┐рдЬреНрдЮрд╛рди рдЕрдиреБрдмрдВрдзреЛрдВ рдореЗрдВ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИрд╢рдЯреНрд░реЗрдЯ рдФрд░ рд╢реЗрдпрд░реНрд╕ рдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдУрдиреНрдЯреЛрд▓реЙрдЬреА рд░рд╢рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ред
рдХреНрдпрд╛ рдЖрдк рдПрдХ рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ?
Discord рдкрд░ рд╣рдорд╛рд░реЗ рддрдХрдиреАрдХреА рд╕рдореБрджрд╛рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдзрд┐рдХ рдЙрдкрдХрд░рдг, рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рдУрдиреНрдЯреЛрд▓реЙрдЬреА
рдбреЗрд╡рд▓рдкрд░ рдХреЗрдВрджреНрд░ рджреЗрдЦреЗрдВ ред
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдЦреЛрд▓реЗрдВред рдХрд╛рд░реНрдп рдмрдВрдж рдХрд░реЗрдВ - рдПрдХ рдкреБрд░рд╕реНрдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рдУрдиреНрдЯреЛрд▓реЛрдЬреА рдЫрд╛рддреНрд░ рдкреНрд░рддрд┐рднрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ
рд▓рд┐рдП рдЖрд╡реЗрджрди рдХрд░реЗрдВрдЖрдВрдЯрд▓рдЬреА
рдУрдиреНрдЯреЛрд▓реЙрдЬреА рд╡реЗрдмрд╕рд╛рдЗрдЯ -
рдЬреАрдерд╣рдм -
рдбрд┐рд╕реЙрд░реНрдбрд░ -
рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд░реВрд╕реА -
рдЯреНрд╡рд┐рдЯрд░ -
рд░реЗрдбрд┐рдЯ