파이썬 beem을 이용해서 현재 스팀파워(SP) 확인하기

파이썬 beem에서 계정의 현재 스팀파워를 조회하는 방법입니다. Account 객체를 이용해서 계정에 대한 정보를 가져와 json()함수를 통해 계정 정보를 딕셔너리(dict) 형식으로 얻을 수 있습니다. 아래의 코드는 @joviansummer 계정의 정보를 가져오는 예시입니다.

from beem import Steem
from beem.account import Account

node_list = ["https://api.steemit.com"]

steem = Steem(node=node_list)
account = Account('joviansummer', blockchain_instance=steem)

acc_json_data = account.json()

json() 함수를 이용해서 계정 정보를 딕셔너리 형식으로 변수 acc_json_data에 할당했습니다. 이제 여기에서 필요한 값들을 가져와서 스팀 파워를 파악합니다.

스팀파워는 VEST라는 단위로 조회되며, 조회한 결과를 스팀파워로 변환해서 출력해 주어야 합니다. acc_json_data에 저장된 딕셔너리(dict)에서 소유하거나 임대하거나 임대받은 VEST는 아래의 키(key)를 이용해 찾을 수 있습니다.

vesting_shares: 소유하고 있는 스팀파워(단위: VEST)
delegated_vesting_shares: 임대한 스팀파워(단위: VEST)
received_vesting_shares: 임대 받은 스팀파워(단위: VEST)

vesting_shares = acc_json_data['vesting_shares']['amount']
delegated_shares = acc_json_data['delegated_vesting_shares']['amount']
received_shares = acc_json_data['received_vesting_shares']['amount']

위의 코드에서 가져온 값들의 형식은 문자열(string)입니다. 그러므로, 각 값들을 부동소수점(float)으로 변환해서 계산하여 현재 스팀파워를 VEST 단위로 얻을 수 있습니다. 계산 방식은 아래와 같습니다.

현재 가용한 스팀파워 = 소유한 SP - 임대한 SP + 임대 받은 SP

VEST값을 아래와 같이 계산해서 가용한 스팀파워(단위:VEST)를 변수 current_shares에 할당합니다.

current_shares = float(vesting_shares) - float(delegated_shares) + float(received_shares)

이제 current_shares에 저장된 값을 스팀파워로 변환해야 합니다. Steem 클래스의 vests_to_sp() 함수를 사용하는데, 입력하는 값은 VEST가 아니라 이를 100만으로 나눈 값인 MV입니다(1MV = 1000000VESTS). 이 값을 계산해서 출력해 주면 됩니다.

current_sp = steem.vests_to_sp(current_shares/1000000)
print(current_sp, "SP")

예전에 포스팅했던 steem-python을 이용한 스팀파워 조회와 비교해 보셔도 재미있을 것 같습니다.

파이썬(steem-python)에서 스팀잇 계정의 현재 스팀파워(SP) 확인


@joviansummer의 스팀 프로젝트

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

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

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

jsup 수혜자 지정 기능 추가

Coin Marketplace

STEEM 0.13
TRX 0.34
JST 0.034
BTC 112638.42
ETH 4346.39
SBD 0.85