編譯合約
建立和編寫數位資產專案之後,您可以安裝相依性並編譯智慧型合約。
在產生或匯入專案後安裝相依性,並在專案的 package.json 檔案變更時重新安裝。安裝相依性之後,以及每當 Solidity、TypeScript 部署指令碼或產生的專案來源變更時,編譯合約。
- 在 Visual Studio Code 的 Blockchain App Builder For Besu 活動列中開啟合約檢視。
- 選取產生或匯入的 Hardhat 專案,然後開啟該專案的部署 / 執行表單。如果有一個以上的專案可用,請從表單頂端的專案清單中選取專案。
- 選取部署頁籤,然後選取安裝相依性。安裝相依性時等待。如果安裝失敗,請更正報告的錯誤,然後再次選取安裝相依性。
對於使用 compose 函數產生的專案,npm 會安裝標準 Hardhat 和 OpenZeppelin 相依性,並且從
.obp-bap/plugins/資料夾的本機存檔解析隨附的 Oracle Blockchain Platform Plug-in。將該資料夾保留在專案中;package.json檔案會使用本機file:相依性參照 Plug-in 存檔。 - 順利安裝相依性之後,請選取編譯。正在編譯合約,請稍候。如果編譯失敗,請更正報告的錯誤,然後再次選取編譯。
Hardhat 會將編譯的使用者自建物件寫入專案的 artifacts/ 目錄,並使用 cache/ 目錄作為編譯器快取資料。此擴充功能使用使用者自建物件以及 Composer 產生的清單,來尋找用於部署、執行、包裝函式 API 和 RPC 代理主機工具的權杖和帳戶 ABI。
編譯合約後,您可以設定環境,然後部署和執行合約。
編譯錯誤疑難排解
| 訊息或條件 | 解決方式 |
|---|---|
Unable to run npm install |
Visual Studio Code 無法使用 Node.js 或 npm。請驗證 Node.js 和 npm 安裝,然後重新啟動 Visual Studio Code。如果 Node.js 是由 nvm 管理,請從終端機開啟 Visual Studio 程式碼,讓它繼承 Shell PATH 變數。 |
Unable to run Hardhat |
相依性可能未安裝,或找不到本機 Hardhat、npx 或 npm。執行安裝相依性並確認 Visual Studio 程式碼可以使用 Node.js。 |
| npm 找不到本機 Plug-in 存檔 | 確認 .obp-bap/plugins/ 資料夾仍然存在,而且包含 package.json 檔案所參照的隨附 .tgz 檔案。移除 Plug-in 資料夾時重新產生專案。
|
HH1: You are not inside a Hardhat project |
確定在專案選取器中選取正確的匯入或組合專案。選取的根目錄必須包含 hardhat.config.ts 檔案。
|
| 遺漏合約構件 | 從擁有合約的專案執行編譯。請勿使用來自不同參照專案或 SDK 標準的使用者自建物件。 |
| 來源變更之後仍會保留編譯錯誤 | 執行清除,然後執行編譯,以便 Hardhat 從目前的來源重建人工因素。 |