Как использовать старые компиляторы 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)
}
}
};