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?
using ^0.4.11
bedeutet, 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:
Badr Bellaj
Dino Anastos