Web3.py пропускает новые блоки
Всем привет!
Мне необходимо мониторить новые блоки на наличие нужных мне транзакций. Если я найду новую транзакцию в блоке, надо отправить свою. Проблема заключается в том, что при мониторинге новых блоков, проскакивает через один.
def from_to_loop(data, block_num):
"""Перебираем транзакции в блоке"""
pbar = tqdm(total=len(data))
for item in data:
w_from = item['from']
c_to = item['to']
if w_from == from_wallet and c_to == to_wallet:
print('Найдено совпадение. Совершаем транзакцию(и)...')
transact_file_read()
break
pbar.set_description(f'Обработка блока: {block_num}')
pbar.update()
pbar.close()
def checkBlockNumber(bl_number=None): """Проверяем не изменился ли блок"""
if bl_number:
if bl_number == web3.eth.getBlock('latest', full_transactions=True)['number']:
checkBlockNumber(bl_number)
else:
return web3.eth.getBlock('latest', full_transactions=True)['number']
def main_1(): """Основная функция для режима 1"""
while True:
try:
block_data = web3.eth.getBlock('latest', full_transactions=True)
trans_dict = block_data['transactions']
latest_block = checkBlockNumber()
checkBlockNumber(block_data['number'])
from_to_loop(trans_dict, latest_block)
except requests.exceptions.ConnectionError:
print('Не удалось установить соединение с сервером. Проверьте интернет.')
break
except ValueError as er:
print('Ошибка: ' + str(er))
break
except AttributeError as er:
print('Ошибка: ' + str(er))
continue
except KeyboardInterrupt:
print('Программа завершена!')
break