👌
Solidity コントラクトの UML クラス図を出力する
クラス図の作成方法
sol2umlを使います。
以下のコマンドを使ってsol2umlをインストールしてください。
npm i sol2uml
自分の場合、sol2umlをプロジェクトにインストールすると依存関係でエラーが発生したので、グローバルにインストールしました。
npm i -g sol2uml
うまくいったら以下のコマンドが正常に動くと思います。
sol2uml -h
クラス図を出力します
sol2uml Solidityファイルのディクトリのパス -o ./outputfile.svg
or
sol2uml Solidityファイルのパス -o ./outputfile.svg
問題発生!!
RangeError: Maximum call stack size exceeded
ぐぬぬ。。。
solidity-flattenerというパッケージも使えるみたいですが、今回は、hardhat flattenを使います。
npx hardhat flatten > ./Flattened.sol
これで、Flattened.solが出力されました。
あとは
sol2uml ./Flattened.sol -o ./outputfile.svg
ブラウザにsvgファイルを表示させます。
open -a Google\ Chrome ./outputfile.svg
参考
Discussion