Lisk Elements で遊ぼう #4
花粉症が落ち着いてきたと思い油断していたら、突如猛威を振るい、目が腫れて大変なことになっている万博おじです。
はじめに
前回はセカンドパスフレーズの必要性を含めたものでしたが、今回はセキュリティ的なことは一切なく、デリゲート情報の取得になります。
正直、回を重ねても何が何だかさっぱりという感じだと思いますが、読み続けてもらえれば送金処理やvote処理を書くことが出来るようになる...はずです(笑)
コーディング
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Delegate</title>
<script src="https://js.lisk.io/lisk-elements-2.0.0.min.js"></script>
<script type="text/javascript">
const client = lisk.APIClient.createMainnetAPIClient();
const getDelegates = () => {
// <div id="contents"></div>内をクリア
document.querySelector('#contents').innerHTML = '';
// セレクトボックスで選択された値を取得
const offset = document.querySelector('#offset').value;
// ランクの昇順で101人分のデリゲート情報を取得
client.delegates.get(
{offset: offset,
limit: 101,
sort: 'rank:asc'
})
.then(res => {
// 取得結果を<div id="contents"></div>内に表示
const pretag = document.createElement('pre');
pretag.innerHTML = JSON.stringify(res.data, null , 2);
document.querySelector('#contents').append(pretag);
});
}
onload = getDelegates;
</script>
</head>
<body>
<div>
<select id="offset">
<option value="0" selected>1~101位まで表示</option>
<option value="101">102~202位まで表示</option>
<option value="202">202~303位まで表示</option>
</select>
<button onclick="getDelegates()">検索!</button>
</div>
<div id="contents"></div>
</body>
</html>
いつものように適当な名前のhtmlファイルを作成し、コードをコピペ後、文字コードUTF-8で保存したファイルをダブルクリックしてください。
少し経つと情報が表示されますね!
(今回は、セレクトボックスの選択値を変えて検索ボタンを押すと内容が変わるようになっています。)
コード内にコメントを書いているので細かな説明は省略しますが、client.delegates.getが今回のメイン処理であるデリゲート情報の取得APIです。
条件について
offset
どのランクより後を取得するかを設定
※ランクの昇順で取得した場合
limit
何人分取得するかを設定(未指定時は10人分、最大は101人分)
sort
ランクの昇順などどの順番で情報を取得するかを設定
取得情報から読めること
username
デリゲートユーザー名
vote
voteの重み(例のごとく1億倍された値)
rank
現在のランク
account内のaddress
デリゲートのLiskアドレス
※rewards(フォージング報酬)、producedBlocksやmissedBlocksなどが取得できます。
さて、どうでしたか?
デリゲート情報もちょちょいのちょいで取得できましたね!
これに自身のvote状況を組み合わせると誰にvoteしているかがわかります。
そして、vote用トランザクションを作ってブロードキャスト出来るようになれば自分用のvoteアプリの完成です。
ということで、次回は自分のvote状況の取得について書こうと思います!
今日はここまで!
おつかれさまでした!
リンク
Lisk Elements ドキュメント(Delegates)
※検索条件は Lisk Core ドキュメント 参照
応援
「おもろいやんけ!」と思ってもらえたら、コメントや万博おじへtweetしてくれると嬉しいです。
Lisk Japanもよろしくね!
この記事が気に入ったらサポートをしてみませんか?