Nicht verwendeter lokaler Variablenfehler im Crowdsale-Vertrag

Ich habe versucht, einen Crowd-Sale-Vertrag zu erstellen, aber er lässt sich nicht kompilieren und kommt mit dem Fehler „nicht verwendete lokale Variable“. Ich bin mir wirklich nicht sicher, was ich tun soll, da der Code direkt aus dem Ethereum Crowd Sale Guide stammt.Geben Sie hier die Bildbeschreibung ein

Normalerweise bekommt man dafür eine Abmahnung. Versuchen Sie, diesen Token-Vertrag zu entfernen, oder fügen Sie der Übertragungsfunktion einen Code hinzu
Hi. Woher hast du diesen Code kopiert?
Diese Frage scheint die gleiche zu sein wie eine, die zuvor gestellt wurde, also als doppelt markiert ...

Antworten (4)

Versuchen Sie stattdessen Folgendes:

interface ERC20I {
    function transfer(address _recipient, uint256 _amount) public returns (bool);
}

contract Crowdsale {
    ERC20I public tokenInterface;
    function Crowdsale(address _tokenAddress) {
        tokenInterface = ERC20I(_tokenAddress);
    }
}

Wenn Sie dann Geld überweisen möchten, verwenden Sie diesen Code:require(tokenInterface.transfer(recipient, amount));

Sie können diese Warnung einfach ignorieren oder, wenn Sie sie loswerden möchten, die folgende Deklaration verwenden:

contract token { function transfer(address , uint ){  } }

Anstatt von

function transfer(address receiver, uint amount){  }
Ich denke, Sie müssen Ihren Code mit uns teilen

Vielleicht verwenden Sie das Betragsfeld nicht, wenn Sie versuchen, Token-Belohnungen zu senden? Können Sie den vollständigen Code des Vertrags hier einfügen oder über ethfiddle.io teilen?

Ich habe im Blockgeek-Kurs einige grundlegende Crowdfunding-Vertragsentwicklungen durchgeführt. Vielleicht können Sie die Vorlage verwenden, die ich von dort abgeholt habe: https://ethfiddle.com/TN9MtiBVKq

Im Allgemeinen ist Ethfiddle ein guter Ort, um Ihren Code zu kompilieren und Fehler zu sehen, die auftauchen. Mist ist wirklich nicht der beste Ort, um Ihren Code zu überprüfen.

Die Warnung ist da, weil Sie die beiden Variablen, die in der Übertragungsfunktion übergeben werden, nicht verwenden.

Sie übergeben zwei Variablen Adresse Empfänger und uint Betrag an die Übertragungsfunktion und die Funktion ist leer.

contract token {
    function transfer(address receiver, uint amount) {
        //...
        //use the parameters here to avoid the warning.
    }
}