編譯合約時出現錯誤,搜了一些資料,最後發現不是合約的問題,而是solc版本号的問題,現在使用npm安裝的話,solc版本号已經到了0.8.4,但是很容易出現錯誤,還是0.4.X的版本穩定一些
‘{“errors”:[{“component”:“general”,“formattedMessage”:"* Line 1,
Column 2\n Syntax error: value, object or array expected.\n* Line 1,
Column 3\n Extra non-whitespace after JSON value.\n",“message”:"* Line
1, Column 2\n Syntax error: value, object or array expected.\n* Line
1, Column 3\n Extra non-whitespace after JSON
value.\n",“severity”:“error”,“type”:“JSONError”}]}’
編譯合約的步驟:
- 使用
指令進入控制台node
-
var Web3 = require('web3')
-
var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"))
-
//看一下是否連接配接成功,如果沒有的話要啟動Ganacheweb3.isConneted()
-
var solc = require('solc')
-
var code = fs.readFileSync('test.sol').toString()
-
var compiledCode = solc.compile(code)
-
//檢視結果的時候就會出現上述問題,将版本号調整一下compiledCode
-
npm uninstall solc
-
//親測22可以npm install [email protected]
-
- 同時記得重新引入solc以及調整自己的合約solidity版本号
參考文章
[1][2]