You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署VRFCoordinatorV2Mocks模拟合约时遇找不到工件错误求助

问题解决:Error: cannot find artifact "VRFCoordinatorV2Mocks"

以下是针对性的排查和解决步骤:

1. 修正合约定义问题

你当前的合约代码仅导入了Chainlink的Mock合约,但没有实际定义自己的合约,导致编译后无法生成对应artifact。同时注意Chainlink官方Mock合约名为VRFCoordinatorV2Mock(单数Mock),需和你自定义的合约名、部署脚本中的名称统一:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

import "@chainlink/contracts/src/v0.8/mocks/VRFCoordinatorV2Mock.sol";

// 必须定义自己的合约,继承官方Mock
contract VRFCoordinatorV2Mocks is VRFCoordinatorV2Mock {
    constructor(uint96 baseFee, uint96 gasPriceLink) VRFCoordinatorV2Mock(baseFee, gasPriceLink) {}
}

确保合约文件名为VRFCoordinatorV2Mocks.sol,放在项目contracts目录下(可自建mocks子目录分类)。

2. 清理并重新编译

删除项目根目录下的artifacts和cache文件夹,彻底清理编译缓存,再重新编译:

npx hardhat compile

编译完成后检查artifacts/contracts目录下是否生成VRFCoordinatorV2Mocks.json文件,若未生成则查看编译日志定位具体错误。

3. 检查Hardhat路径配置

确认hardhat.config.js中的路径配置正确指向合约目录:

module.exports = {
  paths: {
    sources: "./contracts",
    artifacts: "./artifacts",
    cache: "./cache",
  },
  // 其他配置...
};

4. 核对Chainlink包版本

检查package.json中@chainlink/contracts的版本,确保和Solidity版本兼容(如v0.8.x合约对应包版本≥0.4.0),版本不匹配则重新安装:

npm install @chainlink/contracts@latest

内容的提问来源于stack exchange,提问作者Teerth Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 06:35:44