LoginSignup
0
0

More than 5 years have passed since last update.

AugurにJavaScriptで接続する

Posted at

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&ethereum_node_http=https%3A%2F%2Fgethnode.com%2Fhttp&ethereum_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&ethereum_node_http=https%3A%2F%2Frinkeby.augur.net%2Fethereum-http&ethereum_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));

大まかな流れは、以下の通りです。

APIリファレンスにはサンプルコードも載っているので、接続できてしまえば色々できそうです。

JavaScriptの書き方を教えてください。。。

カテゴリを取得した後、Ctrl-Cで止めないと終了しません。しかし、用事がすんだらdisconnectして終了したいです。
プログラムの最後に「process.exit(0);」を入れると、connectする前に終了してしまいました。
分かる方いらっしゃいましたら、コメントいただけますとありがたいです。

0
0
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
0
0