首页 > 解决方案 > 我的 compile.js 文件中有一个关于 Solidity 项目的问题

问题描述

这是我的文件目录

-Inbox  
--contracts  
---Inbox.sol  
--node modules  
--compile.js  
--deploy.js  
--package.json  
--test  
---Inbox.test.js

这是我的 compile.js 文件

const path = require('path');
const fs = require('fs');
const solc = require('solc');
const inboxPath = path.resolve(__dirname, 'contracts', 'Inbox.sol');
const source = fs.readFileSync(inboxPath, 'utf8');
const options = {
  language: 'Solidity',
  sources: {
    'Inbox.sol': {
      content: source
    }
  },
  settings: {
    outputSelection: {
      '*': {
        '*': ['*']
      }
    }
  }
};
const compiledRaw = solc.compile(JSON.stringify(options));
const compiledObj = JSON.parse(compiledRaw);
const compiledInboxContract = compiledObj.contracts['Inbox.sol']['Inbox'];
console.log(compiledInboxContract);
module.exports = compiledInboxContract;

这是我从终端的输出。

sohampadia@localhost inbox]$ node deploy.js   
/home/sohampadia/solidityprojs/inbox/compile.js:25  
  const compiledInboxContract = compiledObj.contracts['Inbox.sol']['Inbox']                                                          
                                                     ^  

TypeError: Cannot read property 'Inbox.sol' of undefined  
    at Object.<anonymous> (/home/sohampadia/solidityprojs/inbox/compile.js:25:54)  
    at Module._compile (internal/modules/cjs/loader.js:1063:30)  
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)  
    at Module.load (internal/modules/cjs/loader.js:928:32)  
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)  
    at Module.require (internal/modules/cjs/loader.js:952:19)  
    at require (internal/modules/cjs/helpers.js:88:18)  
    at Object.<anonymous> (/home/sohampadia/solidityprojs/inbox/deploy.js:3:33)  
    at Module._compile (internal/modules/cjs/loader.js:1063:30)  
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)  
    at Module.load (internal/modules/cjs/loader.js:928:32)  
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)  
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)  
    at internal/main/run_main_module.js:17:47  

如果你想要更多的细节,我很乐意给你。我的一些文件的详细信息在我的帖子中,我在运行我为solidity 项目制作的deploy.js 文件时遇到了一个assert.js:383 throw 错误。我应该怎么办?

标签: javascriptsolidity

解决方案


推荐阅读