今回は非同期通信の技術を用いて暗号通貨NEMの時価総額を日本円で算出してみます。
依存するライブラリは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(
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]に入ってきますので
以下のように時価総額を計算することができます。
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