스팀 앱 개발기 #39 - condenser_api.get_dynamic_global_properties API 실행에 필요한 데이터 클래스 추가
시작하며...
condenser_api.get_dynamic_global_properties API 연동을 구현하기 전에 관련 데이터 클래스를 먼저 정의해야 합니다. 이번 포스트에서는 파라메터 및 응답 클래스들을 작성해 봅니다.
GetDynamicGlobalPropertiesParamsDTO 클래스
API 실행시 파라메터로 보낼 데이터를 나타내는 클래스입니다.
data class GetDynamicGlobalPropertiesParamsDTO(
val jsonrpc: String = "2.0",
val method: String = "condenser_api.get_dynamic_global_properties",
val params: Array<Any> = arrayOf(),
val id: Int
)
응답 클래스
응답 관련 클래스들은 아래와 같습니다. 데이터들이 많아서 이들이 무엇인지 지금은 다 파악이 어렵네요. 필요할 때마다 조금씩 정리할 예정입니다.
data class GetDynamicGlobalPropertiesResponseDTO(
val jsonrpc: String?,
val result: GetDynamicGlobalPropertiesDTO?,
val id: Int?
)
data class GetDynamicGlobalPropertiesDTO(
val head_block_number: Int?,
val head_block_id: String?,
val time: String?,
val current_witness: String?,
val total_pow: Int?,
val num_pow_witnesses: Int?,
val virtual_supply: String?,
val current_supply: String?,
val confidential_supply: String?,
val init_sbd_supply: String?,
val current_sbd_supply: String?,
val confidential_sbd_supply: String?,
val total_vesting_fund_steem: String?,
val total_vesting_shares: String?,
val total_reward_fund_steem: String?,
val total_reward_shares2: String?,
val pending_rewarded_vesting_shares: String?,
val pending_rewarded_vesting_steem: String?,
val sbd_interest_rate: Int?,
val sbd_print_rate: Int?,
val maximum_block_size: Int?,
val required_actions_partition_percent: Int?,
val current_aslot: Int?,
val recent_slots_filled: String?,
val participation_count: Int?,
val last_irreversible_block_num: Int?,
val vote_power_reserve_rate: Int?,
val delegation_return_period: Int?,
val reverse_auction_seconds: Int?,
val available_account_subsidies: Int?,
val sbd_stop_percent: Int?,
val sbd_start_percent: Int?,
val next_maintenance_time: String?,
val last_budget_time: String?,
val content_reward_percent: Int?,
val vesting_reward_percent: Int?,
val sps_fund_percent: Int?,
val sps_interval_ledger: String?,
val downvote_pool_percent: Int?
)
GitHub Commit
지난 스팀 앱 개발기
- #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 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.