Avoid none overwrite of tx in filter

This commit is contained in:
nolash 2021-06-03 16:15:19 +02:00
parent ccabbc8ecc
commit 49ff9a4b99
Signed by: lash
GPG Key ID: 21D2E7BB88C2A746
1 changed files with 27 additions and 0 deletions

27
chaind_eth/filter.py Normal file
View File

@ -0,0 +1,27 @@
# standard imports
import logging
# external imports
from chainlib.status import Status
from chainqueue.sql.query import get_tx
from chainqueue.error import NotLocalTxError
from chainqueue.sql.state import set_final
logg = logging.getLogger(__name__)
class StateFilter:
def __init__(self, chain_spec):
self.chain_spec = chain_spec
def filter(self, conn, block, tx, session=None):
otx = None
try:
otx = get_tx(self.chain_spec, tx.hash, session=session)
except NotLocalTxError:
return False
logg.info('finalizing local tx {} with status {}'.format(tx.hash, tx.status))
status = tx.status != Status.SUCCESS
set_final(self.chain_spec, tx.hash, block=block.number, tx_index=tx.index, fail=status, session=session)