เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชกเซเชตเชฒเชชเชฎเซเชจเซเช เชเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชจเซเชเซเชฒเซเชเซ เชฌเซเชฒเซเชเชเซเชจ เชจเซเชเชตเชฐเซเช เชชเชฐ เชชเชพเชฏเชฅเซเชจ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชฌเชจเชพเชตเชตเชพ เชชเชฐเชจเชพ เชเซเชฏเซเชเซเชฐเชฟเชฏเชฒเซเชธเชจเซ เชถเซเชฐเซเชฃเซเชจเซ เช เชชเชนเซเชฒเซ เชญเชพเช เชเซ.
เช เชฒเซเชเชฎเชพเช, เช เชฎเซ เชเชจเซเชเซเชฒเซเชเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช API เชธเชพเชฅเซ เช เชฎเชพเชฐเซ เชเชณเชเชพเชฃ เชถเชฐเซ เชเชฐเซเชถเซเช. เชเชจเซเชเซเชฒเซเชเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช API 7 เชฎเซเชกเซเชฏเซเชฒเชฎเชพเช เชตเชฟเชญเชพเชเชฟเชค เชฅเชฏเซเชฒ เชเซ:
- เชฌเซเชฒเซเชเชเซเชจ เช เชจเซ เชฌเซเชฒเซเช API,
- เชฐเชจเชเชพเชเชฎ API,
- เชธเซเชเซเชฐเซเช API,
- เชฎเซเชณ API,
- API เช เชชเชเซเชฐเซเชก เชเชฐเซ,
- เชเชเซเชเซเชเซเชฏเซเชถเชจ เชเชจเซเชเชฟเชจ API เช เชจเซ
- เชธเซเชเซเชเชฟเช เช เชจเซ เชกเชพเชฏเชจเซเชฎเชฟเช เชเซเชฒ API.
เชฌเซเชฒเซเชเชเซเชจ เช เชจเซ เชฌเซเชฒเซเช API เช เชเชจเซเชเซเชฒเซเชเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชธเชฟเชธเซเชเชฎเชจเซ เชฎเซเชเซเชฏ เชญเชพเช เชเซ. เชฌเซเชฒเซเชเชเซเชจ API เชฎเซเชณเชญเซเชค เชฌเซเชฒเซเชเชเซเชจ เชเซเชตเซเชฐเซ เชเชชเชฐเซเชถเชจเซเชธเชจเซ เชธเชชเซเชฐเซเช เชเชฐเซ เชเซ, เชเซเชฎ เชเซ เชตเชฐเซเชคเชฎเชพเชจ เชฌเซเชฒเซเชเชจเซ เชเชเชเชพเช เชฎเซเชณเชตเชตเซ, เชเซเชฏเชพเชฐเซ เชฌเซเชฒเซเช API เชฎเซเชณเชญเซเชค เชฌเซเชฒเซเช เชเซเชตเซเชฐเซ เชเชพเชฎเชเซเชฐเซเชจเซ เชธเชชเซเชฐเซเช เชเชฐเซ เชเซ, เชเซเชฎ เชเซ เชเชชเซเชฒ เชฌเซเชฒเซเช เชฎเชพเชเซ เชตเซเชฏเชตเชนเชพเชฐเซเชจเซ เชธเชเชเซเชฏเชพเชจเซ เชเซเชตเซเชฐเซ เชเชฐเชตเซ.
เชเชพเชฒเซ, เชถเชฐเซ เชเชฐเซเช!
เชชเซเชฐเชฅเชฎ, เชฎเชพเช เชเช เชจเชตเซ เชเชฐเชพเชฐ เชฌเชจเชพเชตเซ
1. Blockchain API เชจเซ เชเชชเชฏเซเช เชเซเชตเซ เชฐเซเชคเซ เชเชฐเชตเซ
เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชซเชเชเซเชถเชจเซเชธเชจเซ เชฒเชฟเชเชเซเชธ เชชเชพเชฏเชฅเซเชจ เชฒเชฟเชเชเซเชธ เชเซเชตเซ เช เชเซ. เชคเชฎเซ เชเชฐเซเชฐ เชฎเซเชเชฌ เช เชจเซเชฐเซเชช เชเชพเชฐเซเชฏเซ เชฆเชพเชเชฒ เชเชฐเซ เชถเชเซ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชจเซเชเซเชจเซเช เชจเชฟเชตเซเชฆเชจ เชตเชฐเซเชคเชฎเชพเชจ เชฌเซเชฒเซเชเชจเซ เชเชเชเชพเช เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ GetHeight เชซเชเชเซเชถเชจ เช เชจเซ เชฌเซเชฒเซเชเชจเซเช เชนเซเชกเชฐ เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ GetHeader เชซเชเชเซเชถเชจ เชฐเชเซ เชเชฐเซ เชเซ.
from ontology.interop.System.Blockchain import GetHeight, GetHeader
GetHeight
เชจเซเชเซเชจเชพ เชเชฆเชพเชนเชฐเชฃเชฎเชพเช เชฌเชคเชพเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ, เชฌเซเชฒเซเชเชเซเชจเชฎเชพเช เชเซเชฒเซเชฒเซ เชฌเซเชฒเซเช เชธเชฟเชเซเชตเชจเซเชธ เชจเชเชฌเชฐ เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ GetHeight เชจเซ เชเชชเชฏเซเช เชฅเชพเชฏ เชเซ. เชเซเชฒเซเชฒเชพ เชเชฆเชพเชนเชฐเชฃเชฎเชพเช, เช เชฎเซ เชธเซเชตเชฟเชงเชพ เชฎเชพเชเซ เชฎเซเชเซเชฏ เชเชพเชฐเซเชฏเชจเซ เชเซเชกเซ เชฆเชเชถเซเช, เชชเชฐเชเชคเซ เชเซ เชเชฐเซเชฐเซ เชนเซเชฏ เชคเซ เชคเชฎเซ เชคเซเชจเซ เชเชฎเซเชฐเซ เชถเชเซ เชเซ.
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
เชเซเชเชนเซเชกเชฐเชจเซ เชเชชเชฏเซเช เชฌเซเชฒเซเช เชนเซเชกเชฐ เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ, เชชเซเชฐเชพเชฎเซเชเชฐ เช เชฌเซเชฒเซเชเชเซเชจเชฎเชพเช เชฌเซเชฒเซเชเชจเซ เชธเซเชฐเซเชฏเชฒ เชจเชเชฌเชฐ เชเซ. เชเชฆเชพเชนเชฐเชฃ:
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 เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชชเชฐเชฟเชฎเชพเชฃเซ เชคเชฐเซเชเซ. เช เชเชพเชฐเซเชฏเชจเซ เชเชพเชตเซ เช เชเซ เชเซ เชนเซเชเซเชธ เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจ เชนเซเชถเชจเซ เชฌเชพเชฏเชเซเชฐเซ เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจ เชนเซเชถเชฎเชพเช เชเชจเซเชตเชฐเซเช เชเชฐเชตเซเช. เช เชเช เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชชเชเชฒเซเช เชเซ. เชจเชนเชฟเชเชคเชฐ, เชคเชฎเชจเซ เชเช เชญเซเชฒ เชฎเชณเชถเซ เชเซ เชธเซเชเชตเซ เชเซ เชเซ เชคเซ เชฌเซเชฒเซเช เชนเซเชถ เชธเชพเชฅเซ เชเซเช เชฌเซเชฒเซเช เชจเชฅเซ. เชเชพเชฒเซ เชฌเชพเชฏเชเซเช เชฐเซ เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชเชจเซเชตเชฐเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชนเซเชเซเชธ เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจ เชนเซเชถเชจเซ เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ เชฒเชเช. เชเชฆเชพเชนเชฐเชฃ เชเชจเชพ เชเซเชตเซเช เชฒเชพเชเซ เชเซ:
9f270aa3a4c13c46891ff0e1a2bdb3ea0525669d414994aadf2606734d0c89c1
เชชเซเชฐเชฅเชฎ, เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจ เชนเซเชถเชจเซ เชฐเชฟเชตเชฐเซเชธ เชเชฐเซ:
c1890c4d730626dfaa9449419d662505eab3bda2e1f01f89463cc1a4a30a279
เชกเซเชตเชฒเชชเชฐเซเชธ SmartX เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชฆเชพเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฒ เชนเซเชเซเชธ เชจเชเชฌเชฐ (เชฒเชฟเชเชฒ เชเชจเซเชกเชฟเชฏเชจ) เชจเชเชฌเชฐ เชเชจเซเชตเชฐเซเชเชจ เชเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เช เชชเชเชฒเซเช เชชเซเชฐเซเชฃ เชเชฐเซ เชถเชเซ เชเซ.
เชชเชเซ เชชเชฐเชฟเชฃเชพเชฎเชจเซ เชฌเชพเชฏเชเซเชฐเซ เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชเชจเซเชตเชฐเซเช เชเชฐเซ:
{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 เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชพ เชชเชพเชกเชตเชพเชฎเชพเช เชเชตเซเชฒ เชธเซเชเซเชฐเชฟเชเช เชฌเชพเชเช เชเชฐเซ เชเชจเซเชตเชฐเซเชเชจ เชเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ. เชเซเชฒเซเชฒเซ, เชชเชฐเชฟเชฃเชพเชฎเซ เชฌเชพเชฏเชเซเชฐเซเชจเซ เชธเชฎเชพเชจ เชธเซเชเซเชฐเชฟเชเชเชฎเชพเช เชเชจเซเชตเชฐเซเช เชเชฐเซ:
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
เชเซเชเชฌเซเชฒเซเช
เชเซเชเชฌเซเชฒเซเชเชจเซ เชเชชเชฏเซเช เชฌเซเชฒเซเช เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ. เชเซเชเซเชเชธ เชฌเซเชฒเซเช เชฎเซเชณเชตเชตเชพเชจเซ เชฌเซ เชฐเซเชค เชเซ.
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. เชฌเซเชฒเซเช API เชจเซ เชเชชเชฏเซเช เชเซเชตเซ เชฐเซเชคเซ เชเชฐเชตเซ
เชฌเซเชฒเซเช API เชฎเชพเช เชคเซเชฐเชฃ เชเชชเชฒเชฌเซเชง เชเชพเชฐเซเชฏเซ เชเซ: เชตเซเชฏเชตเชนเชพเชฐเซ เชฎเซเชณเชตเซ, เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจเชเชพเชเชจเซเช เชฎเซเชณเชตเซเช เชจเซ GetTransactionByIndex. เช เชฎเซ เชคเซเชฎเชจเซ เชเช เชชเชเซ เชเช เชคเซเชกเซ เชจเชพเชเซเชถเซเช.
เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจเชเชพเชเชจเซเช เชฎเซเชณเชตเซ
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 เชซเชเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ.
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
เชธเชเชชเซเชฐเซเชฃ เชฎเชพเชฐเซเชเชฆเชฐเซเชถเชฟเชเชพ เช
เชฎเชพเชฐเชพ เชชเชฐ เชฎเชณเซ เชถเชเซ เชเซ
เชเชเซเชเชพเชฐเชฃ
เชฌเซเชฒเซเชเชเซเชจ เช เชจเซ เชฌเซเชฒเซเช API เช เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชจเซ เช เชจเชฟเชตเชพเชฐเซเชฏ เชญเชพเช เชเซ เชเชพเชฐเชฃ เชเซ เชคเชฎเซ เชคเซเชจเซ เชเชชเชฏเซเช เชฌเซเชฒเซเชเชเซเชจ เชกเซเชเชพเชจเซ เชตเชฟเชจเชเชคเซ เชเชฐเชตเชพ เช เชจเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชฎเชพเช เชกเซเชเชพเชจเซ เชฌเซเชฒเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฐเซ เชถเชเซ เชเซ. เชจเซเชเซเชจเชพ เชฒเซเชเซเชฎเชพเช, เช เชฎเซ เชฌเชพเชเซเชจเชพ API เชจเซ เชเชชเชฏเซเช เชเซเชตเซ เชฐเซเชคเซ เชเชฐเชตเซ เช เชจเซ เชคเซเช เชเชจเซเชเซเชฒเซเชเซ เชฌเซเชฒเซเชเชเซเชจ เชธเชพเชฅเซ เชเซเชตเซ เชฐเซเชคเซ เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชเซ เชคเซ เชตเชฟเชถเซ เชเชฐเซเชเชพ เชเชฐเซเชถเซเช.
เชฒเซเชเชจเซ เช เชจเซเชตเชพเชฆ เชนเชถเชฐเชคเซ เชเชจเซเชก เชถเซเชฐเซเชธเชจเชพ เชธเชเชชเชพเชฆเชเซ เชฆเซเชตเชพเชฐเชพ เชเชพเชธ เชเชฐเซเชจเซ เชเชจเซเชเซเชฒเซเชเซ เชฐเชถเชฟเชฏเชพ เชฎเชพเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ.
เชฐเชกเชตเซเช
เชถเซเช เชคเชฎเซ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพ เชเซ? เชชเชฐ เช
เชฎเชพเชฐเชพ เชเซเช เชธเชฎเซเชฆเชพเชฏเชฎเชพเช เชเซเชกเชพเช
เชเชจเซเชเซเชฒเซเชเซ
เชเชจเซเชเซเชฒเซเชเซ เชตเซเชฌเชธเชพเชเช GitHub /เชตเชฟเชฐเชพเชฎ - Telegram
เช เชเชเซเชฐเซเชเซ /เชฐเชถเชฟเชฏเชจ Twitter /Reddit
เชธเซเชฐเซเชธ: www.habr.com