Ошибка с "solc.loadRemoteVersion" в js - PullRequest
0 голосов
/ 23 июня 2019

Я следую учебному пособию по настройке конвейера для компиляции и развертывания контрактов, и для этого я использую файл js, но в tuturial используется версия твердости 0.4.17, а загруженная мною версия является самой последней (5что-то), поэтому я искал вокруг и обнаружил, что мне нужно использовать эту функцию: 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 голосов
/ 23 июня 2019

Я нашел решение, я просто не знал о том, как версии работали очень хорошо, но теперь я просто полностью удалил solc и установил правильную версию компилятора для node.js, поэтому нет необходимости в функции loadRemoteVersion.

...