Solidity Browser und Truffle geben unterschiedliche Bytecodes aus

Ich kompiliere im Solidity-Browser und kompiliere dann genau denselben Code in Trüffel.

Der Code ist folgender:

pragma solidity ^0.4.11;
contract double{function d(int256 a)constant returns(int256){return a*2;}}

Die resultierenden Bytecodes unterscheiden sich voneinander.

Truffle:
0x60606040523415600e57600080fd5b5b60978061001d6000396000f300606060405263ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636482e6268114603c575b600080fd5b3415604657600080fd5b604f6004356061565b60405190815260200160405180910390f35b600281025b9190505600a165627a7a723058203747098ed60838a4e4a3a8ba05db5e7f3eeb60237761809e1f89f6007b52938e0029


Solidity Browser:
6060604052341561000f57600080fd5b5b60ab8061001e6000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680636482e62614603d575b600080fd5b3415604757600080fd5b605b60048080359060200190919050506071565b6040518082815260200191505060405180910390f35b60006002820290505b9190505600a165627a7a72305820e77f3602d7e14b8ffd5ef32976d823a77ab5c91be0a1cad7a188ff3bdba9d4ea0029

Gibt es noch etwas, das ich in Truffle tun muss, damit ich es genau so kompilieren kann, wie es der Solidity-Browser tut?

verwendest du denselben Compiler?
Ich verwende Trüffel so wie er kommt und Solidity Browser wie er kommt ... Die Compliver-Version ist in beiden Pragma solidity ^ 0.4.11;

Antworten (1)

using ^0.4.11bedeutet, dass Ihr Vertrag mit dem Compiler 0.4.11 oder einer neueren Version (aktuelle Version ist 0.4.15) kompiliert wird. Ich denke also, dass Truffle und Solidity Browser unterschiedliche Compiler verwenden. Sie müssen prüfen, welche Version verwendet wird.
Truffle : Wie finde ich die genaue Solidity-Compiler-Version, die von Truffle verwendet wird?
Remix:Geben Sie hier die Bildbeschreibung ein

Leider hat das Abgleichen der Compiler-Versionen immer noch nicht das gleiche Ergebnis im Bytecode ergeben.
hast du die optimierung in remix aktiviert?