Waves REST APIを使う

Python Requests を使う。
pywavesいうのもあるが、API呼ぶだけだから。

インストール

pip でインストール

$ pip3 install requests

使い方

requests - クイックスタートで十分。

REST API仕様

ドキュメントまたは、
フルノード起動している状態で、ブラウザから設定ファイルに記載したアドレスとポート番号にアクセスするとswaggerとかいうAPIを手動で試せる画面が出てくるので、そこで確認できる。

Pythonから

まずは動作確認としてバージョンを確認する。

import requests

url = 'http://127.0.0.1:6869/node/version'
response = requests.get(url)
print(response.text)

以下応答が確認できれば動いている。

{
  "version" : "Waves v0.7.6"
}

ただし上記はテキストのままなので、プログラムの中で使っていく場合はディクショナリにした方が良い

import json
response_dict = json.loads(response.text)

全ての機能を使うためにはAPI-KEYの設定が必要である。
(初期値が設定してあるが変更した方が良い)
設定ファイルにはAPI-KEY-HASHを記載する。これもWaves REST APIから取得しよう

url = 'http://127.0.0.1:6869/utils/hash/secure'
api_key = 'wavesfullnode.dekirukigasuru.com'
response = requests.post(url, data=api_key)
api_key_hash = json.loads(response.text).get('hash')

api_keyが要求時に設定するAPI-KEYであり、
api_key_hashが設定ファイルに設定する値になる。
設定反映後、フルノード再起動する。
設定ファイルについては過去記事参照。

設定が更新されたか確認するためにAPI-KEYが必要なAPIを使ってみる。 api_keyであることに注意。(x-api-keyではない)

url = 'http://127.0.0.1:6869/wallet/seed'
headers = {'api_key': 'wavesfullnode.dekirukigasuru.com'}
seed = json.loads(response.text).get('seed')

このフルノードのseedが取得できた。
フルノード設定時にseedを自動生成した場合、この方法で生成されたseedを確認できる。

その他

Wavesブロックチェーンを使った何かを作る第一歩ではあるが、 特にやることは思いついていない。


See also