Probleme beim Verifizieren eines Vertrags auf etherscan.io

Ich versuche, einen Vertrag auf etherscan.io zu verifizieren.

Der Vertrag selbst verfügt über eine Reihe von Importen und Bibliotheken und wurde mit bestimmten Konstruktorargumenten bereitgestellt.

Ich habe den Code aus allen .sol-Dateien in das Validierungstextfeld auf Etherscan kopiert/eingefügt, habe dieselbe Compiler-Version ausgewählt, bin mir aber nicht ganz sicher, wie ich die ABI-codierten Konstruktorargumente bereitstellen soll. Wollen sie den Hex, JSON oder was?

Der Code verifiziert nichts anderes.

Antworten (3)

Falls Sie ein einfaches Online-Tool zum Codieren von Parametern verwenden möchten, können Sie https://abi.hashex.org verwenden

Sie fügen den abi-Code ein, um Parametertypen automatisch zu analysieren, oder geben sie einfach manuell ein. In Funktionstyp sollte der Selektorkonstruktor ausgewählt werden.

Hier ist ein Beispiel, unten sind abi-codierte Parameter, die Sie in das Eingabefeld für etherscan.io-Konstruktorparameter eingeben.

Beispiel

Sortiert.

  • Hatte Verträge in falscher Reihenfolge eingefügt
  • importReferenzen entfernt
  • Bytecode des Konstruktorarguments vom Ende des bereitgestellten TX eingefügt
Ich mache dasselbe wie Sie und habe Probleme damit, herauszufinden, was ich für die ABI-codierten Konstruktorargumente eingeben soll. Ich verwende ethereum.github.io/browser-solidity , um den Vertrag bereitzustellen.

Ich konnte den Vertrag auf Etherscan verifizieren, indem ich die "Eingabedaten" der Transaktion überprüfte, die den Vertrag erstellt hat. Es enthält den Vertrags-Bytecode und den Konstruktor-Argument-Bytecode direkt danach. Sie können also den Bytecode des Konstruktorarguments in das Feld "Konstruktorargumente ABI-codiert" kopieren, um den Vertrag überprüfen zu können. Danke für den dritten Aufzählungspunkt!