Compilation 在以太坊中编译Solidity代码时发生断言错误

Compilation 在以太坊中编译Solidity代码时发生断言错误,compilation,ethereum,solidity,Compilation,Ethereum,Solidity,H:\Ethereum\Kickstarter\Ethereum>node compile.js H:\Ethereum\Kickstarter\node\u modules\solc\soljson.js:1 (函数(导出、要求、模块、文件名、目录名){var module;if(!module)module=(typeof module!==“undefined”?module:null){124;};var moduleOverrides={};for(模块中的var key){if(mo

H:\Ethereum\Kickstarter\Ethereum>node compile.js H:\Ethereum\Kickstarter\node\u modules\solc\soljson.js:1 (函数(导出、要求、模块、文件名、目录名){var module;if(!module)module=(typeof module!==“undefined”?module:null){124;};var moduleOverrides={};for(模块中的var key){if(module.hasOwnProperty(key)){moduleOverrides[key]}var环境是\u WEB=typeof window==“object”;var环境是\u WORKER=typeof importScripts===“函数”var ENVIRONMENT IS_NODE=typeof process==“object”&&typeof require==“function”&!ENVIRONMENT_是WEB&!ENVIRONMENT_是WORKER;var ENVIRONMENT_是SHELL=!ENVIRONMENT_是WEB&!ENVIRONMENT_是NODE&!ENVIRONMENT_是WORKER;if(ENVIRONMENT_是节点){if(!Module[“print”])Module Module[“print”])Module[“print”]=函数print(x){进程[“stdout”]。write(x+“\n”);if(!Module}”printErr“])模块[“printErr”]=函数printErr(x){process[“stderr”].write(x+“\n”)};var nodeFS=require(“fs”);var nodePath=require(“path”);模块[“read”]=函数读取(文件名,二进制){filename=nodePath“normalize”;var ret=nodeFS“readFileSync”;if(!ret

AssertionError[ERR_ASSERTION]:指定的回调无效。 在wrapCallback(H:\Ethereum\Kickstarter\node\u modules\solc\wrapper.js:16:5) 在runWithReadCallback(H:\Ethereum\Kickstarter\node\u modules\solc\wrapper.js:37:42)上运行 在编译器标准(H:\Ethereum\Kickstarter\node\u modules\solc\wrapper.js:78:14) 在Object.compileStandardWrapper(H:\Ethereum\Kickstarter\node\u modules\solc\wrapper.js:85:14) at对象。(H:\Ethereum\Kickstarter\Ethereum\compile.js:19:21) 编译(Module.js:652:30) 在Object.Module.\u extensions..js(Module.js:663:10) 在Module.load(Module.js:565:32) 在tryModuleLoad时(module.js:505:12)
在Function.Module.\u load(Module.js:497:3)

下表将获得Solidity编译器的最新稳定版本:

    npm install --save solc
对我来说,问题在于这个版本。我使用以下命令将solc降级为旧版本(在删除当前安装的版本后)

这解决了问题。此外,我将合同目录中智能合同的第一行更改为:

    pragma solidity ^0.4.17;

按照Divyanshu的建议,运行以下命令

npm安装--保存solc@0.4.17

并确认合同的第一行是


pragma solidity ^0.4.17;

您好,谢谢您的评论。虽然我安装了solc最新稳定版本,但我使用的是合同顶部提到的0.4.17版本。对此还有什么想法吗?如果您有任何其他解决方案,请发表意见。最新稳定版本导致问题,请尝试降级t他是solc版本的。希望它能工作。
    pragma solidity ^0.4.17;