【実装してみた】API(GET)を使用してIOSTブロックチェーンからデータを取得する

【PR】当ブログではアフィリエイト広告を利用しています

こんにちは、IOSTに人生託したマンです。

私は210万枚のIOSTをもち、パートナーノード「Takuman」を運営している、IOST大好き人間でございます。

IOSTのエコシステムが発展すべく、SNSや当ブログで情報発信をしているわけですが、最近、こんなことを思うようになりました。

IOSTが大好きなら、ただIOSTを保有しているだけでなく、IOSTブロックチェーンを用いた仕組みを作ったら面白いんじゃね?

そんなわけで、IOSTが公開している開発者向けのドキュメントや、ネットに落ちている情報を読み込み、なんとかAPI(GETのみ)を使うことができるようになったので、自分の頭の整理の意味も込めて、この記事でまとめてみました。

ただ単に使用できるAPI(GET)をまとめるだけだと面白くないので、ボタンを押すとIOSTブロックチェーンへAPI(GET)リクエストを送信し、データを取得できる機能(JavascriptのFetchを使用)も実装してみました。

何か開発しようと思っている方は参考にしてみてください。

API(GETのみ)の一覧

IOSTサーバーノードの情報を取得する(/getNodeInfo)

APIの呼び出し方法
https://api.iost.io/getNodeInfo

取得結果

取得結果がここに表示されるよ

IOSTブロックチェーンの情報を取得(/getChainInfo)

APIの呼び出し方法
https://api.iost.io/getChainInfo

取得結果

取得結果がここに表示されるよ

GAS情報を取得(/getGasRatio)

APIの呼び出し方法
https://api.iost.io/getGasRatio

取得結果

取得結果がここに表示されるよ

RAM情報を取得(/getRAMRatio)

APIの呼び出し方法
https://api.iost.io/getRAMInfo

取得結果

取得結果がここに表示されるよ

トランザクション情報の取得(/getTxByHash{ハッシュ})

APIの呼び出し方法
https://api.iost.io/getTxByHash/<transaction Hash>

ハッシュ値の検索が面倒くさい人は「F1BPcqBJuzZD2oujmxzxSYLmJoQdJj66G5fTEANWDAcS」を使ってね。

取得結果

取得結果がここに表示されるよ

トランザクションレシート情報の取得(/getTxReceiptByTxHash/{ハッシュ})

APIの呼び出し方法
https://api.iost.io/getTxReceiptByTxHash/<transaction Hash>

ハッシュ値の検索が面倒くさい人は「F1BPcqBJuzZD2oujmxzxSYLmJoQdJj66G5fTEANWDAcS」を使ってね。

取得結果

取得結果がここに表示されるよ

ブロックハッシュを使用したブロック情報の取得(/getBlockByHash/{ハッシュ}/{true or false})

APIの呼び出し方法

ブロック内の詳細情報を取得

https://api.iost.io/getBlockByHash/<block Hash>/true

ブロック内の概要レベルの情報を取得

https://api.iost.io/getBlockByHash/<block Hash>/false

ハッシュ値の検索が面倒くさい人は「BUC7NNpStwx4Y9xttaAFGx6YCQXhdEXBQMGbbYBcKqxs」を使ってね。

取得結果

取得結果がここに表示されるよ

ブロック番号を使用したブロック情報の取得(/getBlockByNumber/{番号}/{true or false})

APIの呼び出し方法

ブロック内の詳細情報を取得

https://api.iost.io/getBlockByNumber/<block number>/true

ブロック内の概要レベルの情報を取得

https://api.iost.io/getBlockByNumber/<block number>/false

ブロック番号の検索が面倒くさい人は「305933560」を使ってね。

取得結果

取得結果がここに表示されるよ

アカウント情報の取得(/getAccount/{アカウント名}/{true or false})

APIの呼び出し方法

最長のチェーンからデータを取得

https://api.iost.io/getAccount/<account name>/true

不可逆ブロックからデータを取得

https://api.iost.io/getAccount/<account name>/false

ご自身のIOSTアカウント名を入れてみましょう!ちなみに、私のIOSTアカウント名は「takuman」です。

IOSTの保有枚数や、投票状況が丸見えだあ

取得結果

取得結果がここに表示されるよ

指定したトークンのアカウント残高の取得(/getTokenBalance/{アカウント名}/{トークン名}/{true or false})

APIの呼び出し方法

最長のチェーンからデータを取得

https://api.iost.io/getTokenBalance/<account name>/<token name>/true

不可逆ブロックからデータを取得

https://api.iost.io/getTokenBalance/<account name>/<token name>/false

取得結果

取得結果がここに表示されるよ

ノード情報の取得(/getProducerVoteInfo/{ノード登録済みのIOSTアカウント名}/{true or false})

APIの呼び出し方法

最長のチェーンからデータを取得

https://api.iost.io/getProducerVoteInfo/<account name>/true

不可逆ブロックからデータを取得

https://api.iost.io/getProducerVoteInfo/<account name>/false

取得結果

取得結果がここに表示されるよ

ノードが受け取ることができる投票報酬情報の取得(/getCandidateBonus/{ノード登録済みのIOSTアカウント名}/{true or false})

APIの呼び出し方法

最長のチェーンからデータを取得

https://api.iost.io/getCandidateBonus/<account name>/true

不可逆ブロックからデータを取得

https://api.iost.io/getCandidateBonus/<account name>/false

取得結果

取得結果がここに表示されるよ

投票者が受け取ることができる投票報酬情報の取得(/getVoterBonus/{IOSTアカウント名}/{true or false})

APIの呼び出し方法

最長のチェーンからデータを取得

https://api.iost.io/getVoterBonus/<account name>/true

不可逆ブロックからデータを取得

https://api.iost.io/getVoterBonus/<account name>/false

取得結果

取得結果がここに表示されるよ

コントラクト情報の取得(/getContract/{コントラクトID}/{true or false})

APIの呼び出し方法

最長のチェーンからデータを取得

https://api.iost.io/getContract/<contract ID>/true

不可逆ブロックからデータを取得

https://api.iost.io/getContract/<contract ID>/false

取得結果

取得結果がここに表示されるよ

トークン情報の取得(/getTokenInfo/{シンボル}/{true or false})

APIの呼び出し方法

最長のチェーンからデータを取得

https://api.iost.io/getTokenInfo/<token symbol>/true

不可逆ブロックからデータを取得

https://api.iost.io/getTokenInfo/<token symbol>/false

取得結果

取得結果がここに表示されるよ

最後に(感想)

IOSTブロックチェーンからデータを取得するAPI(GET)の一覧と、その挙動についてまとめてみました。

実はというと、コントラクト関連のデータ取得APIがあと3つ(「/getContractStorage」「/getContractStorageFields」「/getBatchContractStorage」)があるんですが、呼び出し方が少し複雑なのと、あんまり使い所が思いつかなかったので、この記事ではまとめていません(諦めた)。

一応、IOSTブロックチェーンにトランザクションを送信するAPI(POST)として「/sendTx」もありますが、こいつを直接呼び出すのは推奨されてないっぽいです。

トランザクションを送信したい場合は、CLIツールだとか、Javascript JDKを使いなさいと、いうことです。

この記事で紹介したAPIやJavascript JDKを使用すれば、ブラウザ上で動作するノード投票システムも作れそうですね。

時間がある時にやってみます。