스팀 앱 개발기 #48 - 스팀 파워 값이 스팀잇 사이트와 다른 문제 분석
지난 포스트에서 '스팀 파워 값이 스팀잇 사이트와 다른 문제'가 있다고 알려 드렸습니다. API가 문제인지 아니면 VEST를 스팀으로 변환하는 코드가 문제인지 알아야 합니다. 오늘은 이에 대한 분석 결과를 알려 드릴까 합니다.
VEST를 스팀으로 변환하는 코드가 문제인가?
코드는 아래 링크를 참조하여 만들었습니다. 매뉴얼을 다시 보니 코드에 문제가 있는 것으로 보이지는 않았습니다. 거기 적혀 있는 공식대로 코드를 작성했으니까요.
https://developers.steem.io/tutorials-recipes/vest-to-steem
그렇다면 API에 문제는 없는 것인지 알아봐야겠지요?
API가 문제인가?
steemitwallet.com 사이트에서 어떤 API를 사용하는지 파악하는 게 좋겠다고 판단합니다. 방법은 @ayogom 님께서 예전에 작성해 주신 포스트를 참고했습니다.
웹사이트의 API를 몰래 사용하는 방법 (by @ayogom)
지갑 페이지를 열어본 결과, condenser_api.get_dynamic_global_properties 대신 call API를 사용하는 것으로 파악됩니다. Request payload는 아래와 같습니다.
total_vesting_shares 값을 알기 위해 condenser_api.get_dynamic_global_properties API를 사용하는 것이 잘못된 것일까요? 그것 대신 call API를 사용하는 것이 옳은 것일까요?
마치며...
내일은 call API를 테스트, 분석해 볼 예정입니다. 예상보다 문제 해결 과정이 길어지는 것 같아 걱정이 조금 되네요. 그렇지만 이런 과정 하나하나가 의미 있다고 생각합니다. 귀찮고 번거롭더라도 그러한 과정을 스팀잇 포스트로 남기면서 개발을 진행하고자 합니다.
지난 스팀 앱 개발기
- #47 - 스팀 파워 값이 스팀잇 사이트와 다른 문제
- #46 - 다음 개발 아이템들
- #45 - 지갑 화면에서 다음 파워 다운 시간 보여주기
- #44 - 지갑 화면에 파워 다운 내용 보여주기
- #43 - 지갑 화면에서 VEST 값을 SP로 변환
- #42 - VEST를 SP로 변환하는 메소드
- #41 - 작성중...
- #40 - UTC 시간을 로컬 시간으로 바꾸는 코드 만들기
- #39 - condenser_api.get_dynamic_global_properties API 실행에 필요한 데이터 클래스 추가
- #38 - 지갑 화면 구현: 예금 보여주기 추가
- #37 - 지갑 화면 구현: WalletViewModel과 WalletFragment를 바인딩
- #36 - 유닛 테스트로 구현한 WalletViewModelTest 클래스에서 공통 부분 추출하여 CommonPartOfViewModelTest 클래스 만들기
- #35 - 유닛 테스트용 WalletViewModelTest 클래스 구현 후 보이는 문제점
- #34 - WalletViewModel 클래스에 스팀 지갑 정보 읽는 코드 작성
- #33 - 추가 리팩토링: 데이터 모듈의 데이터 클래스의 필드들에 nullable 적용
- #32 - 리팩토링: 데이터 클래스 이름 변경
- #31 - 도메인 모듈에서 정의하는 데이터 클래스들이 DTO 패턴을 따르는 것이 맞는가?
- #30 - 진도를 더 나가기 전에 리팩토링 고려 중
- #29 - 뷰모델, Repository 패턴 그리고 Use Case 패턴의 관계
- #28 - Use Case 패턴 적용
- #27 - Repository 패턴 적용
- #26 - condenser_api.get_accounts API로 받은 계정 자료를 SteemitWalletDTO 타입으로 변환하기
- #25 - SteemClient, SteemService 잘 작동하는지 유닛 테스트
- #24 - API 실행을 담당할 SteemService 인터페이스 정의
- #23 - condenser_api.get_accounts API 연동에 필요한 데이터 클래스 정의
- #22 - API 연동에 필요한 라이브러리 추가
- #21 - 사용자 지갑 정보를 담을 SteemitWallet 클래스 정의
- #20 - 클린 아키텍처를 위한 모듈 구성 (2)
- #19 - 클린 아키텍처를 위한 모듈 구성 (1)
- #18 - VEST로부터 STEEM POWER를 계산하는 방법
- #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 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.