Truffle version


Truffle version


Met with one problem today, when using truffle, there are some conflicts with the solc version.

Migration.sol pragma solidity >=0.4.21 <0.6.0; Contract_code.sol pragma solidity 0.4.19;
solc version 0.4.24


module.exports = {networks:  
{host: "", 
port: 8545, 
network_id: "*", }},
compilers: {solc: 
{version: "0.4.24", }}}

However, when I run truffle migrate, here is the result I got.

Error: Truffle is currently using solc 0.4.24, but one or more of your contracts specify "pragma solidity 0.4.19".
Please update your truffle config or pragma statement(s).
(See for information on
configuring Truffle to use a specific solc compiler version.)

I noticed there is also another error shown, which says:

Error: CompileError: /home/jiru/EEthereum/contract_code/assdbs_ASDCBA/contracts/assdbs_ASDCBA.sol:13:1: ParserError: Source file requires different compiler version (current compiler is 0.5.12+commit.7709ece9.Linux.g++ - note that nightly builds are considered to be strictly less than the released version
pragma solidity 0.4.19;

I tried multiple ways:

  • Change the version in truffle-config.js to ^0.4.24(which means >=0.4.24).

  • Change the version in migration.sol to pragma solidity >=0.4.19 <0.6.0;
  • Change the version in truffle-config.js to 0.4.21.

The first two methods returned the same error. The last one returned

/home/jiru/EEthereum/contract_code/assdbs_ASDCBA/contracts/Migrations.sol:7:14: ParserError: Expected identifier, got 'LParen'
  constructor() public {

But none of these worked. However, when I tried to change the version in contract_name.sol to ^0.4.19, it worked.
Now, here are all the settings: Migration.sol pragma solidity >=0.4.21