Solidity
Help Please 這些文件中的 Solidity 版本編譯指示語句與您的 config*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;