web-dev-qa-db-fra.com

npm solc: AssertionError [ERR_ASSERTION]: Rappel non valide spécifié

J'essaie de compiler un contrat intelligent de solidité à l'aide de npm solc. J'ai essayé de suivre différents exemples. Lien vers l'exemple: https://medium.com/coinmonks/how-to-compile-a-solidity-smart-contract-using-node-js-51ea7c6bf440

J'ai écrit mon code comme suit:

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));

Je reçois une erreur suivante lors de l'exécution du code ci-dessus.

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)

S'il vous plaît aider.

3
Mouazzam

Quelle version de solc utilisez-vous?

Solc a publié une version de rupture l'autre jour, cette erreur est liée à celle.

npm uninstall solc
npm install [email protected]
11
Falko

Cela est dû au manque de concordance de version du compilateur Solidity installé lors de l'installation du package solc et du compilateur mentionné dans le fichier solidity.

installer:

npm install [email protected]

dans le fichier de solidité, utilisez:

solidité du pragma 0,4,25;

1
Atal Kumar

Cela est dû au décalage de version du compilateur Solidity. Veuillez noter ou vérifier la version du compilateur Solidity dans laquelle vous souhaitez travailler. Par exemple: si vous travaillez dans 

pragma solidity ^0.4.17

alors vous devez installer la version 0.4.17 du compilateur solidity comme ceci: 

npm install [email protected]

dans la commande Invite ou terminal.

0
Rayed Bin Aslam

Vérifiez d'abord votre code dans Remix, puis vérifiez la version du compilateur

0
Russo