首页 > 解决方案 > 在以太坊中编译 Solidity 代码时出现断言错误

问题描述

H:\Ethereum\Kickstarter\ethereum>node compile.js H:\Ethereum\Kickstarter\node_modules\solc\soljson.js:1 (function (exports, require, module, __filename, __dirname) { var Module;if(!Module )Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key] =Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function" &&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=function printErr(x){process[ "stderr"].write(x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){文件名=nodePath"normalize";var ret=nodeFS"readFileSync";if(!ret

AssertionError [ERR_ASSERTION]:指定的回调无效。在 wrapCallback (H:\Ethereum\Kickstarter\node_modules\solc\wrapper.js:16:5) 在 runWithReadCallback (H:\Ethereum\Kickstarter\node_modules\solc\wrapper.js:37:42) 在 compileStandard (H:\ Ethereum\Kickstarter\node_modules\solc\wrapper.js:78:14) 在 Object.compileStandardWrapper (H:\Ethereum\Kickstarter\node_modules\solc\wrapper.js:85:14) 在 Object. (H:\Ethereum\Kickstarter\ethereum\compile.js:19:21) 在 Module._compile (module.js:652:30) 在 Object.Module._extensions..js (module.js:663:10) 在Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12) at Function.Module._load (module.js:497:3)

标签: compilationethereumsolidity

解决方案


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

    npm install --save solc

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

    npm install --save solc@0.4.17

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

    pragma solidity ^0.4.17;

推荐阅读