问题重现
- 前置条件
- 问题描述
- remix调试提示【Contract code size over limit】 Contract creation initialization returns data with length of more than 24576 bytes. The deployment will likely fails.More info: eip-170
- 使用truffle migrate ***部署(编译已通过)时提示,ran out of gas等错误信息
- 解决办法 1.remix解决办法 打开优化。如下图所示,即可在remix部署成功。再此感谢Remix fails to deploy large contract, even when sufficient gas provided中@JUDOKICK 提供的方法。
- truffle 解决办法 与remix类似需要打开代码优化选项。只是需要在config.js或则truffle-config.js中设置相应属性即可。如下图所示。需要注意如果之前已经在truffle部署失败,此时需要强制重新编译和部署。分别执行: 编译:truffle compile --compile-all 部署:truffle migrate --reset 即可大致原因【鉴于我们的合约现在非常大,部署和/或测试它可能会超过以太坊区块的gas限制。这是限制大型应用程序部署在以太坊网络上的原因。无论如何要部署它,在编译期间尝试使用代码优化器,方法是更改truffle.js文件以包含用于优化的solc设置】,感谢DApps给予的帮助。
结束拉!