Ich versuche, einen einfachen Vertrag zu kompilieren und bereitzustellen:
var Web3 = require("web3");
var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
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);
console.log(compiled);
Aufgrund der Dokumentation hatte ich so etwas erwartet:
"test": {
"code": "0x605280600c6000396000f3006000357c010000000000000000000000000000000000000000000000000000000090048063c6888fa114602e57005b60376004356041565b8060005260206000f35b6000600782029050604d565b91905056",
"info": {
"source": "contract test {\n\tfunction multiply(uint a) returns(uint d) {\n\t\treturn a * 7;\n\t}\n}\n",
"language": "Solidity",
"languageVersion": "0",
"compilerVersion": "0.8.2",
"abiDefinition": [
{ ...
aber was ich bekomme ist:
0x606060405260308060106000396000f3606060405260e060020a6000350463c6888fa18114601c575b6002565b346002576007600435026060908150f3209
Ich bin mir nicht sicher, wie ich daraus einen neuen Vertrag erstellen soll, da Beispiele, die ich gefunden habe, sagen, dass ich so etwas tun sollte
var greeterContract = web3.eth.contract(compiled.test.info.abiDefinition);
var greeter = greeterContract.new(_greeting,{from:web3.eth.accounts[0], data: compiled.test.code, gas: 1000000}, function(e, contract){
Irgendwelche Ideen, was ich falsch gemacht habe?
PS Ich verwende Parity als Anbieter
eth_compileSolidity
Klingt so, als ob Parity nicht gemäß den Spezifikationen implementiert wird .
Bearbeiten: Sieht aus wie ein Grund, warum sie nicht das vollständige Ergebnis zurückgeben, ist, dass sie es (noch) nicht können. Laut diesem Link erhalten sie die ABI nicht von der Kompilierung: https://github.com/ethcore/parity/issues/2276#issuecomment-249277973
Bearbeiten 2: Sieht so aus, als gäbe es hier ein Gespräch darüber: https://github.com/ethcore/parity/issues/2272
Datenschutz ist ein Menschenrecht.eth
geth
, ist unter ethereum.stackexchange.com/questions/2751/… verfügbar .