Add tx cache test
This commit is contained in:
parent
a5078a7e37
commit
b501450827
@ -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),
|
||||
|
@ -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))
|
||||
|
||||
|
||||
|
@ -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
4
chainqueue/error.py
Normal file
@ -0,0 +1,4 @@
|
||||
class NotLocalTxError(Exception):
|
||||
"""Exception raised when trying to access a tx not originated from a local task
|
||||
"""
|
||||
pass
|
@ -11,6 +11,7 @@ from hexathon import (
|
||||
|
||||
# local imports
|
||||
from chainqueue.db.models.otx import Otx
|
||||
from chainqueue.db.models.tx import TxCache
|
||||
|
||||
# test imports
|
||||
from tests.base import TestBase
|
||||
@ -33,5 +34,36 @@ class TestBasic(TestBase):
|
||||
self.session.add(otx)
|
||||
|
||||
|
||||
def test_tx(self):
|
||||
tx_hash = add_0x(os.urandom(32).hex())
|
||||
tx = add_0x(os.urandom(128).hex())
|
||||
nonce = 42
|
||||
otx = Otx(nonce, tx_hash, tx)
|
||||
self.session.add(otx)
|
||||
|
||||
alice = add_0x(os.urandom(20).hex())
|
||||
bob = add_0x(os.urandom(20).hex())
|
||||
foo_token = add_0x(os.urandom(20).hex())
|
||||
bar_token = add_0x(os.urandom(20).hex())
|
||||
from_value = 13
|
||||
to_value = 666
|
||||
|
||||
block_number = 1024
|
||||
tx_index = 1337
|
||||
|
||||
txc = TxCache(
|
||||
tx_hash,
|
||||
alice,
|
||||
bob,
|
||||
foo_token,
|
||||
bar_token,
|
||||
from_value,
|
||||
to_value,
|
||||
block_number=block_number,
|
||||
tx_index=tx_index,
|
||||
session=self.session,
|
||||
)
|
||||
self.session.add(txc)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
Loading…
Reference in New Issue
Block a user