Solidity

不同編譯器版本的solidity不匹配

  • November 1, 2022

我目前正在使用“ Hardhat 文件”來使用正確的 Solidity 編譯器版本,但是在使用 精確編譯我的 file.sol 時pragma solidity ^0.6.0,我仍然遇到錯誤:

module.exports = {
 solidity: {
   version: "0.6.5",
   settings: {
     optimizer: {
       enabled: true,
       runs: 1000,
     },
   },
 },
};

錯誤資訊

"Source file requires different compiler version (current compiler is 0.8.17+commit.8df45f5f.Emscripten.clang) - note that nightly builds are considered to be strictly less than the released version"

好像HardHat不能下載編譯器,請問您能幫幫我嗎?

有時您可能希望使用與提供的編譯器不同的編譯器solc-bin您可以在儲存庫https://binaries.soliditylang.org/中找到所有不同的版本

目前,支持使用不同版本的solidity 編譯器的四種方法。遠端本地節點模組嵌入式

您可以在您使用的 vscode 設置或工作區設置中更改編譯器。

在此處輸入圖像描述

然後選擇要使用的特定版本:

在此處輸入圖像描述

**注意:**可能需要為 Visual Studio Code 安裝以下擴展之一:

*Ethereum Solidity LanguageSolidity and Hardhat support*由 Hardhat 團隊

建議將 Solidity 版本鎖定並指定不帶 ^(carat) 符號,如pragma solidity 0.6.5. 這樣可以確保始終使用特定的編譯器,使用最常測試的程式碼。它還可以防止程式碼表現出任何意外或意外的行為。

引用自:https://ethereum.stackexchange.com/questions/138490