Add checked date bump

This commit is contained in:
lash 2022-04-16 13:05:16 +00:00
parent 70f03d1b9d
commit 4c520e3433
Signed by: lash
GPG Key ID: 21D2E7BB88C2A746
2 changed files with 37 additions and 4 deletions

View File

@ -185,10 +185,10 @@ def get_paused_tx_cache(chain_spec, status=None, sender=None, session=None, deco
q = q.filter(Otx.status>StatusEnum.PENDING.value)
q = q.filter(not_(Otx.status.op('&')(StatusBits.IN_NETWORK.value)==0))
q = q.filter(not_(Otx.status.op('&')(StatusBits.FINAL.value)==0))
if sender != None:
q = q.filter(TxCache.sender==sender)
if exclude_obsolete:
q = q.filter(not_(Otx.status.op('&')(StatusBits.OBSOLETE.value)==0))
if sender != None:
q = q.filter(TxCache.sender==sender)
txs = {}
gas = 0
@ -210,7 +210,7 @@ def get_paused_tx_cache(chain_spec, status=None, sender=None, session=None, deco
return txs
def get_status_tx_cache(chain_spec, status, not_status=None, before=None, exact=False, limit=0, session=None, decoder=None):
def get_status_tx_cache(chain_spec, status, not_status=None, before=None, exact=False, compare_checked=False, limit=0, session=None, decoder=None):
"""Retrieve transaction with a specific queue status.
:param chain_spec: Chain spec for transaction network
@ -235,7 +235,10 @@ def get_status_tx_cache(chain_spec, status, not_status=None, before=None, exact=
q = session.query(Otx)
q = q.join(TxCache)
if before != None:
q = q.filter(Otx.date_updated<before)
if compare_checked:
q = q.filter(Otx.date_updated<before)
else:
q = q.filter(TxCache.date_checked<before)
if exact:
q = q.filter(Otx.status==status)
else:

View File

@ -424,3 +424,33 @@ def obsolete_by_cache(chain_spec, tx_hash, final, session=None):
SessionBase.release_session(session)
return tx_hash
def set_checked(chain_spec, tx_hash, session=None):
"""Set the checked date for the transaction to current datetime
:param chain_spec: Chain spec for transaction network
:type chain_spec: chainlib.chain.ChainSpec
:param tx_hash: Transaction hash of record to modify
:type tx_hash: str, 0x-hex
:param session: Backend state integrity session
:type session: varies
:raises NotLocalTxError: If transaction not found in queue.
:rtype: str
:returns: Transaction hash, in hex
"""
session = SessionBase.bind_session(session)
o = TxCache.load(tx_hash, session=session)
if o == None:
SessionBase.release_session(session)
raise NotLocalTxError('queue does not contain tx hash {}'.format(tx_hash))
session.flush()
o.check()
session.add(o)
session.commit()
SessionBase.release_session(session)
return tx_hash