āĻ
āĻ¨ā§āĻā§āĻ˛āĻāĻŋ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§ āĻĒāĻžāĻāĻĨāĻ¨ā§ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻāĻ¨ā§āĻā§āĻ°āĻžāĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻļāĻŋāĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻĒā§āĻ°āĻŦāĻ¨ā§āĻ§ā§āĻ° āĻ¸āĻŋāĻ°āĻŋāĻā§āĻ° āĻāĻāĻŋ āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻ
āĻāĻļāĨ¤ āĻāĻā§āĻ° āĻ˛ā§āĻāĻžāĻā§āĻ˛ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋ
āĻ
āĻ¨ā§āĻā§āĻ˛āĻāĻŋ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§ āĻĒāĻžāĻāĻĨāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻāĻ¨ā§āĻā§āĻ°āĻžāĻā§āĻ āĻĄā§āĻā§āĻ˛āĻĒ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻāĻĒāĻŋāĻāĻāĻā§ āĻā§āĻāĻžāĻŦā§ āĻāĻ˛ āĻāĻ°āĻŦā§āĻ¨ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻ° āĻ§āĻžāĻ°āĻŖāĻž āĻāĻā§, āĻāĻ¸ā§āĻ¨ āĻā§āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻļāĻŋāĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻāĨ¤ āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ API (āĻāĻ¨ā§āĻā§āĻ°āĻžāĻā§āĻ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻāĻĒāĻŋāĻāĻ)āĨ¤ āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ API-āĻāĻ° 8āĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ API āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻā§āĻā§āĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻĻā§āĻ° āĻĄā§āĻāĻž āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ°, āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻŦāĻ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ°ā§āĨ¤
āĻ¨ā§āĻā§ 8 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")
āĻāĻĒāĻ¨āĻŋ āĻ˛āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻāĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
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
āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻ āĻāĻŦāĻ āĻĄāĻŋāĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻ āĻāĻ°ā§āĻ¨
āĻāĻāĻŋ āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻā§āĻļāĻ¨ āĻāĻŦāĻ āĻĄāĻŋāĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻā§āĻļāĻ¨ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻā§āĻĄāĻŧāĻžāĨ¤ āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻ āĻŦāĻā§āĻā§āĻāĻā§ āĻŦāĻžāĻāĻāĻ¯āĻŧāĻžāĻ°ā§ āĻ āĻŦāĻā§āĻā§āĻā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§ āĻāĻŦāĻ āĻĄāĻŋāĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻŦāĻžāĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§ āĻāĻ¸āĻ˛ āĻ āĻŦāĻā§āĻā§āĻā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§āĨ¤ āĻ¨ā§āĻā§āĻ° āĻā§āĻĄ āĻ¨āĻŽā§āĻ¨āĻž āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§ āĻāĻŦāĻ āĻā§āĻā§āĻ¤āĻŋāĻ° āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻ¸āĻā§āĻāĻ¯āĻŧāĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻā§āĻā§āĻ¤āĻŋāĻ° āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻŽā§āĻ˛ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻāĻ°ā§āĨ¤
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 āĻāĻāĻāĻŋ āĻŦāĻžāĻāĻāĻŋāĻ¯āĻŧāĻžāĻ°ā§ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻāĻŋāĻā§ āĻāĻāĻāĻŋ 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) āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻĻā§āĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§:
- āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻ˛āĻžāĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ āĻĨā§āĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻ¯āĻžāĻāĻžāĻ āĻāĻ°ā§āĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻšā§āĻ¯āĻžāĻ (āĻ āĻ°ā§āĻĨāĻžā§, āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻ¯āĻžāĻāĻžāĻāĻāĻ°āĻŖ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧ), āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤
- āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛āĻŋāĻ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻā§āĻā§āĻ¤āĻŋ āĻāĻŋāĻ¨āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨. āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻā§āĻ¤āĻŋ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻā§āĻā§āĻ¤āĻŋ āĻĨā§āĻā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¯āĻžāĻāĻžāĻāĻāĻ°āĻŖ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧāĨ¤ āĻ āĻ°ā§āĻĨāĻžā§, 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
āĻāĻ°ā§ āĻ¤āĻĨā§āĻ¯ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§
āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻāĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻšā§āĻ¯āĻžāĻļāĻ°ā§āĻ āĻāĻŦāĻ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ āĻ āĻ¨ā§āĻā§āĻ˛āĻāĻŋ āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻāĻŋ āĻāĻāĻāĻ¨ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°? āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧā§ āĻ¯ā§āĻ āĻĻāĻŋāĻ¨
āĻ¤āĻ¤ā§āĻ¤ā§āĻŦāĻŦāĻŋāĻĻā§āĻ¯āĻž
āĻāĻ¤ā§āĻ¸: www.habr.com