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

in #sct5 years ago (edited)


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

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

Sort:  

수고하셨습니다!! 즐거운 7월 보내세요^^

이제 막 7월의 시작이네요. 독거노인님도 즐거운 7월 보내세요~^^

에뮬레이터는 아이폰으로 보이는데 왜 아이폰은 출시가 되지 않았죠? 빠른 수정 부탁드립니다!! ㅋ

돈 모아서 아이폰 구입하면 꼭 출시하겠습니다.

늘 좋은 개발 글에 감사합니다. 앞으로도 잘 부탁 드립니다

보팅 감사합니다.ㅎㅎ

@anpigon님 곰돌이가 2일치 모아서 15.0배로 보팅해드리고 가요~! 영차~

Thank you for your continued support towards JJM. For each 1000 JJM you are holding, you can get an additional 1% of upvote. 10,000JJM would give you a 11% daily voting from the 700K SP virus707 account.

언제나👍🏻👍🏻 잘 보고 갑니다 안피곤님😃

Hi @anpigon!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 2.567 which ranks you at #16296 across all Steem accounts.
Your rank has improved 104 places in the last three days (old rank 16400).

In our last Algorithmic Curation Round, consisting of 242 contributions, your post is ranked at #166.

Evaluation of your UA score:
  • Only a few people are following you, try to convince more people with good work.
  • The readers like your work!
  • You have already shown user engagement, try to improve it further.

Feel free to join our @steem-ua Discord server

big-tree-3443533_960_720.jpg

아낌없이 주는 나무 후원으로 왔습니다:)

Coin Marketplace

STEEM 0.16
TRX 0.16
JST 0.031
BTC 58861.70
ETH 2499.51
USDT 1.00
SBD 2.48