如何從 etherscan api 獲取合約創建程式碼(字節碼)?
我嘗試了 etherscan api 來獲取合約創建程式碼(用於分解合約的字節碼)。我嘗試了 getContractABI 和 getSourceCode,但返回值不是我所期望的。
我需要契約創建程式碼,如下所示:https ://etherscan.io/address/0xd26114cd6EE289AccF82350c8d8487fedB8A0C07#code
對於我有地址的任何契約
(假設你不只是想打電話
web3.eth.getCode()
,而且你想要一些基於網路的東西……)正如您所發現的,API 似乎不支持。
一些可怕的scrape-y Python:
#!/usr/bin/env python import requests from bs4 import BeautifulSoup BASE_URL = "https://etherscan.io/address/" def main(): address = str(input("Please input an address: ").strip()) url = BASE_URL + address page = requests.get(url) soup = BeautifulSoup(page.text, 'html.parser') print(soup.find("div", { "id": "verifiedbytecode2" }).text) if __name__ == "__main__": main()
輸出:
請輸入地址:0xd26114cd6EE289AccF82350c8d8487fedB8A0C07
6003805460a060020a61ffff0219169055600060045560a0604052600860608190527f4f4d47546f6b656e000000000000000000000000000000000000000000000000608090815261005491600591906100c1565b506040805180820190915260038082527f4f4d4700000000000000000000000000000000000000000000000000000000006020909201918252610099916006916100c1565b5060126007555b60038054600160a060020a03191633600160a060020a03161790555b610161565b828054600181600116156101000203166002900490600052602060002090601f0160209 …
請注意,必須驗證契約才能獲得此數據。
我想用 Cheerio/Axios 在 Node 中做類似的事情不會太困難。