部署Hardhat合约遇HH700错误:HelloWorld合约工件未找到求助
解决Hardhat部署时HH700: Artifact for contract "HelloWorld" not found错误
以下是针对性的解决步骤:
检查合约文件的位置与命名一致性
确保HelloWorld.sol合约文件放在Hardhat默认的contracts/根目录下,同时合约代码内的合约名称必须和调用getContractFactory时传入的名称完全匹配(包括大小写)。示例合约结构:// contracts/HelloWorld.sol contract HelloWorld { // 合约逻辑代码 }重新编译合约
执行npx hardhat compile命令完成合约编译,确保生成对应的artifact文件(存放在artifacts/contracts/HelloWorld.sol/目录下)。如果之前编译有残留问题,先删除项目根目录下的artifacts/和cache/文件夹,再重新执行编译命令。修正deploy.js中的合约引用
调用getContractFactory时传入的是合约名称,不是合约文件名,不要加.sol后缀。正确写法如下:async function main() { const HelloWorld = await ethers.getContractFactory("HelloWorld"); const hello_world = await HelloWorld.deploy("Hello World!"); console.log("Contract deployed to address:", hello_world.address); }检查Hardhat配置文件
打开hardhat.config.js,确认没有自定义修改合约源文件路径。如果配置了paths.sources字段,需确保合约文件存放在对应的目录下,示例:module.exports = { paths: { sources: "./custom-contracts" // 合约需放在这个自定义目录下 } };
内容的提问来源于stack exchange,提问作者maxine.09
相关产品推荐
相关产品推荐

