python - 使用 web3.py 和 infura.io 监听 Uniswap 合约事件
问题描述
我想使用 web3.py 和 infura.io 来监听 Uniswap 工厂事件,但是我不太确定该去哪里这样做。
这是一个链接:https ://uniswap.org/docs/v2/smart-contracts/factory/
更具体地说,我想听听这个PairCreated
事件。
解决方案
这是粗略的指南
获取 Uniswap 合约的 ABI
创建一个 web3.py合约对象
您可以
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
推荐阅读
- php - PHP 正则表达式将 N*N 和 NxN 等维度转换为 N x N
- ruby-on-rails - Rails 只允许某些字符串作为参数
- python - 如何以平衡的方式删除重复项?
- python - 从 pip 安装后没有 python 的 CLI 应用程序
- node.js - 如何在 Node TS 中为热门帖子创建路由
- python - FastAPI 在 RequestValidationError 异常处理程序中等待等待
- java - 反应“获取”方法不与基于 Java 的控制器对话
- arduino - PlatformIO 中的 ESP32 串行缓冲区的工作方式与 Arduino IDE 不同
- typescript - 方法和属性的装饰器工厂
- vb.net - 如何将数字文本文件制成表格?