Solidity
Remix總是拋出錯誤:超過塊氣體限制
親愛的乙太坊開發者。
我這週開始學習 Solidity,並試圖通過 Remix 部署合約,但這並沒有真正奏效。
執行環境設置為 Web3 Provider。
(因為我目前正在閱讀的學習 Solidity 的書要求我這樣做,所以我也可以了解 web3.js)
這是我的程式碼:
pragma solidity ^0.4.24; contract MyToken { string public name; string public symbol; uint8 public decimals; mapping (address => uint256) public balanceOf; event Transfer(address _from, address _to, uint _value); constructor(string tokenName, string tokenSymbol, uint8 decimalUnits, uint256 initialSupply) public { name = tokenName; symbol = tokenSymbol; decimals = decimalUnits; balanceOf[msg.sender] = initialSupply; } function transfer(address _to, uint256 _value) public { require(_value <= balanceOf[msg.sender]); require(balanceOf[_to] + _value >= balanceOf[_to]); balanceOf[msg.sender] -= _value; balanceOf[_to] += _value; emit Transfer(msg.sender, _to, _value); } }
這是我的契約的全部程式碼,當我將它部署到 Remix 上時,它會不斷返回一個錯誤,說“它超出了塊氣體限制”。
我已經調整了數百次gas limit的值並重試了,但它仍然不起作用。
我也在這個網站和其他網站上搜尋了類似的問題,但沒有任何幫助。
我的一個朋友發現這個合約可以部署在 Metamask 上,gas 限制為 404941,值為 1 gwei,所以我在 Remix 上嘗試了相同的方法,但它不起作用。
我可以使用任何幫助嗎?
提前致謝!
這是因為使用的 gas 超過了你的區塊鏈的 gas 限制;為避免這種情況,您可以查看目前的區塊氣體限制,並將其增加到高於用於部署智能合約的氣體
我能夠在混音上部署相同的契約。在部署合約時檢查您的 Gas 限制,如果它大於或等於 3000000,那麼您應該能夠部署合約。