solidity的版本问题
因为刚接触 nodejs,使用npm安装依赖模块可以全局添加,也可以当前目录内添加,区别就是增加一个-g
npm install solc -g --save
这个样子会在全局安装solc模块,而且会是最新版本的,这样会有问题。solidity的各个版本的区别有点大。在0.4.24
版本能正常编译的代码,在0.5.x
或者是最新版本的solc-js编译器中可能都不能正常编译。
所以推荐如下安装方式
# 安装solc时指定版本,先不要默认使用最新版本,不要加-g全局安装
npm install solc@0.4.24 --save
以下问题就是安装的solidity版本过高导致的,默认是最新的0.8.17
,卸载掉安装为0.4.24
就能正常编译测试代码了。
{"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"}]}