如何在Truffle中使用旧的solc编译器

时间:2018-11-07 19:46:47

标签: ethereum solidity smartcontracts truffle

我试图重现以太坊上发生的DAO攻击,但是,我无法编译DAO代码。当前的松露稳定版本不支持指定solc版本。 我将5.0.0 beta 1版本用于松露,它支持指定solc版本。 编译DAO代码时,出现此错误。

TypeError: Error parsing E:/Desktop/MetaCoin/contracts/DAO.sol: solc.compileStandard is not a function
    at Object.parseImports (C:\Users\Administrator\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\truffle-compile\parser.js:49:1)
    at Object.getImports (C:\Users\Administrator\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\truffle-compile\profiler.js:332:1)
    at Promise.all.then.results (C:\Users\Administrator\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\truffle-compile\profiler.js:305:1)
    at <anonymous>

有创意的人吗?

1 个答案:

答案 0 :(得分:2)

从Truffle 5.0.0 beta -0开始,您可以specify a solcjs version

我刚刚在我的项目中尝试过它,并且可以正常工作。确保将版本号设置为string,并使用以下代码:

module.exports = {
  networks: {
    ... etc ...
  },
  compilers: {
     solc: {
       version: <string>  // ex:  "0.4.20". (Default: Truffle's installed solc)
     }
  }
};