fix None in history, check records after wait
This commit is contained in:
parent
a56dd66c98
commit
d34f5c2712
2 changed files with 8 additions and 2 deletions
|
@ -271,7 +271,7 @@ class Ledger(metaclass=LedgerRegistry):
|
||||||
async def get_local_status_and_history(self, address, history=None):
|
async def get_local_status_and_history(self, address, history=None):
|
||||||
if not history:
|
if not history:
|
||||||
address_details = await self.db.get_address(address=address)
|
address_details = await self.db.get_address(address=address)
|
||||||
history = address_details['history'] or ''
|
history = (address_details['history'] if address_details else '') or ''
|
||||||
parts = history.split(':')[:-1]
|
parts = history.split(':')[:-1]
|
||||||
return (
|
return (
|
||||||
hexlify(sha256(history.encode())).decode() if history else None,
|
hexlify(sha256(history.encode())).decode() if history else None,
|
||||||
|
@ -616,9 +616,12 @@ class Ledger(metaclass=LedgerRegistry):
|
||||||
)) for address_record in records
|
)) for address_record in records
|
||||||
], timeout=timeout)
|
], timeout=timeout)
|
||||||
if pending:
|
if pending:
|
||||||
|
records = await self.db.get_addresses(address__in=addresses)
|
||||||
for record in records:
|
for record in records:
|
||||||
found = False
|
found = False
|
||||||
_, local_history = await self.get_local_status_and_history(None, history=record['history'])
|
local_history = (await self.get_local_status_and_history(
|
||||||
|
record['address'], history=record['history']
|
||||||
|
))[1] if record['history'] else []
|
||||||
for txid, local_height in local_history:
|
for txid, local_height in local_history:
|
||||||
if txid == tx.id and local_height >= height:
|
if txid == tx.id and local_height >= height:
|
||||||
found = True
|
found = True
|
||||||
|
|
|
@ -375,6 +375,9 @@ class TestQueries(AsyncioTestCase):
|
||||||
self.assertListEqual([0, 3, 2, 1], [tx.height for tx in txs])
|
self.assertListEqual([0, 3, 2, 1], [tx.height for tx in txs])
|
||||||
self.assertListEqual([tx4.id, tx3.id, tx2.id, tx1.id], [tx.id for tx in txs])
|
self.assertListEqual([tx4.id, tx3.id, tx2.id, tx1.id], [tx.id for tx in txs])
|
||||||
|
|
||||||
|
async def test_empty_history(self):
|
||||||
|
self.assertEqual((None, []), await self.ledger.get_local_status_and_history(''))
|
||||||
|
|
||||||
|
|
||||||
class TestUpgrade(AsyncioTestCase):
|
class TestUpgrade(AsyncioTestCase):
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue