作成したもの
iPhoneで保有するDOTを日本円換算し、計算結果をクリップボードにコピーするショートカットを作成しました。
ショートカット名:calcHoldDOT-JPY
リンクから「ショートカットを追加」を実行するとマイショートカットに追加されます。
デフォルトではSubscan APIのAPI keyとアドレスが空となっているため、ショートカットは実行できますが値は取得できずアラートが表示されます。
以下のgifはDocs記載のアカウント(Polkadot.pro - Realgar)でAPI keyとアドレスを指定した場合の実行例になります。(2022/03/11時点)
処理の流れ
- CoinGecko API V3を使用してPolkadotの日本円換算の値を取得するショートカットを実行して変数に設定
- Subscan APIを使用して指定したアドレスで保有するDOT(Balance)を取得するショートカットを実行して変数に設定
- 1.と2.の変数を掛けて DOT保有量の日本円換算した結果をクリップボードにコピーし、ショートカットをの実行を停止
前提条件
Subscan APIのAPI keyを取得済みであること
補足
-
- DOTの価格はCoinGecko API V3のexplore the APIページの
/simple/price
記載のRequest URLとHeaderの指定で取得します
- DOTの価格はCoinGecko API V3のexplore the APIページの
- ショートカットでDOTの価格(円)を取得するため「辞書の値を取得」アクションを使用し、
polkadot
,jpy
をキーに設定します
- 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 key
とAddress
を指定します - ショートカットで
balance
を取得するため辞書のキーにdata
,acount
,balance
をそれぞれ設定します
まとめ
- ショートカット+CoinGecko API+Subscan APIでDOT保有分を日本円換算した結果をiPhoneで確認する方法を紹介しました。
- 価格はSubscan APIでも取得できそうですが、JPYに対応していのるか確認ができなかったことと、今回は価格が分かれば良かったのでCoingeckoから価格情報を取得しました。
- ショートカットではHTTPリクエストを実行することで複数のデータを取得することができるため楽にデータを処理できます。一方で処理が増えるとスマホ画面では作成しづらく、内容も複雑になります。この点ではショートカットで分割、GAS連携すると良いかと思います。