스팀 앱 개발기 #18 - VEST로부터 STEEM POWER를 계산하는 방법
지난, 지지난 포스트에서 설명한 내용은 다음과 같습니다.
이번 포스트에서는 위의 두 API부터 받은 자료를 이용하여 스팀 파워를 계산하는 방법에 대해 정리해 봅니다.
관련 링크
스팀 파워 계산 방법은 스팀 API 문서에 이미 설명되어 있습니다. 관련 링크는 아래와 같습니다.
https://developers.steem.io/tutorials-recipes/vest-to-steem
이번 포스트에서는 한국인 입장에서 이해할 수 있게 한글로 풀어쓰고자 합니다.
VEST로부터 STEEM POWER 계산 과정
- condenser_api.get_accounts API를 실행하세요.
- condenser_api.get_dynamic_global_properties API를 실행하세요.
- 아래 공식을 이용하여 스팀 파워를 계산하세요.
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를 연동하기 전에 필요한 사전 작업이기 때문입니다.
지난 스팀 앱 개발기
- #17 - VEST를 STEEM POWER로 변환하기 위해 필요한 get_dynamic_global_properties API
- #16 - 지갑 내용을 읽기 위해 필요한 API
- #15 - 지갑 서브화면(WalletFragment) 레이아웃 구성해 보기
- #14 - 지갑 서브화면(WalletFragment)에서 계정 인식하기
- #13 - 프로파일 서브화면(ProfileFragment)에서 계정 인식하기
- #12 - 태그 서브화면에서 태그 인식하기
- #11 - 검색 레이아웃을 메인 화면에 적용
- #10 - 태그 및 계정 검색 레이아웃 만들기
- #9 - BaseActivity 클래스 정의 그리고 MainActivity 클래스에 적용
- #8 - BaseFragment 클래스 정의 그리고 기존 프래그먼트들에 적용
- #7 - ProfileFragment 그리고 WalletFragment에 데이터 바인딩 적용
- #6 - 태그별 검색 내용을 보여줄 TagsFragment에 데이터 바인딩 적용
- #5 - GitHub에 소스 올리기
- #4 - 하단 내비게이션의 탭 관련 클래스 이름 수정
- #3 - 하단 내비게이션 바의 아이콘, 텍스트 수정
- #2 - 프로젝트 생성
- #1 - 시작하며...
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.
Upvoted! Thank you for supporting witness @jswit.