メインコンテンツへスキップ

前提条件

Foundry プロジェクトが既にセットアップされており、smart contract のデプロイが正常に完了している必要があります。 手順については Foundry を使用した smart contract のデプロイ チュートリアルを参照してください。

smart contract の検証とは?

検証プロセスは、smart contract 自体やネットワークの他の状態には一切影響しません。 これは、特定のアドレスにデプロイされた smart contract の元のソースコードをネットワークエクスプローラーに提供する標準化されたプロセスです。ネットワークエクスプローラーはそのソースコードを独自にコンパイルし、生成された bytecode が smart contract のデプロイトランザクションに含まれる bytecode と実際に一致することを検証します。 検証に成功(一致)した場合、ブロックエクスプローラーはその smart contract のページ内で拡張モードを「アンロック」します。 以下のような smart contract の詳細情報が追加表示されます:
  • 完全なソースコード(Solidity)
  • ABI(JSON)
  • トランザクションとイベントがより詳細に表示されます(ABI を使用してパースされます)
さらに、ユーザーがウォレットを接続すると、ネットワークエクスプローラー内から直接 smart contract の関数を呼び出してクエリしたり、状態を更新するトランザクションを送信したりすることもできます。

検証コマンドの実行

以下のコマンドを入力してください:
forge verify-contract \
  --rpc-url injectiveEvm \
  --verifier blockscout \
  --verifier-url 'https://testnet.blockscout-api.injective.network/api/' \
  ${SC_ADDRESS} \
  src/Counter.sol:Counter
${SC_ADDRESS} を smart contract をデプロイしたアドレスに置き換えてください。 例えば、smart contract のアドレスが 0x213bA803265386C10CE04a2cAa0f31FF3440b9cF の場合、コマンドは以下のようになります:
forge verify-contract \
  --rpc-url injectiveEvm \
  --verifier blockscout \
  --verifier-url 'https://testnet.blockscout-api.injective.network/api/' \
  0x213bA803265386C10CE04a2cAa0f31FF3440b9cF \
  src/Counter.sol:Counter

検証結果の確認

ターミナルに以下のような出力が表示されます:
Start verifying contract `0x213bA803265386C10CE04a2cAa0f31FF3440b9cF` deployed on 1439
Submitting verification for [src/Counter.sol:Counter] 0x213bA803265386C10CE04a2cAa0f31FF3440b9cF.
Submitted contract for verification:
        Response: `OK`
        GUID: `213ba803265386c10ce04a2caa0f31ff3440b9cf686b778c`
        URL: https://testnet.blockscout-api.injective.network/address/0x213ba803265386c10ce04a2caa0f31ff3440b9cf
より重要な結果は、ネットワークエクスプローラーで確認できます。 検証出力に表示されたネットワークエクスプローラーの URL にアクセスしてください。 次に「Contract」タブを選択してください。 次に「Code」サブタブを選択してください。 以前は「ByteCode」のみが表示されていましたが、 現在は「Code」、「Compiler」、「ABI」も表示されるようになりました。 「Contract」タブ内で、 「Read/Write contract」サブタブを選択してください。 以前はこのタブは存在しませんでしたが、 現在はブロックエクスプローラーから直接すべての smart contract 関数とインタラクションできるようになりました。

次のステップ

smart contract のデプロイと検証が完了しました。次は smart contract とのインタラクションを行いましょう! 次のチュートリアル Foundry を使用した smart contract とのインタラクション に進んでください。