แแก แแ แแก แแแ แแแแ แแแฌแแแ แแแแแแแแแแแแก แกแแ แแแก แจแแกแแฎแแ Python แญแแแแแแ แแแแขแ แแฅแขแแแแก แจแแฅแแแแก แจแแกแแฎแแ Ontology blockchain แฅแกแแแจแ แญแแแแแแ แแแแขแ แแฅแขแแก แแแแแแแแ แแแแก แแแกแขแ แฃแแแแขแแก แแแแแงแแแแแแ.
แแ แกแขแแขแแแจแ แฉแแแ แแแแแฌแงแแแ แแแชแแแแแก Ontology smart contract API-แกแแแ. Ontology smart contract API แแแงแแคแแแแ 7 แแแแฃแแแ:
- Blockchain & Block API,
- แแแจแแแแแก API,
- แจแแแแฎแแแก API,
- แแจแแแแแฃแ แ API,
- แแแแแแฎแแแ API,
- Execution Engine API แแ
- Static & Dynamic Call API.
Blockchain & Block API แแ แแก แแแขแแแแแแแก แญแแแแแแ แแแแขแ แแฅแขแแก แกแแกแขแแแแก แซแแ แแแแแ แแแฌแแแ. Blockchain API แแฎแแ แก แฃแญแแ แก แแแแแฉแแแแแก แแแแฎแแแแแก แซแแ แแแแ แแแแ แแชแแแแก, แ แแแแ แแชแแ แแแแแแแแแแแ แแแแแแก แกแแแแฆแแแก แแแฆแแแ, แฎแแแ Block API แแฎแแ แก แฃแญแแ แก แซแแ แแแแแ แแแแแแก แแแแฎแแแแแก แแแแ แแชแแแแก, แ แแแแ แแชแแ แขแ แแแแแฅแชแแแแแก แ แแแแแแแแแก แแแแฎแแแแ แแแชแแแฃแ แแแแแแ.
แฒแแแแฌแงแแ!
แแแ แแแ แ แแแจแ, แจแแฅแแแแแ แแฎแแแ แแแแขแ แแฅแขแ
1. แ แแแแ แแแแแแแงแแแแ Blockchain API
แญแแแแแแ แแแแขแ แแฅแขแแก แคแฃแแฅแชแแแแแก แแแฃแแแแ แแแแแแแก แแแฃแแแแแก แแแแแขแฃแ แแ. แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ แจแแแแซแแแแ แจแแแงแแแแแ แจแแกแแแแแแกแ แคแฃแแฅแชแแแแ. แแแแแแแแแ, แจแแแแแแ แแแแชแฎแแแแแ แฌแแ แแแแแแแแแ GetHeight แคแฃแแฅแชแแแก แแแแแแก แแแแแแแแ แ แกแแแแฆแแแก แแแกแแฆแแแแ แแ GetHeader แคแฃแแฅแชแแ แแแแแแก แกแแแแฃแ แแก แแแกแแฆแแแแ.
from ontology.interop.System.Blockchain import GetHeight, GetHeader
แแแแฆแแ แกแแแแฆแแ
GetHeight แแแแแแงแแแแแ แแแแแฉแแแแจแ แแแแ แแแแแแก แแแแแแแแแแ แแแแก แแแแ แแก แแแกแแฆแแแแ, แ แแแแ แช แแก แแแฉแแแแแแแ แฅแแแแแ แแแชแแแฃแ แแแแแแแแจแ. แแแแ แแแแแแแแจแ แฉแแแ แแแแแแขแแแแแ Main แคแฃแแฅแชแแแก แแแฎแแ แฎแแแฃแแแแแกแแแแก, แแแแ แแ แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ แจแแแแซแแแแ แแแแแแขแแ แแแ.
from ontology.interop.System.Runtime import Notify
from ontology.interop.System.Blockchain import GetHeight
def Main(operation):
if operation == 'demo':
return demo()
return False
def demo():
height=GetHeight()
Notify(height) # print height
return height #return height after running the function
GetHeader
GetHeader แแแแแแงแแแแแ แแแแแแก แกแแแแฃแ แแก แแแกแแฆแแแแ, แแแ แแแแขแ แ แแ แแก แแแแแแก แกแแ แแฃแแ แแแแแ แ แแแแแฉแแแแจแ. แแแแแแแแ:
from ontology.interop.System.Runtime import Notify
from ontology.interop.System.Blockchain import GetHeader
def demo():
block_height=10
header=GetHeader(block_height)
Notify(header)
return header
GetTransactionByHash
GetTransactionByHash แแแแแแงแแแแแ แขแ แแแแแฅแชแแแก แแแกแแฆแแแแ แขแ แแแแแฅแชแแแก แฐแแจแแก แกแแจแฃแแแแแแ. แขแ แแแแแฅแชแแแก แฐแแจแ แแแแแแแแแ GetTransactionByHash แ แแแแ แช แแแ แแแแขแ แแแ bytearray แคแแ แแแขแจแ. แแ แคแฃแแฅแชแแแก แแแกแแฆแแแ แแ แแก แขแ แแแแแฅแชแแแก แฐแแจแแก แแแฅแแกแแแขแแแแ แคแแ แแแขแจแ แแแแแฅแชแแแ แขแ แแแแแฅแชแแแก แฐแแจแจแ bytearray แคแแ แแแขแจแ. แแก แแแแจแแแแแแแแแ แแแแแฏแแ. แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ, แแฅแแแ แแแแฆแแแ แจแแชแแแแแก, แ แแแแแแช แแแฃแแแแแแก, แ แแ แแ แแ แกแแแแแก แแแแแ แแ แแแแแแก แฐแแจแแ. แแแแฆแแ แขแ แแแแแฅแชแแแก แฐแแจแ แแแฅแแกแแแขแแแแ แคแแ แแแขแจแ, แ แแแแ แช แแแแแแแแ, แ แแ แแแแแแแงแแแแแ แแแ แแแแขแแก แคแแ แแแขแจแ. แแแแแแแแ แแกแ แแแแแแงแฃแ แแแ:
9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1
แแแ แแแแ, แจแแชแแแแแ แขแ แแแแแฅแชแแแก แฐแแจแ:
c1890c4d730626dfaa9449419d662505eab3bda2e1f01f89463cc1a4a30a279
แแแแแแแแแ แแแก แจแแฃแซแแแแ แจแแแกแ แฃแแแ แแก แแแแแฏแ SmartX-แแก แแแแ แแแฌแแแแแฃแแ Hex Number(little endian)Number แแแแแแ แขแแชแแแก แฎแแแกแแฌแงแแก แแแแแงแแแแแแ.
แจแแแแแ แแแแแแงแแแแแ แจแแแแแ bytearray แคแแ แแแขแจแ:
{0xc1,0x89,0x0c,0x4d,0x73,0x06,0x26,0xdf,0xaa,0x94,0x49,0x41,0x9d,0x66,0x25,0x05,0xea,0xb3,0xbd,0xa2,0xe1,0xf0,0x1f,0x89,0x46,0x3c,0xc1,0xa4,0xa3,0x0a,0x27,0x9f}
แแก แจแแแซแแแแ แแแแแแแแก SmartX-แแก แแแแ แแแฌแแแแแฃแแ String Byte Array แแแแแแ แขแแชแแแก แฎแแแกแแฌแงแแก แแแแแงแแแแแแ. แแแแแแแก, แแแแแแแแแแ แแแฆแแแฃแแ แแแแขแ แแกแแแแก แกแขแ แแแแแ:
xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f
แฅแแแแแ แแแชแแแฃแแแ GetTransactionByHash แคแฃแแฅแชแแแก แแแแแแแแ, แ แแแแแแช แแฆแแแก แขแ แแแแแฅแชแแแก แขแ แแแแแฅแชแแแก แฐแแจแแก แแแแแงแแแแแแ:
from ontology.interop.System.Blockchain import GetTransactionByHash
def demo():
# tx_hash="9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1"
tx_hash=bytearray(b"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f")
tx=GetTransactionByHash(tx_hash)
return tx
แแแแฆแแ แขแ แแแแแฅแชแแแก แกแแแแฆแแ
GetTransactionHeight แแแแแแงแแแแแ แขแ แแแแแฅแชแแแก แกแแแแฆแแแก แแแกแแฆแแแแ แขแ แแแแแฅแชแแแก แฐแแจแแก แกแแจแฃแแแแแแ. แแแแฆแแ แฐแแจแ แแแแแ แแแงแแแแแแ แแแแแแแแแแแ:
from ontology.interop.System.Blockchain import GetTransactionHeight
def demo():
# tx_hash="9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1"
tx_hash=bytearray(b"xc1x89x0cx4dx73x06x26xdfxaax94x49x41x9dx66x25x05xeaxb3xbdxa2xe1xf0x1fx89x46x3cxc1xa4xa3x0ax27x9f")
height=GetTransactionHeight(tx_hash)
return height
แแแแฆแแ แแแแขแ แแฅแขแ
แแแแแแแแแ แแแก แจแแฃแซแแแแ แแแแแแงแแแแ GetContract แคแฃแแฅแชแแ แแแแขแ แแฅแขแแก แแแกแแฆแแแแ แฎแแแจแแแ แฃแแแแแก แฐแแจแแก แแแจแแแแแแ. แแแแขแ แแฅแขแแก แฐแแจแแก แแแแแแ แขแแชแแแก แแ แแชแแกแ แแแแแแ, แ แแช แแแแแ แแแฎแกแแแแแ แขแ แแแแแฅแชแแแก แฐแแจแแก แแแแแแ แขแแชแแแก แแ แแชแแกแ.
from ontology.interop.System.Blockchain import GetContract
def demo():
# contract_hash="d81a75a5ff9b95effa91239ff0bb3232219698fa"
contract_hash=bytearray(b"xfax98x96x21x32x32xbbxf0x9fx23x91xfaxefx95x9bxffxa5x75x1axd8")
contract=GetContract(contract_hash)
return contract
GetBlock
GetBlock แแแแแแงแแแแแ แแแแแแก แแแกแแฆแแแแ. แแแแแ แแขแฃแแ แแแแแแก แแแกแแฆแแแแ แแ แ แแแ แแ แกแแแแแก.
1. แแแแฆแแ แแแแแ แแแแแแก แกแแแแฆแแแแ:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block=GetBlock(1408)
return block
2. แแแแฆแแ แแแแแ แแแแแแก แฐแแจแ:
from ontology.interop.System.Blockchain import GetBlock
def demo():
block_hash=bytearray(b'x16xe0xc5x40x82x79x77x30x44xeax66xc8xc4x5dx17xf7x17x73x92x33x6dx54xe3x48x46x0bxc3x2fxe2x15x03xe4')
block=GetBlock(block_hash)
2. แ แแแแ แแแแแแแงแแแแ Block API
Block API-แจแ แกแแแ แฎแแแแแกแแฌแแแแแ แคแฃแแฅแชแแแ: GetTransactions, GetTransactionCountแแ GetTransactionByIndex. แฉแแแ แแแ แกแแแแแแแ แแแแแแกแฎแแ แแแ.
GetTransactionCount
GetTransactionCount แแแแแแงแแแแแ แแแชแแแฃแแ แแแแแแกแแแแก แขแ แแแแแฅแชแแแก แ แแแแแแแแแก แแแกแแฆแแแแ.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactionCount
def demo():
block=GetBlock(1408)
count=GetTransactionCount(block)
return count
GetTransactions
แแแแแแแแแ แแแก แจแแฃแซแแแแ แแแแแแงแแแแ GetTransactions แคแฃแแฅแชแแ แแแชแแแฃแ แแแแแจแ แงแแแแ แขแ แแแแแฅแชแแแก แแแกแแฆแแแแ.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactions
def demo():
block=GetBlock(1408)
txs=GetTransactions(block)
return txs
GetTransactionByIndex
GetTransactionByIndex แแแแแแงแแแแแ แแแชแแแฃแ แแแแแจแ แแแแแ แแขแฃแแ แขแ แแแแแฅแชแแแก แแแกแแฆแแแแ.
from ontology.interop.System.Blockchain import GetBlock
from ontology.interop.System.Block import GetTransactionByIndex
def demo():
block=GetBlock(1408)
tx=GetTransactionByIndex(block,0) # index starts from 0.
return tx
แกแ แฃแแ แกแแฎแแแแซแฆแแแแแแ แจแแแแซแแแแ แแฎแแแแ แฉแแแแก แกแแแขแแ
Afterword
Blockchain & Block API แแ แแก แญแแแแแแ แแแแขแ แแฅแขแแแแก แจแแฃแชแแแแแ แแแฌแแแ, แ แแแแแ แแฅแแแ แจแแแแซแแแแ แแแแแแงแแแแ แแกแแแ แแแแแฉแแแแแก แแแแแชแแแแแแก แแแแฎแแแแแกแ แแ แกแแแ แข แแแแขแ แแฅแขแแแจแ แแแแแชแแแแแแก แแแแแแแแแกแแแแก. แจแแแแแ แกแขแแขแแแแจแ แแแแแแฎแแแแแ, แแฃ แ แแแแ แแแแแแแงแแแแ แแแแแ แฉแแแ API-แแแ แแ แแแแแแแ, แ แแแแ แฃแ แแแแ แแฅแแแแแแแ แแกแแแ แแแขแแแแแแแก แแแแแฉแแแแแแ.
แกแขแแขแแ แแแ แแแแแก Hashrate&Shares-แแก แ แแแแฅแขแแ แแแแ แกแแแชแแแแฃแ แแ OntologyRussia-แกแแแแก.
แขแแ แแแ
แแแแแแแแแ แ แฎแแ ? แจแแฃแแ แแแแ แฉแแแแก แขแแฅแแแแฃแ แกแแแแแแแแแแแก
Ontology
แแแขแแแแแแแก แกแแแขแ GitHub /แฃแแแแฎแแแแแ - แแแแแจแ
แแแแแแกแฃแ แ /แ แฃแกแฃแแ Twitter /Reddit
แฌแงแแ แ: www.habr.com