[Symbol] PythonでCatapult REST Endpointsからウォレット情報の取得


概要

  • デスクトップウォレットに表示されるような内容をプログラム(Python)から取得する方法を残しています。
  • 全コードはGithubにて公開中
    • バグや次回の要望あればコメントください
  • 投げXYMは「NDLS6GYOIPHATATNAVVOUNJXBD6X4BXU6IRBHIY」まで
  • あなたの委任お待ちしております。
    • symbol-node.takagi-tech.com
    • ハーベスト報酬は技術検証や記事執筆、ノード維持費に使わせていただきます。

事前準備

公式ドキュメントはこちら。v1.0.0で動作確認しています。

ウォレットの基本情報の取得

https://docs.symbolplatform.com/symbol-openapi/v1.0.0/#operation/getAccountInfo
こちらを叩きます。

import urllib.request
import json

# パブリックネットで安定しているノードURL
NODEURL = "http://00fabf14.xym.stir-hosyu.com:3000"
# 確認対象ウォレットアドレス
ADDRESS = "NDLS6GYOIPHATATNAVVOUNJXBD6X4BXU6IRBHIY"

# APIコール
req = urllib.request.Request(NODEURL + '/accounts/' + ADDRESS)
with urllib.request.urlopen(req) as res:
    accountInfo = json.load(res)

# 内容全件表示
print(json.dumps(accountInfo, indent=2))

結果

{
  "account": {
    "version": 1,
    "address": "68D72F1B0E43CE09826D056AEA353708FD7E06F4F22213A3",
    "addressHeight": "143022",
    "publicKey": "5DB471481B3A39AC5CEEE949B64A577C0D5CA67176BE4462145CAD6ABD84CEBC",
    "publicKeyHeight": "143146",
    "accountType": 1,
    "supplementalPublicKeys": {
      "linked": {
        "publicKey": "24120E20A7958457691D15200387F62EA5A3A0FE8349302F9D42C96FF2C233DC"
      },
      "vrf": {
        "publicKey": "F7827E7465E72A19BD4169E2D26FC2B02E0DBE6674A4F77FD5999EA294D70A95"
      }
    },
    "activityBuckets": [],
    "mosaics": [
      {
        "id": "6BED913FA20223F8",
        "amount": "79786493"
      }
    ],
    "importance": "0",
    "importanceHeight": "0"
  },
  "id": "609A55A52A6F02C06E5BB3C9"
}

モザイクの情報が欲しければ、

# 保有XYM -> 可分性が6(小数点以下6桁)なので1000000倍した数値
print(int(accountInfo['account']['mosaics'][0]['amount']) / 1000000)

結果 79.786493

という感じで保有XYMを取得することができました。

全コードはこちら