【发布时间】:2022-11-13 01:43:08
【问题描述】:
我有一个非常简单的 Solidity 合约,如下所示:
pragma solidity ^0.4.17;
uint256 constant MY_CONSTANT = 3;
contract MyContract {
constructor() public {}
}
这是我的 truffle-config.js 文件:
module.exports = {
networks: {
development: {
host: "127.0.0.1",
port: 9545,
network_id: "*",
},
},
compilers: {
solc: {
version: "^0.4.17"
}
}
};
当我运行truffle develop 然后truffle compile 时,出现以下错误:
Compiling your contracts...
===========================
> Compiling ./contracts/MyContract.sol-bin. Attempt #1
CompileError: project:/contracts/MyContract.sol:4:1: ParserError: Expected pragma, import directive or contract/interface/library definition.
uint256 constant MY_CONSTANT = 3;
^-----^
Compilation failed. See above.
at /home/thaiminhpv/.nvm/versions/node/v16.18.1/lib/node_modules/truffle/build/webpack:/packages/compile-solidity/dist/run.js:95:1
at Generator.next (<anonymous>)
at fulfilled (/home/thaiminhpv/.nvm/versions/node/v16.18.1/lib/node_modules/truffle/build/webpack:/packages/compile-solidity/dist/run.js:28:43)
Truffle v5.6.4 (core: 5.6.4)
Node v16.18.1
这是我的松露版本:
$ truffle version
Truffle v5.6.4 (core: 5.6.4)
Ganache v7.5.0
Solidity - ^0.4.17 (solc-js)
Node v16.18.1
Web3.js v1.7.4
但是,当我在truffle-config.js 中将solidity 编译器从^0.4.17 更改为0.8.17 时,一切正常。
如何在solidity 0.4.17中声明文件级别的常量?
【问题讨论】:
标签: constants solidity smartcontracts truffle ganache