LoginSignup
3
1

More than 1 year has passed since last update.

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

Last updated at Posted at 2021-05-24

概要

  • デスクトップウォレットに表示されるような内容をプログラム(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を取得することができました。

全コードはこちら

3
1
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
3
1