LoginSignup
2
0

More than 1 year has passed since last update.

ショートカット+CoinGecko API+Subscan APIでDOT保有分を日本円換算した結果を確認する

Last updated at Posted at 2022-02-26

作成したもの

iPhoneで保有するDOTを日本円換算し、計算結果をクリップボードにコピーするショートカットを作成しました。

ショートカット名:calcHoldDOT-JPY

リンクから「ショートカットを追加」を実行するとマイショートカットに追加されます。
デフォルトではSubscan APIのAPI keyとアドレスが空となっているため、ショートカットは実行できますが値は取得できずアラートが表示されます。

以下のgifはDocs記載のアカウント(Polkadot.pro - Realgar)でAPI keyとアドレスを指定した場合の実行例になります。(2022/03/11時点)

処理の流れ

  1. CoinGecko API V3を使用してPolkadotの日本円換算の値を取得するショートカットを実行して変数に設定
  2. Subscan APIを使用して指定したアドレスで保有するDOT(Balance)を取得するショートカットを実行して変数に設定
  3. 1.と2.の変数を掛けて DOT保有量の日本円換算した結果をクリップボードにコピーし、ショートカットをの実行を停止

前提条件

Subscan APIのAPI keyを取得済みであること

補足

    1. DOTの価格はCoinGecko API V3のexplore the APIページ/simple/price記載のRequest URLHeaderの指定で取得します

CoinGecko_sample_price.png

  • 2.保有量(Balance)はSubscan API V2 APIのsearch accountの指定で取得します
    Docs記載のアカウント(Polkadot.pro - Realgar)を例にcurlコマンドを実行するとResponseとしてJSON形式の値を取得できます(※2022/02/27時点)
curl
curl -X POST 'https://polkadot.api.subscan.io/api/v2/scan/search' \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: YOUR_KEY' \
  --data-raw '{
    "key": "1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih"
  }'
Response
{
    "code": 0,
    "message": "Success",
    "generated_at": 1645939556,
    "data": {
        "account": {
            "account_display": {
                "account_index": "1Rs7u",
                "address": "1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih",
                "display": "Polkadot.pro - Realgar",
                "identity": true,
                "judgements": [
                    {
                        "index": 1,
                        "judgement": "Reasonable"
                    }
                ],
                "parent": null
            },
            "address": "1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih",
            "balance": "845177.2489680648",
            "balance_lock": "615786.4468538017",
            "bonded": "6157864468538017",
            "count_extrinsic": 116,
            "democracy_lock": "0",
            "derive_token": {},
            "display": "Polkadot.pro - Realgar",
            "election_lock": "5941301477000000",
            "email": "hello@polkadot.pro",
            "is_council_member": false,
            "is_erc20": false,
            "is_evm_contract": false,
            "is_registrar": false,
            "is_techcomm_member": false,
            "judgements": [
                {
                    "index": 1,
                    "judgement": "Reasonable"
                }
            ],
            "legal": "",
            "lock": "615786.4468538017",
            "nonce": 146,
            "registrar_info": null,
            "reserved": "961730000000",
            "riot": "@realgar:matrix.org",
            "role": "validator",
            "staking_info": {
                "controller": "1ZMbuCR3QiatxRsQdNnJYgydn3CWV4PELcTzpH4TNoNjxno",
                "controller_display": {
                    "account_index": "1bwSw",
                    "address": "1ZMbuCR3QiatxRsQdNnJYgydn3CWV4PELcTzpH4TNoNjxno",
                    "display": "",
                    "identity": false,
                    "judgements": null,
                    "parent": null
                },
                "reward_account": "stash"
            },
            "stash": "1REAJ1k691g5Eqqg9gL7vvZCBG7FCCZ8zgQkZWd4va5ESih",
            "twitter": "@propolkadot",
            "unbonding": "0",
            "vesting": null,
            "web": "https://polkadot.pro"
        }
    }
}
  • Subscan APIでbalanceを取得するためAPI keyAddressを指定します
  • ショートカットでbalanceを取得するため辞書のキーにdata,acount,balanceをそれぞれ設定します

まとめ

  • ショートカット+CoinGecko API+Subscan APIでDOT保有分を日本円換算した結果をiPhoneで確認する方法を紹介しました。
  • 価格はSubscan APIでも取得できそうですが、JPYに対応していのるか確認ができなかったことと、今回は価格が分かれば良かったのでCoingeckoから価格情報を取得しました。
  • ショートカットではHTTPリクエストを実行することで複数のデータを取得することができるため楽にデータを処理できます。一方で処理が増えるとスマホ画面では作成しづらく、内容も複雑になります。この点ではショートカットで分割、GAS連携すると良いかと思います。
2
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
2
0