Прослушивание событий контракта Uniswap с помощью web3.py и infura.io

Я хочу использовать web3.py и infura.io для прослушивания фабричных событий Uniswap, однако я не слишком уверен, что делать с этим.

Вот ссылка: https://uniswap.org/docs/v2/smart-contracts/factory/

В частности, я хочу послушать PairCreated событие.

1 ответ

Вот приблизительное руководство

  1. Получите ABI для контракта Uniswap

  2. Создайте объект контракта web3.py

  3. Ты можешь использовать web3.eth.getLogs() для запроса событий за прошлый диапазон блоков

  4. Вы не можете запросить все события один раз, потому что событий очень много, и у Infura будет время ожидания. Вместо этого вам нужно тщательно запрашивать события по срезам диапазона блоков.

Вот старый код, который может работать или не работать с последними версиями web3.py

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

Если вам нужен сканер в реальном времени, вы можете перечислять события через соединение WebSocket по мере их возникновения:

https://web3py.readthedocs.io/en/stable/filters.html

Другие вопросы по тегам