Solidity

Help Please 這些文件中的 Solidity 版本編譯指示語句與您的 config*contracts/hello-world.sol (‘0.8.4’) 中配置的編譯器不匹配

  • June 12, 2022

請檢查一下,我已經在捲曲後添加了逗號這是兩個文件並排並返回錯誤這是我在使用 pragma solidity >=0.7.0 <0.9.0; 時遇到的新錯誤;這是我在嘗試使用 npx hardhat run scripts/interact.js –network ropsten 編譯時遇到的 *contracts/hello-world.sol (^0.8.4) 錯誤  嗨,請我無法弄清楚為什麼我在嘗試使用 npx hardhat run scripts/interact.js –network ropsten on vs code 編譯我的interact.js腳本時遇到此錯誤:錯誤HH606:無法編譯項目,請參閱下面的原因.

這些文件中的 Solidity 版本編譯指示語句與您的配置中的任何已配置編譯器都不匹配。在您的安全帽配置中更改編譯指示或配置其他編譯器版本。

  • 契約/hello-world.sol (“0.8.4”)

要了解更多資訊,請使用 –verbose 再次執行該命令

這是我的可靠程式碼:

// SPDX-License-Identifier: MIT


pragma solidity "0.8.4";
contract HelloWorld {
   event updatedmessages(string oldStr, string newStr);

   string public message;

   constructor (string memory initmessage) {
   message = initmessage;
   }

   function update(string memory newMessage) public {
      string memory oldMsg = message;
      message = newMessage;
      emit updatedmessages(oldMsg,newMessage);
   }
}

這是 hardhat.config.js

/**
* @type import('hardhat/config').HardhatUserConfig
*/
require('dotenv').config();
require("@nomiclabs/hardhat-ethers");
require("@nomiclabs/hardhat-etherscan");
const { API_URL, PRIVATE_KEY } = process.env;
const ETHERSCAN_API_KEY = process.env.ETHERSCAN_API_KEY;
module.exports = {
  solidity: "0.8.4",
  defaultNetwork: "ropsten",
  networks: {
      hardhat: {},
      ropsten: {
         url: API_URL,
         accounts: [`0x${PRIVATE_KEY}`]
      }
  },
  etherscan: {
    // Your API key for Etherscan
    // Obtain one at https://etherscan.io/
    apiKey:ETHERSCAN_API_KEY
  }
};

關於如何解決此錯誤的任何想法 [![這裡是 Sol 文件![][1][1]](https://i.stack.imgur.com/qPliR.png),請幫助提前致謝

嘗試這個:

hartdhat.config.js

module.exports = {
 solidity: "0.7.1",
};

0.7.1–> 0.8.4(你在智能合約中使用的solidity版本)

如果不起作用,請在下面發表評論,或 git 上傳程式碼並提供連結。

它需要與你的 hardhat.config.js 中的 module.exports 中的內容相匹配

但是契約中的報價導致了問題

嘗試這個

pragma solidity ^0.8.4;

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