NEM(XEM)のハーベストの有効・無効状態を取得するサンプルコード(PHP) †NEM(XEM)のハーベストをしていると、時々ハーベスト状態が無効となっていることがあります。 スポンサーリンク 参考サイト †NEM(XEM)の取引ができる日本の取引所 †
上記の2つの値を取得する手順を以下に記します。 準備 †本記事で紹介するサンプルコードを実行するにあたり、以下の2つの値を準備する必要があります。
リモートアカウントの取得手順 †Nano Wallet 2.0.14 のスクリーンショットを使い説明します。
デリゲート(委任先)ノードの取得手順 †上記ですでにNano Walletにログイン済なので一部割愛します。
ハーベスト状態確認サンプルコード †ハーベスト状態を確認するサンプルコードは2つのファイルから構成されています。
harvest.conf.php †本サンプルコードでは、リモートアカウントとデリゲート(委任先)ノードを設定します。 <?php $DELEGATE_NODE=""; $REMOTE_ACCOUNT="";
harvest_status.php †本サンプルコードでデリゲート(委託先)ノードにハーベスト状態を問い合わせします。 <?php // API: Requesting the account status // https://nemproject.github.io/#requesting-the-account-status // status // UNLOCKED : Harvest enabled. // LOCKED : Harvest disabled. // DELEGATE NODE and REMOTE ACCOUNT config file $NEM_HARVEST_CONF="./harvest.conf.php"; // proxy settings $proxy = ""; $proxy_port = ""; if (!file_exists($NEM_HARVEST_CONF)) { fputs(STDERR, "[ERR] " . $NEM_HARVEST_CONF . " file not found." . PHP_EOL); die(1); } require_once($NEM_HARVEST_CONF); if (empty($DELEGATE_NODE) or empty($REMOTE_ACCOUNT)) { fputs(STDERR, "[ERR] Please check \$DELEGATE_NODE and \$REMOTE_ACCOUNT value." . PHP_EOL); die(2); } // API URL : <DELEGATE NODE>:7890/account/status?address=<REMOTE ACCOUNT> $url = $DELEGATE_NODE . ":7890/account/status?address=" . $REMOTE_ACCOUNT; $curl = curl_init(); if ($curl == FALSE) { fputs(STDERR, "[ERR] curl_init(): " . curl_error($curl) . PHP_EOL); die(1); } // curl set options curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // set proxy server settings if (!empty($proxy) && !empty($proxy_port)) { curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, 1); curl_setopt($curl, CURLOPT_PROXY, $proxy . ":" . $proxy_port); curl_setopt($curl, CURLOPT_PROXYPORT, $proxy_port); } // call status api $response = curl_exec($curl); if ($response == FALSE) { fputs(STDERR, "[ERR] curl_exec(): " . curl_error($curl) . PHP_EOL); die(1); } curl_close($curl); // json decode $json_decode = json_decode($response, true); if ($json_decode == NULL) { fputs(STDERR, "[ERR] json_decode(): " . json_last_error_msg() . PHP_EOL); die(1); } // check response if (!array_key_exists("status", $json_decode)) { fputs(STDERR, "[ERR] unknown response: " . print_r($json_decode, TRUE) . PHP_EOL); die(1); } // check harvest status $status = $json_decode["status"]; switch ($status) { case "UNLOCKED": echo "enabled" . PHP_EOL; break; case "LOCKED": echo "disabled" . PHP_EOL; break; default: fputs(STDERR, "[ERR] unknown status: " . $status . PHP_EOL); die(1); } exit(0); 実行例 †本サンプルコードを実行した時の出力です。
以上、NEX(XEM)のハーベスト状態を確認するサンプルコードでした。 スポンサーリンク |