はじめに

この記事では、Quai NetworkのブロックエクスプローラーQuaiscanでスマートコントラクトを検証する方法を説明します。

前提条件

コントラクトをデプロイしてQuaiscanで検証するには、いくつかの依存関係が必要です。使用する主な依存関係の概要は以下の通りです。
NodeJSJavascript実行環境。LTSバージョンを使用してください。
hardhat-exampleQuai Network用のサンプルコントラクトとデプロイスクリプトを含むHardhatプロジェクト
hardhat-deploy-metadataコントラクトのメタデータをIPFSにアップロードするHardhatプラグイン
Quais.jsQuai Networkと対話するためのJavaScriptライブラリ

ウォークスルー

今日は、Quai NetworkのブロックエクスプローラーであるQuaiscanでスマートコントラクトを検証します。 このガイドはSolidityでデプロイガイドに従っているため、始める前にそのガイドとhardhat-exampleリポジトリに精通していることを確認してください。

スマートコントラクトのデプロイ

Solidityでデプロイガイドに従って、IPFSメタデータを含む完全なスマートコントラクトをデプロイします。 hardhat-exampleリポジトリを使用する場合、コマンドはnpx hardhat run scripts/deployERC20.jsとなり、以下のような出力が生成されます:
File added with CID: QmPCoBa1bCFmRoTD7GuexJqBAy7pqg8J4b8B48q5DgxUEV
Original IPFS hash found in bytecode: QmPCoBa1bCFmRoTD7GuexJqBAy7pqg8J4b8B48q5DgxUEV
Metadata JSON for ERC20 saved to /../hardhat-example/Solidity/metadata/ERC20_metadata.json
Transaction broadcasted:  0x0032004cc6a910b8733ad9502caa315beb74f3409bee2b481116bddfb9c8880d
Contract deployed to:  0x0015dFe3280783CD9b126D8E0ccc728B6490b2b2
上記の出力では、コントラクトのメタデータがipfs.qu.aiに次のハッシュでアップロードされたことがわかります:QmPCoBa1bCFmRoTD7GuexJqBAy7pqg8J4b8B48q5DgxUEV あなたのハッシュは異なります。次のステップで必要になるため、必ずキャプチャしてください。

IPFSメタデータのダウンロード

hardhat-deploy-metadataプラグインを使用する場合、IPFSメタデータはプロジェクトのmetadataフォルダに保存されますが、Quaiscan用に適切にフォーマットされていません。 Quaiscanにアップロードしてコントラクトを検証するために、IPFSから適切なフォーマットをダウンロードする必要があります。 コントラクトをデプロイしたときのあなたのIPFSハッシュを使用して、以下のコマンドを実行し、メタデータをダウンロードしてipfsMeta.jsonとして保存します。
curl https://ipfs.qu.ai/ipfs/[YOUR IPFS METADATA HASH] > ipfsMeta.json

Quaiscanでのスマートコントラクト検証

デプロイされたスマートコントラクトと適切なJSON形式のIPFSメタデータが揃ったので、Quaiscanでスマートコントラクトを検証できます。 ブラウザを開き、Quaiscanのコントラクト検証ページにアクセスします。
このページを使用して、コントラクトのすべての詳細を書かれた通りに正確に入力します。 正しいコントラクトアドレスと、コントラクトのコードのSPX-License-Identifierで示されるライセンスが必要です。 検証方法として**Solidity (Standard JSON input)**を選択し、コントラクトのコンパイルに使用したSolidityコンパイラの正しいバージョンを選択します。 最後にipfsMeta.jsonをアップロードし、Verify & Publishをクリックしてスマートコントラクトを検証します。
成功すると、Quaiscanのコントラクトページにアクセスして直接対話し、検証ステータスを確認できます。
おめでとうございます!Quaiscanでスマートコントラクトを検証しました!