Problem beim Überprüfen des Quellcodes auf Etherscan

Das ist wirklich ärgerlich, ich habe versucht, das ABI einzugeben. Bekomme immer wieder einen Konstruktorfehler. Ich habe viele Kombinationen ausprobiert, nichts scheint zu funktionieren.

Es folgt der Quellcode, den ich auf Testnet 0x34a03193f88ceb2b3ac3ea32b47f7d25544d5f5e bereitgestellt habe :

pragma solidity 0.4.8;
contract mortal {
    /* Define variable owner of the type address*/
    address owner;

    /* this function is executed at initialization and sets the owner of the contract */
    function mortal() { owner = msg.sender; }

    /* Function to recover the funds on the contract */
    function kill() { if (msg.sender == owner) selfdestruct(owner); }
}

contract greeter is mortal {
    /* define variable greeting of the type string */
    string greeting;

    /* this runs when the contract is executed */
    function greeter(string _greeting) public {
        greeting = _greeting;
    }

    /* main function */
    function greet() constant returns (string) {
        return greeting;
    }
}
Bitte geben Sie weitere Informationen an, z. B. Vertragsadresse, Quellcode, txid, Compiler-Version, Bereitstellungsumgebung.
greeter at 0x34a03193f88ceb2b3ac3ea32b47f7d25544d5f5e (blockchain), Solidity version: 0.4.8+commit.60cc1668.Emscripten.clang, Transaction 0x75bd6721cedfd574ccda2f2d5c5e741900213fc2233f77dff7118ca0eba1b521, not sure deployment environment how would i check that, I am using solidity browser with meta mask to deploy, Gist: gist. github.com/anonymous/638969e3ceff12fabc7e7604970cbdad
Diese Frage sollte erneut gestellt werden, da es ein Problem mit der Überprüfung des Quellcodes für Solidity-Versionen nach 0.4.6 auf Etherscan gibt.
Ich habe für die Wiedereröffnung gestimmt, da der Quellcode jetzt da ist und BokkyPooBah auf eine Antwort hinweist.
Können Sie Quellcode verifizieren, der unter 0.4.6 liegt?
Ok, also habe es funktioniert. Hier ist, was Sie tun müssen, nehmen Sie den von etherscan angegebenen Eingabecode in ein Textdokument, kopieren Sie dann den vom Solidity-Browser angegebenen Bytecode und steuern Sie die Suche, um nach dem Teil des Eingabecodes zu suchen, der der tatsächliche Bytecode ist. Es wird am Ende eine kleine Menge geben, die nicht gefunden wird, diesen Code müssen Sie in das ABI-Feld auf Etherscan eingeben. Nicht das, was Sie denken würden, aber es funktioniert.
Mit welcher Version hast du es zum Laufen bekommen? Ich konnte es vor ein paar Tagen nur mit 0.4.6 und darunter zum Laufen bringen. Möglicherweise möchten Sie Ihre Frage selbst beantworten, um zu dokumentieren, wie Sie es zum Laufen gebracht haben, mit Screenshots und dem letzten Teil des Bereitstellungscodes. Ich musste auch Browser Solidity anstelle von Ethereum Wallet verwenden, da Sie die Compiler-Version in Browser Solidity steuern können.
Ich verwende nur 0.4.6. Andere nicht getestet. Ja, ich musste auch den Browser verwenden.

Antworten (1)

Tx 0x75bd... hat den Vertrag erstellt beidass Sie nicht wie in Ihrer Frage oben angegeben verifiziert werden konnten. Dies wurde mit dem Quellcode in Ihrer Frage in der Compiler-Version 0.4.8 bereitgestellt.

Im Folgenden finden Sie Ihre Transaktionseingabedaten:

0x6060604052346100005760405161037c38038061037c833981016040528080518201919050505b5b33600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8060019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100b557805160ff19168380011785556100e3565b828001600101855582156100e3579182015b828111156100e25782518255916020019190600101906100c7565b5b50905061010891905b808211156101045760008160009055506001016100ec565b5090565b50505b505b6102608061011c6000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806341c0e1b514610049578063cfae321714610058575b610000565b34610000576100566100ee565b005b3461000057610065610182565b60405180806020018281038252838181518152602001915080519060200190808383600083146100b4575b8051825260208311156100b457602082019150602081019050602083039250610090565b505050905090810190601f1680156100e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561017f57600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b602060405190810160405280600081525060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102295780601f106101fe57610100808354040283529160200191610229565b820191906000526020600020905b81548152906001019060200180831161020c57829003601f168201915b505050505090505b905600a165627a7a72305820d47556e11c69fb0ceea694505049f1706cf290268907e3bf9300ca621190a0f100290000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a68656c6c6f776f726c6400000000000000000000000000000000000000000000

Und das Folgende ist Ihr Vertrags-Bytecode:

0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806341c0e1b514610049578063cfae321714610058575b610000565b34610000576100566100ee565b005b3461000057610065610182565b60405180806020018281038252838181518152602001915080519060200190808383600083146100b4575b8051825260208311156100b457602082019150602081019050602083039250610090565b505050905090810190601f1680156100e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561017f57600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b602060405190810160405280600081525060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102295780601f106101fe57610100808354040283529160200191610229565b820191906000526020600020905b81548152906001019060200180831161020c57829003601f168201915b505050505090505b905600a165627a7a72305820d47556e11c69fb0ceea694505049f1706cf290268907e3bf9300ca621190a0f10029

Wie Sie in Ihrem Kommentar angegeben haben, ist das Konstruktorargument im Quellcode-Überprüfungsbildschirm der Unterschied zwischen den beiden Bytecodes, die im ersten Bytecode-Los fett gedruckt sind:

0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a68656c6c6f776f726c6400000000000000000000000000000000000000000000

Ich habe versucht, den verifizierten Quellcode wie in den folgenden Bildschirmen gezeigt hinzuzufügen:

Geben Sie hier die Bildbeschreibung ein

mit einer Fortsetzung desselben Bildschirms:

Geben Sie hier die Bildbeschreibung ein

aber es war erfolglos. Beachten Sie, dass die Optimierung im obigen Bildschirm aktiviert war.

Ich habe versucht, denselben Code zu verifizieren, aber diesmal mit deaktivierter Optimierung, und ich habe ein erfolgreiches Ergebnis erhalten:

Geben Sie hier die Bildbeschreibung ein

In Ihrem Fall wurde das Problem also durch die Bereitstellung von Code mit Optimierung Disabled verursacht .

(Ich hatte in der letzten Woche Probleme, den Quellcode zu verifizieren, und ich konnte meinen Quellcode nur durch ein Downgrade auf 0.4.6 verifizieren lassen, kaufen Sie, Ihr Problem scheint nur der Optimierungsschalter zu sein.)