Ich versuche, den folgenden Solidity-Code mit Solc in NodeJS zu kompilieren.
pragma solidity ^0.4.11;
contract helloWorld {
string public message;
function constructor() public{
message = "Hello World";
}
function sayHi() constant public returns (string){
return message;
}
}
Die Befehle, die ich dafür in NodeJS geschrieben habe, sind:
var source = `source code above`
var compiled = solc.compile(source)
Wenn ich mir das 'kompilierte' Objekt ansehe, sehe ich die folgenden Fehler:
formal:
{ errors:
[ ':5:3: Error: Type "string" not supported for state variable.\n string public message;\n ^-------------------^\n' ] },
sourceList: [ '' ],
sources: { '': { AST: [Object] } } }
Ich habe eine funktionierende TestRPC-Instanz geöffnet und kann web3.eth.accounts von der Knotenkonsole zu dieser TestRPC-Instanz (über Port 8485) ausführen. Der Code wird in Remix korrekt kompiliert. Ich folge einem Leitfaden, um diese Bibliotheken auf einem Windows-Computer zum Laufen zu bringen, daher sehe ich nicht, warum irgendetwas nicht miteinander kompatibel sein könnte.
Die von mir verwendeten Versionen sind
Der Fehler, den Sie erhalten, stammt von der Funktion
publicsayHi() constant public returns (string)
~~~Ich denke, dass die Solidity-Funktion den Typ String nicht zurückgeben kann.~~~ (Da lag ich falsch)
Error: Type "string" not supported for state variable.
function constructor() public
Soll das sein function helloWorld() public
?
AnAllergyToAnalogy
pragma solidity ^0.4.11;
zupragma solidity ^0.4.22;
(der neuesten Version) zu wechseln?