契約のコンパイル
デジタル・アセット・プロジェクトを作成および構成した後、依存関係をインストールし、スマート・コントラクトをコンパイルします。
プロジェクトの生成またはインポート後に依存性をインストールし、プロジェクトのpackage.jsonファイルが変更されるたびに依存性を再度インストールします。依存関係のインストール後、およびSolidity、TypeScriptデプロイメント・スクリプトまたは生成されたプロジェクト・ソースが変更されるたびに、契約をコンパイルします。
- Visual Studio CodeのBlockchain App Builder For Besuアクティビティ・バーで「契約」ビューを開きます。
- 生成またはインポートされたHardhatプロジェクトを選択し、そのプロジェクトの「デプロイ/実行」フォームを開きます。複数のプロジェクトが使用可能な場合は、フォームの上部にある「プロジェクト」リストからプロジェクトを選択します。
- 「デプロイ」タブを選択し、「依存性のインストール」を選択します。依存関係がインストールされるのを待ちます。インストールに失敗した場合は、報告されたエラーを修正してから、「Install Dependencies」を再度選択します。
compose関数で生成されたプロジェクトの場合、npmは標準のHardhatおよびOpenZeppelin依存関係をインストールし、バンドルされたOracle Blockchain Platformプラグインを
.obp-bap/plugins/フォルダのローカル・アーカイブから解決します。そのフォルダをプロジェクト内に保持します。package.jsonファイルは、ローカルのfile:依存性を使用してプラグイン・アーカイブを参照します。 - 依存関係が正常にインストールされたら、「コンパイル」を選択します。契約がコンパイルされるまで待機します。コンパイルに失敗した場合は、報告されたエラーを修正してから、「コンパイル」を再度選択します。
Hardhatは、コンパイルされたアーティファクトをプロジェクトのartifacts/ディレクトリに書き込み、コンパイラ・キャッシュ・データにcache/ディレクトリを使用します。この拡張では、コンポーザ生成のマニフェストとともにアーティファクトを使用して、デプロイ、実行、ラッパーAPIおよびRPCプロキシ・ツール用のトークンおよびアカウントABIを検出します。
契約をコンパイルした後、環境を構成し、契約をデプロイして実行できます。
コンパイルエラーのトラブルシューティング
| メッセージまたは条件 | 解決策 |
|---|---|
Unable to run npm install |
Node.jsまたはnpmはVisual Studio Codeでは使用できません。Node.jsおよびnpmのインストールを確認し、Visual Studio Codeを再起動します。Node.jsがnvmによって管理されている場合は、Visual Studio Codeを端末から開き、シェルPATH変数を継承します。 |
Unable to run Hardhat |
依存関係がインストールされていないか、ローカルHardhat、npx、またはnpmが見つからない可能性があります。「依存関係のインストール」を実行し、Visual Studio CodeでNode.jsが使用可能であることを確認します。 |
| npmでローカル・プラグイン・アーカイブが見つかりません | .obp-bap/plugins/フォルダがまだ存在し、package.jsonファイルによって参照されるバンドルされた.tgzファイルが含まれていることを確認します。プラグイン・フォルダが削除された場合は、プロジェクトを再生成します。
|
HH1: You are not inside a Hardhat project |
「プロジェクト」セレクタで、正しくインポートまたは構成されたプロジェクトが選択されていることを確認します。選択したルートには、hardhat.config.tsファイルが含まれている必要があります。
|
| 契約アーティファクトがありません | 契約を所有するプロジェクトから「コンパイル」を実行します。別の参照プロジェクトまたはSDK標準のアーティファクトを使用しないでください。 |
| コンパイル・エラーはソース変更後も残ります | Hardhatが現在のソースからアーティファクトを再構築できるように、「クリーン」を実行してから「コンパイル」を実行します。 |