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?
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_call
mü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 0x
nach vorne verbinden => 0x5c975abb
. Dann sollte der Abfrageparameter darauf data
eingestellt 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 result
sollte der Wert von pausiert sein, was 1 bedeutet true
.
action=eth_call
. sollte Ethereum-Client installieren?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.
Achala Dissanayake
imnotyoururguru