1

目前我正在做一个小的动态 nft 示例。编译、部署和资助合同运作良好。

如果我尝试使用 truffle 和 truffle-verfiy-plugin 验证合同,我收到以下错误:

Cannot find module '@chainlink/contracts/src/v0.6/VRFConsumerBase.sol'
Require stack:
- /usr/lib/node_modules/truffle-plugin-verify/verify.js
- /usr/lib/node_modules/truffle/node_modules/original-require/index.js
- /usr/lib/node_modules/truffle/build/cli.bundled.js
Failed to verify 1 contract(s): DynamicNft

这是我在合同中导入的模块:


import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@chainlink/contracts/src/v0.6/VRFConsumerBase.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/Strings.sol";

我的 package.json-dependencies 看起来像:

    "@chainlink/contracts": "0.0.8",
    "@openzeppelin/contracts": "^3.1.0",
    "@truffle/hdwallet-provider": "^1.0.40",
    "dotenv": "^8.2.0"
  }

至少我为验证运行的命令:

truffle run verify DynamicNft --network kovan --license MIT

合同 有人知道吗?

谢谢你的帮助!

4

2 回答 2

2

在对 chainlink-docs 进行研究后,我找到了解决方案。我将以下内容添加到 devDependencies:

  "devDependencies": {
    "@chainlink/belt": "^0.0.1",
    "@chainlink/test-helpers": "0.0.5",
    "@openzeppelin/test-helpers": "^0.5.6",
    "chai": "^4.2.0",
    "depcheck": "^0.9.1",
    "solhint": "^2.1.0",
    "truffle": "^5.1.5",
    "truffle-plugin-verify": "^0.5.7"
  }

使用 npm install 再次安装并再次尝试:

kevin@kevin-desktop:~/websites/html/dynamic-nft-example$ npm run verify

> dynamic-nft-example@1.0.0 verify
> truffle run verify DynamicNft --network kovan --license ISC

Verifying DynamicNft
Pass - Verified: https://kovan.etherscan.io/address/0xFbF0C9F50cd04a167FF4287BF8439006EB4c670C#contracts
Successfully verified 1 contract(s).
于 2021-04-10T18:21:53.653 回答
1

请尝试这样:

npm install -g @chainlink/contracts truffle-plugin-verify

接着

truffle run verify DynamicNft --network kovan

我希望这个对你有用。

于 2021-09-15T08:13:14.760 回答