js 中的“solc.loadRemoteVersion”错误

Posted

技术标签:

【中文标题】js 中的“solc.loadRemoteVersion”错误【英文标题】:Error with "solc.loadRemoteVersion" in js 【发布时间】:2019-11-05 12:13:58 【问题描述】:

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

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

这是我为编译solidity代码而尝试运行的代码:


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】:

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

【讨论】:

以上是关于js 中的“solc.loadRemoteVersion”错误的主要内容,如果未能解决你的问题,请参考以下文章

前端js中的this

在C++中怎么调用一个js中的方法

如何将 npm 包中的 JS 文件包含到 Nuxt.js 中的单独页面

node.js 项目中的 index.js 用于啥?

shopify中的.js和.js.liquid有啥区别?

如何在js文件中调用另一个js中的方法(详细请进)