Fehler bei der Überprüfung des kompilierten Truffle-Vertrags auf ropsten.etherscan.io

Kürzlich habe ich gerade meinen ersten Smart Contract truffleins ropstenTestnet geschoben.

Wie Sie an meiner Terminalausgabe unten sehen können, wurde es ohne Probleme kompiliert und migriert:

Geben Sie hier die Bildbeschreibung ein

Wurde von meinem laufenden gethKnoten an das Netzwerk gesendet:

Geben Sie hier die Bildbeschreibung ein

Der Vertrag ist auf meinem GitHub hier zu finden , er sieht so aus:

pragma solidity ^0.4.13;

// This contract demonstrates a simple non-constant (transactional) function you can call from geth.
// increment() takes no parameters and merely increments the "iteration" value. 

contract Incrementer {
    uint iteration;

    function Incrementer() {
        iteration = 0;
    }

    function increment(uint count) {
        iteration += count;
    }

    function getIteration() constant returns (uint) {
        return iteration;
    }

}

Dies ist die Darstellung der Transaktion am ropsten.etherscan.io:

Geben Sie hier die Bildbeschreibung ein

Sie können sehen, dass das ByteCode on the Blockchain (what we are looking for)und das Your Compiled Bytecode (what you provided)am Anfang dasselbe sind - ich weiß nicht, ob das etwas bedeutet oder nicht - aber trotzdem:

Geben Sie hier die Bildbeschreibung ein

Ich weiß, dass es in der Vergangenheit einige Probleme beim Versuch gab, Verträge zu überprüfen, die mit trufflein Bezug auf erstellt Runs (Optimizer)wurden, aber soweit ich das beurteilen konnte, wurde dies behoben, trotzdem habe ich versucht, dies mit diesem auf 0und gesetzten Wert zu überprüfen auch zu 200, beides hat nicht funktioniert ...

Folgendes habe ich eingegeben:

Ist es richtig, was ich getan habe?

Geben Sie hier die Bildbeschreibung ein

Warum wird dieser Vertrag nicht bestätigt?

Haben Sie dieselbe Compiler-Version zum Kompilieren und Verifizieren ausgewählt? Truffle verwendet normalerweise die neueste stabile Version des Compilers, während ich auf dem Screenshot so aussehe, als hätten Sie den neuesten Commit zur Überprüfung genommen. Dies führt wahrscheinlich zu einem anderen Bytecode und die Überprüfung schlägt fehl. Wie auch immer, ich würde einfach den Vertrag verwenden und ihn als verifiziert behandeln, wenn er wie erwartet funktioniert.
Das könnte es sein, ich habe den Compiler ausgewählt, den ich in meinem Code deklariert habe
Mann, ich glaube nicht, dass es das ist, ich habe gerade jeden Compiler ausprobiert 0.4.13und darüber hinaus hat keiner von ihnen funktioniert

Antworten (1)

Sie haben versucht, den „Migrations“-Vertrag zu überprüfen, den Sie in Ihrer Truffle-Konfiguration verwendet haben.

Ihr Inkrementierungsvertrag war der nächste Vertrag, den Sie erstellt haben, und kann hier gefunden werden: https://ropsten.etherscan.io/address/0x8705c513da621a16fd1defc9de8ae7cdead01fb8#code

Ich habe es für Sie überprüft, indem ich den Optimierer verwendet habe, ihn aber auf 0 Optimierungen gesetzt habe. Sie haben wie erwartet 0.4.13 verwendet.