Merge branch 'lash/cic-eth-revert-hex-values-db' into 'master'
cic-eth: Revert number as hex in tx-cache See merge request grassrootseconomics/cic-internal-integration!31
This commit is contained in:
commit
fcde3d0bb2
@ -27,8 +27,8 @@ def upgrade():
|
|||||||
sa.Column('destination_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),
|
sa.Column('sender', sa.String(42), nullable=False),
|
||||||
sa.Column('recipient', sa.String(42), nullable=False),
|
sa.Column('recipient', sa.String(42), nullable=False),
|
||||||
sa.Column('from_value', sa.String(), nullable=False),
|
sa.Column('from_value', sa.NUMERIC(), nullable=False),
|
||||||
sa.Column('to_value', sa.String(), nullable=True),
|
sa.Column('to_value', sa.NUMERIC(), nullable=True),
|
||||||
sa.Column('block_number', sa.BIGINT(), nullable=True),
|
sa.Column('block_number', sa.BIGINT(), nullable=True),
|
||||||
sa.Column('tx_index', sa.Integer, nullable=True),
|
sa.Column('tx_index', sa.Integer, nullable=True),
|
||||||
)
|
)
|
||||||
|
@ -19,7 +19,6 @@ def upgrade():
|
|||||||
op.create_table(
|
op.create_table(
|
||||||
'tx_cache',
|
'tx_cache',
|
||||||
sa.Column('id', sa.Integer, primary_key=True),
|
sa.Column('id', sa.Integer, primary_key=True),
|
||||||
# sa.Column('tx_id', sa.Integer, sa.ForeignKey('tx.id'), nullable=True),
|
|
||||||
sa.Column('otx_id', sa.Integer, sa.ForeignKey('otx.id'), nullable=True),
|
sa.Column('otx_id', sa.Integer, sa.ForeignKey('otx.id'), nullable=True),
|
||||||
sa.Column('date_created', sa.DateTime, nullable=False),
|
sa.Column('date_created', sa.DateTime, nullable=False),
|
||||||
sa.Column('date_updated', sa.DateTime, nullable=False),
|
sa.Column('date_updated', sa.DateTime, nullable=False),
|
||||||
@ -27,8 +26,8 @@ def upgrade():
|
|||||||
sa.Column('destination_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),
|
sa.Column('sender', sa.String(42), nullable=False),
|
||||||
sa.Column('recipient', sa.String(42), nullable=False),
|
sa.Column('recipient', sa.String(42), nullable=False),
|
||||||
sa.Column('from_value', sa.BIGINT(), nullable=False),
|
sa.Column('from_value', sa.NUMERIC(), nullable=False),
|
||||||
sa.Column('to_value', sa.BIGINT(), nullable=True),
|
sa.Column('to_value', sa.NUMERIC(), nullable=True),
|
||||||
sa.Column('block_number', sa.BIGINT(), nullable=True),
|
sa.Column('block_number', sa.BIGINT(), nullable=True),
|
||||||
sa.Column('tx_index', sa.Integer, nullable=True),
|
sa.Column('tx_index', sa.Integer, nullable=True),
|
||||||
)
|
)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
# third-party imports
|
# third-party imports
|
||||||
from sqlalchemy import Column, String, Integer, DateTime, Enum, ForeignKey, Boolean
|
from sqlalchemy import Column, String, Integer, DateTime, Enum, ForeignKey, Boolean, NUMERIC
|
||||||
from sqlalchemy.ext.hybrid import hybrid_method, hybrid_property
|
from sqlalchemy.ext.hybrid import hybrid_method, hybrid_property
|
||||||
#from sqlalchemy.orm import relationship, backref
|
#from sqlalchemy.orm import relationship, backref
|
||||||
#from sqlalchemy.ext.declarative import declarative_base
|
#from sqlalchemy.ext.declarative import declarative_base
|
||||||
@ -55,8 +55,8 @@ class TxCache(SessionBase):
|
|||||||
destination_token_address = Column(String(42))
|
destination_token_address = Column(String(42))
|
||||||
sender = Column(String(42))
|
sender = Column(String(42))
|
||||||
recipient = Column(String(42))
|
recipient = Column(String(42))
|
||||||
from_value = Column(String())
|
from_value = Column(NUMERIC())
|
||||||
to_value = Column(String())
|
to_value = Column(NUMERIC())
|
||||||
block_number = Column(Integer())
|
block_number = Column(Integer())
|
||||||
tx_index = Column(Integer())
|
tx_index = Column(Integer())
|
||||||
date_created = Column(DateTime, default=datetime.datetime.utcnow)
|
date_created = Column(DateTime, default=datetime.datetime.utcnow)
|
||||||
@ -64,16 +64,6 @@ class TxCache(SessionBase):
|
|||||||
date_checked = Column(DateTime, default=datetime.datetime.utcnow)
|
date_checked = Column(DateTime, default=datetime.datetime.utcnow)
|
||||||
|
|
||||||
|
|
||||||
def values(self):
|
|
||||||
from_value_hex = bytes.fromhex(self.from_value)
|
|
||||||
from_value = int.from_bytes(from_value_hex, 'big')
|
|
||||||
|
|
||||||
to_value_hex = bytes.fromhex(self.to_value)
|
|
||||||
to_value = int.from_bytes(to_value_hex, 'big')
|
|
||||||
|
|
||||||
return (from_value, to_value)
|
|
||||||
|
|
||||||
|
|
||||||
def check(self):
|
def check(self):
|
||||||
"""Update the "checked" timestamp to current time.
|
"""Update the "checked" timestamp to current time.
|
||||||
|
|
||||||
@ -116,15 +106,14 @@ class TxCache(SessionBase):
|
|||||||
if otx == None:
|
if otx == None:
|
||||||
raise NotLocalTxError('new {}'.format(tx_hash_new))
|
raise NotLocalTxError('new {}'.format(tx_hash_new))
|
||||||
|
|
||||||
values = txc.values()
|
|
||||||
txc_new = TxCache(
|
txc_new = TxCache(
|
||||||
otx.tx_hash,
|
otx.tx_hash,
|
||||||
txc.sender,
|
txc.sender,
|
||||||
txc.recipient,
|
txc.recipient,
|
||||||
txc.source_token_address,
|
txc.source_token_address,
|
||||||
txc.destination_token_address,
|
txc.destination_token_address,
|
||||||
values[0],
|
int(txc.from_value),
|
||||||
values[1],
|
int(txc.to_value),
|
||||||
)
|
)
|
||||||
localsession.add(txc_new)
|
localsession.add(txc_new)
|
||||||
localsession.commit()
|
localsession.commit()
|
||||||
@ -141,17 +130,12 @@ class TxCache(SessionBase):
|
|||||||
raise FileNotFoundError('outgoing transaction record unknown {} (add a Tx first)'.format(tx_hash))
|
raise FileNotFoundError('outgoing transaction record unknown {} (add a Tx first)'.format(tx_hash))
|
||||||
self.otx_id = tx.id
|
self.otx_id = tx.id
|
||||||
|
|
||||||
# if tx == None:
|
|
||||||
# session.close()
|
|
||||||
# raise ValueError('tx hash {} (outgoing: {}) not found'.format(tx_hash, outgoing))
|
|
||||||
# session.close()
|
|
||||||
|
|
||||||
self.sender = sender
|
self.sender = sender
|
||||||
self.recipient = recipient
|
self.recipient = recipient
|
||||||
self.source_token_address = source_token_address
|
self.source_token_address = source_token_address
|
||||||
self.destination_token_address = destination_token_address
|
self.destination_token_address = destination_token_address
|
||||||
self.from_value = num_serialize(from_value).hex()
|
self.from_value = from_value
|
||||||
self.to_value = num_serialize(to_value).hex()
|
self.to_value = to_value
|
||||||
self.block_number = block_number
|
self.block_number = block_number
|
||||||
self.tx_index = tx_index
|
self.tx_index = tx_index
|
||||||
# not automatically set in sqlite, it seems:
|
# not automatically set in sqlite, it seems:
|
||||||
|
@ -378,7 +378,6 @@ def get_tx_cache(tx_hash):
|
|||||||
|
|
||||||
session.close()
|
session.close()
|
||||||
|
|
||||||
values = txc.values()
|
|
||||||
tx = {
|
tx = {
|
||||||
'tx_hash': otx.tx_hash,
|
'tx_hash': otx.tx_hash,
|
||||||
'signed_tx': otx.signed_tx,
|
'signed_tx': otx.signed_tx,
|
||||||
@ -389,8 +388,8 @@ def get_tx_cache(tx_hash):
|
|||||||
'destination_token': txc.destination_token_address,
|
'destination_token': txc.destination_token_address,
|
||||||
'sender': txc.sender,
|
'sender': txc.sender,
|
||||||
'recipient': txc.recipient,
|
'recipient': txc.recipient,
|
||||||
'from_value': values[0],
|
'from_value': int(txc.from_value),
|
||||||
'to_value': values[1],
|
'to_value': int(txc.to_value),
|
||||||
'date_created': txc.date_created,
|
'date_created': txc.date_created,
|
||||||
'date_updated': txc.date_updated,
|
'date_updated': txc.date_updated,
|
||||||
'date_checked': txc.date_checked,
|
'date_checked': txc.date_checked,
|
||||||
|
@ -59,9 +59,8 @@ def test_set(
|
|||||||
assert (tx_stored.recipient == tx_def['to'])
|
assert (tx_stored.recipient == tx_def['to'])
|
||||||
assert (tx_stored.source_token_address == bogus_from_token)
|
assert (tx_stored.source_token_address == bogus_from_token)
|
||||||
assert (tx_stored.destination_token_address == zero_address)
|
assert (tx_stored.destination_token_address == zero_address)
|
||||||
assert (tx_stored.from_value == '1b1ae4d6e2ef500000')
|
assert (tx_stored.from_value == tx_def['value'])
|
||||||
assert (tx_stored.to_value == '0d8d726b7177a80000')
|
assert (tx_stored.to_value == to_value)
|
||||||
assert (tx_stored.values() == (tx_def['value'], to_value))
|
|
||||||
assert (tx_stored.block_number == 666)
|
assert (tx_stored.block_number == 666)
|
||||||
assert (tx_stored.tx_index == 13)
|
assert (tx_stored.tx_index == 13)
|
||||||
|
|
||||||
|
@ -126,4 +126,5 @@ def test_queue_cache_convert(
|
|||||||
assert txc.recipient == init_w3.eth.accounts[0]
|
assert txc.recipient == init_w3.eth.accounts[0]
|
||||||
assert txc.source_token_address == bancor_tokens[0]
|
assert txc.source_token_address == bancor_tokens[0]
|
||||||
assert txc.destination_token_address == bancor_tokens[1]
|
assert txc.destination_token_address == bancor_tokens[1]
|
||||||
assert txc.values() == (amount, amount)
|
assert txc.from_value == amount
|
||||||
|
assert txc.to_value == amount
|
||||||
|
@ -85,4 +85,5 @@ def test_queue_cache_transfer(
|
|||||||
assert txc.recipient == init_w3.eth.accounts[1]
|
assert txc.recipient == init_w3.eth.accounts[1]
|
||||||
assert txc.source_token_address == bancor_tokens[0]
|
assert txc.source_token_address == bancor_tokens[0]
|
||||||
assert txc.destination_token_address == bancor_tokens[0]
|
assert txc.destination_token_address == bancor_tokens[0]
|
||||||
assert txc.values() == (value, value)
|
assert txc.from_value == value
|
||||||
|
assert txc.to_value == value
|
||||||
|
Loading…
Reference in New Issue
Block a user