[암호화폐] 스팀엔진 토큰 거래 내역 조회하기[2]
지난 번에 "스팀엔진 토큰 거래 내역 조회하기"라는 글을 올렸었는데요. 오늘 몇 가지 더 확인하면서 발견한 사항들 정리합니다.
일단 스팀엔진에서 특정 토큰의 거래 내역을 보는 방법입니다. 스팀엔진은 블럭 당 트랜젝션이 하나 씩 기록되어 있습니다.
여러가지 거래 내용 중 "action"에 있는 "buy", "sell" 부분만 보면 됩니다. 그외에도 "action"에는 "transfer", "cancel" 등이 있습니다.
block_info['transactions']에 내용이 없는 경우가 있습니다. 내용을 보니 action에 "checkPendingUnstakes"라고 기록이 되어 있습니다.
def get_trasnaction_history(targetToken) :
rets = api.get_latest_block_info()
last_block = rets["blockNumber"]
cnt = 1
for block in range (last_block, 0, -1) :
block_info = api.get_block_info(block)
# 'checkPendingUnstakes',
if (len(block_info['transactions']) == 0 ) :
continue
if (block_info['transactions'][0]['action'] == 'buy' or block_info['transactions'][0]['action'] == 'sell' ) :
payload = json.loads(block_info['transactions'][0]['payload'])
if (block_info['transactions'][0]['contract'] == 'steempegged' ) :
pass
else :
if (payload['symbol'] == targetToken ) :
cnt += 1
print(block, block_info['transactions'][0]['action'], block_info['transactions'][0]['payload'])
steem엔진에 기록된 거래 내역을 보다가 이상한 부분이 발견되었는데요. 관련없는 거래 내용이 섞여있습니다. 이건 steem 엔진 팀에서 검토를 해야할 것 같습니다.
SSC 토큰 거래 내역에 TRADE 토큰 포함
SSC 토큰 거래 내역에 TPU 토큰 포함
b# 107467는 더 큰 문제가 있는데요.
events 항목의 구성을 보면 첫 줄은 원 주문 그리고 그 다음 줄은 두 줄씩 쌍으로 토큰 거래 내역과 이에 상응하는 Steemp 거래 내역이 기록됩니다. 그런데 이 블럭은 그러한 규칙을 위반한 상태로 기록되어 있습니다. 이렇게 되면 거래내역을 보여 주는 경우에 잘못된 정보를 줄 수 밖에 없습니다.
스팀엔진에 기록된 트랜잭션들을 보니 나의 거래가 잘 정산이 되고 있는지 의심이 듭니다.
jcar토큰 보팅합니다.