Etherscan
如何獲取合約數據?
假設我們有關於WePower contract的資訊。
我想通過 API 獲取有關此契約的一些資訊。例如。這,
https://api.etherscan.io/api?module=contract&action=getabi&address=0x4CF488387F035FF08c371515562CBa712f9015d4&apikey=YourApiKeyToken
但是沒有參數值——只有描述(契約 ABI)。有什麼方法可以得到嗎?
您在這裡,通過帶有查詢參數的 API 呼叫
action=getabi
,請求合約的 ABI。所以它應該返回 ABI,但沒有別的,正如你正確得到的那樣。由於您需要使用查詢參數讀取契約中變數的值,因此
action=eth_call
可能會這樣做。也請參考這裡的討論。更新:
我想,我搞定了。我沒有處理太多etherscan API。但我認為這就是你要找的。
根據上面的討論,你首先需要獲取 的 Keccak-256 Hash 值
paused()
並獲取 8 個字元的子字元串並加入0x
到前面 =>0x5c975abb
。然後查詢參數data
應該設置為那個。即data=0x5c975abb
。然後 API url 應該是這樣的;
https://api.etherscan.io/api?module=proxy&action=eth_call&to=0x4CF488387F035FF08c371515562CBa712f9015d4&data=0x5c975abb&apikey=my-api-key=YourAPIKey
我得到的回應;
{ "jsonrpc": "2.0", "id": 1, "result": "0x0000000000000000000000000000000000000000000000000000000000000001" }
result
應該是 paused 的值,即 1表示true
。