compilation - 在以太坊中编译 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)
解决方案
以下将获得 Solidity 编译器的最新稳定版本:
npm install --save solc
对我来说,问题出在这个版本上。我使用以下命令将solc降级为旧版本(删除当前安装的版本后)。
npm install --save solc@0.4.17
这解决了这个问题。此外,我将合约目录中智能合约的第一行更改为:
pragma solidity ^0.4.17;
推荐阅读
- puppeteer - 量角器功能。在 puppeteer 中等效的代理
- c - 为什么这不是重复符号错误?
- python - “UnboundLocalError:分配前引用的局部变量'x'”但它是一个全局变量
- php - 我有循环问题
- python - 2 * 2 * 2... j 次没有 ** 运算符
- runtime-error - .GetRoProperty 的 UFT/QTP 一般运行时错误
- c# - 在同一个剃须刀页面上创建新的父子节点
- google-kubernetes-engine - GCP - Kubernetes Ingress 后端服务不健康
- python - 将文件夹中的所有文件名更改为其他 Python
- html - 中型和大型设备上为 2 x 2 矩阵,小型设备上为 4 x 1 矩阵