Avoid none overwrite of tx in filter
This commit is contained in:
parent
ccabbc8ecc
commit
49ff9a4b99
27
chaind_eth/filter.py
Normal file
27
chaind_eth/filter.py
Normal 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)
|
Loading…
Reference in New Issue
Block a user