Wie erhalte ich Vertragsdaten?

Nehmen wir an, wir haben Informationen über den WePower-Vertrag .

Ich möchte Informationen zu diesem Vertrag über die API erhalten. Für zB. Dieser,

https://api.etherscan.io/api?module=contract&action=getabi&address=0x4CF488387F035FF08c371515562CBa712f9015d4&apikey=YourApiKeyToken

Aber es gibt keine Werte von Parametern – nur ihre Beschreibung (Vertrag ABI ). Gibt es irgendwelche Methoden, um es zu bekommen?

deine frage ist mir etwas unklar, was genau willst du wissen? Bekommst du keine Antwort von Etherscan oder was?
Ich möchte den Wert des 'angehaltenen' Parameters über API erhalten. danke für die Hilfe

Antworten (2)

Sie sind hier, vom API-Aufruf mit dem Abfrageparameter action=getabi, und fordern die ABI des Vertrags an. Es soll also das ABI zurückgeben aber sonst nichts, wie du richtig bekommen hast.

Da Sie einen Wert einer Variablen im Vertrag mit Abfrageparameter lesen action=eth_callmüssen, können Sie dies tun. Verweisen Sie diese Diskussion auch hier.

AKTUALISIEREN:

Ich denke, ich habe es zum Laufen gebracht. Ich habe mich nicht viel mit der Etherscan-API beschäftigt. Aber ich denke, das ist, was Sie suchen.

Gemäß der oben erwähnten Diskussion müssen Sie zuerst den Keccak-256-Hash-Wert von abrufen paused()und die Teilzeichenfolge von 8 Zeichen abrufen und 0xnach vorne verbinden => 0x5c975abb. Dann sollte der Abfrageparameter darauf dataeingestellt werden. dh data=0x5c975abb.

Dann sollte die API-URL so aussehen;

https://api.etherscan.io/api?module=proxy&action=eth_call&to=0x4CF488387F035FF08c371515562CBa712f9015d4&data=0x5c975abb&apikey=my-api-key=YourAPIKey

Die Antwort, die ich bekam, sah aus;

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": "0x0000000000000000000000000000000000000000000000000000000000000001"
}

Das resultsollte der Wert von pausiert sein, was 1 bedeutet true.

kann nicht mit query param lesen action=eth_call. sollte Ethereum-Client installieren?
Nein, es scheint, als würde nur ein API-Aufruf ausreichen. Ich glaube, ich habe es zum Laufen gebracht, lassen Sie mich die Antwort aktualisieren

Wie @AchalaDissanayake richtig erwähnt hat, fordern Sie die ABI von der Etherscan-API an. Deshalb erhalten Sie die Beschreibung.

Sie sollten die API-URL ändern, um interne Daten aus dem Vertrag zu erhalten.