[React Native] Steem 모바일 지갑앱 만들기 #4

anpigon(63)
Published in
#sct
Words
231
Reading
2 min
Listen
Play
7y


안녕하세요. 안피곤입니다.

Steem 모바일 지갑앱 만들기 4번째 포스팅입니다. 이번에는 스팀 + 스팀엔진 토큰의 마켓 가격을 계산하여 총 자산 금액을 보여주는 기능을 추가하였습니다. Total Assets 에 표시된 금액이 제가 보유하고 있는 총 자산의 USD 금액입니다.

참고로 지갑앱은 Whan팀 내에서만 테스트하고 있습니다. 그리고 아직 송금 기능이 없어서, 저는 개인적으로 잔액 확인 용도로만 사용하고 있습니다.


시리즈글

▪︎ [React Native] Steem 모바일 지갑앱 만들기 #1
▪︎ [React Native] Steem 모바일 지갑앱 만들기 #2
▪︎ [React Native] Steem 모바일 지갑앱 만들기 #3








스팀과 스팀달러 마켓 가격을 확인할 수 있는 무료 API

바로 전 포스팅에서 스팀과 스팀달러 마켓 가격을 코인마켓캡 API에서 가져오게 구현했습니다. 하지만 코인마켓캡의 API는 무료 사용량이 제한되어 있습니다. 그래서 개발하고 테스트하다 보면 하루 사용량을 금방 다 써버립니다. ㅠㅠ 검색해보니 무료 API가 있어서 갈아탔습니다. ㅋ

https://postpromoter.net/api/prices를 요청하면 다음과 같은 결과를 받을 수 있습니다.

{
    "sbd_price":0.9654108693894001,
    "steem_price":0.3639348516,
    "se_token_prices":{
        "PAL":0.39,
        "SCT":1.51203,
        "DEC":0.00267,
        "AAA":0.00315
    }
}

그리고 다음은 구현된 코드 내용입니다.

HTTP 통신에는 axios 라이브러리를 사용했습니다. 기본 모듈인 fetch를 사용하는게 성능이 더 좋지만, 저는 범용성을 위해서 axios를 많이 사용합니다.




스팀엔진 토큰 마켓 가격 가져오기

sscjs 라이브러리를 사용하여 스팀엔진 토큰 마켓 가격을 가져옵니다. 다음과 같은 결과를 받을 수 있습니다.

[
  {
    "symbol": "SCT",
    "volume": "3974.81155503",
    "volumeExpiration": 1562034918,
    "lastPrice": "1.52099",
    "lowestAsk": "1.52100",
    "highestBid": "1.52099",
    "lastDayPrice": "1.51106",
    "lastDayPriceExpiration": 1561993083,
    "priceChangeSteem": "0.00993000",
    "priceChangePercent": "0.66%",
    "$loki": 206
  },
  // ...
]

그리고 다음은 구현된 코드 내용입니다.

잔액이 0 이상인 토큰 마켓 가격만 가져오기 위해서 $or 조건을 사용하였습니다. 몽고 DB 쿼리문을 그대로 사용할 수 있는 것 같습니다. 예를 들어 내가 가지고 있는 토큰만 조회하고 싶다면, "query":{$or:[{symbol:"SCT"},{symbol:"AAA"}]} 형태로 조회합니다.

그리고 스팀엔진 마켓의 lastPrice 가격으로 USD 가격을 계산하였습니다.

token.price = token.totalBalance * marketPrice.lastPrice * steemPrice;




댓글, 팔로우, 업보팅해 주시는 모든 분들 감사합니다.

항상 행복한 하루 보내시길 바랍니다.


vote, reblog, follow @anpigon