แžšแž”แŸ€แž”แžŸแžšแžŸแŸแžšแž€แžทแž…แŸ’แž…แžŸแž“แŸ’แž™แžถแž†แŸ’แž›แžถแžแžœแŸƒแž“แŸ…แž€แŸ’แž“แžปแž„ Python แž“แŸ…แž›แžพแž”แžŽแŸ’แžแžถแž‰ Ontology แŸ” แž•แŸ’แž“แŸ‚แž€แž‘แžธ 3แŸ– Runtime API

แžšแž”แŸ€แž”แžŸแžšแžŸแŸแžšแž€แžทแž…แŸ’แž…แžŸแž“แŸ’แž™แžถแž†แŸ’แž›แžถแžแžœแŸƒแž“แŸ…แž€แŸ’แž“แžปแž„ Python แž“แŸ…แž›แžพแž”แžŽแŸ’แžแžถแž‰ Ontology แŸ” แž•แŸ’แž“แŸ‚แž€แž‘แžธ 3แŸ– Runtime API

แž“แŸแŸ‡แž‚แžบแž‡แžถแž•แŸ’แž“แŸ‚แž€แž‘แžธ 3 แž“แŸ…แž€แŸ’แž“แžปแž„แžŸแŸŠแŸแžšแžธแž“แŸƒแžขแžแŸ’แžแž”แž‘แžขแž”แŸ‹แžšแŸ†แžŸแŸ’แžแžธแž–แžธแž€แžถแžšแž”แž„แŸ’แž€แžพแžแž€แžทแž…แŸ’แž…แžŸแž“แŸ’แž™แžถแž†แŸ’แž›แžถแžแžœแŸƒแž“แŸ…แž€แŸ’แž“แžปแž„ Python แž“แŸ…แž›แžพแž”แžŽแŸ’แžแžถแž‰ Ontology blockchain แŸ” แž“แŸ…แž€แŸ’แž“แžปแž„แžขแžแŸ’แžแž”แž‘แž˜แžปแž“แž™แžพแž„แž”แžถแž“แžŸแŸ’แž‚แžถแž›แŸ‹

  1. Blockchain & Block API
  2. API แž•แŸ’แž‘แžปแž€.

แžฅแžกแžผแžœแž“แŸแŸ‡ แžขแŸ’แž“แž€แž˜แžถแž“แž‚แŸ†แž“แžทแžแžขแŸ†แž–แžธแžšแž”แŸ€แž”แž แŸ… API แž•แŸ’แž‘แžปแž€แž‡แžถแž”แŸ‹แž›แžถแž”แŸ‹แžŠแŸ‚แž›แžŸแž˜แžŸแŸ’แžšแž” แž“แŸ…แž–แŸแž›แž”แž„แŸ’แž€แžพแžแž€แžทแž…แŸ’แž…แžŸแž“แŸ’แž™แžถแž†แŸ’แž›แžถแžแžœแŸƒแžŠแŸ„แž™แž”แŸ’แžšแžพ Python แž“แŸ…แž›แžพแž”แžŽแŸ’แžแžถแž‰ Ontology แžŸแžผแž˜แž”แž“แŸ’แžแž‘แŸ…แžšแŸ€แž“แž–แžธแžšแž”แŸ€แž”แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ Runtime API (Contract Execution API)แŸ” Runtime API แž˜แžถแž“ APIs แž–แžถแž€แŸ‹แž–แŸแž“แŸ’แž’แž…แŸ†แž“แžฝแž“ 8 แžŠแŸ‚แž›แž•แŸ’แžแž›แŸ‹แž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹แž‘แžผแž‘แŸ…แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžทแž…แŸ’แž…แžŸแž“แŸ’แž™แžถ แž“แžทแž„แž‡แžฝแž™แžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž‘แžถแž‰แž™แž€ แž”แŸ†แž”แŸ’แž›แŸ‚แž„ แž“แžทแž„แž’แŸ’แžœแžพแžฑแŸ’แž™แž‘แžทแž“แŸ’แž“แž“แŸแž™แž˜แžถแž“แžŸแžปแž–แž›แž—แžถแž–แŸ”

แžแžถแž„แž€แŸ’แžšแŸ„แž˜แž“แŸแŸ‡แž‚แžบแž‡แžถแž€แžถแžšแž–แžทแž–แžŽแŸŒแž“แžถแžŸแž„แŸ’แžแŸแž”แž“แŸƒแž‘แžทแž“แŸ’แž“แž“แŸแž™ API 8แŸ–

แžšแž”แŸ€แž”แžŸแžšแžŸแŸแžšแž€แžทแž…แŸ’แž…แžŸแž“แŸ’แž™แžถแž†แŸ’แž›แžถแžแžœแŸƒแž“แŸ…แž€แŸ’แž“แžปแž„ Python แž“แŸ…แž›แžพแž”แžŽแŸ’แžแžถแž‰ Ontology แŸ” แž•แŸ’แž“แŸ‚แž€แž‘แžธ 3แŸ– Runtime API

แžŸแžผแž˜แž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžฑแŸ’แž™แž€แžถแž“แŸ‹แžแŸ‚แž…แŸ’แž”แžถแžŸแŸ‹แžขแŸ†แž–แžธแžšแž”แŸ€แž”แž”แŸ’แžšแžพแž‘แžทแž“แŸ’แž“แž“แŸแž™ API 8 แŸ” แž˜แžปแž“แž“แŸแŸ‡ แžขแŸ’แž“แž€แžขแžถแž…แž”แž„แŸ’แž€แžพแžแž€แžทแž…แŸ’แž…แžŸแž“แŸ’แž™แžถแžแŸ’แž˜แžธแž“แŸ…แž€แŸ’แž“แžปแž„แžงแž”แž€แžšแžŽแŸแžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž€แžทแž…แŸ’แž…แžŸแž“แŸ’แž™แžถแž†แŸ’แž›แžถแžแžœแŸƒ Ontology แž€แŸ’แžšแžปแž˜แž แŸŠแžปแž“ SmartX แž แžพแž™แž’แŸ’แžœแžพแžแžถแž˜แž€แžถแžšแžŽแŸ‚แž“แžถแŸ†แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸ”

แžšแž”แŸ€แž”แž”แŸ’แžšแžพ Runtime API

แž˜แžถแž“แžœแžทแž’แžธแž–แžธแžšแž™แŸ‰แžถแž„แž€แŸ’แž“แžปแž„แž€แžถแžšแž“แžถแŸ†แž…แžผแž› Runtime APIแŸ– ontology.interop.System.Runtime ะธ ontology.interop.Ontology.Runtime. แž•แŸ’แž›แžผแžœ Ontology แž˜แžถแž“ 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")

แžขแŸ’แž“แž€แžขแžถแž…แžƒแžพแž‰แžœแžถแž“แŸ…แž€แŸ’แž“แžปแž„แž€แŸ†แžŽแžแŸ‹แž แŸแžแžปแŸ–

แžšแž”แŸ€แž”แžŸแžšแžŸแŸแžšแž€แžทแž…แŸ’แž…แžŸแž“แŸ’แž™แžถแž†แŸ’แž›แžถแžแžœแŸƒแž“แŸ…แž€แŸ’แž“แžปแž„ Python แž“แŸ…แž›แžพแž”แžŽแŸ’แžแžถแž‰ Ontology แŸ” แž•แŸ’แž“แŸ‚แž€แž‘แžธ 3แŸ– Runtime API

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

แž“แŸแŸ‡โ€‹แž‚แžบโ€‹แž‡แžถโ€‹แž‚แžผโ€‹แž“แŸƒโ€‹แžขแž“แžปแž‚แž˜แž“แŸโ€‹แžŸแŸ€แžšแŸ€แž›โ€‹แž“แžทแž„โ€‹แž€แžถแžšโ€‹แž”แŸ†แž›แŸ‚แž„โ€‹แžŸแŸ€แžšแŸ€แž›แŸ” แžขแž“แžปแž‚แž˜แž“แŸ 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แŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแž”แžถแž‘ / แž…แžถแžŸ (แž“แŸ„แŸ‡แž‚แžบแž€แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แž แžแŸ’แžแž›แŸแžแžถแž”แžถแž“แž†แŸ’แž›แž„แž€แžถแžแŸ‹) แž˜แžปแžแž„แžถแžšแžแŸ’แžšแžกแž”แŸ‹แž˜แž€แžœแžทแž‰แŸ”
  • แž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แžแžถแžแžพแžœแžแŸ’แžแžปแžŠแŸ‚แž›แž แŸ…แž˜แžปแžแž„แžถแžšแž”แž…แŸ’แž…แžปแž”แŸ’แž”แž“แŸ’แž“แž‚แžบแž‡แžถแž€แžทแž…แŸ’แž…แžŸแž“แŸ’แž™แžถแŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแžœแžถแž‡แžถแž€แžทแž…แŸ’แž…แžŸแž“แŸ’แž™แžถ แž แžพแž™แž˜แžปแžแž„แžถแžšแžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž…แŸแž‰แž–แžธแž€แžทแž…แŸ’แž…แžŸแž“แŸ’แž™แžถแž“แŸ„แŸ‡ แž€แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แžแŸ’แžšแžผแžœแž”แžถแž“แž†แŸ’แž›แž„แž€แžถแžแŸ‹แŸ” แž“แŸ„แŸ‡แž‚แžบแž‡แžถ, แž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แž”แŸ’แžšแžŸแžทแž“แž”แžพแž–แžธAcct แž‚แžบแž‡แžถแžแž˜แŸ’แž›แŸƒแžแŸ’แžšแžกแž”แŸ‹แž˜แž€แžœแžทแž‰แž“แŸƒ 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

แž–แŸแžแŸŒแž˜แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แžขแžถแž…แžšแž€แž”แžถแž“แž“แŸ… แž แŸ’แž‚แžผแž’แžผแž”. แž“แŸ…แž€แŸ’แž“แžปแž„แžขแžแŸ’แžแž”แž‘แž”แž“แŸ’แž‘แžถแž”แŸ‹แž™แžพแž„แž“แžนแž„แžŽแŸ‚แž“แžถแŸ† API แž€แŸ†แžŽแžพแžแŸ”แžŠแžพแž˜แŸ’แž”แžธแžšแŸ€แž“แž–แžธแžšแž”แŸ€แž”แž•แŸ’แž‘แŸแžšแž‘แŸ’แžšแž–แŸ’แž™แžŸแž˜แŸ’แž”แžแŸ’แžแžทแž“แŸ…แž€แŸ’แž“แžปแž„แž€แžทแž…แŸ’แž…แžŸแž“แŸ’แž™แžถแž†แŸ’แž›แžถแžแžœแŸƒ Ontology แŸ”

แžขแžแŸ’แžแž”แž‘แž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž€แž”แŸ’แžšแŸ‚แžŠแŸ„แž™แžขแŸ’แž“แž€แž€แŸ‚แžŸแž˜แŸ’แžšแžฝแž› Hashrate & Shares แž‡แžถแž–แžทแžŸแŸแžŸแžŸแž˜แŸ’แžšแžถแž”แŸ‹ OntologyRussia แŸ”

แžแžพแžขแŸ’แž“แž€แž‡แžถแžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž˜แŸ‚แž“แž‘แŸ? แž…แžผแž›แžšแžฝแž˜แž‡แžถแž˜แžฝแž™แžŸแž แž‚แž˜แž“แŸแž”แž…แŸ’แž…แŸแž€แžœแžทแž‘แŸ’แž™แžถแžšแž”แžŸแŸ‹แž™แžพแž„แž“แŸ… แžœแžทแžœแžถแž‘. แž•แž„แžŠแŸ‚แžšแžŸแžผแž˜แž€แŸ’แžšแžกแŸแž€แž˜แžพแž› แž˜แž‡แŸ’แžˆแž˜แžŽแŸ’แžŒแž›แžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸ Ontology แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžงแž”แž€แžšแžŽแŸ แžฏแž€แžŸแžถแžš แž“แžทแž„แž…แŸ’แžšแžพแž“แž‘แŸ€แžแŸ”

แž”แžพแž€แž—แžถแžšแž€แžทแž…แŸ’แž…แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแŸ” แž”แžทแž‘แž€แžทแž…แŸ’แž…แž€แžถแžš - แž‘แž‘แžฝแž›แž”แžถแž“แžšแž„แŸ’แžœแžถแž“แŸ‹แŸ”

แžขแž“แžปแžœแžแŸ’แž แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‘แŸแž–แž€แŸ„แžŸแž›แŸ’แž™ Ontology แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŸแžทแžŸแŸ’แžŸ

Ontology

แž‚แŸแž แž‘แŸ†แž–แŸแžš Ontology - GitHub - แžœแžทแžœแžถแž‘ - Telegram แžšแžปแžŸแŸ’แžŸแŸŠแžธ - Twitter - Reddit

แž”แŸ’แžšแž—แž–: www.habr.com

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹