Solidity コントラクトの UML クラス図を出力する
Solicity コントラクトを読んでいて、関連するクラスのクラス図があると理解が早まりそうだという時がある
etherscan で表示できる
contract のページで More Options > Sol2Uml
ファイルが別れている場合などはオプションとして表示されなかったりする様子
そういう時は自分の環境に sol2uml コマンドをインストールして実行すればいい
単に sol2uml ./contracts/ とかするとクラスが多すぎてみづらいので、sol2uml -b ContractName -o ContractName.svg のように使うといい
open -a Google\ Chrome ./ContractName.svg で CLI からブラウザで開ける
クラス図の凡例
線
実線
ストレージ変数
継承
破線
メモリ変数
インタフェース
矢印
白抜き
コントラクト・アブストラクトコントラクト・インタフェース
黒
変数(ストレージ変数もメモリ変数も)
using for
これここに整理されてていいのかはよくわからんが…
ダイアモンド
構造体、enum
サンプル
https://gyazo.com/305f153aa3fcadeb734f0facee00833f
PickleJar から IERC20 の "実線" かつ "黒" の矢印は、ストレージ変数として参照していることがわかる
PickleJar から ERC20 の "実線" かつ "白抜き" の矢印は、継承を表していることがわかる