LoginSignup
3
4

More than 5 years have passed since last update.

NEMアカウントの時価総額をJavaScriptで計算する。

Last updated at Posted at 2017-05-12

今回は非同期通信の技術を用いて暗号通貨NEMの時価総額を日本円で算出してみます。

依存するライブラリはjQueryのみ

jquery
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>

非同期通信する接続先は以下の2つです。
https://poloniex.com/public?command=returnTicker
https://blockchain.info/ticker

poloniexへはBTCとXEMの価格、blockchain.infoへはBTCと日本円の価格情報を取得に行きます。両方のサイトの情報が同時に取れないと計算ができないので、$.whenを利用して以下のように記述することができます。

when
$.when(
    sendAjax("https://poloniex.com/public?command=returnTicker"),
    sendAjax("https://blockchain.info/ticker?cors=true")
)
.done(function(res1, res2) {


})
.fail(function(xhr, textStatus, errorThrown) {

    alert("時価の取得に失敗しました。");
});

blockchain.infoサーバはクロスドメイン制限があるので、クエリとして
?cors=true
を追加してあげましょう。残念ながらzaifのAPIはクロスドメイン制限のため今回の使用は見送りました。
poloniexからの戻りjsonはres1[0]に
blockchain.infoからの戻りjsonはres2[0]に入ってきますので

以下のように時価総額を計算することができます。

price
var JPY_XEM = res1[0].BTC_XEM.last * res2[0].JPY.last;
var polo_price = account.balance / 1000000 * JPY_XEM;
polo_price = String(Math.round(polo_price)).replace( /(\d)(?=(\d\d\d)+(?!\d))/g, '$1,');
JPY_XEM = Math.round(JPY_XEM * 1000) / 1000;
$("#polo_price").text(polo_price + "円 (" + JPY_XEM + "JPY/XEM換算)");

.replace( /(\d)(?=(\d\d\d)+(?!\d))/g, '$1,');
で3桁カンマ、
Math.round(JPY_XEM * 1000) / 1000
で小数点3桁以下を切り捨てしているので、必要に応じて修正してみてください。

では最後に動くものを置いておきます。
addressの後ろはご自身のアドレスを指定してみてください。
徐々にブラッシュアップして最後にはXEMBookとして、貯める系XEM運用ツールにしていけたらと思っています。

今回はクロスドメイン対応されている取引所からの情報取得をしてみました。

それでは!


以下のNEMアドレスは、全てNEM上でエンジニアが活動できるための資金に使用します。
これから私が書く記事に共感していただけましたら、ご寄附いただけると助かります。

NEM ADDRESS: NBZNQL-2JDWTG-UAW237-PXV4SS-XSPORY-43GUSW-GSB7

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4