Transactions

如何使用 web3 獲取有關特定合約地址的交易歷史列表?

  • October 23, 2020

我真的不知道如何使用 web3.py 獲取有關特定合約地址的交易歷史列表

我使用 Infura HTTPProvider

我只有一個“契約地址”。

我可以使用 web3.py 獲取有關此合約地址的資訊嗎?

獲取所有交易歷史記錄需要您迭代自合約創建以來的每個區塊。正如您可能猜到的那樣,這將非常慢,而且這取決於您的Infura計劃:速率限制和可用的歷史塊數。

更快的解決方案web3py

相反,您可以使用索引服務,例如Etherscan.

API 文件中所述,您可以通過以下方式查詢交易歷史記錄:

https://api.etherscan.io/api?module=account&action=txlist&address=0xddbd2b932c763ba5b1b7ae3b362eac3e8d40121a&startblock=0&endblock=99999999&page=1&offset=10&sort=asc&apikey=YourApiKeyToken

較慢的解決方案web3py

eth_getBlockByNumber如果您的 Infura 計劃允許,您可以使用JSON-RPC 方法迭代塊並獲取塊詳細資訊。在web3py中,它等價於web3.eth.getBlock(blocknumber)web3.eth.getTransaction(txhash)然後,您將使用並根據您的契約地址檢查來自/到地址的交易雜湊值。看:

https://web3py.readthedocs.io/en/stable/web3.eth.html#web3.eth.Eth.getTransaction

https://web3py.readthedocs.io/en/stable/web3.eth.html#web3.eth.Eth.getBlock

引用自:https://ethereum.stackexchange.com/questions/88274