Kompilieren Sie den Smart Contract im Konsolenbrowser

Ich verwende Metamask mit Chrom. Im Konsolenbrowser, wenn ich diesen Code ausführe

var source = "" + 
    "contract test {\n" +
    "   function multiply(uint a) returns(uint d) {\n" +
    "       return a * 7;\n" +
    "   }\n" +
    "}\n";
var compiled = web3.eth.compile.solidity(source, function(err,res){
  console.log(err);
  console.log(res);
})

Ich habe diesen Fehler:

Error: Error while compiling code.(…)

Ist es eine Möglichkeit, einen Smart Contract direkt im Konsolenbrowser zu kompilieren und bereitzustellen?

Antworten (1)

Sie können definitiv Solidität aus MetaMask kompilieren.

MetaMask übergibt diesen Inhalt an seinen gehosteten RPC zur Kompilierung, in diesem Fall an einen Paritätsknoten.

In diesem Fall ist die Fehlermeldung nicht ganz ideal, und ich werde dafür einen Fehler auf MetaMask öffnen.

Beim Öffnen des MetaMask-Hintergrundprozesses stellte ich fest, dass der von Parity ausgelöste Fehler "No such file or directory" lautet, und ich bin mir nicht sicher, warum das ausgelöst wird empfehlen, das Parity-Team nach einem aussagekräftigeren Fehler zu fragen.

Um die vollständige Ausgabe zu erhalten, können Sie dies in Ihrer Konsole ausführen, um denselben Aufruf an das Backend zu simulieren:

curl -X POST  -H "Content-Type: application/json"  --data '{"jsonrpc":"2.0","method":"eth_compileSolidity","params":["contract test { function multiply(uint a) returns(uint d) { return a * 7; } }"],"id":1}' https://morden.infura.io

Wo Sie ihn durch morden.infura.ioIhren eigenen Paritätsknoten ersetzen können, wenn Sie möchten.

Ich habe ein Issue auf MetaMask geöffnet, um Compiler-Fehler zu bewahren, und sie hier an das web3-Objekt übergeben: github.com/MetaMask/metamask-plugin/issues/794