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

in #sct6 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 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).Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!

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

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