繁体   English   中英

Hardhat 外部依赖项(sol 文件)

[英]Hardhat external dependencies (sol files)

我有一个包含以下导入语句的智能合约:

import "@prb/contracts/PRBMathSD59x18.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";

如何让 Hard Hat 下载这些外部合约并在编译时导入它们?

我尝试将第一行更改为:

import "@prb/math/contracts/PRBMathSD59x18.sol";

正如这个答案所建议的,但没有任何成功。 可能是因为我使用的是scaffold-eth ,它建议使用$ yarn deploy来构建合约。

我尝试手动安装它们。

$ npm install @paulrberg/prb-math@2.5.0
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/@paulrberg%2fprb-math - Not found
npm ERR! 404 
npm ERR! 404  '@paulrberg/prb-math@2.5.0' is not in this registry.
npm ERR! 404 
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
npm ERR! A complete log of this run can be found in:
npm ERR!     /home/developer/.npm/_logs/2022-10-09T22_29_12_712Z-debug-0.log

我还没有设法在文档中找到如何执行此操作。

首先,我在写这篇文章时, prb的最后一个版本是2.4.3而不是2.5.0 ,所以这是你的问题。你尝试安装的版本不存在。

所以你有 3 个依赖项,所以你需要安装它,我建议执行这个命令:

  • prb : npm install prb-math
  • openzepellinnpm install @openzeppelin/contracts
  • chainlink : npm install @chainlink/contracts

安装后,如果你的合约是正确的,你就可以编译

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM