我想使用web3.py和infura.io监听Uniswap工厂事件,但是我不太确定该怎么做。
以下是链接:https://uniswap.org/docs/v2/smart-contracts/factory/
更具体地说,我想听PairCreated
事件。
答案 0 :(得分:0)
这是一个粗略的指南
获取Uniswap合同的ABI
创建一个web3.py contract object
您可以使用web3.eth.getLogs()
查询过去的代码块范围内的事件
您无法一次查询所有事件,因为事件太多,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