Solidity

HardhatError:HH700:未找到契約“Greeter”的工件 - 澄清Hrd_嗬嗬嗬嗬_____epelin_H一種rdH一種噸,這p和n和和pp和l一世nHardhat, openzeppelin

  • April 18, 2022

我在執行此操作時不斷收到此錯誤:npx hardhat run scripts/sample-script.js –network testnet。

我得到了一個答案:“您將契約命名為 ‘Nikola’ 而不是 ‘Greeter’。實際的文件名僅對導入很重要。” 對於這個問題:HardhatError: HH700: Artifact for contract “Greeter” not found。

但我無法修復它,我刪除了契約歡迎程序並將 greeter.sol 編輯為 Nikola.sol 但問題仍然存在。

有人可以就如何解決此問題提供一些建議,將不勝感激。至少澄清一下,會很棒。我應該怎麼做才能修復它?

在此處輸入圖像描述

帶有 sample-script.js 的更新圖片。

在此處輸入圖像描述

secret@MacBook-Air-som-tillhor-secret 程式碼 2 - Hardhat % npx hardhat run scripts/sample-script.js –network testnet

使用 0.8.4 編譯 1 個文件 編譯成功完成

HardhatError:HH700:未找到契約“Greeter”的工件。在 Artifacts._handleWrongArtifactForContractName (/Users/secret/Documents/Code 2 - Hardhat /node_modules/hardhat/src/internal/artifacts.ts:473:11) 在 Artifacts._getArtifactPathFromFiles (/Users/secret/Documents/Code 2 - Hardhat / node_modules/hardhat/src/internal/artifacts.ts:587:19) 在 Artifacts._getArtifactPath (/Users/secret/Documents/Code 2 - Hardhat /node_modules/hardhat/src/internal/artifacts.ts:270:17) 在Artifacts.readArtifact (/Users/secret/Documents/Code 2 - Hardhat /node_modules/hardhat/src/internal/artifacts.ts:50:26) 在 getContractFactoryByName (/Users/secret/Documents/Code 2 - Hardhat /node_modules/@ nomiclabs/hardhat-ethers/src/internal/helpers.ts:100:20) 在主要 (/Users/secret/Documents/Code 2 - Hardhat /scripts/sample-script.js:17:19)

請記住,您的 Solidity 契約的名稱也必須匹配。

如果您嘗試使用

const License = await ethers.getContractFactory('License');

這行得通

contract License {...}

這不

contract MyLicense {...}

問題可能出在您sample-script.js身上,並且您引用的是“Greeter”而不是“Nikola”。如果沒有,請嘗試刪除artifacts/cache/文件夾並重試。

引用自:https://ethereum.stackexchange.com/questions/115025