스팀 앱 개발기 #18 - VEST로부터 STEEM POWER를 계산하는 방법

지난, 지지난 포스트에서 설명한 내용은 다음과 같습니다.

이번 포스트에서는 위의 두 API부터 받은 자료를 이용하여 스팀 파워를 계산하는 방법에 대해 정리해 봅니다.


관련 링크

스팀 파워 계산 방법은 스팀 API 문서에 이미 설명되어 있습니다. 관련 링크는 아래와 같습니다.

https://developers.steem.io/tutorials-recipes/vest-to-steem

이번 포스트에서는 한국인 입장에서 이해할 수 있게 한글로 풀어쓰고자 합니다.


VEST로부터 STEEM POWER 계산 과정

  1. condenser_api.get_accounts API를 실행하세요.
  2. condenser_api.get_dynamic_global_properties API를 실행하세요.
  3. 아래 공식을 이용하여 스팀 파워를 계산하세요.

vestSteem = ( result.total_vesting_fund_steem x availableVESTS ) / result.total_vesting_shares

*vestSteem: 계산된 스팀 파워 값입니다.

  • result.total_vesting_fund_steem: Dynamic global properties의 total_vesting_fund_steem입니다.
  • availableVESTS: get_accounts API부터 받은 자료의 vesting_shares들 중 하나
    • vesting_shares: 현재 보유 중인 VEST
    • delegated_vesting_shares: 임대 중인 VEST
    • received_vesting_shares: 임대 받고 있는 VEST
    • vesting_withdraw_rate: 파워 다운 중인 VEST
  • result.total_vesting_shares: Dynamic global properties의 total_vesting_shares

스팀 파워 계산 전에 추가로 해야 할 데이터 가공

문제는 서버로부터 받은 total_vesting_fund_steem, total_vesting_shares, 그외 vesting_shares들은 수가 아닌 문자열 형태의 데이터라는 점입니다. 예를 들어, 조금 전에 condenser_api.get_dynamic_global_properties API를 실행하여 받은 total_vesting_fund_steem 값은 다음과 같습니다.

"total_vesting_shares": "284295912941.382319 VESTS"

문자열로부터 수만 추출하기 위해서는 다음과 같은 추가 작업을 해야 합니다.

  • 수 외 글자들 삭제: 스페이스 문자, VEST 단어 등
  • 수만 추출한 문자열을 float로 변환

마치며...

다음 포스트에서는 앱의 클린 아키텍처를 구현하기 위한 모듈 구성에 대해 이야기하고자 합니다. 앱과 API를 연동하기 전에 필요한 사전 작업이기 때문입니다.


지난 스팀 앱 개발기

Sort:  
 2 years ago 

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Upvoted! Thank you for supporting witness @jswit.
default.jpg

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.029
BTC 57893.29
ETH 3130.56
USDT 1.00
SBD 2.44