Solidity

內部函式類型導致的無限氣體估計

  • February 9, 2018

當我使用internal類型標記一個簡單函式時,remix 會引發無限氣體估計警告。沒有這種類型,一切都很好。請問,你知道為什麼嗎?

function half(uint a) { uint b = a/2; //... }->“一半(uint256)”的氣體估計:“230”

function half(uint a) internal { uint b = a/2; //... }->“一半(uint256)”的氣體估計:“無限”

函式中是否還有其他事情發生,因為我在混音中沒有這個問題。

pragma solidity ^0.4.19;

contract StackEthereumTholoz {

   function start(uint _int) public pure returns (uint) {
       return half(_int);
   }

   function half(uint _a) internal pure returns (uint) {
       uint b = _a/2;  
       return b;
   }

}

氣體:72


$$ Update 1 $$

因此,根據您的程式碼(和最少的範常式式碼),當internal實際不使用合約時,Remix 無法實際計算 gas 成本。它會自動將其預設設置為無限。

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