Add tx cache test

This commit is contained in:
nolash
2021-04-02 10:48:54 +02:00
parent a5078a7e37
commit b501450827
5 changed files with 44 additions and 14 deletions

View File

@@ -23,6 +23,7 @@ def upgrade():
sa.Column('otx_id', sa.Integer, sa.ForeignKey('otx.id'), nullable=True),
sa.Column('date_created', sa.DateTime, nullable=False),
sa.Column('date_updated', sa.DateTime, nullable=False),
sa.Column('date_checked', sa.DateTime, nullable=False),
sa.Column('source_token_address', sa.String(42), nullable=False),
sa.Column('destination_token_address', sa.String(42), nullable=False),
sa.Column('sender', sa.String(42), nullable=False),

View File

@@ -562,10 +562,3 @@ class Otx(SessionBase):
self.tx_hash = strip_0x(tx_hash)
self.signed_tx = strip_0x(signed_tx)
self.status = StatusEnum.PENDING
#signed_tx_bytes = bytes.fromhex(strip_0x(signed_tx))
#signed_tx_bytes = bytes.fromhex(strip_0x(tx_hash))
# sender_address = address_hex_from_signed_tx(signed_tx_bytes)
# logg.debug('decoded tx {}'.format(sender_address))

View File

@@ -1,18 +1,18 @@
# standard imports
import datetime
# third-party imports
# external imports
from sqlalchemy import Column, String, Integer, DateTime, Enum, ForeignKey, Boolean, NUMERIC
from sqlalchemy.ext.hybrid import hybrid_method, hybrid_property
#from sqlalchemy.orm import relationship, backref
#from sqlalchemy.ext.declarative import declarative_base
from hexathon import (
strip_0x,
)
# local imports
from .base import SessionBase
from .otx import Otx
from cic_eth.db.util import num_serialize
from cic_eth.error import NotLocalTxError
from cic_eth.db.error import TxStateChangeError
from chainqueue.error import NotLocalTxError
from chainqueue.db.error import TxStateChangeError
class TxCache(SessionBase):
@@ -127,7 +127,7 @@ class TxCache(SessionBase):
def __init__(self, tx_hash, sender, recipient, source_token_address, destination_token_address, from_value, to_value, block_number=None, tx_index=None, session=None):
session = SessionBase.bind_session(session)
q = session.query(Otx)
q = q.filter(Otx.tx_hash==tx_hash)
q = q.filter(Otx.tx_hash==strip_0x(tx_hash))
tx = q.first()
if tx == None:
SessionBase.release_session(session)

4
chainqueue/error.py Normal file
View File

@@ -0,0 +1,4 @@
class NotLocalTxError(Exception):
"""Exception raised when trying to access a tx not originated from a local task
"""
pass