使用web3.py和infura.io收听Uniswap合同事件

时间:2020-06-14 19:23:11

标签: python cryptocurrency web3py

我想使用web3.py和infura.io监听Uniswap工厂事件,但是我不太确定该怎么做。

以下是链接:https://uniswap.org/docs/v2/smart-contracts/factory/

更具体地说,我想听PairCreated事件。

1 个答案:

答案 0 :(得分:0)

这是一个粗略的指南

  1. 获取Uniswap合同的ABI

  2. 创建一个web3.py contract object

  3. 您可以使用web3.eth.getLogs()查询过去的代码块范围内的事件

  4. 您无法一次查询所有事件,因为事件太多,Infura会超时。相反,您需要在块范围切片上仔细查询事件。

以下是一些旧代码,它们可能与最新的web3.py版本兼容或不兼容

https://github.com/TokenMarketNet/sto/blob/master/sto/ethereum/scanner.py#L153

如果您想要一个实时扫描器,可以在发生事件时通过WebSocket连接列出事件:

https://web3py.readthedocs.io/en/stable/filters.html#asynchronous-filter-polling