Solidity
合約程式碼無法儲存,請檢查您的gas量
我知道這個問題之前已經討論過好幾次了,但是我無法從任何答案中得到解決我的問題的方法,
在添加以下功能之前,我的契約部署得很好,
function setApproval(address addr, bool approved)payable returns(string, uint, uint) { //some logical operations and assignments }
一旦我添加功能並嘗試部署契約,我就收到了這個錯誤
遇到錯誤,放棄。網路狀態未知。手動查看成功的交易。錯誤:無法儲存合約程式碼,請檢查您的gas量。
測試 rpc 伺服器顯示以下日誌
交易:0xD5791AC0C6059CBD43E00A7FABE566ADA3F0572966F12FF25DA6E04215840F39合約創建:0x9062592C5DD06340401C5DD06340401C1E750DDB025DEFABF5BE煤氣用途:4712388塊編號:16塊時間:2017年7月22日星期六03:30:30(印度標準時間)執行時誤差:瓦斯
在刪除此功能合約後再次部署且沒有錯誤
這個功能有什麼問題?
我的合約程式碼大約 250 行,合約程式碼大小有限制嗎?
提前致謝
在你的
2_deploy_contracts.js
文件中,改變氣體價格預設為更高的數字,即:// 2_deploy_contracts.js const MyContract = artifacts.require('./MyContract.sol') module.exports = function (deployer) { deployer.deploy(MyContract, { gas: 5000000 }) }
我有同樣的問題,這對我有用。
當合約從介面繼承並且沒有實現函式時,將發出此錯誤。
松露 4.0.4 solc 0.4.18
interface IF { function doSomething() external view returns(uint); } contract Inherit is IF { Inherit() public; }
部署時。會發出錯誤:
合約程式碼無法儲存,請檢查您的gas量
解決方案是實現該功能。
contract Inherit is IF { doSomething() external view returns(uint) { return 5; } }