【发布时间】:2019-05-25 06:27:40
【问题描述】:
我在编写简单合同时,最新的 solc(0.5.2 版本)和 0.4.25 都出现错误
我尝试了以下步骤
- 已卸载 Solc:npm uninstall solc
- 安装的目标版本:npm install --save solc@0.4.25
-
node compile.js(代码如下)
{ contracts: {}, errors: [ ':1:1: ParserError: Expected pragma, import directive or contract /interface/library definition.\nD:\\RND\\BlockChain\\contracts\\Inbox.sol\n^\n' ],sourceList: [ '' ],sources: {} }
编译.js
const path = require('path');
const fs = require('fs');
const solc = require('solc');
const inPath = path.resolve(__dirname,'contracts','Inbox.sol');
const src = fs.readFileSync(inPath,'UTF-8');
const res = solc.compile(inPath, 1);
console.log(res);
收件箱.sol
pragma solidity ^0.4.25;
contract Inbox {
string message;
function Inbox(string passedName) public {
message = passedName;
}
function setMessage(string newMsg) public {
message = newMsg;
}
function getMessage() public view returns(string){
return message;
}
}
代码在 Remix 上运行良好,对于 0.5.2 版,我添加了内存标签以使其在 Remix 上编译。
ex: function setMessage(string **memory** newMsg)
【问题讨论】: