😎
便利な直コンツールを作った
コントラクトを叩く際にいちいちVerifyしたりスクリプトを書くのが面倒なので、シンプルなコントラクト直叩きツールを作りました。
せっかくなので一般にも公開しようと思い、使い方などをまとめて紹介します。
制作物
機能
- ABIから直コンUIを生成
- タグで管理することで複数のコントラクト同時展開
- ABIなどの情報の永続化
- 各種ByteCodeのエンコード、デコード
- コントラクトなどのスクリプトを実行
- コントラクトの内容の推測
- 読み込んだコントラクトなどのシェア
注意点
チェーンを切り替えた場合はページを再読み込みしてください。
使い方
コントラクトの読み込み
- Tagに任意の名前を入力
- Contract Addressにコントラクトのアドレスを入力
- Contract AbiにコントラクトABIのJSONをペースト
- 右上のConnectWalletをクリックしてサイトと接続
- Loadボタンをクリックしてコントラクトを読み込む
- 直コンUIが生成される
コントラクトの読み込み#2
オンチェーンに展開されているバイトコードからも直コンUIを生成できる
0. 右上のConnectWalletをクリックしてサイトと接続
- 叩きたいコントラクトがデプロイされているチェーンに切り替える
- Tagに任意の名前を入力
- Contract Addressにコントラクトのアドレスを入力
- Loadボタンをクリックしてコントラクトを読み込む
- 直コンUIが生成される
対象のコントラクトがProxyコントラクトの場合はProxyの直コンUIが生成されてしまう。
それを回避するにはRead beyond the Proxyにチェックを踏んでください。
あくまで推測なので正確ではない場合があります。
コントラクトの追加読み込み
- タグ名を書き換え
- その他パラメータを書き換え
- Loadボタンをクリック
- 下側のタブに新しくタグが追加され、コントラクトを切り替えれる
コントラクトを叩く
1. 生成された直コンUIからいい感じに叩く
バイトコード関係
- コントラクトを読み込んでおく
- Byte Date Toolタブの上側から対象の関数、イベントを選ぶ
- 対象の何を扱うかを次で選ぶ
- バイトコードを入力する
- 一番下のボタンを押す
スクリプト関係
- コントラクトを読み込んでおく
- Ethers Playgroundタブでコードを書く
- Runを押して実行
実行環境内ではethersとWeb3Providerとcontractが挿入されているので、柔軟なスクリプトを素早く実行できます。
console.logのみラップしたものにさし変わってるので、console.logの出力は下側に表示されます
スペースのシェア
読み込んでいるコントラクトやコードを保存したり共有リンクを発行したりできる。
- コントラクトを読み込んでおく
- 右上のメニューバーをクリック
- Share This Spaceをクリック
- 共有リンクが生成される
終わりに
今後も僕の気まぐれで機能が増えていくと思います。
もし、追加機能の要望などありましたら、GithubでISSUEなりPRなりください
Discussion