Go-Ethereum
合約在一定時期內的交易計數
我想確定一個合約在一定時期內的交易數量。我的問題是,在交易收據中,如果我們想說合約 A 有 x 筆交易,這些只是從該合約發送的交易,或者它們也是發送給它的交易,即交易數量的總和此合約地址在交易收據的 to 和 from 欄位中。
如果合約為收到的每筆交易發出日誌,那麼您只需要查找合約發出的日誌。
您可以使用 etherescan 執行此操作:https ://etherscan.io/apis#logs
例如: https ://api.etherscan.io/api? module=logs&action=getLogs &fromBlock=379224 &toBlock=latest &address=0x33990122638b9132ca29c723bdf037f1a891a70c &apikey=YourApiKeyToken
將返回合約生成的所有日誌的列表(假設每筆交易有一個事件)
請注意,您可以決定從哪個時間間隔(以塊為單位)尋找什麼。
唯一可能的警告是:
- 合約不會為每筆交易生成一個事件。
- 合約在每筆交易中生成多個事件。
這取決於您所說的“交易”是什麼意思,以及“契約的交易”是什麼意思。
對於交易,可能至少有兩種含義:
- 真正的乙太坊交易包含在具有單獨雜湊、收據等的塊中。
- 所謂的“內部”交易,由智能合約發起,沒有雜湊也沒有收據。
對於“契約的交易”,可能的含義是:
- 發送到此合約的交易。
- 此合約發送的交易(內部交易)。
- 創建此合約的交易。
- 破壞本契約的交易。
- 銷毀一些其他合約的交易,將剩餘的乙太幣從被銷毀合約的餘額發送到該合約,而不執行該合約的字節碼。
- 訪問該合約而不執行其字節碼的交易,即讀取該合約的乙太幣餘額或其字節碼。
- 對此合約執行委託呼叫的交易。
您需要使用不同的方法以不同的方式檢測和統計與合約相關的不同類型的交易。在某些情況下 Web3 API 就足夠了,但在其他情況下,您將需要跟踪所有使用 etherescan.io API 的事務。