파이썬 beem을 이용해서 현재 스팀파워(SP) 확인하기
- Get link
- X
- Other Apps
by joviansummer
original STEEMIT post: https://steemit.com/blog/@joviansummer/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)
Comments
Post a Comment