Truffle – Compatibility Problem: Truffle Version 0.5.16 vs Solidity File 0.8.3

solctruffle

My smart contract (SC) file has the following line:

pragma solidity ^0.8.3;

When I am compiling it with truffle, I am getting following error:

Error: Truffle is currently using solc 0.5.16, but one or more of your contracts specify "pragma solidity ^0.8.3".
Please update your truffle config or pragma statement(s).
(See https://trufflesuite.com/docs/truffle/reference/configuration#compiler-configuration for information on
configuring Truffle to use a specific solc compiler version.)

Compilation failed. See above.
Truffle v5.1.67 (core: 5.1.67)
Node v10.23.3

The contents of my configuration file are:

module.exports = {
  // See <http://truffleframework.com/docs/advanced/configuration>
  // for more about customizing your Truffle configuration!
  networks: {
    development: {
      host: "127.0.0.1",
      port: 7545,
      network_id: "*" // Match any network id
    },
    develop: {
      port: 8545
    }
  }
};

Somebody please guide me how to solve this compatibility problem.

Zulfi.

Best Answer

You have to add the required version to the compiler seciont in the truffle-config file, see the documentation for more details.

module.exports = {
  // See <http://truffleframework.com/docs/advanced/configuration>
  // for more about customizing your Truffle configuration!
  networks: {
    development: {
      host: "127.0.0.1",
      port: 7545,
      network_id: "*" // Match any network id
    },
    develop: {
      port: 8545
    }
  },
  compilers: {
    solc: {
      version: "0.8.3"
    }
  }
};
Related Topic