Я хочу скомпилировать свой умный контракт ehtereum HelloWorld.sol.Во всех руководствах вы делаете это следующим образом:
var solc = require('solc');
var compiledContract = solc.compile(fs.readFileSync('HelloWorld.sol').toString();
, где HelloWorld.sol:
pragma solidity ^0.5.1;
contract HelloWorld {
bytes32 message;
constructor(bytes32 myMessage) public {
message = myMessage;
}
function getMessage() public view returns(bytes32){
return message;
}
}
Другими словами, я помещаю свой необработанный код контракта Solidity в solc.метод compile ().Но этот процесс дает мне эту ошибку в compiledContract:
'{"errors":[{"component":"general","formattedMessage":"* Line 1, Column 1\\n Syntax error: value, object or array expected.\\n* Line 1, Column 2\\n Extra non-whitespace after JSON value.\\n","message":"* Line 1, Column 1\\n Syntax error: value, object or array expected.\\n* Line 1, Column 2\\n Extra non-whitespace after JSON value.\\n","severity":"error","type":"JSONError"}]}'
Я долго искал решение, но единственное, что я обнаружил, это то, что
"API высокого уровнясостоит из одного метода compile, который ожидает стандартного ввода и вывода JSON стандартного компилятора. "
( link ).Стандартный ввод JSON выглядит как некоторая комбинация JSON и этого кода солидности.Итак, мой вопрос - Как перенести код контракта солидности в стандартный ввод JSON компилятора?Я правильно понял, что это единственный способ составить договор?Спасибо.