파이썬 beem과 SDS로 특정 계정이 임대 받은 스팀파워 내역 조회하기

in python •  2 years ago 

특정 계정이 어느 계정에 스팀파워를 임대했는지, 즉 나가는 임대(outgoing delegation) 내역은 파이썬 beem에서 간편하게 확인할 수 있습니다. 아래의 링크입니다.

파이썬 beem에서 특정 계정의 스팀파워 임대 정보 조회하기

반면에 특정 계정이 어느 계정으로부터 얼마의 스팀파워를 임대 받았는지, 즉 들어오는 임대(incoming delegation) 내역은 beem에서 확인하기가 어렵습니다. 가능하긴 하지만 계정 이력(account history)을 조회해서 일일이 확인을 해야 합니다.

SDS API를 이용하면 들어오는 임대 내역을 간편하게 조회할 수 있습니다. 우선 SDS API의 기본 동작에 대한 내용은 이전 포스트를 참고하시기 바랍니다. 아래의 링크입니다.

파이썬과 SDS를 이용한 스팀 정보 조회

들어오는 임대 내역을 조회하기 위한 url 항목은 /delegations_api/getIncomingDelegations/입니다. 예를 들어 @jsup 계정이 임대 받은 내역을 확인하려면 아래와 같이 할 수 있습니다.

import requests

sds_url = 'https://sds1.steemworld.org/delegations_api/getIncomingDelegations/' + steem_id

response = requests.get(sds_url)

print(response.text)

{"code":0,"result":{"cols":{"time":0,"from":1,"to":2,"vests":3},"rows":[[1644649578,"kr-templar","jsup",641540.008757],[1645865067,"ladysong","jsup",1739196.428124],...,[1665399027,"hdc","jsup",1796491.495542]]}}

json 형식으로 받은 응답을 보면 "result" 키(key)에 딕셔너리가 할당되어 있고 "cols"와 "rows"가 있는 것을 볼 수 있습니다. "cols"는 "rows"에 속한 원소들이 어떤 항목들인지를 보여줍니다. "cols"에 속한 딕셔너리의 키를 보면 "time", "from", "to", "vests" 순서로 되어 있음을 볼 수 있습니다. 시간, "rows"에 속한 원소는 이에 대응하여 임대한 계정, 임대 받은 계정, 임대한 스팀파워(단위: vests) 순서로 실제 임대 받은 내역이 리스트(list) 형식으로 포함되어 있음을 볼 수 있습니다.

이제 응답 문자열을 딕셔너리로 바꿔서 내역을 보기 좋게 출력할 수 있습니다. json 모듈을 활용해서 문자열을 딕셔너리로 변환합니다.

import json
from beem import Steem

node_list = ["https://api.steemit.com"]
steem = Steem(node=node_list)

res_dict = json.loads(response.text)

for item in res_dict['result']['rows']:
  delegator = item[1]
  deleg_vests = item[3]
  deleg_sp = steem.vests_to_sp(deleg_vests)
  print("임대 계정:", delegator, "- 스팀파워:", str(round(deleg_sp,3)) + "sp")

임대 계정: kr-templar - 스팀파워: 357.338sp
임대 계정: ladysong - 스팀파워: 968.733sp
...
임대 계정: hdc - 스팀파워: 1000.647sp

VESTS값을 스팀파워로 전환하기 위해 beem 모듈의 Steem 객체에서 제공하는 vests_to_sp() 함수를 이용했습니다.


jsup 업보팅 서비스를 소개합니다.

jsup 업보팅 서비스를 활용한 일종의 오토보팅(auto-voting)

jsblurt 프로젝트 - 블러트 블럭체인 탐색기 (텔레그램 챗봇)

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE BLURT!
Sort Order:  
  ·  2 years ago  ·  

I guess it is the first account ! With steemit