- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
编译.js:
const path = require('path');
const solc = require('solc');
const fs = require('fs-extra');
const buildPath = path.resolve(__dirname, 'build');
fs.removeSync(buildPath);
const campaignPath = path.resolve(__dirname, 'contracts', 'Campaign.sol');
const source = fs.readFileSync(campaignPath, 'utf8');
var input = {
language: 'Solidity',
sources: {
'Campaign.sol': {
content: source
}
},
settings: {
outputSelection: {
'*': {
'*': [ '*' ]
}
}
}
}
const output = solc.compile(input, 1).contracts;
fs.ensureDirSync(buildPath);
for(let contract in output){
fs.outputJSONSync(
path.resolve(buildPath, contract+'.json')
);
}
事件.sol:
pragma solidity ^0.5.3;
contract FactoryCampaign {
. . .
}
contract Campaign {
. . .
}
Solidity 在 remix 编辑器中完美运行,solc 版本为 0.5.3
solc 0.4 版本允许我直接在“源”上调用 solc.compile,但更高版本会抛出此错误
AssertionError [ERR_ASSERTION]: Invalid callback specified.
最佳答案
对于 Solidity 编译器版本 >= 0.5.0,调用 solc.compile
的语法已更改。
你会想要使用这样的东西:
const buildPath = path.resolve(__dirname, 'build');
const output = JSON.parse(solc.compile(JSON.stringify(input)));
if(output.errors) {
output.errors.forEach(err => {
console.log(err.formattedMessage);
});
} else {
const contracts = output.contracts["Campaign.sol"];
for (let contractName in contracts) {
const contract = contracts[contractName];
fs.writeFileSync(path.resolve(buildPath, `${contractName}.json`), JSON.stringify(contract.abi, null, 2), 'utf8');
}
}
关于javascript - 如何使用 solc 0.5 编译 Solidity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54412333/
当我尝试使用 npm 安装 solc 和 solc-cli npm WARN deprecated lodash.assign@4.2.0: This package is deprecate
我的系统是ubuntu 20.04,我想安装solc 0.4.15,但是我可以找到包,如果有什么建议给我,我会非常非常非常感谢! 最佳答案 运行不同 Solidity 版本最轻松的方式是通过 Dock
我已经在 ubuntu 中安装了 Solidity 编译器(solc)。 无法链接 solc至Geth . 我们应该怎么做? 以下是我已经完成的步骤: sudo add-apt-repository
如何编译通过 py-solc 执行相对导入的 Solidity 文件?这是一个最小的例子: 目录结构 my-project - main.py - bar.sol - baz.sol ma
当我尝试编译我的契约(Contract)时,我得到一个最大调用堆栈大小超出错误并且无法解决这个问题。任何见解将不胜感激 错误 RangeError: Maximum call stack size e
编译.js: const path = require('path'); const solc = require('solc'); const fs = require('fs-extra'); c
我尝试用 remix 编译以下合约(在 solc-js 上测试) pragma solidity ^0.4.21; contract Calculator { uint8 public res
我使用的是 npm 安装的 Solc 0.7.0 版。当我尝试创建包含映射的 Struct 时,收到错误消息:“无法构造包含(嵌套)映射的结构。” 请检查代码: // SPDX-License-Ide
我正在尝试使用 npm solc 编译 solidity 智能合约。我试图遵循不同的例子。示例链接:https://medium.com/coinmonks/how-to-compile-a-soli
我一直在运行我的代码,其中涉及将智能合约部署到以太坊 Ropsten 网络。我成功运行了一段时间,但上周确实安装了另一个软件,之后我开始收到这些错误:命令:solc --combined-json a
我是一名优秀的程序员,十分优秀!