Augurには「augur.js」というJavaScriptのライブラリが提供されており、短いコードで簡単に接続して情報を取得する事が可能です。
APIリファレンスが公式ドキュメントにあります。
カテゴリ一覧を取得するサンプルコード
以下は、アプリ経由でAugurに接続し、カテゴリ一覧を取得するサンプルプログラムです。
アプリを起動してテストネット(rinkeby)に接続してから、nodeで下記を実行します。
// Augurアプリを使ってローカルに接続ポイントを作り、テストネットのカテゴリ一覧を取得する。
// 実行前にAugurアプリを起動し、テストネットに接続しておくこと。
// by jansnap https://qiita.com/jansnap
var Augur = require("augur.js");
var augur = new Augur();
// メインネット
// http://127.0.0.1:8080/?augur_node=ws%3A%2F%2F127.0.0.1%3A9001ðereum_node_http=https%3A%2F%2Fgethnode.com%2Fhttpðereum_node_ws=wss%3A%2F%2Fgethnode.com%2Fws#/categories
//var ethereumNode = { http: "https://gethnode.com/http", ws: "wss://gethnode.com/ws" };
//var augurNode = "ws://127.0.0.1:9001";
// テストネット(rinkeby)
// http://127.0.0.1:8080/?augur_node=ws%3A%2F%2F127.0.0.1%3A9001ðereum_node_http=https%3A%2F%2Frinkeby.augur.net%2Fethereum-httpðereum_node_ws=wss%3A%2F%2Frinkeby.augur.net%2Fethereum-ws#/categories
var ethereumNode = { http: "https://rinkeby.augur.net/ethereum-http", ws: "wss://rinkeby.augur.net/ethereum-ws" };
var augurNode = "ws://127.0.0.1:9001";
// connect
function connect(){
return new Promise((resolve,reject) => {
augur.connect({ ethereumNode, augurNode }, (err, connectionInfo) => {
resolve();
})
})
}
// get address set from an Augur Node.
function getSyncData(){
return new Promise((resolve,reject) => {
augur.augurNode.getSyncData(
function(error, result) {
console.log('getSyncData result=%o', result);
resolve(result['addresses']['Universe']);
});
})
}
// get categories.
function getCategories(universe){
return new Promise((resolve,reject) => {
augur.markets.getCategories({
universe: universe,
sortBy: "popularity",
isSortDescending: true
}, function (error, categories) {
console.log('getCategories result=%o', categories);
resolve();
});
})
}
connect()
.then(() => getSyncData())
.then((universe) => getCategories(universe));
大まかな流れは、以下の通りです。
-
augur.jsの読み込み
-
augur.connect関数でAugurに接続
-
augurNode.getSyncData関数でuniverse関数のIDを取得
-
取得したuniverseを使って、markets.getCategories関数でカテゴリ一覧を取得
APIリファレンスにはサンプルコードも載っているので、接続できてしまえば色々できそうです。
JavaScriptの書き方を教えてください。。。
カテゴリを取得した後、Ctrl-Cで止めないと終了しません。しかし、用事がすんだらdisconnectして終了したいです。
プログラムの最後に「process.exit(0);」を入れると、connectする前に終了してしまいました。
分かる方いらっしゃいましたら、コメントいただけますとありがたいです。