Solidity

Remix總是拋出錯誤:超過塊氣體限制

  • March 6, 2022

親愛的乙太坊開發者。

我這週開始學習 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,那麼您應該能夠部署合約。

引用自:https://ethereum.stackexchange.com/questions/56969