Mist

I 內在氣體太低

  • May 27, 2017

我正在使用 Mist 錢包在測試網上玩遊戲。我正在嘗試部署以下契約:

pragma solidity ^0.4.8;
contract tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData); }

contract MyToken {
   /* Public variables of the token */
   string public standard = 'Token 0.1';
   string public name;
   string public symbol;
   uint8 public decimals;
   uint256 public totalSupply;

   /* This creates an array with all balances */
   mapping (address => uint256) public balanceOf;
   mapping (address => mapping (address => uint256)) public allowance;

   /* This generates a public event on the blockchain that will notify clients */
   event Transfer(address indexed from, address indexed to, uint256 value);

   /* This notifies clients about the amount burnt */
   event Burn(address indexed from, uint256 value);

   /* Initializes contract with initial supply tokens to the creator of the contract */
   function MyToken(
       uint256 initialSupply,
       string tokenName,
       uint8 decimalUnits,
       string tokenSymbol
       ) {
       balanceOf[msg.sender] = initialSupply;              // Give the creator all initial tokens
       totalSupply = initialSupply;                        // Update total supply
       name = tokenName;                                   // Set the name for display purposes
       symbol = tokenSymbol;                               // Set the symbol for display purposes
       decimals = decimalUnits;                            // Amount of decimals for display purposes
   }

   /* Send coins */
   function transfer(address _to, uint256 _value) {
       if (_to == 0x0) throw;                               // Prevent transfer to 0x0 address. Use burn() instead
       if (balanceOf[msg.sender] < _value) throw;           // Check if the sender has enough
       if (balanceOf[_to] + _value < balanceOf[_to]) throw; // Check for overflows
       balanceOf[msg.sender] -= _value;                     // Subtract from the sender
       balanceOf[_to] += _value;                            // Add the same to the recipient
       Transfer(msg.sender, _to, _value);                   // Notify anyone listening that this transfer took place
   }

   /* Allow another contract to spend some tokens in your behalf */
   function approve(address _spender, uint256 _value)
       returns (bool success) {
       allowance[msg.sender][_spender] = _value;
       return true;
   }

   /* Approve and then communicate the approved contract in a single tx */
   function approveAndCall(address _spender, uint256 _value, bytes _extraData)
       returns (bool success) {
       tokenRecipient spender = tokenRecipient(_spender);
       if (approve(_spender, _value)) {
           spender.receiveApproval(msg.sender, _value, this, _extraData);
           return true;
       }
   }        

   /* A contract attempts to get the coins */
   function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
       if (_to == 0x0) throw;                                // Prevent transfer to 0x0 address. Use burn() instead
       if (balanceOf[_from] < _value) throw;                 // Check if the sender has enough
       if (balanceOf[_to] + _value < balanceOf[_to]) throw;  // Check for overflows
       if (_value > allowance[_from][msg.sender]) throw;     // Check allowance
       balanceOf[_from] -= _value;                           // Subtract from the sender
       balanceOf[_to] += _value;                             // Add the same to the recipient
       allowance[_from][msg.sender] -= _value;
       Transfer(_from, _to, _value);
       return true;
   }

   function burn(uint256 _value) returns (bool success) {
       if (balanceOf[msg.sender] < _value) throw;            // Check if the sender has enough
       balanceOf[msg.sender] -= _value;                      // Subtract from the sender
       totalSupply -= _value;                                // Updates totalSupply
       Burn(msg.sender, _value);
       return true;
   }

   function burnFrom(address _from, uint256 _value) returns (bool success) {
       if (balanceOf[_from] < _value) throw;                // Check if the sender has enough
       if (_value > allowance[_from][msg.sender]) throw;    // Check allowance
       balanceOf[_from] -= _value;                          // Subtract from the sender
       totalSupply -= _value;                               // Updates totalSupply
       Burn(_from, _value);
       return true;
   }
}

我從這裡得到的:https ://ethereum.org/token#the-code

我面臨的問題是,當我嘗試部署它時出現錯誤:“內在氣體太低”。內在氣體太低

程式碼在應用程序中如下所示:道德規範

不確定我是否只是在做一些非常愚蠢的事情,或者錢包/程式碼等是否有問題……

這一切都很新鮮。

錢包版本:在此處輸入圖像描述

謝謝!

這是 Ethereum Wallet/Mist 的一個錯誤,我認為它已在最新版本 (0.8.10) 中修復。您看到第一張圖片中的預估費用和最高費用了嗎?點擊該 153,001 並使其超過 958,600,它應該可以工作。

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