js中的“ solc.loadRemoteVersion”错误

时间:2019-06-23 12:25:16

标签: node.js version solidity

我正在遵循有关设置管道以编译和部署合同并使用js文件的教程,但是tuturial使用0.4.17的solidity版本,而我下载的版本是最新版本(5 .something),因此我四处搜索,发现我需要使用此功能:loadRemoteVersion,以便与本教程兼容。但是我一直收到错误消息。另外,我也不确定是否已正确安装了某些依赖项。

我使用node compile.js运行脚本。

这是我正在尝试运行的用于编译坚固性代码的代码:


const path = require('path');
const fs = require('fs');
const solc = require('solc');

const inboxPath = path.resolve(__dirname, 'contracts', 'Inbox.sol');
const source = fs.readFileSync(inboxPath, 'utf8').toString();
//console.log(solc.compile(source, 1));


solc.loadRemoteVersion('v0.4.1+commit.4fc6fc2c', function(err, 
solcV04){
    if (err) {
        console.log("Oopsies");
    }

    console.log(solcV04.compile(source, 1));
});

这是合同代码:


pragma solidity ^0.4.17;
contract Inbox {
    string public message;

    constructor (string initialMessage) public {
        message = initialMessage;
    }

    function setMessage(string newMessage) public {
       message = newMessage;
    }

}

'''


I should be getting a class dump but instead I am getting this:

{"errors":[{"type":"SOLCError","component":"solcjs","severity":"error","message":"Invalid import callback supplied","formattedMessage":"Error: Invalid import callback supplied"}]}

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,只是不知道版本如何运行良好,但是现在我完全卸载了solc,并为node.js安装了正确的编译器版本,因此不需要loadRemoteVersion函数。< / p>