npm solc: AssertionError [ERR_ASSERTION]: указан неверный обратный вызов - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь скомпилировать интеллектуальный контракт на прочность, используя npm solc. Я пытался следовать разным примерам. Ссылка на пример: https://medium.com/coinmonks/how-to-compile-a-solidity-smart-contract-using-node-js-51ea7c6bf440

Я написал свой код следующим образом:

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



const helloPath = path.resolve(__dirname, 'contracts', 'hello.sol');
console.log("First" + helloPath);
const source = fs.readFileSync(helloPath, 'UTF-8');
console.log("Second" + source);
console.log(solc.compile(source, 1));

Я получаю следующую ошибку при запуске вышеуказанного кода.

AssertionError [ERR_ASSERTION]: Invalid callback specified.
    at wrapCallback (C:\Users\mouazzamj058\solc_example\node_modules\solc\wrapper.js:16:5)
    at runWithReadCallback (C:\Users\mouazzamj058\solc_example\node_modules\solc\wrapper.js:37:42)
    at compileStandard (C:\Users\mouazzamj058\solc_example\node_modules\solc\wrapper.js:78:14)
    at Object.compileStandardWrapper (C:\Users\mouazzamj058\solc_example\node_modules\solc\wrapper.js:85:14)
    at Object.<anonymous> (C:\Users\mouazzamj058\solc_example\example.js:4:19)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)

Пожалуйста, помогите.

Ответы [ 7 ]

0 голосов
/ 23 июня 2019

Если вы используете последнюю версию т.е.0.5.9 есть изменения в том, как вы компилируете код.

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



const helloPath = path.resolve(__dirname, 'contracts', 'hello.sol');
const source = fs.readFileSync(helloPath, 'UTF-8');

var input = {
    language: 'Solidity',
    sources: {
        'hello.sol' : {
            content: source
        }
    },
    settings: {
        outputSelection: {
            '*': {
                '*': [ '*' ]
            }
        }
    }
}; 
console.log(JSON.parse(solc.compile(JSON.stringify(input))));
0 голосов
/ 30 июня 2019

Если вы видите такую ​​ошибку. Вы должны сделать следующие два шага.

  1. Удаление solc:

    npm, деинсталляция, solc

  2. Переустановите одну из двух версий:

Версия, используемая в курсе:

npm install --save solc@0.4.17

или

Новейшая версия, которая не сломается:

npm install --save solc@0.4.25

source - Udemy - Ethereum and Solidity Полное руководство разработчика

0 голосов
/ 19 мая 2019

Обычно это ошибка утверждения между установленным компилятором солидности и версией компилятора солидности, которую вы используете в файле контракта солидности. Если вы используете

npm install --save solc@0.4.25

, чтобы установить solc на ваш Mac, пожалуйста, используйте ту же версию pragma в вашем файле солидности, как показано ниже

Прагма солидность ^ 0,4.25

0 голосов
/ 07 февраля 2019

Это связано с несоответствием версии компилятора Solidity. Обратите внимание или проверьте версию компилятора солидности, в которой вы хотите работать. Например: если вы делаете работу в

pragma solidity ^0.4.17

тогда вам нужно установить версию компилятора солидности 0.4.17 следующим образом:

npm install solc@0.4.17

в командной строке или в терминале.

0 голосов
/ 01 февраля 2019

Сначала проверьте код в Remix, а затем проверьте версию компилятора

0 голосов
/ 09 января 2019

Это связано с несоответствием версий компилятора Solidity, установленного во время установки пакета solc, и компилятором, упомянутым в файле Solidity. Для решения этой проблемы попробуйте

install:

npm install solc@0.4.25

при использовании файла солидности:

прагма солидность ^ 0.4.25;

0 голосов
/ 17 ноября 2018

Какую версию solc вы используете?

На днях Solc выпустил критическую версию, эта ошибка связана с этим.

npm uninstall solc
npm install solc@0.4.25
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...