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

in NOTICE & AutoVoting2 years ago (edited)

특정 계정이 어느 계정에 스팀파워를 임대했는지, 즉 나가는 임대(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() 함수를 이용했습니다.


@joviansummer의 스팀 프로젝트

스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다.
(https://steemitwallet.com/~witnesses)

jswit 증인 노드 프로젝트를 시작합니다.

jsup 업보팅(upvoting) 서비스 소개

jsup 수혜자 지정 기능 추가

jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다.

jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기

STEEM.NFT - 디지털 아트 보존 프로젝트

Posted through the AVLE Dapp (https://avle.io)

Sort:  

Upvoted! Thank you for supporting witness @jswit.

Coin Marketplace

STEEM 0.17
TRX 0.24
JST 0.034
BTC 95500.34
ETH 2808.64
SBD 0.66