web-dev-qa-db-ja.com

ソースファイルには異なるコンパイラバージョンが必要です:Truffle

私は1つのシンプルなスマートコントラクトを堅実に記述し、それをトリュフで移行しようとしています。

$ truffle migrate
Compiling .\contracts\Election.sol...
Compiling .\contracts\Migrations.sol...

    /D/ethereum/electiondemo/contracts/Migrations.sol:1:1: SyntaxError: Source file requires different compiler version (current compiler is 0.5.0+commit.1d4f565a.Emscripten.clang - note that nightly builds are considered to be strictly less than the released version
    pragma solidity ^0.4.24;
    ^----------------------^

Compilation failed. See above.`enter code here`
Truffle v5.0.0 (core: 5.0.0)
Node v8.11.1

Solidityバージョンは0.5.0です。スマートコントラクトのコードは次のとおりです。

pragma solidity ^0.5.0;

contract Election {
    // Read/write candidate
    string public candidate;

    // Constructor
    constructor ( ) public {
        candidate = "Candidate 1";
    }
}
4
Vikas Banage

解決策を得た:truffle.js。ソリッドバージョンを指定する必要があります

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
    }
  },
  compilers: {
    solc: {
      **version: "0.4.24"** // ex:  "0.4.20". (Default: Truffle's installed solc)
    }
 }
};

スマートコントラクトで与えられるのと同じニーズ

3
Vikas Banage

** truffle.jsに以下の行を追加します**
{ compilers: { solc: { version: "0.4.24" // ex: "0.4.20". (Default: Truffle's installed solc) } } }

1
Prashant Kajale

それでもエラーが表示されます。Ethereumクライアントに接続できませんでした。 Ethereumクライアントを確認してください:-実行中-RPC接続を受け入れています(つまり、「-rpc」オプションがgethで使用されています)-ネットワーク経由でアクセス可能です-Truffle構成ファイル(truffle.js)で適切に構成されています

トリュフv5.0.1(コア:5.0.1)Node v8.11.3

0

移行契約(Migrations.sol)には0.4.24が必要です。

移行契約に移動し、依存関係を0.5に変更するか、メイン契約の依存関係を0.4に変更します。*

0
ferit