ブロックチェーンベンチャーで暗号資産周辺の会計処理、内部統制の構築に関連する業務を行なっている公認会計士のyuk_tです。
簡単に複数ウォレット内の残高等を確認できるようにDeBankのポートフォリオ管理画面のスクリーンショットを自動で撮影してくれるコードを書きました。
環境構築など気にせず、どなたにも使いやすいように前回同様google colaboratoryで動かすことを想定しています。
GoogleアカウントとGoogle chromeが使える状態であればすぐに動かせます!
DeBankとは
簡単に言うと、DeBankはウォレットのポートフォリオ管理ツールです。
情報が欲しいウォレットを接続、もしくはアドレスを入力するとウォレット残高やDeFiの使用状況を確認することができる優れものです。
他にもRevokeができたり最近のトランザクションを確認できたりDeFiの統計データが閲覧できたり・・・何かと便利です。
このコードで出来ること
ポートフォリオ管理画面のスクリーンショット撮影を複数アドレス分自動で行ってくれます。
これによって、指定したアドレスの残高、DeFi使用状況等をスクリーンショットの画像で確認することができます。
アドレスは複数でも大丈夫ですので、どこのウォレットで何をしているのか、残高がいくらかわからなくなってしまったという場合も簡単に確認することができます。
また、こちらの記事のコードと組み合わせて使用するのも有効です。
こちらは複数のブロックチェーンエクスプローラーから取引履歴を抽出するコードなのですが、この記事のコードで確認できる残高と、リンク先のコードで出力したトランザクションの累計で算出した残高が一致していることの確認によって把握するべきトランザクションの漏れが無いかチェックできます。
(リンク先のコードはAPIで取得できる取引以外は確認できないため、用途によってはこのような作業が必要になります)
なお、当記事のコードは実行したタイミングでの情報を取得するものです。特定の時点の残高を確認する機能はございませんのでご了承ください。
年末に動かすと確定申告にも役立つかもしれません。
使い方
- myaddsの[ ]内にデータが欲しいウォレットのアドレスを入力します。アドレスは "" で囲んでくださいね。複数ある場合は , で区切ってください。
- 作成されたスクリーンショットのサイズが小さい場合はWidthとHeightの数字を大きくしてみてください。
- 実行後、colab内のフォルダのマークをクリックすると出力されたデータが確認できます。
# seleniumのインストール
!apt-get update
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin
!pip install selenium
from google.colab import files
import time
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 対象となるアドレスをここに入力します
myadds=[ ]
# Chromeのヘッドレスモードを起動
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
driver = webdriver.Chrome('chromedriver',options=options)
driver.implicitly_wait(5)
#スクショ画面の横幅をここで調整
Width = 1200
#縦幅。下の方まで表示させたかったら↓の数字を大きく
Height = 2000
# 繰り返し処理
for myadd in myadds:
# URL取得
url = f'https://debank.com/profile/{myadd}'
driver.get(url)
WebDriverWait(driver, 20).until(EC.presence_of_all_elements_located)
# ウインドウ幅・高さ指定
driver.set_window_size(Width, Height)
# スクロール
driver.execute_script('window.scrollTo(0, 2000)')
time.sleep(1)
# スクリーンショットの保管
driver.save_screenshot(myadd + '.png')
time.sleep(1)
# ブラウザ稼働終了
driver.quit()
直接マイドライブに出力、保存したい方は下記のコードでマウントして、上記コードの('myadd + '.png')の部分を('/content/drive/My Drive/'+myadd + '.png')に置き換えてみてください。
from google.colab import drive
drive.mount('/content/drive')