node.js - 在以太坊部署智能合约时出现错误如何解决?

标签 node.js npm node-modules ethereum solidity

当尝试使用 solc-js 编译智能合约时,我收到错误

Krishna:投票 krishnakankipati$ Node 部署.js 编译契约(Contract) 断言.js:350 抛出错误; ^
断言错误 [ERR_ASSERTION]:指定的回调无效。

let compilerInput = {
     'Voter': fs.readFileSync('Voter.sol', 'utf8')
};

console.log('Compiling the contract')
// Compile and optimize the contract
let compiledContract = solc.compile(compilerInput, 1);

// Get compiled contract
let contract = compiledContract.contracts['Voter:Voter'] // Voter contract from Voter file.

 // Save contract's ABI
let abi = contract.interface;
fs.writeFileSync('abi.json', abi);

最佳答案

您没有正确使用 solc-js。您需要对输入进行字符串化,并且传递 1 而不是导入回调。请在发布问题之前阅读文档:https://github.com/ethereum/solc-js

考虑使用 etherjs,比 web3 更好的文档和更强大的功能。

关于node.js - 在以太坊部署智能合约时出现错误如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53953260/

相关文章:

node.js - 在航线上的 sails 中应用多个策略

javascript - 我的 NodeJS MySQL 查询函数总是返回错误的结果

javascript - 如何通过 npm test (CLI) 使用 HTML DOM

javascript - Node.js 模块的编译顺序

node.js - 如何更新通过 npm 获取的 node.js 代码?

javascript - 在项目目录中找不到 ffmpeg.exe

node.js - 无法使 Sequelize 验证工作

node.js - 基于 Node js 的 Portfolio CMS 数据库

node.js - npm 如何连接到存储库并下载组件?

javascript - 如何从vscode中的工作区符号搜索中忽略目录