Solidity
Hardhat 編譯錯誤,即使在配置文件中提到了編譯器版本
我有一份契約,其中我導入了一個包,該包作為回報從 openzeppelin 導入 IERC20.sol,該包具有solidity
^0.7.0
版本,而我的契約具有solidity0.8.10
版本。我已經在 hardhat.config.js 文件中提到了兩個solidity版本,但它仍然給我這個錯誤:Error HH606: The project cannot be compiled, see reasons below. These files depend on other files that use a different and incompatible version of Solidity: * contracts/Test.sol (0.8.10) depends on @openzeppelin/contracts/token/ERC20/IERC20.sol (^0.7.0) To learn more, run the command again with --verbose Read about compiler configuration at https://hardhat.org/config
我有這樣的
hardhat.config.js
文件:require("@nomicfoundation/hardhat-toolbox"); /** @type import('hardhat/config').HardhatUserConfig */ module.exports = { solidity: { compilers: [ { version: "0.8.10", }, { version: "0.6.12", }, { version:"0.7.0", } ], }, };
我已經提到了我的合約所需的所有可靠版本,但仍然安全帽讓我在編譯智能合約時出錯。有誰知道我在這裡做錯了什麼?
這裡有一個非常相似的主題:https ://stackoverflow.com/questions/68163319/failing-to-compile-multiple-solidity-versions
有人提到這個安全帽常見問題解答說:
但在某些情況下,您可能有一個帶有 ^0.7.0 版本的編譯指示的契約,它導入了一個帶有 ^0.6.0 的契約。這永遠無法編譯。Pragma 版本指示可以使用編譯器版本的哪個子集,如果兩個 pragma 版本不相交(如本範例中所示),則無法編譯文件。時期。