스팀 앱 개발기 #21 - 사용자 지갑 정보를 담을 SteemitWallet 클래스 정의

image.png

지난 두 포스트에서 서버 데이터 읽기/쓰기를 담당할 dorian-steem-data 모듈, 도메인 데이터를 담당할 dorian-steem-domain 모듈을 프로젝트에 추가하는 과정을 보여 드렸습니다. 이번 포스트에서는 도메인 모듈에 지갑 데이터를 담당할 SteemitWalletDTO 데이터 클래스를 정의하는 과정을 보여 드립니다.


SteemitWalletDTO 클래스가 필요한 이유?

SteemitWalletDTO 클래스에는 사용자 계정, 지갑 잔액 등을 정의할 예정입니다. 스팀 API에서는 지갑 정보만 콕 집어서 주는 API는 없구요. condenser_api.get_accounts API가 주는 계정 정보를 통해 지갑 관련 자료를 구할 수 있습니다. 지갑 내용을 보여줄 화면에서 계정 정보 전체를 사용할 필요는 없지요. 거기서 스팀/스팀달러/스팀파워 잔액 등을 추출하여 SteemitWalletDTO 데이터 객체에 담는 것이 더 좋겠다고 판단합니다.


SteemitWalletDTO 클래스 정의

dorian-steem-domain 모듈 생성시 정의했던 SteemitAccount 클래스는 SteemitWallet로 이름을 변경하구요. 이 클래스는 다음과 같이 정의합니다.

data class SteemitWalletDTO(
    val account: String,
    val steemBalance: String, 
    val sbdBalance: String,
    val savingSteemBalance: String,
    val savingSbdBalance: String,
    val steemPowerVest: String,
    val delegatedSteemPowerVest: String,
    val receivedSteemPowerVest: String,
    val spWithdrawRate: String,
    val spToBeWithdrawn: String
)

이 클래스의 필드들은 다음과 같습니다.

  • account: 스팀잇 계정
  • steemBalance: 스팀 잔액
  • sbdBalance: 스팀달러 잔액
  • savingSteemBalance: 예금에 예치된 스팀 잔액
  • savingSbdBalance: 예금에 예치된 스팀달러 잔액
  • steemPowerVest: 스팀 파워 (VEST 단위)
  • delegatedSteemPowerVest: 임대 중인 스팀 파워 (VEST 단위)
  • receivedSteemPowerVest: 임대 받고 있는 스팀 파워 (VEST 단위)
  • spWithdrawRate: 1주에 파워다운 할 스팀 파워 수량 (VEST 단위)
  • spToBeWithdrawn: 파워다운 할 스팀 파워 수량 (VEST 단위)

지금은 스팀 파워를 VEST 단위로 읽으며, 추후 이를 SP 단위로 바꿀 예정입니다.


GitHub Commit


마치며...

다음 포스트에서는 dorian-steem-data 모듈에 API 연동을 위한 1차 작업을 진행할 예정입니다.


지난 스팀 앱 개발기

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.077
BTC 62958.67
ETH 1650.44
USDT 1.00
SBD 0.41