天天看點

智能合約編譯步驟及錯誤解決

編譯合約時出現錯誤,搜了一些資料,最後發現不是合約的問題,而是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"))

  • web3.isConneted()

    //看一下是否連接配接成功,如果沒有的話要啟動Ganache
  • var solc = require('solc')

  • var code = fs.readFileSync('test.sol').toString()

  • var compiledCode = solc.compile(code)

  • compiledCode

    //檢視結果的時候就會出現上述問題,将版本号調整一下
    • npm uninstall solc

    • npm install [email protected]

      //親測22可以
  • 同時記得重新引入solc以及調整自己的合約solidity版本号

參考文章

[1][2]

繼續閱讀