スマートコントラクトのVerify
zKatana testnetにデプロイされたスマートコントラクトは、デプロイのフレームワークやコントラクトの複雑さに応じて様々な方法で検証することが可能です。 ここでの目的は、具体例を用いて、デプロイされたスマートコントラクトを手動で認証する方法を説明することです。
このガイドに沿って作業する間、ウォレットが接続されているようにしてください。 このチュートリアルでは、MetaMaskウォレットを使用します。 スマートコントラクトの検証方法詳 細については、Blockscoutドキュメントを参照してください。
手動認証
スマートコントラクトを正常にコンパイルした後、次の手順に従ってスマートコントラクトを認証します。
-
スマートコントラクトがデプロイされているアドレスをコピーします。
-
zKatana Explorerに移動し、コントラクトアドレスを検索ボックスに貼り付けます。 これにより、コントラクトの詳細というラベルの付いたウィンドウが開きます。
-
Transactions、Token transfers、Internal txns、Coin Balance History、Contractと表示されたタブのあるボックスまでスクロールします。
-
Contractタブを選択し、Verify and Publishボタンをクリックします。
-
コントラクトコードを提出するには3つの方法があります。 その内、次の2つの選択肢について説明します:
- Solidity, Flattenedソースコード
- Solidity, 標準入力のJSON
Solidity, Flattenedソースコード
-
via Flatened Source Code オプションを選択して Next をクリックします。
-
コントラクトのコンパイラーバージョンに基づいて、コンパイラー をアップデートするには、
-
↓ をクリックしてコンパイラーバージョンのリストを確認します。
-
対応するバージョンを選択してください。 たとえば、コードに
pragma solidity^0.8.9;
と書かれている場合はv0.8.9+commit.e5eed63a
を選択してください。
-
-
コントラクトの最適化設定に基づいて最適化オプションを選択します。
-
フレームワークには、ソースコードをflattenする特別な方法を持っているものがあります。 例えば、Hardhat、Remix、Foundryなどがそうです。 1つのファイルからなるコントラクトを使用していて、import がない場合は、ファイルをflattenする必要はありません。
- Hardhat
- Remix
- Foundry
Hardhatを用いてコントラクトコードをflattenするには、次のコマンドを実行するだけで大丈夫です:
npx hardhat flatten
結果は標準出力に表示されます。 >
リダイレクト演算子を使用して、flattenされたソースコードを含むファイルを作成することができます。
npx hardhat flatten > flattened.sol
新しいflatented.sol
ファイルの内容をコピーし、エクスプローラのContract code
フィールドに貼り付けます。
Remixでコントラクトコードをflattenするためには、コントラクト名を右クリックし、表示されるドロップダウンメニューから Flatten オプションを選択するだけです。 以下の図を参考にしてください。
Flattenを選択すると、拡張子_flatten.sol
を持つ新しい.sol
ファイルが自動的に作成されます。 新しい<Original-Name>_flatten.sol
ファイルの内容をコピーし、エクスプローラのContract code
フィールドに貼り付けます。
Foundryを使用してコードをflattenするためには、以下のコマンドを使用してください:
forge flatten src/<Contract-Name> -o <Any-Name-For-Flattened-Code>.sol
このコマンドを使用すると、flattened codeは、<Any-Name-For-Flattened-Code>.sol
ファイルに保存されます。 新しい<Any-Name-For-Flattened-Code>.sol
ファイルの内容をコピーし、エクスプローラのContract code
フィールドに貼り付けます。
コントラクトのコンパイラーバージョンに基づいて、コンパイラーをアップデートするには、 たとえば、コードにpragma solidity^0.8.9;
と書かれている場合はv0.8.9+commit.e5eed63a
を選択してください。
コントラクトの最適化設定に基づいて最適化オプションを選択します。
Solidity、標準JSON入力
via Standard JSON Input オプションを選択して Next をクリックします。
-
コントラクトのコンパイラーバージョンに基づいて、コンパイラー をアップデートするには、
-
↓ をクリックしてコンパイラーバージョンのリストを確認します。
-
対応するバージョンを選択してください 。 たとえば、コードに
pragma solidity^0.8.9;
と書かれている場合はv0.8.9+commit.e5eed63a
を選択してください。
-
-
Standard Input JSON ファイルを _standard input JSON ファイルをドロップするか、ここをクリック_と書かれたフィールドに貼り付けます。 standard input JSONファイルはローカルのプロジェクトフォルダにあります。
標準入力のJSONファイルを見つけるには
- Hardhatプロジェクトの場合は、
src/build-info
フォルダに移動し、.json
ファイルを開きます。
-
input
JSON オブジェクトを探します。 json ファイルをフォーマットして読みやすくします。 -
input
JSON オブジェクトの値だけを新しいファイルにコピーします
- この新しいファイルをDrop file of Click hereフィールドにドラッグ&ドロップします。
- Verify & Publishボタンをクリックして、デプロイ済みのスマートコントラクトを認証してください。