Unendliche Gasschätzung verursacht durch internen Funktionstyp

Wenn ich eine einfache Funktion mit dem Typ internal kennzeichne, gibt remix eine unendliche Gasschätzungswarnung aus. Ohne diesen Typ ist alles in Ordnung. Bitte, weißt du warum?

function half(uint a) { uint b = a/2; //... }-> Gasschätzung für "half(uint256)": "230"

function half(uint a) internal { uint b = a/2; //... }-> Gasschätzung für "half(uint256)": "infinite"

"Aus diesem Grund kann ich meinen Vertrag nicht einsetzen." Compiler-Warnungen hindern Sie im Allgemeinen nicht daran, Ihren Vertrag bereitzustellen. Können Sie erklären, warum Sie nicht bereitstellen können?
Mein Fehler, im Deployer habe ich geschrieben, dass ich zuerst das Gas überprüft habe

Antworten (1)

Gibt es noch etwas anderes in der Funktion, weil ich dieses Problem in Remix nicht hatte.

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;
    }

}

Erdgas: 72


[Aktualisierung 1]

Wenn also ein Vertrag tatsächlich nicht verwendet wird, kann Remix basierend auf Ihrem Code (und minimalem Beispielcode) internaldie Gaskosten nicht wirklich berechnen. Es wird automatisch als Standardwert auf unendlich gesetzt.

Hallo ! Hier ist mein Minimalbeispiel: pragma solidity ^0.4.19; contract Infinite { function half(uint a) internal{ uint b = a/2; } }Selbst wenn ich reines hinzufüge, wird immer wieder eine unendliche Gasschätzung ausgelöst
@Tholoz Antwort aktualisiert, um zu erklären, warum Sie mit diesem minimalen Beispiel unendlich werden.