Как использовать старые компиляторы solc с Truffle

Я пытаюсь воспроизвести атаку DAO, которая произошла на Ethereum, однако я не смог скомпилировать код 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 ответ

Начиная с версии Truffle 5.0.0 beta -0, вы можете указать версию solcjs.

Я только что попробовал это в моем проекте, и это работает. Обязательно укажите номер версии string и используйте следующий код:

module.exports = {
  networks: {
    ... etc ...
  },
  compilers: {
     solc: {
       version: <string>  // ex:  "0.4.20". (Default: Truffle's installed solc)
     }
  }
};
Другие вопросы по тегам