使用Truffle时遇到的问题和解决方法
问题1
- 错误信息
Error: CompileError: /C/Users/media/ethereum_work/course3/contracts/Ballot.sol:1:1: ParserError: Source file requires different compiler version (current compiler is 0.5.12+commit.7709ece9.Emscripten.clang - note that nightly builds are considered to be strictly less than the released version
pragma solidity ^0.4.17;
----------------------
Error: Truffle is currently using solc 0.5.12, but one or more of your contracts specify “pragma solidity ^0.4.17”.
Please update your truffle config or pragma statement(s).
(See https://truffleframework.com/docs/truffle/reference/configuration#compiler-configuration for information on
configuring Truffle to use a specific solc compiler version.)
Compilation failed. See above.
at Object.compile (C:\Users\media\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\workflow-compile\legacy\index.js:80:1)
Truffle v5.1.5 (core: 5.1.5)
Node v12.14.0
- 原因
Truffle和智能合约sol文件的版本不一致导致:sol的版本过低。sol文件的版本在其第一行指定。
- 解决方法:
- 修改sol文件第一行,pragma solidity ^0.4.17;,提高版本。
- 或者,修改sol文件的上一级目录下的文件truffle-config.js,改为
// Configure your compilers
compilers: {
solc: {
version: "0.4.17", // Fetch exact version from solc-bin (default: truffle's version)
}
}
问题2
- 错误信息
Error: *** Deployment Failed ***
“Ballot” exceeded the block limit (with a gas value you set).
- Block limit: 0x5fdfb1
- Gas sent: 6721975
- Try:
- Sending less gas.
- Setting a higher network block limit if you are on a
private network or test client (like ganache).
C:\Users\media\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\deployer\src\deployment.js:364:1
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at Migration._deploy (C:\Users\media\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\migration.js:70:1)
at Migration._load (C:\Users\media\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\migrate\migration.js:57:1)
-
原因
使用命令truffle migrate --reset
部署智能合约的时候设置了过多的gas,大于区块链的限制值。 -
解决方法
修改truffle_config.js文件的下面部分的gas字段的值,根据自己的错误信息适当减小gas值。
networks: {
development: {
host: "127.0.0.1", // Localhost (default: none)
port: 8545, // Standard Ethereum port (default: none)
network_id: "*", // Any network (default: none)
gas: 4700000
},
},
推荐阅读
-
2016 cocoapods的安装和使用方法以及版本升级遇到的问题
-
Mybatis传单个参数和
标签同时使用的问题及解决方法 -
2016 cocoapods的安装和使用方法以及版本升级遇到的问题
-
python中使用ctypes调用so传参设置遇到的问题及解决方法
-
Mybatis传单个参数和
标签同时使用的问题及解决方法 -
Android 表情面板和软键盘切换时跳闪问题的解决方法
-
python中使用ctypes调用so传参设置遇到的问题及解决方法
-
spring boot使用i18n时properties文件中文乱码问题的解决方法
-
安装Eclipse ADT插件时遇到的问题与解决方法
-
搭建SSH时的思考和遇到的几个问题的解决方法