Wie verifizieren Sie einen Vertrag auf Etherscan, der von einem anderen Kontakt bereitgestellt wird?
Ich habe einen Vertrag bereitgestellt, der andere Verträge auf der Blockchain bereitstellt.
Der ursprüngliche Vertrag wird verifiziert, aber wenn dieser Vertrag den Vertrag auf der Blockchain bereitstellt, kann ich den Vertrag nicht verifizieren.
Kann jemand dabei helfen?
Dies ist seit dem 24. März 2018 nicht möglich. Etherscan kann den Vertragscode an der Adresse des Untervertrags nicht finden.
Hier ist die Transaktion, die zwei Verträge bereitstellt. Aber für den zweiten Vertrag kann Etherscan keinen Vertragscode finden.
Der zweite Vertrag existiert und dies wurde durch die Verwendung der „at address“-Funktion von Remix verifiziert. Bis es einige Updates für Etherscan gibt, ist es nicht möglich, den Vertrag zu überprüfen, der durch einen anderen Vertrag erstellt wurde.
Ich habe einen Vertrag aus einem anderen Vertrag bereitgestellt: https://etherscan.io/tx/0x8fd885ce7ad7b6a591d9614d41cbb1d97aa7d2e290f6aa52531ce3d4c799a5ff
welche bereitgestellt wurden: https://etherscan.io/address/0xb1400278014f34c8243b15613a4b463b51fb6f2a#code
und ich konnte den Vertrag mit derselben Compiler-Version und Optimierung verifizieren. Sie müssen jedoch alle Konstruktorargumente selbst codieren, indem Sie web3.eth.abi.encodeParameters verwenden
So konnte ich es auf Etherscan verifizieren.
string
, bytes
, uint[]
) haben.Wenn Sie ein Hardhat-Benutzer sind, können Sie das Hardhat-Etherscan- Plugin verwenden:
$ yarn hardhat --network NETWORK_NAME verify CONTRACT_ADDRESS --param1 --param2
Es funktioniert sogar mit Verträgen, die von anderen Verträgen bereitgestellt werden, da es das standardmäßige json-Eingabeformat verwendet. Sie können mehr darüber lesen, wie diese Funktion des Solidity-Compilers in der Dokumentation .
Ich habe noch nie einen sekundären Vertrag bereitgestellt, aber ich könnte mir vorstellen, dass Sie den Quellcode Ihres "anderen" Vertrags in Solidity eingeben könnten, um den ABI
für Etherscan benötigten abzurufen.
Von der Registerkarte Kompilieren:
Details
Interface (ABI)
Copy value to clipboard
Sie haben angegeben, dass Sie den "ursprünglichen" Vertrag bereits überprüft haben, also gehe ich davon aus, dass Sie mit den restlichen Schritten auf Etherscan einverstanden sind.
Dies ist bis zum 01. Oktober 2020 möglich. Sie müssen nur die richtige Compiler-Version angeben. Wenn Sie Ihren Vertrag mit Truffle bereitgestellt haben, ist Ihre Compiler-Version standardmäßig die Version des „solc“-Pakets, das zum Kompilieren Ihres Vertragscodes verwendet wird.
Standardmäßig hat das Paket „solc“ die „Optimierungen“ auf „Ja“ gesetzt.
Wenn Sie also Ihren Vertrag überprüfen, sollte "Optimierung" als "Ja" ausgewählt werden.
Hier ist der im Kovan-Netzwerk verifizierte Mustervertrag und Untervertragscode.
Hoffe das hilft.
Paul Razvan Berg
Matt Swezy
Surinder Kumar